用于测试MOAC应用程序的工具。

moac-tester的Python项目详细描述


国际贸易协会 < BR>
用于测试基于MOAC的应用程序的工具。 < BR>
安装
---- < BR>< < > >代码:SH < BR>
PIP安装MOAC测试仪 < BR>
快速启动
--- < BR>< BR>代码::python < BR>
>;>;来自MOAC测试仪进口MOAC酯
>;t=金属氧化物酸酯()
>>>t.获取帐户()
('0xabbacadab000000000000000000000000000000000000000',
"0xabbacadab00000000000000000000001",
"0xabbacadab00000000000000000000002",
"0xabbacadab00000000000000000003",
"0xabbacadab00000000000000000004",
"0xabbacadab00000000000000000005",
"0xabbacadab00000000000000000006",
"0xabbacadab000000000000000000007",
"0xabbacadab000000000000000000008",
'0xabbacadab000000000000000000009') < BR>
>;t.get'u balance('0xabbacadaba00000000000000000000000')
1000000000000000000000000000000
>;t.发送"事务({从':'0xabbacadaba000000000000000000000000000000000','到':'0xabbacadaba000000000000000000000000001','gas':21000,'value')
"0x11c5118d2e3f77a63c02c4d94d89f8c4965aeb5e5fe55ce2db794048c1180a"
>;t.按哈希获取事务('0x11c5118d2e3f77a63c02c4d94d89f8c4965aeb5fe55ce2db794048c1180a')
{"块U哈希":"0x96e041452b6fc75ab7126c490293e2823b4814a4d8efa7c4926cfb10d8ddf",
'v':27,
"数据":"x",
"发件人":"0xabbacadab000000000000000000000000000000000000000",
"天然气"单价:1,
"r":12345,
"散列":"0x11c5118d2e3f77a63c02c4d94d89f8c4965aeb5fe55ce2db794048c113780a",
"至":"0xabbacadab0000000000000000000000000000001",
"天然气":21000,
"nonce":0,
"值":1,
's':67890,
"U区编号":1,
"事务"u索引:0} < BR>< BR>
>;t.在接收时获取事务处理('0x11c5118d2e3f77a63c02c4d94d89f8c4965aeb5fe55ce2db794048c1180a')
{"块U哈希":"0x96e041452b6fc75ab7126c490293e2823b4814a4d8efa7c4926cfb10d8ddf",
"累计用气":21000,
"状态":0,
事务"u散列":"0x11c5118d2e3f77a63c02c4d94d89f8c4965aeb5fe55ce2db794048c1180a",
合同"U地址":"0xa0beb7081fdaf3ed157370836a85eec20cec9e04",
"日志":(),
"使用的气体":21000,
"U区编号":1,
"事务"u索引:0} < BR>
运行测试 ~~~~~~~~~~~~~~~~~~~~ < BR>
您可以使用以下命令运行测试: < BR>< BR>代码:SH < BR>
py.测试 < BR>
或者您可以安装"tox"来运行完整的测试套件。 < BR>
发布
~~~~~~ < BR>
要将降价自述转换为正确的
在pypi上正确呈现的格式。 < BR>
对于类似debian的系统: < BR>
: < BR>
apt安装pandoc < BR>
或在OSX上: < BR>< BR>代码:SH < BR>
brew安装pandoc < BR>
要发布新版本: < BR>< BR>代码:SH < BR>
bump version$$version_part_到_bump$$
git push&;git push——标记
释放 < BR>
如何bumpversion
^^^^^^^^^^^^^^^^^^ < BR>
此repo的版本格式为`{major}.{minor}.{patch}``for
稳定,`{major}.{minor}.{patch}-{stage}.{devnum}`不稳定
("stage"可以是alpha或beta)。 < BR>
要发布下一个版本,请使用bumpversion并指定
部分到凹凸,如"bumpversion minor"或"bumpversion devnum"。 < BR>
如果您是beta版,``bumpversion stage`将切换到
稳定。 < BR>
要在当前版本稳定时发布不稳定版本,请指定
新版本显式地
`` bumpversion--新版本4.0.0-alpha.1 devnum`` < BR>
文档
============= < BR>
输入和输出数据格式
--- < BR>
MOAC测试程序库严格执行以下输入格式
和类型。 < BR>
-十六进制值**必须**为文本(非字节)字符串。"0x"
前缀是可选的。
-任何包含混合大小写字母字符的地址
验证为由指定的校验和地址
`eip-55<;https://github.com/moac/eips/blob/master/eips/eip-55.md>;。`_
-32字节哈希**必须**为十六进制编码。
-数值**必须**以整数表示。 < BR>
同样,moac测试仪确保返回值与
规则。 < BR>
-32字节哈希将以十六进制编码返回
表示。
-地址将以十六进制表示返回,并且
EIP55校验和。
-数值将作为整数返回。 < BR>
块编号
---- < BR>
任何"块号"参数都将接受以下字符串值。 < BR>
-``最新'`:最新开采的区块。
-``挂起'``:针对当前未开采的区块。
-``最早'`:对于成因块体。 < BR>
注意:这些**必须**是文本字符串(不是字节字符串) < BR>
`` MOAC_测试仪.MOAC酯``
---- < BR>
原料药
~~~ < BR>
实例化
~~~~~~~~~~~~~ < BR>
-`` moac_tester.moactester(后端=none,验证器=none,规范化器=none,自动挖掘事务=true,fork_blocks=none)`` < BR>
"moactester"对象是唯一的api入口点。实例化
此对象接受以下参数。 < BR>
-``后端``:正在使用的链后端。查看"链"
后端<;后端>;。`_
-``验证器`:要使用的验证器。见
`验证程序<;验证>;。`_
-`` normalizer``要使用的normalizer。见
`normalizers<;normalization>;。`_
-``自动挖掘交易``:如果*truthy*交易
在提交时自动挖掘。见
``启用自动挖掘事务`<;启用API自动挖掘事务>;。`_

``禁用自动挖掘事务`<;`禁用API自动挖掘事务`>;`。
-`` fork_blocks``:co为各种网络编号的配置
将激活硬分叉规则。请参见"fork rules"<;fork rules>;。`_ < BR>
…代码::python < BR>
>>>>来自MOAC U测试仪的进口MOAC酯
>>gt;t=金属氧化物酸酯()

<;moac_tester.main.moactester at 0x102255710>; < BR>
分叉规则
~~~~~~~~~~ < BR>
MOAC测试仪使用拜占庭规则,从0区开始。 < BR>
时间旅行
~~~~~~~~~~~ < BR>
链条只能在时间上向前移动。 < BR>
``移动时间(时间戳)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
"timestamp"必须是一个整数,严格大于当前值
最新块的时间戳。 < BR>
注意:时间推移将导致开采新的区块。 < BR>
采矿
~~~~~~ < BR>
可以使用以下API手动挖掘块。这个
``coinbase``这些方法的参数**必须**为十六进制
编码地址。 < BR>
``moactester.mine_blocks(num_blocks=1,coinbase=none)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
挖掘"num-blocks"新块,返回
挖掘块散列。 < BR>
``moactester.mine_block(coinbase=无)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
挖掘一个新块,返回挖掘块的哈希值。 < BR>
自动挖掘事务
^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
默认情况下,所有事务都会立即挖掘。这意味着每个
发送的事务将导致挖掘新的块,并且
所有块最多只能有一个事务。这个
可以通过以下方法控制行为。 < BR>
``moactester.enable_auto_mine_transactions().``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
打开事务的自动挖掘。 < BR>
``moactester.disable_auto_mine_transactions().``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
关闭**自动挖掘事务。 < BR>
账户
~~~~~~~~ < BR>
以下API可用于与帐户数据交互。这个
``account``这些方法中的参数**必须**是十六进制编码
地址。 < BR>
``moactester.get_accounts().`` < BR>
返回一个测试人员知道的帐户表。所有
此列表中的帐户将是eip55校验和。 < BR>
…代码::python < BR>
>>>t.获取帐户()
("0xabbacadab00000000000000000000000000000000000",
"0xabbacadab00000000000000000000000000000000001",

'0xabbacadab00000000000000000000000000000000009') < BR>
`` moactester.add_account(私钥,password=none)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
为给定的私钥添加新帐户。返回十六进制编码
添加帐户的地址。 < BR>
…代码::python < BR>
>>>t.添加帐户('0x58D23B55BC9CDCE18C2500F40FF4AB7245DF9A89505E9B1FA4851F623D241D')
0xDC544D1AA88FF8BBD2F2AEC754B1F1E99E1812FD' < BR>
默认情况下,添加的帐户未锁定且没有密码。如果
您想添加一个有密码的帐户,您可以提供
密码作为第二个参数。 < BR>
…代码::python < BR>
>>>t.添加帐户("0x58D23B55BC9CDCE18C2500F40FF4AB7245DF9A89505E9B1FA4851F623D241D","我的秘密")
"0xDC544D1AA88FF8BBD2FAEC754B1F1E99E1812FD" < BR>
`` moactester.unlock_帐户(帐户,密码,unlock_seconds=none)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
如果提供的密码匹配,则解锁给定的帐户。 < BR>
如果出现以下情况,则引发"validationerror": < BR>
-帐户未知。
-密码不匹配。
-创建帐户时没有密码。 < BR>
…代码::python < BR>
>>>t.解锁帐户('0xDC544D1AA88FF8BBD2FAEC754B1F1E99E1812FD','我的秘密') < BR>
默认情况下,帐户将无限期解锁。但是你可以
通过提供
所需的持续时间(秒)。 < BR>
…代码::python < BR>
解锁1小时。
>>>t.解锁帐户("0xDC544D1AA88FF8BBD2FEC754B1F1E99E1812FD","我的秘密",60*60) < BR>
`` moactester.锁定帐户(帐户)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
锁定提供的帐户。 < BR>
如果出现以下情况,则引发"validationerror": < BR>
-帐户未知
-该帐户没有密码。 < BR>
``moactester.get_balance(account)->;整数``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回所提供帐户的SHA余额。 < BR>
…代码::python < BR>
>>>t.获得余额('0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1')
1000004999999999999999999999 < BR>
``moactester.get_nonce(account)->;整数``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回所提供帐户的nonce。 < BR>
…代码::python < BR>
>>>t.获取信息('0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1')
1 < BR>
`` moactester.get_code(account)->;十六进制字符串``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回给定帐户的代码。 < BR>
…代码::python < BR>
>>>t.获取代码('0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1')
"x" < BR>
区块、交易和收据
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
`` moactester.get_transaction_by_hash(transaction_hash)->;事务对象``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回给定哈希的事务,引发
`` transactionnotfound`<;错误transactionnotfound>;``异常如果
找不到事务。 < BR>
…代码::python < BR>
>;>t.按哈希获取交易('0x140c1da1370a908e4c0f7c6e33bb97182011707c6a9aff954bef1084c8a48b25')
{"块哈希":"0x89c03ecb6bbf3ff533b04a663fa98d59c9d985de806d1a9dcafaad7c993ee6e8",
块号0:
"散列":"0x140c1da1370a908e4c0f7c6e33bb97182011707c6a9aff954bef1084c8a48b25",
"事务索引":0,
"发件人":"0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1",
"至":"0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e",
"值":1,
"天然气":21000,
"天然气价格":1,
"nonce":0,
"数据":"x",
"v":27,
"r":11483377445782708441782370274993047387683934597320921824765632039428214735160,
"S":521925221500442172442428968890330558187031310435981649582684822175843828481} < BR>
注意:对于未完成的事务,``事务索引`,
``块号``和``块哈希``都是``无'。 < BR>
`` moactester.get_block_by_number(block_number,full_transactions=false)->;block对象``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回给定"块号"的块。见块
numbers<;block numbers>;``对于可以使用的命名块编号。如果
"完整的事务"是正确的,那么事务数组将是
填充了完整的事务对象,而不是它们的散列。 < BR>
如果
找不到给定的号码。 < BR>
…代码::python < BR>
>>>t.按单元编号获取单元(1)
{难度:131072,
"额外数据":"0x0000000000000000000000000000000000000000000000000000000000000000000000",
"气体限制":999023468,
"使用的气体":0,
"散列":"0x0f50c8ea0f67ce0b7ff51ae866159edc44bde87de2ab260010a15b777244ddd",
"原木开花":0,
"矿工":"0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1",
"nonce":"0x0000000000000000",
"数字":1,
"父哈希":"0x89c03ecb6bbf3ff533b04a663fa98d59c9d985de806d1a9dcafaad7c993ee6e8",
"SHA3叔叔":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"大小":472,
"状态根":"0xbd92123803c9e71018617ce3dc6cbbdf130973bdbd0e14ff340c57c8a835b74b",
"时间戳":1410973360,
"总难度":262144,
"交易":(),
"事务根":"0x56e81f171bcc55a6ff8345e692cof86e5b48e01b996cadc001622fb5e363b421",
"叔叔":()} < BR>
`` moactester.get_block_by_hash(block_hash,full_transactions=true)->;block对象``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回给定"block-hash"的块。这个
`` full_transactions``参数的行为与
``按编号获取块`<;`按编号获取块`>;`。 < BR>
如果
找不到给定的哈希。 < BR>
…代码::python < BR>
>>>t.逐块获取哈希('0x0f50c8ea0f67ce0b7ff51ae866159edc443bde87de2ab206010a15b777244ddd')
{难度:131072,
"额外数据":"0x0000000000000000000000000000000000000000000000000000000000000000000000",
"气体限制":999023468,
"使用的气体":0,
"散列":"0x0f50c8ea0f67ce0b7ff51ae866159edc44bde87de2ab260010a15b777244ddd",
"原木开花":0,
"矿工":"0x82a978b3f5962a5b0957d9ee9eef472EE55B42F1',
"nonce":"0x0000000000000000",
"数字":1,
"父哈希":"0x89c03ecb6bbf3ff533b04a663fa98d59c9d985de806d1a9dcafaad7c993ee6e8",
"SHA3叔叔":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"大小":472,
"状态根":"0xbd92123803c9e71018617ce3dc6cbbdf130973bdbd0e14ff340c57c8a835b74b",
"时间戳":1410973360,
"总难度":262144,
"交易":(),
"事务根":"0x56e81f171bcc55a6ff8345e692cof86e5b48e01b996cadc001622fb5e363b421",
"叔叔":()} < BR>
`` moactester.get_transaction_receipt(transaction_hash)```
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回给定"事务哈希"的收据,引发
`` transactionnotfound`<;错误transactionnotfound>;``如果没有
可以找到给定哈希的事务。 < BR>
…代码::python < BR>
>;>t.取得交易凭证('0x9A7CC8B7ACCF54ECB1901FBD178F28CA457BB9F9C245692C0CA8FABEF08D3B')
{'块哈希':'0x878f779d8bb25fb25b78fc16b8d64d70a5961310ef168957aec632e9424290c',
"块号":2,
"合同地址":无,
"累计使用气体":23154,
"使用的气体":23154,
"日志":({"地址":"0xd6f084ee15e38c4f7e091f8dd0fe6fe4a0e203ef",
"块哈希":"0x878f779d8bb25fb25b78fc16b8d64d70a5961310ef168957aec632e9424290c",
"块号":2,
"数据":"x",
"日志索引":0,
"主题":(
"0xf70fe689e290d8ce2b2a388ac28db36fbb0e16d89c6804c461f65a1b40bb15",
'0x0000000000000000000000000000000000000000000000000000000000000000003039'),
"事务哈希":"0x9A7CC8B7ACCF54ECB1901FB4d0178f28CA457BB9F9C245692C0CA8FABEF08D3B",
"事务索引":0,
"类型":"开采"},),
"事务哈希":"0x9A7CC8B7ACCF54ECB1901FB4d0178f28CA457BB9F9C245692C0CA8FABEF08D3B",
"事务索引":0} < BR>
-未处理事务的收据将具有所有"块哈希",
``块号``和``事务`索引``设置为``无'。
-创建合同的交易的收据将具有
在"合同地址"字段中创建了合同地址。 < BR>
事务发送
~~~~~~~~~~~~~~~~~~~ < BR>
事务是一个格式化为字典的事务,具有以下键和
值。 < BR>
-`` from`:发送交易的帐户地址
(十六进制字符串)。
-``到``:事务发送到的帐户的地址。
应使用空字符串触发合同创建(十六进制
字符串)。
-`` gas``:设置事务执行的gas限制(整数)。
-``天然气价格``:设定魏国每单位天然气的价格,即
支付交易执行费用(整数)。
-``值``:应与
事务(整数)。
-`` data``:事务的数据(十六进制字符串)。 < BR>
方法
^^^^^^^ < BR>
`` moactester.send_transaction(transaction)->;transaction_hash``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>< BR>发送提供的"transaction"对象,返回
`transaction\u hash``用于发送的事务。 < BR>
日志和筛选器
~~~~~~~~~~~~~~~~ < BR>
``moactester.create_block_filter()->;整数``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
为新开采的块体创建新的过滤器。返回"filter"id``
可用于检索挖掘块的块散列。 < BR>
…代码::python < BR>
>>gt;筛选id=t.创建块筛选()
>>>t.矿区(3)
>;gt;t.仅获取筛选器更改(筛选器ID)
('0x07004287f82c1a7ab15d7bbaa03ac14d7e9167ab74e47e1dc4bd2213dd18431',
"0x5e322c506585e1202da08c7231afdc5e472c777c245b822f44f141d335c744a",
‘0x4051C3BA3DCCA95DA5DB1BE38E44F5B47FD1A855BA522123E3254FE3F8E271EA’)
>>>t.矿区(2)
>;gt;t.仅获取筛选器更改(筛选器ID)
('0x6649c3a7cb3c7ede3a4fd10ae9dd63775eccdafe39ace5f5a9ae81d360089fba',
'0x04890a08bca0ed2f1496eb29c5dc7aa66014c85377c6d9c2c315f8504b39c')
>>>t.获取所有筛选日志(筛选ID)
('0x07004287f82c1a7ab15d7bbaa03ac14d7e9167ab74e47e1dc4bd2213dd18431',
"0x5e322c506585e1202da08c7231afdc5e472c777c245b822f44f141d335c744a",
"0x4051C3BA3DCCA95DA5DB1BE38E44F5B47FD1A855BA52123E3254FE3F8E271EA",
"0x6649c3a7cb3c7ede3a4fd10ae9dd63775eccdafe39ace5f5a9ae81d360089fba",
'0x04890a08bca0ed2f1496eb29c5dc7aa66014c85377c6d9c2c315f8504b39c') < BR>
``moactester.create_pending_transaction_filter()->;整数``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
为挂起的事务创建新筛选器。返回"filter"id``
可用于检索挂起的事务哈希
交易。 < BR>
…代码::python < BR>
>>gt;筛选id=t.创建待处理的事务筛选()
>>>t.发送交易({…})
'0x07f20bf9586e373ac914a40e99119c4932bee343d89ba852ccfc9af1fd541566'
>>>t.发送交易({…})
'0xff85f7751d132b66c03e548e736f870797b0f24f3ed41dfe5fc628eb2cbc3505'
>;gt;t.仅获取筛选器更改(筛选器ID)
('0x07f20bf9586e373ac914a40e99119c4932bee343d89ba852ccfc9af1fd541566',
‘0xff85f7751d132b66c03e548e736f870797b0f24f3ed41dfe5fc628eb2cbc3505’)
>>>t.发送交易({…})
"0xb07801f7e8b1cfa52b64271fa2673c4b8d64cc21cdbc5fde51d58c94c2d26a"
>;gt;t.仅获取筛选器更改(筛选器ID)
('0xb07801f7e8b1cfa52b64271fa2673c4b8d64cc21cdbc5fde51d58c94c2d26a',)
>>>t.获取所有筛选日志(筛选ID)
('0x07f20bf9586e373ac914a40e99119c4932bee343d89ba852ccfc9af1fd541566',
"0xff85f7751d132b66c03e548e736f870797b0f24f3ed41dfe5fc628eb2cbc3505",
0xb07801f7e8b1cfa52b64271fa2673c4b8d64cc21cdbc5fde51d58c94c2d26a') < BR>
``moactester.create_log_filter(from_block=none,to_block=none,address=none,topics=none)->;整数``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
为事务生成的日志创建新筛选器。参数
此函数可用于筛选日志项。 < BR>
…代码::python <>
>>>筛选ID=t.创建日志筛选()
>>>t.发送事务({…})生成日志项的内容
"0x728bf75fc7d23845f328223df7fe9cafc6e7d23792457b625d5b60d2b22b7c"
>>>t.发送事务({…})生成日志项的内容
"0x63f5b381ffd09940ce22c45a3f4e163bd743851cb6b4f43771fbf0b3c14b2f8a"
>;gt;t.仅获取筛选器更改(筛选器ID)
({地址':'0xd6f084ee15e38c4f7e091f8dd0fe6fe4a0e203ef',
"块哈希":"0x68c0f3183880003b652ae334efbed8bd345c469bd0ca77469183fc9693c23e13",
"块号":11,
"数据":"x",
"日志索引":0,
"主题":("0xf70fe689e290d8ce2b2a388ac28db36fbboe16d89c6804c461f65a1b40bb15",
'0x0000000000000000000000000000000000000000000000000000000000000000003039'),
"事务哈希":"0x728bf75fc7d23845f328223df7fe9cafc6e7d23792457b625d5b60d2b22b7c",
"事务索引":0,
"类型":"开采"},
{地址':'0xd6f084ee15e38c4f7e091f8dd0fe6fe4a0e203ef',
"块哈希":"0x07d7e46be6f9ba53ecd43232fb99ec656e652c4b14f4b8e8a244ee7f997464725",
"块号":12,
"数据":"x",
"日志索引":0,
"主题":("0xf70fe689e290d8ce2b2a388ac28db36fbboe16d89c6804c461f65a1b40bb15",
'0x000000000000000000000000000000000000000000000000000000000000000010932'),
"事务哈希":"0x63f5b381ffd09940ce22c45a3f4e163bd743851cb6b4f43771fbf0b3c14b2f8a",
"事务索引":0,
"类型":"开采的"}) < BR>
有关详细信息,请参阅"筛选指南"lt;"筛选指南"
关于如何使用过滤器。 < BR>
`` moactester.delete_filter(filter_id)```
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
删除提供"filter\u id"的筛选器。如果没有找到过滤器
对于给定的"filter\u id",引发
`` filternotfound`<;错误filternotfound>;`。 < BR>
`` moactester.get_only_filter_changes(filter_id)->;事务哈希或块哈希或日志条目``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回所提供的"filter\u id"的所有新值
之前已通过此API返回。加薪
`` filternotfound`<;如果未找到筛选器,则为错误filternotfound>;`
对于给定的"filter\u id"。 < BR>
`` moactester.get_all_filter_logs(filter_id)->;事务哈希或块哈希或日志条目``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
返回所提供"filter\u id"的所有值。加薪
`` filternotfound`<;如果未找到筛选器,则为错误filternotfound>;`
对于给定的"filter\u id"。 < BR>
快照和重置
~~~~~~~~~~~~~~~~~~~~~~~ < BR>
``moactester.take_snapshot()->;快照ID``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
获取当前链状态的快照并返回快照ID。 < BR>
``moactester.revert_to_snapshot(快照ID)```
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
将链还原为与给定
``快照ID``。加薪
``snapshotnotfound`<;错误snapshotnotfound>;`_如果没有快照
知道给定的id。 < BR>
错误和异常
~~~~~~~~~~~~~~~~~~~~~ < BR>
``MOAC_tester.exceptions.transactionNotFound``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
在无法找到所提供的
事务哈希。 < BR>
`` MOAC U测试仪.异常.块未找到``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
在无法找到所提供的
数字或哈希。 < BR>
``MOAC_tester.exceptions.filternotfound``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
在无法找到所提供筛选器的筛选器时引发
身份证。 < BR>
``MOAC_tester.exceptions.snapshotNotFound``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < BR>
在无法找到所提供的
快照ID。 < BR>
后端
-- < BR>
MOAC测试仪是使用可插入的后端系统编写的。 < BR>
后端依赖项
~~~~~~~~~~~~~~~~~~~~ < BR>
MOAC测试器不安装使用
默认情况下有各种后端。但是,您可以使用
使用以下方法的必要依赖项。 < BR>
…代码:BASH < BR>
$pip安装MOAC测试仪[<;后端名称>;] < BR>
您应该用所需的名称替换"`<;后端名称">;"`"
测试后端。 < BR>
选择后端
~~~~~~~~~~~~~~~~~~~ < BR>
您可以用几种不同的方法选择哪个后端。 < BR>
最直接的方法是手动传入希望的后端实例
使用。 < BR>
…代码::python < BR>
>>>>来自MOAC U测试仪的进口MOAC酯
>>>t=moactester(backend=mockbackend()) < BR>
MOAC测试仪还支持使用环境变量进行配置
``MOAC_tester_chain_backend```。这应该设置为的导入路径
要使用的后端类。 < BR>
可用后端
~~~~~~~~~~~~~~~~~~ < BR>
MOAC测试仪可以与以下后端一起使用。 < BR>
-模拟后端 < BR>
模拟后端
^^^^^^^^^^^ < BR>
此后端功能有限。它不能执行任何虚拟机
计算。它模拟了所有的对象和交互。 < BR>
…代码::python < BR>
>>>>来自MOAC U测试仪导入mockbackend
>>>t=moactester(mockbackend()) < BR>
实现自定义后端
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
基类"moac\u tester.backends.base.basechainbackend"是
如果您想编写自己的基类,建议从基类开始
后端。 < BR>
有关实施的详细信息超出了本文档的范围。 < BR>
数据格式
---- < BR>
MOAC测试仪使用两种数据格式。 < BR>
-normal*格式是预期作为输入的数据格式
所有"moactester"方法的参数以及返回类型
来自ll方法调用。
-*规范*格式是内部使用的数据格式
后端类。 < BR>
MOAC测试人员对这些格式执行严格的验证规则。 < BR>
规范格式
~~~~~~~~~~~~~~~~~ < BR>
规范格式用于后端的低级处理。 < BR>
-32字节散列:长度为32的"字节"
-任意长度的字符串:``字节``
-地址:长度为20的"字节"
-整数:``int``
-数组类型:``元组`` < BR>
普通格式
~~~~~~~~~~~~~~ < BR>
普通格式供最终用户使用。 < BR>
-32字节哈希:``0x``前缀为十六进制编码的文本字符串(不是
字节字符串)
-任意长度字符串:``0X``前缀十六进制编码文本
字符串(不是字节字符串)
-地址:``0x``前缀和eip55校验和十六进制编码
文本字符串(不是字节字符串)
-整数:``int``
-数组类型:``元组`` < BR>
标准化和验证
-- < BR>
当心!这里有龙…文件的这一部分
仅当您打算在此基础上构建工具时才相关
图书馆。 < BR>
MOAC测试仪提供了强大的保证,可以交换后端
无缝输出,不影响两个输入的数据格式
参数和返回值。这是通过两个步骤完成的
严格的*标准化*和*验证*过程。 < BR>
首先验证"moactester"方法的所有输入,然后
规范化为*规范*格式。返回值通过这个
同时处理,首先验证后端返回的数据,然后
然后将其从*canonical*格式规范化为*normal*格式
返回前。 < BR>
规范化 < BR>
"moactester"将规范化委托给任何"normalizer"``
在实例化期间传入。如果没有提供任何值,则
将从
``moac_tester.normalization.default.defaultnormalizer``。 < BR>
此对象的细节超出了本文档的范围。 < BR>
验证 < BR>
"moactester"将验证委托给任何"validator"
在实例化期间传入。如果未提供任何值,则默认值为
验证程序将从
``moac_tester.validation.default.defaultValidator``。 < BR>
此对象的细节超出了本文档的范围。 < BR>
运行测试
---- < BR>
您可以使用以下命令运行测试: < BR>
…代码:SH < BR>
py.测试 < BR>
或者您可以安装"tox"来运行完整的测试套件。 < BR>
释放
--- < BR>
要将降价自述转换为正确的
在pypi上正确呈现的格式。 < BR>
对于类似debian的系统: < BR>
: < BR>
apt安装pandoc < BR>
或在OSX上: < BR>
…代码:SH < BR>
brew安装pandoc < BR>
要发布新版本: < BR>
…代码:SH < BR>
bump version$$version_part_到_bump$$
git push&;git push——标记
释放 < BR>
如何bumpversion
~~~~~~~~~~~~~~~~~~ < BR>
此repo的版本格式为`{major}.{minor}.{patch}``for
稳定,`{major}.{minor}.{patch}-{stage}.{devnum}`不稳定
("stage"可以是alpha或beta)。 < BR>
要发布下一个版本,请使用bumpversion并指定
部分到凹凸,如"bumpversion minor"或"bumpversion devnum"。 < BR>
如果您是beta版,``bumpversion stage`将切换到
稳定。 < BR>
要在当前版本稳定时发布不稳定版本,请指定
新版本显式地
`` bumpversion--新版本4.0.0-alpha.1 devnum`` < BR>
关键词:MOAC
平台:未知
分类器:开发状态::2-前置alpha
分类器:目标受众::开发人员
分类器:许可证::OSI批准::MIT许可证
分类器:自然语言:英语
分类器:编程语言::python::3
分类器:编程语言::python::3.5
分类器:编程语言::python::3.6
分类器:编程语言::python::3.7 < BR>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
graph Java自己生成类图   java MouseMotionListener:鼠标和触控板给出不同的结果   java解析清单条目的正确方法是什么。jar中的mf文件?   java如何创建带有半透明色块的透明gif/png图像?   java应用内计费V3:跨设备同步购买   java Spring数据JPA注入失败BeanCreationException:无法自动连接字段   Java数据结构维护插入顺序和重复值   java无法在VSCode中设置JavaFX   java中数据字段初始化的类顺序   java如何使用ClientBuilder为Rest Post Api多部分编写集成测试   JUnit测试divide()方法的java正确方法   java将消息标记为接收前已读   Java ArrayList调用扩展对象函数   java Android:只使用GCM的TCP/IPServer   Java如何将xls数据转换为txt文件   编译为Jar文件后未找到java类   java返回子字符串的所有匹配项   java Get json用户_timeline api twitter 1.1