From e6d9eca8354b9bc6bc3b6389ddd01e06a583affd Mon Sep 17 00:00:00 2001 From: Denvil J Clarke <60730266+denviljclarke@users.noreply.github.com> Date: Mon, 26 Aug 2024 10:54:30 +0100 Subject: [PATCH 1/2] Feat: PUSO gov script (#209) * forge install: mento-core-2.4.0 v2.4.0 * feat: add pso proxy * chore: pso baklava deployment * chore: pso alfajores deployment * chore: pso mainnet deployment * feat: add PSO gov script + checks * refactor: change PSO to PUSO * style: lint fix * refactor: update proxy reference * fix: update rate feed ID * fix: use previously deployed StableTokenPHPProxy * chore: remove mento-core-2.4.0 * chore: remove empty deps folder * refactor: update verification check message * feat: nit fixes --------- Co-authored-by: Bayological <6872903+bayological@users.noreply.github.com> Co-authored-by: bowd --- .../42220/run-latest.json | 117 +++++ .../44787/run-latest.json | 117 +++++ .../62320/run-latest.json | 117 +++++ script/upgrades/PUSO/Config.sol | 100 ++++ script/upgrades/PUSO/PUSO.sol | 406 ++++++++++++++++ script/upgrades/PUSO/PUSOChecks.base.sol | 80 ++++ script/upgrades/PUSO/PUSOChecks.sol | 14 + script/upgrades/PUSO/PUSOChecks.swap.sol | 192 ++++++++ script/upgrades/PUSO/PUSOChecks.verify.sol | 437 ++++++++++++++++++ .../PUSO/deploy/PUSO-00-Create-Proxies.sol | 30 ++ 10 files changed, 1610 insertions(+) create mode 100644 broadcast/PUSO-00-Create-Proxies.sol/42220/run-latest.json create mode 100644 broadcast/PUSO-00-Create-Proxies.sol/44787/run-latest.json create mode 100644 broadcast/PUSO-00-Create-Proxies.sol/62320/run-latest.json create mode 100644 script/upgrades/PUSO/Config.sol create mode 100644 script/upgrades/PUSO/PUSO.sol create mode 100644 script/upgrades/PUSO/PUSOChecks.base.sol create mode 100644 script/upgrades/PUSO/PUSOChecks.sol create mode 100644 script/upgrades/PUSO/PUSOChecks.swap.sol create mode 100644 script/upgrades/PUSO/PUSOChecks.verify.sol create mode 100644 script/upgrades/PUSO/deploy/PUSO-00-Create-Proxies.sol diff --git a/broadcast/PUSO-00-Create-Proxies.sol/42220/run-latest.json b/broadcast/PUSO-00-Create-Proxies.sol/42220/run-latest.json new file mode 100644 index 00000000..04d8f53c --- /dev/null +++ b/broadcast/PUSO-00-Create-Proxies.sol/42220/run-latest.json @@ -0,0 +1,117 @@ +{ + "transactions": [ + { + "hash": "0x6abf75b4e79d5d9edd10c4aba7977c3ba958c3bf34a9484b910c41afffacc707", + "transactionType": "CREATE", + "contractName": "StableTokenPHPProxy", + "contractAddress": "0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0xbd5cc", + "value": "0x0", + "data": "0x6080604052610016336001600160e01b0361001b16565b6100d9565b6001600160a01b03811661006a576040805162461bcd60e51b815260206004820152601160248201527006f776e65722063616e6e6f74206265203607c1b604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301812060001901828155906001600160a01b038316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a25050565b61096b806100e86000396000f3fe60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a723158207c64abd5dcf905c5a66937d6b4ff07be1c78259506c4abad213f0e37921909a264736f6c63430005110032", + "nonce": "0x14d" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb143db5f3ffcfaecbb53a4811c299c7e2dedb0250a38b82ee55f0c4146581eca", + "transactionType": "CALL", + "contractName": "StableTokenPHPProxy", + "contractAddress": "0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B", + "function": "_transferOwnership(address)", + "arguments": [ + "0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972" + ], + "transaction": { + "type": "0x00", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x105d4a9306d2e55a71d2eb95b81553ae1dc20d7b", + "gas": "0x9789", + "value": "0x0", + "data": "0xd29d44ee000000000000000000000000d533ca259b330c7a88f74e000a3faea2d63b7972", + "nonce": "0x14e" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x6abf75b4e79d5d9edd10c4aba7977c3ba958c3bf34a9484b910c41afffacc707", + "transactionIndex": "0x2", + "blockHash": "0x8a2688d8e76e9f462cc6b20121c5c3bfdda8cea88325dbd63c8667dfb32b653e", + "blockNumber": "0x1877b4e", + "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", + "to": null, + "cumulativeGasUsed": "0x14412d", + "gasUsed": "0x91a9d", + "contractAddress": "0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B", + "logs": [ + { + "address": "0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B", + "topics": [ + "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x8a2688d8e76e9f462cc6b20121c5c3bfdda8cea88325dbd63c8667dfb32b653e", + "blockNumber": "0x1877b4e", + "transactionHash": "0x6abf75b4e79d5d9edd10c4aba7977c3ba958c3bf34a9484b910c41afffacc707", + "transactionIndex": "0x2", + "logIndex": "0xb", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000410000000000000000000000000000000000000000004000000000000000000000000000000000000000000000001000000000000000000020000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x2540be400" + }, + { + "transactionHash": "0xb143db5f3ffcfaecbb53a4811c299c7e2dedb0250a38b82ee55f0c4146581eca", + "transactionIndex": "0x3", + "blockHash": "0x8a2688d8e76e9f462cc6b20121c5c3bfdda8cea88325dbd63c8667dfb32b653e", + "blockNumber": "0x1877b4e", + "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", + "to": "0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B", + "cumulativeGasUsed": "0x14aee3", + "gasUsed": "0x6db6", + "contractAddress": null, + "logs": [ + { + "address": "0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B", + "topics": [ + "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", + "0x000000000000000000000000d533ca259b330c7a88f74e000a3faea2d63b7972" + ], + "data": "0x", + "blockHash": "0x8a2688d8e76e9f462cc6b20121c5c3bfdda8cea88325dbd63c8667dfb32b653e", + "blockNumber": "0x1877b4e", + "transactionHash": "0xb143db5f3ffcfaecbb53a4811c299c7e2dedb0250a38b82ee55f0c4146581eca", + "transactionIndex": "0x3", + "logIndex": "0xc", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000104000000000000000000000000000000000000000000000001000000000000000000020000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x2540be400" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x6200F54D73491d56b8d7A975C9ee18EFb4D518Df", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0xED477A99035d0c1e11369F1D7A4e587893cc002B" + ], + "pending": [], + "returns": {}, + "timestamp": 1715951723, + "chain": 42220, + "multi": false, + "commit": "b88e8fd" +} \ No newline at end of file diff --git a/broadcast/PUSO-00-Create-Proxies.sol/44787/run-latest.json b/broadcast/PUSO-00-Create-Proxies.sol/44787/run-latest.json new file mode 100644 index 00000000..b89d2170 --- /dev/null +++ b/broadcast/PUSO-00-Create-Proxies.sol/44787/run-latest.json @@ -0,0 +1,117 @@ +{ + "transactions": [ + { + "hash": "0xec5dddffa9da325ab2099507eeedbac59a1b361d63e45c9d6ac9bf529a62acbe", + "transactionType": "CREATE", + "contractName": "StableTokenPHPProxy", + "contractAddress": "0x5E0E3c9419C42a1B04e2525991FB1A2C467AB8bF", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0xbd5bc", + "value": "0x0", + "data": "0x6080604052610016336001600160e01b0361001b16565b6100d9565b6001600160a01b03811661006a576040805162461bcd60e51b815260206004820152601160248201527006f776e65722063616e6e6f74206265203607c1b604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301812060001901828155906001600160a01b038316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a25050565b61096b806100e86000396000f3fe60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a72315820286882fe84ee62a9583b8f1837539e99a623e447669d530058a8348895a2989164736f6c63430005110032", + "nonce": "0x3c9" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xfde2f2d9fe777730621796d426d52bb41d0ac31faea7bd9db2ca4ee908afb2e7", + "transactionType": "CALL", + "contractName": "StableTokenPHPProxy", + "contractAddress": "0x5E0E3c9419C42a1B04e2525991FB1A2C467AB8bF", + "function": "_transferOwnership(address)", + "arguments": [ + "0xAA963FC97281d9632d96700aB62A4D1340F9a28a" + ], + "transaction": { + "type": "0x00", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x5e0e3c9419c42a1b04e2525991fb1a2c467ab8bf", + "gas": "0xa085", + "value": "0x0", + "data": "0xd29d44ee000000000000000000000000aa963fc97281d9632d96700ab62a4d1340f9a28a", + "nonce": "0x3ca" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xec5dddffa9da325ab2099507eeedbac59a1b361d63e45c9d6ac9bf529a62acbe", + "transactionIndex": "0x0", + "blockHash": "0x4ee130696a5f590d413c7167199a9d586e8ce168f6ab1c57995342ee4d13f0b2", + "blockNumber": "0x16fe9b9", + "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", + "to": null, + "cumulativeGasUsed": "0x91a91", + "gasUsed": "0x91a91", + "contractAddress": "0x5E0E3c9419C42a1B04e2525991FB1A2C467AB8bF", + "logs": [ + { + "address": "0x5E0E3c9419C42a1B04e2525991FB1A2C467AB8bF", + "topics": [ + "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x4ee130696a5f590d413c7167199a9d586e8ce168f6ab1c57995342ee4d13f0b2", + "blockNumber": "0x16fe9b9", + "transactionHash": "0xec5dddffa9da325ab2099507eeedbac59a1b361d63e45c9d6ac9bf529a62acbe", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000010420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x2540be400" + }, + { + "transactionHash": "0xfde2f2d9fe777730621796d426d52bb41d0ac31faea7bd9db2ca4ee908afb2e7", + "transactionIndex": "0x1", + "blockHash": "0x4ee130696a5f590d413c7167199a9d586e8ce168f6ab1c57995342ee4d13f0b2", + "blockNumber": "0x16fe9b9", + "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", + "to": "0x5E0E3c9419C42a1B04e2525991FB1A2C467AB8bF", + "cumulativeGasUsed": "0x98853", + "gasUsed": "0x6dc2", + "contractAddress": null, + "logs": [ + { + "address": "0x5E0E3c9419C42a1B04e2525991FB1A2C467AB8bF", + "topics": [ + "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", + "0x000000000000000000000000aa963fc97281d9632d96700ab62a4d1340f9a28a" + ], + "data": "0x", + "blockHash": "0x4ee130696a5f590d413c7167199a9d586e8ce168f6ab1c57995342ee4d13f0b2", + "blockNumber": "0x16fe9b9", + "transactionHash": "0xfde2f2d9fe777730621796d426d52bb41d0ac31faea7bd9db2ca4ee908afb2e7", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000010420000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x2540be400" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" + ], + "pending": [], + "returns": {}, + "timestamp": 1715951535, + "chain": 44787, + "multi": false, + "commit": "b88e8fd" +} \ No newline at end of file diff --git a/broadcast/PUSO-00-Create-Proxies.sol/62320/run-latest.json b/broadcast/PUSO-00-Create-Proxies.sol/62320/run-latest.json new file mode 100644 index 00000000..b1c346eb --- /dev/null +++ b/broadcast/PUSO-00-Create-Proxies.sol/62320/run-latest.json @@ -0,0 +1,117 @@ +{ + "transactions": [ + { + "hash": "0x5c94e6fc3108739ed484a564f85cc5ed7bbdd589adf72fba83544a79c9d5f16f", + "transactionType": "CREATE", + "contractName": "StableTokenPHPProxy", + "contractAddress": "0xdc57227C2069D8730f4661FA234904BE6E30B336", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0xbd5cc", + "value": "0x0", + "data": "0x6080604052610016336001600160e01b0361001b16565b6100d9565b6001600160a01b03811661006a576040805162461bcd60e51b815260206004820152601160248201527006f776e65722063616e6e6f74206265203607c1b604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301812060001901828155906001600160a01b038316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a25050565b61096b806100e86000396000f3fe60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a723158209dfce1dbe8d26f782bd3917bd9ad63739d3bc68f0ce223d9898fd0f58bf46a4764736f6c63430005110032", + "nonce": "0x3a0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe2228dba9c42ab959c103f5800b5cff8ec3cc2c89d58810b0447a8c22dec46ee", + "transactionType": "CALL", + "contractName": "StableTokenPHPProxy", + "contractAddress": "0xdc57227C2069D8730f4661FA234904BE6E30B336", + "function": "_transferOwnership(address)", + "arguments": [ + "0x28443b1d87db521320a6517A4F1B6Ead77F8C811" + ], + "transaction": { + "type": "0x00", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xdc57227c2069d8730f4661fa234904be6e30b336", + "gas": "0xa085", + "value": "0x0", + "data": "0xd29d44ee00000000000000000000000028443b1d87db521320a6517a4f1b6ead77f8c811", + "nonce": "0x3a1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x5c94e6fc3108739ed484a564f85cc5ed7bbdd589adf72fba83544a79c9d5f16f", + "transactionIndex": "0x0", + "blockHash": "0x1403d9d0c2951392b68fba047dadb88a0d120a57a873381ebfebd730ec68d67a", + "blockNumber": "0x1683652", + "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", + "to": null, + "cumulativeGasUsed": "0x91a9d", + "gasUsed": "0x91a9d", + "contractAddress": "0xdc57227C2069D8730f4661FA234904BE6E30B336", + "logs": [ + { + "address": "0xdc57227C2069D8730f4661FA234904BE6E30B336", + "topics": [ + "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x1403d9d0c2951392b68fba047dadb88a0d120a57a873381ebfebd730ec68d67a", + "blockNumber": "0x1683652", + "transactionHash": "0x5c94e6fc3108739ed484a564f85cc5ed7bbdd589adf72fba83544a79c9d5f16f", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000200000000000000000000000000000020000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0xbebc200" + }, + { + "transactionHash": "0xe2228dba9c42ab959c103f5800b5cff8ec3cc2c89d58810b0447a8c22dec46ee", + "transactionIndex": "0x1", + "blockHash": "0x1403d9d0c2951392b68fba047dadb88a0d120a57a873381ebfebd730ec68d67a", + "blockNumber": "0x1683652", + "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", + "to": "0xdc57227C2069D8730f4661FA234904BE6E30B336", + "cumulativeGasUsed": "0x9885f", + "gasUsed": "0x6dc2", + "contractAddress": null, + "logs": [ + { + "address": "0xdc57227C2069D8730f4661FA234904BE6E30B336", + "topics": [ + "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", + "0x00000000000000000000000028443b1d87db521320a6517a4f1b6ead77f8c811" + ], + "data": "0x", + "blockHash": "0x1403d9d0c2951392b68fba047dadb88a0d120a57a873381ebfebd730ec68d67a", + "blockNumber": "0x1683652", + "transactionHash": "0xe2228dba9c42ab959c103f5800b5cff8ec3cc2c89d58810b0447a8c22dec46ee", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000200000000000000000000000000000000001000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000020000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0xbebc200" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x3e2cc57f83093Ce1Ee03482c1590E3B5f4225bd7", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519" + ], + "pending": [], + "returns": {}, + "timestamp": 1715951462, + "chain": 62320, + "multi": false, + "commit": "b88e8fd" +} \ No newline at end of file diff --git a/script/upgrades/PUSO/Config.sol b/script/upgrades/PUSO/Config.sol new file mode 100644 index 00000000..b0640f86 --- /dev/null +++ b/script/upgrades/PUSO/Config.sol @@ -0,0 +1,100 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable func-name-mixedcase, contract-name-camelcase, function-max-lines, var-name-mixedcase +pragma solidity ^0.5.13; +pragma experimental ABIEncoderV2; + +import { Chain } from "script/utils/Chain.sol"; +import { Config } from "script/utils/Config.sol"; +import { Contracts } from "script/utils/Contracts.sol"; +import { FixidityLib } from "script/utils/FixidityLib.sol"; + +/** + * @dev This library contains the configuration required for the PUSO governance proposal. + * The following configuration is used: + * - 1 pool: PUSO<->cUSD + * - 1 rate feed: PHPUSD + * - Configuration params needed to initialize the PUSO stable token + */ +library PUSOConfig { + using FixidityLib for FixidityLib.Fraction; + using Contracts for Contracts.Cache; + + struct PUSO { + Config.Pool poolConfig; + Config.RateFeed rateFeedConfig; + Config.StableTokenV2 stableTokenConfig; + } + + /** + * @dev Returns the populated configuration object for the PUSO governance proposal. + */ + function get(Contracts.Cache storage contracts) internal view returns (PUSO memory config) { + config.poolConfig = PUSOcUSD_PoolConfig(contracts); + config.rateFeedConfig = PHPUSD_RateFeedConfig(); + config.stableTokenConfig = stableTokenPUSOConfig(); + } + + /* ==================== Rate Feed Configuration ==================== */ + + /** + * @dev Returns the configuration for the PHPUSD rate feed. + */ + function PHPUSD_RateFeedConfig() internal pure returns (Config.RateFeed memory rateFeedConfig) { + rateFeedConfig.rateFeedID = Config.rateFeedID("relayed:PHPUSD"); + rateFeedConfig.medianDeltaBreaker0 = Config.MedianDeltaBreaker({ + enabled: true, + threshold: FixidityLib.newFixedFraction(4, 100), // 4% + cooldown: 15 minutes, + smoothingFactor: FixidityLib.newFixedFraction(5, 1000).unwrap() // 0.005 + }); + } + + /* ==================== Pool Configuration ==================== */ + + /** + * @dev Returns the configuration for the PUSOcUSD pool. + */ + function PUSOcUSD_PoolConfig( + Contracts.Cache storage contracts + ) internal view returns (Config.Pool memory poolConfig) { + poolConfig = Config.Pool({ + asset0: contracts.celoRegistry("StableToken"), + asset1: contracts.deployed("StableTokenPHPProxy"), + isConstantSum: true, + spread: FixidityLib.newFixedFraction(3, 1000), // 0.3%, in line with current DT of chainlink feed + referenceRateResetFrequency: 5 minutes, + minimumReports: 1, + stablePoolResetSize: 10_000_000 * 1e18, + referenceRateFeedID: Config.rateFeedID("relayed:PHPUSD"), + asset0limits: Config.TradingLimit({ + enabled0: true, + timeStep0: 5 minutes, + limit0: 200_000, + enabled1: true, + timeStep1: 1 days, + limit1: 1_000_000, + enabledGlobal: true, + limitGlobal: 5_000_000 + }), + asset1limits: Config.TradingLimit({ + enabled0: true, + timeStep0: 5 minutes, + limit0: 57 * 200_000, + enabled1: true, + timeStep1: 1 days, + limit1: 57 * 1_000_000, + enabledGlobal: true, + limitGlobal: 57 * 5_000_000 + }) + }); + } + + /* ==================== Stable Token Configuration ==================== */ + + /** + * @dev Returns the configuration for the PUSO stable token. + */ + function stableTokenPUSOConfig() internal pure returns (Config.StableTokenV2 memory config) { + config = Config.StableTokenV2({ name: "PUSO", symbol: "PUSO" }); + } +} diff --git a/script/upgrades/PUSO/PUSO.sol b/script/upgrades/PUSO/PUSO.sol new file mode 100644 index 00000000..98dd8f1b --- /dev/null +++ b/script/upgrades/PUSO/PUSO.sol @@ -0,0 +1,406 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable func-name-mixedcase, contract-name-camelcase, function-max-lines, var-name-mixedcase +pragma solidity ^0.5.13; +pragma experimental ABIEncoderV2; + +import { GovernanceScript } from "script/utils/Script.sol"; +import { console2 as console } from "forge-std/Script.sol"; +import { Chain } from "script/utils/Chain.sol"; +import { Arrays } from "script/utils/Arrays.sol"; + +import { FixidityLib } from "mento-core-2.3.1/common/FixidityLib.sol"; +import { IBiPoolManager } from "mento-core-2.3.1/interfaces/IBiPoolManager.sol"; +import { IPricingModule } from "mento-core-2.3.1/interfaces/IPricingModule.sol"; +import { IReserve } from "mento-core-2.3.1/interfaces/IReserve.sol"; +import { IFeeCurrencyWhitelist } from "../../interfaces/IFeeCurrencyWhitelist.sol"; +import { IStableTokenV2 } from "mento-core-2.3.1/interfaces/IStableTokenV2.sol"; +import { IERC20Metadata } from "mento-core-2.3.1/common/interfaces/IERC20Metadata.sol"; + +import { Broker } from "mento-core-2.3.1/swap/Broker.sol"; +import { TradingLimits } from "mento-core-2.3.1/libraries/TradingLimits.sol"; +import { BreakerBox } from "mento-core-2.3.1/oracles/BreakerBox.sol"; +import { MedianDeltaBreaker } from "mento-core-2.3.1/oracles/breakers/MedianDeltaBreaker.sol"; +import { StableTokenPHPProxy } from "mento-core-2.3.1/legacy/proxies/StableTokenPHPProxy.sol"; + +import { PUSOConfig, Config } from "./Config.sol"; +import { IMentoUpgrade, ICeloGovernance } from "script/interfaces/IMentoUpgrade.sol"; + +/** + forge script {file} --rpc-url $BAKLAVA_RPC_URL + --broadcast --legacy + * @dev depends on: ../deploy/*.sol + */ +contract PUSO is IMentoUpgrade, GovernanceScript { + using TradingLimits for TradingLimits.Config; + using FixidityLib for FixidityLib.Fraction; + + ICeloGovernance.Transaction[] private transactions; + + address payable private stableTokenPHPProxy; + + address private breakerBox; + address private medianDeltaBreaker; + address private brokerProxy; + address private biPoolManagerProxy; + address private reserveProxy; + address private validators; + + bool public hasChecks = true; + + function prepare() public { + loadDeployedContracts(); + setAddresses(); + } + + /** + * @dev Loads the deployed contracts from previous deployments + */ + function loadDeployedContracts() public { + contracts.load("MU01-00-Create-Proxies", "latest"); // BrokerProxy & BiPoolProxy + contracts.load("MU01-01-Create-Nonupgradeable-Contracts", "latest"); // Pricing Modules + contracts.load("MU03-01-Create-Nonupgradeable-Contracts", "latest"); + contracts.load("MU04-00-Create-Implementations", "latest"); // First StableTokenV2 deployment + contracts.load("PUSO-00-Create-Proxies", "latest"); + } + + /** + * @dev Sets the addresses of the various contracts needed for the proposal. + */ + function setAddresses() public { + // Tokens + stableTokenPHPProxy = contracts.deployed("StableTokenPHPProxy"); + + // Oracles + breakerBox = contracts.deployed("BreakerBox"); + medianDeltaBreaker = contracts.deployed("MedianDeltaBreaker"); + + // Swaps + brokerProxy = contracts.deployed("BrokerProxy"); + biPoolManagerProxy = contracts.deployed("BiPoolManagerProxy"); + reserveProxy = contracts.celoRegistry("Reserve"); + + validators = contracts.celoRegistry("Validators"); + } + + function run() public { + prepare(); + + address governance = contracts.celoRegistry("Governance"); + ICeloGovernance.Transaction[] memory _transactions = buildProposal(); + + vm.startBroadcast(Chain.deployerPrivateKey()); + { + createProposal( + _transactions, + "https://TODO", //TODO + governance + ); + } + vm.stopBroadcast(); + } + + function buildProposal() public returns (ICeloGovernance.Transaction[] memory) { + require(transactions.length == 0, "buildProposal() should only be called once"); + PUSOConfig.PUSO memory config = PUSOConfig.get(contracts); + + proposal_initializePUSOToken(config); + proposal_configurePUSOConstitutionParameters(); + proposal_addPUSOToReserve(); + + proposal_enableGasPaymentsWithPUSO(); + + proposal_createExchange(config); + proposal_configureTradingLimits(config); + proposal_configureBreakerBox(config); + proposal_configureMedianDeltaBreaker(config); + + return transactions; + } + + /** + * @notice Configures the PUSO token + */ + function proposal_initializePUSOToken(PUSOConfig.PUSO memory config) private { + StableTokenPHPProxy _PUSOProxy = StableTokenPHPProxy(stableTokenPHPProxy); + if (_PUSOProxy._getImplementation() == address(0)) { + transactions.push( + ICeloGovernance.Transaction( + 0, + stableTokenPHPProxy, + abi.encodeWithSelector( + _PUSOProxy._setAndInitializeImplementation.selector, + contracts.deployed("StableTokenV2"), + abi.encodeWithSelector( + IStableTokenV2(0).initialize.selector, + config.stableTokenConfig.name, + config.stableTokenConfig.symbol, + 0, + address(0), + 0, + 0, + new address[](0), + new uint256[](0), + "" + ) + ) + ) + ); + + transactions.push( + ICeloGovernance.Transaction( + 0, + stableTokenPHPProxy, + abi.encodeWithSelector( + IStableTokenV2(0).initializeV2.selector, + brokerProxy, + validators, + address(0) // Exchange address (not used) + ) + ) + ); + } else { + console.log("StableTokenPHPProxy is already initialized, skipping initialization."); + } + } + + /** + * @notice configure PUSO constitution parameters + * @dev see cBRl GCP(https://celo.stake.id/#/proposal/49) for reference + */ + function proposal_configurePUSOConstitutionParameters() private { + address governanceProxy = contracts.celoRegistry("Governance"); + + bytes4[] memory constitutionFunctionSelectors = Config.getCeloStableConstitutionSelectors(); + uint256[] memory constitutionThresholds = Config.getCeloStableConstitutionThresholds(); + + for (uint256 i = 0; i < constitutionFunctionSelectors.length; i++) { + transactions.push( + ICeloGovernance.Transaction( + 0, + governanceProxy, + abi.encodeWithSelector( + ICeloGovernance(0).setConstitution.selector, + stableTokenPHPProxy, + constitutionFunctionSelectors[i], + constitutionThresholds[i] + ) + ) + ); + } + } + + /** + * @notice adds PUSO token to the main reserve + */ + function proposal_addPUSOToReserve() private { + if (IReserve(reserveProxy).isStableAsset(stableTokenPHPProxy) == false) { + transactions.push( + ICeloGovernance.Transaction( + 0, + reserveProxy, + abi.encodeWithSelector(IReserve(0).addToken.selector, stableTokenPHPProxy) + ) + ); + } else { + console.log("Token already added to the reserve, skipping: %s", stableTokenPHPProxy); + } + } + + /** + * @notice enable gas payments with PUSO + */ + function proposal_enableGasPaymentsWithPUSO() private { + address feeCurrencyWhitelistProxy = contracts.celoRegistry("FeeCurrencyWhitelist"); + address[] memory whitelist = IFeeCurrencyWhitelist(feeCurrencyWhitelistProxy).getWhitelist(); + for (uint256 i = 0; i < whitelist.length; i++) { + if (whitelist[i] == stableTokenPHPProxy) { + console.log("Gas payments with PUSO already enabled, skipping"); + return; + } + } + transactions.push( + ICeloGovernance.Transaction( + 0, + feeCurrencyWhitelistProxy, + abi.encodeWithSelector(IFeeCurrencyWhitelist(0).addToken.selector, stableTokenPHPProxy) + ) + ); + } + + /** + * @notice Creates the exchange for the new pool. + */ + function proposal_createExchange(PUSOConfig.PUSO memory config) private { + IPricingModule constantProduct = IPricingModule(contracts.deployed("ConstantProductPricingModule")); + IPricingModule constantSum = IPricingModule(contracts.deployed("ConstantSumPricingModule")); + + IBiPoolManager.PoolExchange memory pool = IBiPoolManager.PoolExchange({ + asset0: config.poolConfig.asset0, + asset1: config.poolConfig.asset1, + pricingModule: config.poolConfig.isConstantSum ? constantSum : constantProduct, + bucket0: 0, + bucket1: 0, + lastBucketUpdate: 0, + config: IBiPoolManager.PoolConfig({ + spread: FixidityLib.wrap(config.poolConfig.spread.unwrap()), + referenceRateFeedID: config.poolConfig.referenceRateFeedID, + referenceRateResetFrequency: config.poolConfig.referenceRateResetFrequency, + minimumReports: config.poolConfig.minimumReports, + stablePoolResetSize: config.poolConfig.stablePoolResetSize + }) + }); + + transactions.push( + ICeloGovernance.Transaction( + 0, + biPoolManagerProxy, + abi.encodeWithSelector(IBiPoolManager(0).createExchange.selector, pool) + ) + ); + } + + /** + * @notice This function creates the transactions to configure the trading limits. + */ + function proposal_configureTradingLimits(PUSOConfig.PUSO memory config) private { + bytes32 exchangeId = keccak256( + abi.encodePacked("cUSD", "PUSO", config.poolConfig.isConstantSum ? "ConstantSum" : "ConstantProduct") + ); + + // Set the trading limit for asset0 of the pool + transactions.push( + ICeloGovernance.Transaction( + 0, + brokerProxy, + abi.encodeWithSelector( + Broker(0).configureTradingLimit.selector, + exchangeId, + config.poolConfig.asset0, + TradingLimits.Config({ + timestep0: config.poolConfig.asset0limits.timeStep0, + timestep1: config.poolConfig.asset0limits.timeStep1, + limit0: config.poolConfig.asset0limits.limit0, + limit1: config.poolConfig.asset0limits.limit1, + limitGlobal: config.poolConfig.asset0limits.limitGlobal, + flags: Config.tradingLimitConfigToFlag(config.poolConfig.asset0limits) + }) + ) + ) + ); + + // Set the trading limit for asset1 of the pool + transactions.push( + ICeloGovernance.Transaction( + 0, + brokerProxy, + abi.encodeWithSelector( + Broker(0).configureTradingLimit.selector, + exchangeId, + config.poolConfig.asset1, + TradingLimits.Config({ + timestep0: config.poolConfig.asset1limits.timeStep0, + timestep1: config.poolConfig.asset1limits.timeStep1, + limit0: config.poolConfig.asset1limits.limit0, + limit1: config.poolConfig.asset1limits.limit1, + limitGlobal: config.poolConfig.asset1limits.limitGlobal, + flags: Config.tradingLimitConfigToFlag(config.poolConfig.asset1limits) + }) + ) + ) + ); + } + + /** + * @notice This function creates the transactions to configure the Breakerbox. + */ + function proposal_configureBreakerBox(PUSOConfig.PUSO memory config) private { + // Add the new rate feed to breaker box + transactions.push( + ICeloGovernance.Transaction( + 0, + breakerBox, + abi.encodeWithSelector(BreakerBox(0).addRateFeeds.selector, Arrays.addresses(config.rateFeedConfig.rateFeedID)) + ) + ); + + Config.RateFeed memory rateFeed = config.rateFeedConfig; + + // Enable Median Delta Breaker for rate feed + if (rateFeed.medianDeltaBreaker0.enabled) { + if (MedianDeltaBreaker(medianDeltaBreaker).medianRatesEMA(rateFeed.rateFeedID) != 0) { + transactions.push( + ICeloGovernance.Transaction( + 0, + medianDeltaBreaker, + abi.encodeWithSelector(MedianDeltaBreaker(0).resetMedianRateEMA.selector, rateFeed.rateFeedID) + ) + ); + } + + transactions.push( + ICeloGovernance.Transaction( + 0, + breakerBox, + abi.encodeWithSelector(BreakerBox(0).toggleBreaker.selector, medianDeltaBreaker, rateFeed.rateFeedID, true) + ) + ); + } + } + + /** + * @notice This function creates the transactions to configure the Median Delta Breaker. + */ + function proposal_configureMedianDeltaBreaker(PUSOConfig.PUSO memory config) private { + // Set the cooldown time + transactions.push( + ICeloGovernance.Transaction( + 0, + medianDeltaBreaker, + abi.encodeWithSelector( + MedianDeltaBreaker(0).setCooldownTime.selector, + Arrays.addresses(config.rateFeedConfig.rateFeedID), + Arrays.uints(config.rateFeedConfig.medianDeltaBreaker0.cooldown) + ) + ) + ); + // Set the rate change threshold + transactions.push( + ICeloGovernance.Transaction( + 0, + medianDeltaBreaker, + abi.encodeWithSelector( + MedianDeltaBreaker(0).setRateChangeThresholds.selector, + Arrays.addresses(config.rateFeedConfig.rateFeedID), + Arrays.uints(config.rateFeedConfig.medianDeltaBreaker0.threshold.unwrap()) + ) + ) + ); + + // Set the smoothing factor + transactions.push( + ICeloGovernance.Transaction( + 0, + medianDeltaBreaker, + abi.encodeWithSelector( + MedianDeltaBreaker(0).setSmoothingFactor.selector, + config.rateFeedConfig.rateFeedID, + config.rateFeedConfig.medianDeltaBreaker0.smoothingFactor + ) + ) + ); + } + + /** + * @notice Helper function to get the exchange ID for a pool. + */ + function getExchangeId(address asset0, address asset1, bool isConstantSum) internal view returns (bytes32) { + return + keccak256( + abi.encodePacked( + IERC20Metadata(asset0).symbol(), + IERC20Metadata(asset1).symbol(), + isConstantSum ? "ConstantSum" : "ConstantProduct" + ) + ); + } +} diff --git a/script/upgrades/PUSO/PUSOChecks.base.sol b/script/upgrades/PUSO/PUSOChecks.base.sol new file mode 100644 index 00000000..d80a72fb --- /dev/null +++ b/script/upgrades/PUSO/PUSOChecks.base.sol @@ -0,0 +1,80 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.5.13; +pragma experimental ABIEncoderV2; + +import { console2 as console } from "forge-std/Script.sol"; +import { Test } from "forge-std/Test.sol"; +import { PrecompileHandler } from "celo-foundry/PrecompileHandler.sol"; +import { IERC20 } from "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; + +import { GovernanceScript } from "script/utils/Script.sol"; +import { Chain } from "script/utils/Chain.sol"; +import { Arrays } from "script/utils/Arrays.sol"; + +import { FixidityLib } from "mento-core-2.3.1/common/FixidityLib.sol"; +import { IBiPoolManager } from "mento-core-2.3.1/interfaces/IBiPoolManager.sol"; +import { IBroker } from "mento-core-2.3.1/interfaces/IBroker.sol"; +import { IERC20Metadata } from "mento-core-2.3.1/common/interfaces/IERC20Metadata.sol"; +import { IRegistry } from "mento-core-2.3.1/common/interfaces/IRegistry.sol"; + +import { IFeeCurrencyWhitelist } from "script/interfaces/IFeeCurrencyWhitelist.sol"; + +import { BiPoolManagerProxy } from "mento-core-2.3.1/proxies/BiPoolManagerProxy.sol"; +import { StableTokenPHPProxy } from "mento-core-2.3.1/legacy/proxies/StableTokenPHPProxy.sol"; +import { Broker } from "mento-core-2.3.1/swap/Broker.sol"; +import { BiPoolManager } from "mento-core-2.3.1/swap/BiPoolManager.sol"; +import { Exchange } from "mento-core-2.3.1/legacy/Exchange.sol"; +import { TradingLimits } from "mento-core-2.3.1/libraries/TradingLimits.sol"; +import { BreakerBox } from "mento-core-2.3.1/oracles/BreakerBox.sol"; +import { SortedOracles } from "mento-core-2.3.1/common/SortedOracles.sol"; +import { Reserve } from "mento-core-2.3.1/swap/Reserve.sol"; +import { MedianDeltaBreaker } from "mento-core-2.3.1/oracles/breakers/MedianDeltaBreaker.sol"; +import { ValueDeltaBreaker } from "mento-core-2.3.1/oracles/breakers/ValueDeltaBreaker.sol"; +import { ConstantSumPricingModule } from "mento-core-2.3.1/swap/ConstantSumPricingModule.sol"; +import { SafeMath } from "celo-foundry/test/SafeMath.sol"; +import { Proxy } from "mento-core-2.3.1/common/Proxy.sol"; + +import { PUSOConfig, Config } from "./Config.sol"; + +contract PUSOChecksBase is GovernanceScript, Test { + using TradingLimits for TradingLimits.Config; + using FixidityLib for FixidityLib.Fraction; + using SafeMath for uint256; + + address public cUSD; + address payable public PUSO; + address public governance; + address public medianDeltaBreaker; + address payable sortedOraclesProxy; + address public constantSum; + address payable biPoolManagerProxy; + address public reserve; + address public broker; + address public breakerBox; + address public validators; + + function setUp() public { + // Load addresses from deployments + contracts.load("MU01-00-Create-Proxies", "latest"); // BrokerProxy & BiPoolProxy + contracts.load("MU01-01-Create-Nonupgradeable-Contracts", "latest"); // Pricing Modules + contracts.load("MU03-01-Create-Nonupgradeable-Contracts", "latest"); // Latest BreakerBox and MedianDeltaBreaker + contracts.load("MU04-00-Create-Implementations", "latest"); // First StableTokenV2 deployment + contracts.loadSilent("PUSO-00-Create-Proxies", "latest"); + + // Get proxy addresses + PUSO = contracts.deployed("StableTokenPHPProxy"); + cUSD = contracts.celoRegistry("StableToken"); + reserve = contracts.celoRegistry("Reserve"); + broker = contracts.celoRegistry("Broker"); + governance = contracts.celoRegistry("Governance"); + sortedOraclesProxy = address(uint160(contracts.celoRegistry("SortedOracles"))); + + // Get Deployment addresses + breakerBox = contracts.deployed("BreakerBox"); + medianDeltaBreaker = contracts.deployed("MedianDeltaBreaker"); + constantSum = contracts.deployed("ConstantSumPricingModule"); + biPoolManagerProxy = contracts.deployed("BiPoolManagerProxy"); + + validators = contracts.celoRegistry("Validators"); + } +} diff --git a/script/upgrades/PUSO/PUSOChecks.sol b/script/upgrades/PUSO/PUSOChecks.sol new file mode 100644 index 00000000..52e67381 --- /dev/null +++ b/script/upgrades/PUSO/PUSOChecks.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.5.13; + +import { Test } from "forge-std/Test.sol"; + +import { PUSOChecksVerify } from "./PUSOChecks.verify.sol"; +import { PUSOChecksSwap } from "./PUSOChecks.swap.sol"; + +contract PUSOChecks is Test { + function run() public { + new PUSOChecksVerify().run(); + new PUSOChecksSwap().run(); + } +} diff --git a/script/upgrades/PUSO/PUSOChecks.swap.sol b/script/upgrades/PUSO/PUSOChecks.swap.sol new file mode 100644 index 00000000..4e5dbab6 --- /dev/null +++ b/script/upgrades/PUSO/PUSOChecks.swap.sol @@ -0,0 +1,192 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.5.13; +pragma experimental ABIEncoderV2; + +import { console2 as console } from "forge-std/Script.sol"; + +import { PrecompileHandler } from "celo-foundry/PrecompileHandler.sol"; + +import { Contracts } from "script/utils/Contracts.sol"; + +import { IERC20 } from "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; +import { IStableTokenV2 } from "mento-core-2.3.1/interfaces/IStableTokenV2.sol"; + +import { FixidityLib } from "mento-core-2.3.1/common/FixidityLib.sol"; + +import { Broker } from "mento-core-2.3.1/swap/Broker.sol"; +import { IBiPoolManager } from "mento-core-2.3.1/interfaces/IBiPoolManager.sol"; +import { BiPoolManager } from "mento-core-2.3.1/swap/BiPoolManager.sol"; +import { SortedOracles } from "mento-core-2.3.1/common/SortedOracles.sol"; +import { BreakerBox } from "mento-core-2.3.1/oracles/BreakerBox.sol"; + +import { PUSOChecksBase } from "./PUSOChecks.base.sol"; +import { PUSOConfig, Config } from "./Config.sol"; + +contract PUSOChecksSwap is PUSOChecksBase { + using FixidityLib for FixidityLib.Fraction; + using Contracts for Contracts.Cache; + + constructor() public { + new PrecompileHandler(); + setUp(); + } + + function run() public { + PUSOConfig.PUSO memory config = PUSOConfig.get(contracts); + + console.log("\n== Starting PUSO test swaps: =="); + + console.log( + "PHPUSD tradingMode: ", + BreakerBox(breakerBox).getRateFeedTradingMode(config.rateFeedConfig.rateFeedID) + ); + + swapPUSOtoCUSD(config); + swapCUSDToPUSO(config); + } + + // *** Swap Checks *** // + + function swapPUSOtoCUSD(PUSOConfig.PUSO memory config) internal { + bytes32 exchangeID = getExchangeId( + config.poolConfig.asset0, + config.poolConfig.asset1, + config.poolConfig.isConstantSum + ); + address trader = vm.addr(5); + address tokenIn = PUSO; + address tokenOut = cUSD; + uint256 amountIn = 100e18; + + vm.startPrank(broker); + IStableTokenV2(tokenIn).mint(trader, amountIn); + vm.stopPrank(); + + console.log("======================== PUSO -> cUSD ====================================\r\n"); + + console.log("=========================== BEFORE SWAP ===================================="); + console.log("============================================================================"); + console.log("PUSO balance: ", IERC20(PUSO).balanceOf(trader)); + console.log("cUSD balance: ", IERC20(cUSD).balanceOf(trader)); + console.log("============================================================================\r\n"); + + testAndPerformConstantSumSwap( + exchangeID, + trader, + tokenIn, + tokenOut, + amountIn, + config.poolConfig.referenceRateFeedID + ); + + console.log("============================ AFTER SWAP ===================================="); + console.log("============================================================================"); + console.log("PUSO balance: ", IERC20(PUSO).balanceOf(trader)); + console.log("cUSD balance: ", IERC20(cUSD).balanceOf(trader)); + console.log("============================================================================\r\n"); + console.log("🟢 PUSO -> cUSD swap successful 🚀"); + } + + function swapCUSDToPUSO(PUSOConfig.PUSO memory config) internal { + bytes32 exchangeID = getExchangeId( + config.poolConfig.asset0, + config.poolConfig.asset1, + config.poolConfig.isConstantSum + ); + address trader = vm.addr(5); + address tokenIn = cUSD; + address tokenOut = PUSO; + uint256 amountIn = 100e18; + + deal(tokenIn, trader, amountIn); + + console.log("\r======================== cUSD -> PUSO ====================================\r\n"); + + console.log("=========================== BEFORE SWAP ===================================="); + console.log("============================================================================"); + console.log("cUSD balance: ", IERC20(cUSD).balanceOf(trader)); + console.log("PUSO balance: ", IERC20(PUSO).balanceOf(trader)); + console.log("============================================================================\r\n"); + + testAndPerformConstantSumSwap( + exchangeID, + trader, + tokenIn, + tokenOut, + amountIn, + config.poolConfig.referenceRateFeedID + ); + + console.log("============================ AFTER SWAP ===================================="); + console.log("============================================================================"); + console.log("cUSD balance: ", IERC20(cUSD).balanceOf(trader)); + console.log("PUSO balance: ", IERC20(PUSO).balanceOf(trader)); + console.log("============================================================================\r\n"); + + console.log("🟢 cUSD -> PUSO swap successful 🚀"); + } + + // *** Helper Functions *** // + + function testAndPerformConstantSumSwap( + bytes32 exchangeID, + address trader, + address tokenIn, + address tokenOut, + uint256 amountIn, + address rateFeedID + ) internal { + uint256 amountOut = Broker(broker).getAmountOut(biPoolManagerProxy, exchangeID, tokenIn, tokenOut, amountIn); + + // This is the PHP to USD rate + (uint256 numerator, uint256 denominator) = SortedOracles(sortedOraclesProxy).medianRate(rateFeedID); + uint256 estimatedAmountOut; + + // If asset 0 is cUSD flip the rate] + if (tokenIn == cUSD) { + (numerator, denominator) = (denominator, numerator); + } + + estimatedAmountOut = FixidityLib + .newFixed(amountIn) + .multiply(FixidityLib.wrap(numerator).divide(FixidityLib.wrap(denominator))) + .fromFixed(); + + console.log("\r=========================== AMOUNTS ===================================="); + console.log("============================================================================"); + console.log("Amount In: ", amountIn); + console.log("Broker amount out(Broker.getAmountOut)", amountOut); + console.log("Estimated amount out(amountIn * num/dennom): ", estimatedAmountOut); + + assertApproxEqRel(amountOut, estimatedAmountOut, 25 * 1e15 /* 0.025 or 2.5% */); + doSwapIn(exchangeID, trader, tokenIn, tokenOut, amountIn, amountOut); + } + + function doSwapIn( + bytes32 exchangeID, + address trader, + address tokenIn, + address tokenOut, + uint256 amountIn, + uint256 amountOut + ) internal { + uint256 beforeBuyingTokenOut = IERC20(tokenOut).balanceOf(trader); + uint256 beforeSellingTokenIn = IERC20(tokenIn).balanceOf(trader); + + vm.startPrank(trader); + IERC20(tokenIn).approve(address(broker), amountIn); + uint256 actualAmountOut = Broker(broker).swapIn( + biPoolManagerProxy, + exchangeID, + tokenIn, + tokenOut, + amountIn, + amountOut + ); + console.log("Actual amount out: ", actualAmountOut); + console.log("============================================================================\r\n"); + assertEq(IERC20(tokenOut).balanceOf(trader), beforeBuyingTokenOut + amountOut); + assertEq(IERC20(tokenIn).balanceOf(trader), beforeSellingTokenIn - amountIn); + vm.stopPrank(); + } +} diff --git a/script/upgrades/PUSO/PUSOChecks.verify.sol b/script/upgrades/PUSO/PUSOChecks.verify.sol new file mode 100644 index 00000000..3cdf2761 --- /dev/null +++ b/script/upgrades/PUSO/PUSOChecks.verify.sol @@ -0,0 +1,437 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.5.13; +pragma experimental ABIEncoderV2; + +import { console2 as console } from "forge-std/Script.sol"; +import { Arrays } from "script/utils/Arrays.sol"; + +import { IFeeCurrencyWhitelist } from "script/interfaces/IFeeCurrencyWhitelist.sol"; +import { ICeloGovernance } from "script/interfaces/ICeloGovernance.sol"; +import { TradingLimits } from "mento-core-2.3.1/libraries/TradingLimits.sol"; +import { StableTokenPHPProxy } from "mento-core-2.3.1/legacy/proxies/StableTokenPHPProxy.sol"; + +import { IRegistry } from "mento-core-2.3.1/common/interfaces/IRegistry.sol"; +import { IBiPoolManager } from "mento-core-2.3.1/interfaces/IBiPoolManager.sol"; +import { IERC20Metadata } from "mento-core-2.3.1/common/interfaces/IERC20Metadata.sol"; +import { IStableTokenV2 } from "mento-core-2.3.1/interfaces/IStableTokenV2.sol"; + +import { Reserve } from "mento-core-2.3.1/swap/Reserve.sol"; +import { Ownable } from "openzeppelin-solidity/contracts/ownership/Ownable.sol"; +import { Proxy } from "mento-core-2.3.1/common/Proxy.sol"; +import { BiPoolManager } from "mento-core-2.3.1/swap/BiPoolManager.sol"; +import { BreakerBox } from "mento-core-2.3.1/oracles/BreakerBox.sol"; +import { MedianDeltaBreaker } from "mento-core-2.3.1/oracles/breakers/MedianDeltaBreaker.sol"; + +import { PUSOChecksBase } from "./PUSOChecks.base.sol"; +import { PUSOConfig, Config } from "./Config.sol"; + +/** + * @title IBrokerWithCasts + * @notice Interface for Broker with tuple -> struct casting + * @dev This is used to access the internal trading limits + * config as a struct as opposed to a tuple. + */ +interface IBrokerWithCasts { + function tradingLimitsConfig(bytes32 id) external view returns (TradingLimits.Config memory); +} + +contract PUSOChecksVerify is PUSOChecksBase { + using TradingLimits for TradingLimits.Config; + + uint256 constant PRE_EXISTING_POOLS = 14; + + ICeloGovernance celoGovernance; + + constructor() public { + setUp(); + celoGovernance = ICeloGovernance(governance); + } + + function run() public { + PUSOConfig.PUSO memory config = PUSOConfig.get(contracts); + console.log("\nStarting PUSO checks:"); + + console.log("\n== Rate feeds =="); + console.log(" PUSOUSD: %s", config.rateFeedConfig.rateFeedID); + + verifyToken(config); + verifyExchange(config); + verifyCircuitBreaker(config); + } + + function verifyToken(PUSOConfig.PUSO memory config) internal { + console.log("\n== Verifying Token Config Transactions =="); + verifyOwner(); + verifyPUSOStableToken(config); + verifyPUSOAddedToReserve(); + verifyPUSOAddedToFeeCurrencyWhitelist(); + verifyConstitution(); + } + + function verifyOwner() internal view { + require(Proxy(PUSO)._getOwner() == governance, "StableTokenPHP Proxy ownership not transferred to governance"); + console.log("🟢 PUSO proxy ownership transferred to governance"); + } + + function verifyPUSOStableToken(PUSOConfig.PUSO memory config) internal { + StableTokenPHPProxy stableTokenPHPProxy = StableTokenPHPProxy(PUSO); + address stableTokenV2 = contracts.deployed("StableTokenV2"); + + address PUSOImplementation = stableTokenPHPProxy._getImplementation(); + if (PUSOImplementation != stableTokenV2) { + console.log( + "The implementation from StableTokenPHPProxy(%s): %s does not match the deployed StableTokenV2 address: %s.", + PUSO, + PUSOImplementation, + stableTokenV2 + ); + revert("StableTokenPHPProxy does not point to StableTokenV2 deployed implementation. See logs."); + } + console.log("🟢 StableTokenPHPProxy has the correct implementation address"); + + // ----- verify initialization parameters ----- + IStableTokenV2 PUSOToken = IStableTokenV2(PUSO); + IERC20Metadata PUSOTokenMetadata = IERC20Metadata(PUSO); + + assertEq(PUSOTokenMetadata.name(), config.stableTokenConfig.name, "❗️❌ PUSO name not set correctly!"); + assertEq(PUSOTokenMetadata.symbol(), config.stableTokenConfig.symbol, "❗️❌ PUSO symbol not set correctly!"); + assertEq(PUSOToken.broker(), broker, "❗️❌ PUSO broker not set correctly!"); + assertEq(PUSOToken.validators(), validators, "❗️❌ PUSO validators not set correctly!"); + + // no pre-mint + assertEq(PUSOToken.totalSupply(), 0, "❗️❌ PUSO pre-minted tokens!"); + } + + function verifyPUSOAddedToReserve() internal view { + if (!Reserve(address(uint160(reserve))).isStableAsset(PUSO)) { + revert("PUSO has not been added to the reserve."); + } + + console.log("🟢 PUSO has been added to the reserve"); + } + + function verifyPUSOAddedToFeeCurrencyWhitelist() internal view { + address[] memory feeCurrencyWhitelist = IFeeCurrencyWhitelist(contracts.celoRegistry("FeeCurrencyWhitelist")) + .getWhitelist(); + + if (!Arrays.contains(feeCurrencyWhitelist, PUSO)) { + revert("PUSO has not been added to the fee currency whitelist."); + } + + console.log("🟢 PUSO has been added to the fee currency whitelist"); + } + + function verifyConstitution() internal view { + // These are now non config static values, but we can still check them to make sure they are set correctly + bytes4[] memory constitutionFunctionSelectors = Config.getCeloStableConstitutionSelectors(); + uint256[] memory constitutionThresholds = Config.getCeloStableConstitutionThresholds(); + + for (uint256 i = 0; i < constitutionFunctionSelectors.length; i++) { + bytes4 selector = constitutionFunctionSelectors[i]; + uint256 expectedValue = constitutionThresholds[i]; + + checkConstitutionParam(selector, expectedValue); + } + + console.log("🟢 Constitution params configured correctly"); + } + + function checkConstitutionParam(bytes4 functionSelector, uint256 expectedValue) internal view { + uint256 actualConstitutionValue = celoGovernance.getConstitution(PUSO, functionSelector); + + if (actualConstitutionValue != expectedValue) { + console.log( + "The constitution value for function selector: %s is not set correctly. Expected: %s, Actual: %s", + bytes4ToStr(functionSelector), + expectedValue, + actualConstitutionValue + ); + revert("Constitution value not set correctly. See logs."); + } + } + + function verifyExchange(PUSOConfig.PUSO memory config) internal view { + console.log("\n== Verifying exchanges =="); + + verifyPoolExchange(config); + verifyPoolConfig(config); + verifyTradingLimits(config); + } + + function verifyPoolExchange(PUSOConfig.PUSO memory config) internal view { + bytes32[] memory exchanges = BiPoolManager(biPoolManagerProxy).getExchangeIds(); + + // check configured pools against the config + require( + exchanges.length == PRE_EXISTING_POOLS + 1, + "Number of expected pools does not match the number of deployed pools." + ); + + bytes32 exchangeId = getExchangeId( + config.poolConfig.asset0, + config.poolConfig.asset1, + config.poolConfig.isConstantSum + ); + + IBiPoolManager.PoolExchange memory deployedPool = BiPoolManager(biPoolManagerProxy).getPoolExchange(exchangeId); + Config.Pool memory expectedPoolConfig = config.poolConfig; + + // verify asset0 of the deployed pool against the config + if (deployedPool.asset0 != expectedPoolConfig.asset0) { + console.log( + "The asset0 of deployed pool: %s does not match the expected asset0: %s.", + deployedPool.asset0, + expectedPoolConfig.asset0 + ); + revert("asset0 of pool does not match the expected asset0. See logs."); + } + + // verify asset1 of the deployed pool against the config + if (deployedPool.asset1 != expectedPoolConfig.asset1) { + console.log( + "The asset1 of deployed pool: %s does not match the expected asset1: %s.", + deployedPool.asset1, + expectedPoolConfig.asset1 + ); + revert("asset1 of pool does not match the expected asset1. See logs."); + } + + // Ensure the pricing module is the constant product + if (address(deployedPool.pricingModule) != constantSum) { + console.log( + "The pricing module of deployed pool: %s does not match the expected pricing module: %s.", + address(deployedPool.pricingModule), + constantSum + ); + revert("pricing module of pool does not match the expected pricing module. See logs."); + } + + console.log("🟢 PoolExchange has correct assets and pricing 🤘🏼"); + } + + function verifyPoolConfig(PUSOConfig.PUSO memory config) internal view { + bytes32 exchangeId = getExchangeId( + config.poolConfig.asset0, + config.poolConfig.asset1, + config.poolConfig.isConstantSum + ); + IBiPoolManager.PoolExchange memory deployedPool = BiPoolManager(biPoolManagerProxy).getPoolExchange(exchangeId); + Config.Pool memory expectedPoolConfig = config.poolConfig; + + if (deployedPool.config.spread.unwrap() != expectedPoolConfig.spread.unwrap()) { + console.log( + "The spread of deployed pool: %s does not match the expected spread: %s.", + deployedPool.config.spread.unwrap(), + expectedPoolConfig.spread.unwrap() + ); + revert("spread of pool does not match the expected spread. See logs."); + } + + if (deployedPool.config.referenceRateFeedID != expectedPoolConfig.referenceRateFeedID) { + console.log( + "The referenceRateFeedID of deployed pool: %s does not match the expected referenceRateFeedID: %s.", + deployedPool.config.referenceRateFeedID, + expectedPoolConfig.referenceRateFeedID + ); + revert("referenceRateFeedID of pool does not match the expected referenceRateFeedID. See logs."); + } + + if (deployedPool.config.minimumReports != expectedPoolConfig.minimumReports) { + console.log( + "The minimumReports of deployed pool: %s does not match the expected minimumReports: %s.", + deployedPool.config.minimumReports, + expectedPoolConfig.minimumReports + ); + revert("minimumReports of pool does not match the expected minimumReports. See logs."); + } + + if (deployedPool.config.referenceRateResetFrequency != expectedPoolConfig.referenceRateResetFrequency) { + console.log( + "The referenceRateResetFrequency of deployed pool: %s does not match the expected: %s.", + deployedPool.config.referenceRateResetFrequency, + expectedPoolConfig.referenceRateResetFrequency + ); + revert("referenceRateResetFrequency of pool does not match the expected referenceRateResetFrequency. See logs."); + } + + if (deployedPool.config.stablePoolResetSize != expectedPoolConfig.stablePoolResetSize) { + console.log( + "The stablePoolResetSize of deployed pool: %s does not match the expected stablePoolResetSize: %s.", + deployedPool.config.stablePoolResetSize, + expectedPoolConfig.stablePoolResetSize + ); + revert("stablePoolResetSize of pool does not match the expected stablePoolResetSize. See logs."); + } + + console.log("🟢 Pool config is correct🤘🏼"); + } + + function verifyTradingLimits(PUSOConfig.PUSO memory config) internal view { + IBrokerWithCasts _broker = IBrokerWithCasts(address(broker)); + + bytes32 exchangeId = getExchangeId( + config.poolConfig.asset0, + config.poolConfig.asset1, + config.poolConfig.isConstantSum + ); + IBiPoolManager.PoolExchange memory pool = BiPoolManager(biPoolManagerProxy).getPoolExchange(exchangeId); + Config.Pool memory expectedPoolConfig = config.poolConfig; + + bytes32 asset0LimitId = exchangeId ^ bytes32(uint256(uint160(pool.asset0))); + TradingLimits.Config memory asset0ActualLimit = _broker.tradingLimitsConfig(asset0LimitId); + + bytes32 asset1LimitId = exchangeId ^ bytes32(uint256(uint160(pool.asset1))); + TradingLimits.Config memory asset1ActualLimit = _broker.tradingLimitsConfig(asset1LimitId); + + checkTradingLimt(expectedPoolConfig.asset0limits, asset0ActualLimit); + checkTradingLimt(expectedPoolConfig.asset1limits, asset1ActualLimit); + + console.log("🟢 Trading limits set for all exchanges 🔒"); + } + + function checkTradingLimt( + Config.TradingLimit memory expectedTradingLimit, + TradingLimits.Config memory actualTradingLimit + ) internal view { + if (expectedTradingLimit.limit0 != actualTradingLimit.limit0) { + console.log("limit0 was not set as expected ❌"); + revert("Not all trading limits were configured correctly."); + } + if (expectedTradingLimit.limit1 != actualTradingLimit.limit1) { + console.log("limit1 was not set as expected ❌"); + revert("Not all trading limits were configured correctly."); + } + if (expectedTradingLimit.limitGlobal != actualTradingLimit.limitGlobal) { + console.log("limitGlobal was not set as expected ❌"); + revert("Not all trading limits were configured correctly."); + } + if (expectedTradingLimit.timeStep0 != actualTradingLimit.timestep0) { + console.log("timestep0 was not set as expected ❌"); + revert("Not all trading limits were configured correctly."); + } + if (expectedTradingLimit.timeStep1 != actualTradingLimit.timestep1) { + console.log("timestep1 was not set as expected ❌"); + revert("Not all trading limits were configured correctly."); + } + + uint8 tradingLimitFlags = Config.tradingLimitConfigToFlag(expectedTradingLimit); + if (tradingLimitFlags != actualTradingLimit.flags) { + console.log("flags were not set as expected ❌"); + revert("Not all trading limits were configured correctly."); + } + } + + /* ================================================================ */ + /* ======================== Circuit Breaker ======================= */ + /* ================================================================ */ + + function verifyCircuitBreaker(PUSOConfig.PUSO memory config) internal view { + console.log("\n== Checking circuit breaker =="); + + verifyBreakersAreEnabled(config); + verifyMedianDeltaBreaker(config); + } + + function verifyBreakersAreEnabled(PUSOConfig.PUSO memory config) internal view { + // verify that MedianDeltaBreaker is enabled + Config.RateFeed memory expectedRateFeedConfig = config.rateFeedConfig; + + if (expectedRateFeedConfig.medianDeltaBreaker0.enabled) { + bool medianDeltaEnabled = BreakerBox(breakerBox).isBreakerEnabled( + medianDeltaBreaker, + expectedRateFeedConfig.rateFeedID + ); + if (!medianDeltaEnabled) { + console.log("MedianDeltaBreaker not enabled for rate feed %s", expectedRateFeedConfig.rateFeedID); + revert("MedianDeltaBreaker not enabled for all rate feeds"); + } + } + console.log("🟢 Breakers enabled for the rate feed 🗳️"); + } + + function verifyMedianDeltaBreaker(PUSOConfig.PUSO memory config) internal view { + // verify that cooldown period, rate change threshold and smoothing factor were set correctly + Config.RateFeed memory expectedRateFeedConfig = config.rateFeedConfig; + + if (expectedRateFeedConfig.medianDeltaBreaker0.enabled) { + // Get the actual values from the deployed median delta breaker contract + uint256 cooldown = MedianDeltaBreaker(medianDeltaBreaker).getCooldown(expectedRateFeedConfig.rateFeedID); + uint256 rateChangeThreshold = MedianDeltaBreaker(medianDeltaBreaker).rateChangeThreshold( + expectedRateFeedConfig.rateFeedID + ); + uint256 smoothingFactor = MedianDeltaBreaker(medianDeltaBreaker).getSmoothingFactor( + expectedRateFeedConfig.rateFeedID + ); + + // verify cooldown period + verifyCooldownTime( + cooldown, + expectedRateFeedConfig.medianDeltaBreaker0.cooldown, + expectedRateFeedConfig.rateFeedID, + false + ); + + // verify rate change threshold + verifyRateChangeTheshold( + rateChangeThreshold, + expectedRateFeedConfig.medianDeltaBreaker0.threshold.unwrap(), + expectedRateFeedConfig.rateFeedID, + false + ); + + // verify smoothing factor + if (smoothingFactor != expectedRateFeedConfig.medianDeltaBreaker0.smoothingFactor) { + console.log("expected: %s", expectedRateFeedConfig.medianDeltaBreaker0.smoothingFactor); + console.log("got: %s", smoothingFactor); + console.log( + "MedianDeltaBreaker smoothing factor not set correctly for the rate feed: %s", + expectedRateFeedConfig.rateFeedID + ); + revert("MedianDeltaBreaker smoothing factor not set correctly for all rate feeds"); + } + } + console.log("🟢 MedianDeltaBreaker cooldown, rate change threshold and smoothing factor set correctly 🔒\r\n"); + } + + function verifyRateChangeTheshold( + uint256 currentThreshold, + uint256 expectedThreshold, + address rateFeedID, + bool isValueDeltaBreaker + ) internal view { + if (currentThreshold != expectedThreshold) { + if (isValueDeltaBreaker) { + console.log("ValueDeltaBreaker rate change threshold not set correctly for rate feed with id %s", rateFeedID); + revert("ValueDeltaBreaker rate change threshold not set correctly for rate feed"); + } + console.log("MedianDeltaBreaker rate change threshold not set correctly for rate feed %s", rateFeedID); + revert("MedianDeltaBreaker rate change threshold not set correctly for all rate feeds"); + } + } + + function verifyCooldownTime( + uint256 currentCoolDown, + uint256 expectedCoolDown, + address rateFeedID, + bool isValueDeltaBreaker + ) internal view { + if (currentCoolDown != expectedCoolDown) { + console.log("currentCoolDown: %s", currentCoolDown); + console.log("expectedCoolDown: %s", expectedCoolDown); + if (isValueDeltaBreaker) { + console.log("ValueDeltaBreaker cooldown not set correctly for rate feed with id %s", rateFeedID); + revert("ValueDeltaBreaker cooldown not set correctly for rate feed"); + } + console.log("MedianDeltaBreaker cooldown not set correctly for rate feed %s", rateFeedID); + revert("MedianDeltaBreaker cooldown not set correctly for all rate feeds"); + } + } + + function bytes4ToStr(bytes4 _bytes) public pure returns (string memory) { + bytes memory bytesArray = new bytes(4); + for (uint256 i; i < 4; i++) { + bytesArray[i] = _bytes[i]; + } + return string(bytesArray); + } +} diff --git a/script/upgrades/PUSO/deploy/PUSO-00-Create-Proxies.sol b/script/upgrades/PUSO/deploy/PUSO-00-Create-Proxies.sol new file mode 100644 index 00000000..f5e1d971 --- /dev/null +++ b/script/upgrades/PUSO/deploy/PUSO-00-Create-Proxies.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.5.13; + +import { Script } from "script/utils/Script.sol"; +import { Chain } from "script/utils/Chain.sol"; +import { console2 } from "forge-std/Script.sol"; + +import { StableTokenPHPProxy } from "mento-core-2.3.1/legacy/proxies/StableTokenPHPProxy.sol"; + +/* + yarn deploy -n -u PUSO -s PUSO-00-Create-Proxies.sol +*/ +contract PUSO_CreateProxies is Script { + function run() public { + address payable stableTokenPHPProxy; + address governance = contracts.celoRegistry("Governance"); + + vm.startBroadcast(Chain.deployerPrivateKey()); + { + stableTokenPHPProxy = address(new StableTokenPHPProxy()); + StableTokenPHPProxy(stableTokenPHPProxy)._transferOwnership(governance); + } + vm.stopBroadcast(); + + console2.log("----------"); + console2.log("StableTokenPHPProxy deployed at: ", stableTokenPHPProxy); + console2.log("StableTokenPHPProxy(%s) ownership transferred to %s", stableTokenPHPProxy, governance); + console2.log("----------"); + } +} From 62e97dfc06415485d308834ae6b1285585373943 Mon Sep 17 00:00:00 2001 From: chapati Date: Wed, 28 Aug 2024 17:17:53 +0200 Subject: [PATCH 2/2] MU07 - Chainlink Relayers (#206) --- .gitignore | 3 +- .gitmodules | 7 +- bin/{deploy.sh => cgp-deploy.sh} | 23 +- bin/cgp.sh | 5 +- bin/dev-script.sh | 32 +- bin/setup.sh | 10 +- bin/utils/etherscan.ts | 24 + bin/utils/sourcify.ts | 4 +- bin/verify-celoscan.ts | 43 +- .../42220/{MUGOV.json => run-MUGOV.json} | 0 .../ExecuteProposal.sol/44787/MUGOV.json | 841 ------------------ .../ExecuteProposal.sol/44787/run-MU07.json | 156 ++++ .../44787/{run-latest.json => run-MUGOV.json} | 0 .../42220/run-latest.json | 262 ++++++ .../44787/run-latest.json | 209 +++++ .../62320/run-latest.json | 209 +++++ .../42220/run-latest.json | 139 +++ .../44787/run-latest.json | 139 +++ .../62320/run-latest.json | 137 +++ broadcast/MU07.sol/44787/run-latest.json | 107 +++ broadcast/MU07.sol/62320/run-latest.json | 107 +++ .../42220/run-latest.json | 117 --- .../44787/run-latest.json | 117 --- .../62320/run-latest.json | 117 --- .../44787/run-PHPUSD.json | 67 ++ .../62320/run-CELOUSD.json | 67 ++ .../62320/run-PHPUSD.json | 67 ++ contracts/MockChainlinkAggregator.sol | 30 + foundry.toml | 1 + lib/forge-std-next | 2 +- lib/mento-core-2.4.0 | 1 - lib/mento-core-2.5.0 | 1 + package.json | 2 +- remappings.txt | 2 +- .../dev/dev-DeployMockChainlinkAggregator.sol | 29 + script/dev/dev-RelayerReport.sol | 47 + script/dev/dev-RelayerStatus.sol | 49 + .../dev-UpdateMockChainlinkAggregators.sol | 105 +++ script/upgrades/MU07/MU07.md | 14 + script/upgrades/MU07/MU07.sol | 182 ++++ script/upgrades/MU07/MU07Checks.sol | 94 ++ .../MU07-Deploy-ChainlinkRelayerFactory.sol | 53 ++ .../deploy/MU07-Deploy-ChainlinkRelayers.sol | 97 ++ .../PSO/deploy/PSO-00-Create-Proxies.sol | 30 - script/upgrades/dependencies.json | 12 +- script/utils/Script.sol | 4 + script/utils/mento/Oracles.sol | 49 + script/utils/mento/PassProposal.sol | 1 + script/utils/mento/SimulateUpgrade.sol | 2 +- 49 files changed, 2540 insertions(+), 1276 deletions(-) rename bin/{deploy.sh => cgp-deploy.sh} (50%) rename broadcast/ExecuteProposal.sol/42220/{MUGOV.json => run-MUGOV.json} (100%) delete mode 100644 broadcast/ExecuteProposal.sol/44787/MUGOV.json create mode 100644 broadcast/ExecuteProposal.sol/44787/run-MU07.json rename broadcast/ExecuteProposal.sol/44787/{run-latest.json => run-MUGOV.json} (100%) create mode 100644 broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/42220/run-latest.json create mode 100644 broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/44787/run-latest.json create mode 100644 broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/62320/run-latest.json create mode 100644 broadcast/MU07-Deploy-ChainlinkRelayers.sol/42220/run-latest.json create mode 100644 broadcast/MU07-Deploy-ChainlinkRelayers.sol/44787/run-latest.json create mode 100644 broadcast/MU07-Deploy-ChainlinkRelayers.sol/62320/run-latest.json create mode 100644 broadcast/MU07.sol/44787/run-latest.json create mode 100644 broadcast/MU07.sol/62320/run-latest.json delete mode 100644 broadcast/PSO-00-Create-Proxies.sol/42220/run-latest.json delete mode 100644 broadcast/PSO-00-Create-Proxies.sol/44787/run-latest.json delete mode 100644 broadcast/PSO-00-Create-Proxies.sol/62320/run-latest.json create mode 100644 broadcast/dev-DeployMockChainlinkAggregator.sol/44787/run-PHPUSD.json create mode 100644 broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-CELOUSD.json create mode 100644 broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-PHPUSD.json create mode 100644 contracts/MockChainlinkAggregator.sol delete mode 160000 lib/mento-core-2.4.0 create mode 160000 lib/mento-core-2.5.0 create mode 100644 script/dev/dev-DeployMockChainlinkAggregator.sol create mode 100644 script/dev/dev-RelayerReport.sol create mode 100644 script/dev/dev-RelayerStatus.sol create mode 100644 script/dev/dev-UpdateMockChainlinkAggregators.sol create mode 100644 script/upgrades/MU07/MU07.md create mode 100644 script/upgrades/MU07/MU07.sol create mode 100644 script/upgrades/MU07/MU07Checks.sol create mode 100644 script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayerFactory.sol create mode 100644 script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayers.sol delete mode 100644 script/upgrades/PSO/deploy/PSO-00-Create-Proxies.sol create mode 100644 script/utils/mento/Oracles.sol diff --git a/.gitignore b/.gitignore index 8ffe882b..a88ddc9f 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,8 @@ yarn-error.log* # broadcasts !/broadcast -/broadcast/Dev-* +/broadcast/dev-* +!/broadcast/dev-DeployMockChainlinkAggregator.sol/ !/broadcast/ExecuteProposal* /broadcast/PassProposal* /broadcast/QueueProposal* diff --git a/.gitmodules b/.gitmodules index d6e2b022..0489317e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,6 +16,9 @@ [submodule "lib/mento-core-2.3.1"] path = lib/mento-core-2.3.1 url = https://github.com/mento-protocol/mento-core -[submodule "lib/mento-core-2.4.0"] - path = lib/mento-core-2.4.0 +[submodule "lib/mento-core-develop"] + path = lib/mento-core-develop + url = https://github.com/mento-protocol/mento-core +[submodule "lib/mento-core-2.5.0"] + path = lib/mento-core-2.5.0 url = https://github.com/mento-protocol/mento-core diff --git a/bin/deploy.sh b/bin/cgp-deploy.sh similarity index 50% rename from bin/deploy.sh rename to bin/cgp-deploy.sh index 8d4fc4ac..9b70e640 100755 --- a/bin/deploy.sh +++ b/bin/cgp-deploy.sh @@ -2,11 +2,11 @@ ############################################################################## # Script for running all deployment tasks for a protocol upgrade -# Usage: ./bin/deploy.sh +# Usage: ./bin/cgp-deploy.sh # -n -- network to submit the proposal to # -u -- name of the upgrade (MU01) # -s -- name of the script (optional) -# Example: ./bin/deploy.sh -n baklava -u MU01 +# Example: ./bin/cgp-deploy.sh -n baklava -u MU01 ############################################################################## source "$(dirname "$0")/setup.sh" @@ -27,19 +27,24 @@ parse_network "$NETWORK" parse_upgrade "$UPGRADE" if ! [ -z "$SCRIPT" ]; then # Pick the script by name - SCRIPT_FILE="script/upgrades/$UPGRADE/deploy/$SCRIPT" - if test -f "$SCRIPT_FILE"; then - echo "🔎 $SCRIPT_FILE found" - forge_script "$SCRIPT" "$SCRIPT_FILE" "$(forge_skip $UPGRADE)" + DEPLOY_SCRIPT="script/upgrades/$UPGRADE/deploy/$SCRIPT" + if test -f "$DEPLOY_SCRIPT"; then + echo "🔎 $DEPLOY_SCRIPT found" + echo "==================================================================" + echo " Running $(basename $DEPLOY_SCRIPT)" + echo "==================================================================" + forge script $(forge_skip $UPGRADE) --rpc-url $RPC_URL --legacy --verify --verifier sourcify --broadcast $DEPLOY_SCRIPT exit 0 else - echo "🚨 Script $SCRIPT not found in $SCRIPT_FILE" + echo "🚨 Script $SCRIPT not found in $DEPLOY_SCRIPT" exit 1 fi fi export FOUNDRY_PROFILE=$NETWORK-deployment for DEPLOY_SCRIPT in $UPGRADE_DIR/deploy/*; do - DEPLOY_FILE=$(basename $DEPLOY_SCRIPT) - forge_script "$DEPLOY_FILE" "$DEPLOY_SCRIPT" "$(forge_skip $UPGRADE)" + echo "==================================================================" + echo " Running $(basename $DEPLOY_SCRIPT)" + echo "==================================================================" + forge script $(forge_skip $UPGRADE) --rpc-url $RPC_URL --legacy --verify --verifier sourcify --broadcast $DEPLOY_SCRIPT done diff --git a/bin/cgp.sh b/bin/cgp.sh index c24e6d35..d23c0e74 100755 --- a/bin/cgp.sh +++ b/bin/cgp.sh @@ -53,8 +53,9 @@ else fi if [ "$SIMULATE" = true ] ; then - echo "🥸 Simulating $CONTRACT" - forge script $(forge_skip $UPGRADE) --rpc-url $RPC_URL --skip .dev.sol --sig "run(string)" $UTILS_DIR/SimulateUpgrade.sol:SimulateUpgrade $CONTRACT + yarn build -u $UPGRADE + echo "🥸 Simulating $CONTRACT" + forge script $(forge_skip $UPGRADE) --rpc-url $RPC_URL --sig "run(string)" $UTILS_DIR/SimulateUpgrade.sol:SimulateUpgrade $CONTRACT else echo "🔥 Submitting $CONTRACT" confirm_if_celo "$NETWORK" diff --git a/bin/dev-script.sh b/bin/dev-script.sh index a7143c5a..315e60e6 100755 --- a/bin/dev-script.sh +++ b/bin/dev-script.sh @@ -4,8 +4,9 @@ # Script for running all deployment tasks for a protocol upgrade # Usage: ./bin/dev-script.sh # -n -- network to submit the proposal to -# -i -- index of the script (optional) -# -s -- name of the script (optional) +# -i -- index of the script (optional) +# -s -- name of the script (optional) +# -r -- signature of the run function (optional) # Example: # To pick the script: # ./bin/deploy.sh -n baklava @@ -20,22 +21,30 @@ source "$(dirname "$0")/setup.sh" NETWORK="" INDEX="" SCRIPT_NAME="" -while getopts n:i:s: flag +RUN_SIGNATURE="run()" +while getopts n:i:s:r: flag do case "${flag}" in n) NETWORK=${OPTARG};; i) INDEX=${OPTARG};; s) SCRIPT_NAME=${OPTARG};; + r) RUN_SIGNATURE=${OPTARG};; esac done +shift "$((OPTIND - 1))" + parse_network "$NETWORK" if ! [ -z "$SCRIPT_NAME" ]; then # Pick the script by name SCRIPT_FILE="script/dev/dev-$SCRIPT_NAME.sol" if test -f "$SCRIPT_FILE"; then echo "🔎 $SCRIPT_FILE found" - forge_script "$SCRIPT_NAME" "$SCRIPT_FILE" $(forge_skip "dev") + echo "==================================================================" + echo " Running $SCRIPT_NAME" + echo "==================================================================" + confirm_if_celo "$NETWORK" + forge script $(forge_skip "dev") --rpc-url $RPC_URL --legacy --verify --verifier sourcify --broadcast -s $RUN_SIGNATURE $SCRIPT_FILE "$@" exit 0 else echo "🚨 Script $SCRIPT_NAME not found in $SCRIPT_FILE" @@ -49,8 +58,12 @@ if ! [ -z "$INDEX" ]; then # Pick the script by index echo "🚨 Index $INDEX is out of range or invalid" exit 1 fi - SCRIPT=$(ls script/dev/* | head -n $INDEX | tail -n 1) - forge_script "$(basename $SCRIPT .sol | sed 's/dev-//g')" "$SCRIPT" $(forge_skip "dev") + SCRIPT_FILE=$(ls script/dev/* | head -n $INDEX | tail -n 1) + echo "==================================================================" + echo " Running $(basename SCRIPT_FILE)" + echo "==================================================================" + confirm_if_celo "$NETWORK" + forge script $(forge_skip "dev") --rpc-url $RPC_URL --legacy --verify --verifier sourcify --broadcast -s $RUN_SIGNATURE $SCRIPT_FILE "$@" exit 0 fi @@ -64,8 +77,11 @@ do SCRIPT_FILE="script/dev/dev-$SCRIPT.sol" if test -f "$SCRIPT_FILE"; then echo "🔎 $SCRIPT_FILE found" - forge_script "$SCRIPT" "$SCRIPT_FILE" "$(forge_skip "dev")" - exit 0 + echo "==================================================================" + echo " Running $(basename SCRIPT_FILE)" + echo "==================================================================" + confirm_if_celo "$NETWORK" + forge script $(forge_skip "dev") --rpc-url $RPC_URL --legacy --verify --verifier sourcify --broadcast $SCRIPT_FILE else echo "Invalid option, press Ctrl+C to exit" fi diff --git a/bin/setup.sh b/bin/setup.sh index 0b2952d6..42a198fc 100644 --- a/bin/setup.sh +++ b/bin/setup.sh @@ -81,14 +81,6 @@ forge_skip () { # $1: target fi } -forge_script () { # $1: script name, $2: script file path - echo "==================================================================" - echo "🏃🏼 Running $1" - echo "==================================================================" - confirm_if_celo "$NETWORK" - forge script $3 --rpc-url $RPC_URL --legacy --broadcast --verify --verifier sourcify $2 -} - confirm_if_celo () { # $1: network if [ "celo" = $1 ]; then while true; do @@ -109,4 +101,4 @@ countdown() { # $1: seconds echo -ne "$i seconds remaining...\033[0K\r" sleep 1 done -} \ No newline at end of file +} diff --git a/bin/utils/etherscan.ts b/bin/utils/etherscan.ts index b513f7bf..e58a0224 100644 --- a/bin/utils/etherscan.ts +++ b/bin/utils/etherscan.ts @@ -16,6 +16,30 @@ type VerifyParams = { version: string; args: string; }; + +type CheckParams = { + api: string; + apiKey: string | undefined; + contract: string; +} + +export async function check({ api, apiKey, contract }: CheckParams): Promise { + const params = new URLSearchParams(); + if (apiKey) { + params.append("apikey", apiKey); + } + params.append("module", "contract"); + params.append("action", "getabi"); + params.append("address", contract); + + const data = await fetch(api, { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" }, + body: params, + }).then(res => res.json()); + return data['message'] === "OK" && data['status'] === "1"; +} + export async function verify({ api, apiKey, contract, source, target, version, args }: VerifyParams): Promise { const params = new URLSearchParams(); if (apiKey) { diff --git a/bin/utils/sourcify.ts b/bin/utils/sourcify.ts index 27619358..88d7c12b 100644 --- a/bin/utils/sourcify.ts +++ b/bin/utils/sourcify.ts @@ -7,7 +7,9 @@ export async function check(chainId: number, contract: string): Promise if (!data || !data[0]) { return "false"; } - return data[0].status; + return data[0].chainIds.find( + ({ chainId }: { chainId: string, status: string }) => chainId === chainId + )?.status ?? "false"; } export async function files(chainId: number, contract: string): Promise { diff --git a/bin/verify-celoscan.ts b/bin/verify-celoscan.ts index 6e6e54a1..ba65566a 100644 --- a/bin/verify-celoscan.ts +++ b/bin/verify-celoscan.ts @@ -28,7 +28,8 @@ interface BroadcastFile { initCode: string; }>; transaction: { - data: string; + data?: string; + input?: string }; }>; chain: number; @@ -81,7 +82,7 @@ async function run() { if (tx.transactionType === "CREATE") { createdContracts.push({ contract: tx.contractAddress, - initCode: tx.transaction.data, + initCode: tx.transaction.data || tx.transaction.input }); } if (tx.additionalContracts && tx.additionalContracts.length > 0) { @@ -113,7 +114,7 @@ async function run() { } if (successful.length > 0) { - console.log(`✅ Successfully verified ${successful.length} contracts`); + console.log(`✅ ${successful.length} contracts are verified:`); for (const contract of successful) { console.log(" - ", contract); } @@ -132,18 +133,24 @@ async function run() { } } -async function verify({ contract, initCode }: { contract: string; initCode: string }) { - const status = await sourcify.check(broadcast.chain, contract); - if (status === "false") { - console.error(`🚨 Contract ${contract} not found on sourcify`); - return; +async function verify({ contract, initCode }: { contract: string; initCode?: string }) { + const isVerified = await etherscan.check({ + api: celoscanApiUrl, + apiKey: celoscanApiKey, + contract: contract, + }) + if (isVerified) { + console.log(`✅ Contract ${contract} verified on celoscan`); + return true; } - if (status === "verified") { - console.log(`✅ Contract ${contract} verified on sourcify`); + const status = await sourcify.check(broadcast.chain, contract); + if (!(status == "partial" || status == "full")) { + console.error(`🚨 Contract ${contract} not found on sourcify`); + return false; } - console.log(`🔍 Verifying ${contract} on celoscan...`); + console.log(`⌛ Contract ${contract} verified on sourcify, pushing to celoscan...`); const files = await sourcify.files(broadcast.chain, contract); const { target, @@ -156,7 +163,7 @@ async function verify({ contract, initCode }: { contract: string; initCode: stri const standardJson = makeStandardJson(metadata, sources, libraryMap); let constructorArgs = constructorArgsFromSourcify; - if (constructorArgs === "") { + if (constructorArgs === "" && !!initCode) { constructorArgs = getConstructorArgs(target, contract, initCode); } @@ -191,8 +198,16 @@ async function verify({ contract, initCode }: { contract: string; initCode: stri } function getConstructorArgs(target: string, contract: string, initCode: string) { - const solidityFile = /([^\/]*.sol)/.exec(target)![0]; - const contractName = solidityFile.split(".")[0]; + // Target can be of the form "filename.sol:ContractName" or just "ContractName.sol" + // This regexp matches ((...).sol):(...) so: + // match[1] is the filename, i.e. the first larger bracket + // match[2] is the filename without termination + // match[3] is the optional contract name which can be empty + const match = /(([^\/]*).sol):?(.*)?/.exec(target); + if (!match) throw Error(`Error extracting filename and contract from: ${target}`) + const solidityFile = match[1] + const contractName = match[3] || match[2]; + try { const foundryJson = JSON.parse(fs.readFileSync(`out/${solidityFile}/${contractName}.json`, "utf8")); let bytecode = foundryJson.bytecode.object; diff --git a/broadcast/ExecuteProposal.sol/42220/MUGOV.json b/broadcast/ExecuteProposal.sol/42220/run-MUGOV.json similarity index 100% rename from broadcast/ExecuteProposal.sol/42220/MUGOV.json rename to broadcast/ExecuteProposal.sol/42220/run-MUGOV.json diff --git a/broadcast/ExecuteProposal.sol/44787/MUGOV.json b/broadcast/ExecuteProposal.sol/44787/MUGOV.json deleted file mode 100644 index e24e5bfb..00000000 --- a/broadcast/ExecuteProposal.sol/44787/MUGOV.json +++ /dev/null @@ -1,841 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xAA963FC97281d9632d96700aB62A4D1340F9a28a", - "function": null, - "arguments": null, - "transaction": { - "type": "0x00", - "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", - "to": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", - "gas": "0x17af210", - "value": "0x0", - "data": "0x5601eaea00000000000000000000000000000000000000000000000000000000000000fd0000000000000000000000000000000000000000000000000000000000000082", - "nonce": "0x268" - }, - "additionalContracts": [ - { - "transactionType": "CREATE", - "address": "0x3BE1bdAe417ef82fF3E6F84c814Edc24877D6C4b", - "initCode": "6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36107d990816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146105845750508063715018a6146105065780637eff275e146104665780638da5cb5b146104335780639623609d146102da5783816399a88ec41461022857508063f2fde38b1461010d5763f3b7dead1461007f57600080fd5b3461010957602060031936011261010957828073ffffffffffffffffffffffffffffffffffffffff92836100b16105e8565b168551907ff851a4400000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b931561010657506100fe8360208080965183010191016107a0565b169051908152f35b80fd5b8280fd5b5034610109576020600319360112610109576101276105e8565b906101306106f1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101a5575050600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b929050346102d657806003193601126102d6576102436105e8565b61024b610610565b906102546106f1565b73ffffffffffffffffffffffffffffffffffffffff809116803b156102d257859283602492865197889586947f3659cfe600000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506102b95750f35b6102c290610633565b6101065780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606060031936011261042f576102f16105e8565b926102fa610610565b916044359067ffffffffffffffff821161042b573660238301121561042b578181013591610327836106b7565b9261033485519485610676565b8084523660248284010111610427576024929181889260209586930183880137850101526103606106f1565b73ffffffffffffffffffffffffffffffffffffffff80971696873b15610427578451957f4f1ef2860000000000000000000000000000000000000000000000000000000087521690850152826024850152815191826044860152855b83811061041357505050828495816064817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f878b85819a860101520116810103019134905af19081156102c957506102b95750f35b8181018301518682016064015282016103bc565b8680fd5b8480fd5b5080fd5b50503461042f578160031936011261042f5773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b509034610109578060031936011261010957826104816105e8565b610489610610565b6104916106f1565b73ffffffffffffffffffffffffffffffffffffffff80921690813b156105025783602492865197889586947f8f28397000000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506104f6575080f35b6104ff90610633565b80f35b8380fd5b833461010657806003193601126101065761051f6106f1565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b9150913461042f57602060031936011261042f57819073ffffffffffffffffffffffffffffffffffffffff93846105b96105e8565b167f5c60da1b0000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b67ffffffffffffffff811161064757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761064757604052565b67ffffffffffffffff811161064757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff60005416330361071257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d1561079b573d90610781826106b7565b9161078f6040519384610676565b82523d6000602084013e565b606090565b9081602091031261060b575173ffffffffffffffffffffffffffffffffffffffff8116810361060b579056fea164736f6c6343000812000a" - }, - { - "transactionType": "CREATE", - "address": "0x2df22b4dC66e202e8F1596c0f55ACef66820DC4b", - "initCode": "60803461010b57601f610bd038819003918201601f19168301916001600160401b038311848410176101105780849260209460405283398101031261010b5751801515810361010b5761005c575b604051610aa990816101278239f35b60005460ff8160081c166100b65760ff8082161061007b575b5061004d565b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610075565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c9182631efbdcd31461077a57508163485cc95514610560578163715018a6146104dd5781637cfd0f991461044d5781638da5cb5b1461041857816396354a93146103e3578163aa8754e4146103bf578163b55e511d146103a0578163c89aee831461021c578163d73e1792146101fd578163f003f2c0146101da578163f2fde38b1461010657508063f446c1d0146100e85763ff3c4e92146100bf57600080fd5b346100e457816003193601126100e457602090516b0219aada9b14535aca0000008152f35b5080fd5b50346100e457816003193601126100e45760209051631b1e43f48152f35b9050346101d65760206003193601126101d6576101216107ac565b9161012a6109b0565b73ffffffffffffffffffffffffffffffffffffffff831615610153578361015084610a2f565b80f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b5050346100e457816003193601126100e45760209051670de0b6b3a76400008152f35b5050346100e457816003193601126100e4576020906068549051908152f35b8383346100e457816003193601126100e457610236610830565b91821561034357610249836068546107d4565b60685573ffffffffffffffffffffffffffffffffffffffff806067541690817f2a0663121101e671ccf9b7a37475f4b7dd34994b8711f1bd2cc11fa8f0760d0b60208651888152a26066541690813b156101d657829160448392865195869384927f40c10f190000000000000000000000000000000000000000000000000000000084528b8401528960248401525af18015610337576102ee575b6020848451908152f35b67ffffffffffffffff821161030b575060209350815283806102e4565b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b508251903d90823e3d90fd5b60648460208451917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601b60248201527f456d697373696f6e3a206e6f20746f6b656e7320746f20656d697400000000006044820152fd5b5050346100e457816003193601126100e4576020906065549051908152f35b5050346100e457816003193601126100e4576020906103dc610830565b9051908152f35b5050346100e457816003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff606654169051908152f35b5050346100e457816003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff603354169051908152f35b5050346100e45760206003193601126100e45760207ff8c91b1c6f821fe1e0f54a700d7971394e31753d44867fa41b80762dd3e2362c9173ffffffffffffffffffffffffffffffffffffffff6104a16107ac565b6104a96109b0565b1690817fffffffffffffffffffffffff0000000000000000000000000000000000000000606754161760675551908152a180f35b833461055d578060031936011261055d576104f66109b0565b8073ffffffffffffffffffffffffffffffffffffffff6033547fffffffffffffffffffffffff00000000000000000000000000000000000000008116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b9050346101d657816003193601126101d65761057a6107ac565b6024359073ffffffffffffffffffffffffffffffffffffffff80831680930361077657855460ff8160081c161594858096610769575b8015610752575b156106cf57508460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083161788556106a1575b50426065557fffffffffffffffffffffffff00000000000000000000000000000000000000009116816066541617606655606754161760675561063d60ff845460081c1661063881610925565b610925565b61064633610a2f565b61064e575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff84541684555160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016610101178655386105eb565b60849060208851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b1580156105b75750600160ff8316146105b7565b50600160ff8316106105b0565b8580fd5b8490346100e457816003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff606754168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036107cf57565b600080fd5b919082018092116107e157565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082039182116107e157565b818102929181159184041417156107e157565b61083c60655442610810565b670de0b6b3a76400009080820282810482036107e157631b1e43f490049063363c87e8610869828461081d565b0463515acbdc610879838361081d565b049163879753c461089a636c790fd0610892848761081d565b04928361081d565b04918501928386116107e1576108b66108bc926108c1956107d4565b946107d4565b6107d4565b808210610905576108d191610810565b906b0219aada9b14535aca0000009180830290838204036107e1570481039081116107e15760685461090291610810565b90565b5050506068546b0219aada9b14535aca0000009081039081116107e15790565b1561092c57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff6033541633036109d157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6033549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fea164736f6c6343000812000a0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "transactionType": "CREATE", - "address": "0x59fA569494A9b4d5D844502dc46fD95DC8d4a245", - "initCode": "60406080815262000f9d8038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a357501617905551610b469081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe608060405236610217577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163303610212576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b602081519101f35b7f4f1ef2860000000000000000000000000000000000000000000000000000000081036100d957506100d4610893565b61009c565b7f8f28397000000000000000000000000000000000000000000000000000000000810361010957506100d461051f565b7ff851a44000000000000000000000000000000000000000000000000000000000810361013957506100d46103ae565b7f5c60da1b0000000000000000000000000000000000000000000000000000000003610167576100d4610407565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b6102aa565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff1633036102aa576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e156102fd573d90f35b3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034c57604052565b610301565b6020810190811067ffffffffffffffff82111761034c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034c57604052565b6103b661094f565b73ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354166040519060208201526020815261040481610330565b90565b61040f61094f565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166040519060208201526020815261040481610330565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361048057565b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126104805760043573ffffffffffffffffffffffffffffffffffffffff811681036104805790565b67ffffffffffffffff811161034c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6040519061051982610351565b60008252565b61052761094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff8061054e36610485565b167fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a181156105d8577fffffffffffffffffffffffff00000000000000000000000000000000000000001617905561040461050c565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b61066461094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff61068a36610485565b166040519061069882610351565b60008252803b15610759577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610751575b610737575b505060405161073081610351565b6000815290565b61074991610743610956565b916109c6565b503880610722565b50600061071d565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b803b156107595773ffffffffffffffffffffffffffffffffffffffff81167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061088b575b61087c575050565b61088891610743610956565b50565b506001610874565b366004116104805760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610480576108cd61045d565b6024359067ffffffffffffffff82116104805736602383011215610480578160040135916108fa836104d2565b91610908604051938461036d565b838352366024858401011161048057600060208561094796602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152166107dd565b61040461050c565b3461048057565b604051906060820182811067ffffffffffffffff82111761034c57604052602782527f206661696c6564000000000000000000000000000000000000000000000000006040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806104049493602081519101845af43d15610a05573d916109e8836104d2565b926109f6604051948561036d565b83523d6000602085013e610a72565b606091610a72565b15610a1457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015610a925750815115610a86575090565b610404903b1515610a0d565b825190915015610aa55750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610b22575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610ae156fea164736f6c6343000812000a0000000000000000000000002df22b4dc66e202e8f1596c0f55acef66820dc4b0000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc95500000000000000000000000065130a1c92d925ab35f9b4522bab29f309d656e3000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de00000000000000000000000000000000000000000000000000000000" - }, - { - "transactionType": "CREATE", - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "initCode": "60e06040523462000a2657620020ad803803806200001d8162000a66565b928339810160808282031262000a265781516001600160401b03811162000a265782019181601f8401121562000a2657825192620000656200005f8562000a8c565b62000a66565b9360208086838152019160051b8301019184831162000a2657602001905b82821062000a2b5750505060208101516001600160401b03811162000a265781019180601f8401121562000a26578251620000c26200005f8262000a8c565b9360208086848152019260051b82010192831162000a2657602001905b82821062000a1557505050620001066060620000fe6040840162000aa4565b920162000aa4565b6200011062000a46565b600b81526a26b2b73a37902a37b5b2b760a91b60208201526200013262000a46565b9060058252644d454e544f60d81b60208301526000543360018060a01b0382167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36001600160a81b0319163360ff60a01b1916176000558051906001600160401b038211620008e75760045490600182811c9216801562000a0a575b6020831014620008c65781601f84931162000998575b50602090601f83116001146200090957600092620008fd575b50508160011b916000199060031b1c1916176004555b8051906001600160401b038211620008e75760055490600182811c92168015620008dc575b6020831014620008c65781601f8493116200086d575b50602090601f8311600114620007de57600092620007d2575b50508160011b916000199060031b1c1916176005555b6001600160a01b0382161562000781576001600160a01b0381161562000730578351835103620006d05760805260a0526000805b835182101562000575576001600160a01b03620002b3838662000ad6565b5116156200051757620002c7828462000ad6565b51156200051057620002e790620002df838562000ad6565b519062000b01565b906001600160a01b03620002fc828662000ad6565b51166103e86200031862000311848762000ad6565b5162000ab9565b048115620004cb57308214620004605760005460ff8160a01c16159081156200044c575b50801562000437575b801562000422575b15620003cd577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060009260036200038882825462000b01565b90558484526001825260408420818154019055604051908152a35b6000198114620003b7576001019062000295565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152602760248201527f4d656e746f546f6b656e3a20746f6b656e207472616e73666572207768696c65604482015266081c185d5cd95960ca1b6064820152608490fd5b5060a0516001600160a01b031633146200034d565b506080516001600160a01b0316331462000345565b6001600160a01b031633149050386200033c565b60405162461bcd60e51b815260206004820152603460248201527f4d656e746f546f6b656e3a2063616e6e6f74207472616e7366657220746f6b6560448201527f6e7320746f20746f6b656e20636f6e74726163740000000000000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b90620003a3565b60405162461bcd60e51b815260206004820152603060248201527f4d656e746f546f6b656e3a20616c6c6f636174696f6e20726563697069656e7460448201526f206973207a65726f206164647265737360801b6064820152608490fd5b6103e89081811162000679578103818111620003b757620005969062000ab9565b0460c05260005460ff8160a01c16620006415760ff60a01b1916600160a01b176000556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a160405161159d908162000b1082396080518181816106c5015281816108a30152818161103701526114f0015260a05181818161055a0152818161073f0152818161100b01526114c4015260c0518181816107760152610a6b0152f35b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b60405162461bcd60e51b815260206004820152602960248201527f4d656e746f546f6b656e3a20746f74616c20616c6c6f636174696f6e2065786360448201526865656473203130302560b81b6064820152608490fd5b60405162461bcd60e51b815260206004820152603260248201527f4d656e746f546f6b656e3a20726563697069656e747320616e6420616d6f756e6044820152710e8e640d8cadccee8d040dad2e6dac2e8c6d60731b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f4d656e746f546f6b656e3a206c6f636b696e67206973207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f4d656e746f546f6b656e3a20656d697373696f6e206973207a65726f206164646044820152637265737360e01b6064820152608490fd5b0151905038806200024b565b6005600090815293507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091905b601f198416851062000851576001945083601f1981161062000837575b505050811b0160055562000261565b015160001960f88460031b161c1916905538808062000828565b818101518355602094850194600190930192909101906200080b565b90915060056000526020600020601f840160051c81019160208510620008bb575b90601f859493920160051c01905b818110620008ab575062000232565b600081558493506001016200089c565b90915081906200088e565b634e487b7160e01b600052602260045260246000fd5b91607f16916200021c565b634e487b7160e01b600052604160045260246000fd5b015190503880620001e1565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f19841685106200097c576001945083601f1981161062000962575b505050811b01600455620001f7565b015160001960f88460031b161c1916905538808062000953565b8181015183556020948501946001909301929091019062000936565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c81016020851062000a02575b90849392915b601f830160051c82018110620009f2575050620001c8565b60008155859450600101620009da565b5080620009d4565b91607f1691620001b2565b8151815260209182019101620000df565b600080fd5b6020809162000a3a8462000aa4565b81520191019062000083565b60408051919082016001600160401b03811183821017620008e757604052565b6040519190601f01601f191682016001600160401b03811183821017620008e757604052565b6001600160401b038111620008e75760051b60200190565b51906001600160a01b038216820362000a2657565b906b033b2e3c9fd0803ce80000009180830292830403620003b757565b805182101562000aeb5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91908201809211620003b75756fe6080604081815260048036101561001557600080fd5b600092833560e01c908163023a7d7a14610d2e5750806306fdde0314610c49578063095ea7b314610c1f57806318160ddd14610c0057806323b872dd14610bc3578063313ce56714610ba75780633950935114610b4b5780633f4ba83a14610a8e5780633fecb08714610a5357806340c10f191461070757806342966c68146106e957806358ad5a8b146106985780635c975abb1461067357806370a082311461062f578063715018a6146105b157806379cc67901461057e578063827c049e1461052d5780638da5cb5b146104fa57806395d89b4114610379578063a457c2d7146102ac578063a9059cbb1461027b578063dd62ed3e146102215763f2fde38b1461012057600080fd5b3461021d57602060031936011261021d57610139610d92565b90610142610e19565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101b45750508254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b5050346102775780600319360112610277578060209261023f610d92565b610247610dba565b73ffffffffffffffffffffffffffffffffffffffff91821683526002865283832091168252845220549051908152f35b5080fd5b5050346102775780600319360112610277576020906102a561029b610d92565b6024359033610e7e565b5160018152f35b5082346103765782600319360112610376576102c6610d92565b918360243592338152600260205281812073ffffffffffffffffffffffffffffffffffffffff8616825260205220549082821061030d576020856102a585850387336111ab565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b80fd5b5091903461027757816003193601126102775780519082600554600181811c908083169283156104f0575b60209384841081146104c45783885287959493929181156104875750600114610428575b50505003601f01601f191682019267ffffffffffffffff8411838510176103fc57508291826103f8925282610d4a565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b600588529193925086917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8284106104715750505090601f1992601f928201019181936103c8565b8054888501870152879450928501928101610454565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016848701525050151560051b830101905081601f601f196103c8565b60248960228c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b91607f16916103a4565b50503461027757816003193601126102775773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b5050346102775781600319360112610277576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461027757600319360112610376576105ae61059a610d92565b602435906105a98233836112ec565b6113af565b80f35b83346103765780600319360112610376576105ca610e19565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b505034610277576020600319360112610277578060209273ffffffffffffffffffffffffffffffffffffffff610663610d92565b1681526001845220549051908152f35b50503461027757816003193601126102775760ff6020925460a01c1690519015158152f35b5050346102775781600319360112610277576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b838234610277576020600319360112610277576105ae9035336113af565b503461021d578160031936011261021d57610720610d92565b9160249182359273ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016958633036109eb576006546107748782610ddd565b7f00000000000000000000000000000000000000000000000000000000000000001061098357906107a6878493610ddd565b60065516958615610941573087146108d95787549160ff8360a01c16159283156108cd575b5082156108a1575b508115610897575b50156108305750506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926108158795600354610ddd565b6003558585526001835280852082815401905551908152a380f35b6027906020608494519362461bcd60e51b85528401528201527f4d656e746f546f6b656e3a20746f6b656e207472616e73666572207768696c6560448201527f20706175736564000000000000000000000000000000000000000000000000006064820152fd5b90503314386107db565b7f00000000000000000000000000000000000000000000000000000000000000001633149150386107d3565b811633149250386107cb565b608484603485602089519362461bcd60e51b85528401528201527f4d656e746f546f6b656e3a2063616e6e6f74207472616e7366657220746f6b6560448201527f6e7320746f20746f6b656e20636f6e74726163740000000000000000000000006064820152fd5b606484601f85602089519362461bcd60e51b85528401528201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b5050506020608493519262461bcd60e51b8452830152808201527f4d656e746f546f6b656e3a20656d697373696f6e20737570706c79206578636560448201527f65646564000000000000000000000000000000000000000000000000000000006064820152fd5b608484602285602089519362461bcd60e51b85528401528201527f4d656e746f546f6b656e3a206f6e6c7920656d697373696f6e20636f6e74726160448201527f63740000000000000000000000000000000000000000000000000000000000006064820152fd5b505034610277578160031936011261027757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461021d578260031936011261021d57610aa7610e19565b82549060ff8260a01c1615610b0857507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60209216845551338152a180f35b606490602084519162461bcd60e51b8352820152601f60248201527f4d656e746f546f6b656e3a20746f6b656e206973206e6f7420706175736564006044820152fd5b5050346102775780600319360112610277576102a5602092610ba0610b6e610d92565b913381526002865284812073ffffffffffffffffffffffffffffffffffffffff84168252865284602435912054610ddd565b90336111ab565b5050346102775781600319360112610277576020905160128152f35b505034610277576060600319360112610277576020906102a5610be4610d92565b610bec610dba565b60443591610bfb8333836112ec565b610e7e565b5050346102775781600319360112610277576020906003549051908152f35b5050346102775780600319360112610277576020906102a5610c3f610d92565b60243590336111ab565b50919034610277578160031936011261027757805190828454600181811c90808316928315610d24575b60209384841081146104c45783885287959493929181156104875750600114610cc65750505003601f01601f191682019267ffffffffffffffff8411838510176103fc57508291826103f8925282610d4a565b8888529193925086917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610d0e5750505090601f1992601f928201019181936103c8565b8054888501870152879450928501928101610cf1565b91607f1691610c73565b8490346102775781600319360112610277576020906006548152f35b60208082528251818301819052939260005b858110610d7e57505050601f19601f8460006040809697860101520116010190565b818101830151848201604001528201610d5c565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610db557565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610db557565b91908201809211610dea57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff600054163303610e3a57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9173ffffffffffffffffffffffffffffffffffffffff8093169182156111415783169283156110d75730841461106d5760009081549060ff8260a01c1615918215611061575b508115611035575b8115611009575b5015610f9f578281526001602052604081205491808310610f3557604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260018652038282205586815220818154019055604051908152a3565b608460405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602760248201527f4d656e746f546f6b656e3a20746f6b656e207472616e73666572207768696c6560448201527f20706175736564000000000000000000000000000000000000000000000000006064820152fd5b7f0000000000000000000000000000000000000000000000000000000000000000163314905038610ed3565b7f0000000000000000000000000000000000000000000000000000000000000000811633149150610ecc565b81163314915038610ec4565b608460405162461bcd60e51b815260206004820152603460248201527f4d656e746f546f6b656e3a2063616e6e6f74207472616e7366657220746f6b6560448201527f6e7320746f20746f6b656e20636f6e74726163740000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff80911691821561128357169182156112195760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260028252604060002085600052825280604060002055604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b9073ffffffffffffffffffffffffffffffffffffffff80831660005260026020526040600020908216600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8403611350575b50505050565b80841061136b576113629303916111ab565b3880808061134a565b606460405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff80921690811561152657301561106d5760009283549060ff8260a01c161591821561151a575b5081156114ee575b81156114c2575b5015610f9f578183526001602052604083205481811061145857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092858752600184520360408620558060035403600355604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b7f00000000000000000000000000000000000000000000000000000000000000001633149050386113fa565b7f00000000000000000000000000000000000000000000000000000000000000008116331491506113f3565b811633149150386113eb565b608460405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fdfea164736f6c6343000812000a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000059fa569494a9b4d5d844502dc46fd95dc8d4a245000000000000000000000000c2cb4e0b0079de0f4eb2d487dc57e6dd1a49e1f5000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000040c6cfedc3d231fe1e6ee168d2c1517341ca7d6b000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d8100000000000000000000000099995570bc88340d726d15d172e668271fbc9e200000000000000000000000009999f469fa49bb921ea385f1de49dcbccfbc9a820000000000000000000000009999700347b57a3152e8b63123649949a9abe20d0000000000000000000000009999db67bf5151668aaff29ed4baca3926747ed70000000000000000000000009999c6de88ebdf0aff022d127c36541d53f8789a00000000000000000000000099994874b3b90e690287c85df1ba26e886ff87f000000000000000000000000099990ea09dd56949dbafe97fc34dbc69bda81027000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001" - }, - { - "transactionType": "CREATE", - "address": "0x40C6CfEDc3d231Fe1E6EE168D2C1517341Ca7D6B", - "initCode": "6101a0604081815234620004bd57819062001bcf8038038091620000248286620004c2565b843961012092839181010312620004bd578251602062000046818601620004fc565b92808601519160608701516200005f6080890162000511565b6200006d60a08a0162000511565b906200007c60c08b01620004fc565b926200008b60e08c01620004fc565b6101009b8c0151996001600160a01b03808c169a929992908b8d03620004bd57600097600189558215620004795781841615620004355742861115620003f15763ffffffff606781891611620003ad57606890891611620003695781169a8b156200032557169a8b15620002e15715620002915760805260a05260c05260e05288528852808261014095808752604461016098808a526101809a8b528751958693849263095ea7b360e01b8452600484015260001960248401525af1918215620002855781926200023d575b505015620001fb575051936116ab958662000524873960805186818161043f0152610a71015260a05186818161048f01526108cc015260c0518681816106e801526110eb015260e0518681816101340152818161053301526108f70152518581816105c40152610bc7015251848181610bee01526110b101525183818160e60152610ae6015251828181610c3201526110540152518181816101f901526105830152f35b606491519062461bcd60e51b82526004820152601860248201527f416972677261623a20617070726f76616c206661696c656400000000000000006044820152fd5b9091508281813d83116200027d575b620002588183620004c2565b81010312620002795751908115158203620002765750388062000157565b80fd5b5080fd5b503d6200024c565b508351903d90823e3d90fd5b885162461bcd60e51b8152600481018990526024808201527f416972677261623a20696e76616c69642063656c6f20636f6d6d756e69747920604482015263199d5b9960e21b6064820152608490fd5b895162461bcd60e51b8152600481018a9052601860248201527f416972677261623a20696e76616c6964206c6f636b696e6700000000000000006044820152606490fd5b8a5162461bcd60e51b8152600481018b9052601660248201527f416972677261623a20696e76616c696420746f6b656e000000000000000000006044820152606490fd5b8a5162461bcd60e51b8152600481018b9052601f60248201527f416972677261623a20736c6f706520706572696f6420746f6f206c61726765006044820152606490fd5b8b5162461bcd60e51b8152600481018c9052601f60248201527f416972677261623a20636c69666620706572696f6420746f6f206c61726765006044820152606490fd5b8a5162461bcd60e51b8152600481018b9052601e60248201527f416972677261623a20696e76616c696420656e642074696d657374616d7000006044820152606490fd5b8a5162461bcd60e51b8152600481018b9052601f60248201527f416972677261623a20696e76616c6964206672616374616c20697373756572006044820152606490fd5b8a5162461bcd60e51b8152600481018b9052601560248201527f416972677261623a20696e76616c696420726f6f7400000000000000000000006044820152606490fd5b600080fd5b601f909101601f19168101906001600160401b03821190821017620004e657604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620004bd57565b519063ffffffff82168203620004bd5756fe608080604052600436101561001357600080fd5b60003560e01c9081630b219c63146110d5575080632f66194614611094578063419666641461107857806358ad5a8b146110275780635dff1c2a146105e8578063757dc92d146105a75780639218235914610556578063a85adeab1461051b578063aad83ff2146104ff578063c884ef83146104b3578063d934bcc014610462578063ebf0c71714610427578063ece531321461010f5763fc0c546a146100b957600080fd5b3461010a57600060031936011261010a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b3461010a5760208060031936011261010a5761012961110e565b906101326111e6565b7f00000000000000000000000000000000000000000000000000000000000000004211156103e3576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff928316928282602481875afa9182156103d7576000926103a8575b5081156103645761029d906000806040519261025384610245888a8301947fa9059cbb0000000000000000000000000000000000000000000000000000000086527f000000000000000000000000000000000000000000000000000000000000000016602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03601f19810186528561114d565b6040519361026085611131565b8785527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656488860152519082895af161029661123b565b908661126b565b8051806102d7575b847f7ca3046ca99d7152bf8cb59d68d9a4f131c6b0dadfd2307f65609db067d5259a8585604051908152a26001600055005b8184918101031261010a5782015180159081150361010a576102fa5783806102a5565b6084826040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6064836040519062461bcd60e51b82526004820152601960248201527f416972677261623a206e6f7468696e6720746f20647261696e000000000000006044820152fd5b9091508281813d83116103d0575b6103c0818361114d565b8101031261010a575190846101b6565b503d6103b6565b6040513d6000823e3d90fd5b6064906040519062461bcd60e51b82526004820152601560248201527f416972677261623a206e6f742066696e697368656400000000000000000000006044820152fd5b3461010a57600060031936011261010a5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461010a57600060031936011261010a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010a57602060031936011261010a5773ffffffffffffffffffffffffffffffffffffffff6104e161110e565b166000526001602052602060ff604060002054166040519015158152f35b3461010a57600060031936011261010a57602060405160688152f35b3461010a57600060031936011261010a5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461010a57600060031936011261010a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010a57600060031936011261010a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010a5760e060031936011261010a576004356bffffffffffffffffffffffff8116810361010a576024359073ffffffffffffffffffffffffffffffffffffffff8216820361010a5767ffffffffffffffff806044351161010a5736602360443501121561010a5780604435600401351161010a573660246044356004013560051b60443501011161010a5760643581811161010a573660238201121561010a5780600401359082821161010a57366024838301011161010a5760c4359083821161010a573660238301121561010a576106d06106db92369060248160040135910161118c565b92602436920161118c565b90608435421015610fe3577f00000000000000000000000000000000000000000000000000000000000000008015908115610fcc575b5015610f88573360405193606085019085821090821117610f5957604052602a84526040366020860137835115610f2a5760306020850153835160011015610f2a576078602185015360295b60018111610eb65750610e72576108f092610855604261077e60a43561132c565b61078960843561132c565b9460405195869260206107a581860198898151938492016111c3565b8401927f3b00000000000000000000000000000000000000000000000000000000000000938460208201526107e48251809360206021850191016111c3565b018360218201526107ff8251809360206022850191016111c3565b0182602282015261081a8251809360206023850191016111c3565b019060238201527f6c6576656c3a706c75733b7265736964656e63795f6e6f743a63612c75730000602482015203602281018552018361114d565b6108c7603a610864845161132c565b936040519384916108b860208401977f19457468657265756d205369676e6564204d6573736167653a0a00000000000089526108a981518092602089890191016111c3565b840191518093868401906111c3565b0103601a81018452018261114d565b5190207f00000000000000000000000000000000000000000000000000000000000000006114be565b15610e2e577f00000000000000000000000000000000000000000000000000000000000000004211610dea5733600052600160205260ff60406000205416610da6576040805133602082019081526bffffffffffffffffffffffff84169282019290925261096b81606081015b03601f19810183528261114d565b519020604051602081019182526020815261098581611131565b519020604051906109a260206044356004013560051b018361114d565b60443560048101358352602401602083015b60246044356004013560051b60443501018210610d96575050916000925b8251841015610a6d5760208460051b8401015190818110600014610a5c5760005260205260406000205b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a2d57600101926109d2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060005260205260406000206109fc565b84907f000000000000000000000000000000000000000000000000000000000000000003610d5257610a9d6111e6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156103d757600091610d20575b506bffffffffffffffffffffffff831611610cdc57336000526001602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff604051917f748bb5e80000000000000000000000000000000000000000000000000000000083523360048401521660248201526bffffffffffffffffffffffff8216604482015263ffffffff807f00000000000000000000000000000000000000000000000000000000000000001660648301527f000000000000000000000000000000000000000000000000000000000000000016608482015260208160a481600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103d757600091610caa575b506bffffffffffffffffffffffff6040519216825260208201527f9923b4306c6c030f2bdfbf156517d5983b87e15b96176da122cd4f2effa4ba7b60403392a26001600055005b90506020813d602011610cd4575b81610cc56020938361114d565b8101031261010a575182610c63565b3d9150610cb8565b606460405162461bcd60e51b815260206004820152601d60248201527f416972677261623a20696e73756666696369656e742062616c616e63650000006044820152fd5b90506020813d602011610d4a575b81610d3b6020938361114d565b8101031261010a575183610b17565b3d9150610d2e565b606460405162461bcd60e51b815260206004820152601460248201527f416972677261623a206e6f7420696e20747265650000000000000000000000006044820152fd5b81358152602091820191016109b4565b606460405162461bcd60e51b815260206004820152601860248201527f416972677261623a20616c726561647920636c61696d656400000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601160248201527f416972677261623a2066696e69736865640000000000000000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601460248201527f416972677261623a20496e76616c6964204b59430000000000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b906010600f82161015610f2a578451821015610f2a577f3031323334353637383961626364656600000000000000000000000000000000600f82161a6020838701015360041c908015610a2d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161075d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b606460405162461bcd60e51b815260206004820152601e60248201527f416972677261623a204b5943206e6f7420726563656e7420656e6f75676800006044820152fd5b905060a435908101809111610a2d57421086610711565b606460405162461bcd60e51b815260206004820152601c60248201527f416972677261623a204b5943206e6f206c6f6e6765722076616c6964000000006044820152fd5b3461010a57600060031936011261010a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010a57600060031936011261010a57602060405160678152f35b3461010a57600060031936011261010a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010a57600060031936011261010a576020907f00000000000000000000000000000000000000000000000000000000000000008152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010a57565b6040810190811067ffffffffffffffff821117610f5957604052565b90601f601f19910116810190811067ffffffffffffffff821117610f5957604052565b67ffffffffffffffff8111610f5957601f01601f191660200190565b92919261119882611170565b916111a6604051938461114d565b82948184528183011161010a578281602093846000960137010152565b60005b8381106111d65750506000910152565b81810151838201526020016111c6565b6002600054146111f7576002600055565b606460405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b3d15611266573d9061124c82611170565b9161125a604051938461114d565b82523d6000602084013e565b606090565b919290156112cc575081511561127f575090565b3b156112885790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156112df5750805190602001fd5b6113039060405191829162461bcd60e51b8352602060048401526024830190611307565b0390fd5b90601f19601f602093611325815180928187528780880191016111c3565b0116010190565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156114b0575b506d04ee2d6d415b85acef8100000000808310156114a1575b50662386f26fc1000080831015611492575b506305f5e10080831015611483575b5061271080831015611474575b506064821015611464575b600a8092101561145a575b60019081602181860195601f196113e16113cb89611170565b986113d96040519a8b61114d565b808a52611170565b01366020890137860101905b6113f9575b5050505090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff849101917f30313233343536373839616263646566000000000000000000000000000000008282061a835304918215611455579190826113ed565b6113f2565b91600101916113b2565b91906064600291049101916113a7565b6004919392049101913861139c565b6008919392049101913861138f565b60109193920491019138611380565b6020919392049101913861136e565b604093508104915038611355565b90916114ca81846115ca565b600581101561159b57159081611578575b5061157057600091829160405161152f8161095d60208201947f1626ba7e00000000000000000000000000000000000000000000000000000000998a87526024840152604060448401526064830190611307565b51915afa9061153c61123b565b82611564575b8261154c57505090565b90915060208180518101031261010a57602001511490565b80516020149250611542565b505050600190565b905073ffffffffffffffffffffffffffffffffffffffff808416911614386114db565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9060418151146000146115f8576115f4916020820151906060604084015193015160001a90611602565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116116925791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561168557815173ffffffffffffffffffffffffffffffffffffffff81161561167f579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fea164736f6c6343000812000a6c6737ae0f6d30c687aa1ae814fa42ee0081fe871b1cd880321c200ee0668bd600000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d810000000000000000000000000000000000000000000000000000000000ed4e000000000000000000000000000000000000000000000000000000000067adeb740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006800000000000000000000000065130a1c92d925ab35f9b4522bab29f309d656e3000000000000000000000000c2cb4e0b0079de0f4eb2d487dc57e6dd1a49e1f5000000000000000000000000aa963fc97281d9632d96700ab62a4d1340f9a28a" - }, - { - "transactionType": "CREATE", - "address": "0xf2b572A2657e16EF600F8F84BE29a49098b143Fd", - "initCode": "6080806040523461001657614ad6908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314611de55750806307da68f514611d6c5780630fc8deca14611d3357806315622e2314611cf357806318160ddd14611cd8578063258c97ca14611c8b578063313ce56714611c6f5780633a46b1a814611bf45780633ccfd60b14611a9257806349b32116146119cb578063587cde1e1461196c5780635b4df0a2146118d75780635c19a95c146118b857806361bc221a1461189a57806367c8c4731461187c5780636a4fd450146117c257806370a0823114611797578063715018a614611724578063748bb5e8146114eb57806375f12b21146114c85780637ac512bb146112915780638606d0e114611265578063874d6d81146112425780638da5cb5b1461121b5780638e539e8c146111bc5780639109ec001461110257806395d89b41146110a857806398c6e7601461107e5780639ab24eb01461101e5780639f4d110f14610fe7578063a0f52da014610f50578063ac7ae58914610f32578063b53546ab14610e98578063b623163314610e7a578063be9a655514610dc4578063c3cda52014610d99578063cbf9fe5f14610d4e578063d4fadbde14610cda578063d93bf4fe14610c53578063ee85dc40146104f1578063f15403f91461049a578063f2fde38b146103f5578063f4359ce5146103d7578063fc0c546a146103b05763fc7881c61461020e57600080fd5b346103ab5760406003193601126103ab57610227611eb1565b61024c6001600160a01b0360675461024260ff821615612046565b60081c1615612091565b610257600435613166565b90600435600052606b6020526001600160a01b0380600160406000200154169261028663ffffffff4316613116565b9380600052606c60205261029e8560406000206140d9565b600052606c60205261033e6102d66103208460406000209663ffffffff6102c88a6004358b613a70565b9196909a8c84431691614769565b604051956102e387611f41565b828c169a8b88526bffffffffffffffffffffffff8092166020890152166040870152166060850152169687600052606c60205260406000206140d9565b85600052606c60205263ffffffff4316906004356040600020613288565b600435600052606b6020526001604060002001847fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560405192835216907f85c2730e083fbf1495501a47cbebc8a7e57eab8b6eeac16aedcebc825e268fac602060043592a4005b600080fd5b346103ab5760006003193601126103ab5760206001600160a01b0360655416604051908152f35b346103ab5760006003193601126103ab5760206040516201d8808152f35b346103ab5760206003193601126103ab5761040e611e9b565b610416614a11565b6001600160a01b038116156104305761042e90614a69565b005b608460405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b346103ab5760606003193601126103ab576004356bffffffffffffffffffffffff80821682036103ab576104e06040926104d2611ec7565b6104da611f13565b91612f59565b835191831682529091166020820152f35b346103ab5760a06003193601126103ab5761050a611eb1565b610512611f26565b61051a611eed565b91610523611f00565b9261053f6001600160a01b0360675461024260ff821615612046565b61054a600435613166565b9161055a63ffffffff4316613116565b916105746bffffffffffffffffffffffff861615156120dc565b610587606763ffffffff88161115612127565b606863ffffffff821611610c0f5763ffffffff811615610bcb576105b4816105af88866131e0565b6131e0565b6001600160a01b038516600052606c60205260056040600020016004356000526020526105e46040600020611fe9565b9063ffffffff806106438161062e6106296bffffffffffffffffffffffff6020890151166106246bffffffffffffffffffffffff60408b0151169161226c565b612f0d565b6121cc565b166105af8387511684606089015116906131e0565b9216911611610b875761066863ffffffff82511663ffffffff606084015116906131e0565b61067288866131e0565b63ffffffff811663ffffffff831611610ab4575b505050600435600052606b6020526001600160a01b03600160406000200154166001600160a01b038516600052606c6020526106c98460046040600020016140d9565b6001600160a01b038516600052606c6020526bffffffffffffffffffffffff60076040600020015460201c1690610701858288612e76565b600052606c60205261072f604060002061071e8660043583613a70565b5050508563ffffffff431691614769565b61073b8460043561374c565b50505061074e63ffffffff4316856146f1565b6001600160a01b038516600052606c60205260046040600020016107896107788660043584613a70565b5050918663ffffffff431691614769565b6bffffffffffffffffffffffff87166bffffffffffffffffffffffff821611610a4a576107b96107e8918861228a565b916001600160a01b038716600052606c6020526bffffffffffffffffffffffff6008604060002001541661228a565b906bffffffffffffffffffffffff82166bffffffffffffffffffffffff8216116108a7575b50506001600160a01b039163ffffffff878184610843898960209d8a998e6108366066546121bd565b6066558a8843169561283a565b6bffffffffffffffffffffffff6066549a836040519a8d8c52168d8b0152166040890152166060870152166080850152169216907fff9e53f270b2e95a429fec2ba89150265ce93322bdadde5312993a6297d1021a60a060043592a4604051908152f35b6108b76109c2949260209261228a565b6001600160a01b038716600052606c82526108e8816bffffffffffffffffffffffff600860406000200154166121e9565b6001600160a01b038816600052606c83526bffffffffffffffffffffffff600860406000200191167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008254161790556001600160a01b0360655416600435600052606b83526001600160a01b036040600020541660006040518098819582947f23b872dd0000000000000000000000000000000000000000000000000000000084523090600485019193926bffffffffffffffffffffffff9060409260608501966001600160a01b03809216865216602085015216910152565b03925af1928315610a3e578763ffffffff84610843898960209d6001600160a01b039a998e6109fc8d9c899b600091610a0f575b50612221565b505050505050945050975081935061080d565b6020610a3192503d602011610a37575b610a298183611fa8565b810190612209565b386109f6565b503d610a1f565b6040513d6000823e3d90fd5b608460405162461bcd60e51b815260206004820152602e60248201527f496d706f737369626c6520746f2072656c6f636b3a206c65737320616d6f756e60448201527f742c207468656e206e6f772069730000000000000000000000000000000000006064820152fd5b610abd91612ed4565b63ffffffff80610ad56106298287166106248c61226c565b1691160263ffffffff8116908103610b58576bffffffffffffffffffffffff6020610b0182938a61228a565b93015116911610610b1457868080610686565b606460405162461bcd60e51b815260206004820152601960248201527f64657465637420637574206465706f73697420636f726e6572000000000000006044820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b606460405162461bcd60e51b815260206004820152601e60248201527f6e6577206c696e6520706572696f64206c6f636b20746f6f2073686f727400006044820152fd5b606460405162461bcd60e51b815260206004820152601460248201527f736c6f706520706572696f6420657175616c20300000000000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601460248201527f736c6f706520706572696f6420746f6f206269670000000000000000000000006044820152fd5b346103ab576020806003193601126103ab5760043567ffffffffffffffff81116103ab57366023820112156103ab57806004013590610c918261202e565b91610c9f6040519384611fa8565b80835260248484019160051b830101913683116103ab57602401905b828210610ccb5761042e8461241b565b81358152908401908401610cbb565b346103ab5760206003193601126103ab5761042e610cf6611eda565b610d4160675491610d3c610d366001600160a01b0360ff86161595610d1a87612046565b60081c161592610d2984612091565b610d31614a11565b613116565b93612046565b612091565b610d49614a11565b613efa565b346103ab5760206003193601126103ab576001600160a01b03610d6f611e9b565b16600052606c60205260206bffffffffffffffffffffffff60086040600020015416604051908152f35b346103ab5760c06003193601126103ab57610db2611e9b565b5060643560ff81161461324357600080fd5b346103ab5760006003193601126103ab57610ddd614a11565b60675460ff811615610e36577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016606755337f5dd18d9d0267344a73ac262626686f7811c9a12e8bce0c8a1588fe1bf9b590bb600080a2005b606460405162461bcd60e51b815260206004820152600b60248201527f6e6f742073746f707065640000000000000000000000000000000000000000006044820152fd5b346103ab5760006003193601126103ab576020606954604051908152f35b346103ab5760006003193601126103ab576080604051610eb781611f41565b60705463ffffffff811682526bffffffffffffffffffffffff808260201c16602084015281841c16604083015260e01c6060820152610f3060405180926060908163ffffffff918281511685526bffffffffffffffffffffffff8060208301511660208701526040820151166040860152015116910152565bf35b346103ab5760006003193601126103ab576020606a54604051908152f35b346103ab5760206003193601126103ab576001600160a01b03610f71611e9b565b610f79614a11565b6067547fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff008360081b1691161760675516337f51ace7fc4e2a9f6104449d0bbe0532efdfd8dfebc68b225b91dd1de3bbb804fd600080a3005b346103ab5760206003193601126103ab5761042e611003611eda565b610d416001600160a01b0360675461024260ff821615612046565b346103ab5760206003193601126103ab5760206bffffffffffffffffffffffff611075611049611e9b565b63ffffffff4316906001600160a01b0361106283613116565b9116600052606c855260406000206143dc565b16604051908152f35b346103ab5760006003193601126103ab5760206001600160a01b0360675460081c16604051908152f35b346103ab5760006003193601126103ab576110fe6040516110c881611f8c565b600781527f76654d454e544f00000000000000000000000000000000000000000000000000602082015260405191829182611e35565b0390f35b346103ab5760206003193601126103ab5763ffffffff611120611eda565b61113b6001600160a01b0360675461024260ff821615612046565b611143614a11565b16606881101561117857806069557f88345dd2cdc36a4778bf7fed510015cf81efda1a773e1b6360fde7cb1631b210600080a2005b606460405162461bcd60e51b815260206004820152601a60248201527f6e657720736c6f706520706572696f64203e20322079656172730000000000006044820152fd5b346103ab5760206003193601126103ab5760206bffffffffffffffffffffffff61107560043563ffffffff9061120a828216926111f884613116565b9281431611908161120f575b506131f8565b614342565b90508216151587611204565b346103ab5760006003193601126103ab5760206001600160a01b0360335416604051908152f35b346103ab5760006003193601126103ab57602063ffffffff611075814316613116565b346103ab5760206003193601126103ab576020611283610d31611eda565b63ffffffff60405191168152f35b346103ab5760806003193601126103ab576004356001600160a01b0381168091036103ab576112be611ec7565b906112c7611f13565b906112d0611eed565b6000549260ff8460081c1615948580966114bb575b80156114a4575b1561143a57848660017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061139798161760005561140b575b5060ff60005460081c1693611338856127c9565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000606554161760655563ffffffff9182809216606a55169161137d6067841115612127565b169061138c6068831115612172565b6068556069556127c9565b6113a033614a69565b600054906113b360ff8360081c166127c9565b6113b957005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011760005586611324565b608460405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b1580156112ec5750600160ff8616146112ec565b50600160ff8616106112e5565b346103ab5760006003193601126103ab57602060ff606754166040519015158152f35b346103ab5760a06003193601126103ab57611691611507611e9b565b61150f611eb1565b611517611f26565b61151f611eed565b91611528611f00565b906115446001600160a01b0360675461024260ff821615612046565b6bffffffffffffffffffffffff83169161155f8315156120dc565b611572606763ffffffff83161115612127565b60006001600160a01b0363ffffffff87169761159160688a1115612172565b61159c6066546121bd565b6066556115c46115b163ffffffff4316613116565b98898663ffffffff4316928b8a8761283a565b16948582526020988991606c83526115f1816bffffffffffffffffffffffff6008604088200154166121e9565b888552606c8452604080862060080180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff93841617905560655490517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152929091166044830152909384926001600160a01b03929092169183919082906064820190565b03925af1928315610a3e5763ffffffff6080936116df7f9024bda3efb3f3701e8d25fdb8d8adb67deb176633f590ee4a3cd1dad74dc73e966001600160a01b03956000916117075750612221565b606654998a97836040519b168b528c8b015260408a01521660608801521694a4604051908152f35b61171e91508d803d10610a3757610a298183611fa8565b8d6109f6565b346103ab5760006003193601126103ab5761173d614a11565b60006001600160a01b036033547fffffffffffffffffffffffff00000000000000000000000000000000000000008116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346103ab5760206003193601126103ab5760206117ba6117b5611e9b565b612363565b604051908152f35b346103ab5760206003193601126103ab5763ffffffff6117e0611eda565b6117fb6001600160a01b0360675461024260ff821615612046565b611803614a11565b16606781101561183857806068557fa21222d0eed205eed6a46ed1fe7faf1d0b5d097b9e04a6d4e59b7f1debfc8b2b600080a2005b606460405162461bcd60e51b815260206004820152601a60248201527f6e657720636c69666620706572696f64203e20322079656172730000000000006044820152fd5b346103ab5760006003193601126103ab576020606854604051908152f35b346103ab5760006003193601126103ab576020606654604051908152f35b346103ab5760206003193601126103ab576118d1611e9b565b50613243565b346103ab5760406003193601126103ab5761042e6118f3611e9b565b6118fb611ec7565b906067549061193760ff8316159361191285612046565b610d3c6119316001600160a01b03809660081c161592610d2984612091565b95612046565b61193f614a11565b1680600052606c6020526119578260406000206140d9565b600052606c60205260046040600020016140d9565b346103ab5760206003193601126103ab57611985611e9b565b5060405162461bcd60e51b815260206004820152600f60248201527f6e6f7420696d706c656d656e74656400000000000000000000000000000000006044820152606490fd5b346103ab5760206003193601126103ab576119e4611eda565b6119ff6001600160a01b0360675461024260ff821615612046565b611a07614a11565b63ffffffff80611a18814316613116565b16911690811015611a4e5780606a557f2f807974bc9b84320f39300f6395b257c58bb285c61d262ec17c8332772d6836600080a2005b606460405162461bcd60e51b815260206004820152601a60248201527f77726f6e67206e65775374617274696e67506f696e745765656b0000000000006044820152fd5b346103ab5760006003193601126103ab57611aac336122a8565b6bffffffffffffffffffffffff8082169182611af2575b826040519081527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436460203392a2005b611bb4602091600093338552606c8452611b15828260086040892001541661228a565b90338652606c85526008604087200191167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008254161790556001600160a01b0360655416906040519485809481937fa9059cbb00000000000000000000000000000000000000000000000000000000835233600484019092916bffffffffffffffffffffffff6020916001600160a01b03604085019616845216910152565b03925af18015610a3e57611bcf91600091611bd65750612221565b8180611ac3565b611bee915060203d8111610a3757610a298183611fa8565b836109f6565b346103ab5760406003193601126103ab5760206bffffffffffffffffffffffff611075611c1f611e9b565b6024356001600160a01b0363ffffffff92611c5184841694611c4086613116565b94814316119081611c6357506131f8565b16600052606c855260406000206143dc565b90508416151589611204565b346103ab5760006003193601126103ab57602060405160128152f35b346103ab5760406003193601126103ab5761042e611ca7611e9b565b611caf611ec7565b9060675490611cc160ff831615612046565b6119376001600160a01b03809360081c1615612091565b346103ab5760006003193601126103ab5760206117ba612319565b346103ab5760206003193601126103ab57600435600052606b6020526040806000206001600160a01b036001818354169201541682519182526020820152f35b346103ab5760206003193601126103ab576020611d56611d51611e9b565b6122a8565b6bffffffffffffffffffffffff60405191168152f35b346103ab5760006003193601126103ab57611d85614a11565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00606754611db860ff821615612046565b1617606755337f0ba58f37677f991d1d1abdcd0196dcaf38b76014761d2f104fd8e663bcca9478600080a2005b346103ab5760006003193601126103ab5780611e036110fe92611f8c565b601181527f4d656e746f20566f74652d457363726f770000000000000000000000000000006020820152604051918291825b60208082528251818301819052939260005b858110611e87575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201611e47565b600435906001600160a01b03821682036103ab57565b602435906001600160a01b03821682036103ab57565b6024359063ffffffff821682036103ab57565b6004359063ffffffff821682036103ab57565b6064359063ffffffff821682036103ab57565b6084359063ffffffff821682036103ab57565b6044359063ffffffff821682036103ab57565b604435906bffffffffffffffffffffffff821682036103ab57565b6080810190811067ffffffffffffffff821117611f5d57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff821117611f5d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611f5d57604052565b90604051611ff681611f41565b606081935463ffffffff811683526bffffffffffffffffffffffff808260201c1660208501528160801c16604084015260e01c910152565b67ffffffffffffffff8111611f5d5760051b60200190565b1561204d57565b606460405162461bcd60e51b815260206004820152600760248201527f73746f70706564000000000000000000000000000000000000000000000000006044820152fd5b1561209857565b606460405162461bcd60e51b815260206004820152600960248201527f6d6967726174696e6700000000000000000000000000000000000000000000006044820152fd5b156120e357565b606460405162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e740000000000000000000000000000000000000000006044820152fd5b1561212e57565b606460405162461bcd60e51b815260206004820152600d60248201527f636c69666620746f6f20626967000000000000000000000000000000000000006044820152fd5b1561217957565b606460405162461bcd60e51b815260206004820152600e60248201527f706572696f6420746f6f206269670000000000000000000000000000000000006044820152fd5b6000198114610b585760010190565b9060016bffffffffffffffffffffffff80931601918211610b5857565b9190916bffffffffffffffffffffffff80809416911601918211610b5857565b908160209103126103ab575180151581036103ab5790565b1561222857565b606460405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b906000196bffffffffffffffffffffffff80931601918211610b5857565b6bffffffffffffffffffffffff9182169082160391908211610b5857565b6001600160a01b031680600052606c6020526bffffffffffffffffffffffff600860406000200154169060ff60675416156122e1575090565b906123106123169263ffffffff4316906122fa82613116565b90600052606c60205260046040600020016143dc565b9061228a565b90565b6bffffffffffffffffffffffff8060705460201c16158015612357575b6123515761234d63ffffffff431661120a81613116565b1690565b50600090565b5060ff60675416612336565b6001600160a01b031680600052606c6020526bffffffffffffffffffffffff908160036040600020015460201c161580156123cc575b6123c55761234d9063ffffffff4316906123b282613116565b90600052606c60205260406000206143dc565b5050600090565b5060ff60675416612399565b80518210156123ec5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906001600160a01b0360679081546008908281831c16156127c15761244563ffffffff4316613116565b60005b8751811015612756578161246561245f838b6123d8565b51613166565b61246f838b6123d8565b51600052606b602052858a61259884612592878c600160406000200154169461249984878a612e76565b8d88166000528d606c8060205260056040600020016124b885856123d8565b516000526020526124cc6040600020611fe9565b98828b16600052816020526125096124f860046040600020019d8e6124f189896123d8565b5190613a70565b50509c8863ffffffff431691614769565b828b16600052816020526bffffffffffffffffffffffff916125348d8484604060002001541661228a565b938c1660005260205260406000200191167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008254161790558560005261258d604060002061071e8661258686866123d8565b5183613a70565b6123d8565b5161374c565b5050506125ab63ffffffff4316876146f1565b6125b5858d6123d8565b519289888a1c163b156103ab578990604051947fef2c96710000000000000000000000000000000000000000000000000000000086526004860152612636602494858701906060908163ffffffff918281511685526bffffffffffffffffffffffff8060208301511660208701526040820151166040860152015116910152565b1660a484015260c483015260008260e481838c8b8d1c165af18015610a3e5761270c575b50509060206126c9928760655416888a54891c1660006040518097819582947fa9059cbb000000000000000000000000000000000000000000000000000000008452600484019092916bffffffffffffffffffffffff6020916001600160a01b03604085019616845216910152565b03925af1918215610a3e576126ee926126e9916000916126f35750612221565b6121bd565b612448565b610a31915060203d602011610a3757610a298183611fa8565b67ffffffffffffffff8211612729575060405260206126c961265a565b7f4e487b710000000000000000000000000000000000000000000000000000000060005260416004526000fd5b5050505050509060405160208082018183528351809152816040840194019160005b8281106127ad5750505050807f9302ff85f986fa03af144f0430ecea91ded0b24af1655f46bde13c1d3c13b76b9133930390a2565b835186529481019492810192600101612778565b505050509050565b156127d057565b608460405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b9194939092946bffffffffffffffffffffffff811663ffffffff871611612e32576bffffffffffffffffffffffff95612874868686612e76565b61287f838284612f59565b6040519891829061288f8b611f41565b63ffffffff8a168b521660208a01521680604089015263ffffffff841660608901526066549015612dc8576bffffffffffffffffffffffff6040890151166bffffffffffffffffffffffff60208a01511610612d5e5780600052606e6020526bffffffffffffffffffffffff60406000205460201c16612cf457600052606e60205261291f8760406000206135eb565b61292f63ffffffff885116613efa565b6070547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff6fffffffffffffffffffffffff000000006129916bffffffffffffffffffffffff60208c0151166bffffffffffffffffffffffff8560201c166121e9565b60201b16911617607055612b01876129af63ffffffff825116612ebe565b63ffffffff6129e36bffffffffffffffffffffffff6020850151166bffffffffffffffffffffffff60408601511690612f0d565b169063ffffffff6060840151168015600014612cad575063ffffffff612a7d6bffffffffffffffffffffffff6040612a8495966070547fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff7bffffffffffffffffffffffff00000000000000000000000000000000612a6b868686015116878560801c166121e9565b60801b16911617607055015116614685565b9116614915565b63ffffffff612ac2612ab8612ab38c6bffffffffffffffffffffffff60408160208401511692015116906136ec565b614685565b92828c51166131e0565b612afb8b83612af486612aef6bffffffffffffffffffffffff6040612ae689612ebe565b96015116614685565b613709565b91166149d9565b166149d9565b63ffffffff875116607054906bffffffffffffffffffffffff60405192612b2784611f41565b63ffffffff8c168452818160201c16602085015260801c1660408301526060820152606f5468010000000000000000811015611f5d57806001612b6d9201606f556142f3565b919091612c7e57612b7d916135eb565b6001600160a01b038095169687600052606c60205288604060002091606654612ba593613288565b63ffffffff16612bb48261226c565b90612bbe91612f0d565b612bc7906121cc565b9060405195612bd587611f41565b63ffffffff1686526bffffffffffffffffffffffff1660208601526bffffffffffffffffffffffff16604085015263ffffffff166060840152169283600052606c602052604060002060040191606654612c2e93613288565b606654600052606b60205260406000207fffffffffffffffffffffffff00000000000000000000000000000000000000009283825416179055606654600052604060002060010191825416179055565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b9263ffffffff612a7d6bffffffffffffffffffffffff6040612cd5612cef98612cde976131e0565b94015116614685565b63ffffffff60608b015116906131e0565b612a84565b608460405162461bcd60e51b815260206004820152602360248201527f4c696e65207769746820676976656e20696420697320616c726561647920657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f536c6f7065203e20626961732c20756e61636365707461626c652076616c756560448201527f20666f7220736c6f7065000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602860248201527f536c6f7065203d3d20302c20756e61636365707461626c652076616c7565206660448201527f6f7220736c6f70650000000000000000000000000000000000000000000000006064820152fd5b606460405162461bcd60e51b815260206004820152601760248201527f57726f6e672076616c756520736c6f7065506572696f640000000000000000006044820152fd5b90612ebc9291612e8583613efa565b6001600160a01b03809216600052606c602052612ea68360406000206140d9565b16600052606c60205260046040600020016140d9565b565b9060001963ffffffff80931601918211610b5857565b63ffffffff9182169082160391908211610b5857565b9190916bffffffffffffffffffffffff80809416911602918216918203610b5857565b906bffffffffffffffffffffffff809116918215612f2a57160490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60685493929163ffffffff9081841686116130ac5760695491808216968388106130425781612f90816304c4b40093168098612ed4565b16026bffffffffffffffffffffffff95868216918203610b585760670390828211610b5857612fd583612fcc8193826302625a00961690612f0d565b96168095612ed4565b160291858316928303610b585760680392818411610b58576130038693613009936301312d00961690612f0d565b906121e9565b160190828211610b5857908216908216818102918115918304141715610b5857612316916305f5e100610629920416936106248561226c565b608460405162461bcd60e51b815260206004820152602260248201527f736c6f706520706572696f64203c206d696e696d616c206c6f636b207065726960448201527f6f640000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602260248201527f636c69666620706572696f64203c206d696e696d616c206c6f636b207065726960448201527f6f640000000000000000000000000000000000000000000000000000000000006064820152fd5b63ffffffff80911662015f6c81106123c5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea09401818111610b58576201d8808261231693606a5416921604612ed4565b600052606b6020526001600160a01b03604060002054169033820361318757565b606460405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206e6f742061206c6f636b206f776e65720000000000000000006044820152fd5b90600163ffffffff80931601918211610b5857565b91909163ffffffff80809416911601918211610b5857565b156131ff57565b606460405162461bcd60e51b815260206004820152601360248201527f626c6f636b206e6f7420796574206d696e6564000000000000000000000000006044820152fd5b60405162461bcd60e51b815260206004820152600f60248201527f6e6f7420696d706c656d656e74656400000000000000000000000000000000006044820152606490fd5b9093929193604094858101916bffffffffffffffffffffffff808451161561358257808451169360209283850195838751161061351957600187019080600052818552838b60002054861c166134b05761346c94926132fc87612ebc9c9d61344b97956134659560005287526000206135eb565b8861345d888563ffffffff9b8c98899561331987865116826140d9565b6133756133348560038401948554901c1686865116906121e9565b83547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff1660209190911b6fffffffffffffffffffffffff0000000016178355565b868861338382885116612ebe565b93606083613398898951168a86511690612f0d565b16980183815116801560001461347457505093869361343f969361342b86613433956134248a6133d8612aef9e612ab39d5460801c1685855116906121e9565b7fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff7bffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b5116614685565b921690614978565b511689885116906136ec565b988992858d51166131e0565b9661345588612ebe565b955116614685565b9116896149f5565b16856149f5565b511690614769565b84925061343f97999389966134aa9661342b612aef9c61349a6134a296612ab39d6131e0565b945116614685565b5116906131e0565b94613433565b6084858c519062461bcd60e51b82526004820152602360248201527f4c696e65207769746820676976656e20696420697320616c726561647920657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152fd5b6084848b519062461bcd60e51b82526004820152602a60248201527f536c6f7065203e20626961732c20756e61636365707461626c652076616c756560448201527f20666f7220736c6f7065000000000000000000000000000000000000000000006064820152fd5b6084885162461bcd60e51b815260206004820152602860248201527f536c6f7065203d3d20302c20756e61636365707461626c652076616c7565206660448201527f6f7220736c6f70650000000000000000000000000000000000000000000000006064820152fd5b815181546020808501516fffffffffffffffffffffffff00000000911b1663ffffffff9092167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116171781559060609061369e6bffffffffffffffffffffffff604083015185547fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff16911660801b7bffffffffffffffffffffffff0000000000000000000000000000000016178455565b01517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffff0000000000000000000000000000000000000000000000000000000083549260e01b169116179055565b906bffffffffffffffffffffffff809116918215612f2a57160690565b90600b0b90600b0b03906b7fffffffffffffffffffffff82137fffffffffffffffffffffffffffffffffffffffff800000000000000000000000831217610b5857565b9190600091838352602092606e845261376760408220611fe9565b848101916bffffffffffffffffffffffff928381511615613a2c57839061378d87613efa565b5116968360408401511696829163ffffffff6137b98b826137b28d828b511693612f0d565b16906131e0565b986137cc606088019a838c5116906131e0565b828116958383169b878d11613a1757908e61381b8f9695949361381690878061380a612ab36137fa8a612ebe565b9c6138048c612ebe565b986136ec565b9f5116915116906131e0565b612ebe565b8581169e9093908f81116138da57505050509061383791612ed4565b613840906131cb565b9961384a8c614685565b613853916149d9565b8661385d8c614685565b9061386791613709565b91169061387391614915565b613881604095606e94614915565b6fffffffffffffffffffffffff000000006138a38b6070549889861c1661228a565b831b167fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff8097161760705583525220908154169055565b929e5093925094849f508416809111156000146139a557908d939291607054858d8260801c169061390a9161228a565b60801b7bffffffffffffffffffffffff0000000000000000000000000000000016907fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff16176070558a61395c86614685565b9061396691613709565b61396f91614915565b61397891612ed4565b169061398391612eea565b86881661398f916121e9565b9a6139998b614685565b911690613873916149d9565b50506070548989169c5091506139c390508b608083901c8a1661228a565b60801b7bffffffffffffffffffffffff0000000000000000000000000000000016907fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff1617607055899a8a61399990614685565b50505050505050509450505092505080918190565b6064876040519062461bcd60e51b82526004820152601f60248201527f52656d6f76696e67204c696e652c207768696368206e6f7420657869737473006044820152fd5b9190926001830192600085815284602052613a8d60408220611fe9565b94602086016bffffffffffffffffffffffff81511615613e02576bffffffffffffffffffffffff90613abf87866140d9565b5116966bffffffffffffffffffffffff604088015116968396613aef8a63ffffffff6137b28c8287511693612f0d565b90613b06606084019263ffffffff845116906131e0565b9863ffffffff8a16928363ffffffff841611613def578b9291613b596138168f9363ffffffff8f613b4d612ab3613b3d8493612ebe565b9a613b478b612ebe565b996136ec565b9a5116915116906131e0565b9b63ffffffff808e1690851611613c5d57505050613b77908a612ed4565b613b80906131cb565b98613b8a8b614685565b613b9a9163ffffffff16896149f5565b82613ba48b614685565b90613bae91613709565b613bbe9163ffffffff1688614978565b604095613bd2613c2f936003935b83614978565b01613bef8a6bffffffffffffffffffffffff835460201c1661228a565b7fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff6fffffffffffffffffffffffff0000000083549260201b169116179055565b8252602052207fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff8154169055565b919d509a509163ffffffff9081169082168110613d6057908b929160038a0184815460801c6bffffffffffffffffffffffff1690613c9a9161228a565b81547fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff1660809190911b7bffffffffffffffffffffffff000000000000000000000000000000001617905585613cef85614685565b90613cf991613709565b613d03918b614978565b613d0c91612ed4565b63ffffffff1690613d1c91612eea565b826bffffffffffffffffffffffff16613d34916121e9565b99613d3e8a614685565b613d4e9163ffffffff16886149f5565b604095613bd2613c2f93600393613bcc565b50505097506003850197885460801c6bffffffffffffffffffffffff1698826bffffffffffffffffffffffff16998a613d989161228a565b81547fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff1660809190911b7bffffffffffffffffffffffff0000000000000000000000000000000016179055889989613d3e90614685565b5050505050505093505092505080918190565b606460405162461bcd60e51b815260206004820152601f60248201527f52656d6f76696e67204c696e652c207768696368206e6f7420657869737473006044820152fd5b90600b0b90600b0b01907fffffffffffffffffffffffffffffffffffffffff80000000000000000000000082126b7fffffffffffffffffffffff831317610b5857565b15613e9057565b608460405162461bcd60e51b815260206004820152602560248201527f736c6f7065203c20302c20736f6d657468696e672077726f6e6720776974682060448201527f736c6f70650000000000000000000000000000000000000000000000000000006064820152fd5b6070549063ffffffff8080841692168083146140d3576bffffffffffffffffffffffff92838560801c16906020948087871c169485613f9a575b505050907fffffffff000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffff00000000949360801b16951617921b161717607055565b8285999398929694991115614069579697925b878916908582101561400a5790613ffb613fd3613fcd876140039561228a565b96614685565b916000908152606d8a52613ff1604082205493600b94850b90613e46565b80930b1215613e89565b8616986131cb565b9792613fad565b9298509096509093507fffffffff0000000000000000000000000000000000000000000000000000000090507bffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffff00000000613f34565b6084876040519062461bcd60e51b82526004820152602560248201527f63616e2774207570646174652042726f6b656e4c696e6520666f72207061737460448201527f2074696d650000000000000000000000000000000000000000000000000000006064820152fd5b50505050565b600381018054939263ffffffff9081168186168181146142ea576bffffffffffffffffffffffff94858860801c1695602091818a841c1695866141da575b50505050509061418d917fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000612ebc96971617835582907fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff6fffffffffffffffffffffffff0000000083549260201b169116179055565b907fffffffff000000000000000000000000ffffffffffffffffffffffffffffffff7bffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b84869297959a9499969893981115614280579894935b898616908282101561424257906142336142166142108861423b9561228a565b97614685565b916000908152898c52613ff1604082205493600b94850b90613e46565b8816956131cb565b94936141f0565b93995093975090955090935091508190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000612ebc61418d38614117565b6084896040519062461bcd60e51b82526004820152602560248201527f63616e2774207570646174652042726f6b656e4c696e6520666f72207061737460448201527f2074696d650000000000000000000000000000000000000000000000000000006064820152fd5b50505050509050565b606f548110156123ec57606f6000527f39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e127110190600090565b80548210156123ec5760005260206000200190600090565b9060705463ffffffff80821690808516908183146143915750811061436c5750506123169161458b565b909150612316926bffffffffffffffffffffffff808460801c169360201c169161447f565b915050606f939193546000198101908111610b58576143b082916142f3565b50541690831611156143d257505060201c6bffffffffffffffffffffffff1690565b612316925061458b565b919060038301549263ffffffff9384811694808416908187146144305750851061440b57506123169350614615565b925090612316936bffffffffffffffffffffffff808560801c169460201c1692614507565b91955050600282018054906000198201918211610b585782916144529161432a565b50541690841611156144755750505060201c6bffffffffffffffffffffffff1690565b6123169350614615565b90919392936bffffffffffffffffffffffff91828216156145005794905b63ffffffff908187169185168210156144f857906144e96144ca6144c4856144f19561228a565b94614685565b916000908152606d602052613ff1604082205493600b94850b90613e46565b8316956131cb565b949061449d565b955050505050565b5093505050565b9294939091946bffffffffffffffffffffffff92838216156145835791905b63ffffffff9081841691881682101561457a579061456b61454d6144c4856145739561228a565b91600090815287602052613ff1604082205493600b94850b90613e46565b8416926131cb565b9190614526565b96505050505050565b509450505050565b90606f546145988161202e565b906145a66040519283611fa8565b808252606f600090815260207f39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e127118185015b8484106145f957505050505061231692916145f1916147d6565b92909261447f565b600183819261460785611fe9565b8152019201930192906145d7565b9291926002810180546146278161202e565b916146356040519384611fa8565b818352600090815260208082208185015b8484106146695750505050506123169394614660916147d6565b90939192614507565b600183819261467785611fe9565b815201920193019290614646565b6bffffffffffffffffffffffff166b8000000000000000000000008110156146ad57600b0b90565b606460405162461bcd60e51b815260206004820152600e60248201527f696e742063617374206572726f720000000000000000000000000000000000006044820152fd5b90607054916040519261470384611f41565b63ffffffff80931684526bffffffffffffffffffffffff90818160201c16602086015260801c166040840152166060820152606f5468010000000000000000811015611f5d578060016147599201606f556142f3565b919091612c7e57612ebc916135eb565b9091600360028301920154926040519361478285611f41565b63ffffffff80931685526bffffffffffffffffffffffff90818160201c16602087015260801c166040850152166060830152805468010000000000000000811015611f5d576147599160018201815561432a565b91825191821580156148fb575b6148ef57600092600019908181019081116148c2579084925b60808410614853575b5050505063ffffffff60606148496bffffffffffffffffffffffff9485602061482e838a6123d8565b5101511695604061483f838a6123d8565b51015116966123d8565b5101511691929190565b90919294838110156148bc57838101808211610b58576001808201809211610b58571c9063ffffffff80614887848b6123d8565b515116908416106148a5575061489d90956121bd565b9291906147fc565b959350828101908111610b585761489d90936121bd565b94614805565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b50600092508291508190565b6123ec5763ffffffff8060208601515116908216106147e3565b906149319082600052606d602052604060002054600b0b613e46565b90600052606d6020526040600020907fffffffffffffffffffffffffffffffffffffffff000000000000000000000000825416906bffffffffffffffffffffffff16179055565b9091614994908360005282602052604060002054600b0b613e46565b916000526020526040600020907fffffffffffffffffffffffffffffffffffffffff000000000000000000000000825416906bffffffffffffffffffffffff16179055565b906149319082600052606d602052604060002054600b0b613709565b9091614994908360005282602052604060002054600b0b613709565b6001600160a01b03603354163303614a2557565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b603354906001600160a01b0380911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fea164736f6c6343000812000a" - }, - { - "transactionType": "CREATE", - "address": "0xc2Cb4e0b0079DE0F4eB2d487DC57e6dD1a49e1F5", - "initCode": "60406080815262000f9d8038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a357501617905551610b469081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe608060405236610217577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163303610212576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b602081519101f35b7f4f1ef2860000000000000000000000000000000000000000000000000000000081036100d957506100d4610893565b61009c565b7f8f28397000000000000000000000000000000000000000000000000000000000810361010957506100d461051f565b7ff851a44000000000000000000000000000000000000000000000000000000000810361013957506100d46103ae565b7f5c60da1b0000000000000000000000000000000000000000000000000000000003610167576100d4610407565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b6102aa565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff1633036102aa576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e156102fd573d90f35b3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034c57604052565b610301565b6020810190811067ffffffffffffffff82111761034c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034c57604052565b6103b661094f565b73ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354166040519060208201526020815261040481610330565b90565b61040f61094f565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166040519060208201526020815261040481610330565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361048057565b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126104805760043573ffffffffffffffffffffffffffffffffffffffff811681036104805790565b67ffffffffffffffff811161034c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6040519061051982610351565b60008252565b61052761094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff8061054e36610485565b167fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a181156105d8577fffffffffffffffffffffffff00000000000000000000000000000000000000001617905561040461050c565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b61066461094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff61068a36610485565b166040519061069882610351565b60008252803b15610759577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610751575b610737575b505060405161073081610351565b6000815290565b61074991610743610956565b916109c6565b503880610722565b50600061071d565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b803b156107595773ffffffffffffffffffffffffffffffffffffffff81167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061088b575b61087c575050565b61088891610743610956565b50565b506001610874565b366004116104805760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610480576108cd61045d565b6024359067ffffffffffffffff82116104805736602383011215610480578160040135916108fa836104d2565b91610908604051938461036d565b838352366024858401011161048057600060208561094796602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152166107dd565b61040461050c565b3461048057565b604051906060820182811067ffffffffffffffff82111761034c57604052602782527f206661696c6564000000000000000000000000000000000000000000000000006040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806104049493602081519101845af43d15610a05573d916109e8836104d2565b926109f6604051948561036d565b83523d6000602085013e610a72565b606091610a72565b15610a1457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015610a925750815115610a86575090565b610404903b1515610a0d565b825190915015610aa55750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610b22575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610ae156fea164736f6c6343000812000a000000000000000000000000f2b572a2657e16ef600f8f84be29a49098b143fd0000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ac512bb00000000000000000000000065130a1c92d925ab35f9b4522bab29f309d656e300000000000000000000000000000000000000000000000000000000000000b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000" - }, - { - "transactionType": "CREATE", - "address": "0x17E2EC91EB324E48B35cEFF6EaA689bE546f8850", - "initCode": "6080806040523461001657612b99908161001c8239f35b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301d5062a1461191d57806301ffc9a71461184957806307bd02651461180e5780630d3cf6fc146117d3578063134008d31461171e57806313bc9f2014611700578063150b7a0214611692578063248a9ca3146116635780632ab0f529146116365780632f2ff15d1461157357806331d507501461154757806336568abe1461149b578063584b153e1461146457806364d62353146113a8578063672f70c5146109ac5780638065657f1461098d5780638f2a0bb01461086b5780638f61f4f51461083057806391d14854146107d5578063a217fddf146107b9578063b08e51c01461077e578063b1c5f42714610754578063bc197c81146106b3578063c4d252f514610391578063d45c443514610365578063d547741f14610324578063e38335e5146101f0578063f23a6e61146101825763f27a0c920361000e573461017d57600060031936011261017d576020609854604051908152f35b600080fd5b3461017d5760a060031936011261017d5761019b6119c1565b506101a46119e4565b5060843567ffffffffffffffff811161017d576101c5903690600401611b3c565b5060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b61028461027d6101ff36611c32565b600080527f7dc9f88e569f94faad6fa0d44dd44858caf3f34f1bd1c985800aedf5793aad8b6020527fa01e231ca478cf51f663e103939e98de36fa76d3e4e0b1de673dc711acc3a01b5492999198939693919260ff1615610316575b6102668585146125f0565b6102718a85146125f0565b888a888789888d612409565b9687612963565b60005b8181106102975761001987612a0f565b8080887fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5888886103096102f08f98610311998f828e6102e38f836102de916102e996612661565b612671565b97612661565b3595612692565b906102fd8282878761283a565b60405194859485612805565b0390a361233e565b610287565b61031f33611f8c565b61025b565b3461017d57604060031936011261017d576100196004356103436119e4565b908060005260656020526103606001604060002001543390612107565b612249565b3461017d57602060031936011261017d5760043560005260976020526020604060002054604051908152f35b3461017d5760208060031936011261017d57600435907ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f7838060005260658252604060002033600052825260ff60406000205416156104a7575061040282600052609760205260016040600020541190565b1561043d576097908260005252600060408120557fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb70600080a2005b6084906040519062461bcd60e51b82526004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20636160448201527f6e6e6f742062652063616e63656c6c65640000000000000000000000000000006064820152fd5b906104b133612a3e565b6040516104bd81611ab2565b604281528281019360603686378151156106845760308553815160019081101561068457607860218401536041905b8082116106045750506105c157601f6044939261058f6048601f1994604051988991610580898401967f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000885261054b815180928d603789019101611cf2565b8401917f206973206d697373696e6720726f6c6520000000000000000000000000000000603784015251809386840190611cf2565b01036028810189520187611afd565b6105b860405196879562461bcd60e51b8752600487015251809281602488015287870190611cf2565b01168101030190fd5b6064836040519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015610684577f3031323334353637383961626364656600000000000000000000000000000000901a6106408486612a2d565b5360041c9180156106555760001901906104ec565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b3461017d5760a060031936011261017d576106cc6119c1565b506106d56119e4565b5067ffffffffffffffff60443581811161017d576106f7903690600401611c94565b5060643581811161017d57610710903690600401611c94565b5060843590811161017d57610729903690600401611b3c565b5060206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b3461017d57602061077661076736611c32565b96959095949194939293612409565b604051908152f35b3461017d57600060031936011261017d5760206040517ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f7838152f35b3461017d57600060031936011261017d57602060405160008152f35b3461017d57604060031936011261017d576107ee6119e4565b600435600052606560205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461017d57600060031936011261017d5760206040517fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc18152f35b3461017d5760c060031936011261017d5767ffffffffffffffff60043581811161017d5761089d903690600401611c01565b919060243582811161017d576108b7903690600401611c01565b91909260443590811161017d576108d2903690600401611c01565b906064359460a435936108e433611d15565b6108ef8689146125f0565b6108fa8489146125f0565b61090c6084358886868a878e88612409565b9461091781876126f2565b60005b89811061092357005b8080887f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca88888f8f8f9061097b8f9a6109889b6109748f8f9661096e6102de866103099b8195612661565b99612661565b3597612692565b90604051968796876125aa565b61091a565b3461017d5760206107766109a036611a56565b949390939291926123a6565b3461017d5760a060031936011261017d5767ffffffffffffffff60243581811161017d576109de903690600401611b9b565b9060443590811161017d576109f7903690600401611b9b565b6064359073ffffffffffffffffffffffffffffffffffffffff8216820361017d5760843573ffffffffffffffffffffffffffffffffffffffff8116810361017d576000549260ff8460081c16159384809561139b575b8015611384575b1561131a5784600160ff198316176000556112eb575b50610a8560ff60005460081c16610a80816122cd565b6122cd565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca560005260656020527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca560016040600020018181549155817fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff600080a47fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16000527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5600160406000200181815491557fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc17fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff600080a47fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636000527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5600160406000200181815491557fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e637fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff600080a47ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f7836000527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5600160406000200181815491557ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f7837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff600080a47f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca560005260406000203060005260205260ff6040600020541615611264575b73ffffffffffffffffffffffffffffffffffffffff811661117b575b5060005b8451811015610f00578073ffffffffffffffffffffffffffffffffffffffff610d55610ded938861234d565b511660008181527fafe71ff1fe81c59ca16af21c02420893e650adae4948ece1623218f842885477602052604090205460ff1615610e79575b5073ffffffffffffffffffffffffffffffffffffffff610dae828861234d565b511660008181527fb33a3829f2d1f31fd111fcd13892b72b93a782f7b93bf968903b15b040efa320602052604090205460ff1615610df2575b5061233e565b610d29565b60008181527fb33a3829f2d1f31fd111fcd13892b72b93a782f7b93bf968903b15b040efa32060205260408120805460ff191660011790553391907ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a486610de7565b60008181527fafe71ff1fe81c59ca16af21c02420893e650adae4948ece1623218f84288547760205260408120805460ff191660011790553391907fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a486610d8e565b508260005b8351811015610ffb578073ffffffffffffffffffffffffffffffffffffffff610f31610f6f938761234d565b511660008181527f7dc9f88e569f94faad6fa0d44dd44858caf3f34f1bd1c985800aedf5793aad8b602052604090205460ff1615610f74575061233e565b610f05565b60008181527f7dc9f88e569f94faad6fa0d44dd44858caf3f34f1bd1c985800aedf5793aad8b60205260408120805460ff191660011790553391907fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a485610de7565b50907f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5604060043580609855815190600082526020820152a173ffffffffffffffffffffffffffffffffffffffff811660009081527fb33a3829f2d1f31fd111fcd13892b72b93a782f7b93bf968903b15b040efa320602052604090205460ff16156110de575b5061108957005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b73ffffffffffffffffffffffffffffffffffffffff1660008181527fb33a3829f2d1f31fd111fcd13892b72b93a782f7b93bf968903b15b040efa32060205260408120805460ff191660011790553391907ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a481611082565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fa7f0fe6b160f14839da5807e54d8be701aeb7039e18d9515384c8011270d6e77602052604090205460ff16610d255773ffffffffffffffffffffffffffffffffffffffff1660008181527fa7f0fe6b160f14839da5807e54d8be701aeb7039e18d9515384c8011270d6e7760205260408120805460ff191660011790553391907f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a484610d25565b3060008181527fa7f0fe6b160f14839da5807e54d8be701aeb7039e18d9515384c8011270d6e7760205260408120805460ff191660011790553391907f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4610d09565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011760005585610a6a565b608460405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b158015610a545750600160ff821614610a54565b50600160ff821610610a4d565b3461017d57602060031936011261017d576004353033036113fa577f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560406098548151908152836020820152a1609855005b608460405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201527f62652074696d656c6f636b0000000000000000000000000000000000000000006064820152fd5b3461017d57602060031936011261017d576020611491600435600052609760205260016040600020541190565b6040519015158152f35b3461017d57604060031936011261017d576114b46119e4565b3373ffffffffffffffffffffffffffffffffffffffff8216036114dd5761001990600435612249565b608460405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b3461017d57602060031936011261017d5760206114916004356000526097602052604060002054151590565b3461017d57604060031936011261017d5760043561158f6119e4565b8160005260656020526115ab6001604060002001543390612107565b81600052606560205273ffffffffffffffffffffffffffffffffffffffff60406000209116908160005260205260ff60406000205416156115e857005b8160005260656020526040600020816000526020526040600020600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4005b3461017d57602060031936011261017d576020611491600435600052609760205260016040600020541490565b3461017d57602060031936011261017d5760043560005260656020526020600160406000200154604051908152f35b3461017d57608060031936011261017d576116ab6119c1565b506116b46119e4565b5060643567ffffffffffffffff811161017d576116d5903690600401611b3c565b5060206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b3461017d57602060031936011261017d576020611491600435612361565b6100196117b160006117bd7fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b586117a861175636611a56565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e638a999597929994939452606560205260408a208a805260205260ff60408b205416156117c5575b88848489896123a6565b98899788612963565b6102fd8282878761283a565b0390a3612a0f565b6117ce33611f8c565b61179e565b3461017d57600060031936011261017d5760206040517f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca58152f35b3461017d57600060031936011261017d5760206040517fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e638152f35b3461017d57602060031936011261017d576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361017d57807f4e2312e000000000000000000000000000000000000000000000000000000000602092149081156118c0575b506040519015158152f35b7f7965db0b000000000000000000000000000000000000000000000000000000008114915081156118f3575b50826118b5565b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014826118ec565b3461017d5760c060031936011261017d576119366119c1565b6024359060443567ffffffffffffffff811161017d576000926119bc926119827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca933690600401611a28565b60649591953560a4359161199533611d15565b6119a560843583838b8a8a6123a6565b976119b0848a6126f2565b604051968796876125aa565b0390a3005b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361017d57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361017d57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361017d57565b9181601f8401121561017d5782359167ffffffffffffffff831161017d576020838186019501011161017d57565b60a060031982011261017d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361017d5791602435916044359067ffffffffffffffff821161017d57611aa691600401611a28565b90916064359060843590565b6080810190811067ffffffffffffffff821117611ace57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff821117611ace57604052565b67ffffffffffffffff8111611ace57601f01601f191660200190565b81601f8201121561017d57803590611b5382611b20565b92611b616040519485611afd565b8284526020838301011161017d57816000926020809301838601378301015290565b67ffffffffffffffff8111611ace5760051b60200190565b81601f8201121561017d57803591611bb283611b83565b92611bc06040519485611afd565b808452602092838086019260051b82010192831161017d578301905b828210611bea575050505090565b838091611bf684611a07565b815201910190611bdc565b9181601f8401121561017d5782359167ffffffffffffffff831161017d576020808501948460051b01011161017d57565b9060a060031983011261017d5767ffffffffffffffff60043581811161017d5783611c5f91600401611c01565b9390939260243583811161017d5782611c7a91600401611c01565b9390939260443591821161017d57611aa691600401611c01565b81601f8201121561017d57803591611cab83611b83565b92611cb96040519485611afd565b808452602092838086019260051b82010192831161017d578301905b828210611ce3575050505090565b81358152908301908301611cd5565b60005b838110611d055750506000910152565b8181015183820152602001611cf5565b73ffffffffffffffffffffffffffffffffffffffff1660008181527fafe71ff1fe81c59ca16af21c02420893e650adae4948ece1623218f8428854776020908152604080832054929391927fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1929060ff1615611d92575050505050565b611d9b90612a3e565b91815190611da882611ab2565b60428252848201956060368837825115611f5f5760308753825190600191821015611f5f5790607860218501536041915b818311611eb257505050611e7057604493926105b883611e4c6048601f95601f1997519a8b91611e3d8b8401987f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a5261054b8d8251928391603789019101611cf2565b0103602881018b520189611afd565b5196879562461bcd60e51b8752600487015251809281602488015287870190611cf2565b60648483519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015611f32577f3031323334353637383961626364656600000000000000000000000000000000901a611eef8587612a2d565b5360041c928015611f0557600019019190611dd9565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b73ffffffffffffffffffffffffffffffffffffffff1660008181527f7dc9f88e569f94faad6fa0d44dd44858caf3f34f1bd1c985800aedf5793aad8b6020908152604080832054929391927fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63929060ff1615612009575050505050565b61201290612a3e565b9181519061201f82611ab2565b60428252848201956060368837825115611f5f5760308753825190600191821015611f5f5790607860218501536041915b8183116120b457505050611e7057604493926105b883611e4c6048601f95601f1997519a8b91611e3d8b8401987f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a5261054b8d8251928391603789019101611cf2565b909192600f81166010811015611f32577f3031323334353637383961626364656600000000000000000000000000000000901a6120f18587612a2d565b5360041c928015611f0557600019019190612050565b906000918083526020916065835260409073ffffffffffffffffffffffffffffffffffffffff828620911690818652845260ff82862054161561214b575050505050565b61215490612a3e565b9181519061216182611ab2565b60428252848201956060368837825115611f5f5760308753825190600191821015611f5f5790607860218501536041915b8183116121f657505050611e7057604493926105b883611e4c6048601f95601f1997519a8b91611e3d8b8401987f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a5261054b8d8251928391603789019101611cf2565b909192600f81166010811015611f32577f3031323334353637383961626364656600000000000000000000000000000000901a6122338587612a2d565b5360041c928015611f0557600019019190612192565b90600091808352606560205273ffffffffffffffffffffffffffffffffffffffff6040842092169182845260205260ff60408420541661228857505050565b8083526065602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b156122d457565b608460405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b60001981146106555760010190565b80518210156106845760209160051b010190565b600052609760205260406000205460018111908161237d575090565b905042101590565b601f8260209493601f19938186528686013760008582860101520116010190565b946123ea6124039495929360405196879573ffffffffffffffffffffffffffffffffffffffff602088019a168a52604087015260a0606087015260c0860191612385565b91608084015260a083015203601f198101835282611afd565b51902090565b969294909695919560405196602091828901998060c08b0160a08d525260e08a01919060005b858282106125775750505050601f1997888a83030160408b01528082527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811161017d579089969495939897929160051b80928a830137019380888601878703606089015252604085019460408260051b82010195836000925b8484106124d1575050505050506124039550608084015260a083015203908101835282611afd565b91939698509193989994967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082820301845289357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181121561017d57830186810191903567ffffffffffffffff811161017d57803603831361017d5761256088928392600195612385565b9b0194019401918b98969394919a9997959a6124a9565b80849573ffffffffffffffffffffffffffffffffffffffff61259c6001959697611a07565b16815201940192910161242f565b9290936125e69273ffffffffffffffffffffffffffffffffffffffff60809699989799168552602085015260a0604085015260a0840191612385565b9460608201520152565b156125f757565b608460405162461bcd60e51b815260206004820152602360248201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152fd5b91908110156106845760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff8116810361017d5790565b91908110156106845760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561017d57019081359167ffffffffffffffff831161017d57602001823603811361017d579190565b9061270a826000526097602052604060002054151590565b61279b57609854811061273157420190814211610655576000526097602052604060002055565b608460405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e7460448201527f2064656c617900000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201527f7265616479207363686564756c656400000000000000000000000000000000006064820152fd5b612837949273ffffffffffffffffffffffffffffffffffffffff60609316825260208201528160408201520191612385565b90565b90926000938493826040519384928337810185815203925af13d156128ed573d61286381611b20565b906128716040519283611afd565b8152600060203d92013e5b1561288357565b608460405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e67207460448201527f72616e73616374696f6e207265766572746564000000000000000000000000006064820152fd5b61287c565b156128f957565b608460405162461bcd60e51b815260206004820152602a60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20697360448201527f206e6f74207265616479000000000000000000000000000000000000000000006064820152fd5b61296f61297491612361565b6128f2565b80159081156129f0575b501561298657565b608460405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e67206465706560448201527f6e64656e637900000000000000000000000000000000000000000000000000006064820152fd5b612a099150600052609760205260016040600020541490565b3861297e565b612a1b61296f82612361565b60005260976020526001604060002055565b908151811015610684570160200190565b604051906060820182811067ffffffffffffffff821117611ace57604052602a82526020820160403682378251156106845760309053815160019081101561068457607860218401536029905b808211612adf575050612a9b5790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015612b5e577f3031323334353637383961626364656600000000000000000000000000000000901a612b1b8486612a2d565b5360041c918015612b30576000190190612a8b565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fdfea164736f6c6343000812000a" - }, - { - "transactionType": "CREATE", - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "initCode": "60406080815262000f9d8038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a357501617905551610b469081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe608060405236610217577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163303610212576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b602081519101f35b7f4f1ef2860000000000000000000000000000000000000000000000000000000081036100d957506100d4610893565b61009c565b7f8f28397000000000000000000000000000000000000000000000000000000000810361010957506100d461051f565b7ff851a44000000000000000000000000000000000000000000000000000000000810361013957506100d46103ae565b7f5c60da1b0000000000000000000000000000000000000000000000000000000003610167576100d4610407565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b6102aa565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff1633036102aa576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e156102fd573d90f35b3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034c57604052565b610301565b6020810190811067ffffffffffffffff82111761034c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034c57604052565b6103b661094f565b73ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354166040519060208201526020815261040481610330565b90565b61040f61094f565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166040519060208201526020815261040481610330565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361048057565b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126104805760043573ffffffffffffffffffffffffffffffffffffffff811681036104805790565b67ffffffffffffffff811161034c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6040519061051982610351565b60008252565b61052761094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff8061054e36610485565b167fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a181156105d8577fffffffffffffffffffffffff00000000000000000000000000000000000000001617905561040461050c565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b61066461094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff61068a36610485565b166040519061069882610351565b60008252803b15610759577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610751575b610737575b505060405161073081610351565b6000815290565b61074991610743610956565b916109c6565b503880610722565b50600061071d565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b803b156107595773ffffffffffffffffffffffffffffffffffffffff81167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061088b575b61087c575050565b61088891610743610956565b50565b506001610874565b366004116104805760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610480576108cd61045d565b6024359067ffffffffffffffff82116104805736602383011215610480578160040135916108fa836104d2565b91610908604051938461036d565b838352366024858401011161048057600060208561094796602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152166107dd565b61040461050c565b3461048057565b604051906060820182811067ffffffffffffffff82111761034c57604052602782527f206661696c6564000000000000000000000000000000000000000000000000006040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806104049493602081519101845af43d15610a05573d916109e8836104d2565b926109f6604051948561036d565b83523d6000602085013e610a72565b606091610a72565b15610a1457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015610a925750815115610a86575090565b610404903b1515610a0d565b825190915015610aa55750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610b22575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610ae156fea164736f6c6343000812000a00000000000000000000000017e2ec91eb324e48b35ceff6eaa689be546f88500000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000124672f70c5000000000000000000000000000000000000000000000000000000000002a30000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d810000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a59369939422b94538ad681d1d093ada463d39ec0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - }, - { - "transactionType": "CREATE", - "address": "0x546940c044E38ECb820c3C2c98B5b3755035F916", - "initCode": "6080806040523461001657615136908161001c8239f35b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161258f565b005b60003560e01c8063013cf08b1461033357806301ffc9a71461032e57806302a251a314610329578063034201811461032457806306f3f9e61461031f57806306fdde031461031a578063150b7a0214610315578063160cbed71461031057806324bc1a641461030b5780632656227d146103065780632d63f693146103015780632fe3e261146102fc578063328dd982146102f75780633932abb1146102f25780633bccf4fd146102ed5780633e4f49e6146102e857806340e58ee5146102e357806343859632146102de57806354fd4d50146102d957806356781388146102d45780635f398a14146102cf57806360c4247f146102ca57806370b0f660146102c55780637b3c71d3146102c05780637d5e81e2146102bb57806397c3d334146102b65780639a802a6d146102b1578063a2910789146102ac578063a7713a70146102a7578063a890c910146102a2578063ab58fb8e1461029d578063b58131b014610298578063bc197c8114610293578063c01f9e371461028e578063c28bc2fa14610289578063c59057e414610284578063d33219b41461027f578063da95691a1461027a578063dd4e2ba514610275578063ddf0b00914610270578063deaaa7cc1461026b578063e23a9a5214610266578063ea0217cf14610261578063eb9019d41461025c578063ece40cc114610257578063f23a6e6114610252578063f8ce560a1461024d578063fc0c546a146102485763fe0d94c10361000e57612020565b611feb565b611f6f565b611efd565b611e8f565b611de6565b611d78565b611c93565b611c58565b611c07565b611ba9565b611b0e565b611ad9565b611abd565b611a25565b6119ed565b611947565b611928565b61190a565b611839565b61181e565b6116b8565b6115de565b6115c2565b611539565b6114e3565b611475565b611457565b6113e7565b61139f565b611341565b6112d9565b611224565b6111f5565b61110a565b6110eb565b61104c565b610f37565b610ef8565b610ee1565b610dfc565b610dd8565b610ba4565b610a81565b610876565b6107ed565b6105d4565b61048a565b346104855760206003193601126104855760043561035081613ff7565b90806000526104816101308060205267ffffffffffffffff6103756040600020612615565b511690836000526020526103b06103a36103956001604060002001612615565b5167ffffffffffffffff1690565b67ffffffffffffffff1690565b926103c681600052610193602052604060002090565b936103e5855473ffffffffffffffffffffffffffffffffffffffff1690565b94600581015460076006830154920154926103ff85613c6d565b95610409876111e6565b610412876111e6565b604051998a99600260078a149914978b98959273ffffffffffffffffffffffffffffffffffffffff6101209996939c9b9895929c6101408c019d8c521660208b015260408a01526060890152608088015260a087015260c086015260e085015215156101008401521515910152565b0390f35b600080fd5b34610485576020600319360112610485576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361048557807f6e665ced00000000000000000000000000000000000000000000000000000000610481921490811561050a575b5060405190151581529081906020820190565b7fbf26d8970000000000000000000000000000000000000000000000000000000081149150811561059f575b8115610575575b811561054b575b50386104f7565b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501438610544565b7f4e2312e0000000000000000000000000000000000000000000000000000000008114915061053d565b7f79dd796f0000000000000000000000000000000000000000000000000000000081149150610536565b600091031261048557565b3461048557600060031936011261048557602061016254604051908152f35b6024359060ff8216820361048557565b6044359060ff8216820361048557565b9181601f840112156104855782359167ffffffffffffffff8311610485576020838186019501011161048557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761068c57604052565b610641565b67ffffffffffffffff811161068c57604052565b6040810190811067ffffffffffffffff82111761068c57604052565b6080810190811067ffffffffffffffff82111761068c57604052565b6020810190811067ffffffffffffffff82111761068c57604052565b60c0810190811067ffffffffffffffff82111761068c57604052565b90601f601f19910116810190811067ffffffffffffffff82111761068c57604052565b60405190610745826106a5565b565b67ffffffffffffffff811161068c57601f01601f191660200190565b91909161076f81610747565b61077c6040519182610715565b8093828252821161048557818160009384602080950137010152565b9291926107a482610747565b916107b26040519384610715565b829481845281830111610485578281602093846000960137010152565b9080601f83011215610485578160206107ea93359101610798565b90565b346104855760e0600319360112610485576108066105f3565b67ffffffffffffffff60443581811161048557610827903690600401610613565b91606435908111610485576108409036906004016107cf565b9260843560ff8116810361048557610481946108669460c4359460a4359460043561293c565b6040519081529081906020820190565b346104855760206003193601126104855760043573ffffffffffffffffffffffffffffffffffffffff61022a54166108af813314612bb3565b3003610a02575b60648111610972577f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997906108e8614642565b80151580610967575b61091b575b6108ff82614a26565b505060408051918252602082019290925290819081015b0390a1005b61096261092782614e81565b61095d610932610738565b600081527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092166020830152565b61489a565b6108f6565b506101f954156108f1565b60a460405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e6160648201527f746f7200000000000000000000000000000000000000000000000000000000006084820152fd5b610a0c3636610763565b602081519101205b80610a1d615091565b03610a1457506108b6565b60005b838110610a3b5750506000910152565b8181015183820152602001610a2b565b90601f19601f602093610a6981518092818752878088019101610a28565b0116010190565b9060206107ea928181520190610a4b565b3461048557600080600319360112610b8357604051908061012f90815490610aa8826123bb565b80865292600192808416908115610b385750600114610ade575b61048186610ad281880382610715565b60405191829182610a70565b815292507f232da9e50dad2971456a78fb5cd6ff6b75019984d6e918139ce990999420f9795b828410610b20575050508101602001610ad28261048138610ac2565b80546020858701810191909152909301928101610b04565b87965061048197945060209350610ad29592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b820101929338610ac2565b80fd5b73ffffffffffffffffffffffffffffffffffffffff81160361048557565b3461048557608060031936011261048557610bc0600435610b86565b610bcb602435610b86565b60643567ffffffffffffffff811161048557610beb9036906004016107cf565b5060206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b67ffffffffffffffff811161068c5760051b60200190565b81601f8201121561048557803591610c4583610c16565b92610c536040519485610715565b808452602092838086019260051b820101928311610485578301905b828210610c7d575050505090565b8380918335610c8b81610b86565b815201910190610c6f565b81601f8201121561048557803591610cad83610c16565b92610cbb6040519485610715565b808452602092838086019260051b820101928311610485578301905b828210610ce5575050505090565b81358152908301908301610cd7565b9080601f8301121561048557813590610d0c82610c16565b92610d1a6040519485610715565b828452602092838086019160051b8301019280841161048557848301915b848310610d485750505050505090565b823567ffffffffffffffff8111610485578691610d6a848480948901016107cf565b815201920191610d38565b60806003198201126104855767ffffffffffffffff916004358381116104855782610da291600401610c2e565b926024358181116104855783610dba91600401610c96565b9260443591821161048557610dd191600401610cf4565b9060643590565b34610485576020610df4610deb36610d75565b9291909161412c565b604051908152f35b34610485576000600319360112610485576000194301438111610ea357602490602073ffffffffffffffffffffffffffffffffffffffff6101c55416604051938480927f8e539e8c0000000000000000000000000000000000000000000000000000000082528560048301525afa918215610edc57600092610ea8575b50610e83906146c2565b90818102918183041490151715610ea35760405160649091048152602090f35b612875565b610e83919250610ece9060203d8111610ed5575b610ec68183610715565b810190613fe8565b9190610e79565b503d610ebc565b613c61565b6020610df4610eef36610d75565b929190916126ae565b3461048557602060031936011261048557600435600052610130602052602067ffffffffffffffff610f2d6040600020612615565b5116604051908152f35b346104855760006003193601126104855760206040517fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888152f35b90815180825260208080930193019160005b828110610f92575050505090565b835173ffffffffffffffffffffffffffffffffffffffff1685529381019392810192600101610f84565b90815180825260208080930193019160005b828110610fdc575050505090565b835185529381019392810192600101610fce565b908082519081815260208091019281808460051b8301019501936000915b84831061101e5750505050505090565b909192939495848061103c83601f1986600196030187528a51610a4b565b980193019301919493929061100e565b34610485576020600319360112610485576004356000526101936020526110c1604060002061048161108060018301613288565b916110dd611090600283016132ed565b916110cf6110ac60046110a56003850161318d565b930161318d565b93604051978897608089526080890190610f72565b908782036020890152610fbc565b908582036040870152610ff0565b908382036060850152610ff0565b3461048557600060031936011261048557602061016154604051908152f35b346104855760a06003193601126104855761048161086660043561112c6105f3565b6111a161119961113a610603565b60405160208101917f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f835286604083015260ff8616606083015260608252611181826106c1565b6111946084359360643593519020614de5565b614d5c565b919091614c21565b604051926111ae846106dd565b600084526129d7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600811156111f057565b6111b7565b3461048557602060031936011261048557611211600435613c6d565b60405160088210156111f0576020918152f35b3461048557602060031936011261048557600435600052610193602052610021604060002061127573ffffffffffffffffffffffffffffffffffffffff8254168033149081156112ba575b5061333c565b6112966112846003830161318d565b6112906004840161318d565b906133ed565b6009820154916112b460026112ad60018401613288565b92016132ed565b906143c5565b6112ce91506112c843612e96565b906122b8565b61016354113861126f565b3461048557604060031936011261048557602060ff6113356024356112fd81610b86565b600435600052610193845260086040600020019073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54166040519015158152f35b3461048557600060031936011261048557610481604051611361816106a5565b600181527f31000000000000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610a4b565b34610485576040600319360112610485576020610df46113bd6105f3565b6040516113c9816106dd565b60008152604051916113da836106dd565b6000835233600435612a53565b34610485576080600319360112610485576114006105f3565b67ffffffffffffffff9060443582811161048557611422903690600401610613565b90916064359384116104855761144d610df49361144560209636906004016107cf565b933691610798565b9033600435612a53565b34610485576020600319360112610485576020610df46004356146c2565b346104855760206003193601126104855773ffffffffffffffffffffffffffffffffffffffff61022a54166114ab813314612bb3565b30036114bd575b610021600435613a8e565b6114c73636610763565b602081519101205b806114d8615091565b036114cf57506114b2565b34610485576060600319360112610485576114fc6105f3565b60443567ffffffffffffffff81116104855760209161152c611525610df4933690600401610613565b3691610798565b604051916113da836106dd565b346104855760806003193601126104855767ffffffffffffffff6004358181116104855761156b903690600401610c2e565b9060243581811161048557611584903690600401610c96565b916044358281116104855761159d903690600401610cf4565b60643592831161048557610481936115bc6108669436906004016107cf565b92612d06565b3461048557600060031936011261048557602060405160648152f35b34610485576060600319360112610485576004356115fb81610b86565b60443567ffffffffffffffff81116104855761161b9036906004016107cf565b50602073ffffffffffffffffffffffffffffffffffffffff6044816101c554169360405194859384927f3a46b1a800000000000000000000000000000000000000000000000000000000845216600483015260243560248301525afa8015610edc576104819160009161169a575b506040519081529081906020820190565b6116b2915060203d8111610ed557610ec68183610715565b38611689565b346104855760c0600319360112610485576004356116d581610b86565b6117546024356116e481610b86565b6000549261170960ff8560081c161580958196611810575b81156117f0575b5061206c565b8361173a60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b6117ba575b60a435916084359160643591604435916120dd565b61175a57005b6117877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498908060208101610916565b6117eb6101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b61173f565b303b15915081611802575b5038611703565b6001915060ff1614386117fb565b600160ff82161091506116fc565b34610485576000600319360112610485576020610df4614642565b346104855760206003193601126104855760043561185681610b86565b73ffffffffffffffffffffffffffffffffffffffff61022a918183541661187e813314612bb3565b30036118e4575b7fffffffffffffffffffffffff0000000000000000000000000000000000000000907f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401604084865493169481519084168152856020820152a116179055005b6118ee3636610763565b602081519101205b806118ff615091565b036118f65750611885565b34610485576020600319360112610485576020610df4600435613ff7565b3461048557600060031936011261048557602061016354604051908152f35b346104855760a060031936011261048557611963600435610b86565b61196e602435610b86565b67ffffffffffffffff6044358181116104855761198f903690600401610c96565b50606435818111610485576119a8903690600401610c96565b50608435908111610485576119c19036906004016107cf565b506040517fbc197c81000000000000000000000000000000000000000000000000000000008152602090f35b3461048557602060031936011261048557600435600052610130602052602067ffffffffffffffff610f2d6001604060002001612615565b606060031936011261048557600435611a3d81610b86565b60443567ffffffffffffffff811161048557611a5d903690600401610613565b9073ffffffffffffffffffffffffffffffffffffffff61022a5416611a83813314612bb3565b3003611a97575b6100219260243590612bfe565b611aa13636610763565b602081519101205b80611ab2615091565b03611aa95750611a8a565b34610485576020610df4611ad036610d75565b929190916125b1565b3461048557600060031936011261048557602073ffffffffffffffffffffffffffffffffffffffff61022a5416604051908152f35b346104855760a06003193601126104855767ffffffffffffffff6004803582811161048557611b409036908301610c2e565b60243583811161048557611b579036908401610c96565b60443584811161048557611b6e9036908501610cf4565b60643585811161048557611b859036908601610cf4565b9160843595861161048557611ba361086695610481973691016107cf565b936130f5565b3461048557600060031936011261048557610481604051611bc9816106a5565b601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152604051918291602083526020830190610a4b565b34610485576020600319360112610485576004356000526101936020526100216040600020611c3b6112846003830161318d565b600982015491611c5260026112ad60018401613288565b9061412c565b346104855760006003193601126104855760206040517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f8152f35b34610485576040806003193601126104855761048190611d09602435611cb881610b86565b6000838051611cc681610670565b8281528260208201520152600435600052610193602052600883600020019073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b906bffffffffffffffffffffffff815192611d2384610670565b5460ff81161515845260ff8160081c16602085015260101c1681830152519182918291909160406bffffffffffffffffffffffff81606084019580511515855260ff6020820151166020860152015116910152565b346104855760206003193601126104855773ffffffffffffffffffffffffffffffffffffffff61022a5416611dae813314612bb3565b3003611dc0575b610021600435613acf565b611dca3636610763565b602081519101205b80611ddb615091565b03611dd25750611db5565b3461048557604060031936011261048557600435611e0381610b86565b6000604051611e11816106dd565b52602073ffffffffffffffffffffffffffffffffffffffff6044816101c554169360405194859384927f3a46b1a800000000000000000000000000000000000000000000000000000000845216600483015260243560248301525afa8015610edc576104819160009161169a57506040519081529081906020820190565b346104855760206003193601126104855773ffffffffffffffffffffffffffffffffffffffff61022a5416611ec5813314612bb3565b3003611ed7575b610021600435613b7e565b611ee13636610763565b602081519101205b80611ef2615091565b03611ee95750611ecc565b346104855760a060031936011261048557611f19600435610b86565b611f24602435610b86565b60843567ffffffffffffffff811161048557611f449036906004016107cf565b5060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b34610485576020600319360112610485576024600435602073ffffffffffffffffffffffffffffffffffffffff6101c55416604051938480927f8e539e8c0000000000000000000000000000000000000000000000000000000082528560048301525afa918215610edc57600092610ea85750610e83906146c2565b3461048557600060031936011261048557602073ffffffffffffffffffffffffffffffffffffffff6101c55416604051908152f35b602060031936011261048557600435600052610193602052610021604060002061204f6112846003830161318d565b60098201549161206660026112ad60018401613288565b906126ae565b1561207357565b608460405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b92909493916040516120ee816106a5565b600d815260208082017f4d656e746f476f7665726e6f7200000000000000000000000000000000000000815261218560ff60005460081c1661212f8161234a565b60405161213b816106a5565b600193848252858201907f310000000000000000000000000000000000000000000000000000000000000082526121718461234a565b87519020915190209060655560665561234a565b82519167ffffffffffffffff831161068c5761012f936121ae846121a987546123bb565b612425565b81601f8511600114612217575093836122009793816107459d9c9a966122059c99956121f39960009361220a575b505060001991921b9260031b1c1916179055613a59565b6121fb612cac565b614923565b6145b4565b613bbd565b01519150600019386121dc565b9190601f198594951661224d61012f6000527f232da9e50dad2971456a78fb5cd6ff6b75019984d6e918139ce990999420f97990565b936000905b8282106122a1575050936122059a97936121f397936107459e9d9b9793836122009c9810612288575b505050811b019055613a59565b015160001960f88460031b161c1916905538808061227b565b808886978294978701518155019601940190612252565b60209060006040516122c9816106dd565b52604473ffffffffffffffffffffffffffffffffffffffff91826101c5541660405195869485937f3a46b1a800000000000000000000000000000000000000000000000000000000855216600484015260248301525afa908115610edc57600091612332575090565b6107ea915060203d8111610ed557610ec68183610715565b1561235157565b608460405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b90600182811c92168015612404575b60208310146123d557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916123ca565b818110612419575050565b6000815560010161240e565b90601f8211612432575050565b6107459161012f6000527f232da9e50dad2971456a78fb5cd6ff6b75019984d6e918139ce990999420f979906020601f840160051c8301931061247d575b601f0160051c019061240e565b9091508190612470565b9190601f811161249657505050565b610745926000526020600020906020601f840160051c8301931061247d57601f0160051c019061240e565b919091825167ffffffffffffffff811161068c576124e9816124e384546123bb565b84612487565b602080601f8311600114612524575081929394600092612519575b50506000198260011b9260031b1c1916179055565b015190503880612504565b90601f1983169561253a85600052602060002090565b926000905b8882106125775750508360019596971061255e575b505050811b019055565b015160001960f88460031b161c19169055388080612554565b8060018596829496860151815501950193019061253f565b73ffffffffffffffffffffffffffffffffffffffff61022a5416300361048557565b92906125fd9261260f926040519485926125ed6125da602086019960808b5260a0870190610f72565b601f199687878303016040880152610fbc565b9085858303016060860152610ff0565b90608083015203908101835282610715565b51902090565b906040516020810167ffffffffffffffff908281108282111761068c57604052819354169052565b1561264457565b608460405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f742073756363657373667560448201527f6c000000000000000000000000000000000000000000000000000000000000006064820152fd5b939290916126be828285886125b1565b926126c884613c6d565b60088110156111f0578060046126e79214908115612861575b5061263d565b61272d600261270186600052610130602052604060002090565b0160017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b6040958651968588527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f60208099a173ffffffffffffffffffffffffffffffffffffffff978861022a54163003612795575b505061278d94959650614349565b6107ea6128fb565b9492969095600093845b845181101561284b5780898789838f8a8e916127bf6127d19930936128e2565b5116146127d6575b50505050506128a4565b61279f565b6128127fffffffffffffffffffffffffffffffff00000000000000000000000000000000926fffffffffffffffffffffffffffffffff946128e2565b5181815191012061013195610132875493608094851d9788600f0b9052528d2055600185549401901b169116179055898789838c6127c7565b509550969250965061278d94508695943861277f565b6005915061286e816111e6565b14386126e1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000198114610ea35760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80518210156128f65760209160051b010190565b6128b3565b73ffffffffffffffffffffffffffffffffffffffff61022a5416300361291d57565b610131805480600f0b9060801d600f0b13612936575b50565b60009055565b94926129c96107ea986129d194939698611525966111948a8a8d612961368a8c610798565b6020815191012090602081519101209060ff6040519360208501957fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8887526040860152166060840152608083015260a082015260a081526129c1816106f9565b519020614de5565b949094614c21565b92612a53565b916107ea9391604051936129ea856106dd565b60008552612a53565b93909260ff612a1f936107ea97958752166020860152604085015260a0606085015260a0840190610a4b565b916080818403910152610a4b565b909260ff6080936107ea9695845216602083015260408201528160608201520190610a4b565b929091938360005261013060205260406000206001612a7186613c6d565b612a7a816111e6565b03612b4957612a916103a3610395612a9793612615565b8461497b565b948591612aa6838387896138c3565b8051612afe575073ffffffffffffffffffffffffffffffffffffffff927fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda49492612af892604051958695169785612a2d565b0390a290565b73ffffffffffffffffffffffffffffffffffffffff937fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87129593612af8936040519687961698866129f3565b608460405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201527f69766500000000000000000000000000000000000000000000000000000000006064820152fd5b15612bba57565b606460405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a206f6e6c79476f7665726e616e636500000000000000006044820152fd5b61293393600093928493826040519384928337810185815203925af13d15612ca5573d612c2a81610747565b90612c386040519283610715565b81523d6000602083013e5b60405191612c5083610670565b602883527f476f7665726e6f723a2072656c617920726576657274656420776974686f757460208401527f206d65737361676500000000000000000000000000000000000000000000000060408401526149e6565b6060612c43565b61074560ff60005460081c1661234a565b90612cc782610c16565b612cd46040519182610715565b828152601f19612ce48294610c16565b019060005b828110612cf557505050565b806060602080938501015201612ce9565b612e907f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e09394612d438187612d3b8151612cbd565b8787336136ff565b612d63612d58612d5243612e96565b336122b8565b610163541115612ea5565b6001612d77825160208401208887876125b1565b96612d858551875114612f16565b612d928551825114612f16565b612d9e85511515612f87565b612db388600052610130602052604060002090565b90612dd7612dd2612dc384612615565b5167ffffffffffffffff161590565b612fd2565b612e78612df8612de643614f97565b612df261016154614f97565b90613043565b92612e0e612e0861016254614f97565b85613043565b81547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8616178255948591019067ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055565b612e828651612cbd565b604051978897338c8a61305f565b0390a190565b906000198201918211610ea357565b15612eac57565b608460405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f77207060448201527f726f706f73616c207468726573686f6c640000000000000000000000000000006064820152fd5b15612f1d57565b608460405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677460448201527f68000000000000000000000000000000000000000000000000000000000000006064820152fd5b15612f8e57565b606460405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152fd5b15612fd957565b608460405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c726561647920657869737460448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b91909167ffffffffffffffff80809416911601918211610ea357565b95926130cf946130a56130b39273ffffffffffffffffffffffffffffffffffffffff6130c1966107ea9e9c9a968c521660208b01526101208060408c01528a0190610f72565b9088820360608a0152610fbc565b908682036080880152610ff0565b9084820360a0860152610ff0565b9367ffffffffffffffff80921660c08401521660e0820152610100818403910152610a4b565b919392938051855103613123578481613118866107ea9861311d958789336136ff565b6133ed565b91612d06565b608460405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e617475726560448201527f73206c656e6774680000000000000000000000000000000000000000000000006064820152fd5b9081549161319a83610c16565b926040916131aa83519586610715565b81855260009081526020808220938291908188015b8584106131cf5750505050505050565b81518386928954926131e0846123bb565b80825260019480861690811561324e5750600114613216575b50613208816001960382610715565b8152019701930192956131bf565b8b8a52838a20955089905b80821061323757508101830194506132086131f9565b865483830186015295850195889490910190613221565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168584015250151560051b8101830194506132086131f9565b9060405191828154918282526020928383019160005283600020936000905b8282106132bd5750505061074592500383610715565b855473ffffffffffffffffffffffffffffffffffffffff16845260019586019588955093810193909101906132a7565b9060405191828154918282526020928383019160005283600020936000905b8282106133225750505061074592500383610715565b85548452600195860195889550938101939091019061330c565b1561334357565b608460405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f766520746860448201527f726573686f6c64000000000000000000000000000000000000000000000000006064820152fd5b7fffffffff00000000000000000000000000000000000000000000000000000000600493921681526133e88251809360208685019101610a28565b010190565b91906133f98151612cbd565b926000805b85518110156134b4578061341561344292856128e2565b51516134475761342581866128e2565b515b61343182896128e2565b5261343c81886128e2565b506128a4565b6133fe565b61345181856128e2565b516134af61348582516020809401207fffffffff000000000000000000000000000000000000000000000000000000001690565b916134a1613493858a6128e2565b5160405194859384016133ad565b03601f198101835282610715565b613427565b50505050565b918181106134c757505050565b610745926000526020600020918201910161240e565b81519167ffffffffffffffff831161068c5768010000000000000000831161068c5761350e838354818555846134ba565b602080910191600052806000209060005b84811061352d575050505050565b8351838201559281019260010161351f565b81519168010000000000000000831161068c5781548383558084106135a2575b50613574602080920192600052602060002090565b6000925b848410613586575050505050565b60018382613596839451866124c1565b01920193019290613578565b6000838152846020822092830192015b8281106135c057505061355f565b806135cd600192546123bb565b806135da575b50016135b2565b601f9081811184146135f25750508281555b386135d3565b836136149261360685600052602060002090565b920160051c8201910161240e565b600081815260208120818355556135ec565b81519168010000000000000000831161068c578154838355808410613689575b5061365b602080920192600052602060002090565b6000925b84841061366d575050505050565b6001838261367d839451866124c1565b0192019301929061365f565b6000838152846020822092830192015b8281106136a7575050613646565b806136b4600192546123bb565b806136c1575b5001613699565b601f9081811184146136d95750508281555b386136ba565b836136ed9261360685600052602060002090565b600081815260208120818355556136d3565b939290918551602080970120956137218761371a87866133ed565b84876125b1565b60005261019381526040600020936009850196875415613747575b505050505050505050565b85547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161785556001918286019082519267ffffffffffffffff841161068c5768010000000000000000841161068c5781906137c0858554818755866134ba565b0191600052806000209060005b84811061381057505050505050916137fb6004926137f26138019695600285016134dd565b6003830161353f565b01613626565b5538808080808080808061373c565b835173ffffffffffffffffffffffffffffffffffffffff16838201559281019285016137cd565b1561383e57565b608460405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201527f20616c72656164792063617374000000000000000000000000000000000000006064820152fd5b9060018201809211610ea357565b91908201809211610ea357565b916139a261390c6138e260ff9495600052610193602052604060002090565b94600886019073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b61392661392161391d835460ff1690565b1590565b613837565b805461ff00600885901b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090911617600117815561396486614f14565b7fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff6dffffffffffffffffffffffff000083549260101b169116179055565b16806139bc575060066139b891019182546138b6565b9055565b600181036139d4575060056139b891019182546138b6565b6002036139ea5760076139b891019182546138b6565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201527f6c696420766f74652074797065000000000000000000000000000000000000006064820152608490fd5b0390fd5b6107459291613a84613a8992613a7f60ff60005460081c16613a7a8161234a565b61234a565b613a8e565b613acf565b613b7e565b610161805460408051918252602082018490527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a939190819081015b0390a155565b8015613b1457610162805460408051918252602082018490527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828919081908101613ac9565b608460405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f642060448201527f746f6f206c6f77000000000000000000000000000000000000000000000000006064820152fd5b610163805460408051918252602082018490527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461919081908101613ac9565b613bd260ff60005460081c16613a7a8161234a565b61022a907fffffffffffffffffffffffff000000000000000000000000000000000000000082547f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401604073ffffffffffffffffffffffffffffffffffffffff8095169481519084168152856020820152a116179055565b90816020910312610485575180151581036104855790565b6040513d6000823e3d90fd5b613c7681613de3565b90613c80826111e6565b60048203613ddf57613c9d9060005261022b602052604060002090565b5480613ca7575090565b9050613ce5613ccc61022a5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b6040517f2ab0f5290000000000000000000000000000000000000000000000000000000081526004810183905260209291908381602481855afa908115610edc57600091613dc2575b5015613d3c57505050600790565b6040517f584b153e00000000000000000000000000000000000000000000000000000000815260048101929092528290829060249082905afa918215610edc57600092613d95575b505015613d9057600590565b600290565b613db49250803d10613dbb575b613dac8183610715565b810190613c49565b3880613d84565b503d613da2565b613dd99150843d8611613dbb57613dac8183610715565b38613d2e565b5090565b6002613dfa82600052610130602052604060002090565b015460ff8116613f095760081c60ff16613f0357613e316103a3610395613e2c84600052610130602052604060002090565b612615565b8015613ebe57431115613eb85743613e656103a36103956001613e5f86600052610130602052604060002090565b01612615565b1015613eb257613e7481613f10565b9081613e8b575b5015613e8657600490565b600390565b613eac91506000526101936020526040600020600660058201549101541090565b38613e7b565b50600190565b50600090565b60405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606490fd5b50600290565b5050600790565b6000526101936020526024604060002061013060205267ffffffffffffffff613f3c6040600020612615565b5116602073ffffffffffffffffffffffffffffffffffffffff6101c55416604051948580927f8e539e8c0000000000000000000000000000000000000000000000000000000082528560048301525afa928315610edc57600093613fc4575b50613fa5906146c2565b91828102928184041490151715610ea357600560649101549104111590565b613fa5919350613fe19060203d8111610ed557610ec68183610715565b9290613f9b565b90816020910312610485575190565b602061402873ffffffffffffffffffffffffffffffffffffffff61022a54169260005261022b602052604060002090565b546024604051809481937fd45c443500000000000000000000000000000000000000000000000000000000835260048301525afa908115610edc5760009161407a575b50600181036107ea5750600090565b614092915060203d8111610ed557610ec68183610715565b3861406b565b9493926140c46080936140b66140d29460a08a5260a08a0190610f72565b9088820360208a0152610fbc565b908682036040880152610ff0565b93600060608201520152565b919261410d60a0946140ff61411b949998979960c0875260c0870190610f72565b908582036020870152610fbc565b908382036040850152610ff0565b946000606083015260808201520152565b9290919261413c828585846125b1565b9361415a600461414b87613c6d565b614154816111e6565b1461263d565b61022a9361417f613ccc865473ffffffffffffffffffffffffffffffffffffffff1690565b604051957ff27a0c920000000000000000000000000000000000000000000000000000000087526020918288600481845afa978815610edc57600098614320575b506040517fb1c5f4270000000000000000000000000000000000000000000000000000000081529291908290849081806142008c8b8b8e60048601614098565b03915afa8015610edc5761424c93613ccc93600092614303575b50506142318a60005261022b602052604060002090565b555473ffffffffffffffffffffffffffffffffffffffff1690565b90813b15610485576000809461429288604051988997889687957f8f2a0bb0000000000000000000000000000000000000000000000000000000008752600487016140de565b03925af18015610edc577f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289292612e90926142d2926142ea575b50426138b6565b60408051858152602081019290925290918291820190565b806142f76142fd92610691565b806105c9565b386142cb565b6143199250803d10610ed557610ec68183610715565b388061421a565b8392919850928561433e8995833d8511610ed557610ec68183610715565b9992939450506141c0565b919073ffffffffffffffffffffffffffffffffffffffff61022a541690813b15610485576000936143a9604051968795869485947fe38335e500000000000000000000000000000000000000000000000000000000865260048601614098565b039134905af18015610edc576143bc5750565b61074590610691565b906143d19392916125b1565b6143da81613c6d565b60088110156111f0578060026143ff9214159081614553575b8161453e575b50614569565b614446600261441983600052610130602052604060002090565b016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff825416179055565b6040518181527f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90602090a16144878160005261022b602052604060002090565b5461448f5790565b6144b2613ccc61022a5473ffffffffffffffffffffffffffffffffffffffff1690565b6144c78260005261022b602052604060002090565b5490803b15610485576040517fc4d252f500000000000000000000000000000000000000000000000000000000815260048101929092526000908290602490829084905af18015610edc5761452b575b50600081815261022b602052604081205590565b806142f761453892610691565b38614517565b6007915061454b816111e6565b1415386143f9565b905061455e816111e6565b6006811415906143f3565b1561457057565b606460405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152fd5b6145c960ff60005460081c16613a7a8161234a565b60648111610972577f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997906145fb614642565b80151580614637575b614626575b61461282614a26565b5050604080519182526020820192909252a1565b61463261092782614e81565b614609565b506101f95415614604565b6101f9805460009181614659575050506101f85490565b81600019810111610ea3577f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e89252015460201c90565b906040516040810181811067ffffffffffffffff82111761068c57604052602081935463ffffffff81168352811c910152565b906101f98054928315614890576000198401848111610ea3578411156128f6576000918083526147137f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e8860161468f565b9163ffffffff92818482511611156148665750438110156148225761473790615016565b918084969316905b8387106147be575050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929350801560001461477757501690565b6147ba91506147886147b391612e96565b6101f96000527f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e90190565b5460201c90565b1690565b9091928087169080881860011c8201809211610ea3578486528383837f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e9015416116000146148105750925b919061473f565b93965061481c906138a8565b95614809565b606460405162461bcd60e51b815260206004820152602060248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152fd5b602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16955050505050565b50506101f8549150565b6101f99081546801000000000000000081101561068c57600181018084558110156128f657600092909252805160209182015190911b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91909116177f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e990910155565b61493860ff60005460081c16613a7a8161234a565b73ffffffffffffffffffffffffffffffffffffffff6101c591167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b602090604473ffffffffffffffffffffffffffffffffffffffff91826101c5541660405195869485937f3a46b1a800000000000000000000000000000000000000000000000000000000855216600484015260248301525afa908115610edc57600091612332575090565b909190156149f2575090565b815115614a025750805190602001fd5b613a559060405191829162461bcd60e51b8352602060048401526024830190610a4b565b614a4290614a3c614a3643615016565b91614e81565b90614ab3565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff91821692911690565b15614a6f57565b606460405162461bcd60e51b815260206004820152601760248201527f436865636b706f696e743a20696e76616c6964206b65790000000000000000006044820152fd5b6101f9549192918015614bd857614b89918185614adc614ad7614788602096612e96565b61468f565b92614aeb845163ffffffff1690565b614b0263ffffffff91828416928391161115614a68565b614b1c614b13865163ffffffff1690565b63ffffffff1690565b03614b8d5750614b31614788614b6693612e96565b9063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b01517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b9190565b9050614bd39150614bab614b9f610738565b63ffffffff9092168252565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff87168185015261489a565b614b66565b50614c1190614be8614b9f610738565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416602082015261489a565b60009190565b600511156111f057565b614c2a81614c17565b80614c325750565b614c3b81614c17565b60018103614c885760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b614c9181614c17565b60028103614cde5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80614cea600392614c17565b14614cf157565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608490fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311614dd95791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15610edc57815173ffffffffffffffffffffffffffffffffffffffff811615613eb2579190565b50505050600090600390565b6065546066546040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152614e3a816106f9565b519020906040519060208201927f19010000000000000000000000000000000000000000000000000000000000008452602283015260428201526042815261260f816106c1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90818111614eaa571690565b608460405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152fd5b6bffffffffffffffffffffffff90818111614f2d571690565b608460405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f36206269747300000000000000000000000000000000000000000000000000006064820152fd5b67ffffffffffffffff90818111614fac571690565b608460405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f34206269747300000000000000000000000000000000000000000000000000006064820152fd5b63ffffffff90818111615027571690565b608460405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152fd5b6101319081549182600f0b809360801d600f0b13156150ff578260005261013260205260406000209260008454945560017fffffffffffffffffffffffffffffffff0000000000000000000000000000000083541691016fffffffffffffffffffffffffffffffff16179055565b60046040517f3db2a12a000000000000000000000000000000000000000000000000000000008152fdfea164736f6c6343000812000a" - }, - { - "transactionType": "CREATE", - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "initCode": "60406080815262000f9d8038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a357501617905551610b469081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe608060405236610217577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163303610212576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b602081519101f35b7f4f1ef2860000000000000000000000000000000000000000000000000000000081036100d957506100d4610893565b61009c565b7f8f28397000000000000000000000000000000000000000000000000000000000810361010957506100d461051f565b7ff851a44000000000000000000000000000000000000000000000000000000000810361013957506100d46103ae565b7f5c60da1b0000000000000000000000000000000000000000000000000000000003610167576100d4610407565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b6102aa565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff1633036102aa576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e156102fd573d90f35b3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034c57604052565b610301565b6020810190811067ffffffffffffffff82111761034c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034c57604052565b6103b661094f565b73ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354166040519060208201526020815261040481610330565b90565b61040f61094f565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166040519060208201526020815261040481610330565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361048057565b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126104805760043573ffffffffffffffffffffffffffffffffffffffff811681036104805790565b67ffffffffffffffff811161034c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6040519061051982610351565b60008252565b61052761094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff8061054e36610485565b167fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a181156105d8577fffffffffffffffffffffffff00000000000000000000000000000000000000001617905561040461050c565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b61066461094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff61068a36610485565b166040519061069882610351565b60008252803b15610759577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610751575b610737575b505060405161073081610351565b6000815290565b61074991610743610956565b916109c6565b503880610722565b50600061071d565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b803b156107595773ffffffffffffffffffffffffffffffffffffffff81167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061088b575b61087c575050565b61088891610743610956565b50565b506001610874565b366004116104805760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610480576108cd61045d565b6024359067ffffffffffffffff82116104805736602383011215610480578160040135916108fa836104d2565b91610908604051938461036d565b838352366024858401011161048057600060208561094796602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152166107dd565b61040461050c565b3461048057565b604051906060820182811067ffffffffffffffff82111761034c57604052602782527f206661696c6564000000000000000000000000000000000000000000000000006040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806104049493602081519101845af43d15610a05573d916109e8836104d2565b926109f6604051948561036d565b83523d6000602085013e610a72565b606091610a72565b15610a1457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015610a925750815115610a86575090565b610404903b1515610a0d565b825190915015610aa55750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610b22575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610ae156fea164736f6c6343000812000a000000000000000000000000546940c044e38ecb820c3c2c98b5b3755035f9160000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4a2910789000000000000000000000000c2cb4e0b0079de0f4eb2d487dc57e6dd1a49e1f5000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d88000000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000" - } - ], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "to": "0xAA963FC97281d9632d96700aB62A4D1340F9a28a", - "cumulativeGasUsed": "0x1125988", - "gasUsed": "0x1125988", - "contractAddress": null, - "logs": [ - { - "address": "0x3BE1bdAe417ef82fF3E6F84c814Edc24877D6C4b", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x0", - "removed": false - }, - { - "address": "0x2df22b4dC66e202e8F1596c0f55ACef66820DC4b", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0x59fA569494A9b4d5D844502dc46fD95DC8d4a245", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000002df22b4dc66e202e8f1596c0f55acef66820dc4b" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x59fA569494A9b4d5D844502dc46fD95DC8d4a245", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0x59fA569494A9b4d5D844502dc46fD95DC8d4a245", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x4", - "removed": false - }, - { - "address": "0x59fA569494A9b4d5D844502dc46fD95DC8d4a245", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x5", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x6", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000040c6cfedc3d231fe1e6ee168d2c1517341ca7d6b" - ], - "data": "0x00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x7", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de" - ], - "data": "0x00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x8", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" - ], - "data": "0x00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x9", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000099995570bc88340d726d15d172e668271fbc9e20" - ], - "data": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0xa", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009999f469fa49bb921ea385f1de49dcbccfbc9a82" - ], - "data": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0xb", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009999700347b57a3152e8b63123649949a9abe20d" - ], - "data": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0xc", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009999db67bf5151668aaff29ed4baca3926747ed7" - ], - "data": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0xd", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009999c6de88ebdf0aff022d127c36541d53f8789a" - ], - "data": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0xe", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000099994874b3b90e690287c85df1ba26e886ff87f0" - ], - "data": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0xf", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000099990ea09dd56949dbafe97fc34dbc69bda81027" - ], - "data": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x10", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258" - ], - "data": "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x11", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x00000000000000000000000040c6cfedc3d231fe1e6ee168d2c1517341ca7d6b", - "0x000000000000000000000000c2cb4e0b0079de0f4eb2d487dc57e6dd1a49e1f5" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x12", - "removed": false - }, - { - "address": "0xc2Cb4e0b0079DE0F4eB2d487DC57e6dD1a49e1F5", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000f2b572a2657e16ef600f8f84be29a49098b143fd" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x13", - "removed": false - }, - { - "address": "0xc2Cb4e0b0079DE0F4eB2d487DC57e6dD1a49e1F5", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x14", - "removed": false - }, - { - "address": "0xc2Cb4e0b0079DE0F4eB2d487DC57e6dD1a49e1F5", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x15", - "removed": false - }, - { - "address": "0xc2Cb4e0b0079DE0F4eB2d487DC57e6dD1a49e1F5", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x16", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000017e2ec91eb324e48b35ceff6eaa689be546f8850" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x17", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", - "0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x18", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", - "0xb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x19", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", - "0xd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x1a", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", - "0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x1b", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5", - "0x000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x1c", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0xb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1", - "0x000000000000000000000000a59369939422b94538ad681d1d093ada463d39ec", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x1d", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783", - "0x000000000000000000000000a59369939422b94538ad681d1d093ada463d39ec", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x1e", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0xd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x1f", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a300", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x20", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783", - "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x21", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x22", - "removed": false - }, - { - "address": "0xeb81CE12a0b2e26a551A4FEE81606c9aE6be29de", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x23", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000546940c044e38ecb820c3c2c98b5b3755035f916" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x24", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0xc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x25", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0x7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d880", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x26", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0xccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x27", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0x0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x28", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0x08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x29", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x2a", - "removed": false - }, - { - "address": "0xA59369939422B94538Ad681D1d093adA463d39EC", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x2b", - "removed": false - }, - { - "address": "0x59fA569494A9b4d5D844502dc46fD95DC8d4a245", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9", - "0x000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x2c", - "removed": false - }, - { - "address": "0xc2Cb4e0b0079DE0F4eB2d487DC57e6dD1a49e1F5", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9", - "0x000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x2d", - "removed": false - }, - { - "address": "0x3BE1bdAe417ef82fF3E6F84c814Edc24877D6C4b", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9", - "0x000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x2e", - "removed": false - }, - { - "address": "0x65130a1C92D925AB35F9B4522BAB29f309d656e3", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x00000000000000000000000049d41c7d3f89543c730b3ab8128d511124382bb9", - "0x000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x2f", - "removed": false - }, - { - "address": "0x49D41c7d3f89543c730b3aB8128d511124382BB9", - "topics": [ - "0x86fb30f018daa8f182a1f4bf8c4d90600738a5089535b749aa95b5236d9387d2" - ], - "data": "0x0000000000000000000000003be1bdae417ef82ff3e6f84c814edc24877d6c4b00000000000000000000000059fa569494a9b4d5d844502dc46fd95dc8d4a24500000000000000000000000065130a1c92d925ab35f9b4522bab29f309d656e300000000000000000000000040c6cfedc3d231fe1e6ee168d2c1517341ca7d6b000000000000000000000000c2cb4e0b0079de0f4eb2d487dc57e6dd1a49e1f5000000000000000000000000eb81ce12a0b2e26a551a4fee81606c9ae6be29de000000000000000000000000a59369939422b94538ad681d1d093ada463d39ec", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x30", - "removed": false - }, - { - "address": "0xAA963FC97281d9632d96700aB62A4D1340F9a28a", - "topics": [ - "0x712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f", - "0x00000000000000000000000000000000000000000000000000000000000000fd" - ], - "data": "0x", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x31", - "removed": false - }, - { - "address": "0xAA963FC97281d9632d96700aB62A4D1340F9a28a", - "topics": [ - "0x51131d2820f04a6b6edd20e22a07d5bf847e265a3906e85256fca7d6043417c5" - ], - "data": "0x00000000000000000000000000000000000000000000340c4f3e121d24de5000", - "blockHash": "0xc93d26701884882478fd6b94298ad9fc666c0d82cf76371b230b975b76323d97", - "blockNumber": "0x1576842", - "transactionHash": "0x450694f355398d065332e5da32405e5408d884b8661e39070d1d3c739bcbca27", - "transactionIndex": "0x0", - "logIndex": "0x32", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x000080044828000009008000000010004a000040008400002084000060000950000022000200000000000100801101000000000000100000020400009020000400180040000000000000001801001200000100400000040008001200000140008400080006004048000200000004c800009020810040000000020010000001431000002000200008000008100000000201000000002280484000000004800002020000000020000008000000000400000000000020000002001020402000000000000023000000004000100010040001000300001600000110080180a40020000234000000011100010000000000000000000000040000008000000011802000", - "type": "0x0", - "effectiveGasPrice": "0x2540be400" - } - ], - "libraries": [ - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" - ], - "pending": [], - "returns": {}, - "timestamp": 1707915376, - "chain": 44787, - "multi": false, - "commit": "2bd4eec" -} \ No newline at end of file diff --git a/broadcast/ExecuteProposal.sol/44787/run-MU07.json b/broadcast/ExecuteProposal.sol/44787/run-MU07.json new file mode 100644 index 00000000..347e03fd --- /dev/null +++ b/broadcast/ExecuteProposal.sol/44787/run-MU07.json @@ -0,0 +1,156 @@ +{ + "transactions": [ + { + "hash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "function": "execute(uint256,uint256)", + "arguments": [ + "323", + "152" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "gas": "0x8726c", + "value": "0x0", + "input": "0x5601eaea00000000000000000000000000000000000000000000000000000000000001430000000000000000000000000000000000000000000000000000000000000098", + "nonce": "0x589", + "chainId": "0xaef3" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x61d8f", + "logs": [ + { + "address": "0xfdd8bd58115ffbf04e47411c1d228ecc45e93075", + "topics": [ + "0x6dc84b66cc948d847632b9d829f7cb1cb904fbf2c084554a9bc22ad9d8453340", + "0x000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8", + "0x00000000000000000000000072eff9ad96448b0b4efd4953245b69a3503eadd6" + ], + "data": "0x", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0xfdd8bd58115ffbf04e47411c1d228ecc45e93075", + "topics": [ + "0x828d2be040dede7698182e08dfa8bfbd663c879aee772509c4a2bd961d0ed43f", + "0x000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8", + "0x000000000000000000000000390575d302361b47561b16cf6e4781213a977ca9" + ], + "data": "0x", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "logIndex": "0x1", + "removed": false + }, + { + "address": "0xfdd8bd58115ffbf04e47411c1d228ecc45e93075", + "topics": [ + "0x6dc84b66cc948d847632b9d829f7cb1cb904fbf2c084554a9bc22ad9d8453340", + "0x000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9", + "0x000000000000000000000000a5885be7a37ea97eaab309fd208fa14ac03e1262" + ], + "data": "0x", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0xfdd8bd58115ffbf04e47411c1d228ecc45e93075", + "topics": [ + "0x828d2be040dede7698182e08dfa8bfbd663c879aee772509c4a2bd961d0ed43f", + "0x000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9", + "0x0000000000000000000000009c65c22c96391b0fc09122b86908ad680a8f0fe0" + ], + "data": "0x", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0xfdd8bd58115ffbf04e47411c1d228ecc45e93075", + "topics": [ + "0x50029dfdec1fc4684fff6b60e99fd3972a724662f5b4235e5082c447344ea01f", + "0x0000000000000000000000005e0e3c9419c42a1b04e2525991fb1a2c467ab8bf", + "0x000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8" + ], + "data": "0x", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "topics": [ + "0x712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f", + "0x0000000000000000000000000000000000000000000000000000000000000143" + ], + "data": "0x", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "topics": [ + "0x51131d2820f04a6b6edd20e22a07d5bf847e265a3906e85256fca7d6043417c5" + ], + "data": "0x0000000000000000000000000000000000000000000032cb5a2a3f3f92003000", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "logIndex": "0x6", + "removed": false + } + ], + "logsBloom": "0x02110000000000000000001000000000008000000000000400000000000000400000800000000004000008000000000000000000000000000000000000001000000000000000000100004000010100000000004000000000080000000000008000000800001000000000000000008000000000000000000006000000000000000000000400200000000000000000000000000000000040000000000000000000000000840020000000000020002000000040000800020000000820000000000000000000005010000000000000000000000000000000000000010000000000000802000000000000000000000000002000000008000000000000000800000000", + "type": "0x0", + "transactionHash": "0xffe1e89d3cc6200533f71841d680e0b6eae25acda91b49e4df85abcff1393e95", + "transactionIndex": "0x0", + "blockHash": "0x9ce0a468cc8b67f59e0e76c2483140ec85ff68561443a0a2deda819e7956139e", + "blockNumber": "0x18ab48d", + "gasUsed": "0x61d8f", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "contractAddress": null + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" + ], + "pending": [], + "returns": {}, + "timestamp": 1724749447, + "chain": 44787, + "commit": "663bcd4" +} \ No newline at end of file diff --git a/broadcast/ExecuteProposal.sol/44787/run-latest.json b/broadcast/ExecuteProposal.sol/44787/run-MUGOV.json similarity index 100% rename from broadcast/ExecuteProposal.sol/44787/run-latest.json rename to broadcast/ExecuteProposal.sol/44787/run-MUGOV.json diff --git a/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/42220/run-latest.json b/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/42220/run-latest.json new file mode 100644 index 00000000..23b8fef0 --- /dev/null +++ b/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/42220/run-latest.json @@ -0,0 +1,262 @@ +{ + "transactions": [ + { + "hash": "0x0bc698799ad3f63a035a828008b8b740a1e8f7a7079607906fe254d99c125031", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactory", + "contractAddress": "0xcf7031937f49f348c55930353fd3bc3aa15b4ced", + "function": null, + "arguments": [ + "true" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x50170b", + "value": "0x0", + "input": "0x60803461010d57601f6200497938819003918201601f19168301916001600160401b038311848410176101125780849260209460405283398101031261010d5751801515810361010d5761005e575b6040516148509081620001298239f35b60005460ff8160081c166100b85760ff8082161061007d575b5061004e565b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610077565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004803610156200001657600080fd5b600092833560e01c908163132e8aa71462000d2b57508063179ff4b21462000bca5780632455fc231462000b8e5780632c6d3f3d14620008bb57806340f17d6d1462000884578063472a11111462000840578063485cc955146200061757806360f0a5ac14620003a9578063715018a614620003255780638da5cb5b14620002ee5780638fa1242b146200029b5780638fbab88b1462000202578063c27231da14620001b3578063e5a0584814620001b35763f2fde38b14620000d857600080fd5b34620001af576020600319360112620001af57620000f562000d5f565b916200010062000e9e565b73ffffffffffffffffffffffffffffffffffffffff8316156200012c5783620001298462000f1e565b80f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b505034620001fe576020600319360112620001fe576020918173ffffffffffffffffffffffffffffffffffffffff9182620001ed62000d5f565b168152606685522054169051908152f35b5080fd5b83346200029857602060031936011262000298576200022062000d5f565b6200022a62000e9e565b6068549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff000000000000000000000000000000000000000082161760685516907f9ab291a673d3f3061fa6e1574571bb178acb1a9b8fa5c43a726fad08ef75051f8380a380f35b80fd5b5034620001af576020600319360112620001af57359160675483101562000298575073ffffffffffffffffffffffffffffffffffffffff620002df60209362000e37565b92905490519260031b1c168152f35b505034620001fe5781600319360112620001fe5760209073ffffffffffffffffffffffffffffffffffffffff603354169051908152f35b833462000298578060031936011262000298576200034262000e9e565b8073ffffffffffffffffffffffffffffffffffffffff6033547fffffffffffffffffffffffff00000000000000000000000000000000000000008116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b509034620001af576020600319360112620001af57620003c862000d5f565b9073ffffffffffffffffffffffffffffffffffffffff9182606854163314158062000608575b620005e0578216918285526066602052808286205416918215620005b157838652606660205285207fffffffffffffffffffffffff0000000000000000000000000000000000000000815416905560678054947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908187019687116200058557875b87811115620004a4575b8887877f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a8380a380f35b8487620004b18362000e37565b929054600393841b1c1614620004d35750620004cd906200141c565b62000470565b959697620004fb86620004ed620005269398979862000e37565b9054908a1b1c169262000e37565b819391549060031b9173ffffffffffffffffffffffffffffffffffffffff809116831b921b19161790565b905583549081156200055957500192620005408462000e37565b81939154921b1b1916905555819038808080806200047a565b8860316024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8760116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b848460249251917f60238e66000000000000000000000000000000000000000000000000000000008352820152fd5b8382517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b508260335416331415620003ee565b5034620001af5781600319360112620001af576200063462000d5f565b6024359073ffffffffffffffffffffffffffffffffffffffff8083168093036200083c57855460ff8160081c1615948580966200082e575b801562000815575b156200079257508460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831617885562000763575b50620006c860ff875460081c16620006c28162000f8b565b62000f8b565b620006d33362000f1e565b7fffffffffffffffffffffffff00000000000000000000000000000000000000009116816065541617606555606854161760685562000710575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff84541684555160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661010117865538620006aa565b60849060208851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b158015620006745750600160ff83161462000674565b50600160ff8316106200066c565b8580fd5b505034620001fe5760209073ffffffffffffffffffffffffffffffffffffffff6200087c6200086f3662000d88565b9493909392919262001017565b915191168152f35b505034620001fe5781600319360112620001fe5760209073ffffffffffffffffffffffffffffffffffffffff606854169051908152f35b5091346200029857620008ce3662000d88565b9473ffffffffffffffffffffffffffffffffffffffff94919493929396876068541633141580809162000b7f575b62000b57578062000b48575b62000b2057878216908181526066602052888a8220541690811562000af15782815260666020528a812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082019e92918f1162000ac557838f5b811115620009d2575b505060208d8d6200087c8e8e8e8e8e8e8e8e7f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a8f80a362001017565b8d87620009df8362000e37565b929054600393841b1c161462000a085750908f9291620009ff906200141c565b9091926200098d565b939f620004fb8f62000a1e62000a2c9362000e37565b905490881b1c169262000e37565b90558154801562000a985760209f50918d7f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a94926200087c9e9d9c9b9a9998979694019262000a7b8462000e37565b81939154921b1b1916905555919293949596979899388062000996565b8f8560316024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024846011857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60248c848d51917f60238e66000000000000000000000000000000000000000000000000000000008352820152fd5b8989517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b50876033541633141562000908565b8a8a517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b508860335416331415620008fc565b505034620001fe5760209073ffffffffffffffffffffffffffffffffffffffff6200087c62000bbd3662000d88565b9493909392919262001530565b508234620002985780600319360112620002985791906067549262000bef84620014ea565b62000bfd8451918262001479565b84815262000c0b85620014ea565b926020957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08784019501368637835b81811062000c985750505083519485948186019282875251809352850193925b82811062000c6a57505050500390f35b835173ffffffffffffffffffffffffffffffffffffffff168552869550938101939281019260010162000c5a565b62000ca98198959496979862000e37565b9073ffffffffffffffffffffffffffffffffffffffff918291549060031b1c168552606686528885205416865182101562000cff579062000cf391868260051b890101526200141c565b96959492939662000c3a565b6024856032867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b849034620001fe5781600319360112620001fe5760209073ffffffffffffffffffffffffffffffffffffffff606554168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820362000d8357565b600080fd5b608060031982011262000d835760043573ffffffffffffffffffffffffffffffffffffffff8116810362000d8357916024359167ffffffffffffffff80841162000d83578160238501121562000d835783600401359381851162000d8357826024868301011162000d83576024019392604435926064359083821162000d83578060238301121562000d8357816004013593841162000d835760248460061b8301011162000d83576024019190565b60675481101562000e6f5760676000527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff60335416330362000ec057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6033549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1562000f9357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b919293909473ffffffffffffffffffffffffffffffffffffffff9586606854163314158062001307575b620012dd57868416956000908782526066602052604095898784205416620012ad57620010738587848b888662001530565b91823b6200125e578a606554168851926118e78085019085821067ffffffffffffffff831117620012315785947f83438438b8b645ac5e1116c9dfcfd8c6f7ff01f7ce70a3cab7bc5cdeea52e47e96948e8b620010db968f95968f97620016768b39620013c3565b039084f58015620012275789169881168903620011d857508681526066602052848120887fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556067549068010000000000000000821015620011ab5750927fa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05949262001196620011a5938962001183620004fb8960018f9d9b0160675562000e37565b9055855196868897885287019162001316565b91848303602086015262001355565b0390a390565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b85517fd3a5e6c100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529089166024820152604490fd5b86513d84823e3d90fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5086517fbfdb910f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604490fd5b6024898851907fdb6ef9170000000000000000000000000000000000000000000000000000000082526004820152fd5b60046040517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b50866033541633141562001041565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b918181526020809101929160005b81811062001372575050505090565b90919293843573ffffffffffffffffffffffffffffffffffffffff811680910362000d83578152838501359081151580920362000d8357600191858201526040809101950191019291909262001363565b9262001419979592620013ff9197959773ffffffffffffffffffffffffffffffffffffffff809416865260a0602087015260a086019162001316565b951660408301526060820152608081850391015262001355565b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146200144a5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117620014bb57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111620014bb5760051b60200190565b9081519160005b8381106200151c575050016000815290565b80602080928401015181850152016200150a565b6200158f620015ed9396620015e095966118e7976040519862001557602082018b62001479565b808a5262002f5d60208b013973ffffffffffffffffffffffffffffffffffffffff998a606554169060405197889760208901620013c3565b0390620015c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283810183528262001479565b604051938491620015d960208401809862001503565b9062001503565b0390810183528262001479565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083523060601b60218301527f83438438b8b645ac5e1116c9dfcfd8c6f7ff01f7ce70a3cab7bc5cdeea52e47e60358301526055820152605581526080810181811067ffffffffffffffff821117620014bb57604052519020169056fe6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000aa164736f6c6343000812000a0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x208", + "chainId": "0xa4ec" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x8aff569ff4a9f2ea80f388a172036d0a7441e24b656a0640a4f63feec6877ad8", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactoryProxyAdmin", + "contractAddress": "0xba63992987f2e4c6b458922165fed3c5f368f09b", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0xa1811", + "value": "0x0", + "input": "0x6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36107d990816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146105845750508063715018a6146105065780637eff275e146104665780638da5cb5b146104335780639623609d146102da5783816399a88ec41461022857508063f2fde38b1461010d5763f3b7dead1461007f57600080fd5b3461010957602060031936011261010957828073ffffffffffffffffffffffffffffffffffffffff92836100b16105e8565b168551907ff851a4400000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b931561010657506100fe8360208080965183010191016107a0565b169051908152f35b80fd5b8280fd5b5034610109576020600319360112610109576101276105e8565b906101306106f1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101a5575050600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b929050346102d657806003193601126102d6576102436105e8565b61024b610610565b906102546106f1565b73ffffffffffffffffffffffffffffffffffffffff809116803b156102d257859283602492865197889586947f3659cfe600000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506102b95750f35b6102c290610633565b6101065780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606060031936011261042f576102f16105e8565b926102fa610610565b916044359067ffffffffffffffff821161042b573660238301121561042b578181013591610327836106b7565b9261033485519485610676565b8084523660248284010111610427576024929181889260209586930183880137850101526103606106f1565b73ffffffffffffffffffffffffffffffffffffffff80971696873b15610427578451957f4f1ef2860000000000000000000000000000000000000000000000000000000087521690850152826024850152815191826044860152855b83811061041357505050828495816064817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f878b85819a860101520116810103019134905af19081156102c957506102b95750f35b8181018301518682016064015282016103bc565b8680fd5b8480fd5b5080fd5b50503461042f578160031936011261042f5773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b509034610109578060031936011261010957826104816105e8565b610489610610565b6104916106f1565b73ffffffffffffffffffffffffffffffffffffffff80921690813b156105025783602492865197889586947f8f28397000000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506104f6575080f35b6104ff90610633565b80f35b8380fd5b833461010657806003193601126101065761051f6106f1565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b9150913461042f57602060031936011261042f57819073ffffffffffffffffffffffffffffffffffffffff93846105b96105e8565b167f5c60da1b0000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b67ffffffffffffffff811161064757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761064757604052565b67ffffffffffffffff811161064757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff60005416330361071257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d1561079b573d90610781826106b7565b9161078f6040519384610676565b82523d6000602084013e565b606090565b9081602091031261060b575173ffffffffffffffffffffffffffffffffffffffff8116810361060b579056fea164736f6c6343000812000a", + "nonce": "0x209", + "chainId": "0xa4ec" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x671070af944b91c9aa762208e2ef89b0dd4a022413d457d0af51a9f43c2104ab", + "transactionType": "CALL", + "contractName": "ChainlinkRelayerFactoryProxyAdmin", + "contractAddress": "0xba63992987f2e4c6b458922165fed3c5f368f09b", + "function": "transferOwnership(address)", + "arguments": [ + "0x655133d8E90F8190ed5c1F0f3710F602800C0150" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xba63992987f2e4c6b458922165fed3c5f368f09b", + "gas": "0x99cf", + "value": "0x0", + "input": "0xf2fde38b000000000000000000000000655133d8e90f8190ed5c1f0f3710f602800c0150", + "nonce": "0x20a", + "chainId": "0xa4ec" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xfa80a69cdf8ce1a272ff922456def9ebe2674fe4d00396728d203c484d9fa66b", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactoryProxy", + "contractAddress": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "function": null, + "arguments": [ + "0xcf7031937f49f348C55930353fd3Bc3aA15b4cEd", + "0xba63992987f2e4C6B458922165fEd3C5f368F09b", + "0x485cc955000000000000000000000000efb84935239dacdecf7c5ba76d8de40b077b7b3300000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x108173", + "value": "0x0", + "input": "0x60406080815262000f9d8038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a357501617905551610b469081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe608060405236610217577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163303610212576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b602081519101f35b7f4f1ef2860000000000000000000000000000000000000000000000000000000081036100d957506100d4610893565b61009c565b7f8f28397000000000000000000000000000000000000000000000000000000000810361010957506100d461051f565b7ff851a44000000000000000000000000000000000000000000000000000000000810361013957506100d46103ae565b7f5c60da1b0000000000000000000000000000000000000000000000000000000003610167576100d4610407565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b6102aa565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff1633036102aa576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e156102fd573d90f35b3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034c57604052565b610301565b6020810190811067ffffffffffffffff82111761034c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034c57604052565b6103b661094f565b73ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354166040519060208201526020815261040481610330565b90565b61040f61094f565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166040519060208201526020815261040481610330565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361048057565b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126104805760043573ffffffffffffffffffffffffffffffffffffffff811681036104805790565b67ffffffffffffffff811161034c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6040519061051982610351565b60008252565b61052761094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff8061054e36610485565b167fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a181156105d8577fffffffffffffffffffffffff00000000000000000000000000000000000000001617905561040461050c565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b61066461094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff61068a36610485565b166040519061069882610351565b60008252803b15610759577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610751575b610737575b505060405161073081610351565b6000815290565b61074991610743610956565b916109c6565b503880610722565b50600061071d565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b803b156107595773ffffffffffffffffffffffffffffffffffffffff81167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061088b575b61087c575050565b61088891610743610956565b50565b506001610874565b366004116104805760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610480576108cd61045d565b6024359067ffffffffffffffff82116104805736602383011215610480578160040135916108fa836104d2565b91610908604051938461036d565b838352366024858401011161048057600060208561094796602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152166107dd565b61040461050c565b3461048057565b604051906060820182811067ffffffffffffffff82111761034c57604052602782527f206661696c6564000000000000000000000000000000000000000000000000006040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806104049493602081519101845af43d15610a05573d916109e8836104d2565b926109f6604051948561036d565b83523d6000602085013e610a72565b606091610a72565b15610a1457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015610a925750815115610a86575090565b610404903b1515610a0d565b825190915015610aa55750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610b22575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610ae156fea164736f6c6343000812000a000000000000000000000000cf7031937f49f348c55930353fd3bc3aa15b4ced000000000000000000000000ba63992987f2e4c6b458922165fed3c5f368f09b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000efb84935239dacdecf7c5ba76d8de40b077b7b3300000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d8100000000000000000000000000000000000000000000000000000000", + "nonce": "0x20b", + "chainId": "0xa4ec" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x44b1e1", + "logs": [ + { + "address": "0xcf7031937f49f348c55930353fd3bc3aa15b4ced", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "transactionHash": "0x0bc698799ad3f63a035a828008b8b740a1e8f7a7079607906fe254d99c125031", + "transactionIndex": "0x4", + "logIndex": "0x9", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x0bc698799ad3f63a035a828008b8b740a1e8f7a7079607906fe254d99c125031", + "transactionIndex": "0x4", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "gasUsed": "0x3d9b93", + "effectiveGasPrice": "0x2540be400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0xcf7031937f49f348c55930353fd3bc3aa15b4ced" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x4d6391", + "logs": [ + { + "address": "0xba63992987f2e4c6b458922165fed3c5f368f09b", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "transactionHash": "0x8aff569ff4a9f2ea80f388a172036d0a7441e24b656a0640a4f63feec6877ad8", + "transactionIndex": "0x6", + "logIndex": "0xb", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020800000000000000000000000000000000000000000010000004000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000020000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x8aff569ff4a9f2ea80f388a172036d0a7441e24b656a0640a4f63feec6877ad8", + "transactionIndex": "0x6", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "gasUsed": "0x7c3bf", + "effectiveGasPrice": "0x2540be400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0xba63992987f2e4c6b458922165fed3c5f368f09b" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x4dd2ed", + "logs": [ + { + "address": "0xba63992987f2e4c6b458922165fed3c5f368f09b", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81", + "0x000000000000000000000000655133d8e90f8190ed5c1f0f3710f602800c0150" + ], + "data": "0x", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "transactionHash": "0x671070af944b91c9aa762208e2ef89b0dd4a022413d457d0af51a9f43c2104ab", + "transactionIndex": "0x7", + "logIndex": "0xc", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020800000000000000000000000000000000000000000010000004000008000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000010000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x671070af944b91c9aa762208e2ef89b0dd4a022413d457d0af51a9f43c2104ab", + "transactionIndex": "0x7", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "gasUsed": "0x6f5c", + "effectiveGasPrice": "0x2540be400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xba63992987f2e4c6b458922165fed3c5f368f09b", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x5a8546", + "logs": [ + { + "address": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000cf7031937f49f348c55930353fd3bc3aa15b4ced" + ], + "data": "0x", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "transactionHash": "0xfa80a69cdf8ce1a272ff922456def9ebe2674fe4d00396728d203c484d9fa66b", + "transactionIndex": "0x8", + "logIndex": "0xd", + "removed": false + }, + { + "address": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "transactionHash": "0xfa80a69cdf8ce1a272ff922456def9ebe2674fe4d00396728d203c484d9fa66b", + "transactionIndex": "0x8", + "logIndex": "0xe", + "removed": false + }, + { + "address": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "transactionHash": "0xfa80a69cdf8ce1a272ff922456def9ebe2674fe4d00396728d203c484d9fa66b", + "transactionIndex": "0x8", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba63992987f2e4c6b458922165fed3c5f368f09b", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "transactionHash": "0xfa80a69cdf8ce1a272ff922456def9ebe2674fe4d00396728d203c484d9fa66b", + "transactionIndex": "0x8", + "logIndex": "0x10", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000020800000000000000000000000000000800000000000010000000000000000000000100000000000000000000000000000000000000002000001000000000000000000000000000000000000020000000000000000000800000000800000000000010000000000400000000000000000000000000000000000000000000080000000000000800000000000000000000000080000000400000000000000000000000000000000000000000020000000000000000000040000000000000401000000000000000020000004000000040000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xfa80a69cdf8ce1a272ff922456def9ebe2674fe4d00396728d203c484d9fa66b", + "transactionIndex": "0x8", + "blockHash": "0x61e2ceb50e9dc8ea23e717c5f3d1b8f09d0669fc919ceb3451786c7a24530166", + "blockNumber": "0x1a253e1", + "gasUsed": "0xcb259", + "effectiveGasPrice": "0x2540be400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x6200F54D73491d56b8d7A975C9ee18EFb4D518Df", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0xED477A99035d0c1e11369F1D7A4e587893cc002B" + ], + "pending": [], + "returns": {}, + "timestamp": 1724749780, + "chain": 42220, + "commit": "e15d787" +} \ No newline at end of file diff --git a/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/44787/run-latest.json b/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/44787/run-latest.json new file mode 100644 index 00000000..61fbfbac --- /dev/null +++ b/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/44787/run-latest.json @@ -0,0 +1,209 @@ +{ + "transactions": [ + { + "hash": "0xb93ea02f2ddf2b650fd22791360d3f6f389528c67e4cf13c1a1fff00a79cf7b0", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactory", + "contractAddress": "0x9d78806569899e8d2fb3e1fbfb2a454ee81bc438", + "function": null, + "arguments": [ + "true" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x50170b", + "value": "0x0", + "input": "0x60803461010d57601f6200497938819003918201601f19168301916001600160401b038311848410176101125780849260209460405283398101031261010d5751801515810361010d5761005e575b6040516148509081620001298239f35b60005460ff8160081c166100b85760ff8082161061007d575b5061004e565b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610077565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004803610156200001657600080fd5b600092833560e01c908163132e8aa71462000d2b57508063179ff4b21462000bca5780632455fc231462000b8e5780632c6d3f3d14620008bb57806340f17d6d1462000884578063472a11111462000840578063485cc955146200061757806360f0a5ac14620003a9578063715018a614620003255780638da5cb5b14620002ee5780638fa1242b146200029b5780638fbab88b1462000202578063c27231da14620001b3578063e5a0584814620001b35763f2fde38b14620000d857600080fd5b34620001af576020600319360112620001af57620000f562000d5f565b916200010062000e9e565b73ffffffffffffffffffffffffffffffffffffffff8316156200012c5783620001298462000f1e565b80f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b505034620001fe576020600319360112620001fe576020918173ffffffffffffffffffffffffffffffffffffffff9182620001ed62000d5f565b168152606685522054169051908152f35b5080fd5b83346200029857602060031936011262000298576200022062000d5f565b6200022a62000e9e565b6068549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff000000000000000000000000000000000000000082161760685516907f9ab291a673d3f3061fa6e1574571bb178acb1a9b8fa5c43a726fad08ef75051f8380a380f35b80fd5b5034620001af576020600319360112620001af57359160675483101562000298575073ffffffffffffffffffffffffffffffffffffffff620002df60209362000e37565b92905490519260031b1c168152f35b505034620001fe5781600319360112620001fe5760209073ffffffffffffffffffffffffffffffffffffffff603354169051908152f35b833462000298578060031936011262000298576200034262000e9e565b8073ffffffffffffffffffffffffffffffffffffffff6033547fffffffffffffffffffffffff00000000000000000000000000000000000000008116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b509034620001af576020600319360112620001af57620003c862000d5f565b9073ffffffffffffffffffffffffffffffffffffffff9182606854163314158062000608575b620005e0578216918285526066602052808286205416918215620005b157838652606660205285207fffffffffffffffffffffffff0000000000000000000000000000000000000000815416905560678054947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908187019687116200058557875b87811115620004a4575b8887877f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a8380a380f35b8487620004b18362000e37565b929054600393841b1c1614620004d35750620004cd906200141c565b62000470565b959697620004fb86620004ed620005269398979862000e37565b9054908a1b1c169262000e37565b819391549060031b9173ffffffffffffffffffffffffffffffffffffffff809116831b921b19161790565b905583549081156200055957500192620005408462000e37565b81939154921b1b1916905555819038808080806200047a565b8860316024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8760116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b848460249251917f60238e66000000000000000000000000000000000000000000000000000000008352820152fd5b8382517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b508260335416331415620003ee565b5034620001af5781600319360112620001af576200063462000d5f565b6024359073ffffffffffffffffffffffffffffffffffffffff8083168093036200083c57855460ff8160081c1615948580966200082e575b801562000815575b156200079257508460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831617885562000763575b50620006c860ff875460081c16620006c28162000f8b565b62000f8b565b620006d33362000f1e565b7fffffffffffffffffffffffff00000000000000000000000000000000000000009116816065541617606555606854161760685562000710575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff84541684555160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661010117865538620006aa565b60849060208851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b158015620006745750600160ff83161462000674565b50600160ff8316106200066c565b8580fd5b505034620001fe5760209073ffffffffffffffffffffffffffffffffffffffff6200087c6200086f3662000d88565b9493909392919262001017565b915191168152f35b505034620001fe5781600319360112620001fe5760209073ffffffffffffffffffffffffffffffffffffffff606854169051908152f35b5091346200029857620008ce3662000d88565b9473ffffffffffffffffffffffffffffffffffffffff94919493929396876068541633141580809162000b7f575b62000b57578062000b48575b62000b2057878216908181526066602052888a8220541690811562000af15782815260666020528a812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082019e92918f1162000ac557838f5b811115620009d2575b505060208d8d6200087c8e8e8e8e8e8e8e8e7f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a8f80a362001017565b8d87620009df8362000e37565b929054600393841b1c161462000a085750908f9291620009ff906200141c565b9091926200098d565b939f620004fb8f62000a1e62000a2c9362000e37565b905490881b1c169262000e37565b90558154801562000a985760209f50918d7f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a94926200087c9e9d9c9b9a9998979694019262000a7b8462000e37565b81939154921b1b1916905555919293949596979899388062000996565b8f8560316024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024846011857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60248c848d51917f60238e66000000000000000000000000000000000000000000000000000000008352820152fd5b8989517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b50876033541633141562000908565b8a8a517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b508860335416331415620008fc565b505034620001fe5760209073ffffffffffffffffffffffffffffffffffffffff6200087c62000bbd3662000d88565b9493909392919262001530565b508234620002985780600319360112620002985791906067549262000bef84620014ea565b62000bfd8451918262001479565b84815262000c0b85620014ea565b926020957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08784019501368637835b81811062000c985750505083519485948186019282875251809352850193925b82811062000c6a57505050500390f35b835173ffffffffffffffffffffffffffffffffffffffff168552869550938101939281019260010162000c5a565b62000ca98198959496979862000e37565b9073ffffffffffffffffffffffffffffffffffffffff918291549060031b1c168552606686528885205416865182101562000cff579062000cf391868260051b890101526200141c565b96959492939662000c3a565b6024856032867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b849034620001fe5781600319360112620001fe5760209073ffffffffffffffffffffffffffffffffffffffff606554168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820362000d8357565b600080fd5b608060031982011262000d835760043573ffffffffffffffffffffffffffffffffffffffff8116810362000d8357916024359167ffffffffffffffff80841162000d83578160238501121562000d835783600401359381851162000d8357826024868301011162000d83576024019392604435926064359083821162000d83578060238301121562000d8357816004013593841162000d835760248460061b8301011162000d83576024019190565b60675481101562000e6f5760676000527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff60335416330362000ec057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6033549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1562000f9357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b919293909473ffffffffffffffffffffffffffffffffffffffff9586606854163314158062001307575b620012dd57868416956000908782526066602052604095898784205416620012ad57620010738587848b888662001530565b91823b6200125e578a606554168851926118e78085019085821067ffffffffffffffff831117620012315785947f83438438b8b645ac5e1116c9dfcfd8c6f7ff01f7ce70a3cab7bc5cdeea52e47e96948e8b620010db968f95968f97620016768b39620013c3565b039084f58015620012275789169881168903620011d857508681526066602052848120887fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556067549068010000000000000000821015620011ab5750927fa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05949262001196620011a5938962001183620004fb8960018f9d9b0160675562000e37565b9055855196868897885287019162001316565b91848303602086015262001355565b0390a390565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b85517fd3a5e6c100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529089166024820152604490fd5b86513d84823e3d90fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5086517fbfdb910f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604490fd5b6024898851907fdb6ef9170000000000000000000000000000000000000000000000000000000082526004820152fd5b60046040517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b50866033541633141562001041565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b918181526020809101929160005b81811062001372575050505090565b90919293843573ffffffffffffffffffffffffffffffffffffffff811680910362000d83578152838501359081151580920362000d8357600191858201526040809101950191019291909262001363565b9262001419979592620013ff9197959773ffffffffffffffffffffffffffffffffffffffff809416865260a0602087015260a086019162001316565b951660408301526060820152608081850391015262001355565b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146200144a5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117620014bb57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111620014bb5760051b60200190565b9081519160005b8381106200151c575050016000815290565b80602080928401015181850152016200150a565b6200158f620015ed9396620015e095966118e7976040519862001557602082018b62001479565b808a5262002f5d60208b013973ffffffffffffffffffffffffffffffffffffffff998a606554169060405197889760208901620013c3565b0390620015c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283810183528262001479565b604051938491620015d960208401809862001503565b9062001503565b0390810183528262001479565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083523060601b60218301527f83438438b8b645ac5e1116c9dfcfd8c6f7ff01f7ce70a3cab7bc5cdeea52e47e60358301526055820152605581526080810181811067ffffffffffffffff821117620014bb57604052519020169056fe6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000aa164736f6c6343000812000a0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x581", + "chainId": "0xaef3" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x830113d6fca061e97ddf8297c4bc2d8380ba7c076186e139dda5fc9c7bf304e8", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactoryProxyAdmin", + "contractAddress": "0x5d4a79b4de8b2ba352be6f4bf3373bf2362a2247", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0xa1811", + "value": "0x0", + "input": "0x6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36107d990816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146105845750508063715018a6146105065780637eff275e146104665780638da5cb5b146104335780639623609d146102da5783816399a88ec41461022857508063f2fde38b1461010d5763f3b7dead1461007f57600080fd5b3461010957602060031936011261010957828073ffffffffffffffffffffffffffffffffffffffff92836100b16105e8565b168551907ff851a4400000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b931561010657506100fe8360208080965183010191016107a0565b169051908152f35b80fd5b8280fd5b5034610109576020600319360112610109576101276105e8565b906101306106f1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101a5575050600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b929050346102d657806003193601126102d6576102436105e8565b61024b610610565b906102546106f1565b73ffffffffffffffffffffffffffffffffffffffff809116803b156102d257859283602492865197889586947f3659cfe600000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506102b95750f35b6102c290610633565b6101065780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606060031936011261042f576102f16105e8565b926102fa610610565b916044359067ffffffffffffffff821161042b573660238301121561042b578181013591610327836106b7565b9261033485519485610676565b8084523660248284010111610427576024929181889260209586930183880137850101526103606106f1565b73ffffffffffffffffffffffffffffffffffffffff80971696873b15610427578451957f4f1ef2860000000000000000000000000000000000000000000000000000000087521690850152826024850152815191826044860152855b83811061041357505050828495816064817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f878b85819a860101520116810103019134905af19081156102c957506102b95750f35b8181018301518682016064015282016103bc565b8680fd5b8480fd5b5080fd5b50503461042f578160031936011261042f5773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b509034610109578060031936011261010957826104816105e8565b610489610610565b6104916106f1565b73ffffffffffffffffffffffffffffffffffffffff80921690813b156105025783602492865197889586947f8f28397000000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506104f6575080f35b6104ff90610633565b80f35b8380fd5b833461010657806003193601126101065761051f6106f1565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b9150913461042f57602060031936011261042f57819073ffffffffffffffffffffffffffffffffffffffff93846105b96105e8565b167f5c60da1b0000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b67ffffffffffffffff811161064757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761064757604052565b67ffffffffffffffff811161064757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff60005416330361071257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d1561079b573d90610781826106b7565b9161078f6040519384610676565b82523d6000602084013e565b606090565b9081602091031261060b575173ffffffffffffffffffffffffffffffffffffffff8116810361060b579056fea164736f6c6343000812000a", + "nonce": "0x582", + "chainId": "0xaef3" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x758f7df1892e47f2f98613c8e68e544c06d896b369b57e35c2b10f929efad2bc", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactoryProxy", + "contractAddress": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "function": null, + "arguments": [ + "0x9d78806569899E8D2Fb3E1FBfb2a454EE81Bc438", + "0x5D4A79B4DE8b2BA352be6F4bf3373bF2362A2247", + "0x485cc955000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e9307500000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x108173", + "value": "0x0", + "input": "0x60406080815262000f9d8038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a357501617905551610b469081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe608060405236610217577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163303610212576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b602081519101f35b7f4f1ef2860000000000000000000000000000000000000000000000000000000081036100d957506100d4610893565b61009c565b7f8f28397000000000000000000000000000000000000000000000000000000000810361010957506100d461051f565b7ff851a44000000000000000000000000000000000000000000000000000000000810361013957506100d46103ae565b7f5c60da1b0000000000000000000000000000000000000000000000000000000003610167576100d4610407565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b6102aa565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff1633036102aa576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e156102fd573d90f35b3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034c57604052565b610301565b6020810190811067ffffffffffffffff82111761034c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034c57604052565b6103b661094f565b73ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354166040519060208201526020815261040481610330565b90565b61040f61094f565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166040519060208201526020815261040481610330565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361048057565b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126104805760043573ffffffffffffffffffffffffffffffffffffffff811681036104805790565b67ffffffffffffffff811161034c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6040519061051982610351565b60008252565b61052761094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff8061054e36610485565b167fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a181156105d8577fffffffffffffffffffffffff00000000000000000000000000000000000000001617905561040461050c565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b61066461094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff61068a36610485565b166040519061069882610351565b60008252803b15610759577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610751575b610737575b505060405161073081610351565b6000815290565b61074991610743610956565b916109c6565b503880610722565b50600061071d565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b803b156107595773ffffffffffffffffffffffffffffffffffffffff81167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061088b575b61087c575050565b61088891610743610956565b50565b506001610874565b366004116104805760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610480576108cd61045d565b6024359067ffffffffffffffff82116104805736602383011215610480578160040135916108fa836104d2565b91610908604051938461036d565b838352366024858401011161048057600060208561094796602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152166107dd565b61040461050c565b3461048057565b604051906060820182811067ffffffffffffffff82111761034c57604052602782527f206661696c6564000000000000000000000000000000000000000000000000006040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806104049493602081519101845af43d15610a05573d916109e8836104d2565b926109f6604051948561036d565b83523d6000602085013e610a72565b606091610a72565b15610a1457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015610a925750815115610a86575090565b610404903b1515610a0d565b825190915015610aa55750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610b22575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610ae156fea164736f6c6343000812000a0000000000000000000000009d78806569899e8d2fb3e1fbfb2a454ee81bc4380000000000000000000000005d4a79b4de8b2ba352be6f4bf3373bf2362a224700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e9307500000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d8100000000000000000000000000000000000000000000000000000000", + "nonce": "0x583", + "chainId": "0xaef3" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x3d9b93", + "logs": [ + { + "address": "0x9d78806569899e8d2fb3e1fbfb2a454ee81bc438", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "transactionHash": "0xb93ea02f2ddf2b650fd22791360d3f6f389528c67e4cf13c1a1fff00a79cf7b0", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xb93ea02f2ddf2b650fd22791360d3f6f389528c67e4cf13c1a1fff00a79cf7b0", + "transactionIndex": "0x0", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "gasUsed": "0x3d9b93", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0x9d78806569899e8d2fb3e1fbfb2a454ee81bc438" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x455f52", + "logs": [ + { + "address": "0x5d4a79b4de8b2ba352be6f4bf3373bf2362a2247", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "transactionHash": "0x830113d6fca061e97ddf8297c4bc2d8380ba7c076186e139dda5fc9c7bf304e8", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020800000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000200000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000004000000000000000000400000000000000000000000000000000020000000", + "type": "0x0", + "transactionHash": "0x830113d6fca061e97ddf8297c4bc2d8380ba7c076186e139dda5fc9c7bf304e8", + "transactionIndex": "0x1", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "gasUsed": "0x7c3bf", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0x5d4a79b4de8b2ba352be6f4bf3373bf2362a2247" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x5211ab", + "logs": [ + { + "address": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009d78806569899e8d2fb3e1fbfb2a454ee81bc438" + ], + "data": "0x", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "transactionHash": "0x758f7df1892e47f2f98613c8e68e544c06d896b369b57e35c2b10f929efad2bc", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "transactionHash": "0x758f7df1892e47f2f98613c8e68e544c06d896b369b57e35c2b10f929efad2bc", + "transactionIndex": "0x2", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "transactionHash": "0x758f7df1892e47f2f98613c8e68e544c06d896b369b57e35c2b10f929efad2bc", + "transactionIndex": "0x2", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005d4a79b4de8b2ba352be6f4bf3373bf2362a2247", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "transactionHash": "0x758f7df1892e47f2f98613c8e68e544c06d896b369b57e35c2b10f929efad2bc", + "transactionIndex": "0x2", + "logIndex": "0x5", + "removed": false + } + ], + "logsBloom": "0x80000000000000000000000000000000400000000000000020800000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000000200020000000000000000000800000000800000000000000001000000400000000000000000000000000000000000000000000080000000000000800000000000000000000000000000000400000040000000000000000000000000000000000020000000000000000000040000000000000400000000000000000020000004000000000000040000000000000000000000000000000000000000002000", + "type": "0x0", + "transactionHash": "0x758f7df1892e47f2f98613c8e68e544c06d896b369b57e35c2b10f929efad2bc", + "transactionIndex": "0x2", + "blockHash": "0xa8e75f8d1f5343ef45e4027530eb1ca05f647784f7a04b58370f5c89d4c2554b", + "blockNumber": "0x18ab3f7", + "gasUsed": "0xcb259", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" + ], + "pending": [], + "returns": {}, + "timestamp": 1724748734, + "chain": 44787, + "commit": "663bcd4" +} \ No newline at end of file diff --git a/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/62320/run-latest.json b/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/62320/run-latest.json new file mode 100644 index 00000000..efadaad2 --- /dev/null +++ b/broadcast/MU07-Deploy-ChainlinkRelayerFactory.sol/62320/run-latest.json @@ -0,0 +1,209 @@ +{ + "transactions": [ + { + "hash": "0xdd7e16f1c071988cdb77271ae05b672e86cf2aaece25e0c7994ba8065988565a", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactory", + "contractAddress": "0x5af9bad8767502f07176ecc74a86d1fc465757fe", + "function": null, + "arguments": [ + "true" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x4ca2da", + "value": "0x0", + "input": "0x60803461010d57601f6200464138819003918201601f19168301916001600160401b038311848410176101125780849260209460405283398101031261010d5751801515810361010d5761005e575b6040516145189081620001298239f35b60005460ff8160081c166100b85760ff8082161061007d575b5061004e565b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610077565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe604060808152600490813610156200001657600080fd5b600091823560e01c9081630996c1041462000b62578163132e8aa71462000b2b578163179ff4b214620009c957816360f0a5ac14620007c6578163715018a61462000742578163725fdec414620004c95781638da5cb5b14620004925781638fa1242b146200043b578163c27231da14620001e0578163c4d66de8146200022b578163e5a0584814620001e0578163f2fde38b1462000103575063f412316614620000c057600080fd5b34620000ff5760209073ffffffffffffffffffffffffffffffffffffffff620000f7620000ed3662000bc4565b9392909262000e51565b915191168152f35b5080fd5b905034620001dc576020600319360112620001dc576200012262000b9b565b916200012d62000cd8565b73ffffffffffffffffffffffffffffffffffffffff831615620001595783620001568462000d58565b80f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b505034620000ff576020600319360112620000ff576020918173ffffffffffffffffffffffffffffffffffffffff91826200021a62000b9b565b168152606685522054169051908152f35b905034620001dc576020600319360112620001dc576200024a62000b9b565b835460ff8160081c1615928380946200042d575b801562000414575b1562000391575090818360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0073ffffffffffffffffffffffffffffffffffffffff951617875562000362575b50620002d160ff865460081c16620002cb8162000dc5565b62000dc5565b620002dc3362000d58565b167fffffffffffffffffffffffff000000000000000000000000000000000000000060655416176065556200030f575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff84541684555160018152a180f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661010117855538620002b3565b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b158015620002665750600160ff83161462000266565b50600160ff8316106200025e565b905034620001dc576020600319360112620001dc5735916067548310156200048f575073ffffffffffffffffffffffffffffffffffffffff6200048060209362000c71565b92905490519260031b1c168152f35b80fd5b505034620000ff5781600319360112620000ff5760209073ffffffffffffffffffffffffffffffffffffffff603354169051908152f35b8284346200048f57620004dc3662000bc4565b93620004ea93919362000cd8565b620004f462000cd8565b73ffffffffffffffffffffffffffffffffffffffff958682169081815260666020528789822054169081156200071357828152606660205289812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082019d92918e11620006e757838e5b811115620005cd575b5060208d8d620000f78e8e8e8e8e8e8e7f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a8f80a362000e51565b8c87620005da8362000c71565b929054600393841b1c161462000602575090620005f98f939262001204565b9091926200058a565b939e620006268e62000618620006519362000c71565b905490881b1c169262000c71565b819391549060031b9173ffffffffffffffffffffffffffffffffffffffff809116831b921b19161790565b905581548015620006bb5760209e50918c7f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a9492620000f79d9c9b9a999897969401926200069f8462000c71565b81939154921b1b191690555591929394959697988d8062000593565b7f4e487b7100000000000000000000000000000000000000000000000000000000855260318f52602485fd5b6024846011857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60248b848c51917f60238e66000000000000000000000000000000000000000000000000000000008352820152fd5b83346200048f57806003193601126200048f576200075f62000cd8565b8073ffffffffffffffffffffffffffffffffffffffff6033547fffffffffffffffffffffffff00000000000000000000000000000000000000008116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b91905034620001dc576020600319360112620001dc57620007e662000b9b565b90620007f162000cd8565b73ffffffffffffffffffffffffffffffffffffffff8092169182855260666020528082862054169182156200099a57838652606660205285207fffffffffffffffffffffffff0000000000000000000000000000000000000000815416905560678054947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908187019687116200096e57875b87811115620008b8575b8887877f0bdcf1d6f29aa87af8131cc81dcbb295fcf98d71cfcdc79cc5d965317bae1d0a8380a380f35b8487620008c58362000c71565b929054600393841b1c1614620008e75750620008e19062001204565b62000884565b9596976200062686620009016200090f9398979862000c71565b9054908a1b1c169262000c71565b905583549081156200094257500192620009298462000c71565b81939154921b1b1916905555819038808080806200088e565b8860316024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8760116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b848460249251917f60238e66000000000000000000000000000000000000000000000000000000008352820152fd5b905082346200048f57806003193601126200048f57919060675492620009ef84620012d2565b620009fd8451918262001261565b84815262000a0b85620012d2565b926020957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08784019501368637835b81811062000a985750505083519485948186019282875251809352850193925b82811062000a6a57505050500390f35b835173ffffffffffffffffffffffffffffffffffffffff168552869550938101939281019260010162000a5a565b62000aa98198959496979862000c71565b9073ffffffffffffffffffffffffffffffffffffffff918291549060031b1c168552606686528885205416865182101562000aff579062000af391868260051b8901015262001204565b96959492939662000a3a565b6024856032867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b505034620000ff5781600319360112620000ff5760209073ffffffffffffffffffffffffffffffffffffffff606554169051908152f35b505034620000ff5760209073ffffffffffffffffffffffffffffffffffffffff620000f762000b913662000bc4565b9392909262001318565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820362000bbf57565b600080fd5b90606060031983011262000bbf5760043573ffffffffffffffffffffffffffffffffffffffff8116810362000bbf57916024359167ffffffffffffffff9081841162000bbf578260238501121562000bbf5783600401359382851162000bbf57836024868301011162000bbf5760240193926044359083821162000bbf578060238301121562000bbf57816004013593841162000bbf5760248460061b8301011162000bbf576024019190565b60675481101562000ca95760676000527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff60335416330362000cfa57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6033549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1562000dcd57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b909262000e5d62000cd8565b73ffffffffffffffffffffffffffffffffffffffff948583169460008681526066602052604094888683205416620010d55762000e9e848689868562001318565b90813b620010875789606554168751916118578084019084821067ffffffffffffffff8311176200105a578985948d8a7f83438438b8b645ac5e1116c9dfcfd8c6f7ff01f7ce70a3cab7bc5cdeea52e47e989662000f04968e966200145e8a39620011b2565b039084f580156200105057891698811689036200100157508681526066602052848120887fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055606754906801000000000000000082101562000fd45750927fa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05949262000fbf62000fce938962000fac620006268960018f9d9b0160675562000c71565b9055855196868897885287019162001105565b91848303602086015262001144565b0390a390565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b85517fd3a5e6c100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529089166024820152604490fd5b86513d84823e3d90fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b86517fbfdb910f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604490fd5b6024888751907fdb6ef9170000000000000000000000000000000000000000000000000000000082526004820152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b918181526020809101929160005b81811062001161575050505090565b90919293843573ffffffffffffffffffffffffffffffffffffffff811680910362000bbf578152838501359081151580920362000bbf57600191858201526040809101950191019291909262001152565b91620011ec90620012019795969473ffffffffffffffffffffffffffffffffffffffff809416855260806020860152608085019162001105565b94166040820152606081850391015262001144565b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114620012325760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117620012a357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111620012a35760051b60200190565b9081519160005b83811062001304575050016000815290565b8060208092840101518185015201620012f2565b90620013d59162001377620013c8949661185796604051976200133f602082018a62001261565b80895262002cb560208a013973ffffffffffffffffffffffffffffffffffffffff9889606554169060405196879660208801620011b2565b0390620013ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283810183528262001261565b604051938491620013c1602084018098620012eb565b90620012eb565b0390810183528262001261565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083523060601b60218301527f83438438b8b645ac5e1116c9dfcfd8c6f7ff01f7ce70a3cab7bc5cdeea52e47e60358301526055820152605581526080810181811067ffffffffffffffff821117620012a357604052519020169056fe60406101e08152346200052957620018579081380380620000208162000563565b938439820190608091828482031262000529576200003e8462000589565b6020858101519093916001600160401b03918281116200052957870196601f9085828a0112156200052957885192848411620004ce57601f19936200008984820186168a0162000563565b9a818c52888a83830101116200052957899060005b8381106200052e5750506000918c010152620000bc86830162000589565b9160608101519086821162000529570187848201121562000529578051868111620004ce57620000f18a8260051b0162000563565b988a808b848152019260061b8401019281841162000529578b01915b838310620004e45750505050885260a052875190838211620004ce57600054926001938481811c91168015620004c3575b89821014620004ad5782811162000462575b5087918311600114620003fb57508192939495969798600092620003ef575b5050600019600383901b1c191690821b176000555b8351936101c09480865215620003de5760049081865111620003cf5784519360a0850190811185821017620003ba5785528184528660005b89811062000397575050826000905b6200030b575b506001600160a01b03969250869150620001ed9050836200059e565b51511660c05284620001ff83620005c2565b51511660e052846200021183620005d3565b515116946101009586526200022683620005e4565b515116610120908152816200023b846200059e565b510151151590610140918252826200025385620005c2565b51015115159261016093845262000281816200026f87620005d3565b510151151595610180968752620005e4565b5101511515946101a0958652519661124c98896200060b8a39518881816102d2015281816105c401526108e2015260a05188818161025b015281816106cf0152610893015260c05188610f8c015260e051886110070152518761107f015251866110fa01525185610fb00152518461102b015251836110a30152518261111e01525181610ef10152f35b815181101562000391576001600160a01b03620003298284620005f5565b5151161562000381576200033e8183620005f5565b516200034b8287620005f5565b52620003588186620005f5565b5060001981146200036c57830183620001cb565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001d1565b620003a162000543565b60008152600083820152828288010152018790620001bc565b604183634e487b7160e01b6000525260246000fd5b508351633be17a5360e21b8152fd5b8351635a0a2c5160e11b8152600490fd5b0151905038806200016f565b82169060008052876000209160005b8181106200044c5750998385969798999a9b1062000432575b505050811b0160005562000184565b015160001960f88460031b161c1916905538808062000423565b8b8301518455928501929189019189016200040a565b60008052886000208380860160051c8201928b8710620004a3575b0160051c019085905b8281106200049657505062000150565b6000815501859062000486565b925081926200047d565b634e487b7160e01b600052602260045260246000fd5b90607f16906200013e565b634e487b7160e01b600052604160045260246000fd5b89838303126200052957620004f862000543565b90620005048462000589565b82528c8401519081151582036200052957828e92838e9501528152019201916200010d565b600080fd5b818101830151818f018401528b92016200009e565b60408051919082016001600160401b03811183821017620004ce57604052565b6040519190601f01601f191682016001600160401b03811183821017620004ce57604052565b51906001600160a01b03821682036200052957565b805115620005ac5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620005ac5760400190565b805160021015620005ac5760600190565b805160031015620005ac5760800190565b8051821015620005ac5760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa714610685575080637ee7f7d1146105e8578063a1bd91da14610579578063b59589d1146102125763e6f4c8651461005b57600080fd5b3461020f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020f57815190808154600181811c918181168015610205575b60209889851082146101d95750918391899593889586529081600014610199575060011461013e575b50506100da9250959392950382610752565b82519382859384528251928382860152825b84811061012857505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100ec565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b8183106101815750889450508201016100da386100c8565b85548884018501529485019487945091830191610169565b90506100da9593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100c8565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261009f565b80fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610284610eef565b61029661029082610793565b51610c96565b94909480926001809181925b6104c3575b5050508451937f071b48fc0000000000000000000000000000000000000000000000000000000085527f0000000000000000000000000000000000000000000000000000000000000000169283898601526020948581602481875afa9081156104b9578991610488575b50801515918261047d575b50506104555742039142831161042957839060248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041f5786936103eb575b505010156103c35750620f424090818102918183041490151715610397576103949061087a565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610418575b6104038183610752565b81010312610414575190388061036d565b8480fd5b503d6103f9565b84513d88823e3d90fd5b60248760118a7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b11159050388061031c565b90508581813d83116104b2575b61049f8183610752565b810103126104ae575138610311565b8880fd5b503d610495565b87513d8b823e3d90fd5b9091949297815186101561056d576104ec6104e660208860051b85010151610c96565b9261117e565b98808210156105685750805b938082111561056157505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105355782019190816102a2565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9050610503565b6104f8565b9792946102a7565b5080fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610575576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261057557610620610eef565b8151928392602080850191818652845180935281818701950193905b8382106106495786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff16875283015115158684015287965094850194938201936001919091019061063c565b90503461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff811161070757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761070757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761070757604052565b8051156107a05760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156107a05760400190565b8051600210156107a05760600190565b8051600310156107a05760800190565b67ffffffffffffffff81116107075760051b60200190565b81601f820112156108755780519161082e836107ff565b9261083c6040519485610752565b808452602092838086019260051b820101928311610875578301905b828210610866575050505090565b81518152908301908301610858565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c755787908892610b9a575b50805180158015610b7b575b610b0957600281118015610ace575b610aa55760018491148015610a90575b15610a755761095e61096692610793565b511691610793565b51905b8784899310600014610a6d57505b853b15610a695782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a5f57908591610a4b575b5050813b15610a47578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a3e5750610a2d575050565b610a3782916106f3565b61020f5750565b513d84823e3d90fd5b8380fd5b610a54906106f3565b610a475783386109d4565b84513d87823e3d90fd5b8780fd5b915090610977565b610a81610a89926107cf565b5116916107cf565b5190610969565b5080610a9b83610793565b511630141561094d565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610af4575b801561093d575083610aea836107cf565b511630141561093d565b5083610aff83610793565b5116301415610ad9565b50505050908293923b1561041457906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a3e5750610b6f575050565b610b78906106f3565b50565b5060018114801561092e575083610b9183610793565b5116301461092e565b9150503d8088833e610bac8183610752565b8101606082820312610a695781519067ffffffffffffffff91828111610c715783019181601f84011215610c71578251610be5816107ff565b93610bf28b519586610752565b818552602091828087019160051b83010191858311610c6d578301905b828210610c5157505050840151818111610c4d5782610c2f918601610817565b9389810151918211610c4d57610c46929101610817565b5038610922565b8a80fd5b81518981168103610c69578152908301908301610c0f565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361087557565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e65576000928396610e99575b506000831315610e715760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e6557600091610e29575b5060ff1660120360128111610dfb57604d8111610dfb57600a0a91828102928184041490151715610dcd57602082930151610d7d575b50509190565b9080925015610d9f57506ec097ce7bc90715b34b9f1000000000043880610d77565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e5d575b81610e4160209383610752565b8101031261057557519060ff8216820361020f575060ff610d41565b3d9150610e34565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610ee7575b81610eb560a09383610752565b8101031261020f5750610ec782610c7f565b506020820151610ede608060608501519401610c7f565b50919438610cf5565b3d9150610ea8565b7f000000000000000000000000000000000000000000000000000000000000000090610f1a826107ff565b604090610f2982519182610752565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f56856107ff565b016000805b82811061115c575050508093825190610f7382610736565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610fdf84610793565b52610fe983610793565b5060018111610ff9575b50505050565b835161100481610736565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261105a846107cf565b52611064836107cf565b506002811115610ff357600390845161107c81610736565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110d2856107df565b526110dc846107df565b50116110e9575b80610ff3565b6111539251906110f882610736565b7f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261114d826107ef565b526107ef565b503880806110e3565b602090855161116a81610736565b838152828481830152828701015201610f5b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561120957908691099214611203577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a60406101e08152346200052957620018579081380380620000208162000563565b938439820190608091828482031262000529576200003e8462000589565b6020858101519093916001600160401b03918281116200052957870196601f9085828a0112156200052957885192848411620004ce57601f19936200008984820186168a0162000563565b9a818c52888a83830101116200052957899060005b8381106200052e5750506000918c010152620000bc86830162000589565b9160608101519086821162000529570187848201121562000529578051868111620004ce57620000f18a8260051b0162000563565b988a808b848152019260061b8401019281841162000529578b01915b838310620004e45750505050885260a052875190838211620004ce57600054926001938481811c91168015620004c3575b89821014620004ad5782811162000462575b5087918311600114620003fb57508192939495969798600092620003ef575b5050600019600383901b1c191690821b176000555b8351936101c09480865215620003de5760049081865111620003cf5784519360a0850190811185821017620003ba5785528184528660005b89811062000397575050826000905b6200030b575b506001600160a01b03969250869150620001ed9050836200059e565b51511660c05284620001ff83620005c2565b51511660e052846200021183620005d3565b515116946101009586526200022683620005e4565b515116610120908152816200023b846200059e565b510151151590610140918252826200025385620005c2565b51015115159261016093845262000281816200026f87620005d3565b510151151595610180968752620005e4565b5101511515946101a0958652519661124c98896200060b8a39518881816102d2015281816105c401526108e2015260a05188818161025b015281816106cf0152610893015260c05188610f8c015260e051886110070152518761107f015251866110fa01525185610fb00152518461102b015251836110a30152518261111e01525181610ef10152f35b815181101562000391576001600160a01b03620003298284620005f5565b5151161562000381576200033e8183620005f5565b516200034b8287620005f5565b52620003588186620005f5565b5060001981146200036c57830183620001cb565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001d1565b620003a162000543565b60008152600083820152828288010152018790620001bc565b604183634e487b7160e01b6000525260246000fd5b508351633be17a5360e21b8152fd5b8351635a0a2c5160e11b8152600490fd5b0151905038806200016f565b82169060008052876000209160005b8181106200044c5750998385969798999a9b1062000432575b505050811b0160005562000184565b015160001960f88460031b161c1916905538808062000423565b8b8301518455928501929189019189016200040a565b60008052886000208380860160051c8201928b8710620004a3575b0160051c019085905b8281106200049657505062000150565b6000815501859062000486565b925081926200047d565b634e487b7160e01b600052602260045260246000fd5b90607f16906200013e565b634e487b7160e01b600052604160045260246000fd5b89838303126200052957620004f862000543565b90620005048462000589565b82528c8401519081151582036200052957828e92838e9501528152019201916200010d565b600080fd5b818101830151818f018401528b92016200009e565b60408051919082016001600160401b03811183821017620004ce57604052565b6040519190601f01601f191682016001600160401b03811183821017620004ce57604052565b51906001600160a01b03821682036200052957565b805115620005ac5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620005ac5760400190565b805160021015620005ac5760600190565b805160031015620005ac5760800190565b8051821015620005ac5760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa714610685575080637ee7f7d1146105e8578063a1bd91da14610579578063b59589d1146102125763e6f4c8651461005b57600080fd5b3461020f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020f57815190808154600181811c918181168015610205575b60209889851082146101d95750918391899593889586529081600014610199575060011461013e575b50506100da9250959392950382610752565b82519382859384528251928382860152825b84811061012857505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100ec565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b8183106101815750889450508201016100da386100c8565b85548884018501529485019487945091830191610169565b90506100da9593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100c8565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261009f565b80fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610284610eef565b61029661029082610793565b51610c96565b94909480926001809181925b6104c3575b5050508451937f071b48fc0000000000000000000000000000000000000000000000000000000085527f0000000000000000000000000000000000000000000000000000000000000000169283898601526020948581602481875afa9081156104b9578991610488575b50801515918261047d575b50506104555742039142831161042957839060248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041f5786936103eb575b505010156103c35750620f424090818102918183041490151715610397576103949061087a565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610418575b6104038183610752565b81010312610414575190388061036d565b8480fd5b503d6103f9565b84513d88823e3d90fd5b60248760118a7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b11159050388061031c565b90508581813d83116104b2575b61049f8183610752565b810103126104ae575138610311565b8880fd5b503d610495565b87513d8b823e3d90fd5b9091949297815186101561056d576104ec6104e660208860051b85010151610c96565b9261117e565b98808210156105685750805b938082111561056157505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105355782019190816102a2565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9050610503565b6104f8565b9792946102a7565b5080fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610575576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261057557610620610eef565b8151928392602080850191818652845180935281818701950193905b8382106106495786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff16875283015115158684015287965094850194938201936001919091019061063c565b90503461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff811161070757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761070757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761070757604052565b8051156107a05760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156107a05760400190565b8051600210156107a05760600190565b8051600310156107a05760800190565b67ffffffffffffffff81116107075760051b60200190565b81601f820112156108755780519161082e836107ff565b9261083c6040519485610752565b808452602092838086019260051b820101928311610875578301905b828210610866575050505090565b81518152908301908301610858565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c755787908892610b9a575b50805180158015610b7b575b610b0957600281118015610ace575b610aa55760018491148015610a90575b15610a755761095e61096692610793565b511691610793565b51905b8784899310600014610a6d57505b853b15610a695782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a5f57908591610a4b575b5050813b15610a47578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a3e5750610a2d575050565b610a3782916106f3565b61020f5750565b513d84823e3d90fd5b8380fd5b610a54906106f3565b610a475783386109d4565b84513d87823e3d90fd5b8780fd5b915090610977565b610a81610a89926107cf565b5116916107cf565b5190610969565b5080610a9b83610793565b511630141561094d565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610af4575b801561093d575083610aea836107cf565b511630141561093d565b5083610aff83610793565b5116301415610ad9565b50505050908293923b1561041457906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a3e5750610b6f575050565b610b78906106f3565b50565b5060018114801561092e575083610b9183610793565b5116301461092e565b9150503d8088833e610bac8183610752565b8101606082820312610a695781519067ffffffffffffffff91828111610c715783019181601f84011215610c71578251610be5816107ff565b93610bf28b519586610752565b818552602091828087019160051b83010191858311610c6d578301905b828210610c5157505050840151818111610c4d5782610c2f918601610817565b9389810151918211610c4d57610c46929101610817565b5038610922565b8a80fd5b81518981168103610c69578152908301908301610c0f565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361087557565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e65576000928396610e99575b506000831315610e715760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e6557600091610e29575b5060ff1660120360128111610dfb57604d8111610dfb57600a0a91828102928184041490151715610dcd57602082930151610d7d575b50509190565b9080925015610d9f57506ec097ce7bc90715b34b9f1000000000043880610d77565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e5d575b81610e4160209383610752565b8101031261057557519060ff8216820361020f575060ff610d41565b3d9150610e34565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610ee7575b81610eb560a09383610752565b8101031261020f5750610ec782610c7f565b506020820151610ede608060608501519401610c7f565b50919438610cf5565b3d9150610ea8565b7f000000000000000000000000000000000000000000000000000000000000000090610f1a826107ff565b604090610f2982519182610752565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f56856107ff565b016000805b82811061115c575050508093825190610f7382610736565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610fdf84610793565b52610fe983610793565b5060018111610ff9575b50505050565b835161100481610736565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261105a846107cf565b52611064836107cf565b506002811115610ff357600390845161107c81610736565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110d2856107df565b526110dc846107df565b50116110e9575b80610ff3565b6111539251906110f882610736565b7f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261114d826107ef565b526107ef565b503880806110e3565b602090855161116a81610736565b838152828481830152828701015201610f5b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561120957908691099214611203577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000aa164736f6c6343000812000a0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x412", + "chainId": "0xf370" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc8bafd48ea56b1de7d6c7faa135d84604ba7d3ecfaee942ca6b27dcd24947b7b", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactoryProxyAdmin", + "contractAddress": "0x4d4e9a6fc68e4f7818922673f41e7a0a227da150", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0xa1811", + "value": "0x0", + "input": "0x6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36107d990816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146105845750508063715018a6146105065780637eff275e146104665780638da5cb5b146104335780639623609d146102da5783816399a88ec41461022857508063f2fde38b1461010d5763f3b7dead1461007f57600080fd5b3461010957602060031936011261010957828073ffffffffffffffffffffffffffffffffffffffff92836100b16105e8565b168551907ff851a4400000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b931561010657506100fe8360208080965183010191016107a0565b169051908152f35b80fd5b8280fd5b5034610109576020600319360112610109576101276105e8565b906101306106f1565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101a5575050600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b929050346102d657806003193601126102d6576102436105e8565b61024b610610565b906102546106f1565b73ffffffffffffffffffffffffffffffffffffffff809116803b156102d257859283602492865197889586947f3659cfe600000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506102b95750f35b6102c290610633565b6101065780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606060031936011261042f576102f16105e8565b926102fa610610565b916044359067ffffffffffffffff821161042b573660238301121561042b578181013591610327836106b7565b9261033485519485610676565b8084523660248284010111610427576024929181889260209586930183880137850101526103606106f1565b73ffffffffffffffffffffffffffffffffffffffff80971696873b15610427578451957f4f1ef2860000000000000000000000000000000000000000000000000000000087521690850152826024850152815191826044860152855b83811061041357505050828495816064817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f878b85819a860101520116810103019134905af19081156102c957506102b95750f35b8181018301518682016064015282016103bc565b8680fd5b8480fd5b5080fd5b50503461042f578160031936011261042f5773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b509034610109578060031936011261010957826104816105e8565b610489610610565b6104916106f1565b73ffffffffffffffffffffffffffffffffffffffff80921690813b156105025783602492865197889586947f8f28397000000000000000000000000000000000000000000000000000000000865216908401525af19081156102c957506104f6575080f35b6104ff90610633565b80f35b8380fd5b833461010657806003193601126101065761051f6106f1565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b9150913461042f57602060031936011261042f57819073ffffffffffffffffffffffffffffffffffffffff93846105b96105e8565b167f5c60da1b0000000000000000000000000000000000000000000000000000000082525afa926100e3610770565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361060b57565b67ffffffffffffffff811161064757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761064757604052565b67ffffffffffffffff811161064757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff60005416330361071257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d1561079b573d90610781826106b7565b9161078f6040519384610676565b82523d6000602084013e565b606090565b9081602091031261060b575173ffffffffffffffffffffffffffffffffffffffff8116810361060b579056fea164736f6c6343000812000a", + "nonce": "0x413", + "chainId": "0xf370" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x6c62e62b0a108e388c33008bdfa5d95a8bb0486a9e32566089611d28ec59cb8f", + "transactionType": "CREATE", + "contractName": "ChainlinkRelayerFactoryProxy", + "contractAddress": "0x1e4386193b38327e501a8348186c1f8885439e50", + "function": null, + "arguments": [ + "0x5aF9Bad8767502F07176EcC74a86D1fc465757fe", + "0x4d4e9a6FC68e4f7818922673f41e7a0A227da150", + "0xc4d66de800000000000000000000000088a187a876290e9843175027902b9f7f1b092c88" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x100f0d", + "value": "0x0", + "input": "0x60406080815262000f9d8038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a357501617905551610b469081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe608060405236610217577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163303610212576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b602081519101f35b7f4f1ef2860000000000000000000000000000000000000000000000000000000081036100d957506100d4610893565b61009c565b7f8f28397000000000000000000000000000000000000000000000000000000000810361010957506100d461051f565b7ff851a44000000000000000000000000000000000000000000000000000000000810361013957506100d46103ae565b7f5c60da1b0000000000000000000000000000000000000000000000000000000003610167576100d4610407565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b6102aa565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff1633036102aa576000357fffffffff00000000000000000000000000000000000000000000000000000000167f3659cfe60000000000000000000000000000000000000000000000000000000081036100a4575061009c61065c565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e156102fd573d90f35b3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034c57604052565b610301565b6020810190811067ffffffffffffffff82111761034c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034c57604052565b6103b661094f565b73ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354166040519060208201526020815261040481610330565b90565b61040f61094f565b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166040519060208201526020815261040481610330565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361048057565b600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60209101126104805760043573ffffffffffffffffffffffffffffffffffffffff811681036104805790565b67ffffffffffffffff811161034c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6040519061051982610351565b60008252565b61052761094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff8061054e36610485565b167fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a181156105d8577fffffffffffffffffffffffff00000000000000000000000000000000000000001617905561040461050c565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b61066461094f565b366004116104805773ffffffffffffffffffffffffffffffffffffffff61068a36610485565b166040519061069882610351565b60008252803b15610759577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610751575b610737575b505060405161073081610351565b6000815290565b61074991610743610956565b916109c6565b503880610722565b50600061071d565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b803b156107595773ffffffffffffffffffffffffffffffffffffffff81167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061088b575b61087c575050565b61088891610743610956565b50565b506001610874565b366004116104805760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610480576108cd61045d565b6024359067ffffffffffffffff82116104805736602383011215610480578160040135916108fa836104d2565b91610908604051938461036d565b838352366024858401011161048057600060208561094796602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152166107dd565b61040461050c565b3461048057565b604051906060820182811067ffffffffffffffff82111761034c57604052602782527f206661696c6564000000000000000000000000000000000000000000000000006040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806104049493602081519101845af43d15610a05573d916109e8836104d2565b926109f6604051948561036d565b83523d6000602085013e610a72565b606091610a72565b15610a1457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015610a925750815115610a86575090565b610404903b1515610a0d565b825190915015610aa55750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610b22575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610ae156fea164736f6c6343000812000a0000000000000000000000005af9bad8767502f07176ecc74a86d1fc465757fe0000000000000000000000004d4e9a6fc68e4f7818922673f41e7a0a227da15000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de800000000000000000000000088a187a876290e9843175027902b9f7f1b092c8800000000000000000000000000000000000000000000000000000000", + "nonce": "0x414", + "chainId": "0xf370" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x3af36d", + "logs": [ + { + "address": "0x5af9bad8767502f07176ecc74a86d1fc465757fe", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "transactionHash": "0xdd7e16f1c071988cdb77271ae05b672e86cf2aaece25e0c7994ba8065988565a", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000040040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xdd7e16f1c071988cdb77271ae05b672e86cf2aaece25e0c7994ba8065988565a", + "transactionIndex": "0x0", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "gasUsed": "0x3af36d", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0x5af9bad8767502f07176ecc74a86d1fc465757fe" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x42b72c", + "logs": [ + { + "address": "0x4d4e9a6fc68e4f7818922673f41e7a0a227da150", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "transactionHash": "0xc8bafd48ea56b1de7d6c7faa135d84604ba7d3ecfaee942ca6b27dcd24947b7b", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020800000000000000000000000000000000000000200010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000020000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xc8bafd48ea56b1de7d6c7faa135d84604ba7d3ecfaee942ca6b27dcd24947b7b", + "transactionIndex": "0x1", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "gasUsed": "0x7c3bf", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0x4d4e9a6fc68e4f7818922673f41e7a0a227da150" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x4f1185", + "logs": [ + { + "address": "0x1e4386193b38327e501a8348186c1f8885439e50", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000005af9bad8767502f07176ecc74a86d1fc465757fe" + ], + "data": "0x", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "transactionHash": "0x6c62e62b0a108e388c33008bdfa5d95a8bb0486a9e32566089611d28ec59cb8f", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x1e4386193b38327e501a8348186c1f8885439e50", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "transactionHash": "0x6c62e62b0a108e388c33008bdfa5d95a8bb0486a9e32566089611d28ec59cb8f", + "transactionIndex": "0x2", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x1e4386193b38327e501a8348186c1f8885439e50", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "transactionHash": "0x6c62e62b0a108e388c33008bdfa5d95a8bb0486a9e32566089611d28ec59cb8f", + "transactionIndex": "0x2", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x1e4386193b38327e501a8348186c1f8885439e50", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d4e9a6fc68e4f7818922673f41e7a0a227da150", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "transactionHash": "0x6c62e62b0a108e388c33008bdfa5d95a8bb0486a9e32566089611d28ec59cb8f", + "transactionIndex": "0x2", + "logIndex": "0x5", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000020800000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000200000020000000000000000200800000000800000000000000000000000400000000000000000000000000000000000000000000080000000000000800000000000000000000000000000000400000000040000000000000000000000000000000020000000000000000000040000400000000400000010000000000020000004000000040000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x6c62e62b0a108e388c33008bdfa5d95a8bb0486a9e32566089611d28ec59cb8f", + "transactionIndex": "0x2", + "blockHash": "0x3a70a7382274a11987ba8ad6192c507cf281b04cc9a07c130e675cd3af5f3102", + "blockNumber": "0x18062f0", + "gasUsed": "0xc5a59", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0x1e4386193b38327e501a8348186c1f8885439e50" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x3e2cc57f83093Ce1Ee03482c1590E3B5f4225bd7", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519" + ], + "pending": [], + "returns": {}, + "timestamp": 1724070978, + "chain": 62320, + "commit": "865d71c" +} \ No newline at end of file diff --git a/broadcast/MU07-Deploy-ChainlinkRelayers.sol/42220/run-latest.json b/broadcast/MU07-Deploy-ChainlinkRelayers.sol/42220/run-latest.json new file mode 100644 index 00000000..a6d3a77f --- /dev/null +++ b/broadcast/MU07-Deploy-ChainlinkRelayers.sol/42220/run-latest.json @@ -0,0 +1,139 @@ +{ + "transactions": [ + { + "hash": "0x2cfa0aca61656ad2701ad507579aac8606f598c1818584621b93a0a7ede2da77", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "function": "deployRelayer(address,string,uint256,(address,bool)[])", + "arguments": [ + "0xaFc02368A174Cd08e01c373de6D0B537CECF43C8", + "\"CELO/PHP (CELO/USD:USD/PHP)\"", + "86400", + "[(0x0568fD19986748cEfF3301e55c0eb1E729E0Ab7e, false), (0x4ce8e628Bb82Ea5271908816a6C580A71233a66c, true)]" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "gas": "0x195657", + "value": "0x0", + "input": "0x472a1111000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f50485029000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000568fd19986748ceff3301e55c0eb1e729e0ab7e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ce8e628bb82ea5271908816a6c580a71233a66c0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x20c", + "chainId": "0xa4ec" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x8ec42cd1f5f41eaa8701a0a246cd76fc7543ea8e", + "initCode": "0x6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c800000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000efb84935239dacdecf7c5ba76d8de40b077b7b33000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f50485029000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000568fd19986748ceff3301e55c0eb1e729e0ab7e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ce8e628bb82ea5271908816a6c580a71233a66c0000000000000000000000000000000000000000000000000000000000000001" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x90a3cd99eda169e52d85e1d908a30cc07382910fc37821027be387067cabadd9", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "function": "deployRelayer(address,string,uint256,(address,bool)[])", + "arguments": [ + "0xab921d6ab1057601A9ae19879b111fC381a2a8E9", + "\"PHP/USD\"", + "0", + "[(0x4ce8e628Bb82Ea5271908816a6C580A71233a66c, false)]" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "gas": "0x178221", + "value": "0x0", + "input": "0x472a1111000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000075048502f5553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004ce8e628bb82ea5271908816a6c580a71233a66c0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x20d", + "chainId": "0xa4ec" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x3bc1f31b8150dc65b9fb9e8b69604c40eaa97c2f", + "initCode": "0x6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e900000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000efb84935239dacdecf7c5ba76d8de40b077b7b33000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000075048502f5553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004ce8e628bb82ea5271908816a6c580a71233a66c0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x11f72b", + "logs": [ + { + "address": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "topics": [ + "0xa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05", + "0x0000000000000000000000008ec42cd1f5f41eaa8701a0a246cd76fc7543ea8e", + "0x000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f50485029000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000568fd19986748ceff3301e55c0eb1e729e0ab7e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ce8e628bb82ea5271908816a6c580a71233a66c0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x78df64d5dcbbbce5c08dc16d01c7777b7f64bd8e14e26d84a815619ba6c95c4c", + "blockNumber": "0x1a253ec", + "transactionHash": "0x2cfa0aca61656ad2701ad507579aac8606f598c1818584621b93a0a7ede2da77", + "transactionIndex": "0x2", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000400000000020000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080020000000008000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000008000000000000000800000000", + "type": "0x0", + "transactionHash": "0x2cfa0aca61656ad2701ad507579aac8606f598c1818584621b93a0a7ede2da77", + "transactionIndex": "0x2", + "blockHash": "0x78df64d5dcbbbce5c08dc16d01c7777b7f64bd8e14e26d84a815619ba6c95c4c", + "blockNumber": "0x1a253ec", + "gasUsed": "0x11531b", + "effectiveGasPrice": "0x2540be400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x22fc30", + "logs": [ + { + "address": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "topics": [ + "0xa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05", + "0x0000000000000000000000003bc1f31b8150dc65b9fb9e8b69604c40eaa97c2f", + "0x000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000075048502f5553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004ce8e628bb82ea5271908816a6c580a71233a66c0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x78df64d5dcbbbce5c08dc16d01c7777b7f64bd8e14e26d84a815619ba6c95c4c", + "blockNumber": "0x1a253ec", + "transactionHash": "0x90a3cd99eda169e52d85e1d908a30cc07382910fc37821027be387067cabadd9", + "transactionIndex": "0x3", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000008040000800000000000000000000000000100000000000000000000000000000000400000000000000000000000000000000000000000000000000010000000000000000000004000000000000000000", + "type": "0x0", + "transactionHash": "0x90a3cd99eda169e52d85e1d908a30cc07382910fc37821027be387067cabadd9", + "transactionIndex": "0x3", + "blockHash": "0x78df64d5dcbbbce5c08dc16d01c7777b7f64bd8e14e26d84a815619ba6c95c4c", + "blockNumber": "0x1a253ec", + "gasUsed": "0x110505", + "effectiveGasPrice": "0x2540be400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x247cb6ecf21bdd2bc29d726cccc8d2f066211663", + "contractAddress": null + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x6200F54D73491d56b8d7A975C9ee18EFb4D518Df", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0xED477A99035d0c1e11369F1D7A4e587893cc002B" + ], + "pending": [], + "returns": {}, + "timestamp": 1724749811, + "chain": 42220, + "commit": "e15d787" +} \ No newline at end of file diff --git a/broadcast/MU07-Deploy-ChainlinkRelayers.sol/44787/run-latest.json b/broadcast/MU07-Deploy-ChainlinkRelayers.sol/44787/run-latest.json new file mode 100644 index 00000000..60b76025 --- /dev/null +++ b/broadcast/MU07-Deploy-ChainlinkRelayers.sol/44787/run-latest.json @@ -0,0 +1,139 @@ +{ + "transactions": [ + { + "hash": "0x822ec446fe4811d60357c7adf0493f34005d6f90212dfbd274bcc24ae7f6402d", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "function": "deployRelayer(address,string,uint256,(address,bool)[])", + "arguments": [ + "0xaFc02368A174Cd08e01c373de6D0B537CECF43C8", + "\"CELO/PHP (CELO/USD:USD/PHP)\"", + "86400", + "[(0x022F9dCC73C5Fb43F2b4eF2EF9ad3eDD1D853946, false), (0xCF79C1445c69Cd17b1BdEcF790416085A4fF808A, true)]" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "gas": "0x195657", + "value": "0x0", + "input": "0x472a1111000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f5048502900000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000022f9dcc73c5fb43f2b4ef2ef9ad3edd1d8539460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf79c1445c69cd17b1bdecf790416085a4ff808a0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x584", + "chainId": "0xaef3" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x390575d302361b47561b16cf6e4781213a977ca9", + "initCode": "0x6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c800000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e93075000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f5048502900000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000022f9dcc73c5fb43f2b4ef2ef9ad3edd1d8539460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf79c1445c69cd17b1bdecf790416085a4ff808a0000000000000000000000000000000000000000000000000000000000000001" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x048bc9845cc2d3381dc8545254f167ed359efaade2d72d426bb75e52231a14f2", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "function": "deployRelayer(address,string,uint256,(address,bool)[])", + "arguments": [ + "0xab921d6ab1057601A9ae19879b111fC381a2a8E9", + "\"PHP/USD\"", + "0", + "[(0xCF79C1445c69Cd17b1BdEcF790416085A4fF808A, false)]" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "gas": "0x178221", + "value": "0x0", + "input": "0x472a1111000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000075048502f555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000cf79c1445c69cd17b1bdecf790416085a4ff808a0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x585", + "chainId": "0xaef3" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x9c65c22c96391b0fc09122b86908ad680a8f0fe0", + "initCode": "0x6040610200815234620005a657620018e790813803806200002081620005e0565b938439820160a083820312620005a6576200003b8362000606565b906020928385015160018060401b0390818111620005a657860193601f90848287011215620005a6578551918383116200054957601f19926200008482820185168a01620005e0565b97818952878a8383010111620005a657899060005b838110620005ab57505060009189010152620000b7858a0162000606565b60608a01519260809a8b81015190878211620005a65701888482011215620005a65780518781116200054957620000f38c8260051b01620005e0565b998c808c848152019260061b84010192818411620005a6578d01915b8383106200055f57505050508a5260a0526101e0968288528051918583116200054957600054916001958684811c941680156200053e575b8c85101462000528578b8484879611620004cb575b50508b92841160011462000465575060009262000459575b5050600019600383901b1c191690831b176000555b8451946101c0958087521562000448576004918287511162000438578651908480831192836200042e575b83156200040f575b505050620004015784519360a0850190811185821017620003ec5785528184528760005b8a8110620003c9575050826000905b6200033d575b506001600160a01b03979250879150620002119050836200061b565b51511660c0528562000223836200063f565b51511660e05285620002358362000650565b515116956101009687526200024a8362000661565b515116610120908152816200025f846200061b565b5101511515906101409182528262000277856200063f565b510151151592610160938452620002a581620002938762000650565b51015115159561018096875262000661565b5101511515946101a0958652519761125f998a620006888b39518981816102d1015281816105a001526108f9015260a05189818161022a015281816106aa01526108aa015260c05189610f9f015260e0518961101a015251886110920152518761110d01525186610fc30152518561103e015251846110b60152518361113101525182610f04015251818181610285015261065b0152f35b8151811015620003c3576001600160a01b036200035b828462000672565b51511615620003b35762000370818362000672565b516200037d828762000672565b526200038a818662000672565b5060001981146200039e57830183620001ef565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001f5565b620003d3620005c0565b60008152600083820152828288010152018890620001e0565b604183634e487b7160e01b6000525260246000fd5b508351626a65eb60e01b8152fd5b1491508162000423575b50388481620001bc565b905015153862000419565b82159350620001b4565b8551633be17a5360e21b81528390fd5b8451635a0a2c5160e11b8152600490fd5b01519050388062000174565b86949291921691600080528b6000209260005b8d828210620004b457505084116200049a575b505050811b0160005562000189565b015160001960f88460031b161c191690553880806200048b565b838501518655899790950194938401930162000478565b9091929394506000805284826000209181880160051c83019388106200051e575b9187968a92969594930160051c01915b8281106200050e57508d91506200015c565b60008155879650899101620004fc565b92508192620004ec565b634e487b7160e01b600052602260045260246000fd5b93607f169362000147565b634e487b7160e01b600052604160045260246000fd5b8a83830312620005a6578d9062000575620005c0565b91620005818562000606565b8352840151908115158203620005a6578f91928d93838201528152019201916200010f565b600080fd5b8181018301518b82018401528b920162000099565b60408051919082016001600160401b038111838210176200054957604052565b6040519190601f01601f191682016001600160401b038111838210176200054957604052565b51906001600160a01b0382168203620005a657565b805115620006295760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620006295760400190565b805160021015620006295760600190565b805160031015620006295760800190565b8051821015620006295760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa71461067e5750806321b8929e146106435780637ee7f7d1146105c4578063a1bd91da14610573578063b59589d1146101ff5763e6f4c8651461006657600080fd5b346101fc57806003193601126101fc57815190808154600181811c9181811680156101f2575b60209889851082146101c65750918391899593889586529081600014610186575060011461012b575b50506100c7925095939295038261072d565b82519382859384528251928382860152825b84811061011557505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100d9565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b81831061016e5750889450508201016100c7386100b5565b85548884018501529485019487945091830191610156565b90506100c79593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100b5565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261008c565b80fd5b50903461056f578160031936011261056f5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610253610f02565b61026561025f8261076e565b51610ca9565b94909480926001809181925b6104bd575b50505061028390836107da565b7f000000000000000000000000000000000000000000000000000000000000000010610495578351927f071b48fc0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169182888501526020938481602481865afa90811561048b57889161045a575b50801515908161044f575b506104275761032b8491426107da565b9260248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041d5786936103e9575b505010156103c15750620f4240908181029181830414901517156103955761039290610891565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610416575b610401818361072d565b81010312610412575190388061036b565b8480fd5b503d6103f7565b84513d88823e3d90fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b90508111153861031b565b90508481813d8311610484575b610471818361072d565b81010312610480575138610310565b8780fd5b503d610467565b86513d8a823e3d90fd5b8684517f5289d054000000000000000000000000000000000000000000000000000000008152fd5b90919492978151861015610567576104e66104e060208860051b85010151610ca9565b92611191565b98808210156105625750805b938082111561055b57505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f578201919081610271565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90506104fd565b6104f2565b979294610276565b5080fd5b50903461056f578160031936011261056f576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461056f578160031936011261056f576105de610f02565b8151928392602080850191818652845180935281818701950193905b8382106106075786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff1687528301511515868401528796509485019493820193600191909101906105fa565b50903461056f578160031936011261056f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b90503461056f578160031936011261056f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff81116106e257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176106e257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e257604052565b80511561077b5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516001101561077b5760400190565b80516002101561077b5760600190565b80516003101561077b5760800190565b919082039182116107e757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81116106e25760051b60200190565b81601f8201121561088c5780519161084583610816565b92610853604051948561072d565b808452602092838086019260051b82010192831161088c578301905b82821061087d575050505090565b8151815290830190830161086f565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c885787908892610bad575b50805180158015610b8e575b610b1c57600281118015610ae1575b610ab85760018491148015610aa3575b15610a885761097561097d9261076e565b51169161076e565b51905b8784899310600014610a8057505b853b156104805782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a7657908591610a62575b5050813b15610a5e578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a555750610a44575050565b610a4e82916106ce565b6101fc5750565b513d84823e3d90fd5b8380fd5b610a6b906106ce565b610a5e5783386109eb565b84513d87823e3d90fd5b91509061098e565b610a94610a9c926107aa565b5116916107aa565b5190610980565b5080610aae8361076e565b5116301415610964565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610b07575b8015610954575083610afd836107aa565b5116301415610954565b5083610b128361076e565b5116301415610aec565b50505050908293923b1561041257906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a555750610b82575050565b610b8b906106ce565b50565b50600181148015610945575083610ba48361076e565b51163014610945565b9150503d8088833e610bbf818361072d565b81016060828203126104805781519067ffffffffffffffff91828111610c845783019181601f84011215610c84578251610bf881610816565b93610c058b51958661072d565b818552602091828087019160051b83010191858311610c80578301905b828210610c6457505050840151818111610c605782610c4291860161082e565b9389810151918211610c6057610c5992910161082e565b5038610939565b8a80fd5b81518981168103610c7c578152908301908301610c22565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361088c57565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e78576000928396610eac575b506000831315610e845760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e7857600091610e3c575b5060ff1660120360128111610e0e57604d8111610e0e57600a0a91828102928184041490151715610de057602082930151610d90575b50509190565b9080925015610db257506ec097ce7bc90715b34b9f1000000000043880610d8a565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e70575b81610e546020938361072d565b8101031261056f57519060ff821682036101fc575060ff610d54565b3d9150610e47565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610efa575b81610ec860a0938361072d565b810103126101fc5750610eda82610c92565b506020820151610ef1608060608501519401610c92565b50919438610d08565b3d9150610ebb565b7f000000000000000000000000000000000000000000000000000000000000000090610f2d82610816565b604090610f3c8251918261072d565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f6985610816565b016000805b82811061116f575050508093825190610f8682610711565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610ff28461076e565b52610ffc8361076e565b506001811161100c575b50505050565b835161101781610711565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261106d846107aa565b52611077836107aa565b50600281111561100657600390845161108f81610711565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110e5856107ba565b526110ef846107ba565b50116110fc575b80611006565b61116692519061110b82610711565b7f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152611160826107ca565b526107ca565b503880806110f6565b602090855161117d81610711565b838152828481830152828701015201610f6e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561121c57908691099214611216577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e900000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e93075000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000075048502f555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000cf79c1445c69cd17b1bdecf790416085a4ff808a0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x13477e", + "logs": [ + { + "address": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "topics": [ + "0xa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05", + "0x000000000000000000000000390575d302361b47561b16cf6e4781213a977ca9", + "0x000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f5048502900000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000022f9dcc73c5fb43f2b4ef2ef9ad3edd1d8539460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf79c1445c69cd17b1bdecf790416085a4ff808a0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x39e96766489162cc595d826988edd5c2e976559f7680f548556f00a3b00fab82", + "blockNumber": "0x18ab403", + "transactionHash": "0x822ec446fe4811d60357c7adf0493f34005d6f90212dfbd274bcc24ae7f6402d", + "transactionIndex": "0x1", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000001000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000008040000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000008000000000000000800000000", + "type": "0x0", + "transactionHash": "0x822ec446fe4811d60357c7adf0493f34005d6f90212dfbd274bcc24ae7f6402d", + "transactionIndex": "0x1", + "blockHash": "0x39e96766489162cc595d826988edd5c2e976559f7680f548556f00a3b00fab82", + "blockNumber": "0x18ab403", + "gasUsed": "0x11531b", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x244c83", + "logs": [ + { + "address": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "topics": [ + "0xa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05", + "0x0000000000000000000000009c65c22c96391b0fc09122b86908ad680a8f0fe0", + "0x000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000075048502f555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000cf79c1445c69cd17b1bdecf790416085a4ff808a0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x39e96766489162cc595d826988edd5c2e976559f7680f548556f00a3b00fab82", + "blockNumber": "0x18ab403", + "transactionHash": "0x048bc9845cc2d3381dc8545254f167ed359efaade2d72d426bb75e52231a14f2", + "transactionIndex": "0x2", + "logIndex": "0x3", + "removed": false + } + ], + "logsBloom": "0x00010000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008040000800020000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000040000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x048bc9845cc2d3381dc8545254f167ed359efaade2d72d426bb75e52231a14f2", + "transactionIndex": "0x2", + "blockHash": "0x39e96766489162cc595d826988edd5c2e976559f7680f548556f00a3b00fab82", + "blockNumber": "0x18ab403", + "gasUsed": "0x110505", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x172d6273364cc0c0b2be73aa1d4f20eb010cd1eb", + "contractAddress": null + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" + ], + "pending": [], + "returns": {}, + "timestamp": 1724748791, + "chain": 44787, + "commit": "663bcd4" +} \ No newline at end of file diff --git a/broadcast/MU07-Deploy-ChainlinkRelayers.sol/62320/run-latest.json b/broadcast/MU07-Deploy-ChainlinkRelayers.sol/62320/run-latest.json new file mode 100644 index 00000000..9ec4f88b --- /dev/null +++ b/broadcast/MU07-Deploy-ChainlinkRelayers.sol/62320/run-latest.json @@ -0,0 +1,137 @@ +{ + "transactions": [ + { + "hash": "0xd7efb2c047a96f8f10a2166dc69782bb6d3ed9590cede4b1e57c5c53fc2ee774", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x1e4386193b38327e501a8348186c1f8885439e50", + "function": "deployRelayer(address,string,(address,bool)[])", + "arguments": [ + "0xaFc02368A174Cd08e01c373de6D0B537CECF43C8", + "\"CELO/PHP (CELO/USD:USD/PHP)\"", + "[(0x5943dEd733211Bb3E45fCc34a4E1Ec47F42BED94, false), (0x729eA5A1b118C2697f8eefA9a9f54351eB064615, true)]" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x1e4386193b38327e501a8348186c1f8885439e50", + "gas": "0x17d465", + "value": "0x0", + "input": "0xf4123166000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f50485029000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000005943ded733211bb3e45fcc34a4e1ec47f42bed940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000729ea5a1b118c2697f8eefa9a9f54351eb0646150000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x415", + "chainId": "0xf370" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x3bf94361e9684e35f138fd405aa7cf423239146c", + "initCode": "0x60406101e08152346200052957620018579081380380620000208162000563565b938439820190608091828482031262000529576200003e8462000589565b6020858101519093916001600160401b03918281116200052957870196601f9085828a0112156200052957885192848411620004ce57601f19936200008984820186168a0162000563565b9a818c52888a83830101116200052957899060005b8381106200052e5750506000918c010152620000bc86830162000589565b9160608101519086821162000529570187848201121562000529578051868111620004ce57620000f18a8260051b0162000563565b988a808b848152019260061b8401019281841162000529578b01915b838310620004e45750505050885260a052875190838211620004ce57600054926001938481811c91168015620004c3575b89821014620004ad5782811162000462575b5087918311600114620003fb57508192939495969798600092620003ef575b5050600019600383901b1c191690821b176000555b8351936101c09480865215620003de5760049081865111620003cf5784519360a0850190811185821017620003ba5785528184528660005b89811062000397575050826000905b6200030b575b506001600160a01b03969250869150620001ed9050836200059e565b51511660c05284620001ff83620005c2565b51511660e052846200021183620005d3565b515116946101009586526200022683620005e4565b515116610120908152816200023b846200059e565b510151151590610140918252826200025385620005c2565b51015115159261016093845262000281816200026f87620005d3565b510151151595610180968752620005e4565b5101511515946101a0958652519661124c98896200060b8a39518881816102d2015281816105c401526108e2015260a05188818161025b015281816106cf0152610893015260c05188610f8c015260e051886110070152518761107f015251866110fa01525185610fb00152518461102b015251836110a30152518261111e01525181610ef10152f35b815181101562000391576001600160a01b03620003298284620005f5565b5151161562000381576200033e8183620005f5565b516200034b8287620005f5565b52620003588186620005f5565b5060001981146200036c57830183620001cb565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001d1565b620003a162000543565b60008152600083820152828288010152018790620001bc565b604183634e487b7160e01b6000525260246000fd5b508351633be17a5360e21b8152fd5b8351635a0a2c5160e11b8152600490fd5b0151905038806200016f565b82169060008052876000209160005b8181106200044c5750998385969798999a9b1062000432575b505050811b0160005562000184565b015160001960f88460031b161c1916905538808062000423565b8b8301518455928501929189019189016200040a565b60008052886000208380860160051c8201928b8710620004a3575b0160051c019085905b8281106200049657505062000150565b6000815501859062000486565b925081926200047d565b634e487b7160e01b600052602260045260246000fd5b90607f16906200013e565b634e487b7160e01b600052604160045260246000fd5b89838303126200052957620004f862000543565b90620005048462000589565b82528c8401519081151582036200052957828e92838e9501528152019201916200010d565b600080fd5b818101830151818f018401528b92016200009e565b60408051919082016001600160401b03811183821017620004ce57604052565b6040519190601f01601f191682016001600160401b03811183821017620004ce57604052565b51906001600160a01b03821682036200052957565b805115620005ac5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620005ac5760400190565b805160021015620005ac5760600190565b805160031015620005ac5760800190565b8051821015620005ac5760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa714610685575080637ee7f7d1146105e8578063a1bd91da14610579578063b59589d1146102125763e6f4c8651461005b57600080fd5b3461020f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020f57815190808154600181811c918181168015610205575b60209889851082146101d95750918391899593889586529081600014610199575060011461013e575b50506100da9250959392950382610752565b82519382859384528251928382860152825b84811061012857505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100ec565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b8183106101815750889450508201016100da386100c8565b85548884018501529485019487945091830191610169565b90506100da9593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100c8565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261009f565b80fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610284610eef565b61029661029082610793565b51610c96565b94909480926001809181925b6104c3575b5050508451937f071b48fc0000000000000000000000000000000000000000000000000000000085527f0000000000000000000000000000000000000000000000000000000000000000169283898601526020948581602481875afa9081156104b9578991610488575b50801515918261047d575b50506104555742039142831161042957839060248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041f5786936103eb575b505010156103c35750620f424090818102918183041490151715610397576103949061087a565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610418575b6104038183610752565b81010312610414575190388061036d565b8480fd5b503d6103f9565b84513d88823e3d90fd5b60248760118a7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b11159050388061031c565b90508581813d83116104b2575b61049f8183610752565b810103126104ae575138610311565b8880fd5b503d610495565b87513d8b823e3d90fd5b9091949297815186101561056d576104ec6104e660208860051b85010151610c96565b9261117e565b98808210156105685750805b938082111561056157505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105355782019190816102a2565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9050610503565b6104f8565b9792946102a7565b5080fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610575576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261057557610620610eef565b8151928392602080850191818652845180935281818701950193905b8382106106495786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff16875283015115158684015287965094850194938201936001919091019061063c565b90503461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff811161070757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761070757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761070757604052565b8051156107a05760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156107a05760400190565b8051600210156107a05760600190565b8051600310156107a05760800190565b67ffffffffffffffff81116107075760051b60200190565b81601f820112156108755780519161082e836107ff565b9261083c6040519485610752565b808452602092838086019260051b820101928311610875578301905b828210610866575050505090565b81518152908301908301610858565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c755787908892610b9a575b50805180158015610b7b575b610b0957600281118015610ace575b610aa55760018491148015610a90575b15610a755761095e61096692610793565b511691610793565b51905b8784899310600014610a6d57505b853b15610a695782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a5f57908591610a4b575b5050813b15610a47578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a3e5750610a2d575050565b610a3782916106f3565b61020f5750565b513d84823e3d90fd5b8380fd5b610a54906106f3565b610a475783386109d4565b84513d87823e3d90fd5b8780fd5b915090610977565b610a81610a89926107cf565b5116916107cf565b5190610969565b5080610a9b83610793565b511630141561094d565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610af4575b801561093d575083610aea836107cf565b511630141561093d565b5083610aff83610793565b5116301415610ad9565b50505050908293923b1561041457906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a3e5750610b6f575050565b610b78906106f3565b50565b5060018114801561092e575083610b9183610793565b5116301461092e565b9150503d8088833e610bac8183610752565b8101606082820312610a695781519067ffffffffffffffff91828111610c715783019181601f84011215610c71578251610be5816107ff565b93610bf28b519586610752565b818552602091828087019160051b83010191858311610c6d578301905b828210610c5157505050840151818111610c4d5782610c2f918601610817565b9389810151918211610c4d57610c46929101610817565b5038610922565b8a80fd5b81518981168103610c69578152908301908301610c0f565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361087557565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e65576000928396610e99575b506000831315610e715760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e6557600091610e29575b5060ff1660120360128111610dfb57604d8111610dfb57600a0a91828102928184041490151715610dcd57602082930151610d7d575b50509190565b9080925015610d9f57506ec097ce7bc90715b34b9f1000000000043880610d77565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e5d575b81610e4160209383610752565b8101031261057557519060ff8216820361020f575060ff610d41565b3d9150610e34565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610ee7575b81610eb560a09383610752565b8101031261020f5750610ec782610c7f565b506020820151610ede608060608501519401610c7f565b50919438610cf5565b3d9150610ea8565b7f000000000000000000000000000000000000000000000000000000000000000090610f1a826107ff565b604090610f2982519182610752565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f56856107ff565b016000805b82811061115c575050508093825190610f7382610736565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610fdf84610793565b52610fe983610793565b5060018111610ff9575b50505050565b835161100481610736565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261105a846107cf565b52611064836107cf565b506002811115610ff357600390845161107c81610736565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110d2856107df565b526110dc846107df565b50116110e9575b80610ff3565b6111539251906110f882610736565b7f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261114d826107ef565b526107ef565b503880806110e3565b602090855161116a81610736565b838152828481830152828701015201610f5b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561120957908691099214611203577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000088a187a876290e9843175027902b9f7f1b092c8800000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f50485029000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000005943ded733211bb3e45fcc34a4e1ec47f42bed940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000729ea5a1b118c2697f8eefa9a9f54351eb0646150000000000000000000000000000000000000000000000000000000000000001" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x69aa76444d819b6915238457e027128e979bb701a9d32d94c41e5e16dc5c12a0", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x1e4386193b38327e501a8348186c1f8885439e50", + "function": "deployRelayer(address,string,(address,bool)[])", + "arguments": [ + "0xab921d6ab1057601A9ae19879b111fC381a2a8E9", + "\"PHP/USD\"", + "[(0x729eA5A1b118C2697f8eefA9a9f54351eB064615, false)]" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x1e4386193b38327e501a8348186c1f8885439e50", + "gas": "0x1768c1", + "value": "0x0", + "input": "0xf4123166000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000075048502f555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000729ea5a1b118c2697f8eefa9a9f54351eb0646150000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x416", + "chainId": "0xf370" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x64276f411de50ce9fd2f38a37bdec9409f5b1bd8", + "initCode": "0x60406101e08152346200052957620018579081380380620000208162000563565b938439820190608091828482031262000529576200003e8462000589565b6020858101519093916001600160401b03918281116200052957870196601f9085828a0112156200052957885192848411620004ce57601f19936200008984820186168a0162000563565b9a818c52888a83830101116200052957899060005b8381106200052e5750506000918c010152620000bc86830162000589565b9160608101519086821162000529570187848201121562000529578051868111620004ce57620000f18a8260051b0162000563565b988a808b848152019260061b8401019281841162000529578b01915b838310620004e45750505050885260a052875190838211620004ce57600054926001938481811c91168015620004c3575b89821014620004ad5782811162000462575b5087918311600114620003fb57508192939495969798600092620003ef575b5050600019600383901b1c191690821b176000555b8351936101c09480865215620003de5760049081865111620003cf5784519360a0850190811185821017620003ba5785528184528660005b89811062000397575050826000905b6200030b575b506001600160a01b03969250869150620001ed9050836200059e565b51511660c05284620001ff83620005c2565b51511660e052846200021183620005d3565b515116946101009586526200022683620005e4565b515116610120908152816200023b846200059e565b510151151590610140918252826200025385620005c2565b51015115159261016093845262000281816200026f87620005d3565b510151151595610180968752620005e4565b5101511515946101a0958652519661124c98896200060b8a39518881816102d2015281816105c401526108e2015260a05188818161025b015281816106cf0152610893015260c05188610f8c015260e051886110070152518761107f015251866110fa01525185610fb00152518461102b015251836110a30152518261111e01525181610ef10152f35b815181101562000391576001600160a01b03620003298284620005f5565b5151161562000381576200033e8183620005f5565b516200034b8287620005f5565b52620003588186620005f5565b5060001981146200036c57830183620001cb565b601183634e487b7160e01b6000525260246000fd5b855163029a68ed60e41b81528390fd5b620001d1565b620003a162000543565b60008152600083820152828288010152018790620001bc565b604183634e487b7160e01b6000525260246000fd5b508351633be17a5360e21b8152fd5b8351635a0a2c5160e11b8152600490fd5b0151905038806200016f565b82169060008052876000209160005b8181106200044c5750998385969798999a9b1062000432575b505050811b0160005562000184565b015160001960f88460031b161c1916905538808062000423565b8b8301518455928501929189019189016200040a565b60008052886000208380860160051c8201928b8710620004a3575b0160051c019085905b8281106200049657505062000150565b6000815501859062000486565b925081926200047d565b634e487b7160e01b600052602260045260246000fd5b90607f16906200013e565b634e487b7160e01b600052604160045260246000fd5b89838303126200052957620004f862000543565b90620005048462000589565b82528c8401519081151582036200052957828e92838e9501528152019201916200010d565b600080fd5b818101830151818f018401528b92016200009e565b60408051919082016001600160401b03811183821017620004ce57604052565b6040519190601f01601f191682016001600160401b03811183821017620004ce57604052565b51906001600160a01b03821682036200052957565b805115620005ac5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620005ac5760400190565b805160021015620005ac5760600190565b805160031015620005ac5760800190565b8051821015620005ac5760209160051b01019056fe608060408181526004918236101561001657600080fd5b600090813560e01c908163132e8aa714610685575080637ee7f7d1146105e8578063a1bd91da14610579578063b59589d1146102125763e6f4c8651461005b57600080fd5b3461020f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020f57815190808154600181811c918181168015610205575b60209889851082146101d95750918391899593889586529081600014610199575060011461013e575b50506100da9250959392950382610752565b82519382859384528251928382860152825b84811061012857505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100ec565b8580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639492508591905b8183106101815750889450508201016100da386100c8565b85548884018501529485019487945091830191610169565b90506100da9593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201018692386100c8565b8660226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f169261009f565b80fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610284610eef565b61029661029082610793565b51610c96565b94909480926001809181925b6104c3575b5050508451937f071b48fc0000000000000000000000000000000000000000000000000000000085527f0000000000000000000000000000000000000000000000000000000000000000169283898601526020948581602481875afa9081156104b9578991610488575b50801515918261047d575b50506104555742039142831161042957839060248651809481937f6deb67990000000000000000000000000000000000000000000000000000000083528c8301525afa92831561041f5786936103eb575b505010156103c35750620f424090818102918183041490151715610397576103949061087a565b80f35b5060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390517fa3644e9f000000000000000000000000000000000000000000000000000000008152fd5b9080929350813d8311610418575b6104038183610752565b81010312610414575190388061036d565b8480fd5b503d6103f9565b84513d88823e3d90fd5b60248760118a7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8785517fc175c1ae000000000000000000000000000000000000000000000000000000008152fd5b11159050388061031c565b90508581813d83116104b2575b61049f8183610752565b810103126104ae575138610311565b8880fd5b503d610495565b87513d8b823e3d90fd5b9091949297815186101561056d576104ec6104e660208860051b85010151610c96565b9261117e565b98808210156105685750805b938082111561056157505b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105355782019190816102a2565b60248a60118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9050610503565b6104f8565b9792946102a7565b5080fd5b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610575576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50903461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261057557610620610eef565b8151928392602080850191818652845180935281818701950193905b8382106106495786860387f35b8451805173ffffffffffffffffffffffffffffffffffffffff16875283015115158684015287965094850194938201936001919091019061063c565b90503461057557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105755760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b67ffffffffffffffff811161070757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761070757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761070757604052565b8051156107a05760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156107a05760400190565b8051600210156107a05760600190565b8051600310156107a05760800190565b67ffffffffffffffff81116107075760051b60200190565b81601f820112156108755780519161082e836107ff565b9261083c6040519485610752565b808452602092838086019260051b820101928311610875578301905b828210610866575050505090565b81518152908301908301610858565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000166040918251907f02f55b61000000000000000000000000000000000000000000000000000000008252600094807f00000000000000000000000000000000000000000000000000000000000000001692836004820152868160248183895af1908115610c755787908892610b9a575b50805180158015610b7b575b610b0957600281118015610ace575b610aa55760018491148015610a90575b15610a755761095e61096692610793565b511691610793565b51905b8784899310600014610a6d57505b853b15610a695782908751947f80e507440000000000000000000000000000000000000000000000000000000086528660048701526024860152166044840152166064820152848160848183875af18015610a5f57908591610a4b575b5050813b15610a47578291604485949285935195869384927fdd34ca3b0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1908115610a3e5750610a2d575050565b610a3782916106f3565b61020f5750565b513d84823e3d90fd5b8380fd5b610a54906106f3565b610a475783386109d4565b84513d87823e3d90fd5b8780fd5b915090610977565b610a81610a89926107cf565b5116916107cf565b5190610969565b5080610a9b83610793565b511630141561094d565b600488517f6d79d026000000000000000000000000000000000000000000000000000000008152fd5b506002811480610af4575b801561093d575083610aea836107cf565b511630141561093d565b5083610aff83610793565b5116301415610ad9565b50505050908293923b1561041457906084859283855196879485937f80e50744000000000000000000000000000000000000000000000000000000008552600485015260248401528160448401528160648401525af1908115610a3e5750610b6f575050565b610b78906106f3565b50565b5060018114801561092e575083610b9183610793565b5116301461092e565b9150503d8088833e610bac8183610752565b8101606082820312610a695781519067ffffffffffffffff91828111610c715783019181601f84011215610c71578251610be5816107ff565b93610bf28b519586610752565b818552602091828087019160051b83010191858311610c6d578301905b828210610c5157505050840151818111610c4d5782610c2f918601610817565b9389810151918211610c4d57610c46929101610817565b5038610922565b8a80fd5b81518981168103610c69578152908301908301610c0f565b8e80fd5b8d80fd5b8980fd5b86513d89823e3d90fd5b519069ffffffffffffffffffff8216820361087557565b9073ffffffffffffffffffffffffffffffffffffffff9160a083825116604051918280927ffeaf968c00000000000000000000000000000000000000000000000000000000825260049384915afa948515610e65576000928396610e99575b506000831315610e715760208291855116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115610e6557600091610e29575b5060ff1660120360128111610dfb57604d8111610dfb57600a0a91828102928184041490151715610dcd57602082930151610d7d575b50509190565b9080925015610d9f57506ec097ce7bc90715b34b9f1000000000043880610d77565b6012907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6020813d8211610e5d575b81610e4160209383610752565b8101031261057557519060ff8216820361020f575060ff610d41565b3d9150610e34565b6040513d6000823e3d90fd5b506040517ebfc921000000000000000000000000000000000000000000000000000000008152fd5b9290955060a0833d8211610ee7575b81610eb560a09383610752565b8101031261020f5750610ec782610c7f565b506020820151610ede608060608501519401610c7f565b50919438610cf5565b3d9150610ea8565b7f000000000000000000000000000000000000000000000000000000000000000090610f1a826107ff565b604090610f2982519182610752565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f56856107ff565b016000805b82811061115c575050508093825190610f7382610736565b73ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001681527f000000000000000000000000000000000000000000000000000000000000000015156020820152610fdf84610793565b52610fe983610793565b5060018111610ff9575b50505050565b835161100481610736565b827f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261105a846107cf565b52611064836107cf565b506002811115610ff357600390845161107c81610736565b837f00000000000000000000000000000000000000000000000000000000000000001681527f0000000000000000000000000000000000000000000000000000000000000000151560208201526110d2856107df565b526110dc846107df565b50116110e9575b80610ff3565b6111539251906110f882610736565b7f00000000000000000000000000000000000000000000000000000000000000001681527f00000000000000000000000000000000000000000000000000000000000000001515602082015261114d826107ef565b526107ef565b503880806110e3565b602090855161116a81610736565b838152828481830152828701015201610f5b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830391670de0b6b3a7640000958684101561120957908691099214611203577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699350828211900360ee1b910360121c170290565b50500490565b604491604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fdfea164736f6c6343000812000a000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000088a187a876290e9843175027902b9f7f1b092c8800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000075048502f555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000729ea5a1b118c2697f8eefa9a9f54351eb0646150000000000000000000000000000000000000000000000000000000000000000" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x114094", + "logs": [ + { + "address": "0x1e4386193b38327e501a8348186c1f8885439e50", + "topics": [ + "0xa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05", + "0x0000000000000000000000003bf94361e9684e35f138fd405aa7cf423239146c", + "0x000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001b43454c4f2f504850202843454c4f2f5553443a5553442f50485029000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000005943ded733211bb3e45fcc34a4e1ec47f42bed940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000729ea5a1b118c2697f8eefa9a9f54351eb0646150000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x80d94fd0695855a3999d52be74d4fbca974527693d1545fb67bf01ddde73ce44", + "blockNumber": "0x18062fc", + "transactionHash": "0xd7efb2c047a96f8f10a2166dc69782bb6d3ed9590cede4b1e57c5c53fc2ee774", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000400000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000008000040000000000000000000000000000100000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000008000000000000000800000000", + "type": "0x0", + "transactionHash": "0xd7efb2c047a96f8f10a2166dc69782bb6d3ed9590cede4b1e57c5c53fc2ee774", + "transactionIndex": "0x0", + "blockHash": "0x80d94fd0695855a3999d52be74d4fbca974527693d1545fb67bf01ddde73ce44", + "blockNumber": "0x18062fc", + "gasUsed": "0x114094", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x1e4386193b38327e501a8348186c1f8885439e50", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x22333a", + "logs": [ + { + "address": "0x1e4386193b38327e501a8348186c1f8885439e50", + "topics": [ + "0xa293edbc5018bd43c95bab416b1cb297eb58222c3471c76b3b87051f720acb05", + "0x00000000000000000000000064276f411de50ce9fd2f38a37bdec9409f5b1bd8", + "0x000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000075048502f555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000729ea5a1b118c2697f8eefa9a9f54351eb0646150000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x80d94fd0695855a3999d52be74d4fbca974527693d1545fb67bf01ddde73ce44", + "blockNumber": "0x18062fc", + "transactionHash": "0x69aa76444d819b6915238457e027128e979bb701a9d32d94c41e5e16dc5c12a0", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000400000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008040040800004000000000000000000000100000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x69aa76444d819b6915238457e027128e979bb701a9d32d94c41e5e16dc5c12a0", + "transactionIndex": "0x1", + "blockHash": "0x80d94fd0695855a3999d52be74d4fbca974527693d1545fb67bf01ddde73ce44", + "blockNumber": "0x18062fc", + "gasUsed": "0x10f2a6", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x1e4386193b38327e501a8348186c1f8885439e50", + "contractAddress": null + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x3e2cc57f83093Ce1Ee03482c1590E3B5f4225bd7", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519" + ], + "pending": [], + "returns": {}, + "timestamp": 1724071020, + "chain": 62320, + "commit": "865d71c" +} \ No newline at end of file diff --git a/broadcast/MU07.sol/44787/run-latest.json b/broadcast/MU07.sol/44787/run-latest.json new file mode 100644 index 00000000..d507971e --- /dev/null +++ b/broadcast/MU07.sol/44787/run-latest.json @@ -0,0 +1,107 @@ +{ + "transactions": [ + { + "hash": "0x5e037318fecce9286188173fd5f0d6df86ea91022008f4c08eb3479122bd8c08", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "function": "minDeposit()", + "arguments": [], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "gas": "0x9bae", + "value": "0x0", + "input": "0x41b3d185", + "nonce": "0x586", + "chainId": "0xaef3" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2440db58060f5aa7c9f9617e079892f879b89a72f5cd402cb6fb4e9489ab7eaf", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "function": "propose(uint256[],address[],bytes,uint256[],string)", + "arguments": [ + "[0, 0, 0, 0, 0]", + "[0xFdd8bD58115FfBf04e47411c1d228eCC45E93075, 0xFdd8bD58115FfBf04e47411c1d228eCC45E93075, 0xFdd8bD58115FfBf04e47411c1d228eCC45E93075, 0xFdd8bD58115FfBf04e47411c1d228eCC45E93075, 0xFdd8bD58115FfBf04e47411c1d228eCC45E93075]", + "0x53a57297000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c800000000000000000000000072eff9ad96448b0b4efd4953245b69a3503eadd60000000000000000000000000000000000000000000000000000000000000000f0ca4adb000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8000000000000000000000000390575d302361b47561b16cf6e4781213a977ca953a57297000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9000000000000000000000000a5885be7a37ea97eaab309fd208fa14ac03e12620000000000000000000000000000000000000000000000000000000000000000f0ca4adb000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e90000000000000000000000009c65c22c96391b0fc09122b86908ad680a8f0fe0145d8d180000000000000000000000005e0e3c9419c42a1b04e2525991fb1a2c467ab8bf000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8", + "[100, 68, 100, 68, 68]", + "\"whitelist-oracles\"" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "gas": "0x11ef3a", + "value": "0x56bc75e2d63100000", + "input": "0x65bbdaa000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e93075000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e93075000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e93075000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e93075000000000000000000000000fdd8bd58115ffbf04e47411c1d228ecc45e93075000000000000000000000000000000000000000000000000000000000000019453a57297000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c800000000000000000000000072eff9ad96448b0b4efd4953245b69a3503eadd60000000000000000000000000000000000000000000000000000000000000000f0ca4adb000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8000000000000000000000000390575d302361b47561b16cf6e4781213a977ca953a57297000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e9000000000000000000000000a5885be7a37ea97eaab309fd208fa14ac03e12620000000000000000000000000000000000000000000000000000000000000000f0ca4adb000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e90000000000000000000000009c65c22c96391b0fc09122b86908ad680a8f0fe0145d8d180000000000000000000000005e0e3c9419c42a1b04e2525991fb1a2c467ab8bf000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000001177686974656c6973742d6f7261636c6573000000000000000000000000000000", + "nonce": "0x587", + "chainId": "0xaef3" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x70b6", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x5e037318fecce9286188173fd5f0d6df86ea91022008f4c08eb3479122bd8c08", + "transactionIndex": "0x0", + "blockHash": "0x99cbdb041ed46fd2b199c25c0eb26fb39a987ffed7a9b4b8434007d135c50c04", + "blockNumber": "0x18ab42d", + "gasUsed": "0x70b6", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xd6cae", + "logs": [ + { + "address": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "topics": [ + "0x1bfe527f3548d9258c2512b6689f0acfccdd0557d80a53845db25fc57e93d8fe", + "0x0000000000000000000000000000000000000000000000000000000000000143", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000066cd94a3", + "blockHash": "0x99cbdb041ed46fd2b199c25c0eb26fb39a987ffed7a9b4b8434007d135c50c04", + "blockNumber": "0x18ab42d", + "transactionHash": "0x2440db58060f5aa7c9f9617e079892f879b89a72f5cd402cb6fb4e9489ab7eaf", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000010000000000000200000000000000000000000000000000000010000000010000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000400200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x2440db58060f5aa7c9f9617e079892f879b89a72f5cd402cb6fb4e9489ab7eaf", + "transactionIndex": "0x1", + "blockHash": "0x99cbdb041ed46fd2b199c25c0eb26fb39a987ffed7a9b4b8434007d135c50c04", + "blockNumber": "0x18ab42d", + "gasUsed": "0xcfbf8", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0xaa963fc97281d9632d96700ab62a4d1340f9a28a", + "contractAddress": null + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" + ], + "pending": [], + "returns": {}, + "timestamp": 1724748969, + "chain": 44787, + "commit": "663bcd4" +} \ No newline at end of file diff --git a/broadcast/MU07.sol/62320/run-latest.json b/broadcast/MU07.sol/62320/run-latest.json new file mode 100644 index 00000000..3cc12fd3 --- /dev/null +++ b/broadcast/MU07.sol/62320/run-latest.json @@ -0,0 +1,107 @@ +{ + "transactions": [ + { + "hash": "0x7c1888cce5730eb3beb9a262332a3953eb904b7b495a6fb061d902f13599e4cd", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x28443b1d87db521320a6517a4f1b6ead77f8c811", + "function": "minDeposit()", + "arguments": [], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x28443b1d87db521320a6517a4f1b6ead77f8c811", + "gas": "0x9bcc", + "value": "0x0", + "input": "0x41b3d185", + "nonce": "0x41b", + "chainId": "0xf370" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x221c67dd989765ba2fa16199630c0230e70f76d0b3a1db9c93f01bedd30d7616", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x28443b1d87db521320a6517a4f1b6ead77f8c811", + "function": "propose(uint256[],address[],bytes,uint256[],string)", + "arguments": [ + "[0, 0]", + "[0x88A187a876290E9843175027902B9f7f1B092c88, 0x88A187a876290E9843175027902B9f7f1B092c88]", + "0xf0ca4adb000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c80000000000000000000000003bf94361e9684e35f138fd405aa7cf423239146cf0ca4adb000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e900000000000000000000000064276f411de50ce9fd2f38a37bdec9409f5b1bd8", + "[68, 68]", + "\"whitelist-oracles\"" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x28443b1d87db521320a6517a4f1b6ead77f8c811", + "gas": "0xa78dd", + "value": "0x56bc75e2d63100000", + "input": "0x65bbdaa000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000088a187a876290e9843175027902b9f7f1b092c8800000000000000000000000088a187a876290e9843175027902b9f7f1b092c880000000000000000000000000000000000000000000000000000000000000088f0ca4adb000000000000000000000000afc02368a174cd08e01c373de6d0b537cecf43c80000000000000000000000003bf94361e9684e35f138fd405aa7cf423239146cf0ca4adb000000000000000000000000ab921d6ab1057601a9ae19879b111fc381a2a8e900000000000000000000000064276f411de50ce9fd2f38a37bdec9409f5b1bd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000001177686974656c6973742d6f7261636c6573000000000000000000000000000000", + "nonce": "0x41c", + "chainId": "0xf370" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x70cc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x7c1888cce5730eb3beb9a262332a3953eb904b7b495a6fb061d902f13599e4cd", + "transactionIndex": "0x0", + "blockHash": "0x297b2600854ebea026755c33a340eab9a3589aaa884ef32e056e097ed8f07c81", + "blockNumber": "0x1812bc0", + "gasUsed": "0x70cc", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x28443b1d87db521320a6517a4f1b6ead77f8c811", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x805b2", + "logs": [ + { + "address": "0x28443b1d87db521320a6517a4f1b6ead77f8c811", + "topics": [ + "0x1bfe527f3548d9258c2512b6689f0acfccdd0557d80a53845db25fc57e93d8fe", + "0x00000000000000000000000000000000000000000000000000000000000000d8", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000066c72ef1", + "blockHash": "0x297b2600854ebea026755c33a340eab9a3589aaa884ef32e056e097ed8f07c81", + "blockNumber": "0x1812bc0", + "transactionHash": "0x221c67dd989765ba2fa16199630c0230e70f76d0b3a1db9c93f01bedd30d7616", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020000080000000000000000000000000000002000000010000000000000200000000000002000000000000000000000010000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000010000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x221c67dd989765ba2fa16199630c0230e70f76d0b3a1db9c93f01bedd30d7616", + "transactionIndex": "0x1", + "blockHash": "0x297b2600854ebea026755c33a340eab9a3589aaa884ef32e056e097ed8f07c81", + "blockNumber": "0x1812bc0", + "gasUsed": "0x794e6", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": "0x28443b1d87db521320a6517a4f1b6ead77f8c811", + "contractAddress": null + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x3e2cc57f83093Ce1Ee03482c1590E3B5f4225bd7", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519" + ], + "pending": [], + "returns": {}, + "timestamp": 1724329717, + "chain": 62320, + "commit": "485a8ea" +} \ No newline at end of file diff --git a/broadcast/PSO-00-Create-Proxies.sol/42220/run-latest.json b/broadcast/PSO-00-Create-Proxies.sol/42220/run-latest.json deleted file mode 100644 index 49fb918e..00000000 --- a/broadcast/PSO-00-Create-Proxies.sol/42220/run-latest.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x7d0088e4798fee338276bace188c9b44fbb290c6f6ca437e95c01d8d76b977a3", - "transactionType": "CREATE", - "contractName": "StableTokenPSOProxy", - "contractAddress": "0x7242a5FfbC765F322ee7cAd7957c291aC54c33F4", - "function": null, - "arguments": null, - "transaction": { - "type": "0x00", - "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", - "gas": "0xbd5cc", - "value": "0x0", - "data": "0x6080604052610016336001600160e01b0361001b16565b6100d9565b6001600160a01b03811661006a576040805162461bcd60e51b815260206004820152601160248201527006f776e65722063616e6e6f74206265203607c1b604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301812060001901828155906001600160a01b038316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a25050565b61096b806100e86000396000f3fe60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a72315820468f83f4393e43cae70d020c8715121ce7cd91204a65ef092b4025958ceac25364736f6c63430005110032", - "nonce": "0x205" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xb282f6f7bd3e1626d55ecb9a69a620c238b7d973b8e30b53c716d82f1ab2f138", - "transactionType": "CALL", - "contractName": "StableTokenPSOProxy", - "contractAddress": "0x7242a5FfbC765F322ee7cAd7957c291aC54c33F4", - "function": "_transferOwnership(address)", - "arguments": [ - "0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972" - ], - "transaction": { - "type": "0x00", - "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", - "to": "0x7242a5ffbc765f322ee7cad7957c291ac54c33f4", - "gas": "0x9789", - "value": "0x0", - "data": "0xd29d44ee000000000000000000000000d533ca259b330c7a88f74e000a3faea2d63b7972", - "nonce": "0x206" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0x7d0088e4798fee338276bace188c9b44fbb290c6f6ca437e95c01d8d76b977a3", - "transactionIndex": "0x1", - "blockHash": "0x439789c7a09d2e6e59b8d789543e002f03a72e00106fef59fb28f93101f520ea", - "blockNumber": "0x19f3f72", - "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "to": null, - "cumulativeGasUsed": "0x9b62e", - "gasUsed": "0x91a9d", - "contractAddress": "0x7242a5FfbC765F322ee7cAd7957c291aC54c33F4", - "logs": [ - { - "address": "0x7242a5FfbC765F322ee7cAd7957c291aC54c33F4", - "topics": [ - "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", - "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" - ], - "data": "0x", - "blockHash": "0x439789c7a09d2e6e59b8d789543e002f03a72e00106fef59fb28f93101f520ea", - "blockNumber": "0x19f3f72", - "transactionHash": "0x7d0088e4798fee338276bace188c9b44fbb290c6f6ca437e95c01d8d76b977a3", - "transactionIndex": "0x1", - "logIndex": "0x1", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000010000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004001000000000000000000000000000000000000000000000000000000001", - "type": "0x0", - "effectiveGasPrice": "0x2540be400" - }, - { - "transactionHash": "0xb282f6f7bd3e1626d55ecb9a69a620c238b7d973b8e30b53c716d82f1ab2f138", - "transactionIndex": "0x2", - "blockHash": "0x439789c7a09d2e6e59b8d789543e002f03a72e00106fef59fb28f93101f520ea", - "blockNumber": "0x19f3f72", - "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "to": "0x7242a5FfbC765F322ee7cAd7957c291aC54c33F4", - "cumulativeGasUsed": "0xa23e4", - "gasUsed": "0x6db6", - "contractAddress": null, - "logs": [ - { - "address": "0x7242a5FfbC765F322ee7cAd7957c291aC54c33F4", - "topics": [ - "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", - "0x000000000000000000000000d533ca259b330c7a88f74e000a3faea2d63b7972" - ], - "data": "0x", - "blockHash": "0x439789c7a09d2e6e59b8d789543e002f03a72e00106fef59fb28f93101f520ea", - "blockNumber": "0x19f3f72", - "transactionHash": "0xb282f6f7bd3e1626d55ecb9a69a620c238b7d973b8e30b53c716d82f1ab2f138", - "transactionIndex": "0x2", - "logIndex": "0x2", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000100000000000000000000000000000000000000000000000001000000000000010000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000001000000000000004000000000000000000000000000000000000000001", - "type": "0x0", - "effectiveGasPrice": "0x2540be400" - } - ], - "libraries": [ - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x6200F54D73491d56b8d7A975C9ee18EFb4D518Df", - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0xED477A99035d0c1e11369F1D7A4e587893cc002B" - ], - "pending": [], - "returns": {}, - "timestamp": 1723740517, - "chain": 42220, - "multi": false, - "commit": "eceb1ae" -} \ No newline at end of file diff --git a/broadcast/PSO-00-Create-Proxies.sol/44787/run-latest.json b/broadcast/PSO-00-Create-Proxies.sol/44787/run-latest.json deleted file mode 100644 index 662df4c6..00000000 --- a/broadcast/PSO-00-Create-Proxies.sol/44787/run-latest.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x42ffc21d40443a428cee21b65894a91e2761aaf5f772438c3ab191cfdfea803d", - "transactionType": "CREATE", - "contractName": "StableTokenPSOProxy", - "contractAddress": "0x8E00fA3a6e955B8B56C861a4f0Bd7C80e27f3760", - "function": null, - "arguments": null, - "transaction": { - "type": "0x00", - "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", - "gas": "0xbd5cc", - "value": "0x0", - "data": "0x6080604052610016336001600160e01b0361001b16565b6100d9565b6001600160a01b03811661006a576040805162461bcd60e51b815260206004820152601160248201527006f776e65722063616e6e6f74206265203607c1b604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301812060001901828155906001600160a01b038316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a25050565b61096b806100e86000396000f3fe60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a723158200ee523013bef93852e311f2a3cd6670a5b783c08dcf550df104f795c4f464fd364736f6c63430005110032", - "nonce": "0x52c" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x6b38b9582206078c75ff47dc1465bd3ac17d3fd35411c8ff709bdf35d65bb9e0", - "transactionType": "CALL", - "contractName": "StableTokenPSOProxy", - "contractAddress": "0x8E00fA3a6e955B8B56C861a4f0Bd7C80e27f3760", - "function": "_transferOwnership(address)", - "arguments": [ - "0xAA963FC97281d9632d96700aB62A4D1340F9a28a" - ], - "transaction": { - "type": "0x00", - "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", - "to": "0x8e00fa3a6e955b8b56c861a4f0bd7c80e27f3760", - "gas": "0xa085", - "value": "0x0", - "data": "0xd29d44ee000000000000000000000000aa963fc97281d9632d96700ab62a4d1340f9a28a", - "nonce": "0x52d" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0x42ffc21d40443a428cee21b65894a91e2761aaf5f772438c3ab191cfdfea803d", - "transactionIndex": "0x7", - "blockHash": "0xad3a459f61a2a3627c52bcde0ec58dd082b6ad019a9897e9ed80d149a6ee9254", - "blockNumber": "0x187a071", - "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "to": null, - "cumulativeGasUsed": "0xd822b", - "gasUsed": "0x91a9d", - "contractAddress": "0x8E00fA3a6e955B8B56C861a4f0Bd7C80e27f3760", - "logs": [ - { - "address": "0x8E00fA3a6e955B8B56C861a4f0Bd7C80e27f3760", - "topics": [ - "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", - "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" - ], - "data": "0x", - "blockHash": "0xad3a459f61a2a3627c52bcde0ec58dd082b6ad019a9897e9ed80d149a6ee9254", - "blockNumber": "0x187a071", - "transactionHash": "0x42ffc21d40443a428cee21b65894a91e2761aaf5f772438c3ab191cfdfea803d", - "transactionIndex": "0x7", - "logIndex": "0x1", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000410000000000000010000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000800000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "effectiveGasPrice": "0x2540be400" - }, - { - "transactionHash": "0x6b38b9582206078c75ff47dc1465bd3ac17d3fd35411c8ff709bdf35d65bb9e0", - "transactionIndex": "0x8", - "blockHash": "0xad3a459f61a2a3627c52bcde0ec58dd082b6ad019a9897e9ed80d149a6ee9254", - "blockNumber": "0x187a071", - "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "to": "0x8E00fA3a6e955B8B56C861a4f0Bd7C80e27f3760", - "cumulativeGasUsed": "0xdefed", - "gasUsed": "0x6dc2", - "contractAddress": null, - "logs": [ - { - "address": "0x8E00fA3a6e955B8B56C861a4f0Bd7C80e27f3760", - "topics": [ - "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", - "0x000000000000000000000000aa963fc97281d9632d96700ab62a4d1340f9a28a" - ], - "data": "0x", - "blockHash": "0xad3a459f61a2a3627c52bcde0ec58dd082b6ad019a9897e9ed80d149a6ee9254", - "blockNumber": "0x187a071", - "transactionHash": "0x6b38b9582206078c75ff47dc1465bd3ac17d3fd35411c8ff709bdf35d65bb9e0", - "transactionIndex": "0x8", - "logIndex": "0x2", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000400000000000000010000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000800000000000000000000000000000000000000000400000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "effectiveGasPrice": "0x2540be400" - } - ], - "libraries": [ - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" - ], - "pending": [], - "returns": {}, - "timestamp": 1723740392, - "chain": 44787, - "multi": false, - "commit": "140af71" -} \ No newline at end of file diff --git a/broadcast/PSO-00-Create-Proxies.sol/62320/run-latest.json b/broadcast/PSO-00-Create-Proxies.sol/62320/run-latest.json deleted file mode 100644 index 8062e562..00000000 --- a/broadcast/PSO-00-Create-Proxies.sol/62320/run-latest.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xf6af9a359e287cc04cceb9e614b7d302214fc32713592835f18ac9721f3f106a", - "transactionType": "CREATE", - "contractName": "StableTokenPSOProxy", - "contractAddress": "0x7888C0513F5c85FD8592eEFF179Dc02226c0e6ac", - "function": null, - "arguments": null, - "transaction": { - "type": "0x00", - "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", - "gas": "0xbd5cc", - "value": "0x0", - "data": "0x6080604052610016336001600160e01b0361001b16565b6100d9565b6001600160a01b03811661006a576040805162461bcd60e51b815260206004820152601160248201527006f776e65722063616e6e6f74206265203607c1b604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301812060001901828155906001600160a01b038316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a25050565b61096b806100e86000396000f3fe60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a723158209437cd1d6b435c9c63bc63c6ac5733bf246f80d2cbd2b9caee5e1b4b95e9edcd64736f6c63430005110032", - "nonce": "0x407" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x9b658f62c8c8fdeaa3d7d012fa6b71f8173c5f1790bd2ba4b02acc3c6a4a2124", - "transactionType": "CALL", - "contractName": "StableTokenPSOProxy", - "contractAddress": "0x7888C0513F5c85FD8592eEFF179Dc02226c0e6ac", - "function": "_transferOwnership(address)", - "arguments": [ - "0x28443b1d87db521320a6517A4F1B6Ead77F8C811" - ], - "transaction": { - "type": "0x00", - "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", - "to": "0x7888c0513f5c85fd8592eeff179dc02226c0e6ac", - "gas": "0xa085", - "value": "0x0", - "data": "0xd29d44ee00000000000000000000000028443b1d87db521320a6517a4f1b6ead77f8c811", - "nonce": "0x408" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0xf6af9a359e287cc04cceb9e614b7d302214fc32713592835f18ac9721f3f106a", - "transactionIndex": "0x0", - "blockHash": "0xbfd7fbf448792b932cf22e817ddf4070cfa70187b10c8bf6a194334a4bfbbff8", - "blockNumber": "0x17f6244", - "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "to": null, - "cumulativeGasUsed": "0x91a9d", - "gasUsed": "0x91a9d", - "contractAddress": "0x7888C0513F5c85FD8592eEFF179Dc02226c0e6ac", - "logs": [ - { - "address": "0x7888C0513F5c85FD8592eEFF179Dc02226c0e6ac", - "topics": [ - "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", - "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" - ], - "data": "0x", - "blockHash": "0xbfd7fbf448792b932cf22e817ddf4070cfa70187b10c8bf6a194334a4bfbbff8", - "blockNumber": "0x17f6244", - "transactionHash": "0xf6af9a359e287cc04cceb9e614b7d302214fc32713592835f18ac9721f3f106a", - "transactionIndex": "0x0", - "logIndex": "0x0", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x000000000000000000000000000000000000000000000000a0000000000000000000000000000800000000000000410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000002000000000000000000000", - "type": "0x0", - "effectiveGasPrice": "0xbebc200" - }, - { - "transactionHash": "0x9b658f62c8c8fdeaa3d7d012fa6b71f8173c5f1790bd2ba4b02acc3c6a4a2124", - "transactionIndex": "0x1", - "blockHash": "0xbfd7fbf448792b932cf22e817ddf4070cfa70187b10c8bf6a194334a4bfbbff8", - "blockNumber": "0x17f6244", - "from": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "to": "0x7888C0513F5c85FD8592eEFF179Dc02226c0e6ac", - "cumulativeGasUsed": "0x9885f", - "gasUsed": "0x6dc2", - "contractAddress": null, - "logs": [ - { - "address": "0x7888C0513F5c85FD8592eEFF179Dc02226c0e6ac", - "topics": [ - "0x50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe2", - "0x00000000000000000000000028443b1d87db521320a6517a4f1b6ead77f8c811" - ], - "data": "0x", - "blockHash": "0xbfd7fbf448792b932cf22e817ddf4070cfa70187b10c8bf6a194334a4bfbbff8", - "blockNumber": "0x17f6244", - "transactionHash": "0x9b658f62c8c8fdeaa3d7d012fa6b71f8173c5f1790bd2ba4b02acc3c6a4a2124", - "transactionIndex": "0x1", - "logIndex": "0x1", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000080001000000000000000000000000800000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000020000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000002000000000000000000000", - "type": "0x0", - "effectiveGasPrice": "0xbebc200" - } - ], - "libraries": [ - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x3e2cc57f83093Ce1Ee03482c1590E3B5f4225bd7", - "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519" - ], - "pending": [], - "returns": {}, - "timestamp": 1723740149, - "chain": 62320, - "multi": false, - "commit": "f51f49b" -} \ No newline at end of file diff --git a/broadcast/dev-DeployMockChainlinkAggregator.sol/44787/run-PHPUSD.json b/broadcast/dev-DeployMockChainlinkAggregator.sol/44787/run-PHPUSD.json new file mode 100644 index 00000000..db8eaac4 --- /dev/null +++ b/broadcast/dev-DeployMockChainlinkAggregator.sol/44787/run-PHPUSD.json @@ -0,0 +1,67 @@ +{ + "transactions": [ + { + "hash": "0xcec771408c7835d46ac5a42e2e027f62120d6db558aafbbf96c42e1655ad04cb", + "transactionType": "CREATE", + "contractName": "MockChainlinkAggregator", + "contractAddress": "0xcf79c1445c69cd17b1bdecf790416085a4ff808a", + "function": null, + "arguments": [ + "\"PHPUSD\"" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x7e74e", + "value": "0x0", + "input": "0x60806040523461023c576107a98038038061001981610241565b9283398101906020808284031261023c5781516001600160401b039283821161023c570192601f9080828601121561023c57845184811161021257601f199561006782850188168601610241565b9282845285838301011161023c57849060005b8381106102285750506000918301018190528054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3805193841161021257600254926001938481811c91168015610208575b828210146101f2578381116101ab575b508092851160011461014557508394509083929160009461013a575b50501b916000199060031b1c1916176002555b60405161054290816102678239f35b015192503880610118565b929484908116600260005284600020946000905b888383106101915750505010610178575b505050811b0160025561012b565b015160001960f88460031b161c1916905538808061016a565b858701518855909601959485019487935090810190610159565b6002600052816000208480880160051c8201928489106101e9575b0160051c019085905b8281106101dd5750506100fc565b600081550185906101cf565b925081926101c6565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ec565b634e487b7160e01b600052604160045260246000fd5b81810183015185820184015286920161007a565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102125760405256fe608060408181526004918236101561001657600080fd5b600092833560e01c918263313ce5671461049b57508163715018a61461041a5781637284e4161461024b5781638da5cb5b1461021857816399213cd8146101f6578163e1e244d8146101d7578163f2fde38b146100b4575063feaf968c1461007d57600080fd5b346100b057816003193601126100b0578160a0926001549280519382855260208501528301524260608301526080820152f35b5080fd5b919050346101d35760206003193601126101d35781359173ffffffffffffffffffffffffffffffffffffffff918284168094036101cf576100f36104b6565b831561014c5750508254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8480fd5b8280fd5b5050346100b057816003193601126100b0576020906001549051908152f35b8390346100b05760206003193601126100b0576102116104b6565b3560015580f35b5050346100b057816003193601126100b05773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b919050346101d357826003193601126101d35780518360025460019581871c878316978815610410575b6020938483108a146103e457848798999a84895291826000146103a9575050600114610355575b5050601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095869203011683019583871067ffffffffffffffff881117610329575085929391838652818452845191828186015281955b8387106103115750508394508582601f949501015201168101030190f35b868101820151898801890152958101958895506102f3565b8260416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b600285528492507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106103935750505083018101388061029c565b805488850186015287965092840192810161037e565b915093507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682860152151560051b840101388061029c565b60248660228b7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90607f1690610275565b83346104985780600319360112610498576104336104b6565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b8490346100b057816003193601126100b05780600860209252f35b73ffffffffffffffffffffffffffffffffffffffff6000541633036104d757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfea164736f6c6343000812000a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000065048505553440000000000000000000000000000000000000000000000000000", + "nonce": "0x57f", + "chainId": "0xaef3" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x808c7", + "logs": [ + { + "address": "0xcf79c1445c69cd17b1bdecf790416085a4ff808a", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x23677f425a5e9cfe1f3572be086e84992b041216276778e64f0b900139576b82", + "blockNumber": "0x18ab281", + "transactionHash": "0xcec771408c7835d46ac5a42e2e027f62120d6db558aafbbf96c42e1655ad04cb", + "transactionIndex": "0x1", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020800000000000000000000000000010000000000000010000000000000000000000000000000000000000000000000000000000000080000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000004000000000000000000000000000000000000000000000000000040000000", + "type": "0x0", + "transactionHash": "0xcec771408c7835d46ac5a42e2e027f62120d6db558aafbbf96c42e1655ad04cb", + "transactionIndex": "0x1", + "blockHash": "0x23677f425a5e9cfe1f3572be086e84992b041216276778e64f0b900139576b82", + "blockNumber": "0x18ab281", + "gasUsed": "0x61464", + "effectiveGasPrice": "0xba43b7400", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0xcf79c1445c69cd17b1bdecf790416085a4ff808a" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x2F0F7686fFFEfc3C266403Ad600035581deaedff", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x29B1B5e05217c751038861aF2C77494EAB10A257" + ], + "pending": [], + "returns": {}, + "timestamp": 1724746830, + "chain": 44787, + "commit": "33d3452" +} \ No newline at end of file diff --git a/broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-CELOUSD.json b/broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-CELOUSD.json new file mode 100644 index 00000000..fb84f42d --- /dev/null +++ b/broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-CELOUSD.json @@ -0,0 +1,67 @@ +{ + "transactions": [ + { + "hash": "0x7ef37ab5f08ab28e6cf6730657a157f5254acbaa0eb5101138e1caf26c904410", + "transactionType": "CREATE", + "contractName": "MockChainlinkAggregator", + "contractAddress": "0xbc2684abeeefc606a92fbf94ce4357e98d267286", + "function": null, + "arguments": [ + "\"CELOUSD\"" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x7e75e", + "value": "0x0", + "input": "0x60806040523461023c576107a98038038061001981610241565b9283398101906020808284031261023c5781516001600160401b039283821161023c570192601f9080828601121561023c57845184811161021257601f199561006782850188168601610241565b9282845285838301011161023c57849060005b8381106102285750506000918301018190528054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3805193841161021257600254926001938481811c91168015610208575b828210146101f2578381116101ab575b508092851160011461014557508394509083929160009461013a575b50501b916000199060031b1c1916176002555b60405161054290816102678239f35b015192503880610118565b929484908116600260005284600020946000905b888383106101915750505010610178575b505050811b0160025561012b565b015160001960f88460031b161c1916905538808061016a565b858701518855909601959485019487935090810190610159565b6002600052816000208480880160051c8201928489106101e9575b0160051c019085905b8281106101dd5750506100fc565b600081550185906101cf565b925081926101c6565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ec565b634e487b7160e01b600052604160045260246000fd5b81810183015185820184015286920161007a565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102125760405256fe608060408181526004918236101561001657600080fd5b600092833560e01c918263313ce5671461049b57508163715018a61461041a5781637284e4161461024b5781638da5cb5b1461021857816399213cd8146101f6578163e1e244d8146101d7578163f2fde38b146100b4575063feaf968c1461007d57600080fd5b346100b057816003193601126100b0578160a0926001549280519382855260208501528301524260608301526080820152f35b5080fd5b919050346101d35760206003193601126101d35781359173ffffffffffffffffffffffffffffffffffffffff918284168094036101cf576100f36104b6565b831561014c5750508254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8480fd5b8280fd5b5050346100b057816003193601126100b0576020906001549051908152f35b8390346100b05760206003193601126100b0576102116104b6565b3560015580f35b5050346100b057816003193601126100b05773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b919050346101d357826003193601126101d35780518360025460019581871c878316978815610410575b6020938483108a146103e457848798999a84895291826000146103a9575050600114610355575b5050601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095869203011683019583871067ffffffffffffffff881117610329575085929391838652818452845191828186015281955b8387106103115750508394508582601f949501015201168101030190f35b868101820151898801890152958101958895506102f3565b8260416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b600285528492507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106103935750505083018101388061029c565b805488850186015287965092840192810161037e565b915093507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682860152151560051b840101388061029c565b60248660228b7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90607f1690610275565b83346104985780600319360112610498576104336104b6565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b8490346100b057816003193601126100b05780600860209252f35b73ffffffffffffffffffffffffffffffffffffffff6000541633036104d757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfea164736f6c6343000812000a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000743454c4f55534400000000000000000000000000000000000000000000000000", + "nonce": "0x421", + "chainId": "0xf370" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x61470", + "logs": [ + { + "address": "0xbc2684abeeefc606a92fbf94ce4357e98d267286", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x0befc7612823e420aa4eb3598588ec77b0b0fb57cf9bfd6974691551057317fc", + "blockNumber": "0x1826c9e", + "transactionHash": "0x7ef37ab5f08ab28e6cf6730657a157f5254acbaa0eb5101138e1caf26c904410", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000020800000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000080000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x7ef37ab5f08ab28e6cf6730657a157f5254acbaa0eb5101138e1caf26c904410", + "transactionIndex": "0x0", + "blockHash": "0x0befc7612823e420aa4eb3598588ec77b0b0fb57cf9bfd6974691551057317fc", + "blockNumber": "0x1826c9e", + "gasUsed": "0x61470", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0xbc2684abeeefc606a92fbf94ce4357e98d267286" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x3e2cc57f83093Ce1Ee03482c1590E3B5f4225bd7", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519" + ], + "pending": [], + "returns": {}, + "timestamp": 1724747594, + "chain": 62320, + "commit": "33d3452" +} \ No newline at end of file diff --git a/broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-PHPUSD.json b/broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-PHPUSD.json new file mode 100644 index 00000000..a4c09be5 --- /dev/null +++ b/broadcast/dev-DeployMockChainlinkAggregator.sol/62320/run-PHPUSD.json @@ -0,0 +1,67 @@ +{ + "transactions": [ + { + "hash": "0x024e11bb2224765cae3ee94d484d15bf842014106d8bc5d269ebdd3507df7404", + "transactionType": "CREATE", + "contractName": "MockChainlinkAggregator", + "contractAddress": "0xf4143259c91b4acdc03bff740b1c4cc663f60cb6", + "function": null, + "arguments": [ + "\"PHPUSD\"" + ], + "transaction": { + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "gas": "0x7e74e", + "value": "0x0", + "input": "0x60806040523461023c576107a98038038061001981610241565b9283398101906020808284031261023c5781516001600160401b039283821161023c570192601f9080828601121561023c57845184811161021257601f199561006782850188168601610241565b9282845285838301011161023c57849060005b8381106102285750506000918301018190528054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3805193841161021257600254926001938481811c91168015610208575b828210146101f2578381116101ab575b508092851160011461014557508394509083929160009461013a575b50501b916000199060031b1c1916176002555b60405161054290816102678239f35b015192503880610118565b929484908116600260005284600020946000905b888383106101915750505010610178575b505050811b0160025561012b565b015160001960f88460031b161c1916905538808061016a565b858701518855909601959485019487935090810190610159565b6002600052816000208480880160051c8201928489106101e9575b0160051c019085905b8281106101dd5750506100fc565b600081550185906101cf565b925081926101c6565b634e487b7160e01b600052602260045260246000fd5b90607f16906100ec565b634e487b7160e01b600052604160045260246000fd5b81810183015185820184015286920161007a565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102125760405256fe608060408181526004918236101561001657600080fd5b600092833560e01c918263313ce5671461049b57508163715018a61461041a5781637284e4161461024b5781638da5cb5b1461021857816399213cd8146101f6578163e1e244d8146101d7578163f2fde38b146100b4575063feaf968c1461007d57600080fd5b346100b057816003193601126100b0578160a0926001549280519382855260208501528301524260608301526080820152f35b5080fd5b919050346101d35760206003193601126101d35781359173ffffffffffffffffffffffffffffffffffffffff918284168094036101cf576100f36104b6565b831561014c5750508254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8480fd5b8280fd5b5050346100b057816003193601126100b0576020906001549051908152f35b8390346100b05760206003193601126100b0576102116104b6565b3560015580f35b5050346100b057816003193601126100b05773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b919050346101d357826003193601126101d35780518360025460019581871c878316978815610410575b6020938483108a146103e457848798999a84895291826000146103a9575050600114610355575b5050601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095869203011683019583871067ffffffffffffffff881117610329575085929391838652818452845191828186015281955b8387106103115750508394508582601f949501015201168101030190f35b868101820151898801890152958101958895506102f3565b8260416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b600285528492507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106103935750505083018101388061029c565b805488850186015287965092840192810161037e565b915093507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682860152151560051b840101388061029c565b60248660228b7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b90607f1690610275565b83346104985780600319360112610498576104336104b6565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b8490346100b057816003193601126100b05780600860209252f35b73ffffffffffffffffffffffffffffffffffffffff6000541633036104d757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfea164736f6c6343000812000a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000065048505553440000000000000000000000000000000000000000000000000000", + "nonce": "0x420", + "chainId": "0xf370" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x61464", + "logs": [ + { + "address": "0xf4143259c91b4acdc03bff740b1c4cc663f60cb6", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000056fd3f2bee130e9867942d0f463a16fbe49b8d81" + ], + "data": "0x", + "blockHash": "0x2f39c9eb8d8f8a5b26a194443ef39985d605445549876f20b76ae6936122d4c9", + "blockNumber": "0x1826c56", + "transactionHash": "0x024e11bb2224765cae3ee94d484d15bf842014106d8bc5d269ebdd3507df7404", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000028800000010000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x024e11bb2224765cae3ee94d484d15bf842014106d8bc5d269ebdd3507df7404", + "transactionIndex": "0x0", + "blockHash": "0x2f39c9eb8d8f8a5b26a194443ef39985d605445549876f20b76ae6936122d4c9", + "blockNumber": "0x1826c56", + "gasUsed": "0x61464", + "effectiveGasPrice": "0xbebc200", + "from": "0x56fd3f2bee130e9867942d0f463a16fbe49b8d81", + "to": null, + "contractAddress": "0xf4143259c91b4acdc03bff740b1c4cc663f60cb6" + } + ], + "libraries": [ + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressLinkedList.sol:AddressLinkedList:0x3e2cc57f83093Ce1Ee03482c1590E3B5f4225bd7", + "lib/mento-core-2.0.0/contracts/common/linkedlists/AddressSortedLinkedListWithMedian.sol:AddressSortedLinkedListWithMedian:0x99EDce8143FF8AeFA1fBB6C2103B349Add2B9519" + ], + "pending": [], + "returns": {}, + "timestamp": 1724747229, + "chain": 62320, + "commit": "33d3452" +} \ No newline at end of file diff --git a/contracts/MockChainlinkAggregator.sol b/contracts/MockChainlinkAggregator.sol new file mode 100644 index 00000000..e1f943a8 --- /dev/null +++ b/contracts/MockChainlinkAggregator.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity 0.8.18; + +import { Ownable } from "openzeppelin-contracts-next/contracts/access/Ownable.sol"; + +contract MockChainlinkAggregator is Ownable { + int256 public savedAnswer; + string public description; + + constructor(string memory _description) { + description = _description; + } + + function decimals() external pure returns (uint8) { + return 8; + } + + function setAnswer(int256 _answer) external onlyOwner { + savedAnswer = _answer; + } + + // Always look like the answer is revent to avoid timestamp spread issues + function latestRoundData() + external + view + returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) + { + return (uint80(0), savedAnswer, uint256(0), block.timestamp, uint80(0)); + } +} diff --git a/foundry.toml b/foundry.toml index e5efa158..3e26bcef 100644 --- a/foundry.toml +++ b/foundry.toml @@ -64,3 +64,4 @@ match_contract = "Integration" celo = "${CELO_RPC_URL}" baklava = "${BAKLAVA_RPC_URL}" alfajores = "${ALFAJORES_RPC_URL}" + diff --git a/lib/forge-std-next b/lib/forge-std-next index 36c303b7..1714bee7 160000 --- a/lib/forge-std-next +++ b/lib/forge-std-next @@ -1 +1 @@ -Subproject commit 36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3 +Subproject commit 1714bee72e286e73f76e320d110e0eaf5c4e649d diff --git a/lib/mento-core-2.4.0 b/lib/mento-core-2.4.0 deleted file mode 160000 index 31e5f017..00000000 --- a/lib/mento-core-2.4.0 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 31e5f017987f76fbf3451afd264fa62ae153e064 diff --git a/lib/mento-core-2.5.0 b/lib/mento-core-2.5.0 new file mode 160000 index 00000000..56f9f94f --- /dev/null +++ b/lib/mento-core-2.5.0 @@ -0,0 +1 @@ +Subproject commit 56f9f94ff26e14595486688e385e8471163d41b6 diff --git a/package.json b/package.json index 54596948..4859ff82 100644 --- a/package.json +++ b/package.json @@ -45,11 +45,11 @@ "verify:bytecodes": "yarn ts-node ./bin/verify-bytecodes.ts", "verify:celoscan": "yarn ts-node ./bin/verify-celoscan.ts", "check:verification:celoscan": "./bin/check-celoscan-verification.sh", - "deploy": "./bin/deploy.sh", "build": "./bin/build.sh", "script:dev": "./bin/dev-script.sh", "cgp": "./bin/cgp.sh", "cgp:pass": "./bin/cgp-pass.sh", + "cgp:deploy": "./bin/cgp-deploy.sh", "cgp:diff": "./bin/cgp-diff.sh", "cgp:check": "./bin/cgp-check.sh", "cgp:execute": "./bin/cgp-execute.sh", diff --git a/remappings.txt b/remappings.txt index 6e0bcd92..b20c6913 100644 --- a/remappings.txt +++ b/remappings.txt @@ -8,4 +8,4 @@ mento-core-2.0.0/=lib/mento-core-2.0.0/contracts/ mento-core-2.1.0/=lib/mento-core-2.1.0/contracts/ mento-core-2.2.0/=lib/mento-core-2.2.0/contracts/ mento-core-2.3.1/=lib/mento-core-2.3.1/contracts/ -mento-core-2.4.0/=lib/mento-core-2.4.0/contracts/ +mento-core-2.5.0/=lib/mento-core-2.5.0/contracts/ diff --git a/script/dev/dev-DeployMockChainlinkAggregator.sol b/script/dev/dev-DeployMockChainlinkAggregator.sol new file mode 100644 index 00000000..714f9c80 --- /dev/null +++ b/script/dev/dev-DeployMockChainlinkAggregator.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity 0.8.18; + +import { console } from "forge-std-next/console.sol"; +import { Script } from "script/utils/mento/Script.sol"; +import { Chain as ChainLib } from "script/utils/mento/Chain.sol"; +import { Contracts } from "script/utils/mento/Contracts.sol"; + +import { MockChainlinkAggregator } from "contracts/MockChainlinkAggregator.sol"; + +/** + * Usage: yarn script:dev -n alfajores -s DeployMockChainlinkAggregator -r "run(string)" PHPUSD + * Used to deploy mock Chainlink Aggregators to Alfajores and Baklava to be used + * in testnet relayers to mimic mainnet more closely. + * ========== IMPORTANT ====================================== + * @dev After deploying the script save the broadcast file as {rateFeed}.json, + * update the reference in `dependencies.json` to the ne waddress, + * and update the dev-UpdateMockChainlinkAggregators script if it's a new aggregator + * =========================================================== + */ +contract DeployMockChainlinkAggregator is Script { + function run(string memory rateFeed) public { + vm.startBroadcast(ChainLib.deployerPrivateKey()); + { + new MockChainlinkAggregator(rateFeed); + } + vm.stopBroadcast(); + } +} diff --git a/script/dev/dev-RelayerReport.sol b/script/dev/dev-RelayerReport.sol new file mode 100644 index 00000000..ba90b758 --- /dev/null +++ b/script/dev/dev-RelayerReport.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.18; + +import { console } from "forge-std-next/console.sol"; +import { Script } from "script/utils/mento/Script.sol"; +import { Chain as ChainLib } from "script/utils/mento/Chain.sol"; +import { Contracts } from "script/utils/mento/Contracts.sol"; + +import { ChainlinkRelayerFactory } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactory.sol"; +import { ChainlinkRelayerFactoryProxy } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactoryProxy.sol"; +import { ChainlinkRelayerFactoryProxyAdmin } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactoryProxyAdmin.sol"; +import { IChainlinkRelayer } from "mento-core-2.5.0/interfaces/IChainlinkRelayer.sol"; + +import { toRateFeedId } from "script/utils/mento/Oracles.sol"; + +/* + * How to run: + * yarn script:dev -n alfajores -s RelayerReport + */ +contract RelayerReport is Script { + using Contracts for Contracts.Cache; + ChainlinkRelayerFactory private relayerFactory; + + constructor() Script() { + contracts.load("MU07-Deploy-ChainlinkRelayerFactory", "latest"); + relayerFactory = ChainlinkRelayerFactory(contracts.deployed("ChainlinkRelayerFactoryProxy")); + } + + function run() public { + address[] memory relayers = relayerFactory.getRelayers(); + + for (uint i = 0; i < relayers.length; i++) { + IChainlinkRelayer relayer = IChainlinkRelayer(relayers[i]); + string memory description = relayer.rateFeedDescription(); + vm.startBroadcast(ChainLib.deployerPrivateKey()); + { + try relayer.relay() { + console.log("Relayed %s successfully.", description); + } catch (bytes memory reason) { + console.log("Could not relay %s", description); + console.logBytes(reason); + } + } + vm.stopBroadcast(); + } + } +} diff --git a/script/dev/dev-RelayerStatus.sol b/script/dev/dev-RelayerStatus.sol new file mode 100644 index 00000000..fec4fc95 --- /dev/null +++ b/script/dev/dev-RelayerStatus.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.18; + +import { console } from "forge-std-next/console.sol"; +import { Script } from "script/utils/mento/Script.sol"; +import { Chain as ChainLib } from "script/utils/mento/Chain.sol"; +import { Contracts } from "script/utils/mento/Contracts.sol"; + +import { ChainlinkRelayerFactory } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactory.sol"; +import { IChainlinkRelayer } from "mento-core-2.5.0/interfaces/IChainlinkRelayer.sol"; + +import { toRateFeedId } from "script/utils/mento/Oracles.sol"; + +interface ISortedOracles { + function numRates(address) external view returns (uint256); + + function medianRate(address) external view returns (uint256, uint256); +} + +/* + * How to run: + * yarn script:dev -n alfajores -s RelayerStatus + */ +contract RelayerStatus is Script { + using Contracts for Contracts.Cache; + ISortedOracles private sortedOracles; + ChainlinkRelayerFactory private relayerFactory; + + constructor() Script() { + contracts.load("MU07-Deploy-ChainlinkRelayerFactory", "latest"); + relayerFactory = ChainlinkRelayerFactory(contracts.deployed("ChainlinkRelayerFactoryProxy")); + sortedOracles = ISortedOracles(contracts.celoRegistry("SortedOracles")); + } + + function run() public { + address[] memory relayers = relayerFactory.getRelayers(); + + for (uint i = 0; i < relayers.length; i++) { + IChainlinkRelayer relayer = IChainlinkRelayer(relayers[i]); + address rateFeedId = relayer.rateFeedId(); + string memory description = relayer.rateFeedDescription(); + (uint256 num, ) = sortedOracles.medianRate(rateFeedId); + console.log("====== %s =======", description); + console.log("RateFeedID: %s", rateFeedId); + console.log("Num rates: %d", sortedOracles.numRates(rateFeedId)); + console.log("Median rate: %d", num); + } + } +} diff --git a/script/dev/dev-UpdateMockChainlinkAggregators.sol b/script/dev/dev-UpdateMockChainlinkAggregators.sol new file mode 100644 index 00000000..5222548b --- /dev/null +++ b/script/dev/dev-UpdateMockChainlinkAggregators.sol @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable var-name-mixedcase, const-name-snakecase +pragma solidity ^0.8.18; + +import { console } from "forge-std-next/console.sol"; +import { Script } from "script/utils/mento/Script.sol"; +import { Chain as ChainLib } from "script/utils/mento/Chain.sol"; +import { Contracts } from "script/utils/mento/Contracts.sol"; + +interface IAggregatorV3 { + function latestRoundData() + external + view + returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); + + function description() external view returns (string memory); +} + +interface IMockAggregator { + function setAnswer(int256 answer) external; + + function description() external view returns (string memory); +} + +/** + * Usage: yarn script:dev -n alfajores -s UpdateMockChainlinkAggregators + * Chainlink doesn't report all rates on testnets so in order to have as close + * of a setup as possible between environments we deploy MockAggregatorV3 + * instances for the data feeds that are missing on Alfajores. + * This script pulls data from the mainnet aggregators and updates the + * mocks on Alfajores, and can be run periodically during testing. + */ +contract UpdateMockChainlinkAggregators is Script { + using Contracts for Contracts.Cache; + address private constant PHPUSDMainnetAggregator = 0x4ce8e628Bb82Ea5271908816a6C580A71233a66c; + address private constant CELOUSDMainnetAggregator = 0x0568fD19986748cEfF3301e55c0eb1E729E0Ab7e; + + mapping(address => address) private mockForAggregator; + mapping(address => int256) private aggregatorAnswers; + mapping(address => string) private aggregatorDescription; + address[] private aggregatorsToForward; + + constructor() Script() { + if (ChainLib.isAlfajores()) { + setUp_alfajores(); + } else if (ChainLib.isBaklava()) { + setUp_baklava(); + } else { + console.log("This script is only meant to be run on testnets"); + } + } + + function setUp_alfajores() internal { + /// @dev Load additional deployed aggregators here to forward rates + contracts.loadSilent("dev-DeployMockChainlinkAggregator", "PHPUSD"); + address PHPUSDTestnetMock = contracts.deployed("MockChainlinkAggregator"); + + mockForAggregator[PHPUSDMainnetAggregator] = PHPUSDTestnetMock; + + aggregatorsToForward.push(PHPUSDMainnetAggregator); + } + + function setUp_baklava() internal { + /// @dev Load additional deployed aggregators here to forward rates + contracts.loadSilent("dev-DeployMockChainlinkAggregator", "PHPUSD"); + address PHPUSDMock = contracts.deployed("MockChainlinkAggregator"); + contracts.loadSilent("dev-DeployMockChainlinkAggregator", "CELOUSD"); + address CELOUSDMock = contracts.deployed("MockChainlinkAggregator"); + + mockForAggregator[PHPUSDMainnetAggregator] = PHPUSDMock; + mockForAggregator[CELOUSDMainnetAggregator] = CELOUSDMock; + + aggregatorsToForward.push(PHPUSDMainnetAggregator); + aggregatorsToForward.push(CELOUSDMainnetAggregator); + } + + function run() public { + uint256 celoFork = vm.createFork("celo"); + uint256 testnetFork = vm.createFork(ChainLib.rpcToken()); + + vm.selectFork(celoFork); + for (uint i = 0; i < aggregatorsToForward.length; i++) { + address agg = aggregatorsToForward[i]; + (, int256 answer, , , ) = IAggregatorV3(agg).latestRoundData(); + aggregatorAnswers[agg] = answer; + aggregatorDescription[agg] = IAggregatorV3(agg).description(); + } + + vm.selectFork(testnetFork); + + vm.startBroadcast(ChainLib.deployerPrivateKey()); + { + for (uint i = 0; i < aggregatorsToForward.length; i++) { + address agg = aggregatorsToForward[i]; + address mock = mockForAggregator[agg]; + int256 answer = aggregatorAnswers[agg]; + IMockAggregator(mock).setAnswer(answer); + console.log("Update %s mock aggregator with value: %d", IMockAggregator(mock).description(), uint256(answer)); + console.log(" From mainnet aggregator: %s (%s)", aggregatorDescription[agg], address(agg)); + console.log(" Testnet mock aggregator: %s", mock); + } + } + vm.stopBroadcast(); + } +} diff --git a/script/upgrades/MU07/MU07.md b/script/upgrades/MU07/MU07.md new file mode 100644 index 00000000..67a4d0cc --- /dev/null +++ b/script/upgrades/MU07/MU07.md @@ -0,0 +1,14 @@ +### MU07 + +Prepare Chainlink Oracle Setup for PSO launch. + +Deployment scripts: + +- Deploy ChainlinkRelayerFactory(Proxy) and ProxyAdmin +- Create relayers for `relayed:CELOPHP` and `relayed:PHPUSD` + +Proposal Summary: + +- Whitelist relayer for `relayed:CELOPHP` +- Whitelist relayer for `relayed:PHPUSD` +- Set equivalent token for `address(PSO)` as `relayed:CELO/PHP` diff --git a/script/upgrades/MU07/MU07.sol b/script/upgrades/MU07/MU07.sol new file mode 100644 index 00000000..7d1231ae --- /dev/null +++ b/script/upgrades/MU07/MU07.sol @@ -0,0 +1,182 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable func-name-mixedcase, contract-name-camelcase, function-max-lines, var-name-mixedcase +pragma solidity ^0.5.13; +pragma experimental ABIEncoderV2; + +import { GovernanceScript } from "script/utils/Script.sol"; +import { console } from "forge-std/console.sol"; +import { Contracts } from "script/utils/Contracts.sol"; +import { Chain } from "script/utils/Chain.sol"; +import { Arrays } from "script/utils/Arrays.sol"; + +import { IChainlinkRelayerFactory } from "mento-core-2.5.0/interfaces/IChainlinkRelayerFactory.sol"; +import { IChainlinkRelayer } from "mento-core-2.5.0/interfaces/IChainlinkRelayer.sol"; + +import { IMentoUpgrade, ICeloGovernance } from "script/interfaces/IMentoUpgrade.sol"; + +interface ISortedOracles { + function addOracle(address, address) external; + + function removeOracle(address, address, uint256) external; + + function setEquivalentToken(address, address) external; + + function getEquivalentToken(address) external returns (address); + + function medianRate(address) external returns (uint256, uint256); + + function getOracles(address) external returns (address[] memory); + + function setTokenReportExpiry(address, uint256) external; + + function getTokenReportExpirySeconds(address) external returns (uint256); + + function tokenReportExpirySeconds(address) external returns (uint256); +} + +/** + forge script {file} --rpc-url $BAKLAVA_RPC_URL + --broadcast --legacy + * @dev depends on: ../deploy/*.sol + */ +contract MU07 is IMentoUpgrade, GovernanceScript { + using Contracts for Contracts.Cache; + + bool public hasChecks = true; + ICeloGovernance.Transaction[] private transactions; + + // Mento contracts + IChainlinkRelayerFactory private relayerFactory; + ISortedOracles private sortedOracles; + address private PUSO; + + mapping(address => IChainlinkRelayer) private relayersByRateFeedId; + + function prepare() public { + loadDeployedContracts(); + setAddresses(); + } + + /** + * @dev Loads the deployed contracts from previous deployments + */ + function loadDeployedContracts() public { + contracts.loadSilent("MU07-Deploy-ChainlinkRelayerFactory", "latest"); + contracts.loadSilent("PUSO-00-Create-Proxies", "latest"); + } + + /** + * @dev Sets the addresses of the various contracts needed for the proposal. + */ + function setAddresses() public { + relayerFactory = IChainlinkRelayerFactory(contracts.deployed("ChainlinkRelayerFactoryProxy")); + sortedOracles = ISortedOracles(contracts.celoRegistry("SortedOracles")); + PUSO = contracts.deployed("StableTokenPHPProxy"); + + address[] memory relayers = relayerFactory.getRelayers(); + for (uint i = 0; i < relayers.length; i++) { + IChainlinkRelayer relayer = IChainlinkRelayer(relayers[i]); + relayersByRateFeedId[relayer.rateFeedId()] = relayer; + } + } + + function run() public { + prepare(); + + address governance = contracts.celoRegistry("Governance"); + ICeloGovernance.Transaction[] memory _transactions = buildProposal(); + + vm.startBroadcast(Chain.deployerPrivateKey()); + { + createProposal(_transactions, "https://github.com/celo-org/governance/blob/main/CGPs/cgp-0146.md", governance); + } + vm.stopBroadcast(); + } + + function buildProposal() public returns (ICeloGovernance.Transaction[] memory) { + require(transactions.length == 0, "buildProposal() should only be called once"); + + proposal_whitelistRelayerFor("relayed:CELOPHP", 5 minutes); + proposal_whitelistRelayerFor("relayed:PHPUSD", 5 minutes); + proposal_setEquivalentTokenForPUSO(); + + return transactions; + } + + /** + * @notice For a give rateFeed string, see if there's a register deployed relayer, and ensure + * it is the only whitelisted oracle for that rate feed. + * If there are multiple oracles whitelisted, remove them. + * If the existing relayer isn't whitelisted, add it. + */ + function proposal_whitelistRelayerFor(string memory rateFeed, uint256 tokenReportExpiry) private { + address rateFeedId = toRateFeedId(rateFeed); + IChainlinkRelayer relayer = relayersByRateFeedId[rateFeedId]; + require( + address(relayer) != address(0), + string(abi.encodePacked("Relayer for rateFeed=", rateFeed, " not deployed")) + ); + + address[] memory oracles = sortedOracles.getOracles(rateFeedId); + bool isOracle = false; + + for (uint i = 0; i < oracles.length; i++) { + isOracle = isOracle || (oracles[i] == address(relayer)); + if (oracles[i] == address(relayer)) continue; + + // Remove other whitelisted relayers + transactions.push( + ICeloGovernance.Transaction({ + value: 0, + destination: address(sortedOracles), + data: abi.encodeWithSelector(ISortedOracles(0).removeOracle.selector, rateFeedId, oracles[i], i) + }) + ); + } + + if (!isOracle) { + transactions.push( + ICeloGovernance.Transaction({ + value: 0, + destination: address(sortedOracles), + data: abi.encodeWithSelector(ISortedOracles(0).addOracle.selector, rateFeedId, address(relayer)) + }) + ); + uint256 currentExpiry = sortedOracles.tokenReportExpirySeconds(rateFeedId); + if (currentExpiry != tokenReportExpiry) { + transactions.push( + ICeloGovernance.Transaction({ + value: 0, + destination: address(sortedOracles), + data: abi.encodeWithSelector(ISortedOracles(0).setTokenReportExpiry.selector, rateFeedId, tokenReportExpiry) + }) + ); + } + } + } + + /** + * @notice Sorted Oracles has this new feature of equivalent tokens. When a token has an + * equivalent token configured, SortedOracles will return the equivalent token's median + * rate when asked. This was used for gas payments with USDC, by setting USDC's equivalent + * token to be cUSD. But this also allows us to remove this duality between rate feeds that + * are tokens, and rate feeds derived from identifiers. + * In the context of PUSO it means that we can report to the rateFeed defined by the + * canonical id: `relayed:CELOPHP`, and then have address(PUSO) point to that for + * gas payments. + */ + function proposal_setEquivalentTokenForPUSO() private { + if (Chain.isBaklava()) { + /// @dev This SortedOracles feature was not deployed to Baklava. Skipping. + return; + } + address CELOPHPRateFeedId = toRateFeedId("relayed:CELOPHP"); + transactions.push( + ICeloGovernance.Transaction({ + value: 0, + destination: contracts.celoRegistry("SortedOracles"), + data: abi.encodeWithSelector(ISortedOracles(0).setEquivalentToken.selector, PUSO, CELOPHPRateFeedId) + }) + ); + } +} diff --git a/script/upgrades/MU07/MU07Checks.sol b/script/upgrades/MU07/MU07Checks.sol new file mode 100644 index 00000000..eb692087 --- /dev/null +++ b/script/upgrades/MU07/MU07Checks.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable var-name-mixedcase, func-name-mixedcase +pragma solidity ^0.5.13; +pragma experimental ABIEncoderV2; + +import { Test } from "forge-std/Test.sol"; +import { console } from "forge-std/console.sol"; +import { Contracts } from "script/utils/Contracts.sol"; +import { Chain } from "script/utils/Chain.sol"; +import { GovernanceScript } from "script/utils/Script.sol"; + +import { IChainlinkRelayerFactory } from "mento-core-2.5.0/interfaces/IChainlinkRelayerFactory.sol"; +import { IChainlinkRelayer } from "mento-core-2.5.0/interfaces/IChainlinkRelayer.sol"; + +import { ISortedOracles } from "./MU07.sol"; + +contract MU07Checks is GovernanceScript, Test { + using Contracts for Contracts.Cache; + + IChainlinkRelayerFactory private relayerFactory; + ISortedOracles private sortedOracles; + address private PUSO; + + function prepare() public { + contracts.loadSilent("MU07-Deploy-ChainlinkRelayerFactory", "latest"); + contracts.loadSilent("PUSO-00-Create-Proxies", "latest"); + + relayerFactory = IChainlinkRelayerFactory(contracts.deployed("ChainlinkRelayerFactoryProxy")); + sortedOracles = ISortedOracles(contracts.celoRegistry("SortedOracles")); + PUSO = contracts.deployed("StableTokenPHPProxy"); + } + + function run() public { + prepare(); + assert_relayersAreWhitelisted(); + assert_relayersReport(); + assert_tokenReportExpiryEq(toRateFeedId("relayed:CELOPHP"), 5 minutes); + assert_tokenReportExpiryEq(toRateFeedId("relayed:PHPUSD"), 5 minutes); + } + + function assert_relayersReport() internal { + address[] memory relayers = relayerFactory.getRelayers(); + for (uint i = 0; i < relayers.length; i++) { + IChainlinkRelayer relayer = IChainlinkRelayer(relayers[i]); + relayer.relay(); + (uint256 rate, ) = sortedOracles.medianRate(relayer.rateFeedId()); + emit log_named_decimal_uint(relayer.rateFeedDescription(), rate, 24); + } + } + + function assert_relayersAreWhitelisted() internal { + address[] memory relayers = relayerFactory.getRelayers(); + for (uint i = 0; i < relayers.length; i++) { + IChainlinkRelayer relayer = IChainlinkRelayer(relayers[i]); + address rateFeedId = relayer.rateFeedId(); + address[] memory oracles = sortedOracles.getOracles(rateFeedId); + if (oracles.length == 0) { + console.log("No oracles whitelisted for rateFeed: %s [%s]", relayer.rateFeedDescription(), rateFeedId); + } else if (oracles.length > 1) { + console.log("Too many oracles whitelisted for rateFeed: %s [%s]", relayer.rateFeedDescription(), rateFeedId); + } + + assertEq(oracles.length, 1); + + if (oracles[0] != relayers[i]) { + console.log("Whitelisted oracle wrong for rateFeed: %s [%s]", relayer.rateFeedDescription(), rateFeedId); + } + assertEq(oracles[0], relayers[i]); + console.log("Rate feed %s setup correctly", relayer.rateFeedDescription()); + } + } + + function assert_equivalentTokenEq(address token, address expected) internal { + if (Chain.isBaklava()) { + /// @dev This SortedOracles feature was not deployed to Baklava. Skipping check. + console.log("Skipping equivalent token check on Baklava."); + } + address actual = sortedOracles.getEquivalentToken(token); + if (actual != expected) { + console.log("Equivalent token mismatch for PUSO (%s)."); + } + assertEq(actual, expected); + console.log("PUSO [%s] equivalent token is correct", PUSO); + } + + function assert_tokenReportExpiryEq(address rateFeedId, uint256 expected) internal { + uint256 actual = sortedOracles.getTokenReportExpirySeconds(rateFeedId); + if (actual != expected) { + console.log("Token report expiry mismatch for rateFeedId [%s].", rateFeedId); + } + assertEq(actual, expected); + console.log("Token report expiry for rateFeedId [%s] is correct", rateFeedId); + } +} diff --git a/script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayerFactory.sol b/script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayerFactory.sol new file mode 100644 index 00000000..ee84e6db --- /dev/null +++ b/script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayerFactory.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable contract-name-camelcase +pragma solidity ^0.8.18; + +import { console } from "forge-std-next/console.sol"; +import { Script } from "script/utils/mento/Script.sol"; +import { Chain as ChainLib } from "script/utils/mento/Chain.sol"; +import { Contracts } from "script/utils/mento/Contracts.sol"; + +import { ChainlinkRelayerFactory } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactory.sol"; +import { ChainlinkRelayerFactoryProxy } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactoryProxy.sol"; +import { ChainlinkRelayerFactoryProxyAdmin } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactoryProxyAdmin.sol"; + +contract MU07_Deploy_ChainlinkRelayerFactory is Script { + using Contracts for Contracts.Cache; + + ChainlinkRelayerFactory private relayerFactory; + ChainlinkRelayerFactoryProxy private proxy; + ChainlinkRelayerFactoryProxyAdmin private proxyAdmin; + + function getProxyAdminOwner() internal returns (address) { + if (ChainLib.isCelo()) { + return contracts.dependency("MentoLabsMultisig"); // Mento Labs multisig + } else { + return vm.addr(ChainLib.deployerPrivateKey()); + } + } + + function run() public { + address proxyAdminOwner = getProxyAdminOwner(); + vm.startBroadcast(ChainLib.deployerPrivateKey()); + { + relayerFactory = new ChainlinkRelayerFactory(true); + proxyAdmin = new ChainlinkRelayerFactoryProxyAdmin(); + if (proxyAdmin.owner() != proxyAdminOwner) { + proxyAdmin.transferOwnership(proxyAdminOwner); + } + proxy = new ChainlinkRelayerFactoryProxy( + address(relayerFactory), + address(proxyAdmin), + abi.encodeWithSelector( + ChainlinkRelayerFactory.initialize.selector, + contracts.celoRegistry("SortedOracles"), + vm.addr(ChainLib.deployerPrivateKey()) + ) + ); + } + console.log("ChainlinkRelayerFactory implementation: ", address(relayerFactory)); + console.log("ChainlinkRelayerFactoryProxy: ", address(proxy)); + console.log("ChainlinkRelayerFactoryProxyAdmin: ", address(proxyAdmin)); + vm.stopBroadcast(); + } +} diff --git a/script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayers.sol b/script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayers.sol new file mode 100644 index 00000000..49558d3a --- /dev/null +++ b/script/upgrades/MU07/deploy/MU07-Deploy-ChainlinkRelayers.sol @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable contract-name-camelcase +pragma solidity ^0.8.18; + +import { console } from "forge-std-next/console.sol"; +import { Script } from "script/utils/mento/Script.sol"; +import { Chain as ChainLib } from "script/utils/mento/Chain.sol"; +import { Contracts } from "script/utils/mento/Contracts.sol"; + +import { ChainlinkRelayerFactory } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactory.sol"; +import { ChainlinkRelayerFactoryProxy } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactoryProxy.sol"; +import { ChainlinkRelayerFactoryProxyAdmin } from "mento-core-2.5.0/oracles/ChainlinkRelayerFactoryProxyAdmin.sol"; +import { IChainlinkRelayer } from "mento-core-2.5.0/interfaces/IChainlinkRelayer.sol"; +import { toRateFeedId, aggregators } from "script/utils/mento/Oracles.sol"; + +contract MU07_Deploy_ChainlinkRelayers is Script { + using Contracts for Contracts.Cache; + using { toRateFeedId } for string; + + struct Relayer { + string rateFeed; + string rateFeedDescription; + uint256 maxTimestampSpread; + IChainlinkRelayer.ChainlinkAggregator[] aggregators; + } + + Relayer[] private relayers = [ + Relayer({ + rateFeed: "relayed:CELOPHP", + rateFeedDescription: "CELO/PHP (CELO/USD:USD/PHP)", + maxTimestampSpread: 24 hours, + aggregators: aggregators( + IChainlinkRelayer.ChainlinkAggregator({ aggregator: contracts.dependency("Chainlink.CELOUSD"), invert: false }), + IChainlinkRelayer.ChainlinkAggregator({ aggregator: contracts.dependency("Chainlink.PHPUSD"), invert: true }) + ) + }), + Relayer({ + rateFeed: "relayed:PHPUSD", + rateFeedDescription: "PHP/USD", + maxTimestampSpread: 0, + aggregators: aggregators( + IChainlinkRelayer.ChainlinkAggregator({ aggregator: contracts.dependency("Chainlink.PHPUSD"), invert: false }) + ) + }) + ]; + + ChainlinkRelayerFactory private relayerFactory; + + constructor() Script() { + contracts.load("MU07-Deploy-ChainlinkRelayerFactory", "latest"); + relayerFactory = ChainlinkRelayerFactory(contracts.deployed("ChainlinkRelayerFactoryProxy")); + } + + function run() public { + vm.startBroadcast(ChainLib.deployerPrivateKey()); + { + for (uint i = 0; i < relayers.length; i++) { + deployRelayerIfNoneOrDifferent(relayers[i]); + } + } + vm.stopBroadcast(); + + for (uint i = 0; i < relayers.length; i++) { + address rateFeedId = toRateFeedId(relayers[i].rateFeed); + address relayer = relayerFactory.getRelayer(rateFeedId); + console.log(relayers[i].rateFeed, rateFeedId, relayer); + } + } + + function deployRelayerIfNoneOrDifferent(Relayer memory relayer) internal { + address rateFeedId = relayer.rateFeed.toRateFeedId(); + address relayerAddress = address(relayerFactory.deployedRelayers(rateFeedId)); + address newRelayerAddress = relayerFactory.computedRelayerAddress( + rateFeedId, + relayer.rateFeedDescription, + relayer.maxTimestampSpread, + relayer.aggregators + ); + if (newRelayerAddress != relayerAddress) { + if (relayerAddress == address(0)) { + relayerFactory.deployRelayer( + rateFeedId, + relayer.rateFeedDescription, + relayer.maxTimestampSpread, + relayer.aggregators + ); + } else { + relayerFactory.redeployRelayer( + rateFeedId, + relayer.rateFeedDescription, + relayer.maxTimestampSpread, + relayer.aggregators + ); + } + } + } +} diff --git a/script/upgrades/PSO/deploy/PSO-00-Create-Proxies.sol b/script/upgrades/PSO/deploy/PSO-00-Create-Proxies.sol deleted file mode 100644 index df4c7c7f..00000000 --- a/script/upgrades/PSO/deploy/PSO-00-Create-Proxies.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity ^0.5.13; - -import { Script } from "script/utils/Script.sol"; -import { Chain } from "script/utils/Chain.sol"; -import { console2 } from "forge-std/Script.sol"; - -import { StableTokenPSOProxy } from "mento-core-2.4.0/legacy/proxies/StableTokenPSOProxy.sol"; - -/* - yarn deploy -n -u PSO -s PSO-00-Create-Proxies.sol -*/ -contract PSO_CreateProxies is Script { - function run() public { - address payable stableTokenPSOProxy; - address governance = contracts.celoRegistry("Governance"); - - vm.startBroadcast(Chain.deployerPrivateKey()); - { - stableTokenPSOProxy = address(new StableTokenPSOProxy()); - StableTokenPSOProxy(stableTokenPSOProxy)._transferOwnership(governance); - } - vm.stopBroadcast(); - - console2.log("----------"); - console2.log("StableTokenPSOProxy deployed at: ", stableTokenPSOProxy); - console2.log("StableTokenPSOProxy(%s) ownership transferred to %s", stableTokenPSOProxy, governance); - console2.log("----------"); - } -} diff --git a/script/upgrades/dependencies.json b/script/upgrades/dependencies.json index 39bea664..697c37f0 100644 --- a/script/upgrades/dependencies.json +++ b/script/upgrades/dependencies.json @@ -18,7 +18,9 @@ "MentoLiquiditySupport": "0xA74Ac93de1A209957E62391B01E09161277a9ffC", "WatchdogMultisig": "0xE6951C4176aaB41097C6f5fE11e9c515B7108acd", "FractalSigner": "0xacD08d6714ADba531beFF582e6FD5DA1AFD6bc65", - "MentoFoundationMultisig": "0x3468D23A0B1aB3Ab9A537813166A8f7ff1947014" + "MentoFoundationMultisig": "0x3468D23A0B1aB3Ab9A537813166A8f7ff1947014", + "Chainlink.CELOUSD": "0x0568fD19986748cEfF3301e55c0eb1E729E0Ab7e", + "Chainlink.PHPUSD": "0x4ce8e628Bb82Ea5271908816a6C580A71233a66c" }, "62320": { "BridgedUSDC": "0xD4079B322c392D6b196f90AA4c439fC2C16d6770", @@ -39,7 +41,9 @@ "WatchdogMultisig": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", "MentoFoundationMultisig": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", "MentoLiquiditySupport": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", - "FractalSigner": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81" + "FractalSigner": "0x56fD3F2bEE130e9867942D0F463a16fBE49B8d81", + "Chainlink.CELOUSD": "0xBC2684ABEeefc606a92fbf94ce4357E98D267286", + "Chainlink.PHPUSD": "0xF4143259C91B4acdC03bff740b1C4CC663F60CB6" }, "44787": { "BridgedUSDC": "0x87D61dA3d668797786D73BC674F053f87111570d", @@ -60,6 +64,8 @@ "WatchdogMultisig": "0x823655c966be3b6344Efd4D2A0FE8d0a1e3D691B", "MentoFoundationMultisig": "0x707D2B6Bd0acf76821AD5A09A1C6F43d6d6f692c", "MentoLiquiditySupport": "0x6bD481a12cb2790E7EE805b9E6e7E91917DeEe6a", - "FractalSigner": "0x2fCAb633adFA6aF8266025D63228047033c3ceD0" + "FractalSigner": "0x2fCAb633adFA6aF8266025D63228047033c3ceD0", + "Chainlink.CELOUSD": "0x022F9dCC73C5Fb43F2b4eF2EF9ad3eDD1D853946", + "Chainlink.PHPUSD": "0xcf79c1445c69cd17b1bdecf790416085a4ff808a" } } diff --git a/script/utils/Script.sol b/script/utils/Script.sol index 5d381fc8..45e99b7f 100644 --- a/script/utils/Script.sol +++ b/script/utils/Script.sol @@ -35,6 +35,10 @@ contract Script is BaseScript { } contract GovernanceScript is Script, GovernanceHelper { + function toRateFeedId(string memory rateFeedString) internal pure returns (address) { + return address(uint160(uint256(keccak256(abi.encodePacked(rateFeedString))))); + } + /** * @notice Helper function to get the exchange ID for a pool. */ diff --git a/script/utils/mento/Oracles.sol b/script/utils/mento/Oracles.sol new file mode 100644 index 00000000..1c080031 --- /dev/null +++ b/script/utils/mento/Oracles.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// solhint-disable func-visibility +pragma solidity ^0.8.18; + +import { IChainlinkRelayer } from "mento-core-2.5.0/interfaces/IChainlinkRelayer.sol"; + +function toRateFeedId(string memory rateFeedString) pure returns (address) { + return address(uint160(uint256(keccak256(abi.encodePacked(rateFeedString))))); +} + +function aggregators( + IChainlinkRelayer.ChainlinkAggregator memory agg0 +) pure returns (IChainlinkRelayer.ChainlinkAggregator[] memory aggs) { + aggs = new IChainlinkRelayer.ChainlinkAggregator[](1); + aggs[0] = agg0; +} + +function aggregators( + IChainlinkRelayer.ChainlinkAggregator memory agg0, + IChainlinkRelayer.ChainlinkAggregator memory agg1 +) pure returns (IChainlinkRelayer.ChainlinkAggregator[] memory aggs) { + aggs = new IChainlinkRelayer.ChainlinkAggregator[](2); + aggs[0] = agg0; + aggs[1] = agg1; +} + +function aggregators( + IChainlinkRelayer.ChainlinkAggregator memory agg0, + IChainlinkRelayer.ChainlinkAggregator memory agg1, + IChainlinkRelayer.ChainlinkAggregator memory agg2 +) pure returns (IChainlinkRelayer.ChainlinkAggregator[] memory aggs) { + aggs = new IChainlinkRelayer.ChainlinkAggregator[](3); + aggs[0] = agg0; + aggs[1] = agg1; + aggs[2] = agg2; +} + +function aggregators( + IChainlinkRelayer.ChainlinkAggregator memory agg0, + IChainlinkRelayer.ChainlinkAggregator memory agg1, + IChainlinkRelayer.ChainlinkAggregator memory agg2, + IChainlinkRelayer.ChainlinkAggregator memory agg3 +) pure returns (IChainlinkRelayer.ChainlinkAggregator[] memory aggs) { + aggs = new IChainlinkRelayer.ChainlinkAggregator[](4); + aggs[0] = agg0; + aggs[1] = agg1; + aggs[2] = agg2; + aggs[3] = agg3; +} diff --git a/script/utils/mento/PassProposal.sol b/script/utils/mento/PassProposal.sol index d0d71047..3594b56f 100644 --- a/script/utils/mento/PassProposal.sol +++ b/script/utils/mento/PassProposal.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.18; import { Script } from "./Script.sol"; + import { IGovernanceFactory } from "../../interfaces/IGovernanceFactory.sol"; import { IGovernor } from "../../interfaces/IGovernor.sol"; import { console2 } from "forge-std/Script.sol"; diff --git a/script/utils/mento/SimulateUpgrade.sol b/script/utils/mento/SimulateUpgrade.sol index 7f6f56a1..efb23b2a 100644 --- a/script/utils/mento/SimulateUpgrade.sol +++ b/script/utils/mento/SimulateUpgrade.sol @@ -2,7 +2,7 @@ // solhint-disable func-name-mixedcase, contract-name-camelcase pragma solidity ^0.8.18; -import { console } from "forge-std/console.sol"; +import { console } from "forge-std-next/console.sol"; import { Contracts } from "script/utils/mento/Contracts.sol"; import { IMentoUpgrade } from "script/interfaces/IMentoUpgrade.sol"; import { IGovernanceFactory } from "script/interfaces/IGovernanceFactory.sol";