diff --git a/bindings/tester/LoadTester.abi b/bindings/tester/LoadTester.abi index cac8ccd4d..9da387198 100644 --- a/bindings/tester/LoadTester.abi +++ b/bindings/tester/LoadTester.abi @@ -1097,6 +1097,25 @@ ], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "testP256Verify", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "testRETURNDATACOPY", diff --git a/bindings/tester/LoadTester.bin b/bindings/tester/LoadTester.bin index 7213a4e0b..45c2ecfac 100644 --- a/bindings/tester/LoadTester.bin +++ b/bindings/tester/LoadTester.bin @@ -1 +1 @@ -0x608060405234801561001057600080fd5b50612393806100206000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637de8c6f81161024c578063bdc875fc11610146578063dd9bef60116100c3578063f279ca8111610087578063f279ca81146109cd578063f4d1fc61146109e0578063f58fc36a146109f3578063f6b0bbf714610a06578063fde7721c14610a2657600080fd5b8063dd9bef601461096e578063de97a36314610981578063e9f9b3f214610994578063ea5141e6146109a7578063edf003cf146109ba57600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef1461090f578063d117320b14610922578063d51e7b5b14610935578063d53ff3fd14610948578063d93cd5581461095b57600080fd5b8063bdc875fc146108b0578063bf529ca1146108c3578063c360aba6146108d6578063c420eb61146108e9578063c4bd65d5146108fc57600080fd5b8063a040aec6116101d4578063acaebdf611610198578063acaebdf614610851578063b374012b14610864578063b3d847f214610877578063b7b862071461088a578063b81c14841461089d57600080fd5b8063a040aec6146107f0578063a18683cb14610803578063a271b72114610823578063a60a10871461082b578063a645c9c21461083e57600080fd5b806391e7b2771161021b57806391e7b27714610791578063962e4dc2146107a457806398456f3e146107b75780639a2b7c81146107ca5780639cce7cf9146107dd57600080fd5b80637de8c6f81461074557806380947f8014610758578063880eff391461076b578063918a5fcd1461077e57600080fd5b80633430ec061161035d57806360e13cde116102e55780636f099c8d116102a95780636f099c8d146106d957806371d91d28146106ec57806372de3cbd146106ff5780637b6e0b0e1461071f5780637c191d201461073257600080fd5b806360e13cde14610685578063613d0a821461069857806363138d4f146106ab578063659bbb4f146106be5780636e7f1fe7146106c657600080fd5b806340fe26621161032c57806340fe26621461062657806344cf3bc7146106395780634a61af1f1461064c5780634d2c74b31461065f5780635590c2d91461067257600080fd5b80633430ec06146105e5578063371303c0146105f85780633a411f12146106005780633a425dfc1461061357600080fd5b806318093b46116103eb578063219cddeb116103af578063219cddeb146105865780632294fc7f146105995780632871ef85146105ac5780632b21ef44146105bf5780632d34e798146105d257600080fd5b806318093b461461052757806319b621d61461053a5780631aba07ea1461054d5780631de2f343146105605780632007332e1461057357600080fd5b80630ba8a73b116104325780630ba8a73b146104d35780631287a68c146104e6578063135d52f7146104ee5780631581cf1914610501578063165821501461051457600080fd5b8063034aef7114610464578063050082f81461048d578063087b4e84146104a05780630b3b996a146104b3575b600080fd5b6104776104723660046119cc565b610a39565b60405161048491906119fd565b60405180910390f35b61047761049b3660046119cc565b610a6b565b6104776104ae3660046119cc565b610a94565b6104c66104c1366004611b02565b610ac5565b6040516104849190611b99565b6104776104e13660046119cc565b610ae8565b600054610477565b6104776104fc3660046119cc565b610b0d565b61047761050f3660046119cc565b610b2f565b6104776105223660046119cc565b610b58565b6104776105353660046119cc565b610b84565b6104776105483660046119cc565b610baf565b61047761055b3660046119cc565b610c1b565b61047761056e3660046119cc565b610c51565b6104776105813660046119cc565b610c7e565b6104776105943660046119cc565b610ca0565b6104776105a73660046119cc565b610cc9565b6104776105ba3660046119cc565b610cfe565b6104776105cd3660046119cc565b610d27565b6104776105e03660046119cc565b610d50565b6104c66105f33660046119cc565b610d79565b610477610e22565b61047761060e3660046119cc565b610e3b565b6104776106213660046119cc565b610e5d565b6104776106343660046119cc565b610e88565b6104776106473660046119cc565b610eb7565b61047761065a3660046119cc565b610ee0565b61047761066d3660046119cc565b610f0d565b6104776106803660046119cc565b610f36565b6104776106933660046119cc565b610f6c565b6104c66106a6366004611b02565b610f98565b6104776106b9366004611b02565b610fc3565b610477610fec565b6104776106d43660046119cc565b611026565b6104776106e73660046119cc565b611051565b6104776106fa3660046119cc565b61107a565b61071261070d366004611d65565b6110a5565b6040516104849190611e27565b61047761072d3660046119cc565b611127565b6104776107403660046119cc565b611152565b6104776107533660046119cc565b61117b565b6104776107663660046119cc565b61119d565b6104776107793660046119cc565b6111cb565b61047761078c3660046119cc565b6111f8565b61047761079f3660046119cc565b611221565b6104c66107b2366004611b02565b61125f565b6104776107c53660046119cc565b6112b0565b6104776107d83660046119cc565b6112e0565b6104c66107eb366004611b02565b611302565b6104c66107fe366004611b02565b611322565b610816610811366004611b02565b61145d565b6040516104849190611e4f565b6104776114b7565b6104776108393660046119cc565b6114f8565b61047761084c3660046119cc565b611521565b61047761085f3660046119cc565b611543565b610477610872366004611eaf565b61156e565b6104776108853660046119cc565b61159d565b6104776108983660046119cc565b6115c6565b6104776108ab3660046119cc565b6115ef565b6104776108be3660046119cc565b611618565b6104776108d13660046119cc565b611641565b6104776108e43660046119cc565b611675565b6104776108f73660046119cc565b611697565b61047761090a3660046119cc565b6116c0565b61047761091d3660046119cc565b6116e6565b6104776109303660046119cc565b611711565b6104776109433660046119cc565b61173b565b6104776109563660046119cc565b61175d565b6104776109693660046119cc565b61177f565b61047761097c3660046119cc565b6117ab565b61047761098f3660046119cc565b6117dd565b6104776109a23660046119cc565b611807565b6104776109b53660046119cc565b611830565b6104c66109c8366004611b02565b61185f565b6104776109db3660046119cc565b61189e565b6104776109ee3660046119cc565b6118c8565b610477610a013660046119cc565b6118f3565b610a19610a14366004611b02565b61191e565b6040516104849190611f0c565b610477610a343660046119cc565b61194c565b6000610a43610e22565b5065deadbeef00366000805b84811015610a6257369150600101610a4f565b50909392505050565b6000610a75610e22565b5065deadbeef00326000805b84811015610a6257329150600101610a81565b6000610a9e610e22565b5065deadbeef005260005b83811015610abe576000829052600101610aa9565b5092915050565b606060086040828451602086016000855af180610ae157600080fd5b5050919050565b6000610af2610e22565b5065deadbeef000160005b83811015610abe57600101610afd565b6000610b17610e22565b5065deadbeef001760008315610abe57600101610afd565b6000610b39610e22565b5065deadbeef00346000805b84811015610a6257349150600101610b45565b6000610b62610e22565b5065deadbeef000660005b83811015610abe5760001990910690600101610b6d565b6000610b8e610e22565b5065deadbeef00136000805b84811015610a62576001808413925001610b9a565b6000610bb9610e22565b506001600160e01b0319600090815265deadbeef002090805b84811015610be95760046000209150600101610bd2565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610abe575060009392505050565b6000610c25610e22565b5065deadbeef00a4601081905260005b83811015610abe576004600360028360066010a4600101610c35565b6000610c5b610e22565b5065deadbeef001a6000805b84811015610a6257600083901a9150600101610c67565b6000610c88610e22565b5065deadbeef001b60008315610abe57600101610afd565b6000610caa610e22565b5065deadbeef00426000805b84811015610a6257429150600101610cb6565b6000610cd3610e22565b5065deadbeef0031600030815b85811015610cf45781319250600101610ce0565b5091949350505050565b6000610d08610e22565b5065deadbeef00486000805b84811015610a6257489150600101610d14565b6000610d31610e22565b5065deadbeef003d6000805b84811015610a62573d9150600101610d3d565b6000610d5a610e22565b5065deadbeef00436000805b84811015610a6257439150600101610d66565b60028181548110610d8957600080fd5b906000526020600020018054909150610da190611f30565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcd90611f30565b8015610e1a5780601f10610def57610100808354040283529160200191610e1a565b820191906000526020600020905b815481529060010190602001808311610dfd57829003601f168201915b505050505081565b60008054610e31906001611f72565b6000819055919050565b6000610e45610e22565b5065deadbeef000460008315610abe57600101610afd565b6000610e67610e22565b5065deadbeef003760005b83811015610abe57602060008037600101610e72565b6000610e92610e22565b5065deadbeef00a0601081905260005b83811015610abe5760066010a0600101610ea2565b6000610ec1610e22565b5065deadbeef00336000805b84811015610a6257339150600101610ecd565b6000610eea610e22565b5065deadbeef005360005b83811015610abe5763deadbeef600052600101610ef5565b6000610f17610e22565b5065deadbeef003a6000805b84811015610a62573a9150600101610f23565b6000610f40610e22565b5065deadbeef00516000818152805b84811015610f64576000519150600101610f4f565b509392505050565b6000610f76610e22565b5065deadbeef001d60005b83811015610abe5760009190911d90600101610f81565b6060600560208301835160405160208183856000885af180610fb957600080fd5b5095945050505050565b600060026020830183518360208183856000885af180610fe257600080fd5b5050505050919050565b6000610ff6610e22565b505b6103e85a111561101f5760018060008282546110149190611f72565b90915550610ff89050565b5060015490565b6000611030610e22565b5065deadbeef00106000805b84811015610a6257600183811092500161103c565b600061105b610e22565b5065deadbeef00446000805b84811015610a6257449150600101611067565b6000611084610e22565b5065deadbeef00116000805b84811015610a62576001808411925001611090565b6110ad61197a565b60096110b761197a565b600088885160208a0151895160208b015160408c015160608d01518c5160208e01518d6040516020016110f39a99989796959493929190611fdb565b604051601f19818303018152604091825291508260d56020840186600019fa61111b57600080fd5b50979650505050505050565b6000611131610e22565b5065deadbeef003e60005b83811015610abe5760206000803e60010161113c565b600061115c610e22565b5065deadbeef00456000805b84811015610a6257459150600101611168565b6000611185610e22565b5065deadbeef000260008315610abe57600101610afd565b60006111a7610e22565b5065deadbeef000860005b83811015610abe576000196000830891506001016111b2565b60006111d5610e22565b5065deadbeef005460008181555b83811015610abe5760005491506001016111e3565b6000611202610e22565b5065deadbeef005a6000805b84811015610a62575a915060010161120e565b600061122b610e22565b5065deadbeef001960005b8381101561124957901990600101611236565b5065deadbeef0019811461125957195b92915050565b6060815160601461128b5760405162461bcd60e51b8152600401611282906120b7565b60405180910390fd5b600760208301835160408482846000875af1806112a757600080fd5b50505050919050565b60006112ba610e22565b5065deadbeef00a1601081905260005b83811015610abe578060066010a16001016112ca565b60006112ea610e22565b5065deadbeef001660008315610abe57600101610afd565b60606004602083018351604051818183856000885af180610fb957600080fd5b606061132c61197a565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b602082015261137d611995565b6261626360e81b81526000602082018190526040820181905260608201526113a361197a565b600360f81b81526000602082018190526113c2600c85858560016110a5565b90506113cc61197a565b7fba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d181527f7d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923602082015280518251146114365760405162461bcd60e51b81526004016112829061210d565b6020810151602083015114610fe25760405162461bcd60e51b815260040161128290612161565b600081516080146114805760405162461bcd60e51b8152600401611282906121a5565b6001602083016040840151601f1a602082015260206040516080836000865af1806114aa57600080fd5b6040515195945050505050565b60006114c1610e22565b505b6103e85a111561101f5760018060008282546114df9190611f72565b90915550506001546114f29043906121cb565b506114c3565b6000611502610e22565b5065deadbeef00466000805b84811015610a625746915060010161150e565b600061152b610e22565b5065deadbeef000560008315610abe57600101610afd565b600061154d610e22565b5065deadbeef003960005b83811015610abe57602060008039600101611558565b6002805460018101825560009182528390839060208420019161159291908361228c565b505060025492915050565b60006115a7610e22565b5065deadbeef00596000805b84811015610a62575991506001016115b3565b60006115d0610e22565b5065deadbeef00386000805b84811015610a62573891506001016115dc565b60006115f9610e22565b5065deadbeef00416000805b84811015610a6257419150600101611605565b6000611622610e22565b5065deadbeef00306000805b84811015610a625730915060010161162e565b600061164b610e22565b5065deadbeef00a3601081905260005b83811015610abe57600360028260066010a360010161165b565b600061167f610e22565b5065deadbeef000b60008315610abe57600101610afd565b60006116a1610e22565b5065deadbeef00476000805b84811015610a62574791506001016116ad565b60006116ca610e22565b5065deadbeef001c6000805b84811015610a62576001016116d6565b60006116f0610e22565b5065deadbeef00356000805b84811015610a625760003591506001016116fc565b600061171b610e22565b5065deadbeef005560005b83811015610abe576000829055600101611726565b6000611745610e22565b5065deadbeef001860008315610abe57600101610afd565b6000611767610e22565b5065deadbeef000360008315610abe57600101610afd565b6000611789610e22565b5065deadbeef000760005b83811015610abe5760001990910790600101611794565b60006117b5610e22565b5065deadbeef00a2601081905260005b83811015610abe5760028160066010a26001016117c5565b60006117e7610e22565b5065deadbeef000a60005b83811015610abe5760019182900a91016117f2565b6000611811610e22565b5065deadbeef00146000805b84811015610a625760019150810161181d565b600061183a610e22565b5065deadbeef004060006000194301815b85811015610cf4578140925060010161184b565b606081516080146118825760405162461bcd60e51b8152600401611282906120b7565b600660208301835160408482846000875af1806112a757600080fd5b60006118a8610e22565b5065deadbeef00156000805b84811015610a6257821591506001016118b4565b60006118d2610e22565b5065deadbeef00126000805b84811015610a625760018381129250016118de565b60006118fd610e22565b5065deadbeef003b600030815b85811015610cf457813b925060010161190a565b6000600360208301835160405160148183856000885af18061193f57600080fd5b8151979650505050505050565b6000611956610e22565b5065deadbeef000960005b83811015610abe57600019600183099150600101611961565b60405160408082018152600290829080368337509192915050565b6040516080808201604052600490829080368337509192915050565b805b81146119be57600080fd5b50565b8035611259816119b1565b6000602082840312156119e1576119e1600080fd5b60006119ed84846119c1565b949350505050565b805b82525050565b6020810161125982846119f5565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611a4757611a47611a0b565b6040525050565b6000611a5d6000604051905090565b9050611a698282611a21565b919050565b600067ffffffffffffffff821115611a8857611a88611a0b565b601f19601f83011660200192915050565b82818337506000910152565b6000611ab8611ab384611a6e565b611a4e565b905082815260208101848484011115611ad357611ad3600080fd5b610f64848285611a99565b600082601f830112611af257611af2600080fd5b81356119ed848260208601611aa5565b600060208284031215611b1757611b17600080fd5b813567ffffffffffffffff811115611b3157611b31600080fd5b6119ed84828501611ade565b60005b83811015611b58578082015183820152602001611b40565b50506000910152565b6000611b71826000815192915050565b808452602084019350611b88818560208601611b3d565b601f01601f19169290920192915050565b60208082528101611baa8184611b61565b9392505050565b63ffffffff81166119b3565b803561125981611bb1565b600067ffffffffffffffff821115611be257611be2611a0b565b5060200290565b6000611bf7611ab384611bc8565b90508060208402830185811115611c1057611c10600080fd5b835b81811015611c345780611c2588826119c1565b84525060209283019201611c12565b5050509392505050565b600082601f830112611c5257611c52600080fd5b60026119ed848285611be9565b6000611c6d611ab384611bc8565b90508060208402830185811115611c8657611c86600080fd5b835b81811015611c345780611c9b88826119c1565b84525060209283019201611c88565b600082601f830112611cbe57611cbe600080fd5b60046119ed848285611c5f565b6001600160c01b031981166119b3565b803561125981611ccb565b6000611cf4611ab384611bc8565b90508060208402830185811115611d0d57611d0d600080fd5b835b81811015611c345780611d228882611cdb565b84525060209283019201611d0f565b600082601f830112611d4557611d45600080fd5b60026119ed848285611ce6565b8015156119b3565b803561125981611d52565b60008060008060006101408688031215611d8157611d81600080fd5b6000611d8d8888611bbd565b9550506020611d9e88828901611c3e565b9450506060611daf88828901611caa565b93505060e0611dc088828901611d31565b925050610120611dd288828901611d5a565b9150509295509295909350565b6000611deb83836119f5565b505060200190565b6002818060005b83811015611e1f578151611e0e8782611ddf565b965060208301925050600101611dfa565b505050505050565b604081016112598284611df3565b60006001600160a01b038216611259565b6119f781611e35565b602081016112598284611e46565b60008083601f840112611e7257611e72600080fd5b50813567ffffffffffffffff811115611e8d57611e8d600080fd5b602083019150836001820283011115611ea857611ea8600080fd5b9250929050565b60008060208385031215611ec557611ec5600080fd5b823567ffffffffffffffff811115611edf57611edf600080fd5b611eeb85828601611e5d565b92509250509250929050565b6bffffffffffffffffffffffff1981166119f7565b602081016112598284611ef7565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611f4457607f821691505b602082108103611f5657611f56611f1a565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561125957611259611f5c565b60006112598260e01b90565b6119f763ffffffff8216611f85565b806119f7565b90565b6001600160c01b031981166119f7565b60006112598260f81b90565b600061125982611fb9565b6119f7811515611fc5565b6000611fe7828d611f91565b600482019150611ff7828c611fa0565b602082019150612007828b611fa0565b602082019150612017828a611fa0565b6020820191506120278289611fa0565b6020820191506120378288611fa0565b6020820191506120478287611fa0565b6020820191506120578286611fa9565b6008820191506120678285611fa9565b6008820191506120778284611fd0565b506001019a9950505050505050505050565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b6020808252810161125981612089565b602681526000602082017f54657374426c616b653266202d204669727374206861736820646f65736e2774815265040dac2e8c6d60d31b602082015291505b5060400190565b60208082528101611259816120c7565b602781526000602082017f54657374426c616b653266202d205365636f6e64206861736820646f65736e278152660e840dac2e8c6d60cb1b60208201529150612106565b602080825281016112598161211d565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e000000000000815291506120b0565b6020808252810161125981612171565b634e487b7160e01b600052601260045260246000fd5b6000826121da576121da6121b5565b500690565b6000611259611fa68381565b6121f4836121df565b815460001960089490940293841b1916921b91909117905550565b600061221c8184846121eb565b505050565b8181101561223c5761223460008261220f565b600101612221565b5050565b601f82111561221c5761225e81600081815281906020902092915050565b6020601f850104810160208510156122735750805b6122856020601f860104830182612221565b5050505050565b8267ffffffffffffffff8111156122a5576122a5611a0b565b6122af8254611f30565b6122ba828285612240565b6000601f8311600181146122ee57600084156122d65750858201355b600019600886021c1981166002860217865550612354565b601f19841661230886600081815281906020902092915050565b60005b8281101561232b578885013582556020948501946001909201910161230b565b8683101561234757600019601f88166008021c19858a01351682555b6001600288020188555050505b5050505050505056fea2646970667358221220d6b381722b3f56e634e9b06e6848e9f1cec2a7a6b188461432ac3cd6be20140f64736f6c63430008170033 +0x608060405234801561001057600080fd5b506124d5806100206000396000f3fe608060405234801561001057600080fd5b506004361061046a5760003560e01c806380947f801161024c578063bf529ca111610146578063dd9bef60116100c3578063f279ca8111610087578063f279ca81146109f8578063f4d1fc6114610a0b578063f58fc36a14610a1e578063f6b0bbf714610a31578063fde7721c14610a5157600080fd5b8063dd9bef6014610999578063de97a363146109ac578063e9f9b3f2146109bf578063ea5141e6146109d2578063edf003cf146109e557600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef1461093a578063d117320b1461094d578063d51e7b5b14610960578063d53ff3fd14610973578063d93cd5581461098657600080fd5b8063bf529ca1146108ce578063c360aba6146108e1578063c420eb61146108f4578063c4bd65d514610907578063c711e5391461091a57600080fd5b8063a18683cb116101d4578063b374012b11610198578063b374012b1461086f578063b3d847f214610882578063b7b8620714610895578063b81c1484146108a8578063bdc875fc146108bb57600080fd5b8063a18683cb1461080e578063a271b7211461082e578063a60a108714610836578063a645c9c214610849578063acaebdf61461085c57600080fd5b8063962e4dc21161021b578063962e4dc2146107af57806398456f3e146107c25780639a2b7c81146107d55780639cce7cf9146107e8578063a040aec6146107fb57600080fd5b806380947f8014610763578063880eff3914610776578063918a5fcd1461078957806391e7b2771461079c57600080fd5b80633430ec0611610368578063613d0a82116102e557806371d91d28116102a957806371d91d28146106f757806372de3cbd1461070a5780637b6e0b0e1461072a5780637c191d201461073d5780637de8c6f81461075057600080fd5b8063613d0a82146106a357806363138d4f146106b6578063659bbb4f146106c95780636e7f1fe7146106d15780636f099c8d146106e457600080fd5b806344cf3bc71161032c57806344cf3bc7146106445780634a61af1f146106575780634d2c74b31461066a5780635590c2d91461067d57806360e13cde1461069057600080fd5b80633430ec06146105f0578063371303c0146106035780633a411f121461060b5780633a425dfc1461061e57806340fe26621461063157600080fd5b806318093b46116103f6578063219cddeb116103ba578063219cddeb146105915780632294fc7f146105a45780632871ef85146105b75780632b21ef44146105ca5780632d34e798146105dd57600080fd5b806318093b461461053257806319b621d6146105455780631aba07ea146105585780631de2f3431461056b5780632007332e1461057e57600080fd5b80630ba8a73b1161043d5780630ba8a73b146104de5780631287a68c146104f1578063135d52f7146104f95780631581cf191461050c578063165821501461051f57600080fd5b8063034aef711461046f578063050082f814610498578063087b4e84146104ab5780630b3b996a146104be575b600080fd5b61048261047d366004611a7e565b610a64565b60405161048f9190611aaf565b60405180910390f35b6104826104a6366004611a7e565b610a96565b6104826104b9366004611a7e565b610abf565b6104d16104cc366004611bb4565b610af0565b60405161048f9190611c4b565b6104826104ec366004611a7e565b610b13565b600054610482565b610482610507366004611a7e565b610b38565b61048261051a366004611a7e565b610b5a565b61048261052d366004611a7e565b610b83565b610482610540366004611a7e565b610baf565b610482610553366004611a7e565b610bda565b610482610566366004611a7e565b610c46565b610482610579366004611a7e565b610c7c565b61048261058c366004611a7e565b610ca9565b61048261059f366004611a7e565b610ccb565b6104826105b2366004611a7e565b610cf4565b6104826105c5366004611a7e565b610d29565b6104826105d8366004611a7e565b610d52565b6104826105eb366004611a7e565b610d7b565b6104d16105fe366004611a7e565b610da4565b610482610e4d565b610482610619366004611a7e565b610e66565b61048261062c366004611a7e565b610e88565b61048261063f366004611a7e565b610eb3565b610482610652366004611a7e565b610ee2565b610482610665366004611a7e565b610f0b565b610482610678366004611a7e565b610f38565b61048261068b366004611a7e565b610f61565b61048261069e366004611a7e565b610f97565b6104d16106b1366004611bb4565b610fc3565b6104826106c4366004611bb4565b610fee565b610482611017565b6104826106df366004611a7e565b611051565b6104826106f2366004611a7e565b61107c565b610482610705366004611a7e565b6110a5565b61071d610718366004611e17565b6110d0565b60405161048f9190611ed9565b610482610738366004611a7e565b611152565b61048261074b366004611a7e565b61117d565b61048261075e366004611a7e565b6111a6565b610482610771366004611a7e565b6111c8565b610482610784366004611a7e565b6111f6565b610482610797366004611a7e565b611223565b6104826107aa366004611a7e565b61124c565b6104d16107bd366004611bb4565b61128a565b6104826107d0366004611a7e565b6112db565b6104826107e3366004611a7e565b61130b565b6104d16107f6366004611bb4565b61132d565b6104d1610809366004611bb4565b61134d565b61082161081c366004611bb4565b611488565b60405161048f9190611f01565b6104826114e2565b610482610844366004611a7e565b611523565b610482610857366004611a7e565b61154c565b61048261086a366004611a7e565b61156e565b61048261087d366004611f61565b611599565b610482610890366004611a7e565b6115c8565b6104826108a3366004611a7e565b6115f1565b6104826108b6366004611a7e565b61161a565b6104826108c9366004611a7e565b611643565b6104826108dc366004611a7e565b61166c565b6104826108ef366004611a7e565b6116a0565b610482610902366004611a7e565b6116c2565b610482610915366004611a7e565b6116eb565b61092d610928366004611bb4565b611711565b60405161048f9190611fb1565b610482610948366004611a7e565b611798565b61048261095b366004611a7e565b6117c3565b61048261096e366004611a7e565b6117ed565b610482610981366004611a7e565b61180f565b610482610994366004611a7e565b611831565b6104826109a7366004611a7e565b61185d565b6104826109ba366004611a7e565b61188f565b6104826109cd366004611a7e565b6118b9565b6104826109e0366004611a7e565b6118e2565b6104d16109f3366004611bb4565b611911565b610482610a06366004611a7e565b611950565b610482610a19366004611a7e565b61197a565b610482610a2c366004611a7e565b6119a5565b610a44610a3f366004611bb4565b6119d0565b60405161048f9190611fd4565b610482610a5f366004611a7e565b6119fe565b6000610a6e610e4d565b5065deadbeef00366000805b84811015610a8d57369150600101610a7a565b50909392505050565b6000610aa0610e4d565b5065deadbeef00326000805b84811015610a8d57329150600101610aac565b6000610ac9610e4d565b5065deadbeef005260005b83811015610ae9576000829052600101610ad4565b5092915050565b606060086040828451602086016000855af180610b0c57600080fd5b5050919050565b6000610b1d610e4d565b5065deadbeef000160005b83811015610ae957600101610b28565b6000610b42610e4d565b5065deadbeef001760008315610ae957600101610b28565b6000610b64610e4d565b5065deadbeef00346000805b84811015610a8d57349150600101610b70565b6000610b8d610e4d565b5065deadbeef000660005b83811015610ae95760001990910690600101610b98565b6000610bb9610e4d565b5065deadbeef00136000805b84811015610a8d576001808413925001610bc5565b6000610be4610e4d565b506001600160e01b0319600090815265deadbeef002090805b84811015610c145760046000209150600101610bfd565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610ae9575060009392505050565b6000610c50610e4d565b5065deadbeef00a4601081905260005b83811015610ae9576004600360028360066010a4600101610c60565b6000610c86610e4d565b5065deadbeef001a6000805b84811015610a8d57600083901a9150600101610c92565b6000610cb3610e4d565b5065deadbeef001b60008315610ae957600101610b28565b6000610cd5610e4d565b5065deadbeef00426000805b84811015610a8d57429150600101610ce1565b6000610cfe610e4d565b5065deadbeef0031600030815b85811015610d1f5781319250600101610d0b565b5091949350505050565b6000610d33610e4d565b5065deadbeef00486000805b84811015610a8d57489150600101610d3f565b6000610d5c610e4d565b5065deadbeef003d6000805b84811015610a8d573d9150600101610d68565b6000610d85610e4d565b5065deadbeef00436000805b84811015610a8d57439150600101610d91565b60028181548110610db457600080fd5b906000526020600020018054909150610dcc90611ff8565b80601f0160208091040260200160405190810160405280929190818152602001828054610df890611ff8565b8015610e455780601f10610e1a57610100808354040283529160200191610e45565b820191906000526020600020905b815481529060010190602001808311610e2857829003601f168201915b505050505081565b60008054610e5c90600161203a565b6000819055919050565b6000610e70610e4d565b5065deadbeef000460008315610ae957600101610b28565b6000610e92610e4d565b5065deadbeef003760005b83811015610ae957602060008037600101610e9d565b6000610ebd610e4d565b5065deadbeef00a0601081905260005b83811015610ae95760066010a0600101610ecd565b6000610eec610e4d565b5065deadbeef00336000805b84811015610a8d57339150600101610ef8565b6000610f15610e4d565b5065deadbeef005360005b83811015610ae95763deadbeef600052600101610f20565b6000610f42610e4d565b5065deadbeef003a6000805b84811015610a8d573a9150600101610f4e565b6000610f6b610e4d565b5065deadbeef00516000818152805b84811015610f8f576000519150600101610f7a565b509392505050565b6000610fa1610e4d565b5065deadbeef001d60005b83811015610ae95760009190911d90600101610fac565b6060600560208301835160405160208183856000885af180610fe457600080fd5b5095945050505050565b600060026020830183518360208183856000885af18061100d57600080fd5b5050505050919050565b6000611021610e4d565b505b6103e85a111561104a57600180600082825461103f919061203a565b909155506110239050565b5060015490565b600061105b610e4d565b5065deadbeef00106000805b84811015610a8d576001838110925001611067565b6000611086610e4d565b5065deadbeef00446000805b84811015610a8d57449150600101611092565b60006110af610e4d565b5065deadbeef00116000805b84811015610a8d5760018084119250016110bb565b6110d8611a2c565b60096110e2611a2c565b600088885160208a0151895160208b015160408c015160608d01518c5160208e01518d60405160200161111e9a999897969594939291906120a3565b604051601f19818303018152604091825291508260d56020840186600019fa61114657600080fd5b50979650505050505050565b600061115c610e4d565b5065deadbeef003e60005b83811015610ae95760206000803e600101611167565b6000611187610e4d565b5065deadbeef00456000805b84811015610a8d57459150600101611193565b60006111b0610e4d565b5065deadbeef000260008315610ae957600101610b28565b60006111d2610e4d565b5065deadbeef000860005b83811015610ae9576000196000830891506001016111dd565b6000611200610e4d565b5065deadbeef005460008181555b83811015610ae957600054915060010161120e565b600061122d610e4d565b5065deadbeef005a6000805b84811015610a8d575a9150600101611239565b6000611256610e4d565b5065deadbeef001960005b8381101561127457901990600101611261565b5065deadbeef0019811461128457195b92915050565b606081516060146112b65760405162461bcd60e51b81526004016112ad9061217f565b60405180910390fd5b600760208301835160408482846000875af1806112d257600080fd5b50505050919050565b60006112e5610e4d565b5065deadbeef00a1601081905260005b83811015610ae9578060066010a16001016112f5565b6000611315610e4d565b5065deadbeef001660008315610ae957600101610b28565b60606004602083018351604051818183856000885af180610fe457600080fd5b6060611357611a2c565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b60208201526113a8611a47565b6261626360e81b81526000602082018190526040820181905260608201526113ce611a2c565b600360f81b81526000602082018190526113ed600c85858560016110d0565b90506113f7611a2c565b7fba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d181527f7d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923602082015280518251146114615760405162461bcd60e51b81526004016112ad906121d5565b602081015160208301511461100d5760405162461bcd60e51b81526004016112ad90612229565b600081516080146114ab5760405162461bcd60e51b81526004016112ad9061226d565b6001602083016040840151601f1a602082015260206040516080836000865af1806114d557600080fd5b6040515195945050505050565b60006114ec610e4d565b505b6103e85a111561104a57600180600082825461150a919061203a565b909155505060015461151d904390612293565b506114ee565b600061152d610e4d565b5065deadbeef00466000805b84811015610a8d57469150600101611539565b6000611556610e4d565b5065deadbeef000560008315610ae957600101610b28565b6000611578610e4d565b5065deadbeef003960005b83811015610ae957602060008039600101611583565b600280546001810182556000918252839083906020842001916115bd919083612354565b505060025492915050565b60006115d2610e4d565b5065deadbeef00596000805b84811015610a8d575991506001016115de565b60006115fb610e4d565b5065deadbeef00386000805b84811015610a8d57389150600101611607565b6000611624610e4d565b5065deadbeef00416000805b84811015610a8d57419150600101611630565b600061164d610e4d565b5065deadbeef00306000805b84811015610a8d57309150600101611659565b6000611676610e4d565b5065deadbeef00a3601081905260005b83811015610ae957600360028260066010a3600101611686565b60006116aa610e4d565b5065deadbeef000b60008315610ae957600101610b28565b60006116cc610e4d565b5065deadbeef00476000805b84811015610a8d574791506001016116d8565b60006116f5610e4d565b5065deadbeef001c6000805b84811015610a8d57600101611701565b600061010081808285604051611727919061244d565b600060405180830381855afa9150503d8060008114611762576040513d603f01601f191681016040523d815291503d6000602084013e611767565b606091505b50915091508161177957611779612459565b60208101815181019061178c919061247e565b60011495945050505050565b60006117a2610e4d565b5065deadbeef00356000805b84811015610a8d5760003591506001016117ae565b60006117cd610e4d565b5065deadbeef005560005b83811015610ae95760008290556001016117d8565b60006117f7610e4d565b5065deadbeef001860008315610ae957600101610b28565b6000611819610e4d565b5065deadbeef000360008315610ae957600101610b28565b600061183b610e4d565b5065deadbeef000760005b83811015610ae95760001990910790600101611846565b6000611867610e4d565b5065deadbeef00a2601081905260005b83811015610ae95760028160066010a2600101611877565b6000611899610e4d565b5065deadbeef000a60005b83811015610ae95760019182900a91016118a4565b60006118c3610e4d565b5065deadbeef00146000805b84811015610a8d576001915081016118cf565b60006118ec610e4d565b5065deadbeef004060006000194301815b85811015610d1f57814092506001016118fd565b606081516080146119345760405162461bcd60e51b81526004016112ad9061217f565b600660208301835160408482846000875af1806112d257600080fd5b600061195a610e4d565b5065deadbeef00156000805b84811015610a8d5782159150600101611966565b6000611984610e4d565b5065deadbeef00126000805b84811015610a8d576001838112925001611990565b60006119af610e4d565b5065deadbeef003b600030815b85811015610d1f57813b92506001016119bc565b6000600360208301835160405160148183856000885af1806119f157600080fd5b8151979650505050505050565b6000611a08610e4d565b5065deadbeef000960005b83811015610ae957600019600183099150600101611a13565b60405160408082018152600290829080368337509192915050565b6040516080808201604052600490829080368337509192915050565b805b8114611a7057600080fd5b50565b803561128481611a63565b600060208284031215611a9357611a93600080fd5b6000611a9f8484611a73565b949350505050565b805b82525050565b602081016112848284611aa7565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611af957611af9611abd565b6040525050565b6000611b0f6000604051905090565b9050611b1b8282611ad3565b919050565b600067ffffffffffffffff821115611b3a57611b3a611abd565b601f19601f83011660200192915050565b82818337506000910152565b6000611b6a611b6584611b20565b611b00565b905082815260208101848484011115611b8557611b85600080fd5b610f8f848285611b4b565b600082601f830112611ba457611ba4600080fd5b8135611a9f848260208601611b57565b600060208284031215611bc957611bc9600080fd5b813567ffffffffffffffff811115611be357611be3600080fd5b611a9f84828501611b90565b60005b83811015611c0a578082015183820152602001611bf2565b50506000910152565b6000611c23826000815192915050565b808452602084019350611c3a818560208601611bef565b601f01601f19169290920192915050565b60208082528101611c5c8184611c13565b9392505050565b63ffffffff8116611a65565b803561128481611c63565b600067ffffffffffffffff821115611c9457611c94611abd565b5060200290565b6000611ca9611b6584611c7a565b90508060208402830185811115611cc257611cc2600080fd5b835b81811015611ce65780611cd78882611a73565b84525060209283019201611cc4565b5050509392505050565b600082601f830112611d0457611d04600080fd5b6002611a9f848285611c9b565b6000611d1f611b6584611c7a565b90508060208402830185811115611d3857611d38600080fd5b835b81811015611ce65780611d4d8882611a73565b84525060209283019201611d3a565b600082601f830112611d7057611d70600080fd5b6004611a9f848285611d11565b6001600160c01b03198116611a65565b803561128481611d7d565b6000611da6611b6584611c7a565b90508060208402830185811115611dbf57611dbf600080fd5b835b81811015611ce65780611dd48882611d8d565b84525060209283019201611dc1565b600082601f830112611df757611df7600080fd5b6002611a9f848285611d98565b801515611a65565b803561128481611e04565b60008060008060006101408688031215611e3357611e33600080fd5b6000611e3f8888611c6f565b9550506020611e5088828901611cf0565b9450506060611e6188828901611d5c565b93505060e0611e7288828901611de3565b925050610120611e8488828901611e0c565b9150509295509295909350565b6000611e9d8383611aa7565b505060200190565b6002818060005b83811015611ed1578151611ec08782611e91565b965060208301925050600101611eac565b505050505050565b604081016112848284611ea5565b60006001600160a01b038216611284565b611aa981611ee7565b602081016112848284611ef8565b60008083601f840112611f2457611f24600080fd5b50813567ffffffffffffffff811115611f3f57611f3f600080fd5b602083019150836001820283011115611f5a57611f5a600080fd5b9250929050565b60008060208385031215611f7757611f77600080fd5b823567ffffffffffffffff811115611f9157611f91600080fd5b611f9d85828601611f0f565b92509250509250929050565b801515611aa9565b602081016112848284611fa9565b6bffffffffffffffffffffffff198116611aa9565b602081016112848284611fbf565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061200c57607f821691505b60208210810361201e5761201e611fe2565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561128457611284612024565b60006112848260e01b90565b611aa963ffffffff821661204d565b80611aa9565b90565b6001600160c01b03198116611aa9565b60006112848260f81b90565b600061128482612081565b611aa981151561208d565b60006120af828d612059565b6004820191506120bf828c612068565b6020820191506120cf828b612068565b6020820191506120df828a612068565b6020820191506120ef8289612068565b6020820191506120ff8288612068565b60208201915061210f8287612068565b60208201915061211f8286612071565b60088201915061212f8285612071565b60088201915061213f8284612098565b506001019a9950505050505050505050565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b6020808252810161128481612151565b602681526000602082017f54657374426c616b653266202d204669727374206861736820646f65736e2774815265040dac2e8c6d60d31b602082015291505b5060400190565b602080825281016112848161218f565b602781526000602082017f54657374426c616b653266202d205365636f6e64206861736820646f65736e278152660e840dac2e8c6d60cb1b602082015291506121ce565b60208082528101611284816121e5565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e00000000000081529150612178565b6020808252810161128481612239565b634e487b7160e01b600052601260045260246000fd5b6000826122a2576122a261227d565b500690565b600061128461206e8381565b6122bc836122a7565b815460001960089490940293841b1916921b91909117905550565b60006122e48184846122b3565b505050565b81811015612304576122fc6000826122d7565b6001016122e9565b5050565b601f8211156122e45761232681600081815281906020902092915050565b6020601f8501048101602085101561233b5750805b61234d6020601f8601048301826122e9565b5050505050565b8267ffffffffffffffff81111561236d5761236d611abd565b6123778254611ff8565b612382828285612308565b6000601f8311600181146123b6576000841561239e5750858201355b600019600886021c198116600286021786555061241c565b601f1984166123d086600081815281906020902092915050565b60005b828110156123f357888501358255602094850194600190920191016123d3565b8683101561240f57600019601f88166008021c19858a01351682555b6001600288020188555050505b50505050505050565b6000612435826000815192915050565b612443818560208601611bef565b9290920192915050565b6000611c5c8284612425565b634e487b7160e01b600052600160045260246000fd5b60008151905061128481611a63565b60006020828403121561249357612493600080fd5b6000611a9f848461246f56fea2646970667358221220b21578c01b69894c3c314dadf93efcfd571584a59528c1a97d77099f311bc4f464736f6c63430008170033 diff --git a/bindings/tester/loadTester.go b/bindings/tester/loadTester.go index 265558920..fd5b0df48 100644 --- a/bindings/tester/loadTester.go +++ b/bindings/tester/loadTester.go @@ -31,8 +31,8 @@ var ( // LoadTesterMetaData contains all meta data concerning the LoadTester contract. var LoadTesterMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"F\",\"inputs\":[{\"name\":\"rounds\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"h\",\"type\":\"bytes32[2]\",\"internalType\":\"bytes32[2]\"},{\"name\":\"m\",\"type\":\"bytes32[4]\",\"internalType\":\"bytes32[4]\"},{\"name\":\"t\",\"type\":\"bytes8[2]\",\"internalType\":\"bytes8[2]\"},{\"name\":\"f\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[2]\",\"internalType\":\"bytes32[2]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"dumpster\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCallCounter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inc\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopBlockHashUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"store\",\"inputs\":[{\"name\":\"trash\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDRESS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testAND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBASEFEE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBLOCKHASH\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBYTE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBlake2f\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATALOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLVALUE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCHAINID\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODECOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCOINBASE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIFFICULTY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECAdd\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECMul\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECPairing\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECRecover\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEQ\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXTCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGAS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASLIMIT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASPRICE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testISZERO\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testIdentity\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG0\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG1\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG2\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG4\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE8\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMUL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMULMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testModExp\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNOT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNUMBER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testORIGIN\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRipemd160\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSAR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSELFBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA256\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSIGNEXTEND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSUB\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testTIMESTAMP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testXOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"}]", - Bin: "0x608060405234801561001057600080fd5b50612393806100206000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637de8c6f81161024c578063bdc875fc11610146578063dd9bef60116100c3578063f279ca8111610087578063f279ca81146109cd578063f4d1fc61146109e0578063f58fc36a146109f3578063f6b0bbf714610a06578063fde7721c14610a2657600080fd5b8063dd9bef601461096e578063de97a36314610981578063e9f9b3f214610994578063ea5141e6146109a7578063edf003cf146109ba57600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef1461090f578063d117320b14610922578063d51e7b5b14610935578063d53ff3fd14610948578063d93cd5581461095b57600080fd5b8063bdc875fc146108b0578063bf529ca1146108c3578063c360aba6146108d6578063c420eb61146108e9578063c4bd65d5146108fc57600080fd5b8063a040aec6116101d4578063acaebdf611610198578063acaebdf614610851578063b374012b14610864578063b3d847f214610877578063b7b862071461088a578063b81c14841461089d57600080fd5b8063a040aec6146107f0578063a18683cb14610803578063a271b72114610823578063a60a10871461082b578063a645c9c21461083e57600080fd5b806391e7b2771161021b57806391e7b27714610791578063962e4dc2146107a457806398456f3e146107b75780639a2b7c81146107ca5780639cce7cf9146107dd57600080fd5b80637de8c6f81461074557806380947f8014610758578063880eff391461076b578063918a5fcd1461077e57600080fd5b80633430ec061161035d57806360e13cde116102e55780636f099c8d116102a95780636f099c8d146106d957806371d91d28146106ec57806372de3cbd146106ff5780637b6e0b0e1461071f5780637c191d201461073257600080fd5b806360e13cde14610685578063613d0a821461069857806363138d4f146106ab578063659bbb4f146106be5780636e7f1fe7146106c657600080fd5b806340fe26621161032c57806340fe26621461062657806344cf3bc7146106395780634a61af1f1461064c5780634d2c74b31461065f5780635590c2d91461067257600080fd5b80633430ec06146105e5578063371303c0146105f85780633a411f12146106005780633a425dfc1461061357600080fd5b806318093b46116103eb578063219cddeb116103af578063219cddeb146105865780632294fc7f146105995780632871ef85146105ac5780632b21ef44146105bf5780632d34e798146105d257600080fd5b806318093b461461052757806319b621d61461053a5780631aba07ea1461054d5780631de2f343146105605780632007332e1461057357600080fd5b80630ba8a73b116104325780630ba8a73b146104d35780631287a68c146104e6578063135d52f7146104ee5780631581cf1914610501578063165821501461051457600080fd5b8063034aef7114610464578063050082f81461048d578063087b4e84146104a05780630b3b996a146104b3575b600080fd5b6104776104723660046119cc565b610a39565b60405161048491906119fd565b60405180910390f35b61047761049b3660046119cc565b610a6b565b6104776104ae3660046119cc565b610a94565b6104c66104c1366004611b02565b610ac5565b6040516104849190611b99565b6104776104e13660046119cc565b610ae8565b600054610477565b6104776104fc3660046119cc565b610b0d565b61047761050f3660046119cc565b610b2f565b6104776105223660046119cc565b610b58565b6104776105353660046119cc565b610b84565b6104776105483660046119cc565b610baf565b61047761055b3660046119cc565b610c1b565b61047761056e3660046119cc565b610c51565b6104776105813660046119cc565b610c7e565b6104776105943660046119cc565b610ca0565b6104776105a73660046119cc565b610cc9565b6104776105ba3660046119cc565b610cfe565b6104776105cd3660046119cc565b610d27565b6104776105e03660046119cc565b610d50565b6104c66105f33660046119cc565b610d79565b610477610e22565b61047761060e3660046119cc565b610e3b565b6104776106213660046119cc565b610e5d565b6104776106343660046119cc565b610e88565b6104776106473660046119cc565b610eb7565b61047761065a3660046119cc565b610ee0565b61047761066d3660046119cc565b610f0d565b6104776106803660046119cc565b610f36565b6104776106933660046119cc565b610f6c565b6104c66106a6366004611b02565b610f98565b6104776106b9366004611b02565b610fc3565b610477610fec565b6104776106d43660046119cc565b611026565b6104776106e73660046119cc565b611051565b6104776106fa3660046119cc565b61107a565b61071261070d366004611d65565b6110a5565b6040516104849190611e27565b61047761072d3660046119cc565b611127565b6104776107403660046119cc565b611152565b6104776107533660046119cc565b61117b565b6104776107663660046119cc565b61119d565b6104776107793660046119cc565b6111cb565b61047761078c3660046119cc565b6111f8565b61047761079f3660046119cc565b611221565b6104c66107b2366004611b02565b61125f565b6104776107c53660046119cc565b6112b0565b6104776107d83660046119cc565b6112e0565b6104c66107eb366004611b02565b611302565b6104c66107fe366004611b02565b611322565b610816610811366004611b02565b61145d565b6040516104849190611e4f565b6104776114b7565b6104776108393660046119cc565b6114f8565b61047761084c3660046119cc565b611521565b61047761085f3660046119cc565b611543565b610477610872366004611eaf565b61156e565b6104776108853660046119cc565b61159d565b6104776108983660046119cc565b6115c6565b6104776108ab3660046119cc565b6115ef565b6104776108be3660046119cc565b611618565b6104776108d13660046119cc565b611641565b6104776108e43660046119cc565b611675565b6104776108f73660046119cc565b611697565b61047761090a3660046119cc565b6116c0565b61047761091d3660046119cc565b6116e6565b6104776109303660046119cc565b611711565b6104776109433660046119cc565b61173b565b6104776109563660046119cc565b61175d565b6104776109693660046119cc565b61177f565b61047761097c3660046119cc565b6117ab565b61047761098f3660046119cc565b6117dd565b6104776109a23660046119cc565b611807565b6104776109b53660046119cc565b611830565b6104c66109c8366004611b02565b61185f565b6104776109db3660046119cc565b61189e565b6104776109ee3660046119cc565b6118c8565b610477610a013660046119cc565b6118f3565b610a19610a14366004611b02565b61191e565b6040516104849190611f0c565b610477610a343660046119cc565b61194c565b6000610a43610e22565b5065deadbeef00366000805b84811015610a6257369150600101610a4f565b50909392505050565b6000610a75610e22565b5065deadbeef00326000805b84811015610a6257329150600101610a81565b6000610a9e610e22565b5065deadbeef005260005b83811015610abe576000829052600101610aa9565b5092915050565b606060086040828451602086016000855af180610ae157600080fd5b5050919050565b6000610af2610e22565b5065deadbeef000160005b83811015610abe57600101610afd565b6000610b17610e22565b5065deadbeef001760008315610abe57600101610afd565b6000610b39610e22565b5065deadbeef00346000805b84811015610a6257349150600101610b45565b6000610b62610e22565b5065deadbeef000660005b83811015610abe5760001990910690600101610b6d565b6000610b8e610e22565b5065deadbeef00136000805b84811015610a62576001808413925001610b9a565b6000610bb9610e22565b506001600160e01b0319600090815265deadbeef002090805b84811015610be95760046000209150600101610bd2565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610abe575060009392505050565b6000610c25610e22565b5065deadbeef00a4601081905260005b83811015610abe576004600360028360066010a4600101610c35565b6000610c5b610e22565b5065deadbeef001a6000805b84811015610a6257600083901a9150600101610c67565b6000610c88610e22565b5065deadbeef001b60008315610abe57600101610afd565b6000610caa610e22565b5065deadbeef00426000805b84811015610a6257429150600101610cb6565b6000610cd3610e22565b5065deadbeef0031600030815b85811015610cf45781319250600101610ce0565b5091949350505050565b6000610d08610e22565b5065deadbeef00486000805b84811015610a6257489150600101610d14565b6000610d31610e22565b5065deadbeef003d6000805b84811015610a62573d9150600101610d3d565b6000610d5a610e22565b5065deadbeef00436000805b84811015610a6257439150600101610d66565b60028181548110610d8957600080fd5b906000526020600020018054909150610da190611f30565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcd90611f30565b8015610e1a5780601f10610def57610100808354040283529160200191610e1a565b820191906000526020600020905b815481529060010190602001808311610dfd57829003601f168201915b505050505081565b60008054610e31906001611f72565b6000819055919050565b6000610e45610e22565b5065deadbeef000460008315610abe57600101610afd565b6000610e67610e22565b5065deadbeef003760005b83811015610abe57602060008037600101610e72565b6000610e92610e22565b5065deadbeef00a0601081905260005b83811015610abe5760066010a0600101610ea2565b6000610ec1610e22565b5065deadbeef00336000805b84811015610a6257339150600101610ecd565b6000610eea610e22565b5065deadbeef005360005b83811015610abe5763deadbeef600052600101610ef5565b6000610f17610e22565b5065deadbeef003a6000805b84811015610a62573a9150600101610f23565b6000610f40610e22565b5065deadbeef00516000818152805b84811015610f64576000519150600101610f4f565b509392505050565b6000610f76610e22565b5065deadbeef001d60005b83811015610abe5760009190911d90600101610f81565b6060600560208301835160405160208183856000885af180610fb957600080fd5b5095945050505050565b600060026020830183518360208183856000885af180610fe257600080fd5b5050505050919050565b6000610ff6610e22565b505b6103e85a111561101f5760018060008282546110149190611f72565b90915550610ff89050565b5060015490565b6000611030610e22565b5065deadbeef00106000805b84811015610a6257600183811092500161103c565b600061105b610e22565b5065deadbeef00446000805b84811015610a6257449150600101611067565b6000611084610e22565b5065deadbeef00116000805b84811015610a62576001808411925001611090565b6110ad61197a565b60096110b761197a565b600088885160208a0151895160208b015160408c015160608d01518c5160208e01518d6040516020016110f39a99989796959493929190611fdb565b604051601f19818303018152604091825291508260d56020840186600019fa61111b57600080fd5b50979650505050505050565b6000611131610e22565b5065deadbeef003e60005b83811015610abe5760206000803e60010161113c565b600061115c610e22565b5065deadbeef00456000805b84811015610a6257459150600101611168565b6000611185610e22565b5065deadbeef000260008315610abe57600101610afd565b60006111a7610e22565b5065deadbeef000860005b83811015610abe576000196000830891506001016111b2565b60006111d5610e22565b5065deadbeef005460008181555b83811015610abe5760005491506001016111e3565b6000611202610e22565b5065deadbeef005a6000805b84811015610a62575a915060010161120e565b600061122b610e22565b5065deadbeef001960005b8381101561124957901990600101611236565b5065deadbeef0019811461125957195b92915050565b6060815160601461128b5760405162461bcd60e51b8152600401611282906120b7565b60405180910390fd5b600760208301835160408482846000875af1806112a757600080fd5b50505050919050565b60006112ba610e22565b5065deadbeef00a1601081905260005b83811015610abe578060066010a16001016112ca565b60006112ea610e22565b5065deadbeef001660008315610abe57600101610afd565b60606004602083018351604051818183856000885af180610fb957600080fd5b606061132c61197a565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b602082015261137d611995565b6261626360e81b81526000602082018190526040820181905260608201526113a361197a565b600360f81b81526000602082018190526113c2600c85858560016110a5565b90506113cc61197a565b7fba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d181527f7d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923602082015280518251146114365760405162461bcd60e51b81526004016112829061210d565b6020810151602083015114610fe25760405162461bcd60e51b815260040161128290612161565b600081516080146114805760405162461bcd60e51b8152600401611282906121a5565b6001602083016040840151601f1a602082015260206040516080836000865af1806114aa57600080fd5b6040515195945050505050565b60006114c1610e22565b505b6103e85a111561101f5760018060008282546114df9190611f72565b90915550506001546114f29043906121cb565b506114c3565b6000611502610e22565b5065deadbeef00466000805b84811015610a625746915060010161150e565b600061152b610e22565b5065deadbeef000560008315610abe57600101610afd565b600061154d610e22565b5065deadbeef003960005b83811015610abe57602060008039600101611558565b6002805460018101825560009182528390839060208420019161159291908361228c565b505060025492915050565b60006115a7610e22565b5065deadbeef00596000805b84811015610a62575991506001016115b3565b60006115d0610e22565b5065deadbeef00386000805b84811015610a62573891506001016115dc565b60006115f9610e22565b5065deadbeef00416000805b84811015610a6257419150600101611605565b6000611622610e22565b5065deadbeef00306000805b84811015610a625730915060010161162e565b600061164b610e22565b5065deadbeef00a3601081905260005b83811015610abe57600360028260066010a360010161165b565b600061167f610e22565b5065deadbeef000b60008315610abe57600101610afd565b60006116a1610e22565b5065deadbeef00476000805b84811015610a62574791506001016116ad565b60006116ca610e22565b5065deadbeef001c6000805b84811015610a62576001016116d6565b60006116f0610e22565b5065deadbeef00356000805b84811015610a625760003591506001016116fc565b600061171b610e22565b5065deadbeef005560005b83811015610abe576000829055600101611726565b6000611745610e22565b5065deadbeef001860008315610abe57600101610afd565b6000611767610e22565b5065deadbeef000360008315610abe57600101610afd565b6000611789610e22565b5065deadbeef000760005b83811015610abe5760001990910790600101611794565b60006117b5610e22565b5065deadbeef00a2601081905260005b83811015610abe5760028160066010a26001016117c5565b60006117e7610e22565b5065deadbeef000a60005b83811015610abe5760019182900a91016117f2565b6000611811610e22565b5065deadbeef00146000805b84811015610a625760019150810161181d565b600061183a610e22565b5065deadbeef004060006000194301815b85811015610cf4578140925060010161184b565b606081516080146118825760405162461bcd60e51b8152600401611282906120b7565b600660208301835160408482846000875af1806112a757600080fd5b60006118a8610e22565b5065deadbeef00156000805b84811015610a6257821591506001016118b4565b60006118d2610e22565b5065deadbeef00126000805b84811015610a625760018381129250016118de565b60006118fd610e22565b5065deadbeef003b600030815b85811015610cf457813b925060010161190a565b6000600360208301835160405160148183856000885af18061193f57600080fd5b8151979650505050505050565b6000611956610e22565b5065deadbeef000960005b83811015610abe57600019600183099150600101611961565b60405160408082018152600290829080368337509192915050565b6040516080808201604052600490829080368337509192915050565b805b81146119be57600080fd5b50565b8035611259816119b1565b6000602082840312156119e1576119e1600080fd5b60006119ed84846119c1565b949350505050565b805b82525050565b6020810161125982846119f5565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611a4757611a47611a0b565b6040525050565b6000611a5d6000604051905090565b9050611a698282611a21565b919050565b600067ffffffffffffffff821115611a8857611a88611a0b565b601f19601f83011660200192915050565b82818337506000910152565b6000611ab8611ab384611a6e565b611a4e565b905082815260208101848484011115611ad357611ad3600080fd5b610f64848285611a99565b600082601f830112611af257611af2600080fd5b81356119ed848260208601611aa5565b600060208284031215611b1757611b17600080fd5b813567ffffffffffffffff811115611b3157611b31600080fd5b6119ed84828501611ade565b60005b83811015611b58578082015183820152602001611b40565b50506000910152565b6000611b71826000815192915050565b808452602084019350611b88818560208601611b3d565b601f01601f19169290920192915050565b60208082528101611baa8184611b61565b9392505050565b63ffffffff81166119b3565b803561125981611bb1565b600067ffffffffffffffff821115611be257611be2611a0b565b5060200290565b6000611bf7611ab384611bc8565b90508060208402830185811115611c1057611c10600080fd5b835b81811015611c345780611c2588826119c1565b84525060209283019201611c12565b5050509392505050565b600082601f830112611c5257611c52600080fd5b60026119ed848285611be9565b6000611c6d611ab384611bc8565b90508060208402830185811115611c8657611c86600080fd5b835b81811015611c345780611c9b88826119c1565b84525060209283019201611c88565b600082601f830112611cbe57611cbe600080fd5b60046119ed848285611c5f565b6001600160c01b031981166119b3565b803561125981611ccb565b6000611cf4611ab384611bc8565b90508060208402830185811115611d0d57611d0d600080fd5b835b81811015611c345780611d228882611cdb565b84525060209283019201611d0f565b600082601f830112611d4557611d45600080fd5b60026119ed848285611ce6565b8015156119b3565b803561125981611d52565b60008060008060006101408688031215611d8157611d81600080fd5b6000611d8d8888611bbd565b9550506020611d9e88828901611c3e565b9450506060611daf88828901611caa565b93505060e0611dc088828901611d31565b925050610120611dd288828901611d5a565b9150509295509295909350565b6000611deb83836119f5565b505060200190565b6002818060005b83811015611e1f578151611e0e8782611ddf565b965060208301925050600101611dfa565b505050505050565b604081016112598284611df3565b60006001600160a01b038216611259565b6119f781611e35565b602081016112598284611e46565b60008083601f840112611e7257611e72600080fd5b50813567ffffffffffffffff811115611e8d57611e8d600080fd5b602083019150836001820283011115611ea857611ea8600080fd5b9250929050565b60008060208385031215611ec557611ec5600080fd5b823567ffffffffffffffff811115611edf57611edf600080fd5b611eeb85828601611e5d565b92509250509250929050565b6bffffffffffffffffffffffff1981166119f7565b602081016112598284611ef7565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611f4457607f821691505b602082108103611f5657611f56611f1a565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561125957611259611f5c565b60006112598260e01b90565b6119f763ffffffff8216611f85565b806119f7565b90565b6001600160c01b031981166119f7565b60006112598260f81b90565b600061125982611fb9565b6119f7811515611fc5565b6000611fe7828d611f91565b600482019150611ff7828c611fa0565b602082019150612007828b611fa0565b602082019150612017828a611fa0565b6020820191506120278289611fa0565b6020820191506120378288611fa0565b6020820191506120478287611fa0565b6020820191506120578286611fa9565b6008820191506120678285611fa9565b6008820191506120778284611fd0565b506001019a9950505050505050505050565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b6020808252810161125981612089565b602681526000602082017f54657374426c616b653266202d204669727374206861736820646f65736e2774815265040dac2e8c6d60d31b602082015291505b5060400190565b60208082528101611259816120c7565b602781526000602082017f54657374426c616b653266202d205365636f6e64206861736820646f65736e278152660e840dac2e8c6d60cb1b60208201529150612106565b602080825281016112598161211d565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e000000000000815291506120b0565b6020808252810161125981612171565b634e487b7160e01b600052601260045260246000fd5b6000826121da576121da6121b5565b500690565b6000611259611fa68381565b6121f4836121df565b815460001960089490940293841b1916921b91909117905550565b600061221c8184846121eb565b505050565b8181101561223c5761223460008261220f565b600101612221565b5050565b601f82111561221c5761225e81600081815281906020902092915050565b6020601f850104810160208510156122735750805b6122856020601f860104830182612221565b5050505050565b8267ffffffffffffffff8111156122a5576122a5611a0b565b6122af8254611f30565b6122ba828285612240565b6000601f8311600181146122ee57600084156122d65750858201355b600019600886021c1981166002860217865550612354565b601f19841661230886600081815281906020902092915050565b60005b8281101561232b578885013582556020948501946001909201910161230b565b8683101561234757600019601f88166008021c19858a01351682555b6001600288020188555050505b5050505050505056fea2646970667358221220d6b381722b3f56e634e9b06e6848e9f1cec2a7a6b188461432ac3cd6be20140f64736f6c63430008170033", + ABI: "[{\"type\":\"function\",\"name\":\"F\",\"inputs\":[{\"name\":\"rounds\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"h\",\"type\":\"bytes32[2]\",\"internalType\":\"bytes32[2]\"},{\"name\":\"m\",\"type\":\"bytes32[4]\",\"internalType\":\"bytes32[4]\"},{\"name\":\"t\",\"type\":\"bytes8[2]\",\"internalType\":\"bytes8[2]\"},{\"name\":\"f\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[2]\",\"internalType\":\"bytes32[2]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"dumpster\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCallCounter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inc\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopBlockHashUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"store\",\"inputs\":[{\"name\":\"trash\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDRESS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testAND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBASEFEE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBLOCKHASH\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBYTE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBlake2f\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATALOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLVALUE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCHAINID\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODECOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCOINBASE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIFFICULTY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECAdd\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECMul\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECPairing\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECRecover\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEQ\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXTCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGAS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASLIMIT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASPRICE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testISZERO\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testIdentity\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG0\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG1\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG2\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG4\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE8\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMUL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMULMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testModExp\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNOT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNUMBER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testORIGIN\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testP256Verify\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRipemd160\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSAR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSELFBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA256\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSIGNEXTEND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSUB\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testTIMESTAMP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testXOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"}]", + Bin: "0x608060405234801561001057600080fd5b506124d5806100206000396000f3fe608060405234801561001057600080fd5b506004361061046a5760003560e01c806380947f801161024c578063bf529ca111610146578063dd9bef60116100c3578063f279ca8111610087578063f279ca81146109f8578063f4d1fc6114610a0b578063f58fc36a14610a1e578063f6b0bbf714610a31578063fde7721c14610a5157600080fd5b8063dd9bef6014610999578063de97a363146109ac578063e9f9b3f2146109bf578063ea5141e6146109d2578063edf003cf146109e557600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef1461093a578063d117320b1461094d578063d51e7b5b14610960578063d53ff3fd14610973578063d93cd5581461098657600080fd5b8063bf529ca1146108ce578063c360aba6146108e1578063c420eb61146108f4578063c4bd65d514610907578063c711e5391461091a57600080fd5b8063a18683cb116101d4578063b374012b11610198578063b374012b1461086f578063b3d847f214610882578063b7b8620714610895578063b81c1484146108a8578063bdc875fc146108bb57600080fd5b8063a18683cb1461080e578063a271b7211461082e578063a60a108714610836578063a645c9c214610849578063acaebdf61461085c57600080fd5b8063962e4dc21161021b578063962e4dc2146107af57806398456f3e146107c25780639a2b7c81146107d55780639cce7cf9146107e8578063a040aec6146107fb57600080fd5b806380947f8014610763578063880eff3914610776578063918a5fcd1461078957806391e7b2771461079c57600080fd5b80633430ec0611610368578063613d0a82116102e557806371d91d28116102a957806371d91d28146106f757806372de3cbd1461070a5780637b6e0b0e1461072a5780637c191d201461073d5780637de8c6f81461075057600080fd5b8063613d0a82146106a357806363138d4f146106b6578063659bbb4f146106c95780636e7f1fe7146106d15780636f099c8d146106e457600080fd5b806344cf3bc71161032c57806344cf3bc7146106445780634a61af1f146106575780634d2c74b31461066a5780635590c2d91461067d57806360e13cde1461069057600080fd5b80633430ec06146105f0578063371303c0146106035780633a411f121461060b5780633a425dfc1461061e57806340fe26621461063157600080fd5b806318093b46116103f6578063219cddeb116103ba578063219cddeb146105915780632294fc7f146105a45780632871ef85146105b75780632b21ef44146105ca5780632d34e798146105dd57600080fd5b806318093b461461053257806319b621d6146105455780631aba07ea146105585780631de2f3431461056b5780632007332e1461057e57600080fd5b80630ba8a73b1161043d5780630ba8a73b146104de5780631287a68c146104f1578063135d52f7146104f95780631581cf191461050c578063165821501461051f57600080fd5b8063034aef711461046f578063050082f814610498578063087b4e84146104ab5780630b3b996a146104be575b600080fd5b61048261047d366004611a7e565b610a64565b60405161048f9190611aaf565b60405180910390f35b6104826104a6366004611a7e565b610a96565b6104826104b9366004611a7e565b610abf565b6104d16104cc366004611bb4565b610af0565b60405161048f9190611c4b565b6104826104ec366004611a7e565b610b13565b600054610482565b610482610507366004611a7e565b610b38565b61048261051a366004611a7e565b610b5a565b61048261052d366004611a7e565b610b83565b610482610540366004611a7e565b610baf565b610482610553366004611a7e565b610bda565b610482610566366004611a7e565b610c46565b610482610579366004611a7e565b610c7c565b61048261058c366004611a7e565b610ca9565b61048261059f366004611a7e565b610ccb565b6104826105b2366004611a7e565b610cf4565b6104826105c5366004611a7e565b610d29565b6104826105d8366004611a7e565b610d52565b6104826105eb366004611a7e565b610d7b565b6104d16105fe366004611a7e565b610da4565b610482610e4d565b610482610619366004611a7e565b610e66565b61048261062c366004611a7e565b610e88565b61048261063f366004611a7e565b610eb3565b610482610652366004611a7e565b610ee2565b610482610665366004611a7e565b610f0b565b610482610678366004611a7e565b610f38565b61048261068b366004611a7e565b610f61565b61048261069e366004611a7e565b610f97565b6104d16106b1366004611bb4565b610fc3565b6104826106c4366004611bb4565b610fee565b610482611017565b6104826106df366004611a7e565b611051565b6104826106f2366004611a7e565b61107c565b610482610705366004611a7e565b6110a5565b61071d610718366004611e17565b6110d0565b60405161048f9190611ed9565b610482610738366004611a7e565b611152565b61048261074b366004611a7e565b61117d565b61048261075e366004611a7e565b6111a6565b610482610771366004611a7e565b6111c8565b610482610784366004611a7e565b6111f6565b610482610797366004611a7e565b611223565b6104826107aa366004611a7e565b61124c565b6104d16107bd366004611bb4565b61128a565b6104826107d0366004611a7e565b6112db565b6104826107e3366004611a7e565b61130b565b6104d16107f6366004611bb4565b61132d565b6104d1610809366004611bb4565b61134d565b61082161081c366004611bb4565b611488565b60405161048f9190611f01565b6104826114e2565b610482610844366004611a7e565b611523565b610482610857366004611a7e565b61154c565b61048261086a366004611a7e565b61156e565b61048261087d366004611f61565b611599565b610482610890366004611a7e565b6115c8565b6104826108a3366004611a7e565b6115f1565b6104826108b6366004611a7e565b61161a565b6104826108c9366004611a7e565b611643565b6104826108dc366004611a7e565b61166c565b6104826108ef366004611a7e565b6116a0565b610482610902366004611a7e565b6116c2565b610482610915366004611a7e565b6116eb565b61092d610928366004611bb4565b611711565b60405161048f9190611fb1565b610482610948366004611a7e565b611798565b61048261095b366004611a7e565b6117c3565b61048261096e366004611a7e565b6117ed565b610482610981366004611a7e565b61180f565b610482610994366004611a7e565b611831565b6104826109a7366004611a7e565b61185d565b6104826109ba366004611a7e565b61188f565b6104826109cd366004611a7e565b6118b9565b6104826109e0366004611a7e565b6118e2565b6104d16109f3366004611bb4565b611911565b610482610a06366004611a7e565b611950565b610482610a19366004611a7e565b61197a565b610482610a2c366004611a7e565b6119a5565b610a44610a3f366004611bb4565b6119d0565b60405161048f9190611fd4565b610482610a5f366004611a7e565b6119fe565b6000610a6e610e4d565b5065deadbeef00366000805b84811015610a8d57369150600101610a7a565b50909392505050565b6000610aa0610e4d565b5065deadbeef00326000805b84811015610a8d57329150600101610aac565b6000610ac9610e4d565b5065deadbeef005260005b83811015610ae9576000829052600101610ad4565b5092915050565b606060086040828451602086016000855af180610b0c57600080fd5b5050919050565b6000610b1d610e4d565b5065deadbeef000160005b83811015610ae957600101610b28565b6000610b42610e4d565b5065deadbeef001760008315610ae957600101610b28565b6000610b64610e4d565b5065deadbeef00346000805b84811015610a8d57349150600101610b70565b6000610b8d610e4d565b5065deadbeef000660005b83811015610ae95760001990910690600101610b98565b6000610bb9610e4d565b5065deadbeef00136000805b84811015610a8d576001808413925001610bc5565b6000610be4610e4d565b506001600160e01b0319600090815265deadbeef002090805b84811015610c145760046000209150600101610bfd565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610ae9575060009392505050565b6000610c50610e4d565b5065deadbeef00a4601081905260005b83811015610ae9576004600360028360066010a4600101610c60565b6000610c86610e4d565b5065deadbeef001a6000805b84811015610a8d57600083901a9150600101610c92565b6000610cb3610e4d565b5065deadbeef001b60008315610ae957600101610b28565b6000610cd5610e4d565b5065deadbeef00426000805b84811015610a8d57429150600101610ce1565b6000610cfe610e4d565b5065deadbeef0031600030815b85811015610d1f5781319250600101610d0b565b5091949350505050565b6000610d33610e4d565b5065deadbeef00486000805b84811015610a8d57489150600101610d3f565b6000610d5c610e4d565b5065deadbeef003d6000805b84811015610a8d573d9150600101610d68565b6000610d85610e4d565b5065deadbeef00436000805b84811015610a8d57439150600101610d91565b60028181548110610db457600080fd5b906000526020600020018054909150610dcc90611ff8565b80601f0160208091040260200160405190810160405280929190818152602001828054610df890611ff8565b8015610e455780601f10610e1a57610100808354040283529160200191610e45565b820191906000526020600020905b815481529060010190602001808311610e2857829003601f168201915b505050505081565b60008054610e5c90600161203a565b6000819055919050565b6000610e70610e4d565b5065deadbeef000460008315610ae957600101610b28565b6000610e92610e4d565b5065deadbeef003760005b83811015610ae957602060008037600101610e9d565b6000610ebd610e4d565b5065deadbeef00a0601081905260005b83811015610ae95760066010a0600101610ecd565b6000610eec610e4d565b5065deadbeef00336000805b84811015610a8d57339150600101610ef8565b6000610f15610e4d565b5065deadbeef005360005b83811015610ae95763deadbeef600052600101610f20565b6000610f42610e4d565b5065deadbeef003a6000805b84811015610a8d573a9150600101610f4e565b6000610f6b610e4d565b5065deadbeef00516000818152805b84811015610f8f576000519150600101610f7a565b509392505050565b6000610fa1610e4d565b5065deadbeef001d60005b83811015610ae95760009190911d90600101610fac565b6060600560208301835160405160208183856000885af180610fe457600080fd5b5095945050505050565b600060026020830183518360208183856000885af18061100d57600080fd5b5050505050919050565b6000611021610e4d565b505b6103e85a111561104a57600180600082825461103f919061203a565b909155506110239050565b5060015490565b600061105b610e4d565b5065deadbeef00106000805b84811015610a8d576001838110925001611067565b6000611086610e4d565b5065deadbeef00446000805b84811015610a8d57449150600101611092565b60006110af610e4d565b5065deadbeef00116000805b84811015610a8d5760018084119250016110bb565b6110d8611a2c565b60096110e2611a2c565b600088885160208a0151895160208b015160408c015160608d01518c5160208e01518d60405160200161111e9a999897969594939291906120a3565b604051601f19818303018152604091825291508260d56020840186600019fa61114657600080fd5b50979650505050505050565b600061115c610e4d565b5065deadbeef003e60005b83811015610ae95760206000803e600101611167565b6000611187610e4d565b5065deadbeef00456000805b84811015610a8d57459150600101611193565b60006111b0610e4d565b5065deadbeef000260008315610ae957600101610b28565b60006111d2610e4d565b5065deadbeef000860005b83811015610ae9576000196000830891506001016111dd565b6000611200610e4d565b5065deadbeef005460008181555b83811015610ae957600054915060010161120e565b600061122d610e4d565b5065deadbeef005a6000805b84811015610a8d575a9150600101611239565b6000611256610e4d565b5065deadbeef001960005b8381101561127457901990600101611261565b5065deadbeef0019811461128457195b92915050565b606081516060146112b65760405162461bcd60e51b81526004016112ad9061217f565b60405180910390fd5b600760208301835160408482846000875af1806112d257600080fd5b50505050919050565b60006112e5610e4d565b5065deadbeef00a1601081905260005b83811015610ae9578060066010a16001016112f5565b6000611315610e4d565b5065deadbeef001660008315610ae957600101610b28565b60606004602083018351604051818183856000885af180610fe457600080fd5b6060611357611a2c565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b60208201526113a8611a47565b6261626360e81b81526000602082018190526040820181905260608201526113ce611a2c565b600360f81b81526000602082018190526113ed600c85858560016110d0565b90506113f7611a2c565b7fba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d181527f7d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923602082015280518251146114615760405162461bcd60e51b81526004016112ad906121d5565b602081015160208301511461100d5760405162461bcd60e51b81526004016112ad90612229565b600081516080146114ab5760405162461bcd60e51b81526004016112ad9061226d565b6001602083016040840151601f1a602082015260206040516080836000865af1806114d557600080fd5b6040515195945050505050565b60006114ec610e4d565b505b6103e85a111561104a57600180600082825461150a919061203a565b909155505060015461151d904390612293565b506114ee565b600061152d610e4d565b5065deadbeef00466000805b84811015610a8d57469150600101611539565b6000611556610e4d565b5065deadbeef000560008315610ae957600101610b28565b6000611578610e4d565b5065deadbeef003960005b83811015610ae957602060008039600101611583565b600280546001810182556000918252839083906020842001916115bd919083612354565b505060025492915050565b60006115d2610e4d565b5065deadbeef00596000805b84811015610a8d575991506001016115de565b60006115fb610e4d565b5065deadbeef00386000805b84811015610a8d57389150600101611607565b6000611624610e4d565b5065deadbeef00416000805b84811015610a8d57419150600101611630565b600061164d610e4d565b5065deadbeef00306000805b84811015610a8d57309150600101611659565b6000611676610e4d565b5065deadbeef00a3601081905260005b83811015610ae957600360028260066010a3600101611686565b60006116aa610e4d565b5065deadbeef000b60008315610ae957600101610b28565b60006116cc610e4d565b5065deadbeef00476000805b84811015610a8d574791506001016116d8565b60006116f5610e4d565b5065deadbeef001c6000805b84811015610a8d57600101611701565b600061010081808285604051611727919061244d565b600060405180830381855afa9150503d8060008114611762576040513d603f01601f191681016040523d815291503d6000602084013e611767565b606091505b50915091508161177957611779612459565b60208101815181019061178c919061247e565b60011495945050505050565b60006117a2610e4d565b5065deadbeef00356000805b84811015610a8d5760003591506001016117ae565b60006117cd610e4d565b5065deadbeef005560005b83811015610ae95760008290556001016117d8565b60006117f7610e4d565b5065deadbeef001860008315610ae957600101610b28565b6000611819610e4d565b5065deadbeef000360008315610ae957600101610b28565b600061183b610e4d565b5065deadbeef000760005b83811015610ae95760001990910790600101611846565b6000611867610e4d565b5065deadbeef00a2601081905260005b83811015610ae95760028160066010a2600101611877565b6000611899610e4d565b5065deadbeef000a60005b83811015610ae95760019182900a91016118a4565b60006118c3610e4d565b5065deadbeef00146000805b84811015610a8d576001915081016118cf565b60006118ec610e4d565b5065deadbeef004060006000194301815b85811015610d1f57814092506001016118fd565b606081516080146119345760405162461bcd60e51b81526004016112ad9061217f565b600660208301835160408482846000875af1806112d257600080fd5b600061195a610e4d565b5065deadbeef00156000805b84811015610a8d5782159150600101611966565b6000611984610e4d565b5065deadbeef00126000805b84811015610a8d576001838112925001611990565b60006119af610e4d565b5065deadbeef003b600030815b85811015610d1f57813b92506001016119bc565b6000600360208301835160405160148183856000885af1806119f157600080fd5b8151979650505050505050565b6000611a08610e4d565b5065deadbeef000960005b83811015610ae957600019600183099150600101611a13565b60405160408082018152600290829080368337509192915050565b6040516080808201604052600490829080368337509192915050565b805b8114611a7057600080fd5b50565b803561128481611a63565b600060208284031215611a9357611a93600080fd5b6000611a9f8484611a73565b949350505050565b805b82525050565b602081016112848284611aa7565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611af957611af9611abd565b6040525050565b6000611b0f6000604051905090565b9050611b1b8282611ad3565b919050565b600067ffffffffffffffff821115611b3a57611b3a611abd565b601f19601f83011660200192915050565b82818337506000910152565b6000611b6a611b6584611b20565b611b00565b905082815260208101848484011115611b8557611b85600080fd5b610f8f848285611b4b565b600082601f830112611ba457611ba4600080fd5b8135611a9f848260208601611b57565b600060208284031215611bc957611bc9600080fd5b813567ffffffffffffffff811115611be357611be3600080fd5b611a9f84828501611b90565b60005b83811015611c0a578082015183820152602001611bf2565b50506000910152565b6000611c23826000815192915050565b808452602084019350611c3a818560208601611bef565b601f01601f19169290920192915050565b60208082528101611c5c8184611c13565b9392505050565b63ffffffff8116611a65565b803561128481611c63565b600067ffffffffffffffff821115611c9457611c94611abd565b5060200290565b6000611ca9611b6584611c7a565b90508060208402830185811115611cc257611cc2600080fd5b835b81811015611ce65780611cd78882611a73565b84525060209283019201611cc4565b5050509392505050565b600082601f830112611d0457611d04600080fd5b6002611a9f848285611c9b565b6000611d1f611b6584611c7a565b90508060208402830185811115611d3857611d38600080fd5b835b81811015611ce65780611d4d8882611a73565b84525060209283019201611d3a565b600082601f830112611d7057611d70600080fd5b6004611a9f848285611d11565b6001600160c01b03198116611a65565b803561128481611d7d565b6000611da6611b6584611c7a565b90508060208402830185811115611dbf57611dbf600080fd5b835b81811015611ce65780611dd48882611d8d565b84525060209283019201611dc1565b600082601f830112611df757611df7600080fd5b6002611a9f848285611d98565b801515611a65565b803561128481611e04565b60008060008060006101408688031215611e3357611e33600080fd5b6000611e3f8888611c6f565b9550506020611e5088828901611cf0565b9450506060611e6188828901611d5c565b93505060e0611e7288828901611de3565b925050610120611e8488828901611e0c565b9150509295509295909350565b6000611e9d8383611aa7565b505060200190565b6002818060005b83811015611ed1578151611ec08782611e91565b965060208301925050600101611eac565b505050505050565b604081016112848284611ea5565b60006001600160a01b038216611284565b611aa981611ee7565b602081016112848284611ef8565b60008083601f840112611f2457611f24600080fd5b50813567ffffffffffffffff811115611f3f57611f3f600080fd5b602083019150836001820283011115611f5a57611f5a600080fd5b9250929050565b60008060208385031215611f7757611f77600080fd5b823567ffffffffffffffff811115611f9157611f91600080fd5b611f9d85828601611f0f565b92509250509250929050565b801515611aa9565b602081016112848284611fa9565b6bffffffffffffffffffffffff198116611aa9565b602081016112848284611fbf565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061200c57607f821691505b60208210810361201e5761201e611fe2565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561128457611284612024565b60006112848260e01b90565b611aa963ffffffff821661204d565b80611aa9565b90565b6001600160c01b03198116611aa9565b60006112848260f81b90565b600061128482612081565b611aa981151561208d565b60006120af828d612059565b6004820191506120bf828c612068565b6020820191506120cf828b612068565b6020820191506120df828a612068565b6020820191506120ef8289612068565b6020820191506120ff8288612068565b60208201915061210f8287612068565b60208201915061211f8286612071565b60088201915061212f8285612071565b60088201915061213f8284612098565b506001019a9950505050505050505050565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b6020808252810161128481612151565b602681526000602082017f54657374426c616b653266202d204669727374206861736820646f65736e2774815265040dac2e8c6d60d31b602082015291505b5060400190565b602080825281016112848161218f565b602781526000602082017f54657374426c616b653266202d205365636f6e64206861736820646f65736e278152660e840dac2e8c6d60cb1b602082015291506121ce565b60208082528101611284816121e5565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e00000000000081529150612178565b6020808252810161128481612239565b634e487b7160e01b600052601260045260246000fd5b6000826122a2576122a261227d565b500690565b600061128461206e8381565b6122bc836122a7565b815460001960089490940293841b1916921b91909117905550565b60006122e48184846122b3565b505050565b81811015612304576122fc6000826122d7565b6001016122e9565b5050565b601f8211156122e45761232681600081815281906020902092915050565b6020601f8501048101602085101561233b5750805b61234d6020601f8601048301826122e9565b5050505050565b8267ffffffffffffffff81111561236d5761236d611abd565b6123778254611ff8565b612382828285612308565b6000601f8311600181146123b6576000841561239e5750858201355b600019600886021c198116600286021786555061241c565b601f1984166123d086600081815281906020902092915050565b60005b828110156123f357888501358255602094850194600190920191016123d3565b8683101561240f57600019601f88166008021c19858a01351682555b6001600288020188555050505b50505050505050565b6000612435826000815192915050565b612443818560208601611bef565b9290920192915050565b6000611c5c8284612425565b634e487b7160e01b600052600160045260246000fd5b60008151905061128481611a63565b60006020828403121561249357612493600080fd5b6000611a9f848461246f56fea2646970667358221220b21578c01b69894c3c314dadf93efcfd571584a59528c1a97d77099f311bc4f464736f6c63430008170033", } // LoadTesterABI is the input ABI used to generate the binding from. @@ -1450,6 +1450,27 @@ func (_LoadTester *LoadTesterTransactorSession) TestORIGIN(x *big.Int) (*types.T return _LoadTester.Contract.TestORIGIN(&_LoadTester.TransactOpts, x) } +// TestP256Verify is a paid mutator transaction binding the contract method 0xc711e539. +// +// Solidity: function testP256Verify(bytes inputData) returns(bool) +func (_LoadTester *LoadTesterTransactor) TestP256Verify(opts *bind.TransactOpts, inputData []byte) (*types.Transaction, error) { + return _LoadTester.contract.Transact(opts, "testP256Verify", inputData) +} + +// TestP256Verify is a paid mutator transaction binding the contract method 0xc711e539. +// +// Solidity: function testP256Verify(bytes inputData) returns(bool) +func (_LoadTester *LoadTesterSession) TestP256Verify(inputData []byte) (*types.Transaction, error) { + return _LoadTester.Contract.TestP256Verify(&_LoadTester.TransactOpts, inputData) +} + +// TestP256Verify is a paid mutator transaction binding the contract method 0xc711e539. +// +// Solidity: function testP256Verify(bytes inputData) returns(bool) +func (_LoadTester *LoadTesterTransactorSession) TestP256Verify(inputData []byte) (*types.Transaction, error) { + return _LoadTester.Contract.TestP256Verify(&_LoadTester.TransactOpts, inputData) +} + // TestRETURNDATACOPY is a paid mutator transaction binding the contract method 0x7b6e0b0e. // // Solidity: function testRETURNDATACOPY(uint256 x) returns(uint256) diff --git a/bindings/tester/precompiles.go b/bindings/tester/precompiles.go index eb59e0e2e..853b9ad78 100644 --- a/bindings/tester/precompiles.go +++ b/bindings/tester/precompiles.go @@ -162,6 +162,18 @@ func GenerateBlake2FInput() []byte { return inputData } +func GenerateP256VerifyInput() []byte { + // Ethereum benchmark input for P256Verify + // https://github.com/ethereum/go-ethereum/pull/30043/files#diff-b8e213cc8b44bc7d5d5e727524d63e19dd0f21312713ce2471948d1f64db212cR404 + ethBenchmarkInput := "4cee90eb86eaa050036147a12d49004b6b9c72bd725d39d4785011fe190f0b4da73bd4903f0ce3b639bbbf6e8e80d16931ff4bcf5993d58468e8fb19086e8cac36dbcd03009df8c59286b162af3bd7fcc0450c9aa81be5d10d312af6c66b1d604aebd3099c618202fcfe16ae7770b0c49ab5eadf74b754204a3bb6060e44eff37618b065f9832de4ca6ca971a7a1adc826d0f7c00181a5fb2ddf79ae00b4e10e" + inputData, err := hex.DecodeString(ethBenchmarkInput) + if err != nil { + panic(err) + } + + return inputData +} + func CallPrecompiledContracts(address int, lt *LoadTester, opts *bind.TransactOpts, iterations uint64, privateKey *ecdsa.PrivateKey) (*ethtypes.Transaction, error) { var inputData []byte @@ -202,6 +214,10 @@ func CallPrecompiledContracts(address int, lt *LoadTester, opts *bind.TransactOp log.Trace().Str("method", "TestBlake2f").Msg("Executing contract method") inputData = GenerateECPairingInput() return lt.TestBlake2f(opts, inputData) + case 100: + log.Trace().Str("method", "TestP256Verify").Msg("Executing contract method") + inputData = GenerateP256VerifyInput() + return lt.TestP256Verify(opts, inputData) } return nil, fmt.Errorf("unrecognized precompiled address %d", address) @@ -218,6 +234,7 @@ func GetRandomPrecompiledContractAddress() int { // 7, // NOTE: ecMul requires a lot of gas and buggy 8, 9, + // 100, // P256Verify haven't been implemented on Ethereum yet } return codes[rand.Intn(len(codes))] diff --git a/contracts/src/tester/LoadTester.sol b/contracts/src/tester/LoadTester.sol index f2f3929cd..d180c58ac 100644 --- a/contracts/src/tester/LoadTester.sol +++ b/contracts/src/tester/LoadTester.sol @@ -947,4 +947,15 @@ contract LoadTester { } return output; } + + // RIP-7212 Precompile for secp256r1 Curve Support + // https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md + // Ref: https://github.com/daimo-eth/p256-verifier/blob/607d3ec8377a3f59d65eca60d87dee8485d2ebcc/src/P256.sol + function testP256Verify(bytes memory inputData) public returns (bool) { + address P256VERIFY_PRECOMPILED_CONTRACT = 0x0000000000000000000000000000000000000100; + (bool success, bytes memory ret) = P256VERIFY_PRECOMPILED_CONTRACT.staticcall(inputData); + assert(success); // never reverts, always returns 0 or 1 + + return abi.decode(ret, (uint256)) == 1; + } }