From d384c594804db8526d43178b69ad4bc9b84602bb Mon Sep 17 00:00:00 2001 From: rodiazet Date: Fri, 18 Nov 2022 16:01:58 +0100 Subject: [PATCH] EllipticCurve.sol added to benchmarks. --- benchmarks/main/elliptic_curve.json | 73 +++++++++++++++++++++++++++++ src/main/elliptic_curve.yml | 16 +++++++ 2 files changed, 89 insertions(+) create mode 100644 benchmarks/main/elliptic_curve.json create mode 100644 src/main/elliptic_curve.yml diff --git a/benchmarks/main/elliptic_curve.json b/benchmarks/main/elliptic_curve.json new file mode 100644 index 0000000..7a4f450 --- /dev/null +++ b/benchmarks/main/elliptic_curve.json @@ -0,0 +1,73 @@ +{ + "elliptic_curve" : { + "_info" : { + "comment" : "", + "filling-rpc-server" : "evm version 1.10.25-stable-69568c55", + "filling-tool-version" : "retesteth-0.2.2-testinfo+commit.766b4629.Linux.g++", + "generatedTestHash" : "c73c038616f010580ce240d0318686bf42eecc25ea4c0e579630a4215cdf3eca", + "labels" : { + "0" : "generateStealthAddress" + }, + "lllcversion" : "Error getting LLLC Version", + "solidity" : "Error getting solc Version", + "source" : "tmp/main/elliptic_curveFiller.yml", + "sourceHash" : "4f79fd263bab5c99097da61cbd06333059952cbca178907615d060fa41dd53c4" + }, + "env" : { + "currentBaseFee" : "0x01", + "currentCoinbase" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentDifficulty" : "0x01", + "currentGasLimit" : "0x3b9aca00", + "currentNumber" : "0x01", + "currentRandom" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "currentTimestamp" : "0x61a8d289", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "post" : { + "London" : [ + { + "hash" : "0x3cff3566fe764e254649c370c4b919ade0c2a6e53c69dbe6dc89f36ce05418e2", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "txbytes" : "0xf8858001843b9aca0094be7c43a58000000000000000000000000000000180a44d2b4d7fd952fe0740d9d14011fc8ead3ab7de3c739d3aa93ce9254c10b0134d80d26a301ca045bbf529b8a4f81175015f62c80d27217c55263413bf887f44478b52b75a567ea050b463b131558b4cc930f3a4c10829ae783836a8190f0fd892c88466e79a254b" + } + ] + }, + "pre" : { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x3b9aca00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0xbe7c43a580000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80638e56279e11610076578063af9af2181161005b578063af9af21814610166578063b86d52981461016f578063eeeac01e146101b457600080fd5b80638e56279e14610155578063997da8d41461015e57600080fd5b806303a507be146100a85780634d2b4d7f146100e25780635727dc5c146101265780637a308a4c1461012e575b600080fd5b6100cf7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179881565b6040519081526020015b60405180910390f35b6100f56100f0366004610ab0565b6101c1565b60408051938452602084019290925273ffffffffffffffffffffffffffffffffffffffff16908201526060016100d9565b6100cf600781565b6100cf7f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b881565b6100cf60025481565b6100cf600081565b6100cf60015481565b60005461018f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d9565b6100cf6401000003d01981565b600080600080600061021d867f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817987f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b860006401000003d019610327565b9150915060008061023c8860015460025460006401000003d019610327565b915091506000828260405160200161025e929190918252602082015260400190565b6040516020818303038152906040528051906020012090506102cd8160001c7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817987f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b860006401000003d019610327565b6001546002549295509093506102ed91858560006401000003d019610361565b6040805160208082019490945280820192909252805180830382018152606090920190528051910120949993985093965091945050505050565b600080600080600061033e8a8a8a60018b8b6103e9565b9250925092506103508383838961046b565b945094505050509550959350505050565b6000806000806000888b036103b157858061037e5761037e610ac9565b888b0860000361039757600080945094505050506103de565b6103a58b8b60018a8a6104da565b919450925090506103ca565b6103c28b8b60018c8c60018c61067d565b919450925090505b6103d68383838961046b565b945094505050505b965096945050505050565b60008060008860000361040357508691508590508461045f565b8860008060015b8315610456576001841615610430576104288383838f8f8f8e61067d565b919450925090505b61043b600285610af5565b935061044a8c8c8c8c8c6104da565b919d509b50995061040a565b91955093509150505b96509650969350505050565b600080600061047a85856109b5565b90506000848061048c5761048c610ac9565b8283099050600085806104a1576104a1610ac9565b828a099050600086806104b6576104b6610ac9565b87806104c4576104c4610ac9565b8486098a09919a91995090975050505050505050565b6000806000856000036104f4575086915085905084610672565b6000848061050457610504610ac9565b898a0990506000858061051957610519610ac9565b898a0990506000868061052e5761052e610ac9565b898a0990506000878061054357610543610ac9565b888061055157610551610ac9565b848e0960040990506000888061056957610569610ac9565b898061057757610577610ac9565b8a8061058557610585610ac9565b8586098c098a8061059857610598610ac9565b8760030908905088806105ad576105ad610ac9565b89806105bb576105bb610ac9565b8384086105c8908b610b17565b8a806105d6576105d6610ac9565b83840908945088806105ea576105ea610ac9565b89806105f8576105f8610ac9565b8a8061060657610606610ac9565b868709600809610616908b610b17565b8a8061062457610624610ac9565b8b8061063257610632610ac9565b61063c898e610b17565b86088409089350888061065157610651610ac9565b898061065f5761065f610ac9565b8c8e096002099497509295509293505050505b955095509592505050565b600080808915801561068d575088155b1561069f5750859150849050836109a8565b861580156106ab575085155b156106bd5750889150879050866109a8565b6106c5610a92565b84806106d3576106d3610ac9565b898a09815284806106e6576106e6610ac9565b81518a09602082015284806106fd576106fd610ac9565b8687096040820152848061071357610713610ac9565b604082015187096060820152604080516080810190915280868061073957610739610ac9565b60408401518e098152602001868061075357610753610ac9565b60608401518d098152602001868061076d5761076d610ac9565b83518b098152602001868061078457610784610ac9565b60208401518a099052604081015181519192501415806107ac57506060810151602082015114155b6107fd5760405162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e7374656164000060448201526064015b60405180910390fd5b610805610a92565b858061081357610813610ac9565b825161081f9088610b17565b6040840151088152858061083557610835610ac9565b60208301516108449088610b17565b6060840151086020820152858061085d5761085d610ac9565b815180096040820152858061087457610874610ac9565b815160408301510960608201526000868061089157610891610ac9565b60608301516108a09089610b17565b88806108ae576108ae610ac9565b6020850151800908905086806108c6576108c6610ac9565b87806108d4576108d4610ac9565b88806108e2576108e2610ac9565b60408501518651096002096108f79089610b17565b820890506000878061090b5761090b610ac9565b888061091957610919610ac9565b610923848b610b17565b8a8061093157610931610ac9565b6040870151885109086020850151099050878061095057610950610ac9565b888061095e5761095e610ac9565b6060850151602087015109610973908a610b17565b820890506000888061098757610987610ac9565b898061099557610995610ac9565b8b8f098551099297509095509093505050505b9750975097945050505050565b600082158015906109c65750818314155b80156109d157508115155b610a1d5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c6964206e756d62657200000000000000000000000000000000000060448201526064016107f4565b6000600183825b8615610a8557610a348783610af5565b9050828680610a4557610a45610ac9565b8780610a5357610a53610ac9565b858409610a609089610b17565b8608909450925086610a728183610b2a565b610a7c9084610b17565b97509150610a24565b5091925050505b92915050565b60405180608001604052806004906020820280368337509192915050565b600060208284031215610ac257600080fd5b5035919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082610b1257634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a8c57610a8c610adf565b8082028115828204841417610a8c57610a8c610adf56fea2646970667358221220e51aa577c72f718de4ec1a3d583c3182c1a21e0b500615e1b9b1b46de8fcba0964736f6c63430008110033", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x4d2b4d7fd952fe0740d9d14011fc8ead3ab7de3c739d3aa93ce9254c10b0134d80d26a30" + ], + "gasLimit" : [ + "0x3b9aca00" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "sender" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "to" : "0xbe7c43a580000000000000000000000000000001", + "value" : [ + "0x00" + ] + } + } +} \ No newline at end of file diff --git a/src/main/elliptic_curve.yml b/src/main/elliptic_curve.yml new file mode 100644 index 0000000..6c2e387 --- /dev/null +++ b/src/main/elliptic_curve.yml @@ -0,0 +1,16 @@ +# https://github.com/ethereum/EIPs/blob/5dc848e208ef4ae908f7847010aeb7061e95a883/assets/eip-5564/gnosisSafeModule.sol +# Remove GnosisSafe, PubStealthInfoContract and MyModule contracts +# Remove .../Module.sol import +# From MockSafe contract remove everything between lines 83-117 +# Add one dependency contract from the same folder https://github.com/ethereum/EIPs/blob/5dc848e208ef4ae908f7847010aeb7061e95a883/assets/eip-5564/EllipticCurve.sol +# Build with Solidity 0.8.17, optimizer enabled (1000 runs) +# Input patameter taken from https://github.com/ethereum/EIPs/blob/5dc848e208ef4ae908f7847010aeb7061e95a883/assets/eip-5564/minimal_poc.ipynb + +elliptic_curve: + pre: + '0xbe7c43a580000000000000000000000000000001': + code: '0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80638e56279e11610076578063af9af2181161005b578063af9af21814610166578063b86d52981461016f578063eeeac01e146101b457600080fd5b80638e56279e14610155578063997da8d41461015e57600080fd5b806303a507be146100a85780634d2b4d7f146100e25780635727dc5c146101265780637a308a4c1461012e575b600080fd5b6100cf7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179881565b6040519081526020015b60405180910390f35b6100f56100f0366004610ab0565b6101c1565b60408051938452602084019290925273ffffffffffffffffffffffffffffffffffffffff16908201526060016100d9565b6100cf600781565b6100cf7f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b881565b6100cf60025481565b6100cf600081565b6100cf60015481565b60005461018f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d9565b6100cf6401000003d01981565b600080600080600061021d867f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817987f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b860006401000003d019610327565b9150915060008061023c8860015460025460006401000003d019610327565b915091506000828260405160200161025e929190918252602082015260400190565b6040516020818303038152906040528051906020012090506102cd8160001c7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817987f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b860006401000003d019610327565b6001546002549295509093506102ed91858560006401000003d019610361565b6040805160208082019490945280820192909252805180830382018152606090920190528051910120949993985093965091945050505050565b600080600080600061033e8a8a8a60018b8b6103e9565b9250925092506103508383838961046b565b945094505050509550959350505050565b6000806000806000888b036103b157858061037e5761037e610ac9565b888b0860000361039757600080945094505050506103de565b6103a58b8b60018a8a6104da565b919450925090506103ca565b6103c28b8b60018c8c60018c61067d565b919450925090505b6103d68383838961046b565b945094505050505b965096945050505050565b60008060008860000361040357508691508590508461045f565b8860008060015b8315610456576001841615610430576104288383838f8f8f8e61067d565b919450925090505b61043b600285610af5565b935061044a8c8c8c8c8c6104da565b919d509b50995061040a565b91955093509150505b96509650969350505050565b600080600061047a85856109b5565b90506000848061048c5761048c610ac9565b8283099050600085806104a1576104a1610ac9565b828a099050600086806104b6576104b6610ac9565b87806104c4576104c4610ac9565b8486098a09919a91995090975050505050505050565b6000806000856000036104f4575086915085905084610672565b6000848061050457610504610ac9565b898a0990506000858061051957610519610ac9565b898a0990506000868061052e5761052e610ac9565b898a0990506000878061054357610543610ac9565b888061055157610551610ac9565b848e0960040990506000888061056957610569610ac9565b898061057757610577610ac9565b8a8061058557610585610ac9565b8586098c098a8061059857610598610ac9565b8760030908905088806105ad576105ad610ac9565b89806105bb576105bb610ac9565b8384086105c8908b610b17565b8a806105d6576105d6610ac9565b83840908945088806105ea576105ea610ac9565b89806105f8576105f8610ac9565b8a8061060657610606610ac9565b868709600809610616908b610b17565b8a8061062457610624610ac9565b8b8061063257610632610ac9565b61063c898e610b17565b86088409089350888061065157610651610ac9565b898061065f5761065f610ac9565b8c8e096002099497509295509293505050505b955095509592505050565b600080808915801561068d575088155b1561069f5750859150849050836109a8565b861580156106ab575085155b156106bd5750889150879050866109a8565b6106c5610a92565b84806106d3576106d3610ac9565b898a09815284806106e6576106e6610ac9565b81518a09602082015284806106fd576106fd610ac9565b8687096040820152848061071357610713610ac9565b604082015187096060820152604080516080810190915280868061073957610739610ac9565b60408401518e098152602001868061075357610753610ac9565b60608401518d098152602001868061076d5761076d610ac9565b83518b098152602001868061078457610784610ac9565b60208401518a099052604081015181519192501415806107ac57506060810151602082015114155b6107fd5760405162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e7374656164000060448201526064015b60405180910390fd5b610805610a92565b858061081357610813610ac9565b825161081f9088610b17565b6040840151088152858061083557610835610ac9565b60208301516108449088610b17565b6060840151086020820152858061085d5761085d610ac9565b815180096040820152858061087457610874610ac9565b815160408301510960608201526000868061089157610891610ac9565b60608301516108a09089610b17565b88806108ae576108ae610ac9565b6020850151800908905086806108c6576108c6610ac9565b87806108d4576108d4610ac9565b88806108e2576108e2610ac9565b60408501518651096002096108f79089610b17565b820890506000878061090b5761090b610ac9565b888061091957610919610ac9565b610923848b610b17565b8a8061093157610931610ac9565b6040870151885109086020850151099050878061095057610950610ac9565b888061095e5761095e610ac9565b6060850151602087015109610973908a610b17565b820890506000888061098757610987610ac9565b898061099557610995610ac9565b8b8f098551099297509095509093505050505b9750975097945050505050565b600082158015906109c65750818314155b80156109d157508115155b610a1d5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c6964206e756d62657200000000000000000000000000000000000060448201526064016107f4565b6000600183825b8615610a8557610a348783610af5565b9050828680610a4557610a45610ac9565b8780610a5357610a53610ac9565b858409610a609089610b17565b8608909450925086610a728183610b2a565b610a7c9084610b17565b97509150610a24565b5091925050505b92915050565b60405180608001604052806004906020820280368337509192915050565b600060208284031215610ac257600080fd5b5035919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082610b1257634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a8c57610a8c610adf565b8082028115828204841417610a8c57610a8c610adf56fea2646970667358221220e51aa577c72f718de4ec1a3d583c3182c1a21e0b500615e1b9b1b46de8fcba0964736f6c63430008110033' + transaction: + to: '0xbe7c43a580000000000000000000000000000001' + data: + - :label generateStealthAddress 0x4d2b4d7fd952fe0740d9d14011fc8ead3ab7de3c739d3aa93ce9254c10b0134d80d26a30