diff --git a/.gitignore b/.gitignore index 175cbd4..ab3c475 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # soldeer dependencies dependencies/ +node_modules/ + # forge cache cache/ out/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..928df0a --- /dev/null +++ b/.prettierrc @@ -0,0 +1,26 @@ +{ + "overrides": [ + { + "files": "*.sol", + "options": { + "printWidth": 120, + "tabWidth": 4, + "useTabs": false, + "singleQuote": false, + "bracketSpacing": true, + "explicitTypes": "always" + } + }, + { + "files": "*.{js,json,yml,yaml}", + "options": { + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": true, + "arrowParens": "avoid" + } + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..81ec0df --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,10 @@ +{ + "[solidity]": { + "editor.defaultFormatter": "JuanBlanco.solidity", + "editor.formatOnSave": true + }, + "editor.formatOnSave": true, + "editor.detectIndentation": false, + "editor.insertSpaces": true, + "editor.tabSize": 4 +} diff --git a/README.md b/README.md index bc8faf3..a7e46ba 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,9 @@ # BurrBear Oracle Registry -Each Burr Pool requires 2 oracles, a base token oracle and a quote token oracle. -For example, for the [NECT/HONEY](https://bartio.beratrail.io/address/0x39fca0a506d01ff9cb727fe8edf088e10f6b431a) pool, we have a NECT/USD and a HONEY/USD oracle. - -The Oracle Registry serves 2 purposes: - -- It acts as a registry of curated oracles that can be used to deploy new BurrPools permissionlessly -- It allows new projects to suggest new base token oracles to be whitelisted - -## Proposing a new oracle for a token - -To have an oracle approved by the registry, call the `suggestFeed` function: - -```solidity -function suggestFeed( - address quoteToken, // The quote token (e.g., HONEY) that this feed will be used with - address feedAddress, // The address of the Chainlink-compatible price feed - address[] calldata baseTokens // One or more base tokens that will use this feed -) external -``` - -For example, if you want to deploy a `NECT/HONEY` Burr Pool, you would first suggest the NECT/USD feed: - -```solidity -address honey = 0x0E4aaF1351de4c0264C5c7056Ef3777b41BD8e03; -address nectFeed = 0x...; // The NECT/USD chainlink-compatible feed -address[] memory baseTokens = new address[](1); -baseTokens[0] = 0xf5AFCF50006944d17226978e594D4D25f4f92B40; // NECT token address -registry.suggestFeed(honey, nectFeed, baseTokens); -``` - -Note: The feed must be approved by the registry owner before it can be used. - -### Suggesting a new base token for an existing oracle - -If an oracle feed is already approved and you want to use it for another base token, you can call the `suggestBaseToken` function: - -```solidity -function suggestBaseToken( - address quoteToken, // The quote token (e.g., HONEY) - address baseFeed, // The already approved oracle feed address - address baseToken // The new base token to associate with this feed -) external -``` - -## Feed requirements - -A feed must meet the following requirements to be approved: - -1. Its code must be verified (on etherscan or equivalent block explorer) -2. It must implement the [AggregatorV3Interface](./src/interfaces/AggregatorV3Interface.sol) interface and successfully return data via `latestRoundData()` -3. It must be decentralized: there should be no permissioned actions or actors that can alter the value of the price feed -4. The feed must not be pausable or cancellable -5. If its data comes from a decentralized protocol, it must use a TWAP source rather than spot price -6. Both the feed address and any associated base tokens must be valid addresses (non-zero) -7. All base tokens must implement the ERC20 interface - -## Deployed feeds - -| Chain | Feed Registry Address | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| Berachain bArtio | [0x952c430dCC00f623708d1CbBECe3A6f5741b1384](https://bartio.beratrail.io/address/0x952c430dCC00f623708d1CbBECe3A6f5741b1384) | - ## Setup ```bash forge soldeer install +npm install forge build ``` - -## Q&A - -Q: Why not allow BurrPools to be deployed with any base token oracles? - -A: Unlike standard AMMs that don't require oracles, a BurrPool can be compromised if the oracle feed is manipulated to reflect an incorrect price for the token. Therefore, we only whitelist oracle aggregator contracts that are decentralized and resilient to such attacks. - -Have questions? Reach us on Discord: https://discord.gg/zZh57URFCu diff --git a/broadcast/DeployFeedRegistry.s.sol/80084/deployBartio-latest.json b/broadcast/DeployFeedRegistry.s.sol/80084/deployBartio-latest.json deleted file mode 100644 index 750de96..0000000 --- a/broadcast/DeployFeedRegistry.s.sol/80084/deployBartio-latest.json +++ /dev/null @@ -1,732 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x20735999cb370e855533b61de4d4f7fc3a54ca55befcf0f314eb7248c0fddfdd", - "transactionType": "CREATE", - "contractName": "FeedRegistry", - "contractAddress": "0xfa157570d68683d1f92f8cea06b88dc1d8e7880e", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0x300f0d", - "value": "0x0", - "input": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612a52806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c80638da5cb5b116100fe578063c4d66de81161009e578063d83bd3341161006e578063d83bd3341461047d578063db89070314610490578063f2fde38b146104a3578063f315df86146104b6575f5ffd5b8063c4d66de81461041c578063c76ece321461042f578063d547741f14610457578063d54c954b1461046a575f5ffd5b8063a63112e7116100d9578063a63112e7146103b6578063ac77f572146103d6578063b8e10ab3146103f6578063be62d72514610409575f5ffd5b80638da5cb5b1461036c57806391d148541461039c578063a217fddf146103af575f5ffd5b80632f2ff15d11610174578063607c12b511610144578063607c12b5146103415780636d86b47814610349578063715018a61461035157806389ad750314610359575f5ffd5b80632f2ff15d146102e157806330eca4fa146102f457806336568abe1461030757806354fd4d501461031a575f5ffd5b8063174de83b116101af578063174de83b146102525780632288368d14610272578063248a9ca3146102ad5780632b898c25146102ce575f5ffd5b8063011aa7ce146101d557806301ffc9a7146101ea5780630a6c790e14610212575b5f5ffd5b6101e86101e33660046124af565b6104c9565b005b6101fd6101f83660046124e6565b6106da565b60405190151581526020015b60405180910390f35b61023a610220366004612514565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610209565b6102656102603660046124af565b610710565b604051610209919061252f565b61028561028036600461257a565b610812565b604080516001600160a01b039485168152939092166020840152151590820152606001610209565b6102c06102bb36600461257a565b610856565b604051908152602001610209565b6101e86102dc3660046124af565b610876565b6101e86102ef366004612591565b610bd1565b6101e86103023660046125b4565b610bf3565b6101e8610315366004612591565b610e26565b60408051808201825260058152640312e302e360dc1b6020820152905161020991906125fc565b610265610e5e565b610265610ebd565b6101e8610f1b565b6101e8610367366004612645565b610f2e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661023a565b6101fd6103aa366004612591565b610f44565b6102c05f81565b6103c96103c43660046124af565b610f7a565b604051610209919061278a565b6103e96103e4366004612514565b611052565b604051610209919061279c565b6101e86104043660046125b4565b611150565b6101e86104173660046127ff565b61134f565b6101e861042a366004612514565b611676565b61023a61043d366004612514565b60066020525f90815260409020546001600160a01b031681565b6101e8610465366004612591565b61178f565b6103c96104783660046124af565b6117ab565b6101e861048b36600461257a565b6118bc565b6101fd61049e3660046124af565b611c8b565b6101e86104b1366004612514565b611d00565b6101e86104c4366004612514565b611d42565b6104d1611f73565b6104da82611fce565b6001600160a01b0381166105015760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166105285760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260056020526040902054161561056057604051636d12062960e01b815260040160405180910390fd5b6001600160a01b038281165f908152600660205260409020541615610598576040516317759ec560e31b815260040160405180910390fd5b816001600160a01b0316816001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105de573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106029190612890565b6001600160a01b0316146106295760405163ef6f1f1560e01b815260040160405180910390fd5b5f8054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b039485166001600160a01b0319918216811790925582548084019093557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690920180549590941694821685179093558282526005602090815260408084208054841687179055948352600690529290208054909216179055565b5f6001600160e01b03198216637965db0b60e01b148061070a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b038083165f90815260066020526040902054606091168061074b576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020908152604080832087851684529091529020600101541661079257604051633917193960e01b815260040160405180910390fd5b6001600160a01b038082165f908152600260208181526040808420948816845293815291839020018054835181840281018401909452808452909183018282801561080457602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116107e6575b505050505091505092915050565b60048181548110610821575f80fd5b5f918252602090912060039091020180546001909101546001600160a01b03918216925090811690600160a01b900460ff1683565b5f9081525f5160206129fd5f395f51905f52602052604090206001015490565b61087e611f73565b6001600160a01b038083165f9081526006602052604090205416806108b6576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff161515868301529283018054825181850281018501909352808352949594606086019383018282801561095957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161093b575b5050505050815250509050806040015161098657604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038083165f908152600260208181526040808420948816845293905291812080546001600160a01b03191681556001810180546001600160a81b0319169055916109d9908301826123cd565b5050604080516001600160a01b03851660208201525f917f0caceb24b146885ae17af1b1d0d14fcb3bba2b85301c273d73d3f506e1287333910160408051601f1981840301815290829052610a3192916020016128c2565b6040516020818303038152906040529050610a4c8382612055565b6001600160a01b0383165f908152600360205260408120805490915b81811015610bc757866001600160a01b0316838281548110610a8c57610a8c6128e5565b5f9182526020909120600160039092020101546001600160a01b031603610bbf5782610ab96001846128f9565b81548110610ac957610ac96128e5565b905f5260205f209060030201838281548110610ae757610ae76128e5565b5f9182526020909120825460039092020180546001600160a01b03199081166001600160a01b039384161782556001808501805491840180549384169290951691821785555460ff600160a01b91829004161515026001600160a81b0319909216171790915560028083018054610b6192840191906123e8565b5090505082805480610b7557610b75612918565b5f8281526020812060035f199093019283020180546001600160a01b03191681556001810180546001600160a81b031916905590610bb660028301826123cd565b50509055610bc7565b600101610a68565b5050505050505050565b610bda82610856565b610be381612117565b610bed8383612121565b50505050565b610bfb611f73565b610c0481611fce565b6001600160a01b038084165f908152600660205260409020541680610c3c576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420888616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff1615158683015292830180548251818502810185019093528083529495946060860193830182828015610cdf57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610cc1575b50505050508152505090508060400151610d0c57604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038316610d335760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038083165f9081526002602081815260408084209489168452939052918120909101905b8154811015610dbd57846001600160a01b0316828281548110610d8357610d836128e5565b5f918252602090912001546001600160a01b031603610db55760405163156e81c160e01b815260040160405180910390fd5b600101610d5e565b5080546001810182555f8281526020812090910180546001600160a01b0319166001600160a01b038781169182179092556040519092888316928a16917ff9db191d3792b8afaf5841efb4f9735e3167d63b05aecd33611fa471f011bab49190a4505050505050565b6001600160a01b0381163314610e4f5760405163334bd91960e11b815260040160405180910390fd5b610e5982826121c2565b505050565b60605f805480602002602001604051908101604052809291908181526020018280548015610eb357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e95575b5050505050905090565b60606001805480602002602001604051908101604052809291908181526020018280548015610eb357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610e95575050505050905090565b610f23611f73565b610f2c5f61223b565b565b610f36611f73565b610f408282612055565b5050565b5f9182525f5160206129fd5f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038381165f90815260026020818152604080842087861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff16151585850152918201805484518184028101840190955280855292936060860193909283018282801561104157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611023575b505050505081525050905092915050565b6001600160a01b0381165f908152600360209081526040808320805482518185028101850190935280835260609492939192909184015b82821015611145575f848152602090819020604080516080810182526003860290920180546001600160a01b039081168452600182015490811684860152600160a01b900460ff161515838301526002810180548351818702810187019094528084529394919360608601939283018282801561112d57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161110f575b50505050508152505081526020019060010190611089565b505050509050919050565b611158611f73565b6001600160a01b038084165f908152600660205260409020541680611190576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020908152604080832093871683529290522060010154600160a01b900460ff166111df57604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452939052918120909101905b81548110156112fd57836001600160a01b031682828154811061122f5761122f6128e5565b5f918252602090912001546001600160a01b0316036112f55781548290611258906001906128f9565b81548110611268576112686128e5565b905f5260205f20015f9054906101000a90046001600160a01b0316828281548110611295576112956128e5565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806112d0576112d0612918565b5f8281526020902081015f1990810180546001600160a01b03191690550190556112fd565b60010161120a565b50826001600160a01b0316846001600160a01b0316866001600160a01b03167f4d8e071328dfcff5c4f279128b8f4db38b041857318f4d8cca948a4378ffe1f560405160405180910390a45050505050565b6001600160a01b038085165f908152600660205260409020541680611387576040516394e72c6b60e01b815260040160405180910390fd5b611390846122ab565b6001600160a01b038181165f908152600260209081526040808320888516845290915290205416156113d5576040516328dbb26760e01b815260040160405180910390fd5b5f849050806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611415573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611439919061294a565b505f93505050505b83811015611527575f85858381811061145c5761145c6128e5565b90506020020160208101906114719190612514565b6001600160a01b0316036114985760405163e6c4247b60e01b815260040160405180910390fd5b8484828181106114aa576114aa6128e5565b90506020020160208101906114bf9190612514565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151e9190612998565b50600101611441565b5060046040518060800160405280846001600160a01b03168152602001876001600160a01b031681526020015f151581526020018686808060200260200160405190810160405280939291908181526020018383602002808284375f920182905250939094525050835460018181018655948252602091829020845160039092020180546001600160a01b039283166001600160a01b031990911617815582850151958101805460408701511515600160a01b026001600160a81b031990911697909316969096179190911790945560608301518051939493611614935060028501929190910190612434565b505050846001600160a01b0316866001600160a01b0316336001600160a01b03167fffe49f0e12199dc72fb2bc88e28aa3912ec8e97d13576aaebe24a5b11551e3b687876040516116669291906129af565b60405180910390a4505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156116bb5750825b90505f8267ffffffffffffffff1660011480156116d75750303b155b9050811580156116e5575080155b156117035760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561172d57845460ff60401b1916600160401b1785555b61173686612332565b6117405f87612121565b50831561178757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61179882610856565b6117a181612117565b610bed83836121c2565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038084165f908152600660205260409020541680611805576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020818152604080842088861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156118aa57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161188c575b50505050508152505091505092915050565b6118c4611f73565b60045481106118e657604051633917193960e01b815260040160405180910390fd5b5f600482815481106118fa576118fa6128e5565b5f91825260209182902060408051608081018252600390930290910180546001600160a01b03908116845260018201549081168486015260ff600160a01b909104161515838301526002810180548351818702810187019094528084529394919360608601939283018282801561199857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161197a575b5050509190925250505060208101519091506001600160a01b0381166119d157604051633917193960e01b815260040160405180910390fd5b6001604080840182815284516001600160a01b038082165f908152600560209081528582205460028083528784208a86168552835296909220895181549085166001600160a01b0319909116178155818a0151978101805496511515600160a01b026001600160a81b031990971698851698909817959095179096556060880151805193969190921694889493611a7093918501929190910190612434565b5050506001600160a01b038281165f908152600360208181526040808420805460018082018355918652948390208a519590940290930180546001600160a01b031916948616949094178455888201519284018054918a0151939095166001600160a81b031990911617600160a01b9215159290920291909117909255606086015180518793611b07926002850192910190612434565b5050604080516001600160a01b03861660208201525f92507f3817cb52b411ba6b992602ea533a928f30d1391a9c6e2e221d53a7ef07482f43910160408051601f1981840301815290829052611b6092916020016128c2565b6040516020818303038152906040529050611b7b8382612055565b60048681548110611b8e57611b8e6128e5565b5f9182526020822060039091020180546001600160a01b03191681556001810180546001600160a81b031916905590611bca60028301826123cd565b5050836001600160a01b0316826001600160a01b03167f9248b8612daaf0886d656b647e989378fea4de940d2217263536e28bb0e4c48560405160405180910390a36060850151515f5b81811015610bc75786606001518181518110611c3257611c326128e5565b60200260200101516001600160a01b0316866001600160a01b0316856001600160a01b03167ff9db191d3792b8afaf5841efb4f9735e3167d63b05aecd33611fa471f011bab460405160405180910390a4600101611c14565b6001600160a01b038083165f9081526006602052604081205490911680611cc5576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b039081165f9081526002602090815260408083209386168352929052206001015460ff600160a01b90910416905092915050565b611d08611f73565b6001600160a01b038116611d3657604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b611d3f8161223b565b50565b611d4a611f73565b6001600160a01b038082165f81815260056020818152604080842080549096168085526006835290842080546001600160a01b03199081169091559484529190528354909216909255815490915b81811015611e7e57836001600160a01b03165f8281548110611dbc57611dbc6128e5565b5f918252602090912001546001600160a01b031603611e76575f611de16001846128f9565b81548110611df157611df16128e5565b5f91825260208220015481546001600160a01b03909116919083908110611e1a57611e1a6128e5565b5f918252602082200180546001600160a01b0319166001600160a01b039390931692909217909155805480611e5157611e51612918565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611e7e565b600101611d98565b50506001545f5b81811015610bed57826001600160a01b031660018281548110611eaa57611eaa6128e5565b5f918252602090912001546001600160a01b031603611f6b576001611ecf81846128f9565b81548110611edf57611edf6128e5565b5f91825260209091200154600180546001600160a01b039092169183908110611f0a57611f0a6128e5565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611f4657611f46612918565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610bed565b600101611e85565b33611fa57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f2c5760405163118cdaa760e01b8152336004820152602401611d2d565b6001600160a01b038116611ff55760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612031573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f409190612998565b6001600160a01b038281165f908152600560205260409020541661208c576040516394e72c6b60e01b815260040160405180910390fd5b5f5f836001600160a01b0316836040516120a691906129f1565b5f604051808303815f865af19150503d805f81146120df576040519150601f19603f3d011682016040523d82523d5f602084013e6120e4565b606091505b509150915081610bed578051156120fe5780518082602001fd5b604051638c76daeb60e01b815260040160405180910390fd5b611d3f8133612343565b5f5f5160206129fd5f395f51905f5261213a8484610f44565b6121b9575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561216f3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061070a565b5f91505061070a565b5f5f5160206129fd5f395f51905f526121db8484610f44565b156121b9575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061070a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b0381166122d25760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561230e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611787919061294a565b61233a61237c565b611d3f816123c5565b61234d8282610f44565b610f405760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401611d2d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610f2c57604051631afcd79f60e31b815260040160405180910390fd5b611d0861237c565b5080545f8255905f5260205f2090810190611d3f9190612487565b828054828255905f5260205f20908101928215612424575f5260205f209182015b82811115612424578254825591600101919060010190612409565b50612430929150612487565b5090565b828054828255905f5260205f20908101928215612424579160200282015b8281111561242457825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612452565b5b80821115612430575f8155600101612488565b6001600160a01b0381168114611d3f575f5ffd5b5f5f604083850312156124c0575f5ffd5b82356124cb8161249b565b915060208301356124db8161249b565b809150509250929050565b5f602082840312156124f6575f5ffd5b81356001600160e01b03198116811461250d575f5ffd5b9392505050565b5f60208284031215612524575f5ffd5b813561250d8161249b565b602080825282518282018190525f918401906040840190835b8181101561256f5783516001600160a01b0316835260209384019390920191600101612548565b509095945050505050565b5f6020828403121561258a575f5ffd5b5035919050565b5f5f604083850312156125a2575f5ffd5b8235915060208301356124db8161249b565b5f5f5f606084860312156125c6575f5ffd5b83356125d18161249b565b925060208401356125e18161249b565b915060408401356125f18161249b565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612656575f5ffd5b82356126618161249b565b9150602083013567ffffffffffffffff81111561267c575f5ffd5b8301601f8101851361268c575f5ffd5b803567ffffffffffffffff8111156126a6576126a6612631565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156126d5576126d5612631565b6040528181528282016020018710156126ec575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b80516001600160a01b03908116835260208083015190911681840152604080830151151590840152606080830151608091850182905280519185018290525f920190829060a08601905b808310156127805783516001600160a01b031682526020938401936001939093019290910190612755565b5095945050505050565b602081525f61250d602083018461270b565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156127f357603f198786030184526127de85835161270b565b945060209384019391909101906001016127c2565b50929695505050505050565b5f5f5f5f60608587031215612812575f5ffd5b843561281d8161249b565b9350602085013561282d8161249b565b9250604085013567ffffffffffffffff811115612848575f5ffd5b8501601f81018713612858575f5ffd5b803567ffffffffffffffff81111561286e575f5ffd5b8760208260051b8401011115612882575f5ffd5b949793965060200194505050565b5f602082840312156128a0575f5ffd5b815161250d8161249b565b5f81518060208401855e5f93019283525090919050565b6001600160e01b0319831681525f6128dd60048301846128ab565b949350505050565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561070a57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b805169ffffffffffffffffffff81168114612945575f5ffd5b919050565b5f5f5f5f5f60a0868803121561295e575f5ffd5b6129678661292c565b6020870151604088015160608901519297509095509350915061298c6080870161292c565b90509295509295909350565b5f602082840312156129a8575f5ffd5b5051919050565b602080825281018290525f8360408301825b858110156127805782356129d48161249b565b6001600160a01b03168252602092830192909101906001016129c1565b5f61250d82846128ab56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220a836ee8e5a3d467192321b7b8d943909034f9ff7bd41f24fc7af3f7468713cb764736f6c634300081c0033", - "nonce": "0x7be", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionType": "CREATE", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": [ - "0xfa157570d68683d1f92f8CEa06B88dc1D8e7880E", - "0xD208203a7A54fFA823E9B0061a21260Ed38EcE6C", - "0xc4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0xea906", - "value": "0x0", - "input": "0x60a0604052604051610e37380380610e3783398101604081905261002291610370565b82828282816100318282610092565b50508160405161004090610334565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f5f3e3d5ffd5b506001600160a01b031660805261008761008260805190565b6100f0565b505050505050610457565b61009b8261015d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100e4576100df82826101db565b505050565b6100ec61024e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012f5f516020610e175f395f51905f52546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a8161026f565b50565b806001600160a01b03163b5f0361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f5f846001600160a01b0316846040516101f79190610441565b5f60405180830381855af49150503d805f811461022f576040519150601f19603f3d011682016040523d82523d5f602084013e610234565b606091505b5090925090506102458583836102ac565b95945050505050565b341561026d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029857604051633173bdd160e11b81525f600482015260240161018e565b805f516020610e175f395f51905f526101ba565b6060826102c1576102bc8261030b565b610304565b81511580156102d857506001600160a01b0384163b155b1561030157604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b80511561031b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104e68061093183390190565b80516001600160a01b0381168114610357575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610382575f5ffd5b61038b84610341565b925061039960208501610341565b60408501519092506001600160401b038111156103b4575f5ffd5b8401601f810186136103c4575f5ffd5b80516001600160401b038111156103dd576103dd61035c565b604051601f8201601f19908116603f011681016001600160401b038111828210171561040b5761040b61035c565b604052818152828201602001881015610422575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b5f82518060208501845e5f920191825250919050565b6080516104bd6104745f395f818160350152607201526104bd5ff3fe60806040526004361061001d575f3560e01c80638b3240a014610027575b610025610070565b005b348015610032575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100dc575f356001600160e01b03191663278f794360e11b146100d2576040516334ad5dbb60e21b815260040160405180910390fd5b6100da6100e9565b565b6100da610117565b905090565b5f806100f83660048184610365565b81019061010591906103a0565b915091506101138282610127565b5050565b6100da610122610181565b6101b3565b610130826101d1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561017957610174828261024c565b505050565b6101136102be565b5f6100e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f5f375f5f365f845af43d5f5f3e8080156101cd573d5ff35b3d5ffd5b806001600160a01b03163b5f0361020b57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516102689190610471565b5f60405180830381855af49150503d805f81146102a0576040519150601f19603f3d011682016040523d82523d5f602084013e6102a5565b606091505b50915091506102b58583836102dd565b95945050505050565b34156100da5760405163b398979f60e01b815260040160405180910390fd5b6060826102f2576102ed8261033c565b610335565b815115801561030957506001600160a01b0384163b155b1561033257604051639996b31560e01b81526001600160a01b0385166004820152602401610202565b50805b9392505050565b80511561034c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5f85851115610373575f5ffd5b8386111561037f575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103b1575f5ffd5b82356001600160a01b03811681146103c7575f5ffd5b9150602083013567ffffffffffffffff8111156103e2575f5ffd5b8301601f810185136103f2575f5ffd5b803567ffffffffffffffff81111561040c5761040c61038c565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561043b5761043b61038c565b604052818152828201602001871015610452575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e1d41c0240698fbfc01d375b18b328bddb99ef819f03c230a6efbef2501325f764736f6c634300081c00336080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000fa157570d68683d1f92f8cea06b88dc1d8e7880e000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd00000000000000000000000000000000000000000000000000000000", - "nonce": "0x7bf", - "chainId": "0x138d4" - }, - "additionalContracts": [ - { - "transactionType": "CREATE", - "address": "0x3551803af186dc58494872fc66ce90464814d400", - "initCode": "0x6080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - } - ], - "isFixedGasLimit": false - }, - { - "hash": "0x236c5964d3e4eee29f83f643f05685d97343a050ed83280131d63b604b5e1317", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c0", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x33c9c806f59388f4e968048ff6e9f2905879044ca4115580769056c72c3726aa", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c1", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe0fbbe9eaf1dc1dbb70ae6759109a16e2d0561e04a257898f1eb419d5e1fc6b2", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c2", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x55434db1b24957cfc9fea5c69865bbe61f032ed038db9472132c400d14dde10f", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c3", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xec27ecebc2e45633e0e48c765f7d387b64209ded064668f00dbc7a4506c6467d", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c4", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xd2babc8e2501cd548ca46e53ae630215cd2ddc92beab4c561c2a33f616e17578", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c5", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x7958a1f2a969f6a30f13a7ce63e313b56aeea5457373e44b97ff52476af13b9e", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x4238a", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000000e4aaf1351de4c0264c5c7056ef3777b41bd8e030000000000000000000000008e826703b6d471732415abd4a1e724a3bf451511", - "nonce": "0x7c6", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x8ac128f3add51e3c369632f0766aad5e1736162da2d2c52726685fb51930d715", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x31703", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000f5afcf50006944d17226978e594d4d25f4f92b4000000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "nonce": "0x7c7", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x01a40219d84890ecb12ab7f2a18e825d4c5e605bd5db2f09e9b9bd08070ec209", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x31676", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000d6d83af58a19cd14ef3cf6fe848c9a4d21e5727c0000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca9", - "nonce": "0x7c8", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xb7fc4437e000c9f4b196f6a29e391a963b7ab6adb38fb3cd75784471f64b154e", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000501dbf23c2b004d751496adc073da3727c5fe80f00000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e", - "nonce": "0x7c9", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe9747dd5fa2054fbe85a430046b1ae2dbed125b12f7d42fff44619e2d814fe96", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x34555", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000482c38cd33e79a3e3c1cce792a72d41bafffd416000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "nonce": "0x7ca", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe8cb6bd6ff06455b252ca1092497cb5b77d8f1b7c2b55bd6ef34203e9b59acc5", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000003db20aefcd234465c981b87da025711c91add2c3000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "nonce": "0x7cb", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x3a8b66", - "logs": [ - { - "address": "0xfa157570d68683d1f92f8cea06b88dc1d8e7880e", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x20735999cb370e855533b61de4d4f7fc3a54ca55befcf0f314eb7248c0fddfdd", - "transactionIndex": "0x7", - "logIndex": "0xe", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000008000000000", - "type": "0x2", - "transactionHash": "0x20735999cb370e855533b61de4d4f7fc3a54ca55befcf0f314eb7248c0fddfdd", - "transactionIndex": "0x7", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x24f7e3", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0xfa157570d68683d1f92f8cea06b88dc1d8e7880e" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x45d257", - "logs": [ - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000fa157570d68683d1f92f8cea06b88dc1d8e7880e" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0xf", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x10", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x11", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x12", - "removed": false - }, - { - "address": "0x3551803af186dc58494872fc66ce90464814d400", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x13", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003551803af186dc58494872fc66ce90464814d400", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x14", - "removed": false - } - ], - "logsBloom": "0x00000004000000000000008000000000400000000800000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800002000000002000001200000000000000000000000020000000000030000000000000000000800000000800000000000000000000000400000000000002000000800000000000000000000000080000000000000800000000000000000000200008000000000000000000000000000001000000040100000000022000000000000000000000000000000000404000100000080000020000000000000000000000000000000000100000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0xb46f1", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x465ef7", - "logs": [ - { - "address": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x236c5964d3e4eee29f83f643f05685d97343a050ed83280131d63b604b5e1317", - "transactionIndex": "0x9", - "logIndex": "0x15", - "removed": false - } - ], - "logsBloom": "0x00000040000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000040000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000008000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x236c5964d3e4eee29f83f643f05685d97343a050ed83280131d63b604b5e1317", - "transactionIndex": "0x9", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x46eb97", - "logs": [ - { - "address": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x33c9c806f59388f4e968048ff6e9f2905879044ca4115580769056c72c3726aa", - "transactionIndex": "0xa", - "logIndex": "0x16", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000001000000800000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x33c9c806f59388f4e968048ff6e9f2905879044ca4115580769056c72c3726aa", - "transactionIndex": "0xa", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x477837", - "logs": [ - { - "address": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0xe0fbbe9eaf1dc1dbb70ae6759109a16e2d0561e04a257898f1eb419d5e1fc6b2", - "transactionIndex": "0xb", - "logIndex": "0x17", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000008000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe0fbbe9eaf1dc1dbb70ae6759109a16e2d0561e04a257898f1eb419d5e1fc6b2", - "transactionIndex": "0xb", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x4804d7", - "logs": [ - { - "address": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x55434db1b24957cfc9fea5c69865bbe61f032ed038db9472132c400d14dde10f", - "transactionIndex": "0xc", - "logIndex": "0x18", - "removed": false - } - ], - "logsBloom": "0x00000000000400000040000000000000200000000000000000800000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x55434db1b24957cfc9fea5c69865bbe61f032ed038db9472132c400d14dde10f", - "transactionIndex": "0xc", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x489177", - "logs": [ - { - "address": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0xec27ecebc2e45633e0e48c765f7d387b64209ded064668f00dbc7a4506c6467d", - "transactionIndex": "0xd", - "logIndex": "0x19", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000004000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000020000000000000080000000000000000000000000000000000000000000000000800000000000000080000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xec27ecebc2e45633e0e48c765f7d387b64209ded064668f00dbc7a4506c6467d", - "transactionIndex": "0xd", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x11ee867", - "logs": [ - { - "address": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "blockTimestamp": "0x67860ebb", - "transactionHash": "0xd2babc8e2501cd548ca46e53ae630215cd2ddc92beab4c561c2a33f616e17578", - "transactionIndex": "0xa6", - "logIndex": "0x226", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000800000000000200000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xd2babc8e2501cd548ca46e53ae630215cd2ddc92beab4c561c2a33f616e17578", - "transactionIndex": "0xa6", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x121bce0", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x7958a1f2a969f6a30f13a7ce63e313b56aeea5457373e44b97ff52476af13b9e", - "transactionIndex": "0xa7", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x2d479", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x123f98f", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x8ac128f3add51e3c369632f0766aad5e1736162da2d2c52726685fb51930d715", - "transactionIndex": "0xa8", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23caf", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x12635d7", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x01a40219d84890ecb12ab7f2a18e825d4c5e605bd5db2f09e9b9bd08070ec209", - "transactionIndex": "0xa9", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c48", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x128726c", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xb7fc4437e000c9f4b196f6a29e391a963b7ab6adb38fb3cd75784471f64b154e", - "transactionIndex": "0xaa", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x12aaef5", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe9747dd5fa2054fbe85a430046b1ae2dbed125b12f7d42fff44619e2d814fe96", - "transactionIndex": "0xab", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c89", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x12ceb8a", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe8cb6bd6ff06455b252ca1092497cb5b77d8f1b7c2b55bd6ef34203e9b59acc5", - "transactionIndex": "0xac", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1736838906, - "chain": 80084, - "commit": "070d8c8" -} \ No newline at end of file diff --git a/broadcast/DeployFeedRegistry.s.sol/80084/deployBartioUpgrade-latest.json b/broadcast/DeployFeedRegistry.s.sol/80084/deployBartioUpgrade-latest.json deleted file mode 100644 index 8dbcc1b..0000000 --- a/broadcast/DeployFeedRegistry.s.sol/80084/deployBartioUpgrade-latest.json +++ /dev/null @@ -1,738 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionType": "CREATE", - "contractName": "FeedRegistry", - "contractAddress": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0x333639", - "value": "0x0", - "input": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612d31806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101e7575f3560e01c80638da5cb5b11610109578063c9648e1a1161009e578063db8907031161006e578063db890703146104e3578063f2fde38b146104f6578063f315df8614610509578063f834c9881461051c575f5ffd5b8063c9648e1a14610497578063d547741f146104aa578063d54c954b146104bd578063d83bd334146104d0575f5ffd5b8063ac77f572116100d9578063ac77f57214610429578063be62d72514610449578063c4d66de81461045c578063c76ece321461046f575f5ffd5b80638da5cb5b146103bf57806391d14854146103ef578063a217fddf14610402578063a63112e714610409575f5ffd5b806335a076121161017f57806367f28bda1161014f57806367f28bda146103895780636d86b4781461039c578063715018a6146103a457806389ad7503146103ac575f5ffd5b806335a07612146102fd57806336568abe1461033a57806354fd4d501461034d578063607c12b514610374575f5ffd5b80632288368d116101ba5780632288368d1461027b578063248a9ca3146102b65780632b898c25146102d75780632f2ff15d146102ea575f5ffd5b8063011aa7ce146101eb57806301ffc9a71461020057806306b30688146102285780630a6c790e1461023b575b5f5ffd5b6101fe6101f936600461278e565b61052f565b005b61021361020e3660046127c5565b610740565b60405190151581526020015b60405180910390f35b6101fe6102363660046127f3565b610776565b61026361024936600461283b565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b61028e610289366004612856565b610975565b604080516001600160a01b03948516815293909216602084015215159082015260600161021f565b6102c96102c4366004612856565b6109b9565b60405190815260200161021f565b6101fe6102e536600461278e565b6109d9565b6101fe6102f836600461286d565b610d34565b61031061030b366004612856565b610d56565b604080516001600160a01b039485168152928416602084015292169181019190915260600161021f565b6101fe61034836600461286d565b610d96565b60408051808201825260058152640312e302e360dc1b6020820152905161021f9190612890565b61037c610dce565b60405161021f91906128c5565b61037c61039736600461278e565b610e2d565b61037c610f2f565b6101fe610f8d565b6101fe6103ba366004612924565b610fa0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610263565b6102136103fd36600461286d565b610fb6565b6102c95f81565b61041c61041736600461278e565b610fec565b60405161021f9190612a69565b61043c61043736600461283b565b6110c4565b60405161021f9190612a7b565b6101fe610457366004612ade565b6111c2565b6101fe61046a36600461283b565b6114e9565b61026361047d36600461283b565b60056020525f90815260409020546001600160a01b031681565b6101fe6104a53660046127f3565b611602565b6101fe6104b836600461286d565b611893565b61041c6104cb36600461278e565b6118af565b6101fe6104de366004612856565b6119c0565b6102136104f136600461278e565b611d8f565b6101fe61050436600461283b565b611e04565b6101fe61051736600461283b565b611e46565b6101fe61052a366004612856565b612077565b610537612252565b610540826122ad565b6001600160a01b0381166105675760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b03821661058e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038181165f9081526004602052604090205416156105c657604051636d12062960e01b815260040160405180910390fd5b6001600160a01b038281165f9081526005602052604090205416156105fe576040516317759ec560e31b815260040160405180910390fd5b816001600160a01b0316816001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610644573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106689190612b6f565b6001600160a01b03161461068f5760405163ef6f1f1560e01b815260040160405180910390fd5b5f8054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b039485166001600160a01b0319918216811790925582548084019093557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690920180549590941694821685179093558282526004602090815260408084208054841687179055948352600590529290208054909216179055565b5f6001600160e01b03198216637965db0b60e01b148061077057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61077e612252565b6001600160a01b038084165f9081526005602052604090205416806107b6576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020908152604080832093871683529290522060010154600160a01b900460ff1661080557604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452939052918120909101905b815481101561092357836001600160a01b031682828154811061085557610855612b8a565b5f918252602090912001546001600160a01b03160361091b578154829061087e90600190612b9e565b8154811061088e5761088e612b8a565b905f5260205f20015f9054906101000a90046001600160a01b03168282815481106108bb576108bb612b8a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806108f6576108f6612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610923565b600101610830565b50826001600160a01b0316846001600160a01b0316866001600160a01b03167f8f46b1945c42643576240ccf490dd656ca2bcb788848869730f4c659db10589060405160405180910390a45050505050565b60068181548110610984575f80fd5b5f918252602090912060039091020180546001909101546001600160a01b03918216925090811690600160a01b900460ff1683565b5f9081525f516020612cdc5f395f51905f52602052604090206001015490565b6109e1612252565b6001600160a01b038083165f908152600560205260409020541680610a19576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff1615158683015292830180548251818502810185019093528083529495946060860193830182828015610abc57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610a9e575b50505050508152505090508060400151610ae957604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038083165f908152600260208181526040808420948816845293905291812080546001600160a01b03191681556001810180546001600160a81b031916905591610b3c908301826126ac565b5050604080516001600160a01b03851660208201525f917f0caceb24b146885ae17af1b1d0d14fcb3bba2b85301c273d73d3f506e1287333910160408051601f1981840301815290829052610b949291602001612be8565b6040516020818303038152906040529050610baf8382612334565b6001600160a01b0383165f908152600360205260408120805490915b81811015610d2a57866001600160a01b0316838281548110610bef57610bef612b8a565b5f9182526020909120600160039092020101546001600160a01b031603610d225782610c1c600184612b9e565b81548110610c2c57610c2c612b8a565b905f5260205f209060030201838281548110610c4a57610c4a612b8a565b5f9182526020909120825460039092020180546001600160a01b03199081166001600160a01b039384161782556001808501805491840180549384169290951691821785555460ff600160a01b91829004161515026001600160a81b0319909216171790915560028083018054610cc492840191906126c7565b5090505082805480610cd857610cd8612bbd565b5f8281526020812060035f199093019283020180546001600160a01b03191681556001810180546001600160a81b031916905590610d1960028301826126ac565b50509055610d2a565b600101610bcb565b5050505050505050565b610d3d826109b9565b610d46816123f6565b610d508383612400565b50505050565b60078181548110610d65575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b039182169350918116911683565b6001600160a01b0381163314610dbf5760405163334bd91960e11b815260040160405180910390fd5b610dc982826124a1565b505050565b60605f805480602002602001604051908101604052809291908181526020018280548015610e2357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e05575b5050505050905090565b6001600160a01b038083165f908152600560205260409020546060911680610e68576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260209081526040808320878516845290915290206001015416610eaf57604051633917193960e01b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452938152918390200180548351818402810184019094528084529091830182828015610f2157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610f03575b505050505091505092915050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e2357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610e05575050505050905090565b610f95612252565b610f9e5f61251a565b565b610fa8612252565b610fb28282612334565b5050565b5f9182525f516020612cdc5f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038381165f90815260026020818152604080842087861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156110b357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611095575b505050505081525050905092915050565b6001600160a01b0381165f908152600360209081526040808320805482518185028101850190935280835260609492939192909184015b828210156111b7575f848152602090819020604080516080810182526003860290920180546001600160a01b039081168452600182015490811684860152600160a01b900460ff161515838301526002810180548351818702810187019094528084529394919360608601939283018282801561119f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611181575b505050505081525050815260200190600101906110fb565b505050509050919050565b6001600160a01b038085165f9081526005602052604090205416806111fa576040516394e72c6b60e01b815260040160405180910390fd5b6112038461258a565b6001600160a01b038181165f90815260026020908152604080832088851684529091529020541615611248576040516328dbb26760e01b815260040160405180910390fd5b5f849050806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611288573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ac9190612c29565b505f93505050505b8381101561139a575f8585838181106112cf576112cf612b8a565b90506020020160208101906112e4919061283b565b6001600160a01b03160361130b5760405163e6c4247b60e01b815260040160405180910390fd5b84848281811061131d5761131d612b8a565b9050602002016020810190611332919061283b565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113919190612c77565b506001016112b4565b5060066040518060800160405280846001600160a01b03168152602001876001600160a01b031681526020015f151581526020018686808060200260200160405190810160405280939291908181526020018383602002808284375f920182905250939094525050835460018181018655948252602091829020845160039092020180546001600160a01b039283166001600160a01b031990911617815582850151958101805460408701511515600160a01b026001600160a81b031990911697909316969096179190911790945560608301518051939493611487935060028501929190910190612713565b505050846001600160a01b0316866001600160a01b0316336001600160a01b03167fe3bd7e17963bf77a36b430c3919b9e26f5cc2ea23b6fd30060bfa23a362df13a87876040516114d9929190612c8e565b60405180910390a4505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561152e5750825b90505f8267ffffffffffffffff16600114801561154a5750303b155b905081158015611558575080155b156115765760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156115a057845460ff60401b1916600160401b1785555b6115a986612611565b6115b35f87612400565b5083156115fa57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61160b816122ad565b6001600160a01b038084165f908152600560205260409020541680611643576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420888616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff16151586830152928301805482518185028101850190935280835294959460608601938301828280156116e657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116116c8575b5050505050815250509050806040015161171357604051636b85d76f60e11b815260040160405180910390fd5b5f5b81606001515181101561177957836001600160a01b03168260600151828151811061174257611742612b8a565b60200260200101516001600160a01b0316036117715760405163156e81c160e01b815260040160405180910390fd5b600101611715565b50604080516060810182526001600160a01b038781168083528782166020808501828152898516868801818152600780546001810182555f91909152975160039098027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180549989166001600160a01b03199a8b1617905592517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68984018054918916918a16919091179055517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a909201805492909616919096161790935593519283529133917f3dd3183c5a81964e5df8e169cbf87a42e84be05112c6dfdea9c04869116f20d3910160405180910390a45050505050565b61189c826109b9565b6118a5816123f6565b610d5083836124a1565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038084165f908152600560205260409020541680611909576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020818152604080842088861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156119ae57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611990575b50505050508152505091505092915050565b6119c8612252565b60065481106119ea57604051633917193960e01b815260040160405180910390fd5b5f600682815481106119fe576119fe612b8a565b5f91825260209182902060408051608081018252600390930290910180546001600160a01b03908116845260018201549081168486015260ff600160a01b9091041615158383015260028101805483518187028101870190945280845293949193606086019392830182828015611a9c57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611a7e575b5050509190925250505060208101519091506001600160a01b038116611ad557604051633917193960e01b815260040160405180910390fd5b6001604080840182815284516001600160a01b038082165f908152600460209081528582205460028083528784208a86168552835296909220895181549085166001600160a01b0319909116178155818a0151978101805496511515600160a01b026001600160a81b031990971698851698909817959095179096556060880151805193969190921694889493611b7493918501929190910190612713565b5050506001600160a01b038281165f908152600360208181526040808420805460018082018355918652948390208a519590940290930180546001600160a01b031916948616949094178455888201519284018054918a0151939095166001600160a81b031990911617600160a01b9215159290920291909117909255606086015180518793611c0b926002850192910190612713565b5050604080516001600160a01b03861660208201525f92507f3817cb52b411ba6b992602ea533a928f30d1391a9c6e2e221d53a7ef07482f43910160408051601f1981840301815290829052611c649291602001612be8565b6040516020818303038152906040529050611c7f8382612334565b60068681548110611c9257611c92612b8a565b5f9182526020822060039091020180546001600160a01b03191681556001810180546001600160a81b031916905590611cce60028301826126ac565b5050836001600160a01b0316826001600160a01b03167f9248b8612daaf0886d656b647e989378fea4de940d2217263536e28bb0e4c48560405160405180910390a36060850151515f5b81811015610d2a5786606001518181518110611d3657611d36612b8a565b60200260200101516001600160a01b0316866001600160a01b0316856001600160a01b03167fdf0726194f92213c2625dc475a4febaa3d3601a21999057763f8910d04587fdd60405160405180910390a4600101611d18565b6001600160a01b038083165f9081526005602052604081205490911680611dc9576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b039081165f9081526002602090815260408083209386168352929052206001015460ff600160a01b90910416905092915050565b611e0c612252565b6001600160a01b038116611e3a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b611e438161251a565b50565b611e4e612252565b6001600160a01b038082165f81815260046020818152604080842080549096168085526005835290842080546001600160a01b03199081169091559484529190528354909216909255815490915b81811015611f8257836001600160a01b03165f8281548110611ec057611ec0612b8a565b5f918252602090912001546001600160a01b031603611f7a575f611ee5600184612b9e565b81548110611ef557611ef5612b8a565b5f91825260208220015481546001600160a01b03909116919083908110611f1e57611f1e612b8a565b5f918252602082200180546001600160a01b0319166001600160a01b039390931692909217909155805480611f5557611f55612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611f82565b600101611e9c565b50506001545f5b81811015610d5057826001600160a01b031660018281548110611fae57611fae612b8a565b5f918252602090912001546001600160a01b03160361206f576001611fd38184612b9e565b81548110611fe357611fe3612b8a565b5f91825260209091200154600180546001600160a01b03909216918390811061200e5761200e612b8a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061204a5761204a612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610d50565b600101611f89565b61207f612252565b60075481106120a157604051633917193960e01b815260040160405180910390fd5b5f600782815481106120b5576120b5612b8a565b5f91825260209182902060408051606081018252600390930290910180546001600160a01b0390811684526001820154811694840194909452600201549092169181018290529150612106906122ad565b80516001600160a01b039081165f9081526005602090815260408083205484168084526002835281842083870151909516845293909152902060010154600160a01b900460ff1661216a57604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878301518616855282528084209087015192018054600181018255908452922090910180546001600160a01b0319169190921617905560078054849081106121cf576121cf612b8a565b5f9182526020808320600390920290910180546001600160a01b031990811682556001820180548216905560029091018054909116905560408085015191850151855191516001600160a01b03938416949184169392909216917fdf0726194f92213c2625dc475a4febaa3d3601a21999057763f8910d04587fdd9190a4505050565b336122847f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f9e5760405163118cdaa760e01b8152336004820152602401611e31565b6001600160a01b0381166122d45760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612310573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612c77565b6001600160a01b038281165f908152600460205260409020541661236b576040516394e72c6b60e01b815260040160405180910390fd5b5f5f836001600160a01b0316836040516123859190612cd0565b5f604051808303815f865af19150503d805f81146123be576040519150601f19603f3d011682016040523d82523d5f602084013e6123c3565b606091505b509150915081610d50578051156123dd5780518082602001fd5b604051638c76daeb60e01b815260040160405180910390fd5b611e438133612622565b5f5f516020612cdc5f395f51905f526124198484610fb6565b612498575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561244e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610770565b5f915050610770565b5f5f516020612cdc5f395f51905f526124ba8484610fb6565b15612498575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610770565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b0381166125b15760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156125ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115fa9190612c29565b61261961265b565b611e43816126a4565b61262c8282610fb6565b610fb25760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401611e31565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610f9e57604051631afcd79f60e31b815260040160405180910390fd5b611e0c61265b565b5080545f8255905f5260205f2090810190611e439190612766565b828054828255905f5260205f20908101928215612703575f5260205f209182015b828111156127035782548255916001019190600101906126e8565b5061270f929150612766565b5090565b828054828255905f5260205f20908101928215612703579160200282015b8281111561270357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612731565b5b8082111561270f575f8155600101612767565b6001600160a01b0381168114611e43575f5ffd5b5f5f6040838503121561279f575f5ffd5b82356127aa8161277a565b915060208301356127ba8161277a565b809150509250929050565b5f602082840312156127d5575f5ffd5b81356001600160e01b0319811681146127ec575f5ffd5b9392505050565b5f5f5f60608486031215612805575f5ffd5b83356128108161277a565b925060208401356128208161277a565b915060408401356128308161277a565b809150509250925092565b5f6020828403121561284b575f5ffd5b81356127ec8161277a565b5f60208284031215612866575f5ffd5b5035919050565b5f5f6040838503121561287e575f5ffd5b8235915060208301356127ba8161277a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b602080825282518282018190525f918401906040840190835b818110156129055783516001600160a01b03168352602093840193909201916001016128de565b509095945050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612935575f5ffd5b82356129408161277a565b9150602083013567ffffffffffffffff81111561295b575f5ffd5b8301601f8101851361296b575f5ffd5b803567ffffffffffffffff81111561298557612985612910565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156129b4576129b4612910565b6040528181528282016020018710156129cb575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b80516001600160a01b03908116835260208083015190911681840152604080830151151590840152606080830151608091850182905280519185018290525f920190829060a08601905b80831015612a5f5783516001600160a01b031682526020938401936001939093019290910190612a34565b5095945050505050565b602081525f6127ec60208301846129ea565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ad257603f19878603018452612abd8583516129ea565b94506020938401939190910190600101612aa1565b50929695505050505050565b5f5f5f5f60608587031215612af1575f5ffd5b8435612afc8161277a565b93506020850135612b0c8161277a565b9250604085013567ffffffffffffffff811115612b27575f5ffd5b8501601f81018713612b37575f5ffd5b803567ffffffffffffffff811115612b4d575f5ffd5b8760208260051b8401011115612b61575f5ffd5b949793965060200194505050565b5f60208284031215612b7f575f5ffd5b81516127ec8161277a565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561077057634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f81518060208401855e5f93019283525090919050565b6001600160e01b0319831681525f612c036004830184612bd1565b949350505050565b805169ffffffffffffffffffff81168114612c24575f5ffd5b919050565b5f5f5f5f5f60a08688031215612c3d575f5ffd5b612c4686612c0b565b60208701516040880151606089015192975090955093509150612c6b60808701612c0b565b90509295509295909350565b5f60208284031215612c87575f5ffd5b5051919050565b602080825281018290525f8360408301825b85811015612a5f578235612cb38161277a565b6001600160a01b0316825260209283019290910190600101612ca0565b5f6127ec8284612bd156fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a264697066735822122035c3593fb8d01925367f01f269622054491b1ab9e0f35a797f84e42c900edba164736f6c634300081c0033", - "nonce": "0x7cc", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionType": "CREATE", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": [ - "0x93ceFc4F32AbEaE2Df23bb8D74a8FA2CcAcDEb4B", - "0xD208203a7A54fFA823E9B0061a21260Ed38EcE6C", - "0xc4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0xea93f", - "value": "0x0", - "input": "0x60a0604052604051610e37380380610e3783398101604081905261002291610370565b82828282816100318282610092565b50508160405161004090610334565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f5f3e3d5ffd5b506001600160a01b031660805261008761008260805190565b6100f0565b505050505050610457565b61009b8261015d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100e4576100df82826101db565b505050565b6100ec61024e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012f5f516020610e175f395f51905f52546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a8161026f565b50565b806001600160a01b03163b5f0361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f5f846001600160a01b0316846040516101f79190610441565b5f60405180830381855af49150503d805f811461022f576040519150601f19603f3d011682016040523d82523d5f602084013e610234565b606091505b5090925090506102458583836102ac565b95945050505050565b341561026d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029857604051633173bdd160e11b81525f600482015260240161018e565b805f516020610e175f395f51905f526101ba565b6060826102c1576102bc8261030b565b610304565b81511580156102d857506001600160a01b0384163b155b1561030157604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b80511561031b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104e68061093183390190565b80516001600160a01b0381168114610357575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610382575f5ffd5b61038b84610341565b925061039960208501610341565b60408501519092506001600160401b038111156103b4575f5ffd5b8401601f810186136103c4575f5ffd5b80516001600160401b038111156103dd576103dd61035c565b604051601f8201601f19908116603f011681016001600160401b038111828210171561040b5761040b61035c565b604052818152828201602001881015610422575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b5f82518060208501845e5f920191825250919050565b6080516104bd6104745f395f818160350152607201526104bd5ff3fe60806040526004361061001d575f3560e01c80638b3240a014610027575b610025610070565b005b348015610032575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100dc575f356001600160e01b03191663278f794360e11b146100d2576040516334ad5dbb60e21b815260040160405180910390fd5b6100da6100e9565b565b6100da610117565b905090565b5f806100f83660048184610365565b81019061010591906103a0565b915091506101138282610127565b5050565b6100da610122610181565b6101b3565b610130826101d1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561017957610174828261024c565b505050565b6101136102be565b5f6100e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f5f375f5f365f845af43d5f5f3e8080156101cd573d5ff35b3d5ffd5b806001600160a01b03163b5f0361020b57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516102689190610471565b5f60405180830381855af49150503d805f81146102a0576040519150601f19603f3d011682016040523d82523d5f602084013e6102a5565b606091505b50915091506102b58583836102dd565b95945050505050565b34156100da5760405163b398979f60e01b815260040160405180910390fd5b6060826102f2576102ed8261033c565b610335565b815115801561030957506001600160a01b0384163b155b1561033257604051639996b31560e01b81526001600160a01b0385166004820152602401610202565b50805b9392505050565b80511561034c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5f85851115610373575f5ffd5b8386111561037f575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103b1575f5ffd5b82356001600160a01b03811681146103c7575f5ffd5b9150602083013567ffffffffffffffff8111156103e2575f5ffd5b8301601f810185136103f2575f5ffd5b803567ffffffffffffffff81111561040c5761040c61038c565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561043b5761043b61038c565b604052818152828201602001871015610452575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e1d41c0240698fbfc01d375b18b328bddb99ef819f03c230a6efbef2501325f764736f6c634300081c00336080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000093cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd00000000000000000000000000000000000000000000000000000000", - "nonce": "0x7cd", - "chainId": "0x138d4" - }, - "additionalContracts": [ - { - "transactionType": "CREATE", - "address": "0x68ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "initCode": "0x6080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - } - ], - "isFixedGasLimit": false - }, - { - "hash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x8E826703B6D471732415ABd4a1E724A3bF451511", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad75030000000000000000000000008e826703b6d471732415abd4a1e724a3bf45151100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7ce", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x33c608b9e7Ae1877dcb665Bd3d2D3bb327b01156", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad750300000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b0115600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7cf", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x8520b4Ed7E7e54343ADe583E6A7864718535eCa9", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad75030000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d0", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x39da60365de955d03c6C1AB7b80e8a4c458FA87e", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad750300000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d1", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0xb468a7AC04db7B07d8D2a8DeC3e6008397eC3E4D", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d0f", - "value": "0x0", - "input": "0x89ad7503000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d2", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0xC3adc5347663C4fb93ad5029B6382a9f7fE73B05", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad7503000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b0500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d3", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x3369613dca6c1859a1ba8cfd533a7a72599d31939d1b64affb2a807549fbae74", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x4238a", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000000e4aaf1351de4c0264c5c7056ef3777b41bd8e030000000000000000000000008e826703b6d471732415abd4a1e724a3bf451511", - "nonce": "0x7d4", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x062a4bd2ccebd361f3c6f12df845566baf30e844b6900c6894a942bb53927e8a", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x31703", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000f5afcf50006944d17226978e594d4d25f4f92b4000000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "nonce": "0x7d5", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x1f4edc27dea70546ba6ace674666511e9a9cd48441e7c0f28df2928d1bc2092d", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x31676", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000d6d83af58a19cd14ef3cf6fe848c9a4d21e5727c0000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca9", - "nonce": "0x7d6", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x86af41bdd6eb36b039f4c0518890224f5427a8de5490df37c7fca22b1c6cc777", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000501dbf23c2b004d751496adc073da3727c5fe80f00000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e", - "nonce": "0x7d7", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x0376a5430cae1809a6f84761ef2b3e2046f6e233a2f37f4eb88bdd71ec5fbdf7", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x34555", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000482c38cd33e79a3e3c1cce792a72d41bafffd416000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "nonce": "0x7d8", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xdefe1ecc490304d3ee3c24323369b5404a94bc5f314641046f4f06dfcb822543", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000003db20aefcd234465c981b87da025711c91add2c3000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "nonce": "0x7d9", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x6ff309", - "logs": [ - { - "address": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionIndex": "0x2e", - "logIndex": "0x99", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000100000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionIndex": "0x2e", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0x2764ca", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7b3a26", - "logs": [ - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000093cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9a", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9b", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9c", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9d", - "removed": false - }, - { - "address": "0x68ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9e", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9f", - "removed": false - } - ], - "logsBloom": "0x00000004010000000000000000000000400000000000000000800000000000000000000000000000002000000000000000040000000000000000000002000000100000000000000800000000000002000001000000000000100000000000000000000000030000000000000000000800000000800000000000000000000000400000000000000040000800000000000000000000000080000000000000800000000000000000000200008000000000000000000000000000001000000040100000000020000008000000000000000000000000004404000100000000000020000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xb471d", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7bfcfe", - "logs": [ - { - "address": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionIndex": "0x30", - "logIndex": "0xa0", - "removed": false - } - ], - "logsBloom": "0x00000040000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000008000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionIndex": "0x30", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7cbfd6", - "logs": [ - { - "address": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionIndex": "0x31", - "logIndex": "0xa1", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000001000000800000000000000000000000000000000000000020000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionIndex": "0x31", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7d82ae", - "logs": [ - { - "address": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionIndex": "0x32", - "logIndex": "0xa2", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000020000000000000000000000000000000000000000000000000000000000000040000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000008000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionIndex": "0x32", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7e4586", - "logs": [ - { - "address": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionIndex": "0x33", - "logIndex": "0xa3", - "removed": false - } - ], - "logsBloom": "0x00000000000400000040000000000000200000000000000000800000000000000000000000000000000000000000000000000000000000000000000020000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionIndex": "0x33", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7f0852", - "logs": [ - { - "address": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionIndex": "0x34", - "logIndex": "0xa4", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000004000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000080000000000000000000000000000000000000000000000000800000000000000080000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionIndex": "0x34", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2cc", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7fcb2a", - "logs": [ - { - "address": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionIndex": "0x35", - "logIndex": "0xa5", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000400000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000800000000000200000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionIndex": "0x35", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x1718fbe", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x3369613dca6c1859a1ba8cfd533a7a72599d31939d1b64affb2a807549fbae74", - "transactionIndex": "0xa5", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x2d479", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x173cc6d", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x062a4bd2ccebd361f3c6f12df845566baf30e844b6900c6894a942bb53927e8a", - "transactionIndex": "0xa6", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23caf", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x17608b5", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x1f4edc27dea70546ba6ace674666511e9a9cd48441e7c0f28df2928d1bc2092d", - "transactionIndex": "0xa7", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c48", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x178454a", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x86af41bdd6eb36b039f4c0518890224f5427a8de5490df37c7fca22b1c6cc777", - "transactionIndex": "0xa8", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x17a81d3", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0376a5430cae1809a6f84761ef2b3e2046f6e233a2f37f4eb88bdd71ec5fbdf7", - "transactionIndex": "0xa9", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c89", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x17cbe68", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xdefe1ecc490304d3ee3c24323369b5404a94bc5f314641046f4f06dfcb822543", - "transactionIndex": "0xaa", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1736843893, - "chain": 80084, - "commit": "945276a" -} \ No newline at end of file diff --git a/broadcast/DeployFeedRegistry.s.sol/80084/run-1736838906.json b/broadcast/DeployFeedRegistry.s.sol/80084/run-1736838906.json deleted file mode 100644 index 750de96..0000000 --- a/broadcast/DeployFeedRegistry.s.sol/80084/run-1736838906.json +++ /dev/null @@ -1,732 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x20735999cb370e855533b61de4d4f7fc3a54ca55befcf0f314eb7248c0fddfdd", - "transactionType": "CREATE", - "contractName": "FeedRegistry", - "contractAddress": "0xfa157570d68683d1f92f8cea06b88dc1d8e7880e", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0x300f0d", - "value": "0x0", - "input": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612a52806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c80638da5cb5b116100fe578063c4d66de81161009e578063d83bd3341161006e578063d83bd3341461047d578063db89070314610490578063f2fde38b146104a3578063f315df86146104b6575f5ffd5b8063c4d66de81461041c578063c76ece321461042f578063d547741f14610457578063d54c954b1461046a575f5ffd5b8063a63112e7116100d9578063a63112e7146103b6578063ac77f572146103d6578063b8e10ab3146103f6578063be62d72514610409575f5ffd5b80638da5cb5b1461036c57806391d148541461039c578063a217fddf146103af575f5ffd5b80632f2ff15d11610174578063607c12b511610144578063607c12b5146103415780636d86b47814610349578063715018a61461035157806389ad750314610359575f5ffd5b80632f2ff15d146102e157806330eca4fa146102f457806336568abe1461030757806354fd4d501461031a575f5ffd5b8063174de83b116101af578063174de83b146102525780632288368d14610272578063248a9ca3146102ad5780632b898c25146102ce575f5ffd5b8063011aa7ce146101d557806301ffc9a7146101ea5780630a6c790e14610212575b5f5ffd5b6101e86101e33660046124af565b6104c9565b005b6101fd6101f83660046124e6565b6106da565b60405190151581526020015b60405180910390f35b61023a610220366004612514565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610209565b6102656102603660046124af565b610710565b604051610209919061252f565b61028561028036600461257a565b610812565b604080516001600160a01b039485168152939092166020840152151590820152606001610209565b6102c06102bb36600461257a565b610856565b604051908152602001610209565b6101e86102dc3660046124af565b610876565b6101e86102ef366004612591565b610bd1565b6101e86103023660046125b4565b610bf3565b6101e8610315366004612591565b610e26565b60408051808201825260058152640312e302e360dc1b6020820152905161020991906125fc565b610265610e5e565b610265610ebd565b6101e8610f1b565b6101e8610367366004612645565b610f2e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661023a565b6101fd6103aa366004612591565b610f44565b6102c05f81565b6103c96103c43660046124af565b610f7a565b604051610209919061278a565b6103e96103e4366004612514565b611052565b604051610209919061279c565b6101e86104043660046125b4565b611150565b6101e86104173660046127ff565b61134f565b6101e861042a366004612514565b611676565b61023a61043d366004612514565b60066020525f90815260409020546001600160a01b031681565b6101e8610465366004612591565b61178f565b6103c96104783660046124af565b6117ab565b6101e861048b36600461257a565b6118bc565b6101fd61049e3660046124af565b611c8b565b6101e86104b1366004612514565b611d00565b6101e86104c4366004612514565b611d42565b6104d1611f73565b6104da82611fce565b6001600160a01b0381166105015760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166105285760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260056020526040902054161561056057604051636d12062960e01b815260040160405180910390fd5b6001600160a01b038281165f908152600660205260409020541615610598576040516317759ec560e31b815260040160405180910390fd5b816001600160a01b0316816001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105de573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106029190612890565b6001600160a01b0316146106295760405163ef6f1f1560e01b815260040160405180910390fd5b5f8054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b039485166001600160a01b0319918216811790925582548084019093557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690920180549590941694821685179093558282526005602090815260408084208054841687179055948352600690529290208054909216179055565b5f6001600160e01b03198216637965db0b60e01b148061070a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b038083165f90815260066020526040902054606091168061074b576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020908152604080832087851684529091529020600101541661079257604051633917193960e01b815260040160405180910390fd5b6001600160a01b038082165f908152600260208181526040808420948816845293815291839020018054835181840281018401909452808452909183018282801561080457602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116107e6575b505050505091505092915050565b60048181548110610821575f80fd5b5f918252602090912060039091020180546001909101546001600160a01b03918216925090811690600160a01b900460ff1683565b5f9081525f5160206129fd5f395f51905f52602052604090206001015490565b61087e611f73565b6001600160a01b038083165f9081526006602052604090205416806108b6576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff161515868301529283018054825181850281018501909352808352949594606086019383018282801561095957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161093b575b5050505050815250509050806040015161098657604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038083165f908152600260208181526040808420948816845293905291812080546001600160a01b03191681556001810180546001600160a81b0319169055916109d9908301826123cd565b5050604080516001600160a01b03851660208201525f917f0caceb24b146885ae17af1b1d0d14fcb3bba2b85301c273d73d3f506e1287333910160408051601f1981840301815290829052610a3192916020016128c2565b6040516020818303038152906040529050610a4c8382612055565b6001600160a01b0383165f908152600360205260408120805490915b81811015610bc757866001600160a01b0316838281548110610a8c57610a8c6128e5565b5f9182526020909120600160039092020101546001600160a01b031603610bbf5782610ab96001846128f9565b81548110610ac957610ac96128e5565b905f5260205f209060030201838281548110610ae757610ae76128e5565b5f9182526020909120825460039092020180546001600160a01b03199081166001600160a01b039384161782556001808501805491840180549384169290951691821785555460ff600160a01b91829004161515026001600160a81b0319909216171790915560028083018054610b6192840191906123e8565b5090505082805480610b7557610b75612918565b5f8281526020812060035f199093019283020180546001600160a01b03191681556001810180546001600160a81b031916905590610bb660028301826123cd565b50509055610bc7565b600101610a68565b5050505050505050565b610bda82610856565b610be381612117565b610bed8383612121565b50505050565b610bfb611f73565b610c0481611fce565b6001600160a01b038084165f908152600660205260409020541680610c3c576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420888616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff1615158683015292830180548251818502810185019093528083529495946060860193830182828015610cdf57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610cc1575b50505050508152505090508060400151610d0c57604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038316610d335760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038083165f9081526002602081815260408084209489168452939052918120909101905b8154811015610dbd57846001600160a01b0316828281548110610d8357610d836128e5565b5f918252602090912001546001600160a01b031603610db55760405163156e81c160e01b815260040160405180910390fd5b600101610d5e565b5080546001810182555f8281526020812090910180546001600160a01b0319166001600160a01b038781169182179092556040519092888316928a16917ff9db191d3792b8afaf5841efb4f9735e3167d63b05aecd33611fa471f011bab49190a4505050505050565b6001600160a01b0381163314610e4f5760405163334bd91960e11b815260040160405180910390fd5b610e5982826121c2565b505050565b60605f805480602002602001604051908101604052809291908181526020018280548015610eb357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e95575b5050505050905090565b60606001805480602002602001604051908101604052809291908181526020018280548015610eb357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610e95575050505050905090565b610f23611f73565b610f2c5f61223b565b565b610f36611f73565b610f408282612055565b5050565b5f9182525f5160206129fd5f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038381165f90815260026020818152604080842087861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff16151585850152918201805484518184028101840190955280855292936060860193909283018282801561104157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611023575b505050505081525050905092915050565b6001600160a01b0381165f908152600360209081526040808320805482518185028101850190935280835260609492939192909184015b82821015611145575f848152602090819020604080516080810182526003860290920180546001600160a01b039081168452600182015490811684860152600160a01b900460ff161515838301526002810180548351818702810187019094528084529394919360608601939283018282801561112d57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161110f575b50505050508152505081526020019060010190611089565b505050509050919050565b611158611f73565b6001600160a01b038084165f908152600660205260409020541680611190576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020908152604080832093871683529290522060010154600160a01b900460ff166111df57604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452939052918120909101905b81548110156112fd57836001600160a01b031682828154811061122f5761122f6128e5565b5f918252602090912001546001600160a01b0316036112f55781548290611258906001906128f9565b81548110611268576112686128e5565b905f5260205f20015f9054906101000a90046001600160a01b0316828281548110611295576112956128e5565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806112d0576112d0612918565b5f8281526020902081015f1990810180546001600160a01b03191690550190556112fd565b60010161120a565b50826001600160a01b0316846001600160a01b0316866001600160a01b03167f4d8e071328dfcff5c4f279128b8f4db38b041857318f4d8cca948a4378ffe1f560405160405180910390a45050505050565b6001600160a01b038085165f908152600660205260409020541680611387576040516394e72c6b60e01b815260040160405180910390fd5b611390846122ab565b6001600160a01b038181165f908152600260209081526040808320888516845290915290205416156113d5576040516328dbb26760e01b815260040160405180910390fd5b5f849050806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611415573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611439919061294a565b505f93505050505b83811015611527575f85858381811061145c5761145c6128e5565b90506020020160208101906114719190612514565b6001600160a01b0316036114985760405163e6c4247b60e01b815260040160405180910390fd5b8484828181106114aa576114aa6128e5565b90506020020160208101906114bf9190612514565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151e9190612998565b50600101611441565b5060046040518060800160405280846001600160a01b03168152602001876001600160a01b031681526020015f151581526020018686808060200260200160405190810160405280939291908181526020018383602002808284375f920182905250939094525050835460018181018655948252602091829020845160039092020180546001600160a01b039283166001600160a01b031990911617815582850151958101805460408701511515600160a01b026001600160a81b031990911697909316969096179190911790945560608301518051939493611614935060028501929190910190612434565b505050846001600160a01b0316866001600160a01b0316336001600160a01b03167fffe49f0e12199dc72fb2bc88e28aa3912ec8e97d13576aaebe24a5b11551e3b687876040516116669291906129af565b60405180910390a4505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156116bb5750825b90505f8267ffffffffffffffff1660011480156116d75750303b155b9050811580156116e5575080155b156117035760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561172d57845460ff60401b1916600160401b1785555b61173686612332565b6117405f87612121565b50831561178757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61179882610856565b6117a181612117565b610bed83836121c2565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038084165f908152600660205260409020541680611805576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020818152604080842088861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156118aa57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161188c575b50505050508152505091505092915050565b6118c4611f73565b60045481106118e657604051633917193960e01b815260040160405180910390fd5b5f600482815481106118fa576118fa6128e5565b5f91825260209182902060408051608081018252600390930290910180546001600160a01b03908116845260018201549081168486015260ff600160a01b909104161515838301526002810180548351818702810187019094528084529394919360608601939283018282801561199857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161197a575b5050509190925250505060208101519091506001600160a01b0381166119d157604051633917193960e01b815260040160405180910390fd5b6001604080840182815284516001600160a01b038082165f908152600560209081528582205460028083528784208a86168552835296909220895181549085166001600160a01b0319909116178155818a0151978101805496511515600160a01b026001600160a81b031990971698851698909817959095179096556060880151805193969190921694889493611a7093918501929190910190612434565b5050506001600160a01b038281165f908152600360208181526040808420805460018082018355918652948390208a519590940290930180546001600160a01b031916948616949094178455888201519284018054918a0151939095166001600160a81b031990911617600160a01b9215159290920291909117909255606086015180518793611b07926002850192910190612434565b5050604080516001600160a01b03861660208201525f92507f3817cb52b411ba6b992602ea533a928f30d1391a9c6e2e221d53a7ef07482f43910160408051601f1981840301815290829052611b6092916020016128c2565b6040516020818303038152906040529050611b7b8382612055565b60048681548110611b8e57611b8e6128e5565b5f9182526020822060039091020180546001600160a01b03191681556001810180546001600160a81b031916905590611bca60028301826123cd565b5050836001600160a01b0316826001600160a01b03167f9248b8612daaf0886d656b647e989378fea4de940d2217263536e28bb0e4c48560405160405180910390a36060850151515f5b81811015610bc75786606001518181518110611c3257611c326128e5565b60200260200101516001600160a01b0316866001600160a01b0316856001600160a01b03167ff9db191d3792b8afaf5841efb4f9735e3167d63b05aecd33611fa471f011bab460405160405180910390a4600101611c14565b6001600160a01b038083165f9081526006602052604081205490911680611cc5576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b039081165f9081526002602090815260408083209386168352929052206001015460ff600160a01b90910416905092915050565b611d08611f73565b6001600160a01b038116611d3657604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b611d3f8161223b565b50565b611d4a611f73565b6001600160a01b038082165f81815260056020818152604080842080549096168085526006835290842080546001600160a01b03199081169091559484529190528354909216909255815490915b81811015611e7e57836001600160a01b03165f8281548110611dbc57611dbc6128e5565b5f918252602090912001546001600160a01b031603611e76575f611de16001846128f9565b81548110611df157611df16128e5565b5f91825260208220015481546001600160a01b03909116919083908110611e1a57611e1a6128e5565b5f918252602082200180546001600160a01b0319166001600160a01b039390931692909217909155805480611e5157611e51612918565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611e7e565b600101611d98565b50506001545f5b81811015610bed57826001600160a01b031660018281548110611eaa57611eaa6128e5565b5f918252602090912001546001600160a01b031603611f6b576001611ecf81846128f9565b81548110611edf57611edf6128e5565b5f91825260209091200154600180546001600160a01b039092169183908110611f0a57611f0a6128e5565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611f4657611f46612918565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610bed565b600101611e85565b33611fa57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f2c5760405163118cdaa760e01b8152336004820152602401611d2d565b6001600160a01b038116611ff55760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612031573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f409190612998565b6001600160a01b038281165f908152600560205260409020541661208c576040516394e72c6b60e01b815260040160405180910390fd5b5f5f836001600160a01b0316836040516120a691906129f1565b5f604051808303815f865af19150503d805f81146120df576040519150601f19603f3d011682016040523d82523d5f602084013e6120e4565b606091505b509150915081610bed578051156120fe5780518082602001fd5b604051638c76daeb60e01b815260040160405180910390fd5b611d3f8133612343565b5f5f5160206129fd5f395f51905f5261213a8484610f44565b6121b9575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561216f3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061070a565b5f91505061070a565b5f5f5160206129fd5f395f51905f526121db8484610f44565b156121b9575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061070a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b0381166122d25760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561230e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611787919061294a565b61233a61237c565b611d3f816123c5565b61234d8282610f44565b610f405760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401611d2d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610f2c57604051631afcd79f60e31b815260040160405180910390fd5b611d0861237c565b5080545f8255905f5260205f2090810190611d3f9190612487565b828054828255905f5260205f20908101928215612424575f5260205f209182015b82811115612424578254825591600101919060010190612409565b50612430929150612487565b5090565b828054828255905f5260205f20908101928215612424579160200282015b8281111561242457825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612452565b5b80821115612430575f8155600101612488565b6001600160a01b0381168114611d3f575f5ffd5b5f5f604083850312156124c0575f5ffd5b82356124cb8161249b565b915060208301356124db8161249b565b809150509250929050565b5f602082840312156124f6575f5ffd5b81356001600160e01b03198116811461250d575f5ffd5b9392505050565b5f60208284031215612524575f5ffd5b813561250d8161249b565b602080825282518282018190525f918401906040840190835b8181101561256f5783516001600160a01b0316835260209384019390920191600101612548565b509095945050505050565b5f6020828403121561258a575f5ffd5b5035919050565b5f5f604083850312156125a2575f5ffd5b8235915060208301356124db8161249b565b5f5f5f606084860312156125c6575f5ffd5b83356125d18161249b565b925060208401356125e18161249b565b915060408401356125f18161249b565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612656575f5ffd5b82356126618161249b565b9150602083013567ffffffffffffffff81111561267c575f5ffd5b8301601f8101851361268c575f5ffd5b803567ffffffffffffffff8111156126a6576126a6612631565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156126d5576126d5612631565b6040528181528282016020018710156126ec575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b80516001600160a01b03908116835260208083015190911681840152604080830151151590840152606080830151608091850182905280519185018290525f920190829060a08601905b808310156127805783516001600160a01b031682526020938401936001939093019290910190612755565b5095945050505050565b602081525f61250d602083018461270b565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156127f357603f198786030184526127de85835161270b565b945060209384019391909101906001016127c2565b50929695505050505050565b5f5f5f5f60608587031215612812575f5ffd5b843561281d8161249b565b9350602085013561282d8161249b565b9250604085013567ffffffffffffffff811115612848575f5ffd5b8501601f81018713612858575f5ffd5b803567ffffffffffffffff81111561286e575f5ffd5b8760208260051b8401011115612882575f5ffd5b949793965060200194505050565b5f602082840312156128a0575f5ffd5b815161250d8161249b565b5f81518060208401855e5f93019283525090919050565b6001600160e01b0319831681525f6128dd60048301846128ab565b949350505050565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561070a57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b805169ffffffffffffffffffff81168114612945575f5ffd5b919050565b5f5f5f5f5f60a0868803121561295e575f5ffd5b6129678661292c565b6020870151604088015160608901519297509095509350915061298c6080870161292c565b90509295509295909350565b5f602082840312156129a8575f5ffd5b5051919050565b602080825281018290525f8360408301825b858110156127805782356129d48161249b565b6001600160a01b03168252602092830192909101906001016129c1565b5f61250d82846128ab56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220a836ee8e5a3d467192321b7b8d943909034f9ff7bd41f24fc7af3f7468713cb764736f6c634300081c0033", - "nonce": "0x7be", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionType": "CREATE", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": [ - "0xfa157570d68683d1f92f8CEa06B88dc1D8e7880E", - "0xD208203a7A54fFA823E9B0061a21260Ed38EcE6C", - "0xc4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0xea906", - "value": "0x0", - "input": "0x60a0604052604051610e37380380610e3783398101604081905261002291610370565b82828282816100318282610092565b50508160405161004090610334565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f5f3e3d5ffd5b506001600160a01b031660805261008761008260805190565b6100f0565b505050505050610457565b61009b8261015d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100e4576100df82826101db565b505050565b6100ec61024e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012f5f516020610e175f395f51905f52546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a8161026f565b50565b806001600160a01b03163b5f0361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f5f846001600160a01b0316846040516101f79190610441565b5f60405180830381855af49150503d805f811461022f576040519150601f19603f3d011682016040523d82523d5f602084013e610234565b606091505b5090925090506102458583836102ac565b95945050505050565b341561026d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029857604051633173bdd160e11b81525f600482015260240161018e565b805f516020610e175f395f51905f526101ba565b6060826102c1576102bc8261030b565b610304565b81511580156102d857506001600160a01b0384163b155b1561030157604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b80511561031b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104e68061093183390190565b80516001600160a01b0381168114610357575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610382575f5ffd5b61038b84610341565b925061039960208501610341565b60408501519092506001600160401b038111156103b4575f5ffd5b8401601f810186136103c4575f5ffd5b80516001600160401b038111156103dd576103dd61035c565b604051601f8201601f19908116603f011681016001600160401b038111828210171561040b5761040b61035c565b604052818152828201602001881015610422575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b5f82518060208501845e5f920191825250919050565b6080516104bd6104745f395f818160350152607201526104bd5ff3fe60806040526004361061001d575f3560e01c80638b3240a014610027575b610025610070565b005b348015610032575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100dc575f356001600160e01b03191663278f794360e11b146100d2576040516334ad5dbb60e21b815260040160405180910390fd5b6100da6100e9565b565b6100da610117565b905090565b5f806100f83660048184610365565b81019061010591906103a0565b915091506101138282610127565b5050565b6100da610122610181565b6101b3565b610130826101d1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561017957610174828261024c565b505050565b6101136102be565b5f6100e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f5f375f5f365f845af43d5f5f3e8080156101cd573d5ff35b3d5ffd5b806001600160a01b03163b5f0361020b57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516102689190610471565b5f60405180830381855af49150503d805f81146102a0576040519150601f19603f3d011682016040523d82523d5f602084013e6102a5565b606091505b50915091506102b58583836102dd565b95945050505050565b34156100da5760405163b398979f60e01b815260040160405180910390fd5b6060826102f2576102ed8261033c565b610335565b815115801561030957506001600160a01b0384163b155b1561033257604051639996b31560e01b81526001600160a01b0385166004820152602401610202565b50805b9392505050565b80511561034c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5f85851115610373575f5ffd5b8386111561037f575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103b1575f5ffd5b82356001600160a01b03811681146103c7575f5ffd5b9150602083013567ffffffffffffffff8111156103e2575f5ffd5b8301601f810185136103f2575f5ffd5b803567ffffffffffffffff81111561040c5761040c61038c565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561043b5761043b61038c565b604052818152828201602001871015610452575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e1d41c0240698fbfc01d375b18b328bddb99ef819f03c230a6efbef2501325f764736f6c634300081c00336080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000fa157570d68683d1f92f8cea06b88dc1d8e7880e000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd00000000000000000000000000000000000000000000000000000000", - "nonce": "0x7bf", - "chainId": "0x138d4" - }, - "additionalContracts": [ - { - "transactionType": "CREATE", - "address": "0x3551803af186dc58494872fc66ce90464814d400", - "initCode": "0x6080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - } - ], - "isFixedGasLimit": false - }, - { - "hash": "0x236c5964d3e4eee29f83f643f05685d97343a050ed83280131d63b604b5e1317", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c0", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x33c9c806f59388f4e968048ff6e9f2905879044ca4115580769056c72c3726aa", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c1", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe0fbbe9eaf1dc1dbb70ae6759109a16e2d0561e04a257898f1eb419d5e1fc6b2", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c2", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x55434db1b24957cfc9fea5c69865bbe61f032ed038db9472132c400d14dde10f", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c3", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xec27ecebc2e45633e0e48c765f7d387b64209ded064668f00dbc7a4506c6467d", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c4", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xd2babc8e2501cd548ca46e53ae630215cd2ddc92beab4c561c2a33f616e17578", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "function": "transferOwnership(address)", - "arguments": [ - "0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "gas": "0xc23d", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "nonce": "0x7c5", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x7958a1f2a969f6a30f13a7ce63e313b56aeea5457373e44b97ff52476af13b9e", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x4238a", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000000e4aaf1351de4c0264c5c7056ef3777b41bd8e030000000000000000000000008e826703b6d471732415abd4a1e724a3bf451511", - "nonce": "0x7c6", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x8ac128f3add51e3c369632f0766aad5e1736162da2d2c52726685fb51930d715", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x31703", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000f5afcf50006944d17226978e594d4d25f4f92b4000000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "nonce": "0x7c7", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x01a40219d84890ecb12ab7f2a18e825d4c5e605bd5db2f09e9b9bd08070ec209", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x31676", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000d6d83af58a19cd14ef3cf6fe848c9a4d21e5727c0000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca9", - "nonce": "0x7c8", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xb7fc4437e000c9f4b196f6a29e391a963b7ab6adb38fb3cd75784471f64b154e", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000501dbf23c2b004d751496adc073da3727c5fe80f00000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e", - "nonce": "0x7c9", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe9747dd5fa2054fbe85a430046b1ae2dbed125b12f7d42fff44619e2d814fe96", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x34555", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000482c38cd33e79a3e3c1cce792a72d41bafffd416000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "nonce": "0x7ca", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe8cb6bd6ff06455b252ca1092497cb5b77d8f1b7c2b55bd6ef34203e9b59acc5", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000003db20aefcd234465c981b87da025711c91add2c3000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "nonce": "0x7cb", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x3a8b66", - "logs": [ - { - "address": "0xfa157570d68683d1f92f8cea06b88dc1d8e7880e", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x20735999cb370e855533b61de4d4f7fc3a54ca55befcf0f314eb7248c0fddfdd", - "transactionIndex": "0x7", - "logIndex": "0xe", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000008000000000", - "type": "0x2", - "transactionHash": "0x20735999cb370e855533b61de4d4f7fc3a54ca55befcf0f314eb7248c0fddfdd", - "transactionIndex": "0x7", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x24f7e3", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0xfa157570d68683d1f92f8cea06b88dc1d8e7880e" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x45d257", - "logs": [ - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000fa157570d68683d1f92f8cea06b88dc1d8e7880e" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0xf", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x10", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x11", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x12", - "removed": false - }, - { - "address": "0x3551803af186dc58494872fc66ce90464814d400", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x13", - "removed": false - }, - { - "address": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003551803af186dc58494872fc66ce90464814d400", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "logIndex": "0x14", - "removed": false - } - ], - "logsBloom": "0x00000004000000000000008000000000400000000800000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800002000000002000001200000000000000000000000020000000000030000000000000000000800000000800000000000000000000000400000000000002000000800000000000000000000000080000000000000800000000000000000000200008000000000000000000000000000001000000040100000000022000000000000000000000000000000000404000100000080000020000000000000000000000000000000000100000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x87bc8a13d8e090770be6d13354bc9184fe2806338c989518d85f378464cec9a1", - "transactionIndex": "0x8", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0xb46f1", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x465ef7", - "logs": [ - { - "address": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x236c5964d3e4eee29f83f643f05685d97343a050ed83280131d63b604b5e1317", - "transactionIndex": "0x9", - "logIndex": "0x15", - "removed": false - } - ], - "logsBloom": "0x00000040000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000040000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000008000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x236c5964d3e4eee29f83f643f05685d97343a050ed83280131d63b604b5e1317", - "transactionIndex": "0x9", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x46eb97", - "logs": [ - { - "address": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x33c9c806f59388f4e968048ff6e9f2905879044ca4115580769056c72c3726aa", - "transactionIndex": "0xa", - "logIndex": "0x16", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000001000000800000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x33c9c806f59388f4e968048ff6e9f2905879044ca4115580769056c72c3726aa", - "transactionIndex": "0xa", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x477837", - "logs": [ - { - "address": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0xe0fbbe9eaf1dc1dbb70ae6759109a16e2d0561e04a257898f1eb419d5e1fc6b2", - "transactionIndex": "0xb", - "logIndex": "0x17", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000008000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe0fbbe9eaf1dc1dbb70ae6759109a16e2d0561e04a257898f1eb419d5e1fc6b2", - "transactionIndex": "0xb", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x4804d7", - "logs": [ - { - "address": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0x55434db1b24957cfc9fea5c69865bbe61f032ed038db9472132c400d14dde10f", - "transactionIndex": "0xc", - "logIndex": "0x18", - "removed": false - } - ], - "logsBloom": "0x00000000000400000040000000000000200000000000000000800000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x55434db1b24957cfc9fea5c69865bbe61f032ed038db9472132c400d14dde10f", - "transactionIndex": "0xc", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x489177", - "logs": [ - { - "address": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "blockTimestamp": "0x67860eba", - "transactionHash": "0xec27ecebc2e45633e0e48c765f7d387b64209ded064668f00dbc7a4506c6467d", - "transactionIndex": "0xd", - "logIndex": "0x19", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000004000000000000000000000000000000000000000000200000000000000000000000000000000000000000040000000020000000000000080000000000000000000000000000000000000000000000000800000000000000080000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xec27ecebc2e45633e0e48c765f7d387b64209ded064668f00dbc7a4506c6467d", - "transactionIndex": "0xd", - "blockHash": "0xb4747007186bdb82b0f4b0b8c609cf753419f12a2e7b39229010ba01af7c2e30", - "blockNumber": "0x8e0c7c", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x18c3393161", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x11ee867", - "logs": [ - { - "address": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64" - ], - "data": "0x", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "blockTimestamp": "0x67860ebb", - "transactionHash": "0xd2babc8e2501cd548ca46e53ae630215cd2ddc92beab4c561c2a33f616e17578", - "transactionIndex": "0xa6", - "logIndex": "0x226", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000800000000000200000000000200000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xd2babc8e2501cd548ca46e53ae630215cd2ddc92beab4c561c2a33f616e17578", - "transactionIndex": "0xa6", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x8ca0", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x121bce0", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x7958a1f2a969f6a30f13a7ce63e313b56aeea5457373e44b97ff52476af13b9e", - "transactionIndex": "0xa7", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x2d479", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x123f98f", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x8ac128f3add51e3c369632f0766aad5e1736162da2d2c52726685fb51930d715", - "transactionIndex": "0xa8", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23caf", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x12635d7", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x01a40219d84890ecb12ab7f2a18e825d4c5e605bd5db2f09e9b9bd08070ec209", - "transactionIndex": "0xa9", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c48", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x128726c", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xb7fc4437e000c9f4b196f6a29e391a963b7ab6adb38fb3cd75784471f64b154e", - "transactionIndex": "0xaa", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x12aaef5", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe9747dd5fa2054fbe85a430046b1ae2dbed125b12f7d42fff44619e2d814fe96", - "transactionIndex": "0xab", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c89", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x12ceb8a", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe8cb6bd6ff06455b252ca1092497cb5b77d8f1b7c2b55bd6ef34203e9b59acc5", - "transactionIndex": "0xac", - "blockHash": "0x2a74cc9f7d7e1576ebded7dbec0d6ca00718d3deb4bd26ae126377a403eb8df1", - "blockNumber": "0x8e0c7d", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x16bce6aea5", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1736838906, - "chain": 80084, - "commit": "070d8c8" -} \ No newline at end of file diff --git a/broadcast/DeployFeedRegistry.s.sol/80084/run-1736843717.json b/broadcast/DeployFeedRegistry.s.sol/80084/run-1736843717.json deleted file mode 100644 index 6fad558..0000000 --- a/broadcast/DeployFeedRegistry.s.sol/80084/run-1736843717.json +++ /dev/null @@ -1,642 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionType": "CREATE", - "contractName": "FeedRegistry", - "contractAddress": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0x333639", - "value": "0x0", - "input": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612d31806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101e7575f3560e01c80638da5cb5b11610109578063c9648e1a1161009e578063db8907031161006e578063db890703146104e3578063f2fde38b146104f6578063f315df8614610509578063f834c9881461051c575f5ffd5b8063c9648e1a14610497578063d547741f146104aa578063d54c954b146104bd578063d83bd334146104d0575f5ffd5b8063ac77f572116100d9578063ac77f57214610429578063be62d72514610449578063c4d66de81461045c578063c76ece321461046f575f5ffd5b80638da5cb5b146103bf57806391d14854146103ef578063a217fddf14610402578063a63112e714610409575f5ffd5b806335a076121161017f57806367f28bda1161014f57806367f28bda146103895780636d86b4781461039c578063715018a6146103a457806389ad7503146103ac575f5ffd5b806335a07612146102fd57806336568abe1461033a57806354fd4d501461034d578063607c12b514610374575f5ffd5b80632288368d116101ba5780632288368d1461027b578063248a9ca3146102b65780632b898c25146102d75780632f2ff15d146102ea575f5ffd5b8063011aa7ce146101eb57806301ffc9a71461020057806306b30688146102285780630a6c790e1461023b575b5f5ffd5b6101fe6101f936600461278e565b61052f565b005b61021361020e3660046127c5565b610740565b60405190151581526020015b60405180910390f35b6101fe6102363660046127f3565b610776565b61026361024936600461283b565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b61028e610289366004612856565b610975565b604080516001600160a01b03948516815293909216602084015215159082015260600161021f565b6102c96102c4366004612856565b6109b9565b60405190815260200161021f565b6101fe6102e536600461278e565b6109d9565b6101fe6102f836600461286d565b610d34565b61031061030b366004612856565b610d56565b604080516001600160a01b039485168152928416602084015292169181019190915260600161021f565b6101fe61034836600461286d565b610d96565b60408051808201825260058152640312e302e360dc1b6020820152905161021f9190612890565b61037c610dce565b60405161021f91906128c5565b61037c61039736600461278e565b610e2d565b61037c610f2f565b6101fe610f8d565b6101fe6103ba366004612924565b610fa0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610263565b6102136103fd36600461286d565b610fb6565b6102c95f81565b61041c61041736600461278e565b610fec565b60405161021f9190612a69565b61043c61043736600461283b565b6110c4565b60405161021f9190612a7b565b6101fe610457366004612ade565b6111c2565b6101fe61046a36600461283b565b6114e9565b61026361047d36600461283b565b60056020525f90815260409020546001600160a01b031681565b6101fe6104a53660046127f3565b611602565b6101fe6104b836600461286d565b611893565b61041c6104cb36600461278e565b6118af565b6101fe6104de366004612856565b6119c0565b6102136104f136600461278e565b611d8f565b6101fe61050436600461283b565b611e04565b6101fe61051736600461283b565b611e46565b6101fe61052a366004612856565b612077565b610537612252565b610540826122ad565b6001600160a01b0381166105675760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b03821661058e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038181165f9081526004602052604090205416156105c657604051636d12062960e01b815260040160405180910390fd5b6001600160a01b038281165f9081526005602052604090205416156105fe576040516317759ec560e31b815260040160405180910390fd5b816001600160a01b0316816001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610644573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106689190612b6f565b6001600160a01b03161461068f5760405163ef6f1f1560e01b815260040160405180910390fd5b5f8054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b039485166001600160a01b0319918216811790925582548084019093557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690920180549590941694821685179093558282526004602090815260408084208054841687179055948352600590529290208054909216179055565b5f6001600160e01b03198216637965db0b60e01b148061077057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61077e612252565b6001600160a01b038084165f9081526005602052604090205416806107b6576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020908152604080832093871683529290522060010154600160a01b900460ff1661080557604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452939052918120909101905b815481101561092357836001600160a01b031682828154811061085557610855612b8a565b5f918252602090912001546001600160a01b03160361091b578154829061087e90600190612b9e565b8154811061088e5761088e612b8a565b905f5260205f20015f9054906101000a90046001600160a01b03168282815481106108bb576108bb612b8a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806108f6576108f6612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610923565b600101610830565b50826001600160a01b0316846001600160a01b0316866001600160a01b03167f8f46b1945c42643576240ccf490dd656ca2bcb788848869730f4c659db10589060405160405180910390a45050505050565b60068181548110610984575f80fd5b5f918252602090912060039091020180546001909101546001600160a01b03918216925090811690600160a01b900460ff1683565b5f9081525f516020612cdc5f395f51905f52602052604090206001015490565b6109e1612252565b6001600160a01b038083165f908152600560205260409020541680610a19576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff1615158683015292830180548251818502810185019093528083529495946060860193830182828015610abc57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610a9e575b50505050508152505090508060400151610ae957604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038083165f908152600260208181526040808420948816845293905291812080546001600160a01b03191681556001810180546001600160a81b031916905591610b3c908301826126ac565b5050604080516001600160a01b03851660208201525f917f0caceb24b146885ae17af1b1d0d14fcb3bba2b85301c273d73d3f506e1287333910160408051601f1981840301815290829052610b949291602001612be8565b6040516020818303038152906040529050610baf8382612334565b6001600160a01b0383165f908152600360205260408120805490915b81811015610d2a57866001600160a01b0316838281548110610bef57610bef612b8a565b5f9182526020909120600160039092020101546001600160a01b031603610d225782610c1c600184612b9e565b81548110610c2c57610c2c612b8a565b905f5260205f209060030201838281548110610c4a57610c4a612b8a565b5f9182526020909120825460039092020180546001600160a01b03199081166001600160a01b039384161782556001808501805491840180549384169290951691821785555460ff600160a01b91829004161515026001600160a81b0319909216171790915560028083018054610cc492840191906126c7565b5090505082805480610cd857610cd8612bbd565b5f8281526020812060035f199093019283020180546001600160a01b03191681556001810180546001600160a81b031916905590610d1960028301826126ac565b50509055610d2a565b600101610bcb565b5050505050505050565b610d3d826109b9565b610d46816123f6565b610d508383612400565b50505050565b60078181548110610d65575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b039182169350918116911683565b6001600160a01b0381163314610dbf5760405163334bd91960e11b815260040160405180910390fd5b610dc982826124a1565b505050565b60605f805480602002602001604051908101604052809291908181526020018280548015610e2357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e05575b5050505050905090565b6001600160a01b038083165f908152600560205260409020546060911680610e68576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260209081526040808320878516845290915290206001015416610eaf57604051633917193960e01b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452938152918390200180548351818402810184019094528084529091830182828015610f2157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610f03575b505050505091505092915050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e2357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610e05575050505050905090565b610f95612252565b610f9e5f61251a565b565b610fa8612252565b610fb28282612334565b5050565b5f9182525f516020612cdc5f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038381165f90815260026020818152604080842087861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156110b357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611095575b505050505081525050905092915050565b6001600160a01b0381165f908152600360209081526040808320805482518185028101850190935280835260609492939192909184015b828210156111b7575f848152602090819020604080516080810182526003860290920180546001600160a01b039081168452600182015490811684860152600160a01b900460ff161515838301526002810180548351818702810187019094528084529394919360608601939283018282801561119f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611181575b505050505081525050815260200190600101906110fb565b505050509050919050565b6001600160a01b038085165f9081526005602052604090205416806111fa576040516394e72c6b60e01b815260040160405180910390fd5b6112038461258a565b6001600160a01b038181165f90815260026020908152604080832088851684529091529020541615611248576040516328dbb26760e01b815260040160405180910390fd5b5f849050806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611288573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ac9190612c29565b505f93505050505b8381101561139a575f8585838181106112cf576112cf612b8a565b90506020020160208101906112e4919061283b565b6001600160a01b03160361130b5760405163e6c4247b60e01b815260040160405180910390fd5b84848281811061131d5761131d612b8a565b9050602002016020810190611332919061283b565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113919190612c77565b506001016112b4565b5060066040518060800160405280846001600160a01b03168152602001876001600160a01b031681526020015f151581526020018686808060200260200160405190810160405280939291908181526020018383602002808284375f920182905250939094525050835460018181018655948252602091829020845160039092020180546001600160a01b039283166001600160a01b031990911617815582850151958101805460408701511515600160a01b026001600160a81b031990911697909316969096179190911790945560608301518051939493611487935060028501929190910190612713565b505050846001600160a01b0316866001600160a01b0316336001600160a01b03167fe3bd7e17963bf77a36b430c3919b9e26f5cc2ea23b6fd30060bfa23a362df13a87876040516114d9929190612c8e565b60405180910390a4505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561152e5750825b90505f8267ffffffffffffffff16600114801561154a5750303b155b905081158015611558575080155b156115765760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156115a057845460ff60401b1916600160401b1785555b6115a986612611565b6115b35f87612400565b5083156115fa57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61160b816122ad565b6001600160a01b038084165f908152600560205260409020541680611643576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420888616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff16151586830152928301805482518185028101850190935280835294959460608601938301828280156116e657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116116c8575b5050505050815250509050806040015161171357604051636b85d76f60e11b815260040160405180910390fd5b5f5b81606001515181101561177957836001600160a01b03168260600151828151811061174257611742612b8a565b60200260200101516001600160a01b0316036117715760405163156e81c160e01b815260040160405180910390fd5b600101611715565b50604080516060810182526001600160a01b038781168083528782166020808501828152898516868801818152600780546001810182555f91909152975160039098027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180549989166001600160a01b03199a8b1617905592517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68984018054918916918a16919091179055517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a909201805492909616919096161790935593519283529133917f3dd3183c5a81964e5df8e169cbf87a42e84be05112c6dfdea9c04869116f20d3910160405180910390a45050505050565b61189c826109b9565b6118a5816123f6565b610d5083836124a1565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038084165f908152600560205260409020541680611909576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020818152604080842088861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156119ae57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611990575b50505050508152505091505092915050565b6119c8612252565b60065481106119ea57604051633917193960e01b815260040160405180910390fd5b5f600682815481106119fe576119fe612b8a565b5f91825260209182902060408051608081018252600390930290910180546001600160a01b03908116845260018201549081168486015260ff600160a01b9091041615158383015260028101805483518187028101870190945280845293949193606086019392830182828015611a9c57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611a7e575b5050509190925250505060208101519091506001600160a01b038116611ad557604051633917193960e01b815260040160405180910390fd5b6001604080840182815284516001600160a01b038082165f908152600460209081528582205460028083528784208a86168552835296909220895181549085166001600160a01b0319909116178155818a0151978101805496511515600160a01b026001600160a81b031990971698851698909817959095179096556060880151805193969190921694889493611b7493918501929190910190612713565b5050506001600160a01b038281165f908152600360208181526040808420805460018082018355918652948390208a519590940290930180546001600160a01b031916948616949094178455888201519284018054918a0151939095166001600160a81b031990911617600160a01b9215159290920291909117909255606086015180518793611c0b926002850192910190612713565b5050604080516001600160a01b03861660208201525f92507f3817cb52b411ba6b992602ea533a928f30d1391a9c6e2e221d53a7ef07482f43910160408051601f1981840301815290829052611c649291602001612be8565b6040516020818303038152906040529050611c7f8382612334565b60068681548110611c9257611c92612b8a565b5f9182526020822060039091020180546001600160a01b03191681556001810180546001600160a81b031916905590611cce60028301826126ac565b5050836001600160a01b0316826001600160a01b03167f9248b8612daaf0886d656b647e989378fea4de940d2217263536e28bb0e4c48560405160405180910390a36060850151515f5b81811015610d2a5786606001518181518110611d3657611d36612b8a565b60200260200101516001600160a01b0316866001600160a01b0316856001600160a01b03167fdf0726194f92213c2625dc475a4febaa3d3601a21999057763f8910d04587fdd60405160405180910390a4600101611d18565b6001600160a01b038083165f9081526005602052604081205490911680611dc9576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b039081165f9081526002602090815260408083209386168352929052206001015460ff600160a01b90910416905092915050565b611e0c612252565b6001600160a01b038116611e3a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b611e438161251a565b50565b611e4e612252565b6001600160a01b038082165f81815260046020818152604080842080549096168085526005835290842080546001600160a01b03199081169091559484529190528354909216909255815490915b81811015611f8257836001600160a01b03165f8281548110611ec057611ec0612b8a565b5f918252602090912001546001600160a01b031603611f7a575f611ee5600184612b9e565b81548110611ef557611ef5612b8a565b5f91825260208220015481546001600160a01b03909116919083908110611f1e57611f1e612b8a565b5f918252602082200180546001600160a01b0319166001600160a01b039390931692909217909155805480611f5557611f55612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611f82565b600101611e9c565b50506001545f5b81811015610d5057826001600160a01b031660018281548110611fae57611fae612b8a565b5f918252602090912001546001600160a01b03160361206f576001611fd38184612b9e565b81548110611fe357611fe3612b8a565b5f91825260209091200154600180546001600160a01b03909216918390811061200e5761200e612b8a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061204a5761204a612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610d50565b600101611f89565b61207f612252565b60075481106120a157604051633917193960e01b815260040160405180910390fd5b5f600782815481106120b5576120b5612b8a565b5f91825260209182902060408051606081018252600390930290910180546001600160a01b0390811684526001820154811694840194909452600201549092169181018290529150612106906122ad565b80516001600160a01b039081165f9081526005602090815260408083205484168084526002835281842083870151909516845293909152902060010154600160a01b900460ff1661216a57604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878301518616855282528084209087015192018054600181018255908452922090910180546001600160a01b0319169190921617905560078054849081106121cf576121cf612b8a565b5f9182526020808320600390920290910180546001600160a01b031990811682556001820180548216905560029091018054909116905560408085015191850151855191516001600160a01b03938416949184169392909216917fdf0726194f92213c2625dc475a4febaa3d3601a21999057763f8910d04587fdd9190a4505050565b336122847f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f9e5760405163118cdaa760e01b8152336004820152602401611e31565b6001600160a01b0381166122d45760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612310573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612c77565b6001600160a01b038281165f908152600460205260409020541661236b576040516394e72c6b60e01b815260040160405180910390fd5b5f5f836001600160a01b0316836040516123859190612cd0565b5f604051808303815f865af19150503d805f81146123be576040519150601f19603f3d011682016040523d82523d5f602084013e6123c3565b606091505b509150915081610d50578051156123dd5780518082602001fd5b604051638c76daeb60e01b815260040160405180910390fd5b611e438133612622565b5f5f516020612cdc5f395f51905f526124198484610fb6565b612498575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561244e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610770565b5f915050610770565b5f5f516020612cdc5f395f51905f526124ba8484610fb6565b15612498575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610770565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b0381166125b15760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156125ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115fa9190612c29565b61261961265b565b611e43816126a4565b61262c8282610fb6565b610fb25760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401611e31565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610f9e57604051631afcd79f60e31b815260040160405180910390fd5b611e0c61265b565b5080545f8255905f5260205f2090810190611e439190612766565b828054828255905f5260205f20908101928215612703575f5260205f209182015b828111156127035782548255916001019190600101906126e8565b5061270f929150612766565b5090565b828054828255905f5260205f20908101928215612703579160200282015b8281111561270357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612731565b5b8082111561270f575f8155600101612767565b6001600160a01b0381168114611e43575f5ffd5b5f5f6040838503121561279f575f5ffd5b82356127aa8161277a565b915060208301356127ba8161277a565b809150509250929050565b5f602082840312156127d5575f5ffd5b81356001600160e01b0319811681146127ec575f5ffd5b9392505050565b5f5f5f60608486031215612805575f5ffd5b83356128108161277a565b925060208401356128208161277a565b915060408401356128308161277a565b809150509250925092565b5f6020828403121561284b575f5ffd5b81356127ec8161277a565b5f60208284031215612866575f5ffd5b5035919050565b5f5f6040838503121561287e575f5ffd5b8235915060208301356127ba8161277a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b602080825282518282018190525f918401906040840190835b818110156129055783516001600160a01b03168352602093840193909201916001016128de565b509095945050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612935575f5ffd5b82356129408161277a565b9150602083013567ffffffffffffffff81111561295b575f5ffd5b8301601f8101851361296b575f5ffd5b803567ffffffffffffffff81111561298557612985612910565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156129b4576129b4612910565b6040528181528282016020018710156129cb575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b80516001600160a01b03908116835260208083015190911681840152604080830151151590840152606080830151608091850182905280519185018290525f920190829060a08601905b80831015612a5f5783516001600160a01b031682526020938401936001939093019290910190612a34565b5095945050505050565b602081525f6127ec60208301846129ea565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ad257603f19878603018452612abd8583516129ea565b94506020938401939190910190600101612aa1565b50929695505050505050565b5f5f5f5f60608587031215612af1575f5ffd5b8435612afc8161277a565b93506020850135612b0c8161277a565b9250604085013567ffffffffffffffff811115612b27575f5ffd5b8501601f81018713612b37575f5ffd5b803567ffffffffffffffff811115612b4d575f5ffd5b8760208260051b8401011115612b61575f5ffd5b949793965060200194505050565b5f60208284031215612b7f575f5ffd5b81516127ec8161277a565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561077057634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f81518060208401855e5f93019283525090919050565b6001600160e01b0319831681525f612c036004830184612bd1565b949350505050565b805169ffffffffffffffffffff81168114612c24575f5ffd5b919050565b5f5f5f5f5f60a08688031215612c3d575f5ffd5b612c4686612c0b565b60208701516040880151606089015192975090955093509150612c6b60808701612c0b565b90509295509295909350565b5f60208284031215612c87575f5ffd5b5051919050565b602080825281018290525f8360408301825b85811015612a5f578235612cb38161277a565b6001600160a01b0316825260209283019290910190600101612ca0565b5f6127ec8284612bd156fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a264697066735822122035c3593fb8d01925367f01f269622054491b1ab9e0f35a797f84e42c900edba164736f6c634300081c0033", - "nonce": "0x7cc", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionType": "CREATE", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": [ - "0x93ceFc4F32AbEaE2Df23bb8D74a8FA2CcAcDEb4B", - "0xD208203a7A54fFA823E9B0061a21260Ed38EcE6C", - "0xc4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0xea93f", - "value": "0x0", - "input": "0x60a0604052604051610e37380380610e3783398101604081905261002291610370565b82828282816100318282610092565b50508160405161004090610334565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f5f3e3d5ffd5b506001600160a01b031660805261008761008260805190565b6100f0565b505050505050610457565b61009b8261015d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100e4576100df82826101db565b505050565b6100ec61024e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012f5f516020610e175f395f51905f52546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a8161026f565b50565b806001600160a01b03163b5f0361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f5f846001600160a01b0316846040516101f79190610441565b5f60405180830381855af49150503d805f811461022f576040519150601f19603f3d011682016040523d82523d5f602084013e610234565b606091505b5090925090506102458583836102ac565b95945050505050565b341561026d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029857604051633173bdd160e11b81525f600482015260240161018e565b805f516020610e175f395f51905f526101ba565b6060826102c1576102bc8261030b565b610304565b81511580156102d857506001600160a01b0384163b155b1561030157604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b80511561031b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104e68061093183390190565b80516001600160a01b0381168114610357575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610382575f5ffd5b61038b84610341565b925061039960208501610341565b60408501519092506001600160401b038111156103b4575f5ffd5b8401601f810186136103c4575f5ffd5b80516001600160401b038111156103dd576103dd61035c565b604051601f8201601f19908116603f011681016001600160401b038111828210171561040b5761040b61035c565b604052818152828201602001881015610422575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b5f82518060208501845e5f920191825250919050565b6080516104bd6104745f395f818160350152607201526104bd5ff3fe60806040526004361061001d575f3560e01c80638b3240a014610027575b610025610070565b005b348015610032575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100dc575f356001600160e01b03191663278f794360e11b146100d2576040516334ad5dbb60e21b815260040160405180910390fd5b6100da6100e9565b565b6100da610117565b905090565b5f806100f83660048184610365565b81019061010591906103a0565b915091506101138282610127565b5050565b6100da610122610181565b6101b3565b610130826101d1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561017957610174828261024c565b505050565b6101136102be565b5f6100e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f5f375f5f365f845af43d5f5f3e8080156101cd573d5ff35b3d5ffd5b806001600160a01b03163b5f0361020b57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516102689190610471565b5f60405180830381855af49150503d805f81146102a0576040519150601f19603f3d011682016040523d82523d5f602084013e6102a5565b606091505b50915091506102b58583836102dd565b95945050505050565b34156100da5760405163b398979f60e01b815260040160405180910390fd5b6060826102f2576102ed8261033c565b610335565b815115801561030957506001600160a01b0384163b155b1561033257604051639996b31560e01b81526001600160a01b0385166004820152602401610202565b50805b9392505050565b80511561034c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5f85851115610373575f5ffd5b8386111561037f575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103b1575f5ffd5b82356001600160a01b03811681146103c7575f5ffd5b9150602083013567ffffffffffffffff8111156103e2575f5ffd5b8301601f810185136103f2575f5ffd5b803567ffffffffffffffff81111561040c5761040c61038c565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561043b5761043b61038c565b604052818152828201602001871015610452575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e1d41c0240698fbfc01d375b18b328bddb99ef819f03c230a6efbef2501325f764736f6c634300081c00336080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000093cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd00000000000000000000000000000000000000000000000000000000", - "nonce": "0x7cd", - "chainId": "0x138d4" - }, - "additionalContracts": [ - { - "transactionType": "CREATE", - "address": "0x68ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "initCode": "0x6080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - } - ], - "isFixedGasLimit": false - }, - { - "hash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x8E826703B6D471732415ABd4a1E724A3bF451511", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad75030000000000000000000000008e826703b6d471732415abd4a1e724a3bf45151100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7ce", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x33c608b9e7Ae1877dcb665Bd3d2D3bb327b01156", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad750300000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b0115600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7cf", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x8520b4Ed7E7e54343ADe583E6A7864718535eCa9", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad75030000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d0", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x39da60365de955d03c6C1AB7b80e8a4c458FA87e", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad750300000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d1", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0xb468a7AC04db7B07d8D2a8DeC3e6008397eC3E4D", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d0f", - "value": "0x0", - "input": "0x89ad7503000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d2", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0xC3adc5347663C4fb93ad5029B6382a9f7fE73B05", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad7503000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b0500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d3", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x5716a7e13b16b1024b38110bb124da7c2bf4fa3952210c2cc18fd210f09a4624", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x4238a", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000000e4aaf1351de4c0264c5c7056ef3777b41bd8e030000000000000000000000008e826703b6d471732415abd4a1e724a3bf451511", - "nonce": "0x7d4", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x2c97066ffc7d036a13da2a4f9500da53d7516af311cece0b1a3b99eb30376dcd", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x31703", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000f5afcf50006944d17226978e594d4d25f4f92b4000000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "nonce": "0x7d5", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xc2ecd9ac2fabe92ba6ef81b6a35cf4f242c17f39feaf0462dcca2193ed965e87", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x31676", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000d6d83af58a19cd14ef3cf6fe848c9a4d21e5727c0000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca9", - "nonce": "0x7d6", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe398b305acc830122a6d2b9fb99c35a777e5cb457d9f220f52017aa0c969e2e7", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000501dbf23c2b004d751496adc073da3727c5fe80f00000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e", - "nonce": "0x7d7", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x4634cc772647d78e610d99c859abb492cf14175a616c6f4811642dc1f6ed095b", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x34555", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000482c38cd33e79a3e3c1cce792a72d41bafffd416000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "nonce": "0x7d8", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x100ead54f27bf869db27832fa04dd816de3a20e16addbb609ee8d41a530a804a", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000003db20aefcd234465c981b87da025711c91add2c3000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "nonce": "0x7d9", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x6ff309", - "logs": [ - { - "address": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionIndex": "0x2e", - "logIndex": "0x99", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000100000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionIndex": "0x2e", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0x2764ca", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7b3a26", - "logs": [ - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000093cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9a", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9b", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9c", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9d", - "removed": false - }, - { - "address": "0x68ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9e", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9f", - "removed": false - } - ], - "logsBloom": "0x00000004010000000000000000000000400000000000000000800000000000000000000000000000002000000000000000040000000000000000000002000000100000000000000800000000000002000001000000000000100000000000000000000000030000000000000000000800000000800000000000000000000000400000000000000040000800000000000000000000000080000000000000800000000000000000000200008000000000000000000000000000001000000040100000000020000008000000000000000000000000004404000100000000000020000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xb471d", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7bfcfe", - "logs": [ - { - "address": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionIndex": "0x30", - "logIndex": "0xa0", - "removed": false - } - ], - "logsBloom": "0x00000040000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000008000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionIndex": "0x30", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7cbfd6", - "logs": [ - { - "address": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionIndex": "0x31", - "logIndex": "0xa1", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000001000000800000000000000000000000000000000000000020000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionIndex": "0x31", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7d82ae", - "logs": [ - { - "address": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionIndex": "0x32", - "logIndex": "0xa2", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000020000000000000000000000000000000000000000000000000000000000000040000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000008000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionIndex": "0x32", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7e4586", - "logs": [ - { - "address": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionIndex": "0x33", - "logIndex": "0xa3", - "removed": false - } - ], - "logsBloom": "0x00000000000400000040000000000000200000000000000000800000000000000000000000000000000000000000000000000000000000000000000020000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionIndex": "0x33", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7f0852", - "logs": [ - { - "address": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionIndex": "0x34", - "logIndex": "0xa4", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000004000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000080000000000000000000000000000000000000000000000000800000000000000080000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionIndex": "0x34", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2cc", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7fcb2a", - "logs": [ - { - "address": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionIndex": "0x35", - "logIndex": "0xa5", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000400000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000800000000000200000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionIndex": "0x35", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1736843717, - "chain": 80084, - "commit": "945276a" -} \ No newline at end of file diff --git a/broadcast/DeployFeedRegistry.s.sol/80084/run-1736843893.json b/broadcast/DeployFeedRegistry.s.sol/80084/run-1736843893.json deleted file mode 100644 index 8dbcc1b..0000000 --- a/broadcast/DeployFeedRegistry.s.sol/80084/run-1736843893.json +++ /dev/null @@ -1,738 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionType": "CREATE", - "contractName": "FeedRegistry", - "contractAddress": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0x333639", - "value": "0x0", - "input": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612d31806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101e7575f3560e01c80638da5cb5b11610109578063c9648e1a1161009e578063db8907031161006e578063db890703146104e3578063f2fde38b146104f6578063f315df8614610509578063f834c9881461051c575f5ffd5b8063c9648e1a14610497578063d547741f146104aa578063d54c954b146104bd578063d83bd334146104d0575f5ffd5b8063ac77f572116100d9578063ac77f57214610429578063be62d72514610449578063c4d66de81461045c578063c76ece321461046f575f5ffd5b80638da5cb5b146103bf57806391d14854146103ef578063a217fddf14610402578063a63112e714610409575f5ffd5b806335a076121161017f57806367f28bda1161014f57806367f28bda146103895780636d86b4781461039c578063715018a6146103a457806389ad7503146103ac575f5ffd5b806335a07612146102fd57806336568abe1461033a57806354fd4d501461034d578063607c12b514610374575f5ffd5b80632288368d116101ba5780632288368d1461027b578063248a9ca3146102b65780632b898c25146102d75780632f2ff15d146102ea575f5ffd5b8063011aa7ce146101eb57806301ffc9a71461020057806306b30688146102285780630a6c790e1461023b575b5f5ffd5b6101fe6101f936600461278e565b61052f565b005b61021361020e3660046127c5565b610740565b60405190151581526020015b60405180910390f35b6101fe6102363660046127f3565b610776565b61026361024936600461283b565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b61028e610289366004612856565b610975565b604080516001600160a01b03948516815293909216602084015215159082015260600161021f565b6102c96102c4366004612856565b6109b9565b60405190815260200161021f565b6101fe6102e536600461278e565b6109d9565b6101fe6102f836600461286d565b610d34565b61031061030b366004612856565b610d56565b604080516001600160a01b039485168152928416602084015292169181019190915260600161021f565b6101fe61034836600461286d565b610d96565b60408051808201825260058152640312e302e360dc1b6020820152905161021f9190612890565b61037c610dce565b60405161021f91906128c5565b61037c61039736600461278e565b610e2d565b61037c610f2f565b6101fe610f8d565b6101fe6103ba366004612924565b610fa0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610263565b6102136103fd36600461286d565b610fb6565b6102c95f81565b61041c61041736600461278e565b610fec565b60405161021f9190612a69565b61043c61043736600461283b565b6110c4565b60405161021f9190612a7b565b6101fe610457366004612ade565b6111c2565b6101fe61046a36600461283b565b6114e9565b61026361047d36600461283b565b60056020525f90815260409020546001600160a01b031681565b6101fe6104a53660046127f3565b611602565b6101fe6104b836600461286d565b611893565b61041c6104cb36600461278e565b6118af565b6101fe6104de366004612856565b6119c0565b6102136104f136600461278e565b611d8f565b6101fe61050436600461283b565b611e04565b6101fe61051736600461283b565b611e46565b6101fe61052a366004612856565b612077565b610537612252565b610540826122ad565b6001600160a01b0381166105675760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b03821661058e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038181165f9081526004602052604090205416156105c657604051636d12062960e01b815260040160405180910390fd5b6001600160a01b038281165f9081526005602052604090205416156105fe576040516317759ec560e31b815260040160405180910390fd5b816001600160a01b0316816001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610644573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106689190612b6f565b6001600160a01b03161461068f5760405163ef6f1f1560e01b815260040160405180910390fd5b5f8054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b039485166001600160a01b0319918216811790925582548084019093557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690920180549590941694821685179093558282526004602090815260408084208054841687179055948352600590529290208054909216179055565b5f6001600160e01b03198216637965db0b60e01b148061077057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61077e612252565b6001600160a01b038084165f9081526005602052604090205416806107b6576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020908152604080832093871683529290522060010154600160a01b900460ff1661080557604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452939052918120909101905b815481101561092357836001600160a01b031682828154811061085557610855612b8a565b5f918252602090912001546001600160a01b03160361091b578154829061087e90600190612b9e565b8154811061088e5761088e612b8a565b905f5260205f20015f9054906101000a90046001600160a01b03168282815481106108bb576108bb612b8a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806108f6576108f6612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610923565b600101610830565b50826001600160a01b0316846001600160a01b0316866001600160a01b03167f8f46b1945c42643576240ccf490dd656ca2bcb788848869730f4c659db10589060405160405180910390a45050505050565b60068181548110610984575f80fd5b5f918252602090912060039091020180546001909101546001600160a01b03918216925090811690600160a01b900460ff1683565b5f9081525f516020612cdc5f395f51905f52602052604090206001015490565b6109e1612252565b6001600160a01b038083165f908152600560205260409020541680610a19576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff1615158683015292830180548251818502810185019093528083529495946060860193830182828015610abc57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610a9e575b50505050508152505090508060400151610ae957604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038083165f908152600260208181526040808420948816845293905291812080546001600160a01b03191681556001810180546001600160a81b031916905591610b3c908301826126ac565b5050604080516001600160a01b03851660208201525f917f0caceb24b146885ae17af1b1d0d14fcb3bba2b85301c273d73d3f506e1287333910160408051601f1981840301815290829052610b949291602001612be8565b6040516020818303038152906040529050610baf8382612334565b6001600160a01b0383165f908152600360205260408120805490915b81811015610d2a57866001600160a01b0316838281548110610bef57610bef612b8a565b5f9182526020909120600160039092020101546001600160a01b031603610d225782610c1c600184612b9e565b81548110610c2c57610c2c612b8a565b905f5260205f209060030201838281548110610c4a57610c4a612b8a565b5f9182526020909120825460039092020180546001600160a01b03199081166001600160a01b039384161782556001808501805491840180549384169290951691821785555460ff600160a01b91829004161515026001600160a81b0319909216171790915560028083018054610cc492840191906126c7565b5090505082805480610cd857610cd8612bbd565b5f8281526020812060035f199093019283020180546001600160a01b03191681556001810180546001600160a81b031916905590610d1960028301826126ac565b50509055610d2a565b600101610bcb565b5050505050505050565b610d3d826109b9565b610d46816123f6565b610d508383612400565b50505050565b60078181548110610d65575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b039182169350918116911683565b6001600160a01b0381163314610dbf5760405163334bd91960e11b815260040160405180910390fd5b610dc982826124a1565b505050565b60605f805480602002602001604051908101604052809291908181526020018280548015610e2357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e05575b5050505050905090565b6001600160a01b038083165f908152600560205260409020546060911680610e68576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260209081526040808320878516845290915290206001015416610eaf57604051633917193960e01b815260040160405180910390fd5b6001600160a01b038082165f9081526002602081815260408084209488168452938152918390200180548351818402810184019094528084529091830182828015610f2157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610f03575b505050505091505092915050565b60606001805480602002602001604051908101604052809291908181526020018280548015610e2357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610e05575050505050905090565b610f95612252565b610f9e5f61251a565b565b610fa8612252565b610fb28282612334565b5050565b5f9182525f516020612cdc5f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038381165f90815260026020818152604080842087861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156110b357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611095575b505050505081525050905092915050565b6001600160a01b0381165f908152600360209081526040808320805482518185028101850190935280835260609492939192909184015b828210156111b7575f848152602090819020604080516080810182526003860290920180546001600160a01b039081168452600182015490811684860152600160a01b900460ff161515838301526002810180548351818702810187019094528084529394919360608601939283018282801561119f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611181575b505050505081525050815260200190600101906110fb565b505050509050919050565b6001600160a01b038085165f9081526005602052604090205416806111fa576040516394e72c6b60e01b815260040160405180910390fd5b6112038461258a565b6001600160a01b038181165f90815260026020908152604080832088851684529091529020541615611248576040516328dbb26760e01b815260040160405180910390fd5b5f849050806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611288573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ac9190612c29565b505f93505050505b8381101561139a575f8585838181106112cf576112cf612b8a565b90506020020160208101906112e4919061283b565b6001600160a01b03160361130b5760405163e6c4247b60e01b815260040160405180910390fd5b84848281811061131d5761131d612b8a565b9050602002016020810190611332919061283b565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113919190612c77565b506001016112b4565b5060066040518060800160405280846001600160a01b03168152602001876001600160a01b031681526020015f151581526020018686808060200260200160405190810160405280939291908181526020018383602002808284375f920182905250939094525050835460018181018655948252602091829020845160039092020180546001600160a01b039283166001600160a01b031990911617815582850151958101805460408701511515600160a01b026001600160a81b031990911697909316969096179190911790945560608301518051939493611487935060028501929190910190612713565b505050846001600160a01b0316866001600160a01b0316336001600160a01b03167fe3bd7e17963bf77a36b430c3919b9e26f5cc2ea23b6fd30060bfa23a362df13a87876040516114d9929190612c8e565b60405180910390a4505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561152e5750825b90505f8267ffffffffffffffff16600114801561154a5750303b155b905081158015611558575080155b156115765760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156115a057845460ff60401b1916600160401b1785555b6115a986612611565b6115b35f87612400565b5083156115fa57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61160b816122ad565b6001600160a01b038084165f908152600560205260409020541680611643576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420888616855282528084208151608081018352815487168152600182015496871681850152600160a01b90960460ff16151586830152928301805482518185028101850190935280835294959460608601938301828280156116e657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116116c8575b5050505050815250509050806040015161171357604051636b85d76f60e11b815260040160405180910390fd5b5f5b81606001515181101561177957836001600160a01b03168260600151828151811061174257611742612b8a565b60200260200101516001600160a01b0316036117715760405163156e81c160e01b815260040160405180910390fd5b600101611715565b50604080516060810182526001600160a01b038781168083528782166020808501828152898516868801818152600780546001810182555f91909152975160039098027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180549989166001600160a01b03199a8b1617905592517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68984018054918916918a16919091179055517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a909201805492909616919096161790935593519283529133917f3dd3183c5a81964e5df8e169cbf87a42e84be05112c6dfdea9c04869116f20d3910160405180910390a45050505050565b61189c826109b9565b6118a5816123f6565b610d5083836124a1565b604080516080810182525f80825260208201819052918101919091526060808201526001600160a01b038084165f908152600560205260409020541680611909576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b038181165f90815260026020818152604080842088861685528252928390208351608081018552815486168152600182015495861681840152600160a01b90950460ff1615158585015291820180548451818402810184019095528085529293606086019390928301828280156119ae57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611990575b50505050508152505091505092915050565b6119c8612252565b60065481106119ea57604051633917193960e01b815260040160405180910390fd5b5f600682815481106119fe576119fe612b8a565b5f91825260209182902060408051608081018252600390930290910180546001600160a01b03908116845260018201549081168486015260ff600160a01b9091041615158383015260028101805483518187028101870190945280845293949193606086019392830182828015611a9c57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611a7e575b5050509190925250505060208101519091506001600160a01b038116611ad557604051633917193960e01b815260040160405180910390fd5b6001604080840182815284516001600160a01b038082165f908152600460209081528582205460028083528784208a86168552835296909220895181549085166001600160a01b0319909116178155818a0151978101805496511515600160a01b026001600160a81b031990971698851698909817959095179096556060880151805193969190921694889493611b7493918501929190910190612713565b5050506001600160a01b038281165f908152600360208181526040808420805460018082018355918652948390208a519590940290930180546001600160a01b031916948616949094178455888201519284018054918a0151939095166001600160a81b031990911617600160a01b9215159290920291909117909255606086015180518793611c0b926002850192910190612713565b5050604080516001600160a01b03861660208201525f92507f3817cb52b411ba6b992602ea533a928f30d1391a9c6e2e221d53a7ef07482f43910160408051601f1981840301815290829052611c649291602001612be8565b6040516020818303038152906040529050611c7f8382612334565b60068681548110611c9257611c92612b8a565b5f9182526020822060039091020180546001600160a01b03191681556001810180546001600160a81b031916905590611cce60028301826126ac565b5050836001600160a01b0316826001600160a01b03167f9248b8612daaf0886d656b647e989378fea4de940d2217263536e28bb0e4c48560405160405180910390a36060850151515f5b81811015610d2a5786606001518181518110611d3657611d36612b8a565b60200260200101516001600160a01b0316866001600160a01b0316856001600160a01b03167fdf0726194f92213c2625dc475a4febaa3d3601a21999057763f8910d04587fdd60405160405180910390a4600101611d18565b6001600160a01b038083165f9081526005602052604081205490911680611dc9576040516394e72c6b60e01b815260040160405180910390fd5b6001600160a01b039081165f9081526002602090815260408083209386168352929052206001015460ff600160a01b90910416905092915050565b611e0c612252565b6001600160a01b038116611e3a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b611e438161251a565b50565b611e4e612252565b6001600160a01b038082165f81815260046020818152604080842080549096168085526005835290842080546001600160a01b03199081169091559484529190528354909216909255815490915b81811015611f8257836001600160a01b03165f8281548110611ec057611ec0612b8a565b5f918252602090912001546001600160a01b031603611f7a575f611ee5600184612b9e565b81548110611ef557611ef5612b8a565b5f91825260208220015481546001600160a01b03909116919083908110611f1e57611f1e612b8a565b5f918252602082200180546001600160a01b0319166001600160a01b039390931692909217909155805480611f5557611f55612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611f82565b600101611e9c565b50506001545f5b81811015610d5057826001600160a01b031660018281548110611fae57611fae612b8a565b5f918252602090912001546001600160a01b03160361206f576001611fd38184612b9e565b81548110611fe357611fe3612b8a565b5f91825260209091200154600180546001600160a01b03909216918390811061200e5761200e612b8a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061204a5761204a612bbd565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610d50565b600101611f89565b61207f612252565b60075481106120a157604051633917193960e01b815260040160405180910390fd5b5f600782815481106120b5576120b5612b8a565b5f91825260209182902060408051606081018252600390930290910180546001600160a01b0390811684526001820154811694840194909452600201549092169181018290529150612106906122ad565b80516001600160a01b039081165f9081526005602090815260408083205484168084526002835281842083870151909516845293909152902060010154600160a01b900460ff1661216a57604051636b85d76f60e11b815260040160405180910390fd5b6001600160a01b038181165f908152600260208181526040808420878301518616855282528084209087015192018054600181018255908452922090910180546001600160a01b0319169190921617905560078054849081106121cf576121cf612b8a565b5f9182526020808320600390920290910180546001600160a01b031990811682556001820180548216905560029091018054909116905560408085015191850151855191516001600160a01b03938416949184169392909216917fdf0726194f92213c2625dc475a4febaa3d3601a21999057763f8910d04587fdd9190a4505050565b336122847f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f9e5760405163118cdaa760e01b8152336004820152602401611e31565b6001600160a01b0381166122d45760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612310573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612c77565b6001600160a01b038281165f908152600460205260409020541661236b576040516394e72c6b60e01b815260040160405180910390fd5b5f5f836001600160a01b0316836040516123859190612cd0565b5f604051808303815f865af19150503d805f81146123be576040519150601f19603f3d011682016040523d82523d5f602084013e6123c3565b606091505b509150915081610d50578051156123dd5780518082602001fd5b604051638c76daeb60e01b815260040160405180910390fd5b611e438133612622565b5f5f516020612cdc5f395f51905f526124198484610fb6565b612498575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561244e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610770565b5f915050610770565b5f5f516020612cdc5f395f51905f526124ba8484610fb6565b15612498575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610770565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b0381166125b15760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156125ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115fa9190612c29565b61261961265b565b611e43816126a4565b61262c8282610fb6565b610fb25760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401611e31565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610f9e57604051631afcd79f60e31b815260040160405180910390fd5b611e0c61265b565b5080545f8255905f5260205f2090810190611e439190612766565b828054828255905f5260205f20908101928215612703575f5260205f209182015b828111156127035782548255916001019190600101906126e8565b5061270f929150612766565b5090565b828054828255905f5260205f20908101928215612703579160200282015b8281111561270357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612731565b5b8082111561270f575f8155600101612767565b6001600160a01b0381168114611e43575f5ffd5b5f5f6040838503121561279f575f5ffd5b82356127aa8161277a565b915060208301356127ba8161277a565b809150509250929050565b5f602082840312156127d5575f5ffd5b81356001600160e01b0319811681146127ec575f5ffd5b9392505050565b5f5f5f60608486031215612805575f5ffd5b83356128108161277a565b925060208401356128208161277a565b915060408401356128308161277a565b809150509250925092565b5f6020828403121561284b575f5ffd5b81356127ec8161277a565b5f60208284031215612866575f5ffd5b5035919050565b5f5f6040838503121561287e575f5ffd5b8235915060208301356127ba8161277a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b602080825282518282018190525f918401906040840190835b818110156129055783516001600160a01b03168352602093840193909201916001016128de565b509095945050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612935575f5ffd5b82356129408161277a565b9150602083013567ffffffffffffffff81111561295b575f5ffd5b8301601f8101851361296b575f5ffd5b803567ffffffffffffffff81111561298557612985612910565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156129b4576129b4612910565b6040528181528282016020018710156129cb575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b80516001600160a01b03908116835260208083015190911681840152604080830151151590840152606080830151608091850182905280519185018290525f920190829060a08601905b80831015612a5f5783516001600160a01b031682526020938401936001939093019290910190612a34565b5095945050505050565b602081525f6127ec60208301846129ea565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ad257603f19878603018452612abd8583516129ea565b94506020938401939190910190600101612aa1565b50929695505050505050565b5f5f5f5f60608587031215612af1575f5ffd5b8435612afc8161277a565b93506020850135612b0c8161277a565b9250604085013567ffffffffffffffff811115612b27575f5ffd5b8501601f81018713612b37575f5ffd5b803567ffffffffffffffff811115612b4d575f5ffd5b8760208260051b8401011115612b61575f5ffd5b949793965060200194505050565b5f60208284031215612b7f575f5ffd5b81516127ec8161277a565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561077057634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f81518060208401855e5f93019283525090919050565b6001600160e01b0319831681525f612c036004830184612bd1565b949350505050565b805169ffffffffffffffffffff81168114612c24575f5ffd5b919050565b5f5f5f5f5f60a08688031215612c3d575f5ffd5b612c4686612c0b565b60208701516040880151606089015192975090955093509150612c6b60808701612c0b565b90509295509295909350565b5f60208284031215612c87575f5ffd5b5051919050565b602080825281018290525f8360408301825b85811015612a5f578235612cb38161277a565b6001600160a01b0316825260209283019290910190600101612ca0565b5f6127ec8284612bd156fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a264697066735822122035c3593fb8d01925367f01f269622054491b1ab9e0f35a797f84e42c900edba164736f6c634300081c0033", - "nonce": "0x7cc", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionType": "CREATE", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": [ - "0x93ceFc4F32AbEaE2Df23bb8D74a8FA2CcAcDEb4B", - "0xD208203a7A54fFA823E9B0061a21260Ed38EcE6C", - "0xc4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "gas": "0xea93f", - "value": "0x0", - "input": "0x60a0604052604051610e37380380610e3783398101604081905261002291610370565b82828282816100318282610092565b50508160405161004090610334565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f5f3e3d5ffd5b506001600160a01b031660805261008761008260805190565b6100f0565b505050505050610457565b61009b8261015d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100e4576100df82826101db565b505050565b6100ec61024e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012f5f516020610e175f395f51905f52546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a8161026f565b50565b806001600160a01b03163b5f0361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f5f846001600160a01b0316846040516101f79190610441565b5f60405180830381855af49150503d805f811461022f576040519150601f19603f3d011682016040523d82523d5f602084013e610234565b606091505b5090925090506102458583836102ac565b95945050505050565b341561026d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029857604051633173bdd160e11b81525f600482015260240161018e565b805f516020610e175f395f51905f526101ba565b6060826102c1576102bc8261030b565b610304565b81511580156102d857506001600160a01b0384163b155b1561030157604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b80511561031b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104e68061093183390190565b80516001600160a01b0381168114610357575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610382575f5ffd5b61038b84610341565b925061039960208501610341565b60408501519092506001600160401b038111156103b4575f5ffd5b8401601f810186136103c4575f5ffd5b80516001600160401b038111156103dd576103dd61035c565b604051601f8201601f19908116603f011681016001600160401b038111828210171561040b5761040b61035c565b604052818152828201602001881015610422575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b5f82518060208501845e5f920191825250919050565b6080516104bd6104745f395f818160350152607201526104bd5ff3fe60806040526004361061001d575f3560e01c80638b3240a014610027575b610025610070565b005b348015610032575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100dc575f356001600160e01b03191663278f794360e11b146100d2576040516334ad5dbb60e21b815260040160405180910390fd5b6100da6100e9565b565b6100da610117565b905090565b5f806100f83660048184610365565b81019061010591906103a0565b915091506101138282610127565b5050565b6100da610122610181565b6101b3565b610130826101d1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561017957610174828261024c565b505050565b6101136102be565b5f6100e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f5f375f5f365f845af43d5f5f3e8080156101cd573d5ff35b3d5ffd5b806001600160a01b03163b5f0361020b57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516102689190610471565b5f60405180830381855af49150503d805f81146102a0576040519150601f19603f3d011682016040523d82523d5f602084013e6102a5565b606091505b50915091506102b58583836102dd565b95945050505050565b34156100da5760405163b398979f60e01b815260040160405180910390fd5b6060826102f2576102ed8261033c565b610335565b815115801561030957506001600160a01b0384163b155b1561033257604051639996b31560e01b81526001600160a01b0385166004820152602401610202565b50805b9392505050565b80511561034c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5f85851115610373575f5ffd5b8386111561037f575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103b1575f5ffd5b82356001600160a01b03811681146103c7575f5ffd5b9150602083013567ffffffffffffffff8111156103e2575f5ffd5b8301601f810185136103f2575f5ffd5b803567ffffffffffffffff81111561040c5761040c61038c565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561043b5761043b61038c565b604052818152828201602001871015610452575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e1d41c0240698fbfc01d375b18b328bddb99ef819f03c230a6efbef2501325f764736f6c634300081c00336080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000093cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd00000000000000000000000000000000000000000000000000000000", - "nonce": "0x7cd", - "chainId": "0x138d4" - }, - "additionalContracts": [ - { - "transactionType": "CREATE", - "address": "0x68ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "initCode": "0x6080604052348015600e575f5ffd5b506040516104e63803806104e6833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b6103fa806100ec5f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f5ffd5b348015610058575f5ffd5b506100616100fd565b005b34801561006e575f5ffd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f5ffd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610365565b3480156100e9575f5ffd5b506100616100f836600461037e565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906101489086908690600401610399565b5f604051808303818588803b15801561015f575f5ffd5b505af1158015610171573d5f5f3e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610272575f5ffd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff8111156102a8575f5ffd5b8401601f810186136102b8575f5ffd5b803567ffffffffffffffff8111156102d2576102d261024c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156103015761030161024c565b604052818152828201602001881015610318575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103776020830184610337565b9392505050565b5f6020828403121561038e575f5ffd5b813561037781610238565b6001600160a01b03831681526040602082018190525f906103bc90830184610337565b94935050505056fea264697066735822122099f4840b60c21ae71b6900b64d45bfdab04e6b394f7dbc4ae190c4076cd4a8ff64736f6c634300081c0033000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - } - ], - "isFixedGasLimit": false - }, - { - "hash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x8E826703B6D471732415ABd4a1E724A3bF451511", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad75030000000000000000000000008e826703b6d471732415abd4a1e724a3bf45151100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7ce", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x33c608b9e7Ae1877dcb665Bd3d2D3bb327b01156", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad750300000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b0115600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7cf", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x8520b4Ed7E7e54343ADe583E6A7864718535eCa9", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad75030000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d0", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0x39da60365de955d03c6C1AB7b80e8a4c458FA87e", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad750300000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d1", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0xb468a7AC04db7B07d8D2a8DeC3e6008397eC3E4D", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d0f", - "value": "0x0", - "input": "0x89ad7503000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d2", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "function": "callDeployer(address,bytes)", - "arguments": [ - "0xC3adc5347663C4fb93ad5029B6382a9f7fE73B05", - "0xf2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "gas": "0x10d20", - "value": "0x0", - "input": "0x89ad7503000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b0500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2fde38b000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b138400000000000000000000000000000000000000000000000000000000", - "nonce": "0x7d3", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x3369613dca6c1859a1ba8cfd533a7a72599d31939d1b64affb2a807549fbae74", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x4238a", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000000e4aaf1351de4c0264c5c7056ef3777b41bd8e030000000000000000000000008e826703b6d471732415abd4a1e724a3bf451511", - "nonce": "0x7d4", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x062a4bd2ccebd361f3c6f12df845566baf30e844b6900c6894a942bb53927e8a", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x31703", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000f5afcf50006944d17226978e594d4d25f4f92b4000000000000000000000000033c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "nonce": "0x7d5", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x1f4edc27dea70546ba6ace674666511e9a9cd48441e7c0f28df2928d1bc2092d", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x31676", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000d6d83af58a19cd14ef3cf6fe848c9a4d21e5727c0000000000000000000000008520b4ed7e7e54343ade583e6a7864718535eca9", - "nonce": "0x7d6", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x86af41bdd6eb36b039f4c0518890224f5427a8de5490df37c7fca22b1c6cc777", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000501dbf23c2b004d751496adc073da3727c5fe80f00000000000000000000000039da60365de955d03c6c1ab7b80e8a4c458fa87e", - "nonce": "0x7d7", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x0376a5430cae1809a6f84761ef2b3e2046f6e233a2f37f4eb88bdd71ec5fbdf7", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x34555", - "value": "0x0", - "input": "0x011aa7ce000000000000000000000000482c38cd33e79a3e3c1cce792a72d41bafffd416000000000000000000000000b468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "nonce": "0x7d8", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xdefe1ecc490304d3ee3c24323369b5404a94bc5f314641046f4f06dfcb822543", - "transactionType": "CALL", - "contractName": "Proxy", - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "function": null, - "arguments": null, - "transaction": { - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "gas": "0x316e0", - "value": "0x0", - "input": "0x011aa7ce0000000000000000000000003db20aefcd234465c981b87da025711c91add2c3000000000000000000000000c3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "nonce": "0x7d9", - "chainId": "0x138d4" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x6ff309", - "logs": [ - { - "address": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionIndex": "0x2e", - "logIndex": "0x99", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000100000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x205947f319c7c10475b7c4f3eb1de025267262fe711cfc3d9abd05eb5095abfc", - "transactionIndex": "0x2e", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0x2764ca", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x93cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7b3a26", - "logs": [ - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000093cefc4f32abeae2df23bb8d74a8fa2ccacdeb4b" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9a", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9b", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd", - "0x000000000000000000000000235a2ac113014f9dcb8aba6577f20290832ddefd" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9c", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9d", - "removed": false - }, - { - "address": "0x68ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000d208203a7a54ffa823e9b0061a21260ed38ece6c" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9e", - "removed": false - }, - { - "address": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068ba950cdb521c90719d279e20ef2bdc3c95dc3c", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "logIndex": "0x9f", - "removed": false - } - ], - "logsBloom": "0x00000004010000000000000000000000400000000000000000800000000000000000000000000000002000000000000000040000000000000000000002000000100000000000000800000000000002000001000000000000100000000000000000000000030000000000000000000800000000800000000000000000000000400000000000000040000800000000000000000000000080000000000000800000000000000000000200008000000000000000000000000000001000000040100000000020000008000000000000000000000000004404000100000000000020000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x440881f128438b66dcfdb3c5a4029bea30f53415cd1d2d5eb394e988fe69ec62", - "transactionIndex": "0x2f", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xb471d", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": null, - "contractAddress": "0x952c430dcc00f623708d1cbbece3a6f5741b1384" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7bfcfe", - "logs": [ - { - "address": "0x8e826703b6d471732415abd4a1e724a3bf451511", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionIndex": "0x30", - "logIndex": "0xa0", - "removed": false - } - ], - "logsBloom": "0x00000040000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000008000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0e02d34d2a58699b96bcff6d3d35845b8dc939acf3dbc81946e3e50a835f7edb", - "transactionIndex": "0x30", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7cbfd6", - "logs": [ - { - "address": "0x33c608b9e7ae1877dcb665bd3d2d3bb327b01156", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionIndex": "0x31", - "logIndex": "0xa1", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000001000000800000000000000000000000000000000000000020000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0966973387d9937a9394c424021b6e606e9d611b4c11191d06203fccfb4d5923", - "transactionIndex": "0x31", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7d82ae", - "logs": [ - { - "address": "0x8520b4ed7e7e54343ade583e6a7864718535eca9", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionIndex": "0x32", - "logIndex": "0xa2", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000020000000000000000000000000000000000000000000000000000000000000040000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000008000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xfb24be5bf07b298adbec5ba4fb6250b828730168962cc09c906b9b5d47b5bd6d", - "transactionIndex": "0x32", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7e4586", - "logs": [ - { - "address": "0x39da60365de955d03c6c1ab7b80e8a4c458fa87e", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionIndex": "0x33", - "logIndex": "0xa3", - "removed": false - } - ], - "logsBloom": "0x00000000000400000040000000000000200000000000000000800000000000000000000000000000000000000000000000000000000000000000000020000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xbd2af66a9fa40f4806b3df27842fe1135bce9e52aa4f6004e71621a474edb6f8", - "transactionIndex": "0x33", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7f0852", - "logs": [ - { - "address": "0xb468a7ac04db7b07d8d2a8dec3e6008397ec3e4d", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionIndex": "0x34", - "logIndex": "0xa4", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000004000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000080000000000000000000000000000000000000000000000000800000000000000080000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xbe4d9f3f0c012551b5e46857a0f07ecab1cc2690a36b08de677bbed5de208e17", - "transactionIndex": "0x34", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2cc", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7fcb2a", - "logs": [ - { - "address": "0xc3adc5347663c4fb93ad5029b6382a9f7fe73b05", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000006df961030ef9c2e2d79af42603e4ccc32b41fd64", - "0x000000000000000000000000952c430dcc00f623708d1cbbece3a6f5741b1384" - ], - "data": "0x", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "blockTimestamp": "0x67861f68", - "transactionHash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionIndex": "0x35", - "logIndex": "0xa5", - "removed": false - } - ], - "logsBloom": "0x00000000000000000040000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000400000040000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000800000800000000000200000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x44b96c9a28a9104fc125b70ae4e5e2630a05c997fcd63dea0ae284d6bd37fe06", - "transactionIndex": "0x35", - "blockHash": "0x729804277925a2a964f0dfed5fc3d7a573992e6d6d87e62dc74c9a790a37c653", - "blockNumber": "0x8e1414", - "gasUsed": "0xc2d8", - "effectiveGasPrice": "0x1573960fce", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x6df961030ef9c2e2d79af42603e4ccc32b41fd64", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x1718fbe", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x3369613dca6c1859a1ba8cfd533a7a72599d31939d1b64affb2a807549fbae74", - "transactionIndex": "0xa5", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x2d479", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x173cc6d", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x062a4bd2ccebd361f3c6f12df845566baf30e844b6900c6894a942bb53927e8a", - "transactionIndex": "0xa6", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23caf", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x17608b5", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x1f4edc27dea70546ba6ace674666511e9a9cd48441e7c0f28df2928d1bc2092d", - "transactionIndex": "0xa7", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c48", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x178454a", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x86af41bdd6eb36b039f4c0518890224f5427a8de5490df37c7fca22b1c6cc777", - "transactionIndex": "0xa8", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x17a81d3", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0376a5430cae1809a6f84761ef2b3e2046f6e233a2f37f4eb88bdd71ec5fbdf7", - "transactionIndex": "0xa9", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c89", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x17cbe68", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xdefe1ecc490304d3ee3c24323369b5404a94bc5f314641046f4f06dfcb822543", - "transactionIndex": "0xaa", - "blockHash": "0x81d63c340c334716642829139c3800c7c5fed6d87fa4b90b5c48d64c47e0375a", - "blockNumber": "0x8e155c", - "gasUsed": "0x23c95", - "effectiveGasPrice": "0x1529fa07ab", - "from": "0x235a2ac113014f9dcb8aba6577f20290832ddefd", - "to": "0x952c430dcc00f623708d1cbbece3a6f5741b1384", - "contractAddress": null - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1736843893, - "chain": 80084, - "commit": "945276a" -} \ No newline at end of file diff --git a/foundry.toml b/foundry.toml index 5bb9df0..864ba84 100644 --- a/foundry.toml +++ b/foundry.toml @@ -2,37 +2,29 @@ src = "src" out = "out" libs = ["dependencies"] -remappings = [ - "@openzeppelin/contracts=dependencies/@openzeppelin-contracts-5.2.0-rc.1/", - "@openzeppelin-upgradeable/contracts=dependencies/@openzeppelin-contracts-upgradeable-5.2.0-rc.1/", - "forge-std=dependencies/forge-std-1.9.5/src/", +remappings = [ + "forge-std/=dependencies/forge-std-1.9.5/src/", + "amm-contracts/=dependencies/amm-contracts-0.0.1/contracts/", + "@balancer-labs/=node_modules/@balancer-labs/", + "@openzeppelin/=node_modules/@openzeppelin/" ] -solc_version = "0.8.28+commit.7893614a" +solc_version = "0.7.6" evm_version = "cancun" optimizer = true optimizer_runs = 200 -berachain = { key = "verifyContract", chain = 80094, url = "https://api.routescan.io/v2/network/mainnet/evm/80094/etherscan" } +ignored_warnings_from=["dependencies/amm-contracts-0.0.1","node_modules/@openzeppelin"] + [soldeer] -# whether soldeer manages remappings remappings_generate = true -# whether soldeer re-generates all remappings when installing, updating or uninstalling deps remappings_regenerate = true -# whether to suffix the remapping with the version: `name-a.b.c` remappings_version = false -# a prefix to add to the remappings ("@" would give `@name`) remappings_prefix = "" -# where to store the remappings ("txt" for `remappings.txt` or "config" for `foundry.toml`) -# ignored when `soldeer.toml` is used as config (uses `remappings.txt`) remappings_location = "txt" recursive_deps = true [dependencies] -forge-std = "1.9.5" -"@openzeppelin-contracts" = "5.2.0-rc.1" -"@openzeppelin-contracts-upgradeable" = "5.2.0-rc.1" -openzeppelin-foundry-upgrades = "0.3.6" - -# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options +forge-std = {version = "1.9.5" } +amm-contracts = { git = "https://github.com/xave-finance/amm-contracts.git", branch = "master", version = "0.0.1" } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..24df8a1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,187 @@ +{ + "name": "feed-registry", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "feed-registry", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@balancer-labs/v2-pool-utils": "^2.0.1", + "@balancer-labs/v2-vault": "^2.0.0", + "@openzeppelin/contracts": "^3.4.2", + "@openzeppelin/contracts-upgradeable": "^3.4.2" + }, + "devDependencies": { + "prettier-plugin-solidity": "^1.4.2" + } + }, + "node_modules/@balancer-labs/v2-asset-manager-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-asset-manager-utils/-/v2-asset-manager-utils-0.2.0.tgz", + "integrity": "sha512-6ti1pzbpgB5aT1WzbGwo69ILTNAJdAnaJcw3L9QB2aBsAhQ41H+MF3tjPvuv6P84RgJ9z42EhtwLYZqklRF0rg==", + "dependencies": { + "@balancer-labs/v2-solidity-utils": "2.0.0", + "@balancer-labs/v2-vault": "2.0.0" + } + }, + "node_modules/@balancer-labs/v2-pool-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-pool-utils/-/v2-pool-utils-2.0.1.tgz", + "integrity": "sha512-Xt3d8LqJnqq5JkuSgvf0sZuWqaywg9JxrCT1myVsG6zgbtfvcraJgSCLERUdqxP47aUPHwKvm5/+mdT9xayCXA==", + "dependencies": { + "@balancer-labs/v2-asset-manager-utils": "0.2.0", + "@balancer-labs/v2-solidity-utils": "2.0.0", + "@balancer-labs/v2-vault": "2.0.0" + } + }, + "node_modules/@balancer-labs/v2-solidity-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-solidity-utils/-/v2-solidity-utils-2.0.0.tgz", + "integrity": "sha512-OB+05vJqrs35B1d40y7tnSm6oYWnsmfRa/wpI2owJXhwx/8qr2buE+RDmT0x6Upr/c7wBdUh8v4UVk9l0+CNiA==" + }, + "node_modules/@balancer-labs/v2-vault": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-vault/-/v2-vault-2.0.0.tgz", + "integrity": "sha512-GwPY84j6g7OY1z13wRYYGQeupb6DI3U+s22Ebg2v32djS9CnPzM04GJapURRbKZkpraUOYIcqhEF3Cm1AafAKg==", + "dependencies": { + "@balancer-labs/v2-solidity-utils": "2.0.0" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz", + "integrity": "sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==" + }, + "node_modules/@openzeppelin/contracts-upgradeable": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-3.4.2.tgz", + "integrity": "sha512-mDlBS17ymb2wpaLcrqRYdnBAmP1EwqhOXMvqWk2c5Q1N1pm5TkiCtXM9Xzznh4bYsQBq0aIWEkFFE2+iLSN1Tw==" + }, + "node_modules/@solidity-parser/parser": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", + "dev": true + }, + "node_modules/prettier": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz", + "integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==", + "dev": true, + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-solidity": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.4.2.tgz", + "integrity": "sha512-VVD/4XlDjSzyPWWCPW8JEleFa8JNKFYac5kNlMjVXemQyQZKfpekPMhFZSePuXB6L+RixlFvWe20iacGjFYrLw==", + "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.19.0", + "semver": "^7.6.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "prettier": ">=2.3.0" + } + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { + "@balancer-labs/v2-asset-manager-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-asset-manager-utils/-/v2-asset-manager-utils-0.2.0.tgz", + "integrity": "sha512-6ti1pzbpgB5aT1WzbGwo69ILTNAJdAnaJcw3L9QB2aBsAhQ41H+MF3tjPvuv6P84RgJ9z42EhtwLYZqklRF0rg==", + "requires": { + "@balancer-labs/v2-solidity-utils": "2.0.0", + "@balancer-labs/v2-vault": "2.0.0" + } + }, + "@balancer-labs/v2-pool-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-pool-utils/-/v2-pool-utils-2.0.1.tgz", + "integrity": "sha512-Xt3d8LqJnqq5JkuSgvf0sZuWqaywg9JxrCT1myVsG6zgbtfvcraJgSCLERUdqxP47aUPHwKvm5/+mdT9xayCXA==", + "requires": { + "@balancer-labs/v2-asset-manager-utils": "0.2.0", + "@balancer-labs/v2-solidity-utils": "2.0.0", + "@balancer-labs/v2-vault": "2.0.0" + } + }, + "@balancer-labs/v2-solidity-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-solidity-utils/-/v2-solidity-utils-2.0.0.tgz", + "integrity": "sha512-OB+05vJqrs35B1d40y7tnSm6oYWnsmfRa/wpI2owJXhwx/8qr2buE+RDmT0x6Upr/c7wBdUh8v4UVk9l0+CNiA==" + }, + "@balancer-labs/v2-vault": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@balancer-labs/v2-vault/-/v2-vault-2.0.0.tgz", + "integrity": "sha512-GwPY84j6g7OY1z13wRYYGQeupb6DI3U+s22Ebg2v32djS9CnPzM04GJapURRbKZkpraUOYIcqhEF3Cm1AafAKg==", + "requires": { + "@balancer-labs/v2-solidity-utils": "2.0.0" + } + }, + "@openzeppelin/contracts": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz", + "integrity": "sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==" + }, + "@openzeppelin/contracts-upgradeable": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-3.4.2.tgz", + "integrity": "sha512-mDlBS17ymb2wpaLcrqRYdnBAmP1EwqhOXMvqWk2c5Q1N1pm5TkiCtXM9Xzznh4bYsQBq0aIWEkFFE2+iLSN1Tw==" + }, + "@solidity-parser/parser": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", + "dev": true + }, + "prettier": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz", + "integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==", + "dev": true, + "peer": true + }, + "prettier-plugin-solidity": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.4.2.tgz", + "integrity": "sha512-VVD/4XlDjSzyPWWCPW8JEleFa8JNKFYac5kNlMjVXemQyQZKfpekPMhFZSePuXB6L+RixlFvWe20iacGjFYrLw==", + "dev": true, + "requires": { + "@solidity-parser/parser": "^0.19.0", + "semver": "^7.6.3" + } + }, + "semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b7bd7d7 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "feed-registry", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@balancer-labs/v2-pool-utils": "^2.0.1", + "@balancer-labs/v2-vault": "^2.0.0", + "@openzeppelin/contracts": "^3.4.2", + "@openzeppelin/contracts-upgradeable": "^3.4.2" + }, + "devDependencies": { + "prettier-plugin-solidity": "^1.4.2" + } +} diff --git a/remappings.txt b/remappings.txt index 9976ef1..1551f6f 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,11 +1,4 @@ -@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.2.0-rc.1/ -@openzeppelin-upgradeable/contracts/=dependencies/@openzeppelin-contracts-upgradeable-5.2.0-rc.1/ -forge-std/=dependencies/forge-std-1.9.5/src/ -@openzeppelin-contracts-5.2.0-rc.1/=dependencies/@openzeppelin-contracts-5.2.0-rc.1/ -@openzeppelin-contracts-upgradeable-5.2.0-rc.1/=dependencies/@openzeppelin-contracts-upgradeable-5.2.0-rc.1/ -ds-test/=dependencies/openzeppelin-foundry-upgrades-0.3.6/lib/solidity-stringutils/lib/ds-test/src/ -forge-std-1.9.5/=dependencies/forge-std-1.9.5/src/ -forge-std/=dependencies/openzeppelin-foundry-upgrades-0.3.6/lib/forge-std/src/ -openzeppelin-foundry-upgrades-0.3.6/=dependencies/openzeppelin-foundry-upgrades-0.3.6/src/ -openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.3.6/src/ -solidity-stringutils/=dependencies/openzeppelin-foundry-upgrades-0.3.6/lib/solidity-stringutils/ +amm-contracts/=dependencies/amm-contracts-0.0.1/ +forge-std/=dependencies/forge-std-1.9.5/ +@balancer-labs/=node_modules/@balancer-labs/ +@openzeppelin/=node_modules/@openzeppelin/ diff --git a/script/DeployFeedRegistry.s.sol b/script/DeployFeedRegistry.s.sol deleted file mode 100644 index af16a63..0000000 --- a/script/DeployFeedRegistry.s.sol +++ /dev/null @@ -1,156 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; - -import "forge-std/Script.sol"; -import "../src/FeedRegistry.sol"; -import "../src/Proxy.sol"; - -contract DeployFeedRegistry is Script { - /// --- BARTIO --- /// - /// TOKENS - address private constant BARTIO_HONEY = - 0x0E4aaF1351de4c0264C5c7056Ef3777b41BD8e03; - address private constant BARTIO_NECT = - 0xf5AFCF50006944d17226978e594D4D25f4f92B40; - address private constant BARTIO_STGUSDC = - 0xd6D83aF58a19Cd14eF3CF6fe848C9A4d21e5727c; - address private constant BARTIO_HETH = - 0x501Dbf23C2b004D751496ADC073dA3727c5Fe80f; - address private constant BARTIO_HSOL = - 0x482c38Cd33e79A3E3C1CcE792a72d41BaFFFd416; - address private constant BARTIO_HTIA = - 0x3dB20AEfcd234465C981B87Da025711c91aDD2C3; - /// FXPPOOL DEPLOYERS - address private constant BARTIO_FXPOOLDEPLOYER_HONEY = - 0x8E826703B6D471732415ABd4a1E724A3bF451511; - address private constant BARTIO_FXPOOLDEPLOYER_NECT = - 0x33c608b9e7Ae1877dcb665Bd3d2D3bb327b01156; - address private constant BARTIO_FXPOOLDEPLOYER_STGUSDC = - 0x8520b4Ed7E7e54343ADe583E6A7864718535eCa9; - address private constant BARTIO_FXPOOLDEPLOYER_HETH = - 0x39da60365de955d03c6C1AB7b80e8a4c458FA87e; - address private constant BARTIO_FXPOOLDEPLOYER_HSOL = - 0xb468a7AC04db7B07d8D2a8DeC3e6008397eC3E4D; - address private constant BARTIO_FXPOOLDEPLOYER_HTIA = - 0xC3adc5347663C4fb93ad5029B6382a9f7fE73B05; - - /// --- BARTIO END --- /// - - function deployBartio(address _proxyAdminOwner) external { - address registryOwner = msg.sender; - - vm.startBroadcast(); - - FeedRegistry registry = _deployFeedRegistry( - _proxyAdminOwner, - registryOwner - ); - IOwnable(BARTIO_FXPOOLDEPLOYER_HONEY).transferOwnership( - address(registry) - ); - IOwnable(BARTIO_FXPOOLDEPLOYER_NECT).transferOwnership( - address(registry) - ); - IOwnable(BARTIO_FXPOOLDEPLOYER_STGUSDC).transferOwnership( - address(registry) - ); - IOwnable(BARTIO_FXPOOLDEPLOYER_HETH).transferOwnership( - address(registry) - ); - IOwnable(BARTIO_FXPOOLDEPLOYER_HSOL).transferOwnership( - address(registry) - ); - IOwnable(BARTIO_FXPOOLDEPLOYER_HTIA).transferOwnership( - address(registry) - ); - - registry.addDeployer(BARTIO_HONEY, BARTIO_FXPOOLDEPLOYER_HONEY); - registry.addDeployer(BARTIO_NECT, BARTIO_FXPOOLDEPLOYER_NECT); - registry.addDeployer(BARTIO_STGUSDC, BARTIO_FXPOOLDEPLOYER_STGUSDC); - registry.addDeployer(BARTIO_HETH, BARTIO_FXPOOLDEPLOYER_HETH); - registry.addDeployer(BARTIO_HSOL, BARTIO_FXPOOLDEPLOYER_HSOL); - registry.addDeployer(BARTIO_HTIA, BARTIO_FXPOOLDEPLOYER_HTIA); - - vm.stopBroadcast(); - } - - function deployBartioUpgrade(address _proxyAdminOwner) external { - address registryOwner = msg.sender; - - FeedRegistry previousRegistry = FeedRegistry( - 0x6Df961030Ef9c2e2d79AF42603e4ccc32B41Fd64 - ); - - vm.startBroadcast(); - - FeedRegistry newRegistry = _deployFeedRegistry( - _proxyAdminOwner, - registryOwner - ); - - bytes memory data = abi.encodePacked( - bytes4(keccak256("transferOwnership(address)")), - abi.encode(address(newRegistry)) - ); - - // transfer ownership of previous registry to new registry - previousRegistry.callDeployer(BARTIO_FXPOOLDEPLOYER_HONEY, data); - previousRegistry.callDeployer(BARTIO_FXPOOLDEPLOYER_NECT, data); - previousRegistry.callDeployer(BARTIO_FXPOOLDEPLOYER_STGUSDC, data); - previousRegistry.callDeployer(BARTIO_FXPOOLDEPLOYER_HETH, data); - previousRegistry.callDeployer(BARTIO_FXPOOLDEPLOYER_HSOL, data); - previousRegistry.callDeployer(BARTIO_FXPOOLDEPLOYER_HTIA, data); - - newRegistry.addDeployer(BARTIO_HONEY, BARTIO_FXPOOLDEPLOYER_HONEY); - newRegistry.addDeployer(BARTIO_NECT, BARTIO_FXPOOLDEPLOYER_NECT); - newRegistry.addDeployer(BARTIO_STGUSDC, BARTIO_FXPOOLDEPLOYER_STGUSDC); - newRegistry.addDeployer(BARTIO_HETH, BARTIO_FXPOOLDEPLOYER_HETH); - newRegistry.addDeployer(BARTIO_HSOL, BARTIO_FXPOOLDEPLOYER_HSOL); - newRegistry.addDeployer(BARTIO_HTIA, BARTIO_FXPOOLDEPLOYER_HTIA); - - vm.stopBroadcast(); - } - - function _deployFeedRegistry( - address _proxyAdminOwner, - address _registryOwner - ) internal returns (FeedRegistry) { - require( - _proxyAdminOwner != address(0), - "ProxyAdminOwner cannot be zero" - ); - require( - _registryOwner != _proxyAdminOwner, - "RegistryOwner cannot be the same as ProxyAdminOwner" - ); - - // 1. Deploy the implementation contract - FeedRegistry implementation = new FeedRegistry(); - - // 2. Prepare initialization data - bytes memory initData = abi.encodeWithSelector( - FeedRegistry.initialize.selector, - _registryOwner // initialOwner of FeedRegistry - ); - - // 4. Deploy the proxy - Proxy proxy = new Proxy( - address(implementation), - _proxyAdminOwner, - initData - ); - - // The proxy address is what users will interact with - console.log("FeedRegistry Proxy deployed to:\t", address(proxy)); - console.log("FeedRegistry Proxy admin is:\t\t", _proxyAdminOwner); - console.log("FeedRegistry Owner is:\t\t\t", _registryOwner); - - // cast the proxy to FeedRegistry since we need to interact with it - // rather than the implementation contract - return FeedRegistry(address(proxy)); - } -} - -interface IOwnable { - function transferOwnership(address newOwner) external; -} diff --git a/soldeer.lock b/soldeer.lock index f9015b4..82875ee 100644 --- a/soldeer.lock +++ b/soldeer.lock @@ -1,16 +1,8 @@ [[dependencies]] -name = "@openzeppelin-contracts" -version = "5.2.0-rc.1" -url = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts/5_2_0-rc_1_18-12-2024_19:26:33_contracts.zip" -checksum = "0430f56c556a4864cb2c0f28edbd497304a1e367d30dd07942778bef3a0f7a5f" -integrity = "17e24d71e2995a505f428ff1e4b514723175d8c6f7b84db6a96cfa31bc73fe23" - -[[dependencies]] -name = "@openzeppelin-contracts-upgradeable" -version = "5.2.0-rc.1" -url = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts-upgradeable/5_2_0-rc_1_18-12-2024_19:26:38_contracts-upgradeable.zip" -checksum = "ad1c8f384694f30173c55395c9e146d7b4e1ba0cfed415038ee9ab30abded639" -integrity = "9ab06bab65cc0e586edaa6e560491480a3107d847178e87c56a4223dfb5231f7" +name = "amm-contracts" +version = "0.0.1" +git = "https://github.com/xave-finance/amm-contracts.git" +rev = "eb690e43878ba4fdb8afe7f1c656ae6210c3c9ff" [[dependencies]] name = "forge-std" @@ -18,10 +10,3 @@ version = "1.9.5" url = "https://soldeer-revisions.s3.amazonaws.com/forge-std/1_9_5_21-12-2024_15:04:05_forge-std-1.9.zip" checksum = "57ada736f383289db77fac4472d48f820e7c98172cf9b01681b0c37065ce043f" integrity = "4753ffdfa0dde40878372b6a4d8e8fd1648b190b33996896c8b92f6f1680850f" - -[[dependencies]] -name = "openzeppelin-foundry-upgrades" -version = "0.3.6" -url = "https://soldeer-revisions.s3.amazonaws.com/openzeppelin-foundry-upgrades/0_3_6_24-09-2024_19:23:05_openzeppelin-foundry-upgrades.zip" -checksum = "b1d80d9d925e1ac56dfaba7ec59fc6223073c846e71510e963ab1756ccc49ca7" -integrity = "4c86e7d43ff517365dfb29362a1abc41f9556b65b97b753b1d2a1e0c6e63f513" diff --git a/src/FeedRegistry.sol b/src/FeedRegistry.sol index 326c7b9..b39389f 100644 --- a/src/FeedRegistry.sol +++ b/src/FeedRegistry.sol @@ -1,353 +1,239 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; +pragma solidity ^0.7.6; -import "@openzeppelin-upgradeable/contracts/access/AccessControlUpgradeable.sol"; -import "@openzeppelin-upgradeable/contracts/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol"; +import "@openzeppelin/contracts/proxy/ProxyAdmin.sol"; +import "@openzeppelin/contracts/utils/EnumerableSet.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "./interfaces/AggregatorV3Interface.sol"; - -error DeployerAlreadyExists(); -error QuoteTokenAlreadyExists(); -error QuoteTokenMismatch(); -error DeployerNotFound(); -error FeedAlreadyExists(); -error InvalidAddress(); -error TokenAlreadyAssociated(); -error FeedNotApproved(); -error FeedDoesNotExist(); -error CallToDeployerFailed(); +import "@openzeppelin/contracts/math/Math.sol"; +import "@openzeppelin/contracts/math/SafeMath.sol"; + +import { IOracle } from "amm-contracts/contracts/core/interfaces/IOracle.sol"; +import { BaseToUsdAssimilator } from "amm-contracts/contracts/assimilators/BaseToUsdAssimilator.sol"; +import { UsdcToUsdAssimilator } from "amm-contracts/contracts/assimilators/UsdcToUsdAssimilator.sol"; /** * @title FeedRegistry * @notice A registry for Chainlink price feeds with associated ERC20 base tokens and FXPoolDeployer integration */ -contract FeedRegistry is AccessControlUpgradeable, OwnableUpgradeable { - struct Feed { - address deployerAddress; - address feedAddress; - bool isApproved; - address[] baseTokens; - } +contract FeedRegistry is OwnableUpgradeable { + using Math for uint256; + using SafeMath for uint256; + using EnumerableSet for EnumerableSet.AddressSet; + + ProxyAdmin internal _upgrader; + address public chainLnkFeedRegistry; + address internal fxPoolDeployerImpl; + + // list of deployer proxy addresses + EnumerableSet.AddressSet internal _deployers; + // list of approved chainlink feeds + EnumerableSet.AddressSet internal _approvedFeeds; + // list of pending chainlink feeds + EnumerableSet.AddressSet internal _pendingFeeds; + // deployer => list of baseFeed + mapping(address => EnumerableSet.AddressSet) internal _deployerFeeds; + // quoteToken => deployer + mapping(address => address) public quoteTokenToDeployer; - struct PendingBaseToken { - address quoteToken; - address baseFeed; - address baseToken; - } + event FeedSuggested(address indexed suggester, address indexed baseFeed); + event FeedApproved(address indexed quoteToken, address indexed baseFeed); + event FXPoolDeployerUpgraded(address indexed fxPoolDeployerNewImpl); - // list of deployer addresses - address[] private _deployers; - address[] private _quoteTokens; - // Mapping to store all feeds - // deployer => baseFeed => Feed - mapping(address => mapping(address => Feed)) private _feeds; - // deployer => baseFeed[] - mapping(address => Feed[]) private _feedsList; - - // map deployer to quote token - mapping(address => address) public deployerToQuoteToken; - // map quote token to deployer - mapping(address => address) public quoteTokenToDeployer; + function __FeedRegistry_init(address _chainLnkFeedRegistry, address _fxPoolDeployerImpl) internal initializer { + require(_chainLnkFeedRegistry != address(0) && _fxPoolDeployerImpl != address(0), "Invalid address"); - // list of pending feeds - Feed[] public feedsPending; - // list of pending base tokens - PendingBaseToken[] public pendingBaseTokens; + chainLnkFeedRegistry = _chainLnkFeedRegistry; + fxPoolDeployerImpl = _fxPoolDeployerImpl; - event FeedApproved(address indexed quoteToken, address indexed baseFeed); - event BaseTokenAdded( - address indexed quoteToken, - address indexed baseFeed, - address indexed baseToken - ); - event BaseTokenRemoved( - address indexed quoteToken, - address indexed baseFeed, - address indexed baseToken - ); - event FeedSuggested( - address indexed suggester, - address indexed quoteToken, - address indexed baseFeed, - address[] tokens - ); - event BaseTokenSuggested( - address indexed suggester, - address indexed quoteToken, - address indexed baseFeed, - address baseToken - ); - - /// @custom:oz-upgrades-unsafe-allow constructor - constructor() { - // see Initializable.sol: To prevent the implementation contract - // from being used, you should invoke the {_disableInitializers} function - // in the constructor to automatically lock it when it is deployed - _disableInitializers(); + _upgrader = new ProxyAdmin(); + __Ownable_init(); } - function initialize(address initialOwner) public initializer { - __Ownable_init(initialOwner); - _grantRole(DEFAULT_ADMIN_ROLE, initialOwner); - } + /** + * @notice upgrade the fx pool deployer to a new implementation + * @param _fxPoolDeployerNewImpl address of the new implementation + * @param offset pagination start up place + * @param limit size of the listing page + */ + function upgradeFXPoolDeployers(address _fxPoolDeployerNewImpl, uint256 offset, uint256 limit) external onlyOwner { + require(_fxPoolDeployerNewImpl != address(0), "Invalid address"); - function version() external pure virtual returns (string memory) { - return "1.0.0"; - } + require(Address.isContract(_fxPoolDeployerNewImpl), "Invalid address"); - function addDeployer( - address quoteToken, - address deployer - ) external onlyOwner { - _validToken(quoteToken); - if (deployer == address(0)) revert InvalidAddress(); - if (quoteToken == address(0)) revert InvalidAddress(); - if (deployerToQuoteToken[deployer] != address(0)) - revert DeployerAlreadyExists(); - if (quoteTokenToDeployer[quoteToken] != address(0)) - revert QuoteTokenAlreadyExists(); - if (IHasQuoteToken(deployer).quoteToken() != quoteToken) - revert QuoteTokenMismatch(); - - _deployers.push(deployer); - _quoteTokens.push(quoteToken); - deployerToQuoteToken[deployer] = quoteToken; - quoteTokenToDeployer[quoteToken] = deployer; - } + if (_fxPoolDeployerNewImpl != fxPoolDeployerImpl) fxPoolDeployerImpl = _fxPoolDeployerNewImpl; - function removeDeployer(address deployer) external onlyOwner { - address quoteToken = deployerToQuoteToken[deployer]; - delete quoteTokenToDeployer[quoteToken]; - delete deployerToQuoteToken[deployer]; - uint256 len = _deployers.length; - for (uint256 i = 0; i < len; i++) { - if (_deployers[i] == deployer) { - _deployers[i] = _deployers[len - 1]; - _deployers.pop(); - break; - } - } - len = _quoteTokens.length; - for (uint256 i = 0; i < len; i++) { - if (_quoteTokens[i] == quoteToken) { - _quoteTokens[i] = _quoteTokens[len - 1]; - _quoteTokens.pop(); - break; - } + uint256 to = (offset.add(limit)).min(_deployers.length()).max(offset); + + for (uint256 i = offset; i < to; i++) { + _upgrader.upgrade(TransparentUpgradeableProxy(payable(_deployers.at(i))), _fxPoolDeployerNewImpl); } + + emit FXPoolDeployerUpgraded(_fxPoolDeployerNewImpl); } /** - * @notice Suggests a new feed to be added to the registry along with associated base tokens - * @param quoteToken The address of the quote token - * @param feedAddress The address of the Chainlink price feed - * @param baseTokens Array of ERC20 base token addresses to associate with the feed + * @notice Suggests a new feed to be added to the registry + * @param baseFeed The address of the Chainlink price feed */ - function suggestFeed( - address quoteToken, - address feedAddress, - address[] calldata baseTokens - ) external { - address deployer = quoteTokenToDeployer[quoteToken]; - if (deployer == address(0)) revert DeployerNotFound(); - _validFeed(feedAddress); - if (_feeds[deployer][feedAddress].deployerAddress != address(0)) - revert FeedAlreadyExists(); - - // Verify that the address implements AggregatorV3Interface - AggregatorV3Interface feed = AggregatorV3Interface(feedAddress); - feed.latestRoundData(); // Will revert if not a valid feed - - // Verify all token addresses implement IERC20 - for (uint256 i = 0; i < baseTokens.length; i++) { - if (baseTokens[i] == address(0)) revert InvalidAddress(); - IERC20(baseTokens[i]).totalSupply(); // Will revert if not a valid ERC20 - } + function suggestFeed(address baseFeed) external { + require(_isFeedValid(baseFeed), "Invalid address"); - // Store pending tokens - feedsPending.push( - Feed({ - feedAddress: feedAddress, - deployerAddress: deployer, - isApproved: false, - baseTokens: baseTokens - }) - ); + require(!_approvedFeeds.contains(baseFeed), "Feed already exists"); + + _pendingFeeds.add(baseFeed); - emit FeedSuggested(msg.sender, quoteToken, feedAddress, baseTokens); + emit FeedSuggested(msg.sender, baseFeed); } /** - * @notice Approves a pending feed and its associated base tokens - * @param _pendingIndex The index of the feed to approve + * @notice Approves a pending feed + * @param baseFeed The address of the Chainlink price feed + * @param quoteToken The address of the quote token + * @param vault Balancer Vault address */ - function approveFeed(uint256 _pendingIndex) external onlyOwner { - if (_pendingIndex >= feedsPending.length) revert FeedDoesNotExist(); + function approveFeed(address baseFeed, address quoteToken, address vault) external onlyOwner { + require(_isTokenValid(quoteToken), "Invalid address"); - Feed memory pendingFeed = feedsPending[_pendingIndex]; - address baseFeed = pendingFeed.feedAddress; - if (baseFeed == address(0)) revert FeedDoesNotExist(); - pendingFeed.isApproved = true; + require(vault != address(0), "Invalid address"); - address deployer = pendingFeed.deployerAddress; - address quoteToken = deployerToQuoteToken[deployer]; + require(_pendingFeeds.contains(baseFeed), "Feed does not exist"); - _feeds[deployer][baseFeed] = pendingFeed; - _feedsList[deployer].push(pendingFeed); + address _deployer = quoteTokenToDeployer[quoteToken]; - // call adminApproveBaseOracle on deployer - bytes memory data = abi.encodePacked( - bytes4(keccak256("adminApproveBaseOracle(address)")), - abi.encode(baseFeed) - ); - _callDeployer(deployer, data); + if (!_deployers.contains(_deployer)) { + _deployer = _deployNewFXPoolDeployer(baseFeed, quoteToken, vault); - // Clean up pending tokens storage - delete feedsPending[_pendingIndex]; + _deployers.add(_deployer); - emit FeedApproved(quoteToken, baseFeed); - uint256 len = pendingFeed.baseTokens.length; - for (uint256 i = 0; i < len; i++) { - emit BaseTokenAdded( - quoteToken, - baseFeed, - pendingFeed.baseTokens[i] - ); + quoteTokenToDeployer[quoteToken] = _deployer; } - } - function removeFeed( - address quoteToken, - address baseFeed - ) external onlyOwner { - address deployer = quoteTokenToDeployer[quoteToken]; - if (deployer == address(0)) revert DeployerNotFound(); + _pendingFeeds.remove(baseFeed); + _approvedFeeds.add(baseFeed); - Feed memory feed = _feeds[deployer][baseFeed]; - if (!feed.isApproved) revert FeedNotApproved(); - delete _feeds[deployer][baseFeed]; + _deployerFeeds[_deployer].add(baseFeed); - // call adminDisapproveBaseOracle on deployer + // call adminApproveBaseOracle on deployer bytes memory data = abi.encodePacked( - bytes4(keccak256("adminDisapproveBaseOracle(address)")), + bytes4(keccak256("adminApproveBaseOracle(address)")), abi.encode(baseFeed) ); - _callDeployer(deployer, data); - - Feed[] storage feedList = _feedsList[deployer]; - uint256 len = feedList.length; - for (uint256 i = 0; i < len; i++) { - if (feedList[i].feedAddress == baseFeed) { - feedList[i] = feedList[len - 1]; - feedList.pop(); - break; - } - } + _callDeployer(_deployer, data); + + emit FeedApproved(quoteToken, baseFeed); } /** - * @notice Suggests a new base token for an approved feed - * @param quoteToken The address of the quote token - * @param baseFeed The address of the approved feed - * @param baseToken The address of the ERC20 base token to associate + * @notice list the registered deployers + * @param offset pagination start up place + * @param limit size of the listing page + * @return _deployerArr array of deployer addresses */ - function suggestBaseToken( - address quoteToken, - address baseFeed, - address baseToken - ) external { - _validToken(baseToken); - address deployer = quoteTokenToDeployer[quoteToken]; - if (deployer == address(0)) revert DeployerNotFound(); - - Feed memory feed = _feeds[deployer][baseFeed]; - if (!feed.isApproved) revert FeedNotApproved(); - - // ensure token is not already associated - for (uint256 i = 0; i < feed.baseTokens.length; i++) { - if (feed.baseTokens[i] == baseToken) - revert TokenAlreadyAssociated(); - } + function listDeployers(uint256 offset, uint256 limit) external view returns (address[] memory _deployerArr) { + uint256 to = (offset.add(limit)).min(_deployers.length()).max(offset); - pendingBaseTokens.push( - PendingBaseToken({ - quoteToken: quoteToken, - baseFeed: baseFeed, - baseToken: baseToken - }) - ); + _deployerArr = new address[](to - offset); - emit BaseTokenSuggested(msg.sender, quoteToken, baseFeed, baseToken); + for (uint256 i = offset; i < to; i++) { + _deployerArr[i - offset] = _deployers.at(i); + } } /** - * @notice Approves a pending base token - * @param _pendingIndex The index of the base token to approve + * @notice Returns number of registered deployers */ - function approveBaseToken(uint256 _pendingIndex) external onlyOwner { - if (_pendingIndex >= pendingBaseTokens.length) - revert FeedDoesNotExist(); + function countDeployers() external view returns (uint256) { + return _deployers.length(); + } - PendingBaseToken memory pending = pendingBaseTokens[_pendingIndex]; - _validToken(pending.baseToken); - address deployer = quoteTokenToDeployer[pending.quoteToken]; + /** + * @notice list the registered feeds (approved/pending) + * @param approved true => get approved feeds, false => get pending feeds + * @param offset pagination start up place + * @param limit size of the listing page + * @return _feedArr array of feed addresses + */ + function listFeeds(bool approved, uint256 offset, uint256 limit) external view returns (address[] memory _feedArr) { + EnumerableSet.AddressSet storage _set = approved ? _approvedFeeds : _pendingFeeds; - if (!_feeds[deployer][pending.baseFeed].isApproved) - revert FeedNotApproved(); + uint256 to = (offset.add(limit)).min(_set.length()).max(offset); - // Add the token to the feed's associated tokens - _feeds[deployer][pending.baseFeed].baseTokens.push(pending.baseToken); + _feedArr = new address[](to - offset); - // Clean up pending base token - delete pendingBaseTokens[_pendingIndex]; + for (uint256 i = offset; i < to; i++) { + _feedArr[i - offset] = _set.at(i); + } + } - emit BaseTokenAdded( - pending.quoteToken, - pending.baseFeed, - pending.baseToken - ); + /** + * @notice Returns number of registered feeds (approved/pending) + * @param approved true => get approved feeds count, false => get pending feeds count + */ + function countFeeds(bool approved) external view returns (uint256) { + return approved ? _approvedFeeds.length() : _pendingFeeds.length(); } - function removeBaseToken( - address quoteToken, - address baseFeed, - address baseToken - ) external onlyOwner { - address deployer = quoteTokenToDeployer[quoteToken]; - if (deployer == address(0)) revert DeployerNotFound(); - if (!_feeds[deployer][baseFeed].isApproved) revert FeedNotApproved(); - address[] storage tokens = _feeds[deployer][baseFeed].baseTokens; - for (uint i = 0; i < tokens.length; i++) { - if (tokens[i] == baseToken) { - tokens[i] = tokens[tokens.length - 1]; - tokens.pop(); - break; - } - } + /** + * @notice get approved feeds by quote token + * @param quoteToken address of the quoteToken + * @return _deployerFeedsArr array of feed addresses + */ + function getFeedsByQuoteToken(address quoteToken) external view returns (address[] memory _deployerFeedsArr) { + address _deployer = quoteTokenToDeployer[quoteToken]; + return _getFeedByDeployer(_deployer); + } - emit BaseTokenRemoved(quoteToken, baseFeed, baseToken); + /** + * @notice get approved feeds by deployer + * @param deployer address of the fx pool deployer + * @return _deployerFeedsArr array of feed addresses + */ + function getFeedsByDeployer(address deployer) external view returns (address[] memory _deployerFeedsArr) { + return _getFeedByDeployer(deployer); } /** - * @notice Allow owner to call functions on a deployer. - * @dev This is useful for calling adminApproveBaseOracle and adminDisapproveBaseOracle - * on the deployer contract but also for transferring ownership of the deployer - * contract if ever needed. - * @param deployer The address of the deployer - * @param data The data to call the function with + * @notice Checks if a feed is approved + * @param baseFeed The address of the feed + * @return bool True if the feed is approved */ - function callDeployer( - address deployer, - bytes memory data - ) external onlyOwner { - _callDeployer(deployer, data); + function isFeedApproved(address baseFeed) external view returns (bool) { + return _approvedFeeds.contains(baseFeed); } - /// @dev helper function to call a function on a deployer - function _callDeployer(address deployer, bytes memory data) private { - if (deployerToQuoteToken[deployer] == address(0)) - revert DeployerNotFound(); + function _deployNewFXPoolDeployer( + address baseFeed, + address quoteToken, + address vault + ) internal returns (address _deployer) { + BaseToUsdAssimilator _baseAssimilatorTemplate = new BaseToUsdAssimilator(); + + UsdcToUsdAssimilator _quoteAssimilator = new UsdcToUsdAssimilator(); + + _quoteAssimilator.initialize(IOracle(baseFeed), IERC20(quoteToken)); + + // deploy a new proxy of fx pool deployer + TransparentUpgradeableProxy _fxPoolDeployerProxy = new TransparentUpgradeableProxy( + fxPoolDeployerImpl, + address(_upgrader), + "" + ); + _deployer = address(_fxPoolDeployerProxy); + // initialize the proxy contract + IFXPoolDeployer(_deployer).initialize( + vault, + quoteToken, + address(_quoteAssimilator), + address(_baseAssimilatorTemplate) + ); + + // call FXPoolDeployerTracker.broadcastNewDeployer() + } + /// @dev helper function to call a function on a deployer + function _callDeployer(address deployer, bytes memory data) internal { (bool success, bytes memory returnData) = deployer.call(data); if (!success) { // If there is return data, try to extract and revert with the original error message @@ -357,81 +243,49 @@ contract FeedRegistry is AccessControlUpgradeable, OwnableUpgradeable { revert(add(32, returnData), returnDataSize) } } else { - revert CallToDeployerFailed(); + revert("Call to deployer failed"); } } } - function _validFeed(address feedAddress) private view { - if (feedAddress == address(0)) revert InvalidAddress(); - AggregatorV3Interface(feedAddress).latestRoundData(); - } - - function _validToken(address tokenAddress) private view { - if (tokenAddress == address(0)) revert InvalidAddress(); - IERC20(tokenAddress).totalSupply(); // Will revert if not a valid ERC20 + function _isTokenValid(address tokenAddress) internal view returns (bool) { + if (tokenAddress == address(0)) return false; + try IERC20(tokenAddress).totalSupply() returns (uint256) { + return true; + } catch { + return false; + } } - function getDeployers() external view returns (address[] memory) { - return _deployers; + function _isFeedValid(address feedAddress) internal view returns (bool) { + if (feedAddress == address(0)) return false; + return IFeedRegistry(chainLnkFeedRegistry).isFeedEnabled(feedAddress); } - function getQuoteTokens() external view returns (address[] memory) { - return _quoteTokens; - } + function _getFeedByDeployer(address deployer) internal view returns (address[] memory _deployerFeedsArr) { + uint256 _deployerFeedsLength = _deployerFeeds[deployer].length(); - function getFeeds(address deployer) external view returns (Feed[] memory) { - return _feedsList[deployer]; - } + _deployerFeedsArr = new address[](_deployerFeedsLength); - function getFeedByQuoteToken( - address quoteToken, - address baseFeed - ) external view returns (Feed memory) { - address deployer = quoteTokenToDeployer[quoteToken]; - if (deployer == address(0)) revert DeployerNotFound(); - return _feeds[deployer][baseFeed]; + for (uint256 i = 0; i < _deployerFeedsLength; i++) { + _deployerFeedsArr[i] = _deployerFeeds[deployer].at(i); + } } +} - function getFeedByDeployer( - address deployer, - address baseFeed - ) external view returns (Feed memory) { - return _feeds[deployer][baseFeed]; - } - /** - * @notice Returns all base tokens for a feed - * @param quoteToken The address of the quote token - * @param baseFeed The address of the approved feed - * @return tokens Array of base token addresses - */ - function getBaseTokens( - address quoteToken, - address baseFeed - ) external view returns (address[] memory) { - address deployer = quoteTokenToDeployer[quoteToken]; - if (deployer == address(0)) revert DeployerNotFound(); - if (_feeds[deployer][baseFeed].feedAddress == address(0)) - revert FeedDoesNotExist(); - return _feeds[deployer][baseFeed].baseTokens; - } +interface IFeedRegistry { + function isFeedEnabled(address aggregator) external view returns (bool); +} - /** - * @notice Checks if a feed is approved - * @param quoteToken The address of the quote token - * @param baseFeed The address of the approved feed - * @return bool True if the feed is approved - */ - function isFeedApproved( - address quoteToken, - address baseFeed - ) external view returns (bool) { - address deployer = quoteTokenToDeployer[quoteToken]; - if (deployer == address(0)) revert DeployerNotFound(); - return _feeds[deployer][baseFeed].isApproved; - } +interface IFXPoolDeployer { + function initialize( + address _vault, + address _quoteToken, + address _quoteAssimilator, + address _baseAssimilatorTemplate + ) external; } -interface IHasQuoteToken { - function quoteToken() external view returns (address); +interface FXPoolDeployerTracker { + function broadcastNewDeployer(address _quoteToken, address _deployer) external returns (bytes32 key); } diff --git a/src/Proxy.sol b/src/Proxy.sol deleted file mode 100644 index a931a02..0000000 --- a/src/Proxy.sol +++ /dev/null @@ -1,17 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; - -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; -import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; - -contract Proxy is TransparentUpgradeableProxy { - constructor( - address _logic, - address initialOwner, - bytes memory _data - ) payable TransparentUpgradeableProxy(_logic, initialOwner, _data) {} - - function getProxyAdmin() public view returns (address) { - return _proxyAdmin(); - } -} diff --git a/src/interfaces/AggregatorV3Interface.sol b/src/interfaces/AggregatorV3Interface.sol deleted file mode 100644 index 444880d..0000000 --- a/src/interfaces/AggregatorV3Interface.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; -interface AggregatorV3Interface { - function decimals() external view returns (uint8); - function description() external view returns (string memory); - function version() external view returns (uint256); - - function getRoundData( - uint80 _roundId - ) - external - view - returns ( - uint80 roundId, - int256 answer, - uint256 startedAt, - uint256 updatedAt, - uint80 answeredInRound - ); - function latestRoundData() - external - view - returns ( - uint80 roundId, - int256 answer, - uint256 startedAt, - uint256 updatedAt, - uint80 answeredInRound - ); -} diff --git a/test/FeedRegistry.t.sol b/test/FeedRegistry.t.sol deleted file mode 100644 index a427e46..0000000 --- a/test/FeedRegistry.t.sol +++ /dev/null @@ -1,477 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; - -import "forge-std/Test.sol"; -import "../src/FeedRegistry.sol"; -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; -import "../src/interfaces/AggregatorV3Interface.sol"; -import "../src/Proxy.sol"; - -interface IFXPoolDeployer { - function quoteToken() external view returns (address); - function adminApproveBaseOracle(address baseOracle) external; - function adminDisapproveBaseOracle(address baseOracle) external; -} - -// Mock ERC20 token for testing -contract MockToken is ERC20 { - constructor(string memory name, string memory symbol) ERC20(name, symbol) {} -} - -contract FeedRegistryV2 is FeedRegistry { - function version() external pure override returns (string memory) { - return "2.0.0"; - } -} - -interface IOwnable { - function transferOwnership(address newOwner) external; - function owner() external view returns (address); -} - -// Mock FXPoolDeployer for testing -contract MockFXPoolDeployer is IFXPoolDeployer, Ownable { - address public quoteToken; - - address[] public approvedBaseOracles; - - constructor(address _quoteToken) Ownable(msg.sender) { - quoteToken = _quoteToken; - } - - function adminApproveBaseOracle( - address baseOracle - ) external override onlyOwner { - approvedBaseOracles.push(baseOracle); - } - - function adminDisapproveBaseOracle( - address baseOracle - ) external override onlyOwner { - for (uint256 i = 0; i < approvedBaseOracles.length; i++) { - if (approvedBaseOracles[i] == baseOracle) { - approvedBaseOracles[i] = approvedBaseOracles[ - approvedBaseOracles.length - 1 - ]; - approvedBaseOracles.pop(); - } - } - } -} - -// Mock Chainlink Feed for testing -contract MockFeed is AggregatorV3Interface { - function decimals() external pure returns (uint8) { - return 8; - } - - function description() external pure returns (string memory) { - return "Mock Feed"; - } - - function version() external pure returns (uint256) { - return 1; - } - - function getRoundData( - uint80 - ) - external - pure - returns ( - uint80 roundId, - int256 answer, - uint256 startedAt, - uint256 updatedAt, - uint80 answeredInRound - ) - { - return (1, 1000e8, 1, 1, 1); - } - - function latestRoundData() - external - pure - returns ( - uint80 roundId, - int256 answer, - uint256 startedAt, - uint256 updatedAt, - uint80 answeredInRound - ) - { - return (1, 1000e8, 1, 1, 1); - } -} - -contract FeedRegistryTest is Test { - FeedRegistry public registry; - address public proxyAdminOwner; - Proxy public proxy; - - MockFeed public mockFeed; - MockFeed public mockFeed2; - IFXPoolDeployer public deployer; - IFXPoolDeployer public deployer2; - IERC20 public quoteToken; - MockToken public token1; - MockToken public token2; - address public owner; - address public user; - - function setUp() public virtual { - owner = address(this); - user = makeAddr("user"); - proxyAdminOwner = makeAddr("proxyAdminOwner"); - - // Prepare initialization data - bytes memory initData = abi.encodeWithSelector( - FeedRegistry.initialize.selector, - owner - ); - - // Deploy proxy - proxy = new Proxy( - address(new FeedRegistry()), - proxyAdminOwner, - initData - ); - - // Create interface to proxy - registry = FeedRegistry(address(proxy)); - - mockFeed = new MockFeed(); - mockFeed2 = new MockFeed(); - token1 = new MockToken("Token1", "TK1"); - token2 = new MockToken("Token2", "TK2"); - quoteToken = IERC20(address(new MockToken("QuoteToken", "QT"))); - - MockFXPoolDeployer mockDeployer = new MockFXPoolDeployer( - address(quoteToken) - ); - MockFXPoolDeployer mockDeployer2 = new MockFXPoolDeployer( - address(quoteToken) - ); - // transfer ownership to registry - IOwnable(address(mockDeployer)).transferOwnership(address(registry)); - IOwnable(address(mockDeployer2)).transferOwnership(address(registry)); - deployer = IFXPoolDeployer(address(mockDeployer)); - deployer2 = IFXPoolDeployer(address(mockDeployer2)); - } - - function testAddDeployer() public { - registry.addDeployer(address(quoteToken), address(deployer)); - assertEq( - registry.deployerToQuoteToken(address(deployer)), - address(quoteToken), - "Deployer to quote token mapping is incorrect" - ); - assertEq( - registry.quoteTokenToDeployer(address(quoteToken)), - address(deployer), - "Quote token to deployer mapping is incorrect" - ); - assertEq( - registry.getDeployers()[0], - address(deployer), - "Deployer not added" - ); - } - - function testRemoveDeployer() public { - registry.addDeployer(address(quoteToken), address(deployer)); - registry.removeDeployer(address(deployer)); - - address[] memory _deployers = registry.getDeployers(); - assertEq(_deployers.length, 0, "Deployer list length is incorrect"); - - assertEq( - registry.deployerToQuoteToken(address(deployer)), - address(0), - "Deployer to quote token mapping is incorrect" - ); - assertEq( - registry.quoteTokenToDeployer(address(quoteToken)), - address(0), - "Quote token to deployer mapping is incorrect" - ); - } - - function testCannotAddDuplicateDeployer() public { - registry.addDeployer(address(quoteToken), address(deployer)); - vm.expectRevert(DeployerAlreadyExists.selector); - registry.addDeployer(address(quoteToken), address(deployer)); - vm.expectRevert(QuoteTokenAlreadyExists.selector); - registry.addDeployer(address(quoteToken), address(deployer2)); - } - - function testSuggestApproveRemoveFeed() public { - registry.addDeployer(address(quoteToken), address(deployer)); - - address[] memory tokens = new address[](2); - tokens[0] = address(token1); - tokens[1] = address(token2); - - vm.startPrank(user); - vm.expectEmit(true, true, true, true); - emit FeedRegistry.FeedSuggested( - user, - address(quoteToken), - address(mockFeed), - tokens - ); - registry.suggestFeed(address(quoteToken), address(mockFeed), tokens); - registry.suggestFeed(address(quoteToken), address(mockFeed2), tokens); - vm.stopPrank(); - - (, address feedAddress, bool isApproved) = registry.feedsPending(0); - assertEq(feedAddress, address(mockFeed), "Feed is not pending"); - assertEq(isApproved, false, "Feed is approved"); - - (, address feedAddress2, bool isApproved2) = registry.feedsPending(1); - assertEq(feedAddress2, address(mockFeed2), "Feed2 is not pending"); - assertEq(isApproved2, false, "Feed2 is approved"); - - // admin can approve feed - vm.startPrank(owner); - registry.approveFeed(0); - vm.stopPrank(); - - // feed2 is still pending - (, feedAddress2, isApproved2) = registry.feedsPending(1); - assertEq(feedAddress2, address(mockFeed2), "Feed2 is not pending"); - assertEq(isApproved2, false, "Feed2 is approved"); - - // admin can approve feed2 - vm.startPrank(owner); - registry.approveFeed(1); - vm.stopPrank(); - - assertEq( - registry.isFeedApproved(address(quoteToken), address(mockFeed)), - true, - "Feed is not approved" - ); - assertEq( - registry.isFeedApproved(address(quoteToken), address(mockFeed2)), - true, - "Feed2 is not approved" - ); - - FeedRegistry.Feed memory feed = registry.getFeedByQuoteToken( - address(quoteToken), - address(mockFeed) - ); - assertEq( - feed.feedAddress, - address(mockFeed), - "[getFeedByQuoteToken] feed is not approved" - ); - - feed = registry.getFeedByDeployer(address(deployer), address(mockFeed)); - assertEq( - feed.isApproved, - true, - "[getFeedByDeployer] feed is not approved" - ); - - // user cannot suggest feed again - vm.startPrank(user); - vm.expectRevert(FeedAlreadyExists.selector); - registry.suggestFeed(address(quoteToken), address(mockFeed), tokens); - vm.stopPrank(); - - // admin can remove feed - vm.startPrank(owner); - registry.removeFeed(address(quoteToken), address(mockFeed)); - vm.stopPrank(); - - assertEq( - registry.isFeedApproved(address(quoteToken), address(mockFeed)), - false, - "Feed is approved" - ); - vm.startPrank(owner); - registry.removeFeed(address(quoteToken), address(mockFeed2)); - vm.stopPrank(); - - assertEq( - registry.isFeedApproved(address(quoteToken), address(mockFeed2)), - false, - "Feed2 is approved" - ); - } - - function testCannotSuggestInvalidFeed() public { - vm.startPrank(user); - address[] memory tokens = new address[](0); - vm.expectRevert(DeployerNotFound.selector); - registry.suggestFeed(address(0), address(mockFeed), tokens); - // dont allow suggesting a token as a feed - vm.expectRevert(); - registry.suggestFeed(address(token1), address(mockFeed), tokens); - vm.stopPrank(); - } - - function testCannotApproveNonexistentFeed() public { - vm.expectRevert(FeedDoesNotExist.selector); - registry.approveFeed(0); - } - - function testSuggestRemoveBaseToken() public { - registry.addDeployer(address(quoteToken), address(deployer)); - - // Suggest and approve a feed first - address[] memory tokens = new address[](0); - - vm.prank(user); - registry.suggestFeed(address(quoteToken), address(mockFeed), tokens); - - // cannot associate token to unapproved feed - vm.expectRevert(FeedNotApproved.selector); - registry.suggestBaseToken( - address(quoteToken), - address(mockFeed), - address(token1) - ); - - registry.approveFeed(0); - - // Associate a new token - vm.expectEmit(true, true, true, true); - emit FeedRegistry.BaseTokenSuggested( - address(this), - address(quoteToken), - address(mockFeed), - address(token1) - ); - - registry.suggestBaseToken( - address(quoteToken), - address(mockFeed), - address(token1) - ); - - address[] memory associatedTokens = registry.getBaseTokens( - address(quoteToken), - address(mockFeed) - ); - assertEq(associatedTokens.length, 0); - // owner approves base token - registry.approveBaseToken(0); - - associatedTokens = registry.getBaseTokens( - address(quoteToken), - address(mockFeed) - ); - assertEq(associatedTokens.length, 1); - assertEq(associatedTokens[0], address(token1)); - - // cannot associate same token again - vm.expectRevert(TokenAlreadyAssociated.selector); - registry.suggestBaseToken( - address(quoteToken), - address(mockFeed), - address(token1) - ); - - // can associate different token - registry.suggestBaseToken( - address(quoteToken), - address(mockFeed), - address(token2) - ); - registry.approveBaseToken(1); - - associatedTokens = registry.getBaseTokens( - address(quoteToken), - address(mockFeed) - ); - assertEq(associatedTokens.length, 2); - assertEq(associatedTokens[0], address(token1)); - assertEq(associatedTokens[1], address(token2)); - - registry.removeBaseToken( - address(quoteToken), - address(mockFeed), - address(token1) - ); - - associatedTokens = registry.getBaseTokens( - address(quoteToken), - address(mockFeed) - ); - assertEq(associatedTokens.length, 1); - assertEq(associatedTokens[0], address(token2)); - } - - function testFEInterface() public { - registry.addDeployer(address(quoteToken), address(deployer)); - - // Suggest and approve a feed first - address[] memory tokens = new address[](0); - vm.startPrank(user); - registry.suggestFeed(address(quoteToken), address(mockFeed), tokens); - registry.suggestFeed(address(quoteToken), address(mockFeed2), tokens); - vm.stopPrank(); - - registry.approveFeed(1); - registry.approveFeed(0); - - address[] memory deployers = registry.getDeployers(); - bool foundFeed = false; - - for (uint256 i = 0; i < deployers.length; i++) { - FeedRegistry.Feed[] memory feeds = registry.getFeeds(deployers[i]); - for (uint256 j = 0; j < feeds.length; j++) { - if (feeds[j].feedAddress == address(mockFeed)) { - foundFeed = true; - } - assertEq(feeds[j].isApproved, true, "Feed is not approved"); - } - } - assertEq(foundFeed, true, "Feed is not found"); - } - - function testUpgradeWorks() public { - // version before upgrade - assertEq(registry.version(), "1.0.0"); - - registry.addDeployer(address(quoteToken), address(deployer)); - // Suggest and approve a feed first - address[] memory tokens = new address[](0); - vm.prank(user); - registry.suggestFeed(address(quoteToken), address(mockFeed), tokens); - registry.approveFeed(0); - // Deploy new implementation - FeedRegistryV2 newImplementation = new FeedRegistryV2(); - - // Upgrade proxy to new implementation and initialize it - vm.startPrank(proxyAdminOwner); - ProxyAdmin proxyAdmin = ProxyAdmin(proxy.getProxyAdmin()); - proxyAdmin.upgradeAndCall( - ITransparentUpgradeableProxy(address(proxy)), - address(newImplementation), - // NB: do not call initialize again since the state has already been initialized - bytes("") - ); - vm.stopPrank(); - - // version after upgrade - assertEq(registry.version(), "2.0.0"); - - // test that the state is preserved - assertEq( - registry.isFeedApproved(address(quoteToken), address(mockFeed)), - true, - "Feed is not approved after upgrade" - ); - assertEq( - registry - .getFeedByQuoteToken(address(quoteToken), address(mockFeed)) - .feedAddress, - address(mockFeed), - "Feed is not approved after upgrade" - ); - } -} diff --git a/test/FeedRegistryIntegration.t.sol b/test/FeedRegistryIntegration.t.sol deleted file mode 100644 index a047b4e..0000000 --- a/test/FeedRegistryIntegration.t.sol +++ /dev/null @@ -1,155 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; - -import "forge-std/Test.sol"; -import "../src/FeedRegistry.sol"; -import "../src/interfaces/AggregatorV3Interface.sol"; -import "../src/Proxy.sol"; -import "./FeedRegistry.t.sol"; - -interface IHasBaseOraclesWhitelist { - function baseOraclesWhitelist( - address baseOracle - ) external view returns (bool); -} - -contract FeedRegistryIntegration is FeedRegistryTest { - // --- bArtio constants --- - uint256 private constant FORK_BLOCK_NO = 9270418; - address private constant FXPOOL_DEPLOYER_USDC = - 0x8520b4Ed7E7e54343ADe583E6A7864718535eCa9; - address private constant FXPOOL_DEPLOYER_NECT = - 0x33c608b9e7Ae1877dcb665Bd3d2D3bb327b01156; - address private constant FXPOOL_DEPLOYER_HONEY = - 0x8E826703B6D471732415ABd4a1E724A3bF451511; - - function setUp() public override { - vm.createSelectFork("https://bartio.rpc.berachain.com/", FORK_BLOCK_NO); - - owner = address(this); - user = makeAddr("user"); - proxyAdminOwner = makeAddr("proxyAdminOwner"); - - // Prepare initialization data - bytes memory initData = abi.encodeWithSelector( - FeedRegistry.initialize.selector, - owner - ); - - // Deploy proxy - proxy = new Proxy( - address(new FeedRegistry()), - proxyAdminOwner, - initData - ); - - // Create interface to proxy - registry = FeedRegistry(address(proxy)); - - mockFeed = new MockFeed(); - mockFeed2 = new MockFeed(); - token1 = new MockToken("Token1", "TK1"); - token2 = new MockToken("Token2", "TK2"); - quoteToken = IERC20(IFXPoolDeployer(FXPOOL_DEPLOYER_USDC).quoteToken()); - - deployer = IFXPoolDeployer(FXPOOL_DEPLOYER_USDC); - deployer2 = IFXPoolDeployer(FXPOOL_DEPLOYER_NECT); - // transfer ownership to registry - vm.startPrank(IOwnable(address(deployer)).owner()); - IOwnable(address(deployer)).transferOwnership(address(registry)); - vm.stopPrank(); - - vm.startPrank(IOwnable(address(deployer2)).owner()); - IOwnable(address(deployer2)).transferOwnership(address(registry)); - vm.stopPrank(); - } - - function testMultipleDeployers() public { - // transfer ownership for deployers - vm.startPrank(IOwnable(address(FXPOOL_DEPLOYER_NECT)).owner()); - IOwnable(address(FXPOOL_DEPLOYER_NECT)).transferOwnership( - address(registry) - ); - vm.stopPrank(); - - vm.startPrank(IOwnable(address(FXPOOL_DEPLOYER_HONEY)).owner()); - IOwnable(address(FXPOOL_DEPLOYER_HONEY)).transferOwnership( - address(registry) - ); - vm.stopPrank(); - - // Add deployers - registry.addDeployer(address(quoteToken), address(deployer)); - registry.addDeployer( - address(IFXPoolDeployer(FXPOOL_DEPLOYER_NECT).quoteToken()), - address(IFXPoolDeployer(FXPOOL_DEPLOYER_NECT)) - ); - registry.addDeployer( - address(IFXPoolDeployer(FXPOOL_DEPLOYER_HONEY).quoteToken()), - address(IFXPoolDeployer(FXPOOL_DEPLOYER_HONEY)) - ); - - // Suggest feed to the USDC deployer - registry.suggestFeed( - address(quoteToken), - address(mockFeed), - new address[](0) - ); - registry.approveFeed(0); - assertTrue( - IHasBaseOraclesWhitelist(address(deployer)).baseOraclesWhitelist( - address(mockFeed) - ) - ); - - // Suggest feed to the NECT deployer - registry.suggestFeed( - address(IFXPoolDeployer(FXPOOL_DEPLOYER_NECT).quoteToken()), - address(mockFeed), - new address[](0) - ); - registry.approveFeed(1); - assertTrue( - IHasBaseOraclesWhitelist(FXPOOL_DEPLOYER_NECT).baseOraclesWhitelist( - address(mockFeed) - ) - ); - registry.suggestFeed( - address(IFXPoolDeployer(FXPOOL_DEPLOYER_HONEY).quoteToken()), - address(mockFeed), - new address[](0) - ); - registry.approveFeed(2); - assertTrue( - IHasBaseOraclesWhitelist(FXPOOL_DEPLOYER_HONEY) - .baseOraclesWhitelist(address(mockFeed)) - ); - } - - function testCanRecoverOwnership() public { - vm.startPrank(IOwnable(address(deployer)).owner()); - IOwnable(address(deployer)).transferOwnership(address(registry)); - vm.stopPrank(); - - registry.addDeployer(address(quoteToken), address(deployer)); - - assertEq( - IOwnable(address(deployer)).owner(), - address(registry), - "Owner is not registry" - ); - - bytes memory data = abi.encodeWithSelector( - IOwnable(address(deployer)).transferOwnership.selector, - address(this) - ); - - registry.callDeployer(address(deployer), data); - - assertEq( - IOwnable(address(deployer)).owner(), - address(this), - "Owner is not this" - ); - } -}