From a5cf72ed6442d57e411c7f83f36f8ad17f9318c7 Mon Sep 17 00:00:00 2001 From: Dhairya Sethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Tue, 17 Oct 2023 20:46:30 +0530 Subject: [PATCH 01/17] Markdown Generation (#36) * feat: md generation * only ignore devnet broadcast files * fix: generateDeploymentHistory * upd: goerli deployment json + md * fix: etherscan link * fix: commit hash of deployment * fix: include latest in deployment history * chore: rm module exports * chore: uppercase i, fix table of contents * update paths, add 1.1.0 upgrade script * chore: mv json to deployments/json/ * new: use deployment input * chore: use {version}/input.json * chore: ignore devnet json * fix: support for upgrade scripts json * chore: fs_perms for input.json * fix: md gen * fix: etherscan link edge case * new: add version column in summary * chore: deployment history versions in summary * chore: fix history * new: update json structure - rm lastest.contracts, add first version to history * chore: update json/md with new structure * chore: update usage, validate inputs, add help cmd * new: extract commitHash, timestamp in parent obj in history * fix: add 1.0.0 to history on init * chore: add line break bw contracts * new: use UTC timestamp * chore: rm history before implementation history, GMT->UTC * Update existing deployment logs to new format --------- Co-authored-by: gretzke --- .gitignore | 6 +- .prettierrc | 6 + README.md | 16 +- broadcast/Deploy.s.sol/5/run-1696415718.json | 238 ++++++ broadcast/Deploy.s.sol/5/run-1696415725.json | 685 ++++++++++++++++++ broadcast/Deploy.s.sol/5/run-1696415816.json | 685 ++++++++++++++++++ broadcast/Deploy.s.sol/5/run-latest.json | 685 ++++++++++++++++++ deployments/5.md | 219 ++++++ deployments/json/5.json | 86 +++ docs/src/README.md | 16 +- foundry.toml | 5 +- output/5.json | 42 -- script/utils/extract.js | 123 ---- {script => scripts/1.0.0}/Deploy.s.sol | 26 +- .../config.json => scripts/1.0.0/input.json | 7 +- scripts/1.1.0/UpgradeEmissionManager.s.sol | 43 ++ scripts/1.1.0/input.json | 9 + scripts/config.json | 7 + scripts/utils/extract.js | 447 ++++++++++++ slither.config.json | 2 +- 20 files changed, 3144 insertions(+), 209 deletions(-) create mode 100644 broadcast/Deploy.s.sol/5/run-1696415718.json create mode 100644 broadcast/Deploy.s.sol/5/run-1696415725.json create mode 100644 broadcast/Deploy.s.sol/5/run-1696415816.json create mode 100644 broadcast/Deploy.s.sol/5/run-latest.json create mode 100644 deployments/5.md create mode 100644 deployments/json/5.json delete mode 100644 output/5.json delete mode 100644 script/utils/extract.js rename {script => scripts/1.0.0}/Deploy.s.sol (68%) rename script/config.json => scripts/1.0.0/input.json (81%) create mode 100644 scripts/1.1.0/UpgradeEmissionManager.s.sol create mode 100644 scripts/1.1.0/input.json create mode 100644 scripts/config.json create mode 100644 scripts/utils/extract.js diff --git a/.gitignore b/.gitignore index 9c739de..72e88a7 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,9 @@ /coverage lcov.info .DS_Store -broadcast/ +.vscode .env -output/31337.json \ No newline at end of file +broadcast/*/31337 +deployments/31337.md +deployments/json/31337.json diff --git a/.prettierrc b/.prettierrc index de6705e..0c4d091 100644 --- a/.prettierrc +++ b/.prettierrc @@ -14,6 +14,12 @@ "singleQuote": false, "bracketSpacing": false } + }, + { + "files": "*.json", + "options": { + "tabWidth": 4 + } } ] } diff --git a/README.md b/README.md index 8f00519..d2f0533 100644 --- a/README.md +++ b/README.md @@ -30,21 +30,21 @@ A default implementation is included and this contract will be proxy upgradable ### Setup -- [Install foundry](https://book.getfoundry.sh/getting-started/installation) -- Install Dependencies: `forge install` -- Build: `forge build` -- Test: `forge test` +- [Install foundry](https://book.getfoundry.sh/getting-started/installation) +- Install Dependencies: `forge install` +- Build: `forge build` +- Test: `forge test` ### Deployment 1. Ensure .env file is set, `cp .env.example` 2. Populate Enviornment variables: `source .env` -3. We use a forge script to deploy the contracts, and have an additional extract.js script to store a JSON file with coalesced deployment information. (see [output](./output/)) +3. We use a forge script to deploy the contracts, and have an additional extract.js script to store a JSON file with coalesced deployment information. (see [deployments](./deployments/)) -- (mainnet): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY` -- (testnet, goerli for example): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` +- (mainnet): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY` +- (testnet, goerli for example): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` -4. Run `node script/util/extract.js ` to extract deployment information from forge broadcast output (broadcast/latest-run.json). +4. Run `node scripts/util/extract.js [version = 1.0.0] [scriptName = Deploy.s.sol]` to extract deployment information from forge broadcast output (broadcast/latest-run.json). ## Reference Deployments diff --git a/broadcast/Deploy.s.sol/5/run-1696415718.json b/broadcast/Deploy.s.sol/5/run-1696415718.json new file mode 100644 index 0000000..c13540d --- /dev/null +++ b/broadcast/Deploy.s.sol/5/run-1696415718.json @@ -0,0 +1,238 @@ +{ + "transactions": [ + { + "hash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionType": "CREATE", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x82a76", + "value": "0x0", + "data": "0x6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361060890816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146104535750508063715018a6146103f95780637eff275e1461037f5780638da5cb5b146103575780639623609d146102415783816399a88ec4146101b557508063f2fde38b146100e95763f3b7dead1461007f57600080fd5b346100e55760203660031901126100e5576001600160a01b039083908190836100a6610492565b86516303e1469160e61b815291165afa926100bf610583565b93156100e257506100da8360208080965183010191016105b3565b169051908152f35b80fd5b8280fd5b50346100e55760203660031901126100e557610103610492565b9061010c61052b565b6001600160a01b03918216928315610163575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b9290503461023d578060031936011261023d576101d0610492565b6101d86104ad565b906101e161052b565b6001600160a01b03908116803b156102395785928360249286519788958694631b2ce7f360e11b865216908401525af190811561023057506102205750f35b610229906104c3565b6100e25780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606036600319011261035357610258610492565b926102616104ad565b9160443567ffffffffffffffff811161034f573660238201121561034f57808201359161028d8361050f565b9261029a855194856104ed565b808452602092366024838301011161034b57818892602486930183880137850101526102c461052b565b6001600160a01b0396871696873b156103475784519563278f794360e11b87521690850152826024850152815191826044860152855b8381106103335750505082849581606481858983819884010152601f8019910116810103019134905af190811561023057506102205750f35b8181018301518682016064015282016102fa565b8680fd5b8780fd5b8480fd5b5080fd5b505034610353578160031936011261035357905490516001600160a01b039091168152602090f35b5090346100e557806003193601126100e5578261039a610492565b6103a26104ad565b6103aa61052b565b6001600160a01b0391821690813b156103f55783602492865197889586946308f2839760e41b865216908401525af190811561023057506103e9575080f35b6103f2906104c3565b80f35b8380fd5b83346100e257806003193601126100e25761041261052b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b91509134610353576020366003190112610353576001600160a01b03928291908461047c610492565b635c60da1b60e01b8352165afa926100bf610583565b600435906001600160a01b03821682036104a857565b600080fd5b602435906001600160a01b03821682036104a857565b67ffffffffffffffff81116104d757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176104d757604052565b67ffffffffffffffff81116104d757601f01601f191660200190565b6000546001600160a01b0316330361053f57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d156105ae573d906105948261050f565b916105a260405193846104ed565b82523d6000602084013e565b606090565b908160209103126104a857516001600160a01b03811681036104a8579056fea264697066735822122032e3584933010050ea11a6417c7659d2da4700f96fd96823f340bba5a8636d7364736f6c63430008150033", + "nonce": "0x0", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionType": "CALL", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": "transferOwnership(address)", + "arguments": [ + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x9ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "gas": "0x9a0a", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x1", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionType": "CREATE", + "contractName": "PolygonMigration", + "contractAddress": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "function": null, + "arguments": [ + "0x499d11E0b6eAC7c0593d8Fb292DCBbF815Fb29Ae" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x11890e", + "value": "0x0", + "data": "0x60a03461014257601f610fe238819003918201601f19168301916001600160401b038311848410176101475780849260209460405283398101031261014257516001600160a01b038116908190036101425780156101305760805260005460ff8160081c166100db5760ff808216036100a0575b604051610e84908161015e82396080518181816101c4015281816102680152818161058601526108ba0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610073565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b60405163e6c4247b60e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040908082526004918236101561001757600080fd5b600092833560e01c9283630d8e6e2c146109c7575082632398344c1461094f57826342966c68146108f1578263454b06081461086f5782634b052e7b146108485782634c0f54ea146107d7578263715018a61461077057826379ba5097146106eb5782638129fc1c146105b8578263899d25901461050c5782638da5cb5b146104e3578263a0ae9ff014610297578263b6b0b09714610253578263b8c97ded1461022a578263e30c3978146101fd578263efeff0c11461015257505063f2fde38b146100e257600080fd5b3461014f57602036600319011261014f576100fb610a51565b610103610abd565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b909150346101f95760203660031901126101f9578035916097549160ff8360a01c166101eb5750826101e893926101c1925182815233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a3309033906001600160a01b0316610c20565b337f0000000000000000000000000000000000000000000000000000000000000000610be5565b80f35b9051630608786960e51b8152fd5b8280fd5b83823461022657816003193601126102265760655490516001600160a01b039091168152602090f35b5080fd5b83823461022657816003193601126102265760975490516001600160a01b039091168152602090f35b838234610226578160031936011261022657517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9150346101f95760a03660031901126101f957813591602460443560ff81168091036104df576097549360ff8560a01c166104d05780519186835260209233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b853392a38151623f675f60e91b80825233878301526001600160a01b039791929188169185848881865afa938415610493578b946104a1575b50823b1561049d5784519063d505accf60e01b8252338983015230888301528a604483015287356064830152608482015260643560a482015260843560c48201528a8160e48183875af1801561049357610466575b508490868551809481938252338b8301525afa90811561045c57899161042a575b506001820180921161041857036103cf57866101e8876101c181893090339060975416610c20565b5162461bcd60e51b8152928301526021908201527f5361666545524332303a207065726d697420646964206e6f74207375636365656044820152601960fa1b6064820152608490fd5b634e487b7160e01b8952601186528489fd5b90508381813d8311610455575b6104418183610bc3565b810103126104505751386103a7565b600080fd5b503d610437565b83513d8b823e3d90fd5b67ffffffffffffffff819b929b116104815784529884610386565b634e487b7160e01b8252604188528682fd5b85513d8d823e3d90fd5b8a80fd5b9093508581813d83116104c9575b6104b98183610bc3565b8101031261049d57519238610331565b503d6104af565b51630608786960e51b81528390fd5b8580fd5b83823461022657816003193601126102265760335490516001600160a01b039091168152602090f35b839034610226578260031936011261022657610526610a51565b602435916097549060ff8260a01c166105aa5750826101e894956105849260018060a01b039151838152828616907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a33091339116610c20565b7f0000000000000000000000000000000000000000000000000000000000000000610be5565b8551630608786960e51b8152fd5b909150346101f957826003193601126101f957825460ff8160081c1615918280936106de575b80156106c7575b1561066d575060ff19811660011784558161065c575b5061061560ff845460081c1661061081610b15565b610b15565b61061e33610a67565b610626575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a180f35b61ffff1916610101178355386105fb565b608490602085519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156105e55750600160ff8316146105e5565b50600160ff8316106105de565b9150346101f957826003193601126101f957606554336001600160a01b039091160361071b57826101e833610a67565b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b833461014f578060031936011261014f57610789610abd565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b909150346101f95760203660031901126101f95735908115158092036101f95760207f1ed408ff40af8e4c6a92f1a45718084bb1c8448f7e4617c83784a42c1be30d9591610823610abd565b51838152a16097805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b83823461022657816003193601126102265760209060ff60975460a01c1690519015158152f35b9150346101f95760203660031901126101f9576101e8913590518181527f8b80bd19aea7b735bc6d75db8d6adbe18b28c30d62b3555245eb67b2340caedc60203392a26108de8130337f0000000000000000000000000000000000000000000000000000000000000000610c20565b60975433906001600160a01b0316610be5565b909150346101f95760203660031901126101f9576101e891610911610abd565b609754905163a9059cbb60e01b602082015261dead6024820152913560448084019190915282526001600160a01b031661094a82610ba7565b610c75565b909150346101f95760203660031901126101f95761096b610a51565b91610974610abd565b6001600160a01b039283169283159081156109b9575b506109ac5750506bffffffffffffffffffffffff60a01b609754161760975580f35b5163a323cf1960e01b8152fd5b90506097541615153861098a565b925050346101f957826003193601126101f957610a0492506109e882610b75565b60058252640312e302e360dc1b60208301525191829182610a08565b0390f35b6020808252825181830181905290939260005b828110610a3d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610a1b565b600435906001600160a01b038216820361045057565b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b03163303610ad157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610b1c57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b6040810190811067ffffffffffffffff821117610b9157604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610b9157604052565b90601f8019910116810190811067ffffffffffffffff821117610b9157604052565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610c1e9161094a82610ba7565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610b9157610c1e926040525b60018060a01b031690604051610c8a81610b75565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610daf573d9167ffffffffffffffff8311610d9b5790610d0593929160405192610cf888601f19601f8401160185610bc3565b83523d868885013e610db9565b805191821591848315610d77575b505050905015610d205750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126102265782015190811515820361014f575080388084610d13565b634e487b7160e01b85526041600452602485fd5b90610d0592916060915b91929015610e1b5750815115610dcd575090565b3b15610dd65790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610e2e5750805190602001fd5b60405162461bcd60e51b8152908190610e4a9060048301610a08565b0390fdfea2646970667358221220a52339816e44a3bcdf6c4ef66de920189bce8d7e5d007d9422453e6dda19102364736f6c63430008150033000000000000000000000000499d11e0b6eac7c0593d8fb292dcbbf815fb29ae", + "nonce": "0x2", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": [ + "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x8129fc1c" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xc3c46", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c6343000815003300000000000000000000000041e44496afe9fe59004b9d166efa5a31245746b50000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000", + "nonce": "0x3", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd1f", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc576020905166657f7e1838fc4e8152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e302e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47578360011c91610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b66657f7e1838fc4e9080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea264697066735822122017eb40142a5e4933fb2a6a5c67317bb8abbe7e2093c6e863340b002363d7891364736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x4", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": [ + "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xb3a35", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c63430008150033000000000000000000000000e76193f2107bf7cc9c6a0de6af63d3c74b9363930000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x5", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionType": "CREATE", + "contractName": "PolygonEcosystemToken", + "contractAddress": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x3205fe", + "value": "0x0", + "data": "0x61016034620009e257601f620030c238819003918201601f19168301916001600160401b038311848410176200078357808492608094604052833981010312620009e2576200004e8162000a03565b906200005d6020820162000a03565b620000796060620000716040850162000a03565b930162000a03565b92604051916200008983620009e7565b601783527f506f6c79676f6e2045636f73797374656d20546f6b656e0000000000000000009485602085015260405195620000c487620009e7565b601787526020870152604051620000db81620009e7565b60038152621413d360ea1b602082015260405196620000fa88620009e7565b60018852603160f81b60208901528051906001600160401b038211620007835760035490600182811c92168015620009d7575b6020831014620008a95781601f84931162000965575b50602090601f8311600114620008d657600092620008ca575b50508160011b916000199060031b1c1916176003555b8051906001600160401b038211620007835760045490600182811c92168015620008bf575b6020831014620008a95781601f84931162000834575b50602090601f8311600114620007a55760009262000799575b50508160011b916000199060031b1c1916176004555b620001e78462000a18565b94610120958652620001f98762000bdc565b9461014095865260208151910120968760e0526020815191012092610100978489524660a0526040519460208601917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8352604087015260608601524660808601523060a086015260a0855260c085019480861060018060401b03871117620007835760408690525190206080523060c052678ac7230489e80000600b556001600160a01b038516159384801562000771575b80156200075f575b80156200074d575b6200073e57506001600160a01b0382166000908152600080516020620030628339815191526020526040902054620004b593926200043e929091620003be919060ff1615620006f1575b60008052600a602052620003446001600160a01b0384167f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e362000d94565b506001600160a01b038116600090815260008051602062003082833981519152602052604090205460ff161562000693575b600080516020620030a2833981519152600052600a6020526001600160a01b03167f5da2288e7399ef58b3daddbf3afade00d52d6de048c7a8bef231c102a03b7b8062000d94565b506001600160a01b03811660009081527f9c3cc61ff729e549a457fdfb4ddb7d94f542eb7568a065fdcf3814d99dec17a460205260409020547f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a9060ff161562000649575b600052600a60205260018060a01b0316604060002062000d94565b506001600160a01b031660008181527f9329b3c9f0d3acb42b7f4f684aec754024a8d55b89df18cc71b76f6ae510cd3960205260409020547fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb79060ff161562000607575b600052600a602052604060002062000d94565b50620005c2576002546b204fce5e3e2502611000000091828201809211620005ac576002919091556001600160a01b031660008181526020818152604080832080548601905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a342600c557f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c74859132602060405160018152a1600160ff19600d541617600d5560405191612220938462000e22853960805184611d30015260a05184611dfc015260c05184611cfa015260e05184611d7f01525183611da5015251826109420152518161096c0152f35b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b8060005260096020526040600020826000526020526040600020600160ff1982541617905533828260008051602062003042833981519152600080a4620004a2565b60008181526009602090815260408083206001600160a01b03861680855292528220805460ff1916600117905533918390600080516020620030428339815191529080a462000423565b6001600160a01b03811660008181526000805160206200308283398151915260205260408120805460ff19166001179055339190600080516020620030a283398151915290600080516020620030428339815191529080a462000376565b6001600160a01b03831660008181526000805160206200306283398151915260205260408120805460ff19166001179055339190600080516020620030428339815191528180a462000306565b63e6c4247b60e01b8152600490fd5b506001600160a01b03841615620002bc565b506001600160a01b03831615620002b4565b506001600160a01b03821615620002ac565b634e487b7160e01b600052604160045260246000fd5b015190503880620001c6565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f198416851062000818576001945083601f19811610620007fe575b505050811b01600455620001dc565b015160001960f88460031b161c19169055388080620007ef565b81810151835560209485019460019093019290910190620007d2565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810191602085106200089e575b90601f859493920160051c01905b8181106200088e5750620001ad565b600081558493506001016200087f565b909150819062000871565b634e487b7160e01b600052602260045260246000fd5b91607f169162000197565b0151905038806200015c565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f198416851062000949576001945083601f198116106200092f575b505050811b0160035562000172565b015160001960f88460031b161c1916905538808062000920565b8181015183556020948501946001909301929091019062000903565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810160208510620009cf575b90849392915b601f830160051c82018110620009bf57505062000143565b60008155859450600101620009a7565b5080620009a1565b91607f16916200012d565b600080fd5b604081019081106001600160401b038211176200078357604052565b51906001600160a01b0382168203620009e257565b8051602091908281101562000ab7575090601f82511162000a56578082519201519080831062000a4757501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000a9d575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000a79565b6001600160401b03811162000783576005928354926001938481811c9116801562000bd1575b83821014620008a957601f811162000b9a575b5081601f841160011462000b30575092829391839260009462000b24575b50501b916000199060031b1c191617905560ff90565b01519250388062000b0e565b919083601f1981168760005284600020946000905b8883831062000b7f575050501062000b65575b505050811b01905560ff90565b015160001960f88460031b161c1916905538808062000b58565b85870151885590960195948501948793509081019062000b45565b8560005284601f846000209201871c820191601f8601881c015b82811062000bc457505062000af0565b6000815501859062000bb4565b90607f169062000add565b80516020908181101562000c6a5750601f82511162000c09578082519201519080831062000a4757501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000c50575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000c2c565b906001600160401b0382116200078357600654926001938481811c9116801562000d89575b83821014620008a957601f811162000d4f575b5081601f841160011462000ce3575092829391839260009462000cd7575b50501b916000199060031b1c19161760065560ff90565b01519250388062000cc0565b919083601f198116600660005284600020946000905b8883831062000d34575050501062000d1a575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000d0c565b85870151885590960195948501948793509081019062000cf9565b600660005284601f84600020920160051c820191601f860160051c015b82811062000d7c57505062000ca2565b6000815501859062000d6c565b90607f169062000c8f565b9190600183016000908282528060205260408220541560001462000e1b578454946801000000000000000086101562000e07576001860180825586101562000df357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b5092505056fe608060408181526004908136101561001657600080fd5b600092833560e01c90816301ffc9a7146113db5750806306fdde0314611301578063095ea7b3146112d75780630d8e6e2c1461129257806318160ddd1461127357806323b872dd146111bc578063248a9ca3146111915780632e285051146111565780632f2ff15d1461109c578063313ce567146110805780633644e5151461106357806336568abe14610fd15780633950935114610f95578063407c48b414610f7157806340c10f1914610c81578063586fc5b514610c625780636afdd85014610c38578063705e6a5b14610ab757806370a0823114610a805780637ecebe0014610a4857806384b0196e1461092c5780638e141c75146108f15780638eb66d6a146108d25780639010d07c1461089157806391d148541461084a57806395d89b411461075d578063a217fddf14610742578063a457c2d7146106ac578063a9059cbb1461067b578063ca15c87314610653578063d505accf1461049d578063d547741f14610460578063dd62ed3e1461042b578063fadd1a1b146103ec5763ff740c31146101a557600080fd5b346103e8576020806003193601126103e4578235927f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a80865260098352838620338752835260ff84872054161561022f575050907fed4079ad973dc05ae698be821fb6958dc4edd78aa21dd6a9f8552e46037bacfd9183600b54918351928352820152a1600b5580f35b83908661023b33611a51565b9183519061024882611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610353575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190611449565b010360288101855201836116b2565b5193849362461bcd60e51b8552840152602483019061146c565b0390fd5b606485878087519262461bcd60e51b845283015260248201526000805160206121cb8339815191526044820152fd5b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a6103838587611a2a565b53881c92801561039857600019019190610279565b634e487b7160e01b825260118952602482fd5b634e487b7160e01b835260328a52602483fd5b634e487b7160e01b815260328852602490fd5b634e487b7160e01b815260328752602490fd5b8380fd5b8280fd5b838234610427578160031936011261042757602090517fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb78152f35b5080fd5b83823461042757806003193601126104275760209061045961044b611491565b6104536114ac565b9061216e565b9051908152f35b50346103e857806003193601126103e85761049a913561049560016104836114ac565b938387526009602052862001546114c2565b6116d4565b80f35b509190346104275760e0366003190112610427576104b9611491565b6104c16114ac565b906044359260643560843560ff8116810361064f5781421161060c5760018060a01b0390818516928389526007602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176105f9578b525190206105a49161059c91610576611cf7565b908c519161190160f01b83526002830152602282015260c43591604260a4359220611c68565b919091611b4e565b16036105b6575061049a939450611928565b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b634e487b7160e01b8b526041875260248bfd5b875162461bcd60e51b8152602081850152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b8680fd5b5090346103e85760203660031901126103e8576020928291358152600a845220549051908152f35b8382346104275780600319360112610427576020906106a561069b611491565b60243590336117ba565b5160018152f35b50913461073f578260031936011261073f57506106c7611491565b90602435906106d6833361216e565b908282106106ee576020856106a58585038733611928565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b83823461042757816003193601126104275751908152602090f35b50346103e857826003193601126103e857805183819490845461077f8161175d565b918285526020966001928884821691826000146108205750506001146107c5575b85886107c1896107b2848a03856116b2565b5192828493845283019061146c565b0390f35b815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061080857505050820101816107b26107c1386107a0565b8054848a0186015288955087949093019281016107ee565b60ff19168882015294151560051b870190940194508593506107b292506107c191503890506107a0565b5090346103e857816003193601126103e8578160209360ff9261086b6114ac565b90358252600986528282206001600160a01b039091168252855220549151911615158152f35b5090346103e857816003193601126103e8576020926108bc91358152600a8452826024359120611fdc565b905491519160018060a01b039160031b1c168152f35b838234610427578160031936011261042757602090600b549051908152f35b838234610427578160031936011261042757602090517f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a8152f35b50346103e857826003193601126103e8576109667f0000000000000000000000000000000000000000000000000000000000000000611e22565b926109907f0000000000000000000000000000000000000000000000000000000000000000611f1f565b908251926020928385019585871067ffffffffffffffff881117610a35575092806109eb8388966109de998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b019061146c565b91898303908a015261146c565b924660608801523060808801528460a088015286840360c088015251928381520193925b828110610a1e57505050500390f35b835185528695509381019392810192600101610a0f565b634e487b7160e01b845260419052602483fd5b8382346104275760203660031901126104275760209181906001600160a01b03610a70611491565b1681526007845220549051908152f35b8382346104275760203660031901126104275760209181906001600160a01b03610aa8611491565b16815280845220549051908152f35b50346103e857602090816003193601126103e457823592831515809403610c34577fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb780865260098452828620338752845260ff838720541615610b4f575050907f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c748591329151838152a160ff8019600d5416911617600d5580f35b85610b5c93929333611a51565b91835190610b6982611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610bef575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a610c1f8587611a2a565b53881c92801561039857600019019190610b9a565b8480fd5b838234610427578160031936011261042757602090516e22d473030f116ddee9f6b43ac78ba38152f35b838234610427578160031936011261042757602090600c549051908152f35b5090346103e857816003193601126103e857610c9b611491565b906024928335917f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c99384875260209460098652838820338952865260ff848920541615610dec5750600c5480420390428211610dda57600b54808302928304149042141715610dc857808511610dad575042600c556001600160a01b0316948515610d6d57505091818593610d537fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254611797565b60025585855284835280852082815401905551908152a380f35b601f9085606494519362461bcd60e51b85528401528201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b828588604493875193635bdd08f560e01b8552840152820152fd5b634e487b7160e01b8852601183528688fd5b634e487b7160e01b8952601184528789fd5b82878588938b610dfb33611a51565b91835190610e0882611696565b60428252878201926060368537825115610f5f5760308453825190600191821015610f4d5790607860218501536041915b818311610ee457505050610eb657604861032095938593610e9e93610e8f975197889376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8d8601526102ce8d8251928391603789019101611449565b010360288101865201846116b2565b5194859462461bcd60e51b865285015283019061146c565b60648688878188519362461bcd60e51b85528401528201526000805160206121cb8339815191526044820152fd5b909192600f81166010811015610f3b576f181899199a1a9b1b9c1cb0b131b232b360811b901a610f148587611a2a565b53891c928015610f2957600019019190610e39565b634e487b7160e01b825260118a528882fd5b634e487b7160e01b835260328b528983fd5b634e487b7160e01b8152603289528790fd5b634e487b7160e01b8152603288528690fd5b83823461042757816003193601126104275760209060ff600d541690519015158152f35b8382346104275780600319360112610427576020906106a5610fb5611491565b610fca602435610fc5833361216e565b611797565b9033611928565b50919034610427578260031936011261042757610fec6114ac565b90336001600160a01b03831603611008579061049a91356116d4565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b838234610427578160031936011261042757602090610459611cf7565b8382346104275781600319360112610427576020905160128152f35b50346103e857806003193601126103e857611109913590600a6110bd6114ac565b92808652602090600982526110d7600185892001546114c2565b808752600982528387206001600160a01b039095168088529482528387205460ff161561110d575b8652528320611ff4565b5080f35b808752600982528387208588528252838720805460ff191660011790553385827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8a80a46110ff565b838234610427578160031936011261042757602090517f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c98152f35b5090346103e85760203660031901126103e85781602093600192358152600985522001549051908152f35b50913461073f57606036600319011261073f57506111d8611491565b6111e06114ac565b90604435926111ef338361216e565b9060018201611207575b6020866106a58787876117ba565b8482106112305750918391611225602096956106a595033383611928565b9193948193506111f9565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b8382346104275781600319360112610427576020906002549051908152f35b83823461042757816003193601126104275780516107c1916112b382611664565b60058252640312e302e360dc1b60208301525191829160208352602083019061146c565b8382346104275780600319360112610427576020906106a56112f7611491565b6024359033611928565b50823461073f578060031936011261073f5781519182826003546113248161175d565b908184526020956001918783821691826000146113b4575050600114611358575b5050506107c192916107b29103856116b2565b9190869350600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061139c57505050820101816107b26107c1611345565b8054848a018601528895508794909301928101611383565b60ff19168782015293151560051b860190930193508492506107b291506107c19050611345565b849084346103e85760203660031901126103e8573563ffffffff60e01b81168091036103e85760209250635a05180f60e01b811490811561141e575b5015158152f35b637965db0b60e01b811491508115611438575b5083611417565b6301ffc9a760e01b14905083611431565b60005b83811061145c5750506000910152565b818101518382015260200161144c565b9060209161148581518092818552858086019101611449565b601f01601f1916010190565b600435906001600160a01b03821682036114a757565b600080fd5b602435906001600160a01b03821682036114a757565b60009080825260209060098252604092838120338252835260ff8482205416156114ec5750505050565b6114f533611a51565b9184519061150282611696565b6042825284820192606036853782511561165057603084538251906001918210156116505790607860218501536041915b8183116115e2575050506115b257604861032093869361159693611587985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526102ce815180928c603789019101611449565b010360288101875201856116b2565b5192839262461bcd60e51b84526004840152602483019061146c565b60648486519062461bcd60e51b825280600483015260248201526000805160206121cb8339815191526044820152fd5b909192600f8116601081101561163c576f181899199a1a9b1b9c1cb0b131b232b360811b901a6116128587611a2a565b5360041c92801561162857600019019190611533565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b6040810190811067ffffffffffffffff82111761168057604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761168057604052565b90601f8019910116810190811067ffffffffffffffff82111761168057604052565b9060406117129260009080825260096020528282209360018060a01b03169384835260205260ff8383205416611715575b8152600a6020522061207e565b50565b808252600960205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4611705565b90600182811c9216801561178d575b602083101461177757565b634e487b7160e01b600052602260045260246000fd5b91607f169161176c565b919082018092116117a457565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039081169182156118d557169182156118845760008281528060205260408120549180831061183057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b039081169182156119d957169182156119895760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b908151811015611a3b570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906060820182811067ffffffffffffffff82111761168057604052602a8252602082016040368237825115611a3b57603090538151600190811015611a3b57607860218401536029905b808211611ae0575050611aae5790565b606460405162461bcd60e51b815260206004820152602060248201526000805160206121cb8339815191526044820152fd5b9091600f81166010811015611b39576f181899199a1a9b1b9c1cb0b131b232b360811b901a611b0f8486611a2a565b5360041c918015611b24576000190190611a9e565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b6005811015611c525780611b5f5750565b60018103611bac5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b60028103611bf95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b600314611c0257565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611ceb5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15611cde5781516001600160a01b03811615611cd8579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611df9575b15611d52577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116805760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611d29565b60ff8114611e605760ff811690601f8211611e4e5760405191611e4483611664565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600554816000611e738361175d565b808352602093600190818116908115611eff5750600114611ea0575b5050611e9d925003826116b2565b90565b9093915060056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0936000915b818310611ee7575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611ecf565b915050611e9d94925060ff191682840152151560051b8201013880611e8f565b60ff8114611f415760ff811690601f8211611e4e5760405191611e4483611664565b50604051600654816000611f548361175d565b808352602093600190818116908115611eff5750600114611f7d575050611e9d925003826116b2565b9093915060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f936000915b818310611fc4575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611fac565b8054821015611a3b5760005260206000200190600090565b919060018301600090828252806020526040822054156000146120785784549468010000000000000000861015612064578361205461203d886001604098999a01855584611fdc565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b9060018201906000928184528260205260408420549081151560001461216757600019918083018181116121535782549084820191821161213f5780820361210a575b505050805480156120f6578201916120d98383611fdc565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b61212a61211a61203d9386611fdc565b90549060031b1c92839286611fdc565b905586528460205260408620553880806120c1565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b6001600160a01b0391821691906e22d473030f116ddee9f6b43ac78ba38314806121be575b6121b55716600052600160205260406000209060005260205260406000205490565b50505060001990565b5060ff600d541661219356fe537472696e67733a20686578206c656e67746820696e73756666696369656e74a2646970667358221220bc00ea21ededc0ba595612cd336a06b15f2d9b025cc785af2515c67578bb1e3964736f6c634300081500332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b953e6113870cd26d8364d55096ba7b5671bc963ed99958a5e20ba9400d063705573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c90000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f6870000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x6", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x0e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "gas": "0x3779d", + "value": "0x0", + "data": "0x485cc9550000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x7", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x13007", + "value": "0x0", + "data": "0x2398344c0000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c", + "nonce": "0x8", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x128bd", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x9", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3" + ], + "returns": {}, + "timestamp": 1696415718, + "chain": 5, + "multi": false, + "commit": "40fff90" +} \ No newline at end of file diff --git a/broadcast/Deploy.s.sol/5/run-1696415725.json b/broadcast/Deploy.s.sol/5/run-1696415725.json new file mode 100644 index 0000000..78f32e7 --- /dev/null +++ b/broadcast/Deploy.s.sol/5/run-1696415725.json @@ -0,0 +1,685 @@ +{ + "transactions": [ + { + "hash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionType": "CREATE", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x82a76", + "value": "0x0", + "data": "0x6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361060890816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146104535750508063715018a6146103f95780637eff275e1461037f5780638da5cb5b146103575780639623609d146102415783816399a88ec4146101b557508063f2fde38b146100e95763f3b7dead1461007f57600080fd5b346100e55760203660031901126100e5576001600160a01b039083908190836100a6610492565b86516303e1469160e61b815291165afa926100bf610583565b93156100e257506100da8360208080965183010191016105b3565b169051908152f35b80fd5b8280fd5b50346100e55760203660031901126100e557610103610492565b9061010c61052b565b6001600160a01b03918216928315610163575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b9290503461023d578060031936011261023d576101d0610492565b6101d86104ad565b906101e161052b565b6001600160a01b03908116803b156102395785928360249286519788958694631b2ce7f360e11b865216908401525af190811561023057506102205750f35b610229906104c3565b6100e25780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606036600319011261035357610258610492565b926102616104ad565b9160443567ffffffffffffffff811161034f573660238201121561034f57808201359161028d8361050f565b9261029a855194856104ed565b808452602092366024838301011161034b57818892602486930183880137850101526102c461052b565b6001600160a01b0396871696873b156103475784519563278f794360e11b87521690850152826024850152815191826044860152855b8381106103335750505082849581606481858983819884010152601f8019910116810103019134905af190811561023057506102205750f35b8181018301518682016064015282016102fa565b8680fd5b8780fd5b8480fd5b5080fd5b505034610353578160031936011261035357905490516001600160a01b039091168152602090f35b5090346100e557806003193601126100e5578261039a610492565b6103a26104ad565b6103aa61052b565b6001600160a01b0391821690813b156103f55783602492865197889586946308f2839760e41b865216908401525af190811561023057506103e9575080f35b6103f2906104c3565b80f35b8380fd5b83346100e257806003193601126100e25761041261052b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b91509134610353576020366003190112610353576001600160a01b03928291908461047c610492565b635c60da1b60e01b8352165afa926100bf610583565b600435906001600160a01b03821682036104a857565b600080fd5b602435906001600160a01b03821682036104a857565b67ffffffffffffffff81116104d757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176104d757604052565b67ffffffffffffffff81116104d757601f01601f191660200190565b6000546001600160a01b0316330361053f57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d156105ae573d906105948261050f565b916105a260405193846104ed565b82523d6000602084013e565b606090565b908160209103126104a857516001600160a01b03811681036104a8579056fea264697066735822122032e3584933010050ea11a6417c7659d2da4700f96fd96823f340bba5a8636d7364736f6c63430008150033", + "nonce": "0x0", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionType": "CALL", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": "transferOwnership(address)", + "arguments": [ + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x9ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "gas": "0x9a0a", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x1", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionType": "CREATE", + "contractName": "PolygonMigration", + "contractAddress": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "function": null, + "arguments": [ + "0x499d11E0b6eAC7c0593d8Fb292DCBbF815Fb29Ae" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x11890e", + "value": "0x0", + "data": "0x60a03461014257601f610fe238819003918201601f19168301916001600160401b038311848410176101475780849260209460405283398101031261014257516001600160a01b038116908190036101425780156101305760805260005460ff8160081c166100db5760ff808216036100a0575b604051610e84908161015e82396080518181816101c4015281816102680152818161058601526108ba0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610073565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b60405163e6c4247b60e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040908082526004918236101561001757600080fd5b600092833560e01c9283630d8e6e2c146109c7575082632398344c1461094f57826342966c68146108f1578263454b06081461086f5782634b052e7b146108485782634c0f54ea146107d7578263715018a61461077057826379ba5097146106eb5782638129fc1c146105b8578263899d25901461050c5782638da5cb5b146104e3578263a0ae9ff014610297578263b6b0b09714610253578263b8c97ded1461022a578263e30c3978146101fd578263efeff0c11461015257505063f2fde38b146100e257600080fd5b3461014f57602036600319011261014f576100fb610a51565b610103610abd565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b909150346101f95760203660031901126101f9578035916097549160ff8360a01c166101eb5750826101e893926101c1925182815233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a3309033906001600160a01b0316610c20565b337f0000000000000000000000000000000000000000000000000000000000000000610be5565b80f35b9051630608786960e51b8152fd5b8280fd5b83823461022657816003193601126102265760655490516001600160a01b039091168152602090f35b5080fd5b83823461022657816003193601126102265760975490516001600160a01b039091168152602090f35b838234610226578160031936011261022657517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9150346101f95760a03660031901126101f957813591602460443560ff81168091036104df576097549360ff8560a01c166104d05780519186835260209233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b853392a38151623f675f60e91b80825233878301526001600160a01b039791929188169185848881865afa938415610493578b946104a1575b50823b1561049d5784519063d505accf60e01b8252338983015230888301528a604483015287356064830152608482015260643560a482015260843560c48201528a8160e48183875af1801561049357610466575b508490868551809481938252338b8301525afa90811561045c57899161042a575b506001820180921161041857036103cf57866101e8876101c181893090339060975416610c20565b5162461bcd60e51b8152928301526021908201527f5361666545524332303a207065726d697420646964206e6f74207375636365656044820152601960fa1b6064820152608490fd5b634e487b7160e01b8952601186528489fd5b90508381813d8311610455575b6104418183610bc3565b810103126104505751386103a7565b600080fd5b503d610437565b83513d8b823e3d90fd5b67ffffffffffffffff819b929b116104815784529884610386565b634e487b7160e01b8252604188528682fd5b85513d8d823e3d90fd5b8a80fd5b9093508581813d83116104c9575b6104b98183610bc3565b8101031261049d57519238610331565b503d6104af565b51630608786960e51b81528390fd5b8580fd5b83823461022657816003193601126102265760335490516001600160a01b039091168152602090f35b839034610226578260031936011261022657610526610a51565b602435916097549060ff8260a01c166105aa5750826101e894956105849260018060a01b039151838152828616907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a33091339116610c20565b7f0000000000000000000000000000000000000000000000000000000000000000610be5565b8551630608786960e51b8152fd5b909150346101f957826003193601126101f957825460ff8160081c1615918280936106de575b80156106c7575b1561066d575060ff19811660011784558161065c575b5061061560ff845460081c1661061081610b15565b610b15565b61061e33610a67565b610626575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a180f35b61ffff1916610101178355386105fb565b608490602085519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156105e55750600160ff8316146105e5565b50600160ff8316106105de565b9150346101f957826003193601126101f957606554336001600160a01b039091160361071b57826101e833610a67565b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b833461014f578060031936011261014f57610789610abd565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b909150346101f95760203660031901126101f95735908115158092036101f95760207f1ed408ff40af8e4c6a92f1a45718084bb1c8448f7e4617c83784a42c1be30d9591610823610abd565b51838152a16097805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b83823461022657816003193601126102265760209060ff60975460a01c1690519015158152f35b9150346101f95760203660031901126101f9576101e8913590518181527f8b80bd19aea7b735bc6d75db8d6adbe18b28c30d62b3555245eb67b2340caedc60203392a26108de8130337f0000000000000000000000000000000000000000000000000000000000000000610c20565b60975433906001600160a01b0316610be5565b909150346101f95760203660031901126101f9576101e891610911610abd565b609754905163a9059cbb60e01b602082015261dead6024820152913560448084019190915282526001600160a01b031661094a82610ba7565b610c75565b909150346101f95760203660031901126101f95761096b610a51565b91610974610abd565b6001600160a01b039283169283159081156109b9575b506109ac5750506bffffffffffffffffffffffff60a01b609754161760975580f35b5163a323cf1960e01b8152fd5b90506097541615153861098a565b925050346101f957826003193601126101f957610a0492506109e882610b75565b60058252640312e302e360dc1b60208301525191829182610a08565b0390f35b6020808252825181830181905290939260005b828110610a3d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610a1b565b600435906001600160a01b038216820361045057565b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b03163303610ad157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610b1c57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b6040810190811067ffffffffffffffff821117610b9157604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610b9157604052565b90601f8019910116810190811067ffffffffffffffff821117610b9157604052565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610c1e9161094a82610ba7565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610b9157610c1e926040525b60018060a01b031690604051610c8a81610b75565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610daf573d9167ffffffffffffffff8311610d9b5790610d0593929160405192610cf888601f19601f8401160185610bc3565b83523d868885013e610db9565b805191821591848315610d77575b505050905015610d205750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126102265782015190811515820361014f575080388084610d13565b634e487b7160e01b85526041600452602485fd5b90610d0592916060915b91929015610e1b5750815115610dcd575090565b3b15610dd65790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610e2e5750805190602001fd5b60405162461bcd60e51b8152908190610e4a9060048301610a08565b0390fdfea2646970667358221220a52339816e44a3bcdf6c4ef66de920189bce8d7e5d007d9422453e6dda19102364736f6c63430008150033000000000000000000000000499d11e0b6eac7c0593d8fb292dcbbf815fb29ae", + "nonce": "0x2", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": [ + "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x8129fc1c" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xc3c46", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c6343000815003300000000000000000000000041e44496afe9fe59004b9d166efa5a31245746b50000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000", + "nonce": "0x3", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd1f", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc576020905166657f7e1838fc4e8152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e302e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47578360011c91610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b66657f7e1838fc4e9080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea264697066735822122017eb40142a5e4933fb2a6a5c67317bb8abbe7e2093c6e863340b002363d7891364736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x4", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": [ + "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xb3a35", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c63430008150033000000000000000000000000e76193f2107bf7cc9c6a0de6af63d3c74b9363930000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x5", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionType": "CREATE", + "contractName": "PolygonEcosystemToken", + "contractAddress": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x3205fe", + "value": "0x0", + "data": "0x61016034620009e257601f620030c238819003918201601f19168301916001600160401b038311848410176200078357808492608094604052833981010312620009e2576200004e8162000a03565b906200005d6020820162000a03565b620000796060620000716040850162000a03565b930162000a03565b92604051916200008983620009e7565b601783527f506f6c79676f6e2045636f73797374656d20546f6b656e0000000000000000009485602085015260405195620000c487620009e7565b601787526020870152604051620000db81620009e7565b60038152621413d360ea1b602082015260405196620000fa88620009e7565b60018852603160f81b60208901528051906001600160401b038211620007835760035490600182811c92168015620009d7575b6020831014620008a95781601f84931162000965575b50602090601f8311600114620008d657600092620008ca575b50508160011b916000199060031b1c1916176003555b8051906001600160401b038211620007835760045490600182811c92168015620008bf575b6020831014620008a95781601f84931162000834575b50602090601f8311600114620007a55760009262000799575b50508160011b916000199060031b1c1916176004555b620001e78462000a18565b94610120958652620001f98762000bdc565b9461014095865260208151910120968760e0526020815191012092610100978489524660a0526040519460208601917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8352604087015260608601524660808601523060a086015260a0855260c085019480861060018060401b03871117620007835760408690525190206080523060c052678ac7230489e80000600b556001600160a01b038516159384801562000771575b80156200075f575b80156200074d575b6200073e57506001600160a01b0382166000908152600080516020620030628339815191526020526040902054620004b593926200043e929091620003be919060ff1615620006f1575b60008052600a602052620003446001600160a01b0384167f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e362000d94565b506001600160a01b038116600090815260008051602062003082833981519152602052604090205460ff161562000693575b600080516020620030a2833981519152600052600a6020526001600160a01b03167f5da2288e7399ef58b3daddbf3afade00d52d6de048c7a8bef231c102a03b7b8062000d94565b506001600160a01b03811660009081527f9c3cc61ff729e549a457fdfb4ddb7d94f542eb7568a065fdcf3814d99dec17a460205260409020547f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a9060ff161562000649575b600052600a60205260018060a01b0316604060002062000d94565b506001600160a01b031660008181527f9329b3c9f0d3acb42b7f4f684aec754024a8d55b89df18cc71b76f6ae510cd3960205260409020547fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb79060ff161562000607575b600052600a602052604060002062000d94565b50620005c2576002546b204fce5e3e2502611000000091828201809211620005ac576002919091556001600160a01b031660008181526020818152604080832080548601905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a342600c557f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c74859132602060405160018152a1600160ff19600d541617600d5560405191612220938462000e22853960805184611d30015260a05184611dfc015260c05184611cfa015260e05184611d7f01525183611da5015251826109420152518161096c0152f35b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b8060005260096020526040600020826000526020526040600020600160ff1982541617905533828260008051602062003042833981519152600080a4620004a2565b60008181526009602090815260408083206001600160a01b03861680855292528220805460ff1916600117905533918390600080516020620030428339815191529080a462000423565b6001600160a01b03811660008181526000805160206200308283398151915260205260408120805460ff19166001179055339190600080516020620030a283398151915290600080516020620030428339815191529080a462000376565b6001600160a01b03831660008181526000805160206200306283398151915260205260408120805460ff19166001179055339190600080516020620030428339815191528180a462000306565b63e6c4247b60e01b8152600490fd5b506001600160a01b03841615620002bc565b506001600160a01b03831615620002b4565b506001600160a01b03821615620002ac565b634e487b7160e01b600052604160045260246000fd5b015190503880620001c6565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f198416851062000818576001945083601f19811610620007fe575b505050811b01600455620001dc565b015160001960f88460031b161c19169055388080620007ef565b81810151835560209485019460019093019290910190620007d2565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810191602085106200089e575b90601f859493920160051c01905b8181106200088e5750620001ad565b600081558493506001016200087f565b909150819062000871565b634e487b7160e01b600052602260045260246000fd5b91607f169162000197565b0151905038806200015c565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f198416851062000949576001945083601f198116106200092f575b505050811b0160035562000172565b015160001960f88460031b161c1916905538808062000920565b8181015183556020948501946001909301929091019062000903565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810160208510620009cf575b90849392915b601f830160051c82018110620009bf57505062000143565b60008155859450600101620009a7565b5080620009a1565b91607f16916200012d565b600080fd5b604081019081106001600160401b038211176200078357604052565b51906001600160a01b0382168203620009e257565b8051602091908281101562000ab7575090601f82511162000a56578082519201519080831062000a4757501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000a9d575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000a79565b6001600160401b03811162000783576005928354926001938481811c9116801562000bd1575b83821014620008a957601f811162000b9a575b5081601f841160011462000b30575092829391839260009462000b24575b50501b916000199060031b1c191617905560ff90565b01519250388062000b0e565b919083601f1981168760005284600020946000905b8883831062000b7f575050501062000b65575b505050811b01905560ff90565b015160001960f88460031b161c1916905538808062000b58565b85870151885590960195948501948793509081019062000b45565b8560005284601f846000209201871c820191601f8601881c015b82811062000bc457505062000af0565b6000815501859062000bb4565b90607f169062000add565b80516020908181101562000c6a5750601f82511162000c09578082519201519080831062000a4757501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000c50575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000c2c565b906001600160401b0382116200078357600654926001938481811c9116801562000d89575b83821014620008a957601f811162000d4f575b5081601f841160011462000ce3575092829391839260009462000cd7575b50501b916000199060031b1c19161760065560ff90565b01519250388062000cc0565b919083601f198116600660005284600020946000905b8883831062000d34575050501062000d1a575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000d0c565b85870151885590960195948501948793509081019062000cf9565b600660005284601f84600020920160051c820191601f860160051c015b82811062000d7c57505062000ca2565b6000815501859062000d6c565b90607f169062000c8f565b9190600183016000908282528060205260408220541560001462000e1b578454946801000000000000000086101562000e07576001860180825586101562000df357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b5092505056fe608060408181526004908136101561001657600080fd5b600092833560e01c90816301ffc9a7146113db5750806306fdde0314611301578063095ea7b3146112d75780630d8e6e2c1461129257806318160ddd1461127357806323b872dd146111bc578063248a9ca3146111915780632e285051146111565780632f2ff15d1461109c578063313ce567146110805780633644e5151461106357806336568abe14610fd15780633950935114610f95578063407c48b414610f7157806340c10f1914610c81578063586fc5b514610c625780636afdd85014610c38578063705e6a5b14610ab757806370a0823114610a805780637ecebe0014610a4857806384b0196e1461092c5780638e141c75146108f15780638eb66d6a146108d25780639010d07c1461089157806391d148541461084a57806395d89b411461075d578063a217fddf14610742578063a457c2d7146106ac578063a9059cbb1461067b578063ca15c87314610653578063d505accf1461049d578063d547741f14610460578063dd62ed3e1461042b578063fadd1a1b146103ec5763ff740c31146101a557600080fd5b346103e8576020806003193601126103e4578235927f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a80865260098352838620338752835260ff84872054161561022f575050907fed4079ad973dc05ae698be821fb6958dc4edd78aa21dd6a9f8552e46037bacfd9183600b54918351928352820152a1600b5580f35b83908661023b33611a51565b9183519061024882611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610353575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190611449565b010360288101855201836116b2565b5193849362461bcd60e51b8552840152602483019061146c565b0390fd5b606485878087519262461bcd60e51b845283015260248201526000805160206121cb8339815191526044820152fd5b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a6103838587611a2a565b53881c92801561039857600019019190610279565b634e487b7160e01b825260118952602482fd5b634e487b7160e01b835260328a52602483fd5b634e487b7160e01b815260328852602490fd5b634e487b7160e01b815260328752602490fd5b8380fd5b8280fd5b838234610427578160031936011261042757602090517fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb78152f35b5080fd5b83823461042757806003193601126104275760209061045961044b611491565b6104536114ac565b9061216e565b9051908152f35b50346103e857806003193601126103e85761049a913561049560016104836114ac565b938387526009602052862001546114c2565b6116d4565b80f35b509190346104275760e0366003190112610427576104b9611491565b6104c16114ac565b906044359260643560843560ff8116810361064f5781421161060c5760018060a01b0390818516928389526007602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176105f9578b525190206105a49161059c91610576611cf7565b908c519161190160f01b83526002830152602282015260c43591604260a4359220611c68565b919091611b4e565b16036105b6575061049a939450611928565b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b634e487b7160e01b8b526041875260248bfd5b875162461bcd60e51b8152602081850152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b8680fd5b5090346103e85760203660031901126103e8576020928291358152600a845220549051908152f35b8382346104275780600319360112610427576020906106a561069b611491565b60243590336117ba565b5160018152f35b50913461073f578260031936011261073f57506106c7611491565b90602435906106d6833361216e565b908282106106ee576020856106a58585038733611928565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b83823461042757816003193601126104275751908152602090f35b50346103e857826003193601126103e857805183819490845461077f8161175d565b918285526020966001928884821691826000146108205750506001146107c5575b85886107c1896107b2848a03856116b2565b5192828493845283019061146c565b0390f35b815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061080857505050820101816107b26107c1386107a0565b8054848a0186015288955087949093019281016107ee565b60ff19168882015294151560051b870190940194508593506107b292506107c191503890506107a0565b5090346103e857816003193601126103e8578160209360ff9261086b6114ac565b90358252600986528282206001600160a01b039091168252855220549151911615158152f35b5090346103e857816003193601126103e8576020926108bc91358152600a8452826024359120611fdc565b905491519160018060a01b039160031b1c168152f35b838234610427578160031936011261042757602090600b549051908152f35b838234610427578160031936011261042757602090517f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a8152f35b50346103e857826003193601126103e8576109667f0000000000000000000000000000000000000000000000000000000000000000611e22565b926109907f0000000000000000000000000000000000000000000000000000000000000000611f1f565b908251926020928385019585871067ffffffffffffffff881117610a35575092806109eb8388966109de998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b019061146c565b91898303908a015261146c565b924660608801523060808801528460a088015286840360c088015251928381520193925b828110610a1e57505050500390f35b835185528695509381019392810192600101610a0f565b634e487b7160e01b845260419052602483fd5b8382346104275760203660031901126104275760209181906001600160a01b03610a70611491565b1681526007845220549051908152f35b8382346104275760203660031901126104275760209181906001600160a01b03610aa8611491565b16815280845220549051908152f35b50346103e857602090816003193601126103e457823592831515809403610c34577fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb780865260098452828620338752845260ff838720541615610b4f575050907f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c748591329151838152a160ff8019600d5416911617600d5580f35b85610b5c93929333611a51565b91835190610b6982611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610bef575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a610c1f8587611a2a565b53881c92801561039857600019019190610b9a565b8480fd5b838234610427578160031936011261042757602090516e22d473030f116ddee9f6b43ac78ba38152f35b838234610427578160031936011261042757602090600c549051908152f35b5090346103e857816003193601126103e857610c9b611491565b906024928335917f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c99384875260209460098652838820338952865260ff848920541615610dec5750600c5480420390428211610dda57600b54808302928304149042141715610dc857808511610dad575042600c556001600160a01b0316948515610d6d57505091818593610d537fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254611797565b60025585855284835280852082815401905551908152a380f35b601f9085606494519362461bcd60e51b85528401528201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b828588604493875193635bdd08f560e01b8552840152820152fd5b634e487b7160e01b8852601183528688fd5b634e487b7160e01b8952601184528789fd5b82878588938b610dfb33611a51565b91835190610e0882611696565b60428252878201926060368537825115610f5f5760308453825190600191821015610f4d5790607860218501536041915b818311610ee457505050610eb657604861032095938593610e9e93610e8f975197889376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8d8601526102ce8d8251928391603789019101611449565b010360288101865201846116b2565b5194859462461bcd60e51b865285015283019061146c565b60648688878188519362461bcd60e51b85528401528201526000805160206121cb8339815191526044820152fd5b909192600f81166010811015610f3b576f181899199a1a9b1b9c1cb0b131b232b360811b901a610f148587611a2a565b53891c928015610f2957600019019190610e39565b634e487b7160e01b825260118a528882fd5b634e487b7160e01b835260328b528983fd5b634e487b7160e01b8152603289528790fd5b634e487b7160e01b8152603288528690fd5b83823461042757816003193601126104275760209060ff600d541690519015158152f35b8382346104275780600319360112610427576020906106a5610fb5611491565b610fca602435610fc5833361216e565b611797565b9033611928565b50919034610427578260031936011261042757610fec6114ac565b90336001600160a01b03831603611008579061049a91356116d4565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b838234610427578160031936011261042757602090610459611cf7565b8382346104275781600319360112610427576020905160128152f35b50346103e857806003193601126103e857611109913590600a6110bd6114ac565b92808652602090600982526110d7600185892001546114c2565b808752600982528387206001600160a01b039095168088529482528387205460ff161561110d575b8652528320611ff4565b5080f35b808752600982528387208588528252838720805460ff191660011790553385827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8a80a46110ff565b838234610427578160031936011261042757602090517f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c98152f35b5090346103e85760203660031901126103e85781602093600192358152600985522001549051908152f35b50913461073f57606036600319011261073f57506111d8611491565b6111e06114ac565b90604435926111ef338361216e565b9060018201611207575b6020866106a58787876117ba565b8482106112305750918391611225602096956106a595033383611928565b9193948193506111f9565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b8382346104275781600319360112610427576020906002549051908152f35b83823461042757816003193601126104275780516107c1916112b382611664565b60058252640312e302e360dc1b60208301525191829160208352602083019061146c565b8382346104275780600319360112610427576020906106a56112f7611491565b6024359033611928565b50823461073f578060031936011261073f5781519182826003546113248161175d565b908184526020956001918783821691826000146113b4575050600114611358575b5050506107c192916107b29103856116b2565b9190869350600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061139c57505050820101816107b26107c1611345565b8054848a018601528895508794909301928101611383565b60ff19168782015293151560051b860190930193508492506107b291506107c19050611345565b849084346103e85760203660031901126103e8573563ffffffff60e01b81168091036103e85760209250635a05180f60e01b811490811561141e575b5015158152f35b637965db0b60e01b811491508115611438575b5083611417565b6301ffc9a760e01b14905083611431565b60005b83811061145c5750506000910152565b818101518382015260200161144c565b9060209161148581518092818552858086019101611449565b601f01601f1916010190565b600435906001600160a01b03821682036114a757565b600080fd5b602435906001600160a01b03821682036114a757565b60009080825260209060098252604092838120338252835260ff8482205416156114ec5750505050565b6114f533611a51565b9184519061150282611696565b6042825284820192606036853782511561165057603084538251906001918210156116505790607860218501536041915b8183116115e2575050506115b257604861032093869361159693611587985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526102ce815180928c603789019101611449565b010360288101875201856116b2565b5192839262461bcd60e51b84526004840152602483019061146c565b60648486519062461bcd60e51b825280600483015260248201526000805160206121cb8339815191526044820152fd5b909192600f8116601081101561163c576f181899199a1a9b1b9c1cb0b131b232b360811b901a6116128587611a2a565b5360041c92801561162857600019019190611533565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b6040810190811067ffffffffffffffff82111761168057604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761168057604052565b90601f8019910116810190811067ffffffffffffffff82111761168057604052565b9060406117129260009080825260096020528282209360018060a01b03169384835260205260ff8383205416611715575b8152600a6020522061207e565b50565b808252600960205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4611705565b90600182811c9216801561178d575b602083101461177757565b634e487b7160e01b600052602260045260246000fd5b91607f169161176c565b919082018092116117a457565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039081169182156118d557169182156118845760008281528060205260408120549180831061183057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b039081169182156119d957169182156119895760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b908151811015611a3b570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906060820182811067ffffffffffffffff82111761168057604052602a8252602082016040368237825115611a3b57603090538151600190811015611a3b57607860218401536029905b808211611ae0575050611aae5790565b606460405162461bcd60e51b815260206004820152602060248201526000805160206121cb8339815191526044820152fd5b9091600f81166010811015611b39576f181899199a1a9b1b9c1cb0b131b232b360811b901a611b0f8486611a2a565b5360041c918015611b24576000190190611a9e565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b6005811015611c525780611b5f5750565b60018103611bac5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b60028103611bf95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b600314611c0257565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611ceb5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15611cde5781516001600160a01b03811615611cd8579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611df9575b15611d52577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116805760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611d29565b60ff8114611e605760ff811690601f8211611e4e5760405191611e4483611664565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600554816000611e738361175d565b808352602093600190818116908115611eff5750600114611ea0575b5050611e9d925003826116b2565b90565b9093915060056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0936000915b818310611ee7575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611ecf565b915050611e9d94925060ff191682840152151560051b8201013880611e8f565b60ff8114611f415760ff811690601f8211611e4e5760405191611e4483611664565b50604051600654816000611f548361175d565b808352602093600190818116908115611eff5750600114611f7d575050611e9d925003826116b2565b9093915060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f936000915b818310611fc4575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611fac565b8054821015611a3b5760005260206000200190600090565b919060018301600090828252806020526040822054156000146120785784549468010000000000000000861015612064578361205461203d886001604098999a01855584611fdc565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b9060018201906000928184528260205260408420549081151560001461216757600019918083018181116121535782549084820191821161213f5780820361210a575b505050805480156120f6578201916120d98383611fdc565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b61212a61211a61203d9386611fdc565b90549060031b1c92839286611fdc565b905586528460205260408620553880806120c1565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b6001600160a01b0391821691906e22d473030f116ddee9f6b43ac78ba38314806121be575b6121b55716600052600160205260406000209060005260205260406000205490565b50505060001990565b5060ff600d541661219356fe537472696e67733a20686578206c656e67746820696e73756666696369656e74a2646970667358221220bc00ea21ededc0ba595612cd336a06b15f2d9b025cc785af2515c67578bb1e3964736f6c634300081500332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b953e6113870cd26d8364d55096ba7b5671bc963ed99958a5e20ba9400d063705573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c90000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f6870000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x6", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x0e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "gas": "0x3779d", + "value": "0x0", + "data": "0x485cc9550000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x7", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x13007", + "value": "0x0", + "data": "0x2398344c0000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c", + "nonce": "0x8", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x128bd", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x9", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionIndex": "0x1", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x1a00ad", + "gasUsed": "0x64874", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "logs": [ + { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000100000000000000000000000000000000000004000000000000000000000000100000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000080000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionIndex": "0x2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "cumulativeGasUsed": "0x1a7033", + "gasUsed": "0x6f86", + "contractAddress": null, + "logs": [ + { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000100000000000100000000000000000000000000000000000004000000000000000000000000100000000001000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000004000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionIndex": "0x3", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x27ee54", + "gasUsed": "0xd7e21", + "contractAddress": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "logs": [ + { + "address": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionIndex": "0x3", + "logIndex": "0x3", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x315897", + "gasUsed": "0x96a43", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "logs": [ + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000041e44496afe9fe59004b9d166efa5a31245746b5" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x7", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000002000000000000000000000000400000000000000000800000000000000000000000000000000000000100000000000000000000000000000000000004000000000000000000000000010002000001000000000000000000008000000000000000020002000000000000800800000000800000000000000000000000400000000000000000000000000000000000000000000080000080000000800000000000000000000000000000000400000000000000000000000000000000000000000020000000000000000000040000000000000400000000000000000020000000000000000000000000000000000000000000000000000000002000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionIndex": "0x5", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x4532fc", + "gasUsed": "0x13da65", + "contractAddress": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "logs": [ + { + "address": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionIndex": "0x5", + "logIndex": "0x8", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x4dd6ba", + "gasUsed": "0x8a3be", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "logs": [ + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000e76193f2107bf7cc9c6a0de6af63d3c74b936393" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "logIndex": "0x9", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "logIndex": "0xa", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000002000000000000000000000000000000000100000000000000000000000000000000000000800010000000040000040000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x745494", + "gasUsed": "0x267dda", + "contractAddress": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "logs": [ + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xb", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c9", + "0x0000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xc", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xd", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0xbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb7", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xe", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f687" + ], + "data": "0x0000000000000000000000000000000000000000204fce5e3e25026110000000", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c74859132" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0x10", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00010004000000000000000010000008000400000000000000000000000004000000100000000100000000000100000000000000000000000000000000000004000000000000000000000008000000000008000000000000000000000000000000020000020000044000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000080000000004000000000020000500010000000000000000000000000000000001200000000010000000402000000000000000000000000000004000000000100001000000020000000000004000002000000000000000000000000000000000000000000000040", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "cumulativeGasUsed": "0x76b37f", + "gasUsed": "0x25eeb", + "contractAddress": null, + "logs": [ + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "0x0000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f687" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x11", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x12", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x13", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000001800000000004000000000000000100000000000000000000000000000000000000000000200000000000000000000000000000000000000001000000000000000000000000000000020000020000044000000000000800000000000010000000000000040000400000000000000000000000000000000000000000000080000000000000000000020000000000500010000000000400000000000000000000000000000000010000000400000000000000000000040000000000000000000000001000000020000010000004000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "transactionIndex": "0x9", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "cumulativeGasUsed": "0x778361", + "gasUsed": "0xcfe2", + "contractAddress": null, + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionIndex": "0xa", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "cumulativeGasUsed": "0x785a37", + "gasUsed": "0xd6d6", + "contractAddress": null, + "logs": [ + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionIndex": "0xa", + "logIndex": "0x14", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000000000000000000000000000000000004000000000000000000000000010000000000000000000000000000008000000000020000000000000000000000800000000800000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000020000000000000000000000000000000000000000000000010000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1696415725, + "chain": 5, + "multi": false, + "commit": "40fff90" +} \ No newline at end of file diff --git a/broadcast/Deploy.s.sol/5/run-1696415816.json b/broadcast/Deploy.s.sol/5/run-1696415816.json new file mode 100644 index 0000000..96fc275 --- /dev/null +++ b/broadcast/Deploy.s.sol/5/run-1696415816.json @@ -0,0 +1,685 @@ +{ + "transactions": [ + { + "hash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionType": "CREATE", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x82a76", + "value": "0x0", + "data": "0x6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361060890816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146104535750508063715018a6146103f95780637eff275e1461037f5780638da5cb5b146103575780639623609d146102415783816399a88ec4146101b557508063f2fde38b146100e95763f3b7dead1461007f57600080fd5b346100e55760203660031901126100e5576001600160a01b039083908190836100a6610492565b86516303e1469160e61b815291165afa926100bf610583565b93156100e257506100da8360208080965183010191016105b3565b169051908152f35b80fd5b8280fd5b50346100e55760203660031901126100e557610103610492565b9061010c61052b565b6001600160a01b03918216928315610163575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b9290503461023d578060031936011261023d576101d0610492565b6101d86104ad565b906101e161052b565b6001600160a01b03908116803b156102395785928360249286519788958694631b2ce7f360e11b865216908401525af190811561023057506102205750f35b610229906104c3565b6100e25780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606036600319011261035357610258610492565b926102616104ad565b9160443567ffffffffffffffff811161034f573660238201121561034f57808201359161028d8361050f565b9261029a855194856104ed565b808452602092366024838301011161034b57818892602486930183880137850101526102c461052b565b6001600160a01b0396871696873b156103475784519563278f794360e11b87521690850152826024850152815191826044860152855b8381106103335750505082849581606481858983819884010152601f8019910116810103019134905af190811561023057506102205750f35b8181018301518682016064015282016102fa565b8680fd5b8780fd5b8480fd5b5080fd5b505034610353578160031936011261035357905490516001600160a01b039091168152602090f35b5090346100e557806003193601126100e5578261039a610492565b6103a26104ad565b6103aa61052b565b6001600160a01b0391821690813b156103f55783602492865197889586946308f2839760e41b865216908401525af190811561023057506103e9575080f35b6103f2906104c3565b80f35b8380fd5b83346100e257806003193601126100e25761041261052b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b91509134610353576020366003190112610353576001600160a01b03928291908461047c610492565b635c60da1b60e01b8352165afa926100bf610583565b600435906001600160a01b03821682036104a857565b600080fd5b602435906001600160a01b03821682036104a857565b67ffffffffffffffff81116104d757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176104d757604052565b67ffffffffffffffff81116104d757601f01601f191660200190565b6000546001600160a01b0316330361053f57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d156105ae573d906105948261050f565b916105a260405193846104ed565b82523d6000602084013e565b606090565b908160209103126104a857516001600160a01b03811681036104a8579056fea264697066735822122032e3584933010050ea11a6417c7659d2da4700f96fd96823f340bba5a8636d7364736f6c63430008150033", + "nonce": "0x0", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionType": "CALL", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": "transferOwnership(address)", + "arguments": [ + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x9ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "gas": "0x9a0a", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x1", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionType": "CREATE", + "contractName": "PolygonMigration", + "contractAddress": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "function": null, + "arguments": [ + "0x499d11E0b6eAC7c0593d8Fb292DCBbF815Fb29Ae" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x11890e", + "value": "0x0", + "data": "0x60a03461014257601f610fe238819003918201601f19168301916001600160401b038311848410176101475780849260209460405283398101031261014257516001600160a01b038116908190036101425780156101305760805260005460ff8160081c166100db5760ff808216036100a0575b604051610e84908161015e82396080518181816101c4015281816102680152818161058601526108ba0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610073565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b60405163e6c4247b60e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040908082526004918236101561001757600080fd5b600092833560e01c9283630d8e6e2c146109c7575082632398344c1461094f57826342966c68146108f1578263454b06081461086f5782634b052e7b146108485782634c0f54ea146107d7578263715018a61461077057826379ba5097146106eb5782638129fc1c146105b8578263899d25901461050c5782638da5cb5b146104e3578263a0ae9ff014610297578263b6b0b09714610253578263b8c97ded1461022a578263e30c3978146101fd578263efeff0c11461015257505063f2fde38b146100e257600080fd5b3461014f57602036600319011261014f576100fb610a51565b610103610abd565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b909150346101f95760203660031901126101f9578035916097549160ff8360a01c166101eb5750826101e893926101c1925182815233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a3309033906001600160a01b0316610c20565b337f0000000000000000000000000000000000000000000000000000000000000000610be5565b80f35b9051630608786960e51b8152fd5b8280fd5b83823461022657816003193601126102265760655490516001600160a01b039091168152602090f35b5080fd5b83823461022657816003193601126102265760975490516001600160a01b039091168152602090f35b838234610226578160031936011261022657517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9150346101f95760a03660031901126101f957813591602460443560ff81168091036104df576097549360ff8560a01c166104d05780519186835260209233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b853392a38151623f675f60e91b80825233878301526001600160a01b039791929188169185848881865afa938415610493578b946104a1575b50823b1561049d5784519063d505accf60e01b8252338983015230888301528a604483015287356064830152608482015260643560a482015260843560c48201528a8160e48183875af1801561049357610466575b508490868551809481938252338b8301525afa90811561045c57899161042a575b506001820180921161041857036103cf57866101e8876101c181893090339060975416610c20565b5162461bcd60e51b8152928301526021908201527f5361666545524332303a207065726d697420646964206e6f74207375636365656044820152601960fa1b6064820152608490fd5b634e487b7160e01b8952601186528489fd5b90508381813d8311610455575b6104418183610bc3565b810103126104505751386103a7565b600080fd5b503d610437565b83513d8b823e3d90fd5b67ffffffffffffffff819b929b116104815784529884610386565b634e487b7160e01b8252604188528682fd5b85513d8d823e3d90fd5b8a80fd5b9093508581813d83116104c9575b6104b98183610bc3565b8101031261049d57519238610331565b503d6104af565b51630608786960e51b81528390fd5b8580fd5b83823461022657816003193601126102265760335490516001600160a01b039091168152602090f35b839034610226578260031936011261022657610526610a51565b602435916097549060ff8260a01c166105aa5750826101e894956105849260018060a01b039151838152828616907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a33091339116610c20565b7f0000000000000000000000000000000000000000000000000000000000000000610be5565b8551630608786960e51b8152fd5b909150346101f957826003193601126101f957825460ff8160081c1615918280936106de575b80156106c7575b1561066d575060ff19811660011784558161065c575b5061061560ff845460081c1661061081610b15565b610b15565b61061e33610a67565b610626575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a180f35b61ffff1916610101178355386105fb565b608490602085519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156105e55750600160ff8316146105e5565b50600160ff8316106105de565b9150346101f957826003193601126101f957606554336001600160a01b039091160361071b57826101e833610a67565b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b833461014f578060031936011261014f57610789610abd565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b909150346101f95760203660031901126101f95735908115158092036101f95760207f1ed408ff40af8e4c6a92f1a45718084bb1c8448f7e4617c83784a42c1be30d9591610823610abd565b51838152a16097805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b83823461022657816003193601126102265760209060ff60975460a01c1690519015158152f35b9150346101f95760203660031901126101f9576101e8913590518181527f8b80bd19aea7b735bc6d75db8d6adbe18b28c30d62b3555245eb67b2340caedc60203392a26108de8130337f0000000000000000000000000000000000000000000000000000000000000000610c20565b60975433906001600160a01b0316610be5565b909150346101f95760203660031901126101f9576101e891610911610abd565b609754905163a9059cbb60e01b602082015261dead6024820152913560448084019190915282526001600160a01b031661094a82610ba7565b610c75565b909150346101f95760203660031901126101f95761096b610a51565b91610974610abd565b6001600160a01b039283169283159081156109b9575b506109ac5750506bffffffffffffffffffffffff60a01b609754161760975580f35b5163a323cf1960e01b8152fd5b90506097541615153861098a565b925050346101f957826003193601126101f957610a0492506109e882610b75565b60058252640312e302e360dc1b60208301525191829182610a08565b0390f35b6020808252825181830181905290939260005b828110610a3d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610a1b565b600435906001600160a01b038216820361045057565b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b03163303610ad157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610b1c57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b6040810190811067ffffffffffffffff821117610b9157604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610b9157604052565b90601f8019910116810190811067ffffffffffffffff821117610b9157604052565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610c1e9161094a82610ba7565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610b9157610c1e926040525b60018060a01b031690604051610c8a81610b75565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610daf573d9167ffffffffffffffff8311610d9b5790610d0593929160405192610cf888601f19601f8401160185610bc3565b83523d868885013e610db9565b805191821591848315610d77575b505050905015610d205750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126102265782015190811515820361014f575080388084610d13565b634e487b7160e01b85526041600452602485fd5b90610d0592916060915b91929015610e1b5750815115610dcd575090565b3b15610dd65790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610e2e5750805190602001fd5b60405162461bcd60e51b8152908190610e4a9060048301610a08565b0390fdfea2646970667358221220a52339816e44a3bcdf6c4ef66de920189bce8d7e5d007d9422453e6dda19102364736f6c63430008150033000000000000000000000000499d11e0b6eac7c0593d8fb292dcbbf815fb29ae", + "nonce": "0x2", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": [ + "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x8129fc1c" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xc3c46", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c6343000815003300000000000000000000000041e44496afe9fe59004b9d166efa5a31245746b50000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000", + "nonce": "0x3", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd1f", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc576020905166657f7e1838fc4e8152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e302e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47578360011c91610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b66657f7e1838fc4e9080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea264697066735822122017eb40142a5e4933fb2a6a5c67317bb8abbe7e2093c6e863340b002363d7891364736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x4", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": [ + "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xb3a35", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c63430008150033000000000000000000000000e76193f2107bf7cc9c6a0de6af63d3c74b9363930000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x5", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionType": "CREATE", + "contractName": "PolygonEcosystemToken", + "contractAddress": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x3205fe", + "value": "0x0", + "data": "0x61016034620009e257601f620030c238819003918201601f19168301916001600160401b038311848410176200078357808492608094604052833981010312620009e2576200004e8162000a03565b906200005d6020820162000a03565b620000796060620000716040850162000a03565b930162000a03565b92604051916200008983620009e7565b601783527f506f6c79676f6e2045636f73797374656d20546f6b656e0000000000000000009485602085015260405195620000c487620009e7565b601787526020870152604051620000db81620009e7565b60038152621413d360ea1b602082015260405196620000fa88620009e7565b60018852603160f81b60208901528051906001600160401b038211620007835760035490600182811c92168015620009d7575b6020831014620008a95781601f84931162000965575b50602090601f8311600114620008d657600092620008ca575b50508160011b916000199060031b1c1916176003555b8051906001600160401b038211620007835760045490600182811c92168015620008bf575b6020831014620008a95781601f84931162000834575b50602090601f8311600114620007a55760009262000799575b50508160011b916000199060031b1c1916176004555b620001e78462000a18565b94610120958652620001f98762000bdc565b9461014095865260208151910120968760e0526020815191012092610100978489524660a0526040519460208601917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8352604087015260608601524660808601523060a086015260a0855260c085019480861060018060401b03871117620007835760408690525190206080523060c052678ac7230489e80000600b556001600160a01b038516159384801562000771575b80156200075f575b80156200074d575b6200073e57506001600160a01b0382166000908152600080516020620030628339815191526020526040902054620004b593926200043e929091620003be919060ff1615620006f1575b60008052600a602052620003446001600160a01b0384167f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e362000d94565b506001600160a01b038116600090815260008051602062003082833981519152602052604090205460ff161562000693575b600080516020620030a2833981519152600052600a6020526001600160a01b03167f5da2288e7399ef58b3daddbf3afade00d52d6de048c7a8bef231c102a03b7b8062000d94565b506001600160a01b03811660009081527f9c3cc61ff729e549a457fdfb4ddb7d94f542eb7568a065fdcf3814d99dec17a460205260409020547f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a9060ff161562000649575b600052600a60205260018060a01b0316604060002062000d94565b506001600160a01b031660008181527f9329b3c9f0d3acb42b7f4f684aec754024a8d55b89df18cc71b76f6ae510cd3960205260409020547fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb79060ff161562000607575b600052600a602052604060002062000d94565b50620005c2576002546b204fce5e3e2502611000000091828201809211620005ac576002919091556001600160a01b031660008181526020818152604080832080548601905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a342600c557f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c74859132602060405160018152a1600160ff19600d541617600d5560405191612220938462000e22853960805184611d30015260a05184611dfc015260c05184611cfa015260e05184611d7f01525183611da5015251826109420152518161096c0152f35b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b8060005260096020526040600020826000526020526040600020600160ff1982541617905533828260008051602062003042833981519152600080a4620004a2565b60008181526009602090815260408083206001600160a01b03861680855292528220805460ff1916600117905533918390600080516020620030428339815191529080a462000423565b6001600160a01b03811660008181526000805160206200308283398151915260205260408120805460ff19166001179055339190600080516020620030a283398151915290600080516020620030428339815191529080a462000376565b6001600160a01b03831660008181526000805160206200306283398151915260205260408120805460ff19166001179055339190600080516020620030428339815191528180a462000306565b63e6c4247b60e01b8152600490fd5b506001600160a01b03841615620002bc565b506001600160a01b03831615620002b4565b506001600160a01b03821615620002ac565b634e487b7160e01b600052604160045260246000fd5b015190503880620001c6565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f198416851062000818576001945083601f19811610620007fe575b505050811b01600455620001dc565b015160001960f88460031b161c19169055388080620007ef565b81810151835560209485019460019093019290910190620007d2565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810191602085106200089e575b90601f859493920160051c01905b8181106200088e5750620001ad565b600081558493506001016200087f565b909150819062000871565b634e487b7160e01b600052602260045260246000fd5b91607f169162000197565b0151905038806200015c565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f198416851062000949576001945083601f198116106200092f575b505050811b0160035562000172565b015160001960f88460031b161c1916905538808062000920565b8181015183556020948501946001909301929091019062000903565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810160208510620009cf575b90849392915b601f830160051c82018110620009bf57505062000143565b60008155859450600101620009a7565b5080620009a1565b91607f16916200012d565b600080fd5b604081019081106001600160401b038211176200078357604052565b51906001600160a01b0382168203620009e257565b8051602091908281101562000ab7575090601f82511162000a56578082519201519080831062000a4757501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000a9d575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000a79565b6001600160401b03811162000783576005928354926001938481811c9116801562000bd1575b83821014620008a957601f811162000b9a575b5081601f841160011462000b30575092829391839260009462000b24575b50501b916000199060031b1c191617905560ff90565b01519250388062000b0e565b919083601f1981168760005284600020946000905b8883831062000b7f575050501062000b65575b505050811b01905560ff90565b015160001960f88460031b161c1916905538808062000b58565b85870151885590960195948501948793509081019062000b45565b8560005284601f846000209201871c820191601f8601881c015b82811062000bc457505062000af0565b6000815501859062000bb4565b90607f169062000add565b80516020908181101562000c6a5750601f82511162000c09578082519201519080831062000a4757501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000c50575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000c2c565b906001600160401b0382116200078357600654926001938481811c9116801562000d89575b83821014620008a957601f811162000d4f575b5081601f841160011462000ce3575092829391839260009462000cd7575b50501b916000199060031b1c19161760065560ff90565b01519250388062000cc0565b919083601f198116600660005284600020946000905b8883831062000d34575050501062000d1a575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000d0c565b85870151885590960195948501948793509081019062000cf9565b600660005284601f84600020920160051c820191601f860160051c015b82811062000d7c57505062000ca2565b6000815501859062000d6c565b90607f169062000c8f565b9190600183016000908282528060205260408220541560001462000e1b578454946801000000000000000086101562000e07576001860180825586101562000df357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b5092505056fe608060408181526004908136101561001657600080fd5b600092833560e01c90816301ffc9a7146113db5750806306fdde0314611301578063095ea7b3146112d75780630d8e6e2c1461129257806318160ddd1461127357806323b872dd146111bc578063248a9ca3146111915780632e285051146111565780632f2ff15d1461109c578063313ce567146110805780633644e5151461106357806336568abe14610fd15780633950935114610f95578063407c48b414610f7157806340c10f1914610c81578063586fc5b514610c625780636afdd85014610c38578063705e6a5b14610ab757806370a0823114610a805780637ecebe0014610a4857806384b0196e1461092c5780638e141c75146108f15780638eb66d6a146108d25780639010d07c1461089157806391d148541461084a57806395d89b411461075d578063a217fddf14610742578063a457c2d7146106ac578063a9059cbb1461067b578063ca15c87314610653578063d505accf1461049d578063d547741f14610460578063dd62ed3e1461042b578063fadd1a1b146103ec5763ff740c31146101a557600080fd5b346103e8576020806003193601126103e4578235927f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a80865260098352838620338752835260ff84872054161561022f575050907fed4079ad973dc05ae698be821fb6958dc4edd78aa21dd6a9f8552e46037bacfd9183600b54918351928352820152a1600b5580f35b83908661023b33611a51565b9183519061024882611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610353575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190611449565b010360288101855201836116b2565b5193849362461bcd60e51b8552840152602483019061146c565b0390fd5b606485878087519262461bcd60e51b845283015260248201526000805160206121cb8339815191526044820152fd5b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a6103838587611a2a565b53881c92801561039857600019019190610279565b634e487b7160e01b825260118952602482fd5b634e487b7160e01b835260328a52602483fd5b634e487b7160e01b815260328852602490fd5b634e487b7160e01b815260328752602490fd5b8380fd5b8280fd5b838234610427578160031936011261042757602090517fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb78152f35b5080fd5b83823461042757806003193601126104275760209061045961044b611491565b6104536114ac565b9061216e565b9051908152f35b50346103e857806003193601126103e85761049a913561049560016104836114ac565b938387526009602052862001546114c2565b6116d4565b80f35b509190346104275760e0366003190112610427576104b9611491565b6104c16114ac565b906044359260643560843560ff8116810361064f5781421161060c5760018060a01b0390818516928389526007602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176105f9578b525190206105a49161059c91610576611cf7565b908c519161190160f01b83526002830152602282015260c43591604260a4359220611c68565b919091611b4e565b16036105b6575061049a939450611928565b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b634e487b7160e01b8b526041875260248bfd5b875162461bcd60e51b8152602081850152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b8680fd5b5090346103e85760203660031901126103e8576020928291358152600a845220549051908152f35b8382346104275780600319360112610427576020906106a561069b611491565b60243590336117ba565b5160018152f35b50913461073f578260031936011261073f57506106c7611491565b90602435906106d6833361216e565b908282106106ee576020856106a58585038733611928565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b83823461042757816003193601126104275751908152602090f35b50346103e857826003193601126103e857805183819490845461077f8161175d565b918285526020966001928884821691826000146108205750506001146107c5575b85886107c1896107b2848a03856116b2565b5192828493845283019061146c565b0390f35b815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061080857505050820101816107b26107c1386107a0565b8054848a0186015288955087949093019281016107ee565b60ff19168882015294151560051b870190940194508593506107b292506107c191503890506107a0565b5090346103e857816003193601126103e8578160209360ff9261086b6114ac565b90358252600986528282206001600160a01b039091168252855220549151911615158152f35b5090346103e857816003193601126103e8576020926108bc91358152600a8452826024359120611fdc565b905491519160018060a01b039160031b1c168152f35b838234610427578160031936011261042757602090600b549051908152f35b838234610427578160031936011261042757602090517f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a8152f35b50346103e857826003193601126103e8576109667f0000000000000000000000000000000000000000000000000000000000000000611e22565b926109907f0000000000000000000000000000000000000000000000000000000000000000611f1f565b908251926020928385019585871067ffffffffffffffff881117610a35575092806109eb8388966109de998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b019061146c565b91898303908a015261146c565b924660608801523060808801528460a088015286840360c088015251928381520193925b828110610a1e57505050500390f35b835185528695509381019392810192600101610a0f565b634e487b7160e01b845260419052602483fd5b8382346104275760203660031901126104275760209181906001600160a01b03610a70611491565b1681526007845220549051908152f35b8382346104275760203660031901126104275760209181906001600160a01b03610aa8611491565b16815280845220549051908152f35b50346103e857602090816003193601126103e457823592831515809403610c34577fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb780865260098452828620338752845260ff838720541615610b4f575050907f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c748591329151838152a160ff8019600d5416911617600d5580f35b85610b5c93929333611a51565b91835190610b6982611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610bef575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a610c1f8587611a2a565b53881c92801561039857600019019190610b9a565b8480fd5b838234610427578160031936011261042757602090516e22d473030f116ddee9f6b43ac78ba38152f35b838234610427578160031936011261042757602090600c549051908152f35b5090346103e857816003193601126103e857610c9b611491565b906024928335917f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c99384875260209460098652838820338952865260ff848920541615610dec5750600c5480420390428211610dda57600b54808302928304149042141715610dc857808511610dad575042600c556001600160a01b0316948515610d6d57505091818593610d537fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254611797565b60025585855284835280852082815401905551908152a380f35b601f9085606494519362461bcd60e51b85528401528201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b828588604493875193635bdd08f560e01b8552840152820152fd5b634e487b7160e01b8852601183528688fd5b634e487b7160e01b8952601184528789fd5b82878588938b610dfb33611a51565b91835190610e0882611696565b60428252878201926060368537825115610f5f5760308453825190600191821015610f4d5790607860218501536041915b818311610ee457505050610eb657604861032095938593610e9e93610e8f975197889376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8d8601526102ce8d8251928391603789019101611449565b010360288101865201846116b2565b5194859462461bcd60e51b865285015283019061146c565b60648688878188519362461bcd60e51b85528401528201526000805160206121cb8339815191526044820152fd5b909192600f81166010811015610f3b576f181899199a1a9b1b9c1cb0b131b232b360811b901a610f148587611a2a565b53891c928015610f2957600019019190610e39565b634e487b7160e01b825260118a528882fd5b634e487b7160e01b835260328b528983fd5b634e487b7160e01b8152603289528790fd5b634e487b7160e01b8152603288528690fd5b83823461042757816003193601126104275760209060ff600d541690519015158152f35b8382346104275780600319360112610427576020906106a5610fb5611491565b610fca602435610fc5833361216e565b611797565b9033611928565b50919034610427578260031936011261042757610fec6114ac565b90336001600160a01b03831603611008579061049a91356116d4565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b838234610427578160031936011261042757602090610459611cf7565b8382346104275781600319360112610427576020905160128152f35b50346103e857806003193601126103e857611109913590600a6110bd6114ac565b92808652602090600982526110d7600185892001546114c2565b808752600982528387206001600160a01b039095168088529482528387205460ff161561110d575b8652528320611ff4565b5080f35b808752600982528387208588528252838720805460ff191660011790553385827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8a80a46110ff565b838234610427578160031936011261042757602090517f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c98152f35b5090346103e85760203660031901126103e85781602093600192358152600985522001549051908152f35b50913461073f57606036600319011261073f57506111d8611491565b6111e06114ac565b90604435926111ef338361216e565b9060018201611207575b6020866106a58787876117ba565b8482106112305750918391611225602096956106a595033383611928565b9193948193506111f9565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b8382346104275781600319360112610427576020906002549051908152f35b83823461042757816003193601126104275780516107c1916112b382611664565b60058252640312e302e360dc1b60208301525191829160208352602083019061146c565b8382346104275780600319360112610427576020906106a56112f7611491565b6024359033611928565b50823461073f578060031936011261073f5781519182826003546113248161175d565b908184526020956001918783821691826000146113b4575050600114611358575b5050506107c192916107b29103856116b2565b9190869350600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061139c57505050820101816107b26107c1611345565b8054848a018601528895508794909301928101611383565b60ff19168782015293151560051b860190930193508492506107b291506107c19050611345565b849084346103e85760203660031901126103e8573563ffffffff60e01b81168091036103e85760209250635a05180f60e01b811490811561141e575b5015158152f35b637965db0b60e01b811491508115611438575b5083611417565b6301ffc9a760e01b14905083611431565b60005b83811061145c5750506000910152565b818101518382015260200161144c565b9060209161148581518092818552858086019101611449565b601f01601f1916010190565b600435906001600160a01b03821682036114a757565b600080fd5b602435906001600160a01b03821682036114a757565b60009080825260209060098252604092838120338252835260ff8482205416156114ec5750505050565b6114f533611a51565b9184519061150282611696565b6042825284820192606036853782511561165057603084538251906001918210156116505790607860218501536041915b8183116115e2575050506115b257604861032093869361159693611587985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526102ce815180928c603789019101611449565b010360288101875201856116b2565b5192839262461bcd60e51b84526004840152602483019061146c565b60648486519062461bcd60e51b825280600483015260248201526000805160206121cb8339815191526044820152fd5b909192600f8116601081101561163c576f181899199a1a9b1b9c1cb0b131b232b360811b901a6116128587611a2a565b5360041c92801561162857600019019190611533565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b6040810190811067ffffffffffffffff82111761168057604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761168057604052565b90601f8019910116810190811067ffffffffffffffff82111761168057604052565b9060406117129260009080825260096020528282209360018060a01b03169384835260205260ff8383205416611715575b8152600a6020522061207e565b50565b808252600960205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4611705565b90600182811c9216801561178d575b602083101461177757565b634e487b7160e01b600052602260045260246000fd5b91607f169161176c565b919082018092116117a457565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039081169182156118d557169182156118845760008281528060205260408120549180831061183057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b039081169182156119d957169182156119895760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b908151811015611a3b570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906060820182811067ffffffffffffffff82111761168057604052602a8252602082016040368237825115611a3b57603090538151600190811015611a3b57607860218401536029905b808211611ae0575050611aae5790565b606460405162461bcd60e51b815260206004820152602060248201526000805160206121cb8339815191526044820152fd5b9091600f81166010811015611b39576f181899199a1a9b1b9c1cb0b131b232b360811b901a611b0f8486611a2a565b5360041c918015611b24576000190190611a9e565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b6005811015611c525780611b5f5750565b60018103611bac5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b60028103611bf95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b600314611c0257565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611ceb5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15611cde5781516001600160a01b03811615611cd8579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611df9575b15611d52577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116805760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611d29565b60ff8114611e605760ff811690601f8211611e4e5760405191611e4483611664565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600554816000611e738361175d565b808352602093600190818116908115611eff5750600114611ea0575b5050611e9d925003826116b2565b90565b9093915060056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0936000915b818310611ee7575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611ecf565b915050611e9d94925060ff191682840152151560051b8201013880611e8f565b60ff8114611f415760ff811690601f8211611e4e5760405191611e4483611664565b50604051600654816000611f548361175d565b808352602093600190818116908115611eff5750600114611f7d575050611e9d925003826116b2565b9093915060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f936000915b818310611fc4575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611fac565b8054821015611a3b5760005260206000200190600090565b919060018301600090828252806020526040822054156000146120785784549468010000000000000000861015612064578361205461203d886001604098999a01855584611fdc565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b9060018201906000928184528260205260408420549081151560001461216757600019918083018181116121535782549084820191821161213f5780820361210a575b505050805480156120f6578201916120d98383611fdc565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b61212a61211a61203d9386611fdc565b90549060031b1c92839286611fdc565b905586528460205260408620553880806120c1565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b6001600160a01b0391821691906e22d473030f116ddee9f6b43ac78ba38314806121be575b6121b55716600052600160205260406000209060005260205260406000205490565b50505060001990565b5060ff600d541661219356fe537472696e67733a20686578206c656e67746820696e73756666696369656e74a2646970667358221220bc00ea21ededc0ba595612cd336a06b15f2d9b025cc785af2515c67578bb1e3964736f6c634300081500332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b953e6113870cd26d8364d55096ba7b5671bc963ed99958a5e20ba9400d063705573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c90000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f6870000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x6", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x0e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "gas": "0x3779d", + "value": "0x0", + "data": "0x485cc9550000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x7", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x13007", + "value": "0x0", + "data": "0x2398344c0000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c", + "nonce": "0x8", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x128bd", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x9", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionIndex": "0x1", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x1a00ad", + "gasUsed": "0x64874", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "logs": [ + { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000100000000000000000000000000000000000004000000000000000000000000100000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000080000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionIndex": "0x2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "cumulativeGasUsed": "0x1a7033", + "gasUsed": "0x6f86", + "contractAddress": null, + "logs": [ + { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000100000000000100000000000000000000000000000000000004000000000000000000000000100000000001000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000004000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionIndex": "0x3", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x27ee54", + "gasUsed": "0xd7e21", + "contractAddress": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "logs": [ + { + "address": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionIndex": "0x3", + "logIndex": "0x3", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x315897", + "gasUsed": "0x96a43", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "logs": [ + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000041e44496afe9fe59004b9d166efa5a31245746b5" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x7", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000002000000000000000000000000400000000000000000800000000000000000000000000000000000000100000000000000000000000000000000000004000000000000000000000000010002000001000000000000000000008000000000000000020002000000000000800800000000800000000000000000000000400000000000000000000000000000000000000000000080000080000000800000000000000000000000000000000400000000000000000000000000000000000000000020000000000000000000040000000000000400000000000000000020000000000000000000000000000000000000000000000000000000002000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionIndex": "0x5", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x4532fc", + "gasUsed": "0x13da65", + "contractAddress": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "logs": [ + { + "address": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionIndex": "0x5", + "logIndex": "0x8", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x4dd6ba", + "gasUsed": "0x8a3be", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "logs": [ + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000e76193f2107bf7cc9c6a0de6af63d3c74b936393" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "logIndex": "0x9", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "logIndex": "0xa", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000002000000000000000000000000000000000100000000000000000000000000000000000000800010000000040000040000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x745494", + "gasUsed": "0x267dda", + "contractAddress": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "logs": [ + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xb", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c9", + "0x0000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xc", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xd", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0xbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb7", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xe", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f687" + ], + "data": "0x0000000000000000000000000000000000000000204fce5e3e25026110000000", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c74859132" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0x10", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00010004000000000000000010000008000400000000000000000000000004000000100000000100000000000100000000000000000000000000000000000004000000000000000000000008000000000008000000000000000000000000000000020000020000044000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000080000000004000000000020000500010000000000000000000000000000000001200000000010000000402000000000000000000000000000004000000000100001000000020000000000004000002000000000000000000000000000000000000000000000040", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "cumulativeGasUsed": "0x76b37f", + "gasUsed": "0x25eeb", + "contractAddress": null, + "logs": [ + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "0x0000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f687" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x11", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x12", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x13", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000001800000000004000000000000000100000000000000000000000000000000000000000000200000000000000000000000000000000000000001000000000000000000000000000000020000020000044000000000000800000000000010000000000000040000400000000000000000000000000000000000000000000080000000000000000000020000000000500010000000000400000000000000000000000000000000010000000400000000000000000000040000000000000000000000001000000020000010000004000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "transactionIndex": "0x9", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "cumulativeGasUsed": "0x778361", + "gasUsed": "0xcfe2", + "contractAddress": null, + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionIndex": "0xa", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "cumulativeGasUsed": "0x785a37", + "gasUsed": "0xd6d6", + "contractAddress": null, + "logs": [ + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionIndex": "0xa", + "logIndex": "0x14", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000000000000000000000000000000000004000000000000000000000000010000000000000000000000000000008000000000020000000000000000000000800000000800000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000020000000000000000000000000000000000000000000000010000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1696415816, + "chain": 5, + "multi": false, + "commit": "40fff90" +} \ No newline at end of file diff --git a/broadcast/Deploy.s.sol/5/run-latest.json b/broadcast/Deploy.s.sol/5/run-latest.json new file mode 100644 index 0000000..96fc275 --- /dev/null +++ b/broadcast/Deploy.s.sol/5/run-latest.json @@ -0,0 +1,685 @@ +{ + "transactions": [ + { + "hash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionType": "CREATE", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x82a76", + "value": "0x0", + "data": "0x6080806040523461005b5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361060890816100618239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90848263204e1c7a146104535750508063715018a6146103f95780637eff275e1461037f5780638da5cb5b146103575780639623609d146102415783816399a88ec4146101b557508063f2fde38b146100e95763f3b7dead1461007f57600080fd5b346100e55760203660031901126100e5576001600160a01b039083908190836100a6610492565b86516303e1469160e61b815291165afa926100bf610583565b93156100e257506100da8360208080965183010191016105b3565b169051908152f35b80fd5b8280fd5b50346100e55760203660031901126100e557610103610492565b9061010c61052b565b6001600160a01b03918216928315610163575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b9290503461023d578060031936011261023d576101d0610492565b6101d86104ad565b906101e161052b565b6001600160a01b03908116803b156102395785928360249286519788958694631b2ce7f360e11b865216908401525af190811561023057506102205750f35b610229906104c3565b6100e25780f35b513d84823e3d90fd5b8580fd5b5050fd5b508290606036600319011261035357610258610492565b926102616104ad565b9160443567ffffffffffffffff811161034f573660238201121561034f57808201359161028d8361050f565b9261029a855194856104ed565b808452602092366024838301011161034b57818892602486930183880137850101526102c461052b565b6001600160a01b0396871696873b156103475784519563278f794360e11b87521690850152826024850152815191826044860152855b8381106103335750505082849581606481858983819884010152601f8019910116810103019134905af190811561023057506102205750f35b8181018301518682016064015282016102fa565b8680fd5b8780fd5b8480fd5b5080fd5b505034610353578160031936011261035357905490516001600160a01b039091168152602090f35b5090346100e557806003193601126100e5578261039a610492565b6103a26104ad565b6103aa61052b565b6001600160a01b0391821690813b156103f55783602492865197889586946308f2839760e41b865216908401525af190811561023057506103e9575080f35b6103f2906104c3565b80f35b8380fd5b83346100e257806003193601126100e25761041261052b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b91509134610353576020366003190112610353576001600160a01b03928291908461047c610492565b635c60da1b60e01b8352165afa926100bf610583565b600435906001600160a01b03821682036104a857565b600080fd5b602435906001600160a01b03821682036104a857565b67ffffffffffffffff81116104d757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176104d757604052565b67ffffffffffffffff81116104d757601f01601f191660200190565b6000546001600160a01b0316330361053f57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3d156105ae573d906105948261050f565b916105a260405193846104ed565b82523d6000602084013e565b606090565b908160209103126104a857516001600160a01b03811681036104a8579056fea264697066735822122032e3584933010050ea11a6417c7659d2da4700f96fd96823f340bba5a8636d7364736f6c63430008150033", + "nonce": "0x0", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionType": "CALL", + "contractName": "ProxyAdmin", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "function": "transferOwnership(address)", + "arguments": [ + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x9ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "gas": "0x9a0a", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x1", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionType": "CREATE", + "contractName": "PolygonMigration", + "contractAddress": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "function": null, + "arguments": [ + "0x499d11E0b6eAC7c0593d8Fb292DCBbF815Fb29Ae" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x11890e", + "value": "0x0", + "data": "0x60a03461014257601f610fe238819003918201601f19168301916001600160401b038311848410176101475780849260209460405283398101031261014257516001600160a01b038116908190036101425780156101305760805260005460ff8160081c166100db5760ff808216036100a0575b604051610e84908161015e82396080518181816101c4015281816102680152818161058601526108ba0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610073565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b60405163e6c4247b60e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040908082526004918236101561001757600080fd5b600092833560e01c9283630d8e6e2c146109c7575082632398344c1461094f57826342966c68146108f1578263454b06081461086f5782634b052e7b146108485782634c0f54ea146107d7578263715018a61461077057826379ba5097146106eb5782638129fc1c146105b8578263899d25901461050c5782638da5cb5b146104e3578263a0ae9ff014610297578263b6b0b09714610253578263b8c97ded1461022a578263e30c3978146101fd578263efeff0c11461015257505063f2fde38b146100e257600080fd5b3461014f57602036600319011261014f576100fb610a51565b610103610abd565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b909150346101f95760203660031901126101f9578035916097549160ff8360a01c166101eb5750826101e893926101c1925182815233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a3309033906001600160a01b0316610c20565b337f0000000000000000000000000000000000000000000000000000000000000000610be5565b80f35b9051630608786960e51b8152fd5b8280fd5b83823461022657816003193601126102265760655490516001600160a01b039091168152602090f35b5080fd5b83823461022657816003193601126102265760975490516001600160a01b039091168152602090f35b838234610226578160031936011261022657517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9150346101f95760a03660031901126101f957813591602460443560ff81168091036104df576097549360ff8560a01c166104d05780519186835260209233907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b853392a38151623f675f60e91b80825233878301526001600160a01b039791929188169185848881865afa938415610493578b946104a1575b50823b1561049d5784519063d505accf60e01b8252338983015230888301528a604483015287356064830152608482015260643560a482015260843560c48201528a8160e48183875af1801561049357610466575b508490868551809481938252338b8301525afa90811561045c57899161042a575b506001820180921161041857036103cf57866101e8876101c181893090339060975416610c20565b5162461bcd60e51b8152928301526021908201527f5361666545524332303a207065726d697420646964206e6f74207375636365656044820152601960fa1b6064820152608490fd5b634e487b7160e01b8952601186528489fd5b90508381813d8311610455575b6104418183610bc3565b810103126104505751386103a7565b600080fd5b503d610437565b83513d8b823e3d90fd5b67ffffffffffffffff819b929b116104815784529884610386565b634e487b7160e01b8252604188528682fd5b85513d8d823e3d90fd5b8a80fd5b9093508581813d83116104c9575b6104b98183610bc3565b8101031261049d57519238610331565b503d6104af565b51630608786960e51b81528390fd5b8580fd5b83823461022657816003193601126102265760335490516001600160a01b039091168152602090f35b839034610226578260031936011261022657610526610a51565b602435916097549060ff8260a01c166105aa5750826101e894956105849260018060a01b039151838152828616907f629178b8fee085046b0ced2d5b2fff5e4d54196b555e978250009b74af28739b60203392a33091339116610c20565b7f0000000000000000000000000000000000000000000000000000000000000000610be5565b8551630608786960e51b8152fd5b909150346101f957826003193601126101f957825460ff8160081c1615918280936106de575b80156106c7575b1561066d575060ff19811660011784558161065c575b5061061560ff845460081c1661061081610b15565b610b15565b61061e33610a67565b610626575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a180f35b61ffff1916610101178355386105fb565b608490602085519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156105e55750600160ff8316146105e5565b50600160ff8316106105de565b9150346101f957826003193601126101f957606554336001600160a01b039091160361071b57826101e833610a67565b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b833461014f578060031936011261014f57610789610abd565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b909150346101f95760203660031901126101f95735908115158092036101f95760207f1ed408ff40af8e4c6a92f1a45718084bb1c8448f7e4617c83784a42c1be30d9591610823610abd565b51838152a16097805460ff60a01b191660a09290921b60ff60a01b1691909117905580f35b83823461022657816003193601126102265760209060ff60975460a01c1690519015158152f35b9150346101f95760203660031901126101f9576101e8913590518181527f8b80bd19aea7b735bc6d75db8d6adbe18b28c30d62b3555245eb67b2340caedc60203392a26108de8130337f0000000000000000000000000000000000000000000000000000000000000000610c20565b60975433906001600160a01b0316610be5565b909150346101f95760203660031901126101f9576101e891610911610abd565b609754905163a9059cbb60e01b602082015261dead6024820152913560448084019190915282526001600160a01b031661094a82610ba7565b610c75565b909150346101f95760203660031901126101f95761096b610a51565b91610974610abd565b6001600160a01b039283169283159081156109b9575b506109ac5750506bffffffffffffffffffffffff60a01b609754161760975580f35b5163a323cf1960e01b8152fd5b90506097541615153861098a565b925050346101f957826003193601126101f957610a0492506109e882610b75565b60058252640312e302e360dc1b60208301525191829182610a08565b0390f35b6020808252825181830181905290939260005b828110610a3d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610a1b565b600435906001600160a01b038216820361045057565b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b03163303610ad157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610b1c57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b6040810190811067ffffffffffffffff821117610b9157604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610b9157604052565b90601f8019910116810190811067ffffffffffffffff821117610b9157604052565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610c1e9161094a82610ba7565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610b9157610c1e926040525b60018060a01b031690604051610c8a81610b75565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610daf573d9167ffffffffffffffff8311610d9b5790610d0593929160405192610cf888601f19601f8401160185610bc3565b83523d868885013e610db9565b805191821591848315610d77575b505050905015610d205750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126102265782015190811515820361014f575080388084610d13565b634e487b7160e01b85526041600452602485fd5b90610d0592916060915b91929015610e1b5750815115610dcd575090565b3b15610dd65790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610e2e5750805190602001fd5b60405162461bcd60e51b8152908190610e4a9060048301610a08565b0390fdfea2646970667358221220a52339816e44a3bcdf6c4ef66de920189bce8d7e5d007d9422453e6dda19102364736f6c63430008150033000000000000000000000000499d11e0b6eac7c0593d8fb292dcbbf815fb29ae", + "nonce": "0x2", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": [ + "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x8129fc1c" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xc3c46", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c6343000815003300000000000000000000000041e44496afe9fe59004b9d166efa5a31245746b50000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000", + "nonce": "0x3", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd1f", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc576020905166657f7e1838fc4e8152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e302e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47578360011c91610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b66657f7e1838fc4e9080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea264697066735822122017eb40142a5e4933fb2a6a5c67317bb8abbe7e2093c6e863340b002363d7891364736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x4", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionType": "CREATE", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": [ + "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0xb3a35", + "value": "0x0", + "data": "0x60406080815262000c628038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a35750161790555161080b9081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b602081519101f35b63278f794360e11b8103610070575061006b61058f565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b61023c565b635c60da1b60e01b036100b35761006b610275565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c6103ed565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b610244610620565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b90565b61027d610620565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f610620565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b6103f5610620565b366004116102c1576001600160a01b0361040e366102c6565b166040519061041c826101e2565b60008252803b156104b3576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906104ab575b610491575b505060405161048a816101e2565b6000815290565b6104a39161049d610627565b91610670565b50388061047c565b506000610477565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b803b156104b3576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115801590610587575b610578575050565b6105849161049d610627565b50565b506001610570565b366004116102c15760403660031901126102c1576105ab6102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c1578160040135906105d8826102e8565b916105e6604051938461021a565b80835236602482860101116102c1576020816000926024610618970183870137840101526001600160a01b031661050e565b610272610304565b346102c157565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209d6e5ae9003ddc70556a4280a5cdca38fc94def5ed3ecb909c66e892d6c6550364736f6c63430008150033000000000000000000000000e76193f2107bf7cc9c6a0de6af63d3c74b9363930000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x5", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionType": "CREATE", + "contractName": "PolygonEcosystemToken", + "contractAddress": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x3205fe", + "value": "0x0", + "data": "0x61016034620009e257601f620030c238819003918201601f19168301916001600160401b038311848410176200078357808492608094604052833981010312620009e2576200004e8162000a03565b906200005d6020820162000a03565b620000796060620000716040850162000a03565b930162000a03565b92604051916200008983620009e7565b601783527f506f6c79676f6e2045636f73797374656d20546f6b656e0000000000000000009485602085015260405195620000c487620009e7565b601787526020870152604051620000db81620009e7565b60038152621413d360ea1b602082015260405196620000fa88620009e7565b60018852603160f81b60208901528051906001600160401b038211620007835760035490600182811c92168015620009d7575b6020831014620008a95781601f84931162000965575b50602090601f8311600114620008d657600092620008ca575b50508160011b916000199060031b1c1916176003555b8051906001600160401b038211620007835760045490600182811c92168015620008bf575b6020831014620008a95781601f84931162000834575b50602090601f8311600114620007a55760009262000799575b50508160011b916000199060031b1c1916176004555b620001e78462000a18565b94610120958652620001f98762000bdc565b9461014095865260208151910120968760e0526020815191012092610100978489524660a0526040519460208601917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8352604087015260608601524660808601523060a086015260a0855260c085019480861060018060401b03871117620007835760408690525190206080523060c052678ac7230489e80000600b556001600160a01b038516159384801562000771575b80156200075f575b80156200074d575b6200073e57506001600160a01b0382166000908152600080516020620030628339815191526020526040902054620004b593926200043e929091620003be919060ff1615620006f1575b60008052600a602052620003446001600160a01b0384167f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e362000d94565b506001600160a01b038116600090815260008051602062003082833981519152602052604090205460ff161562000693575b600080516020620030a2833981519152600052600a6020526001600160a01b03167f5da2288e7399ef58b3daddbf3afade00d52d6de048c7a8bef231c102a03b7b8062000d94565b506001600160a01b03811660009081527f9c3cc61ff729e549a457fdfb4ddb7d94f542eb7568a065fdcf3814d99dec17a460205260409020547f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a9060ff161562000649575b600052600a60205260018060a01b0316604060002062000d94565b506001600160a01b031660008181527f9329b3c9f0d3acb42b7f4f684aec754024a8d55b89df18cc71b76f6ae510cd3960205260409020547fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb79060ff161562000607575b600052600a602052604060002062000d94565b50620005c2576002546b204fce5e3e2502611000000091828201809211620005ac576002919091556001600160a01b031660008181526020818152604080832080548601905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a342600c557f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c74859132602060405160018152a1600160ff19600d541617600d5560405191612220938462000e22853960805184611d30015260a05184611dfc015260c05184611cfa015260e05184611d7f01525183611da5015251826109420152518161096c0152f35b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b8060005260096020526040600020826000526020526040600020600160ff1982541617905533828260008051602062003042833981519152600080a4620004a2565b60008181526009602090815260408083206001600160a01b03861680855292528220805460ff1916600117905533918390600080516020620030428339815191529080a462000423565b6001600160a01b03811660008181526000805160206200308283398151915260205260408120805460ff19166001179055339190600080516020620030a283398151915290600080516020620030428339815191529080a462000376565b6001600160a01b03831660008181526000805160206200306283398151915260205260408120805460ff19166001179055339190600080516020620030428339815191528180a462000306565b63e6c4247b60e01b8152600490fd5b506001600160a01b03841615620002bc565b506001600160a01b03831615620002b4565b506001600160a01b03821615620002ac565b634e487b7160e01b600052604160045260246000fd5b015190503880620001c6565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f198416851062000818576001945083601f19811610620007fe575b505050811b01600455620001dc565b015160001960f88460031b161c19169055388080620007ef565b81810151835560209485019460019093019290910190620007d2565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810191602085106200089e575b90601f859493920160051c01905b8181106200088e5750620001ad565b600081558493506001016200087f565b909150819062000871565b634e487b7160e01b600052602260045260246000fd5b91607f169162000197565b0151905038806200015c565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f198416851062000949576001945083601f198116106200092f575b505050811b0160035562000172565b015160001960f88460031b161c1916905538808062000920565b8181015183556020948501946001909301929091019062000903565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810160208510620009cf575b90849392915b601f830160051c82018110620009bf57505062000143565b60008155859450600101620009a7565b5080620009a1565b91607f16916200012d565b600080fd5b604081019081106001600160401b038211176200078357604052565b51906001600160a01b0382168203620009e257565b8051602091908281101562000ab7575090601f82511162000a56578082519201519080831062000a4757501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000a9d575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000a79565b6001600160401b03811162000783576005928354926001938481811c9116801562000bd1575b83821014620008a957601f811162000b9a575b5081601f841160011462000b30575092829391839260009462000b24575b50501b916000199060031b1c191617905560ff90565b01519250388062000b0e565b919083601f1981168760005284600020946000905b8883831062000b7f575050501062000b65575b505050811b01905560ff90565b015160001960f88460031b161c1916905538808062000b58565b85870151885590960195948501948793509081019062000b45565b8560005284601f846000209201871c820191601f8601881c015b82811062000bc457505062000af0565b6000815501859062000bb4565b90607f169062000add565b80516020908181101562000c6a5750601f82511162000c09578082519201519080831062000a4757501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000c50575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000c2c565b906001600160401b0382116200078357600654926001938481811c9116801562000d89575b83821014620008a957601f811162000d4f575b5081601f841160011462000ce3575092829391839260009462000cd7575b50501b916000199060031b1c19161760065560ff90565b01519250388062000cc0565b919083601f198116600660005284600020946000905b8883831062000d34575050501062000d1a575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000d0c565b85870151885590960195948501948793509081019062000cf9565b600660005284601f84600020920160051c820191601f860160051c015b82811062000d7c57505062000ca2565b6000815501859062000d6c565b90607f169062000c8f565b9190600183016000908282528060205260408220541560001462000e1b578454946801000000000000000086101562000e07576001860180825586101562000df357836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b5092505056fe608060408181526004908136101561001657600080fd5b600092833560e01c90816301ffc9a7146113db5750806306fdde0314611301578063095ea7b3146112d75780630d8e6e2c1461129257806318160ddd1461127357806323b872dd146111bc578063248a9ca3146111915780632e285051146111565780632f2ff15d1461109c578063313ce567146110805780633644e5151461106357806336568abe14610fd15780633950935114610f95578063407c48b414610f7157806340c10f1914610c81578063586fc5b514610c625780636afdd85014610c38578063705e6a5b14610ab757806370a0823114610a805780637ecebe0014610a4857806384b0196e1461092c5780638e141c75146108f15780638eb66d6a146108d25780639010d07c1461089157806391d148541461084a57806395d89b411461075d578063a217fddf14610742578063a457c2d7146106ac578063a9059cbb1461067b578063ca15c87314610653578063d505accf1461049d578063d547741f14610460578063dd62ed3e1461042b578063fadd1a1b146103ec5763ff740c31146101a557600080fd5b346103e8576020806003193601126103e4578235927f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a80865260098352838620338752835260ff84872054161561022f575050907fed4079ad973dc05ae698be821fb6958dc4edd78aa21dd6a9f8552e46037bacfd9183600b54918351928352820152a1600b5580f35b83908661023b33611a51565b9183519061024882611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610353575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190611449565b010360288101855201836116b2565b5193849362461bcd60e51b8552840152602483019061146c565b0390fd5b606485878087519262461bcd60e51b845283015260248201526000805160206121cb8339815191526044820152fd5b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a6103838587611a2a565b53881c92801561039857600019019190610279565b634e487b7160e01b825260118952602482fd5b634e487b7160e01b835260328a52602483fd5b634e487b7160e01b815260328852602490fd5b634e487b7160e01b815260328752602490fd5b8380fd5b8280fd5b838234610427578160031936011261042757602090517fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb78152f35b5080fd5b83823461042757806003193601126104275760209061045961044b611491565b6104536114ac565b9061216e565b9051908152f35b50346103e857806003193601126103e85761049a913561049560016104836114ac565b938387526009602052862001546114c2565b6116d4565b80f35b509190346104275760e0366003190112610427576104b9611491565b6104c16114ac565b906044359260643560843560ff8116810361064f5781421161060c5760018060a01b0390818516928389526007602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176105f9578b525190206105a49161059c91610576611cf7565b908c519161190160f01b83526002830152602282015260c43591604260a4359220611c68565b919091611b4e565b16036105b6575061049a939450611928565b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b634e487b7160e01b8b526041875260248bfd5b875162461bcd60e51b8152602081850152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b8680fd5b5090346103e85760203660031901126103e8576020928291358152600a845220549051908152f35b8382346104275780600319360112610427576020906106a561069b611491565b60243590336117ba565b5160018152f35b50913461073f578260031936011261073f57506106c7611491565b90602435906106d6833361216e565b908282106106ee576020856106a58585038733611928565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b83823461042757816003193601126104275751908152602090f35b50346103e857826003193601126103e857805183819490845461077f8161175d565b918285526020966001928884821691826000146108205750506001146107c5575b85886107c1896107b2848a03856116b2565b5192828493845283019061146c565b0390f35b815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061080857505050820101816107b26107c1386107a0565b8054848a0186015288955087949093019281016107ee565b60ff19168882015294151560051b870190940194508593506107b292506107c191503890506107a0565b5090346103e857816003193601126103e8578160209360ff9261086b6114ac565b90358252600986528282206001600160a01b039091168252855220549151911615158152f35b5090346103e857816003193601126103e8576020926108bc91358152600a8452826024359120611fdc565b905491519160018060a01b039160031b1c168152f35b838234610427578160031936011261042757602090600b549051908152f35b838234610427578160031936011261042757602090517f027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a8152f35b50346103e857826003193601126103e8576109667f0000000000000000000000000000000000000000000000000000000000000000611e22565b926109907f0000000000000000000000000000000000000000000000000000000000000000611f1f565b908251926020928385019585871067ffffffffffffffff881117610a35575092806109eb8388966109de998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b019061146c565b91898303908a015261146c565b924660608801523060808801528460a088015286840360c088015251928381520193925b828110610a1e57505050500390f35b835185528695509381019392810192600101610a0f565b634e487b7160e01b845260419052602483fd5b8382346104275760203660031901126104275760209181906001600160a01b03610a70611491565b1681526007845220549051908152f35b8382346104275760203660031901126104275760209181906001600160a01b03610aa8611491565b16815280845220549051908152f35b50346103e857602090816003193601126103e457823592831515809403610c34577fbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb780865260098452828620338752845260ff838720541615610b4f575050907f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c748591329151838152a160ff8019600d5416911617600d5580f35b85610b5c93929333611a51565b91835190610b6982611696565b604282528682019260603685378251156103d157603084538251906001918210156103be5790607860218501536041915b818311610bef575050506103245760486102f793859361030693610320975196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c8601526102ce8c8251928391603789019101611449565b909192600f811660108110156103ab576f181899199a1a9b1b9c1cb0b131b232b360811b901a610c1f8587611a2a565b53881c92801561039857600019019190610b9a565b8480fd5b838234610427578160031936011261042757602090516e22d473030f116ddee9f6b43ac78ba38152f35b838234610427578160031936011261042757602090600c549051908152f35b5090346103e857816003193601126103e857610c9b611491565b906024928335917f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c99384875260209460098652838820338952865260ff848920541615610dec5750600c5480420390428211610dda57600b54808302928304149042141715610dc857808511610dad575042600c556001600160a01b0316948515610d6d57505091818593610d537fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254611797565b60025585855284835280852082815401905551908152a380f35b601f9085606494519362461bcd60e51b85528401528201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b828588604493875193635bdd08f560e01b8552840152820152fd5b634e487b7160e01b8852601183528688fd5b634e487b7160e01b8952601184528789fd5b82878588938b610dfb33611a51565b91835190610e0882611696565b60428252878201926060368537825115610f5f5760308453825190600191821015610f4d5790607860218501536041915b818311610ee457505050610eb657604861032095938593610e9e93610e8f975197889376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8d8601526102ce8d8251928391603789019101611449565b010360288101865201846116b2565b5194859462461bcd60e51b865285015283019061146c565b60648688878188519362461bcd60e51b85528401528201526000805160206121cb8339815191526044820152fd5b909192600f81166010811015610f3b576f181899199a1a9b1b9c1cb0b131b232b360811b901a610f148587611a2a565b53891c928015610f2957600019019190610e39565b634e487b7160e01b825260118a528882fd5b634e487b7160e01b835260328b528983fd5b634e487b7160e01b8152603289528790fd5b634e487b7160e01b8152603288528690fd5b83823461042757816003193601126104275760209060ff600d541690519015158152f35b8382346104275780600319360112610427576020906106a5610fb5611491565b610fca602435610fc5833361216e565b611797565b9033611928565b50919034610427578260031936011261042757610fec6114ac565b90336001600160a01b03831603611008579061049a91356116d4565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b838234610427578160031936011261042757602090610459611cf7565b8382346104275781600319360112610427576020905160128152f35b50346103e857806003193601126103e857611109913590600a6110bd6114ac565b92808652602090600982526110d7600185892001546114c2565b808752600982528387206001600160a01b039095168088529482528387205460ff161561110d575b8652528320611ff4565b5080f35b808752600982528387208588528252838720805460ff191660011790553385827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8a80a46110ff565b838234610427578160031936011261042757602090517f573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c98152f35b5090346103e85760203660031901126103e85781602093600192358152600985522001549051908152f35b50913461073f57606036600319011261073f57506111d8611491565b6111e06114ac565b90604435926111ef338361216e565b9060018201611207575b6020866106a58787876117ba565b8482106112305750918391611225602096956106a595033383611928565b9193948193506111f9565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b8382346104275781600319360112610427576020906002549051908152f35b83823461042757816003193601126104275780516107c1916112b382611664565b60058252640312e302e360dc1b60208301525191829160208352602083019061146c565b8382346104275780600319360112610427576020906106a56112f7611491565b6024359033611928565b50823461073f578060031936011261073f5781519182826003546113248161175d565b908184526020956001918783821691826000146113b4575050600114611358575b5050506107c192916107b29103856116b2565b9190869350600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061139c57505050820101816107b26107c1611345565b8054848a018601528895508794909301928101611383565b60ff19168782015293151560051b860190930193508492506107b291506107c19050611345565b849084346103e85760203660031901126103e8573563ffffffff60e01b81168091036103e85760209250635a05180f60e01b811490811561141e575b5015158152f35b637965db0b60e01b811491508115611438575b5083611417565b6301ffc9a760e01b14905083611431565b60005b83811061145c5750506000910152565b818101518382015260200161144c565b9060209161148581518092818552858086019101611449565b601f01601f1916010190565b600435906001600160a01b03821682036114a757565b600080fd5b602435906001600160a01b03821682036114a757565b60009080825260209060098252604092838120338252835260ff8482205416156114ec5750505050565b6114f533611a51565b9184519061150282611696565b6042825284820192606036853782511561165057603084538251906001918210156116505790607860218501536041915b8183116115e2575050506115b257604861032093869361159693611587985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526102ce815180928c603789019101611449565b010360288101875201856116b2565b5192839262461bcd60e51b84526004840152602483019061146c565b60648486519062461bcd60e51b825280600483015260248201526000805160206121cb8339815191526044820152fd5b909192600f8116601081101561163c576f181899199a1a9b1b9c1cb0b131b232b360811b901a6116128587611a2a565b5360041c92801561162857600019019190611533565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b6040810190811067ffffffffffffffff82111761168057604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761168057604052565b90601f8019910116810190811067ffffffffffffffff82111761168057604052565b9060406117129260009080825260096020528282209360018060a01b03169384835260205260ff8383205416611715575b8152600a6020522061207e565b50565b808252600960205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4611705565b90600182811c9216801561178d575b602083101461177757565b634e487b7160e01b600052602260045260246000fd5b91607f169161176c565b919082018092116117a457565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039081169182156118d557169182156118845760008281528060205260408120549180831061183057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b039081169182156119d957169182156119895760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b908151811015611a3b570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906060820182811067ffffffffffffffff82111761168057604052602a8252602082016040368237825115611a3b57603090538151600190811015611a3b57607860218401536029905b808211611ae0575050611aae5790565b606460405162461bcd60e51b815260206004820152602060248201526000805160206121cb8339815191526044820152fd5b9091600f81166010811015611b39576f181899199a1a9b1b9c1cb0b131b232b360811b901a611b0f8486611a2a565b5360041c918015611b24576000190190611a9e565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b6005811015611c525780611b5f5750565b60018103611bac5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b60028103611bf95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b600314611c0257565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611ceb5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15611cde5781516001600160a01b03811615611cd8579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611df9575b15611d52577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116805760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611d29565b60ff8114611e605760ff811690601f8211611e4e5760405191611e4483611664565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600554816000611e738361175d565b808352602093600190818116908115611eff5750600114611ea0575b5050611e9d925003826116b2565b90565b9093915060056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0936000915b818310611ee7575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611ecf565b915050611e9d94925060ff191682840152151560051b8201013880611e8f565b60ff8114611f415760ff811690601f8211611e4e5760405191611e4483611664565b50604051600654816000611f548361175d565b808352602093600190818116908115611eff5750600114611f7d575050611e9d925003826116b2565b9093915060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f936000915b818310611fc4575050611e9d93508201013880611e8f565b85548784018501529485019486945091830191611fac565b8054821015611a3b5760005260206000200190600090565b919060018301600090828252806020526040822054156000146120785784549468010000000000000000861015612064578361205461203d886001604098999a01855584611fdc565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b9060018201906000928184528260205260408420549081151560001461216757600019918083018181116121535782549084820191821161213f5780820361210a575b505050805480156120f6578201916120d98383611fdc565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b61212a61211a61203d9386611fdc565b90549060031b1c92839286611fdc565b905586528460205260408620553880806120c1565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b6001600160a01b0391821691906e22d473030f116ddee9f6b43ac78ba38314806121be575b6121b55716600052600160205260406000209060005260205260406000205490565b50505060001990565b5060ff600d541661219356fe537472696e67733a20686578206c656e67746820696e73756666696369656e74a2646970667358221220bc00ea21ededc0ba595612cd336a06b15f2d9b025cc785af2515c67578bb1e3964736f6c634300081500332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b953e6113870cd26d8364d55096ba7b5671bc963ed99958a5e20ba9400d063705573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c90000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f6870000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x6", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x0e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "gas": "0x3779d", + "value": "0x0", + "data": "0x485cc9550000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x7", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x13007", + "value": "0x0", + "data": "0x2398344c0000000000000000000000004f34bf3352a701aec924ce34d6cfc373eabb186c", + "nonce": "0x8", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionType": "CALL", + "contractName": "TransparentUpgradeableProxy", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "to": "0x5c5589fca76237ed00ba024e19b6c077a108f687", + "gas": "0x128bd", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0x9", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionIndex": "0x1", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x1a00ad", + "gasUsed": "0x64874", + "contractAddress": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "logs": [ + { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000100000000000000000000000000000000000004000000000000000000000000100000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000080000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionIndex": "0x2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "cumulativeGasUsed": "0x1a7033", + "gasUsed": "0x6f86", + "contractAddress": null, + "logs": [ + { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x40293740eb4530b73e0706460b8caed92280c2978f9e004d51335a5c41033bcd", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000100000000000100000000000000000000000000000000000004000000000000000000000000100000000001000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000004000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionIndex": "0x3", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x27ee54", + "gasUsed": "0xd7e21", + "contractAddress": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "logs": [ + { + "address": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x26051fe21aa3033fc1598478661770fc5771d586d6f1ad90a8701f3d40b8c5c4", + "transactionIndex": "0x3", + "logIndex": "0x3", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x315897", + "gasUsed": "0x96a43", + "contractAddress": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "logs": [ + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000041e44496afe9fe59004b9d166efa5a31245746b5" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "transactionIndex": "0x4", + "logIndex": "0x7", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000002000000000000000000000000400000000000000000800000000000000000000000000000000000000100000000000000000000000000000000000004000000000000000000000000010002000001000000000000000000008000000000000000020002000000000000800800000000800000000000000000000000400000000000000000000000000000000000000000000080000080000000800000000000000000000000000000000400000000000000000000000000000000000000000020000000000000000000040000000000000400000000000000000020000000000000000000000000000000000000000000000000000000002000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionIndex": "0x5", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x4532fc", + "gasUsed": "0x13da65", + "contractAddress": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "logs": [ + { + "address": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x62e0bcfd00111654b5a2ffc3abee3e35354c9cacd6891a6e0555a1255b0ce7cd", + "transactionIndex": "0x5", + "logIndex": "0x8", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x4dd6ba", + "gasUsed": "0x8a3be", + "contractAddress": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "logs": [ + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000e76193f2107bf7cc9c6a0de6af63d3c74b936393" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "logIndex": "0x9", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ed32fdc7e4600e1f733dbcea750c19e7830fbc2", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "transactionIndex": "0x6", + "logIndex": "0xa", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000002000000000000000000000000000000000100000000000000000000000000000000000000800010000000040000040000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x745494", + "gasUsed": "0x267dda", + "contractAddress": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "logs": [ + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xb", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x573321b8a13c75b2702bc4b0ad9afaae98bf6985285411964a564e68bf6da1c9", + "0x0000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xc", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x027f9f680a0c6704fd9796b55c67fe885252243966ecb05a88f3e7873c845d9a", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xd", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0xbd4c1461ef59750b24719a44d7e2a7948c57fd12c98e333541b7ea7b61f07cb7", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xe", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f687" + ], + "data": "0x0000000000000000000000000000000000000000204fce5e3e25026110000000", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c74859132" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "transactionIndex": "0x7", + "logIndex": "0x10", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00010004000000000000000010000008000400000000000000000000000004000000100000000100000000000100000000000000000000000000000000000004000000000000000000000008000000000008000000000000000000000000000000020000020000044000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000080000000004000000000020000500010000000000000000000000000000000001200000000010000000402000000000000000000000000000004000000000100001000000020000000000004000002000000000000000000000000000000000000000000000040", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "cumulativeGasUsed": "0x76b37f", + "gasUsed": "0x25eeb", + "contractAddress": null, + "logs": [ + { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000000e481cfeb712d37a0c6cd4e2801ca01e09bc1a9d", + "0x0000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f687" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x11", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x12", + "removed": false + }, + { + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0xc90838001bc6b4a5f42ab4b144e1793492c6432ae20504776142fdcbc2bd808f", + "transactionIndex": "0x8", + "logIndex": "0x13", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000001800000000004000000000000000100000000000000000000000000000000000000000000200000000000000000000000000000000000000001000000000000000000000000000000020000020000044000000000000800000000000010000000000000040000400000000000000000000000000000000000000000000080000000000000000000020000000000500010000000000400000000000000000000000000000000010000000400000000000000000000040000000000000000000000001000000020000010000004000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x38d90b22ed504c3ee066480a5e9a605387e5c06aedf2949a6588a368b9ec8a00", + "transactionIndex": "0x9", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "cumulativeGasUsed": "0x778361", + "gasUsed": "0xcfe2", + "contractAddress": null, + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + }, + { + "transactionHash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionIndex": "0xa", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "cumulativeGasUsed": "0x785a37", + "gasUsed": "0xd6d6", + "contractAddress": null, + "logs": [ + { + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "topics": [ + "0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", + "0x00000000000000000000000095e6f8bd0549786c2a49f6546cf51410889f9330", + "0x000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842" + ], + "data": "0x", + "blockHash": "0x1a2c36b2891b0912daabbb07d59601ba07c31465fa76408a6dd87e5b28ee935f", + "blockNumber": "0x95a5d2", + "transactionHash": "0x3c5ae8442a6573fe64d5ca5f914e1f95fb292f5c4dfc9867309d4ac1f291cfe3", + "transactionIndex": "0xa", + "logIndex": "0x14", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000000000000000000000000000000000004000000000000000000000000010000000000000000000000000000008000000000020000000000000000000000800000000800000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000020000000000000000000000000000000000000000000000010000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1696415816, + "chain": 5, + "multi": false, + "commit": "40fff90" +} \ No newline at end of file diff --git a/deployments/5.md b/deployments/5.md new file mode 100644 index 0000000..1f5a7f1 --- /dev/null +++ b/deployments/5.md @@ -0,0 +1,219 @@ +# Polygon Ecosystem Token + + +### Table of Contents +- [Summary](#summary) +- [Contracts](#contracts) + - [Polygon Migration](#polygon-migration) + - [Default Emission Manager](#default-emission-manager) + - [Proxy Admin](#proxy-admin) + - [Polygon Ecosystem Token](#polygon-ecosystem-token) +- [Deployment History](#deployment-history) + - [1.0.0](#100) + +## Summary + + + + + + + + + + + + + + + + + + + + + + + + +
ContractAddressVersion
PolygonMigration0x5c5589fca76237Ed00BA024e19b6C077a108f6871.0.0
DefaultEmissionManager0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d1.0.0
ProxyAdmin0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2N/A
PolygonEcosystemToken0x4f34BF3352A701AEc924CE34d6CfC373eABb186c1.0.0
+ +## Contracts + +### Polygon Migration + +Address: [0x5c5589fca76237Ed00BA024e19b6C077a108f687](https://goerli.etherscan.io/address/0x5c5589fca76237Ed00BA024e19b6C077a108f687) + +Deployment Txn: [0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4](https://goerli.etherscan.io/tx/0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4) + +Version: [1.0.0](https://github.com/0xPolygon/pol-token/releases/tag/1.0.0) + +Commit Hash: [9af97e8](https://github.com/0xPolygon/pol-token/commit/9af97e84fca5f31e7351cb91b85ac7dd5f40f563) + +Wed, 04 Oct 2023 10:36:56 UTC + + +_Proxy Information_ + + + +Proxy Type: TransparentUpgradeableProxy + + + +Implementation: [0x41E44496AfE9FE59004b9d166eFa5A31245746b5](https://goerli.etherscan.io/address/0x41E44496AfE9FE59004b9d166eFa5A31245746b5) + + + +Proxy Admin: [0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2](https://goerli.etherscan.io/address/0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2) + + + +
+Implementation History + + + + + + + + + + + +
VersionAddressCommit Hash
1.0.00x41E44496AfE9FE59004b9d166eFa5A31245746b59af97e8
+
+ + + --- + +### Default Emission Manager + +Address: [0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d](https://goerli.etherscan.io/address/0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d) + +Deployment Txn: [0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02](https://goerli.etherscan.io/tx/0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02) + +Version: [1.0.0](https://github.com/0xPolygon/pol-token/releases/tag/1.0.0) + +Commit Hash: [9af97e8](https://github.com/0xPolygon/pol-token/commit/9af97e84fca5f31e7351cb91b85ac7dd5f40f563) + +Wed, 04 Oct 2023 10:36:56 UTC + + +_Proxy Information_ + + + +Proxy Type: TransparentUpgradeableProxy + + + +Implementation: [0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393](https://goerli.etherscan.io/address/0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393) + + + +Proxy Admin: [0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2](https://goerli.etherscan.io/address/0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2) + + + +
+Implementation History + + + + + + + + + + + +
VersionAddressCommit Hash
1.0.00xe76193f2107bF7Cc9C6A0de6af63D3C74b9363939af97e8
+
+ + + --- + +### Proxy Admin + +Address: [0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2](https://goerli.etherscan.io/address/0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2) + +Deployment Txn: [0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d](https://goerli.etherscan.io/tx/0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d) + + + +Commit Hash: [9af97e8](https://github.com/0xPolygon/pol-token/commit/9af97e84fca5f31e7351cb91b85ac7dd5f40f563) + +Wed, 04 Oct 2023 10:36:56 UTC + + + --- + +### Polygon Ecosystem Token + +Address: [0x4f34BF3352A701AEc924CE34d6CfC373eABb186c](https://goerli.etherscan.io/address/0x4f34BF3352A701AEc924CE34d6CfC373eABb186c) + +Deployment Txn: [0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1](https://goerli.etherscan.io/tx/0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1) + +Version: [1.0.0](https://github.com/0xPolygon/pol-token/releases/tag/1.0.0) + +Commit Hash: [9af97e8](https://github.com/0xPolygon/pol-token/commit/9af97e84fca5f31e7351cb91b85ac7dd5f40f563) + +Wed, 04 Oct 2023 10:36:56 UTC + + +---- + + +### Deployment History + + +### [1.0.0](https://github.com/0xPolygon/pol-token/releases/tag/1.0.0) + +Wed, 04 Oct 2023 10:36:56 UTC + +Commit Hash: [9af97e8](https://github.com/0xPolygon/pol-token/commit/9af97e84fca5f31e7351cb91b85ac7dd5f40f563) + +Deployed contracts: + +- [Polygon Migration](https://goerli.etherscan.io/address/0x5c5589fca76237Ed00BA024e19b6C077a108f687) ([Implementation](https://goerli.etherscan.io/address/0x41E44496AfE9FE59004b9d166eFa5A31245746b5)) +- [Default Emission Manager](https://goerli.etherscan.io/address/0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d) ([Implementation](https://goerli.etherscan.io/address/0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393)) +- [Polygon Ecosystem Token](https://goerli.etherscan.io/address/0x4f34BF3352A701AEc924CE34d6CfC373eABb186c) + +
+Inputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterValue
matic0x499d11E0b6eAC7c0593d8Fb292DCBbF815Fb29Ae
governance0x531c7Befe78B6496e5753815ab3d3Cc024c1E842
treasury0x531c7Befe78B6496e5753815ab3d3Cc024c1E842
stakeManager0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3
permit2revoker0x531c7Befe78B6496e5753815ab3d3Cc024c1E842
+
+ \ No newline at end of file diff --git a/deployments/json/5.json b/deployments/json/5.json new file mode 100644 index 0000000..9fdaf1c --- /dev/null +++ b/deployments/json/5.json @@ -0,0 +1,86 @@ +{ + "chainId": "5", + "latest": { + "PolygonMigration": { + "implementation": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "proxy": true, + "version": "1.0.0", + "proxyType": "TransparentUpgradeableProxy", + "timestamp": 1696415816, + "deploymentTxn": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4", + "commitHash": "9af97e84fca5f31e7351cb91b85ac7dd5f40f563" + }, + "DefaultEmissionManager": { + "implementation": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "proxy": true, + "version": "1.0.0", + "proxyType": "TransparentUpgradeableProxy", + "timestamp": 1696415816, + "deploymentTxn": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", + "commitHash": "9af97e84fca5f31e7351cb91b85ac7dd5f40f563" + }, + "ProxyAdmin": { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "proxy": false, + "timestamp": 1696415816, + "deploymentTxn": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d", + "commitHash": "9af97e84fca5f31e7351cb91b85ac7dd5f40f563" + }, + "PolygonEcosystemToken": { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "proxy": false, + "version": "1.0.0", + "timestamp": 1696415816, + "deploymentTxn": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1", + "commitHash": "9af97e84fca5f31e7351cb91b85ac7dd5f40f563" + } + }, + "history": [ + { + "contracts": { + "PolygonMigration": { + "implementation": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", + "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "proxy": true, + "version": "1.0.0", + "proxyType": "TransparentUpgradeableProxy", + "deploymentTxn": "0xe0786d27a0f9ae581cabfcab6edf6a0fd261f0143e4a52cbd6c383cb87c5b4a4" + }, + "DefaultEmissionManager": { + "implementation": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "proxy": true, + "version": "1.0.0", + "proxyType": "TransparentUpgradeableProxy", + "deploymentTxn": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02" + }, + "ProxyAdmin": { + "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "proxy": false, + "deploymentTxn": "0xcc62464cf4ef11bb1d03a0f898eb22feb335286a5c3b546942b03d34e960213d" + }, + "PolygonEcosystemToken": { + "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", + "proxy": false, + "version": "1.0.0", + "deploymentTxn": "0x69ee54fefe2d7902a4de228f8f6b19bb3e1308013f10e47cecf07066ecd57fa1" + } + }, + "input": { + "matic": "0x499d11E0b6eAC7c0593d8Fb292DCBbF815Fb29Ae", + "governance": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", + "treasury": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", + "stakeManager": "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "permit2revoker": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + }, + "timestamp": 1696415816, + "commitHash": "9af97e84fca5f31e7351cb91b85ac7dd5f40f563" + } + ] +} \ No newline at end of file diff --git a/docs/src/README.md b/docs/src/README.md index e0d2151..335b989 100644 --- a/docs/src/README.md +++ b/docs/src/README.md @@ -30,21 +30,21 @@ A default implementation is included and this contract will be proxy upgradable ### Setup -- [Install foundry](https://book.getfoundry.sh/getting-started/installation) -- Install Dependencies: `forge install` -- Build: `forge build` -- Test: `forge test` +- [Install foundry](https://book.getfoundry.sh/getting-started/installation) +- Install Dependencies: `forge install` +- Build: `forge build` +- Test: `forge test` ### Deployment 1. Ensure .env file is set, `cp .env.example` 2. Populate Enviornment variables: `source .env` -3. We use a forge script to deploy the contracts, and have an additional extract.js script to store a JSON file with coalesced deployment information. (see [output](./output/)) +3. We use a forge script to deploy the contracts, and have an additional extract.js script to store a JSON file with coalesced deployment information. (see [deployments](./deployments/)) -- (mainnet): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY` -- (testnet, goerli for example): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` +- (mainnet): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY` +- (testnet, goerli for example): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` -4. Run `node script/util/extract.js ` to extract deployment information from forge broadcast output (broadcast/latest-run.json). +4. Run `node scripts/util/extract.js ` to extract deployment information from forge broadcast output (broadcast/latest-run.json). --- diff --git a/foundry.toml b/foundry.toml index 90f017c..c7781a0 100644 --- a/foundry.toml +++ b/foundry.toml @@ -8,8 +8,9 @@ via_ir = true solc = '0.8.21' ffi = true fs_permissions = [ - { access = "read", path = "script/config.json" }, - { access = "read-write", path = "output/deploy.json" }, + { access = "read", path = "scripts/config.json" }, + { access = "read", path = "scripts/1.0.0/input.json" }, + { access = "read", path = "scripts/1.1.0/input.json" }, ] [profile.intense.fuzz] diff --git a/output/5.json b/output/5.json deleted file mode 100644 index 465685f..0000000 --- a/output/5.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "chainId": "5", - "latest": { - "contracts": { - "PolygonMigration": { - "implementation": "0x41E44496AfE9FE59004b9d166eFa5A31245746b5", - "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", - "address": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", - "proxy": true, - "version": "1.0.0", - "proxyType": "TransparentUpgradeableProxy" - }, - "DefaultEmissionManager": { - "implementation": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", - "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", - "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", - "proxy": true, - "version": "1.0.0", - "proxyType": "TransparentUpgradeableProxy" - }, - "ProxyAdmin": { - "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", - "proxy": false - }, - "PolygonEcosystemToken": { - "address": "0x4f34BF3352A701AEc924CE34d6CfC373eABb186c", - "proxy": false, - "version": "1.0.0" - } - }, - "input": { - "matic": "0x499d11E0b6eAC7c0593d8Fb292DCBbF815Fb29Ae", - "governance": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", - "treasury": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", - "stakeManager": "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", - "permit2revoker": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" - }, - "commitHash": "40fff9047712e8e18e05ab7bcea92a100a452751", - "timestamp": 1696415816 - }, - "history": [] -} \ No newline at end of file diff --git a/script/utils/extract.js b/script/utils/extract.js deleted file mode 100644 index 85c8b10..0000000 --- a/script/utils/extract.js +++ /dev/null @@ -1,123 +0,0 @@ -const { readFileSync, existsSync, writeFileSync, mkdirSync } = require("fs"); -const { execSync } = require("child_process"); -const { join } = require("path"); - -/** - * @description Extracts contract deployment data from run-latest.json (foundry broadcast output) and writes to output/{chainId}.json - * @usage node script/utils/extract.js {chainId} - * @dev - * currently only supports TransparentUpgradeableProxy pattern - * uses sha256 hash of init code to determine if contract has changed, - * uses `node:crypto` module, update if not using nodejs - */ -async function main() { - const [chainId] = process.argv.slice(2); - const commitHash = getCommitHash(); - const data = JSON.parse( - readFileSync(join(__dirname, `../../broadcast/Deploy.s.sol/${chainId}/run-latest.json`), "utf-8") - ); - const config = JSON.parse(readFileSync(join(__dirname, "../config.json"), "utf-8")); - const rpcUrl = config.defaultRpc[chainId] || process.env.RPC_URL || "http://127.0.0.1:8545"; - const deployments = data.transactions.filter(({ transactionType }) => transactionType === "CREATE"); // CREATE2? - const deployedContractsMap = new Map( - [...deployments].map(({ contractName, contractAddress }) => [contractAddress, contractName]) - ); - - // todo(future): add support for other proxy patterns - const proxies = await Promise.all( - deployments - .filter(({ contractName }) => contractName === "TransparentUpgradeableProxy") - .map(async ({ arguments, contractAddress, transaction: { data } }) => ({ - implementation: arguments[0], - proxyAdmin: arguments[1], - address: contractAddress, - contractName: deployedContractsMap.get(arguments[0]), - proxy: true, - ...(await getVersion(contractAddress, rpcUrl)), - proxyType: "TransparentUpgradeableProxy", - })) - ); - const nonProxies = await Promise.all( - deployments - .filter( - ({ contractName }) => - contractName !== "TransparentUpgradeableProxy" && !proxies.find((p) => p.contractName === contractName) - ) - .map(async ({ contractName, contractAddress, transaction: { data } }) => ({ - address: contractAddress, - contractName, - proxy: false, - ...(await getVersion(contractAddress, rpcUrl)), - })) - ); - const contracts = [...proxies, ...nonProxies].reduce((obj, { contractName, ...rest }) => { - obj[contractName] = rest; - return obj; - }, {}); - - const outPath = join(__dirname, `../../output/${chainId}.json`); - if (!existsSync(join(__dirname, "../../output/"))) mkdirSync(join(__dirname, "../../output/")); - const out = JSON.parse( - (existsSync(outPath) && readFileSync(outPath, "utf-8")) || JSON.stringify({ chainId, latest: {}, history: [] }) - ); - - // only update if there are changes to specific contracts from history - if (Object.keys(out.latest).length != 0) { - if (out.history.find((h) => h.commitHash === commitHash) || out.latest.commitHash === commitHash) - return console.log("warn: commitHash already deployed"); // if commitHash already exists in history, return - out.history.unshift(out.latest); // add latest to history - } - // overwrite latest with changed contracts - out.latest = { - contracts: { - ...out.latest?.contracts, - ...contracts, - }, - input: config[chainId], - commitHash, - timestamp: data.timestamp, - }; - - writeFileSync(outPath, JSON.stringify(out, null, 2)); -} - -function getCommitHash() { - return execSync("git rev-parse HEAD").toString().trim(); // note: update if not using git -} - -function sha256(data) { - const { createHash } = require("node:crypto"); // note: update if not using nodejs - return createHash("sha256").update(data).digest("hex"); -} - -async function getVersion(contractAddress, rpcUrl) { - try { - const res = await ( - await fetch(rpcUrl, { - method: "POST", - headers: { "content-type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: Date.now(), - method: "eth_call", - params: [{ to: contractAddress, data: "0x0d8e6e2c" }, "latest"], // getVersion()(string) - }), - }) - ).json(); - if (res.error) throw new Error(res.error.message); - return { version: hexToAscii(res.result)?.trim() || res.result }; - } catch (e) { - if (e.message === "execution reverted") return null; // contract does not implement getVersion() - console.log("getVersion error:", rpcUrl, e.message); - return { version: undefined }; - } -} - -const hexToAscii = (str) => hexToUtf8(str).replace(/[\u0000-\u0008,\u000A-\u001F,\u007F-\u00A0]+/g, ""); // remove non-ascii chars -const hexToUtf8 = (str) => new TextDecoder().decode(hexToUint8Array(str)); // note: TextDecoder present in node, update if not using nodejs -function hexToUint8Array(hex) { - const value = hex.toLowerCase().startsWith("0x") ? hex.slice(2) : hex; - return new Uint8Array(Math.ceil(value.length / 2)).map((_, i) => parseInt(value.substring(i * 2, i * 2 + 2), 16)); -} - -main(); diff --git a/script/Deploy.s.sol b/scripts/1.0.0/Deploy.s.sol similarity index 68% rename from script/Deploy.s.sol rename to scripts/1.0.0/Deploy.s.sol index 804a814..25569f1 100644 --- a/script/Deploy.s.sol +++ b/scripts/1.0.0/Deploy.s.sol @@ -4,9 +4,9 @@ pragma solidity 0.8.21; import {Script, stdJson, console2 as console} from "forge-std/Script.sol"; import {ProxyAdmin, TransparentUpgradeableProxy} from "openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; -import {PolygonEcosystemToken} from "../src/PolygonEcosystemToken.sol"; -import {DefaultEmissionManager} from "../src/DefaultEmissionManager.sol"; -import {PolygonMigration} from "../src/PolygonMigration.sol"; +import {PolygonEcosystemToken} from "../../src/PolygonEcosystemToken.sol"; +import {DefaultEmissionManager} from "../../src/DefaultEmissionManager.sol"; +import {PolygonMigration} from "../../src/PolygonMigration.sol"; contract Deploy is Script { using stdJson for string; @@ -21,22 +21,14 @@ contract Deploy is Script { } } - function _getLatestCommitHash() internal returns (string memory ret) { - string[] memory input = new string[](3); - input[0] = "git"; - input[1] = "rev-parse"; - input[2] = "HEAD"; - ret = vm.toString(vm.ffi(input)); - } - function run() public { - string memory config = vm.readFile("script/config.json"); + string memory input = vm.readFile("scripts/1.0.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); - address matic = config.readAddress(string.concat(chainIdSlug, ".matic")); - address governance = config.readAddress(string.concat(chainIdSlug, ".governance")); - address treasury = config.readAddress(string.concat(chainIdSlug, ".treasury")); - address stakeManager = config.readAddress(string.concat(chainIdSlug, ".stakeManager")); - address permit2revoker = config.readAddress(string.concat(chainIdSlug, ".permit2revoker")); + address matic = input.readAddress(string.concat(chainIdSlug, ".matic")); + address governance = input.readAddress(string.concat(chainIdSlug, ".governance")); + address treasury = input.readAddress(string.concat(chainIdSlug, ".treasury")); + address stakeManager = input.readAddress(string.concat(chainIdSlug, ".stakeManager")); + address permit2revoker = input.readAddress(string.concat(chainIdSlug, ".permit2revoker")); vm.startBroadcast(deployerPrivateKey); diff --git a/script/config.json b/scripts/1.0.0/input.json similarity index 81% rename from script/config.json rename to scripts/1.0.0/input.json index 494a454..a54b58b 100644 --- a/script/config.json +++ b/scripts/1.0.0/input.json @@ -1,7 +1,7 @@ { "31337": { "matic": "0x0000000000000000000000000000000000000001", - "governance": "0x0000000000000000000000000000000000000002", + "governance": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "treasury": "0x0000000000000000000000000000000000000001", "stakeManager": "0x0000000000000000000000000000000000000001", "permit2revoker": "0x0000000000000000000000000000000000000001" @@ -19,10 +19,5 @@ "treasury": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842", "stakeManager": "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", "permit2revoker": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" - }, - "defaultRpc": { - "31337": "http://127.0.0.1:8545", - "1": "https://eth.llamarpc.com", - "5": "https://ethereum-goerli.publicnode.com" } } diff --git a/scripts/1.1.0/UpgradeEmissionManager.s.sol b/scripts/1.1.0/UpgradeEmissionManager.s.sol new file mode 100644 index 0000000..868f7dd --- /dev/null +++ b/scripts/1.1.0/UpgradeEmissionManager.s.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.21; + +import {Script, stdJson, console2 as console} from "forge-std/Script.sol"; + +import {ProxyAdmin, TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; +import {DefaultEmissionManager} from "../../src/DefaultEmissionManager.sol"; + +contract Deploy is Script { + using stdJson for string; + + string internal constant TEST_MNEMONIC = "test test test test test test test test test test test junk"; + uint256 public deployerPrivateKey; + + constructor() { + deployerPrivateKey = vm.envOr({name: "PRIVATE_KEY", defaultValue: uint256(0)}); + if (deployerPrivateKey == 0) { + (, deployerPrivateKey) = deriveRememberKey({mnemonic: TEST_MNEMONIC, index: 0}); + } + } + + function run() public { + string memory input = vm.readFile("scripts/1.1.0/input.json"); + string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); + ITransparentUpgradeableProxy emissionProxy = ITransparentUpgradeableProxy( + input.readAddress(string.concat(chainIdSlug, ".emissionProxy")) + ); + address proxyAdmin = input.readAddress(string.concat(chainIdSlug, ".proxyAdmin")); + address migrationProxy = input.readAddress(string.concat(chainIdSlug, ".migrationProxy")); + address stakeManager = input.readAddress(string.concat(chainIdSlug, ".stakeManager")); + address treasury = input.readAddress(string.concat(chainIdSlug, ".treasury")); + vm.startBroadcast(deployerPrivateKey); + ProxyAdmin admin = ProxyAdmin(proxyAdmin); + + address emissionManagerImplementationUpgrade = address( + new DefaultEmissionManager(migrationProxy, stakeManager, treasury) + ); + + admin.upgrade(emissionProxy, emissionManagerImplementationUpgrade); + + vm.stopBroadcast(); + } +} diff --git a/scripts/1.1.0/input.json b/scripts/1.1.0/input.json new file mode 100644 index 0000000..f20a649 --- /dev/null +++ b/scripts/1.1.0/input.json @@ -0,0 +1,9 @@ +{ + "31337": { + "treasury": "0x0000000000000000000000000000000000000001", + "stakeManager": "0x0000000000000000000000000000000000000001", + "proxyAdmin": "0x4ed7c70F96B99c776995fB64377f0d4aB3B0e1C1", + "migrationProxy": "0x4A679253410272dd5232B3Ff7cF5dbB88f295319", + "emissionProxy": "0x09635F643e140090A9A8Dcd712eD6285858ceBef" + } +} diff --git a/scripts/config.json b/scripts/config.json new file mode 100644 index 0000000..77253a4 --- /dev/null +++ b/scripts/config.json @@ -0,0 +1,7 @@ +{ + "defaultRpc": { + "31337": "http://127.0.0.1:8545", + "1": "https://eth.llamarpc.com", + "5": "https://ethereum-goerli.publicnode.com" + } +} diff --git a/scripts/utils/extract.js b/scripts/utils/extract.js new file mode 100644 index 0000000..59e7a42 --- /dev/null +++ b/scripts/utils/extract.js @@ -0,0 +1,447 @@ +const { readFileSync, existsSync, writeFileSync, mkdirSync } = require("fs"); +const { execSync } = require("child_process"); +const { join } = require("path"); + +/** + * @description Extracts contract deployment data from run-latest.json (foundry broadcast output) and writes to deployments/{chainId}.json + * @usage node scripts/utils/extract.js {chainId} [version = "1.0.0"] [scriptName = "Deploy.s.sol"] + * @dev + * currently only supports TransparentUpgradeableProxy pattern + */ +async function main() { + validateInputs(); + let [chainId, version, scriptName] = process.argv.slice(2); + if (!version?.length) version = "1.0.0"; + if (!scriptName?.length) scriptName = "Deploy.s.sol"; + const commitHash = getCommitHash(); + const data = JSON.parse( + readFileSync(join(__dirname, `../../broadcast/${scriptName}/${chainId}/run-latest.json`), "utf-8") + ); + const config = JSON.parse(readFileSync(join(__dirname, "../config.json"), "utf-8")); + const input = JSON.parse(readFileSync(join(__dirname, `../${version}/input.json`), "utf-8")); + const rpcUrl = config.defaultRpc[chainId] || process.env.RPC_URL || "http://127.0.0.1:8545"; + const deployments = data.transactions.filter(({ transactionType }) => transactionType === "CREATE"); + + const outPath = join(__dirname, `../../deployments/json/${chainId}.json`); + if (!existsSync(join(__dirname, "../../deployments/json/"))) mkdirSync(join(__dirname, "../../deployments/json/")); + const out = JSON.parse( + (existsSync(outPath) && readFileSync(outPath, "utf-8")) || JSON.stringify({ chainId, latest: {}, history: [] }) + ); + + const timestamp = data.timestamp; + let latestContracts = {}; + if (Object.keys(out.latest).length === 0) { + const deployedContractsMap = new Map( + [...deployments].map(({ contractAddress, contractName }) => [contractAddress, contractName]) + ); + + // first deployment + // todo(future): add support for other proxy patterns + const proxies = await Promise.all( + deployments + .filter(({ contractName }) => contractName === "TransparentUpgradeableProxy") + .map(async ({ arguments, contractAddress, hash }) => ({ + implementation: arguments[0], + proxyAdmin: arguments[1], + address: contractAddress, + contractName: deployedContractsMap.get(arguments[0]), + proxy: true, + ...(await getVersion(contractAddress, rpcUrl)), + proxyType: "TransparentUpgradeableProxy", + timestamp, + deploymentTxn: hash, + commitHash, + })) + ); + const nonProxies = await Promise.all( + deployments + .filter( + ({ contractName }) => + contractName !== "TransparentUpgradeableProxy" && !proxies.find((p) => p.contractName === contractName) + ) + .map(async ({ contractName, contractAddress, hash }) => ({ + address: contractAddress, + contractName, + proxy: false, + ...(await getVersion(contractAddress, rpcUrl)), + timestamp, + deploymentTxn: hash, + commitHash, + })) + ); + const contracts = [...proxies, ...nonProxies].reduce((obj, { contractName, ...rest }) => { + obj[contractName] = rest; + return obj; + }, {}); + latestContracts = contracts; + out.history.push({ + contracts: Object.entries(contracts).reduce((obj, [key, { timestamp, commitHash, ...rest }]) => { + obj[key] = rest; + return obj; + }, {}), + input: input[chainId], + timestamp, + commitHash, + }); + } else { + if (out.history.find((h) => h.commitHash === commitHash)) return console.log("warn: commitHash already deployed"); // if commitHash already exists in history, return + + const deployedContractsMap = new Map( + Object.entries(out.latest).map(([contractName, { address }]) => [address.toLowerCase(), contractName]) + ); + + for (const { transaction, transactionType } of data.transactions) { + if ( + transactionType === "CALL" && + deployedContractsMap.get(transaction.to.toLowerCase()) === "ProxyAdmin" && + transaction.data.startsWith("0x99a88ec4") // upgrade(address, address) + ) { + const proxyAddress = "0x" + transaction.data.slice(34, 74); + const newImplementationAddress = "0x" + transaction.data.slice(98, 138); + const contractName = deployedContractsMap.get(proxyAddress.toLowerCase()); + + latestContracts[contractName] = { + ...out.latest[contractName], + implementation: toChecksumAddress(newImplementationAddress), + version: (await getVersion(newImplementationAddress, rpcUrl))?.version || version, + timestamp, + commitHash, + }; + out.history.unshift({ + contracts: Object.entries(latestContracts).reduce((obj, [key, { timestamp, commitHash, ...rest }]) => { + obj[key] = rest; + return obj; + }, {}), + input: input[chainId], + timestamp, + commitHash, + }); + } + } + } + + // overwrite latest with changed contracts + out.latest = { + ...out.latest, + ...latestContracts, + }; + + writeFileSync(outPath, JSON.stringify(out, null, 2)); + generateMarkdown(out); +} + +function getCommitHash() { + return execSync("git rev-parse HEAD").toString().trim(); // note: update if not using git +} + +function toChecksumAddress(address) { + try { + return execSync(`cast to-check-sum-address ${address}`).toString().trim(); // note: update if not using cast + } catch (e) { + console.log("ERROR", e); + return address; + } +} + +async function getVersion(contractAddress, rpcUrl) { + try { + const res = await ( + await fetch(rpcUrl, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ + jsonrpc: "2.0", + id: Date.now(), + method: "eth_call", + params: [{ to: contractAddress, data: "0x0d8e6e2c" }, "latest"], // getVersion()(string) + }), + }) + ).json(); + if (res.error) throw new Error(res.error.message); + return { version: hexToAscii(res.result)?.trim() || res.result }; + } catch (e) { + if (e.message === "execution reverted") return { version: undefined }; // contract does not implement getVersion() + if (e.message.includes("fetch is not defined")) { + console.warn("use node 18+"); + } + throw e; + } +} + +function generateMarkdown(input) { + let out = `# Polygon Ecosystem Token\n\n`; + // read name from foundry.toml + + out += `\n### Table of Contents\n- [Summary](#summary)\n- [Contracts](#contracts)\n\t- `; + out += Object.keys(input.latest) + .map( + (c) => + `[${c.replace(/([A-Z])/g, " $1").trim()}](#${c + .replace(/([A-Z])/g, "-$1") + .trim() + .slice(1) + .toLowerCase()})` + ) + .join("\n\t- "); + out += `\n- [Deployment History](#deployment-history)`; + const { deploymentHistoryMd, allVersions } = generateDeploymentHistory(input.history, input.latest, input.chainId); + out += Object.keys(allVersions) + .map((v) => `\n\t- [${v}](#${v.replace(/\./g, "")})`) + .join("\n"); + + out += `\n\n## Summary + + + + + + `; + out += Object.entries(input.latest) + .map( + ([contractName, { address, version }]) => + ` + + + + ` + ) + .join("\n"); + out += `
ContractAddressVersion
${contractName}${address}${version || `N/A`}
\n`; + + out += `\n## Contracts\n\n`; + + out += Object.entries(input.latest) + .map( + ([ + contractName, + { address, deploymentTxn, version, commitHash, timestamp, proxyType, implementation, proxyAdmin }, + ]) => `### ${contractName.replace(/([A-Z])/g, " $1").trim()} + +Address: ${getEtherscanLinkMd(input.chainId, address)} + +Deployment Txn: ${getEtherscanLinkMd(input.chainId, deploymentTxn, "tx")} + +${ + typeof version === "undefined" + ? "" + : `Version: [${version}](https://github.com/0xPolygon/pol-token/releases/tag/${version})` +} + +Commit Hash: [${commitHash.slice(0, 7)}](https://github.com/0xPolygon/pol-token/commit/${commitHash}) + +${prettifyTimestamp(timestamp)} +${generateProxyInformationIfProxy({ + address, + contractName, + proxyType, + implementation, + proxyAdmin, + history: input.history, + chainId: input.chainId, +})}` + ) + .join("\n\n --- \n\n"); + + out += ` + +---- + + +### Deployment History + +${deploymentHistoryMd}`; + + writeFileSync(join(__dirname, `../../deployments/${input.chainId}.md`), out, "utf-8"); +} + +function getEtherscanLink(chainId, address, slug = "address") { + chainId = parseInt(chainId); + switch (chainId) { + case 1: + return `https://etherscan.io/${slug}/${address}`; + case 5: + return `https://goerli.etherscan.io/${slug}/${address}`; + default: + return ``; + // return `https://blockscan.com/${slug}/${address}`; + } +} +function getEtherscanLinkMd(chainId, address, slug = "address") { + const etherscanLink = getEtherscanLink(chainId, address, slug); + return etherscanLink.length ? `[${address}](${etherscanLink})` : address; +} + +function generateProxyInformationIfProxy({ + address, + contractName, + proxyType, + implementation, + proxyAdmin, + history, + chainId, +}) { + let out = ``; + if (typeof proxyType === "undefined") return out; + out += `\n\n_Proxy Information_\n\n`; + out += `\n\nProxy Type: ${proxyType}\n\n`; + out += `\n\nImplementation: ${getEtherscanLinkMd(chainId, implementation)}\n\n`; + out += `\n\nProxy Admin: ${getEtherscanLinkMd(chainId, proxyAdmin)}\n\n`; + + const historyOfProxy = history.filter((h) => h?.contracts[contractName]?.address === address); + if (historyOfProxy.length === 0) return out; + out += `\n`; + out += ` +
+Implementation History + + + + + + ${historyOfProxy + .map( + ({ + contracts: { + [contractName]: { implementation, version }, + }, + commitHash, + }) => ` + + + + + ` + ) + .join("")} +
VersionAddressCommit Hash
${version}${implementation}${commitHash.slice( + 0, + 7 + )}
+
+ `; + return out; +} + +function generateDeploymentHistory(history, latest, chainId) { + let allVersions = {}; + if (history.length === 0) { + const inputPath = join(__dirname, "../1.0.0/input.json"); + const input = JSON.parse((existsSync(inputPath) && readFileSync(inputPath, "utf-8")) || `{"${chainId}":{}}`)[ + chainId + ]; + allVersions = Object.entries(latest).reduce((obj, [contractName, contract]) => { + if (typeof contract.version === "undefined") return obj; + if (!obj[contract.version]) obj[contract.version] = []; + obj[contract.version].push({ contract, contractName, input }); + return obj; + }, {}); + } else { + allVersions = history.reduce((obj, { contracts, input, timestamp, commitHash }) => { + Object.entries(contracts).forEach(([contractName, contract]) => { + if (typeof contract.version === "undefined") return; + if (!obj[contract.version]) obj[contract.version] = []; + obj[contract.version].push({ contract: { ...contract, timestamp, commitHash }, contractName, input }); + }); + return obj; + }, {}); + } + + let out = ``; + out += Object.entries(allVersions) + .map( + ([version, contractInfos]) => ` +### [${version}](https://github.com/0xPolygon/pol-token/releases/tag/${version}) + +${prettifyTimestamp(contractInfos[0].contract.timestamp)} + +Commit Hash: [${contractInfos[0].contract.commitHash.slice(0, 7)}](https://github.com/0xPolygon/pol-token/commit/${ + contractInfos[0].contract.commitHash + }) + +Deployed contracts: + +- ${contractInfos + .map( + ({ contract, contractName }) => + `[${contractName.replace(/([A-Z])/g, " $1").trim()}](${ + getEtherscanLink(chainId, contract.address) || contract.address + })${ + contract.proxyType + ? ` ([Implementation](${ + getEtherscanLink(chainId, contract.implementation) || contract.implementation + }))` + : `` + }` + ) + .join("\n- ")} + +
+Inputs + + + + + + ${Object.entries(contractInfos[0].input) + .map( + ([key, value]) => ` + + + +` + ) + .join("\n")} +
ParameterValue
${key}${value}
+
+ ` + ) + .join("\n\n"); + + return { deploymentHistoryMd: out, allVersions }; +} + +function prettifyTimestamp(timestamp) { + return new Date(timestamp * 1000).toUTCString().replace("GMT", "UTC"); +} + +const hexToAscii = (str) => hexToUtf8(str).replace(/[\u0000-\u0008,\u000A-\u001F,\u007F-\u00A0]+/g, ""); // remove non-ascii chars +const hexToUtf8 = (str) => new TextDecoder().decode(hexToUint8Array(str)); // note: TextDecoder present in node, update if not using nodejs +function hexToUint8Array(hex) { + const value = hex.toLowerCase().startsWith("0x") ? hex.slice(2) : hex; + return new Uint8Array(Math.ceil(value.length / 2)).map((_, i) => parseInt(value.substring(i * 2, i * 2 + 2), 16)); +} + +function validateInputs() { + let [chainId, version, scriptName] = process.argv.slice(2); + let printUsageAndExit = false; + if ( + !( + typeof chainId === "string" && + ["string", "undefined"].includes(typeof version) && + ["string", "undefined"].includes(typeof scriptName) + ) || + chainId === "help" + ) { + if (chainId !== "help") + console.log(`error: invalid inputs: ${JSON.stringify({ chainId, version, scriptName }, null, 0)}\n`); + printUsageAndExit = true; + } + if ( + version && + !( + existsSync(join(__dirname, `../${version}/input.json`)) && + existsSync(join(__dirname, `../${version}/${scriptName}`)) + ) + ) { + console.log( + `error: scripts/${version}/input.json or scripts/${version}/${scriptName || ""} does not exist\n` + ); + printUsageAndExit = true; + } + if (printUsageAndExit) { + console.log(`usage: node scripts/utils/extract.js {chainId} [version = "1.0.0"] [scriptName = "Deploy.s.sol"]`); + process.exit(1); + } +} + +main(); diff --git a/slither.config.json b/slither.config.json index 3583960..e0d7e2a 100644 --- a/slither.config.json +++ b/slither.config.json @@ -1,3 +1,3 @@ { - "filter_paths": "(lib/|test/|script/)" + "filter_paths": "(lib/|test/|scripts/)" } From 2ada8de3bfcf02d4452b57b92ce635de9a8d8594 Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Wed, 11 Oct 2023 17:28:17 +0530 Subject: [PATCH 02/17] change staking emission from 1 to 2 percent feat: add ecosystemFund feat: mint to ecosystem fund upd: emissionRate to 1.03 upd: emissionManager version -> 1.1.0 wip: update emission manager tests fix tests docs fix distribution adjust m1ntCap move natspec to interfaces --- src/DefaultEmissionManager.sol | 31 +++------- src/PolygonEcosystemToken.sol | 24 +++----- src/PolygonMigration.sol | 41 +++---------- src/interfaces/IDefaultEmissionManager.sol | 35 +++++++++-- src/interfaces/IPolygonEcosystemToken.sol | 57 +++++++++++++++--- src/interfaces/IPolygonMigration.sol | 70 +++++++++++++++++++--- test/DefaultEmissionManager.t.sol | 33 +++++++--- test/PolygonEcosystemToken.t.sol | 2 +- test/util/calc.js | 2 +- 9 files changed, 192 insertions(+), 103 deletions(-) diff --git a/src/DefaultEmissionManager.sol b/src/DefaultEmissionManager.sol index a93f7a9..e7d4e72 100644 --- a/src/DefaultEmissionManager.sol +++ b/src/DefaultEmissionManager.sol @@ -9,15 +9,14 @@ import {SafeERC20} from "openzeppelin-contracts/contracts/token/ERC20/utils/Safe import {PowUtil} from "./lib/PowUtil.sol"; /// @title Default Emission Manager -/// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk) +/// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) /// @notice A default emission manager implementation for the Polygon ERC20 token contract on Ethereum L1 -/// @dev The contract allows for a 1% mint *each* per year (compounded every year) to the stakeManager and treasury contracts +/// @dev The contract allows for a 3% mint per year (compounded). 2% staking layer and 1% treasury /// @custom:security-contact security@polygon.technology contract DefaultEmissionManager is Ownable2StepUpgradeable, IDefaultEmissionManager { using SafeERC20 for IPolygonEcosystemToken; - // log2(2%pa continuously compounded emission per year) in 18 decimals, see _inflatedSupplyAfter - uint256 public constant INTEREST_PER_YEAR_LOG2 = 0.028569152196770894e18; + uint256 public constant INTEREST_PER_YEAR_LOG2 = 0.04264433740849372e18; uint256 public constant START_SUPPLY = 10_000_000_000e18; address private immutable DEPLOYER; @@ -54,9 +53,7 @@ contract DefaultEmissionManager is Ownable2StepUpgradeable, IDefaultEmissionMana _transferOwnership(owner_); } - /// @notice Allows anyone to mint tokens to the stakeManager and treasury contracts based on current emission rates - /// @dev Minting is done based on totalSupply diffs between the currentTotalSupply (maintained on POL, which includes any - /// previous mints) and the newSupply (calculated based on the time elapsed since deployment) + /// @inheritdoc IDefaultEmissionManager function mint() external { uint256 currentSupply = token.totalSupply(); // totalSupply after the last mint uint256 newSupply = inflatedSupplyAfter( @@ -65,7 +62,7 @@ contract DefaultEmissionManager is Ownable2StepUpgradeable, IDefaultEmissionMana uint256 amountToMint = newSupply - currentSupply; if (amountToMint == 0) return; // no minting required - uint256 treasuryAmt = amountToMint / 2; + uint256 treasuryAmt = amountToMint / 3; uint256 stakeManagerAmt = amountToMint - treasuryAmt; emit TokenMint(amountToMint, msg.sender); @@ -77,28 +74,16 @@ contract DefaultEmissionManager is Ownable2StepUpgradeable, IDefaultEmissionMana migration.unmigrateTo(stakeManager, stakeManagerAmt); } - /// @notice Returns total supply from compounded emission after timeElapsed from startTimestamp (deployment) - /// @param timeElapsed The time elapsed since startTimestamp - /// @dev interestRatePerYear = 1.02; 2% per year - /// approximate the compounded interest rate using x^y = 2^(log2(x)*y) - /// where x is the interest rate per year and y is the number of seconds elapsed since deployment divided by 365 days in seconds - /// log2(interestRatePerYear) = 0.028569152196770894 with 18 decimals, as the interest rate does not change, hard code the value - /// @return supply total supply from compounded emission after timeElapsed + /// @inheritdoc IDefaultEmissionManager function inflatedSupplyAfter(uint256 timeElapsed) public pure returns (uint256 supply) { uint256 supplyFactor = PowUtil.exp2((INTEREST_PER_YEAR_LOG2 * timeElapsed) / 365 days); supply = (supplyFactor * START_SUPPLY) / 1e18; } - /// @notice Returns the implementation version - /// @return Version string + /// @inheritdoc IDefaultEmissionManager function getVersion() external pure returns (string memory) { - return "1.0.0"; + return "1.1.0"; } - /** - * @dev This empty reserved space is put in place to allow future versions to add new - * variables without shifting down storage in the inheritance chain. - * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps - */ uint256[48] private __gap; } diff --git a/src/PolygonEcosystemToken.sol b/src/PolygonEcosystemToken.sol index 8a31dad..ac4b765 100644 --- a/src/PolygonEcosystemToken.sol +++ b/src/PolygonEcosystemToken.sol @@ -6,7 +6,7 @@ import {AccessControlEnumerable} from "openzeppelin-contracts/contracts/access/A import {IPolygonEcosystemToken} from "./interfaces/IPolygonEcosystemToken.sol"; /// @title Polygon ERC20 token -/// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk) +/// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) /// @notice This is the Polygon ERC20 token contract on Ethereum L1 /// @dev The contract allows for a 1-to-1 representation between $POL and $MATIC and allows for additional emission based on hub and treasury requirements /// @custom:security-contact security@polygon.technology @@ -15,7 +15,7 @@ contract PolygonEcosystemToken is ERC20Permit, AccessControlEnumerable, IPolygon bytes32 public constant CAP_MANAGER_ROLE = keccak256("CAP_MANAGER_ROLE"); bytes32 public constant PERMIT2_REVOKER_ROLE = keccak256("PERMIT2_REVOKER_ROLE"); address public constant PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3; - uint256 public mintPerSecondCap = 10e18; // 10 POL tokens per second + uint256 public mintPerSecondCap = 13.37e18; uint256 public lastMint; bool public permit2Enabled; @@ -41,10 +41,7 @@ contract PolygonEcosystemToken is ERC20Permit, AccessControlEnumerable, IPolygon _updatePermit2Allowance(true); } - /// @notice Mint token entrypoint for the emission manager contract - /// @dev The function only validates the sender, the emission manager is responsible for correctness - /// @param to Address to mint to - /// @param amount Amount to mint + /// @inheritdoc IPolygonEcosystemToken function mint(address to, uint256 amount) external onlyRole(EMISSION_ROLE) { uint256 timeElapsedSinceLastMint = block.timestamp - lastMint; uint256 maxMint = timeElapsedSinceLastMint * mintPerSecondCap; @@ -54,31 +51,26 @@ contract PolygonEcosystemToken is ERC20Permit, AccessControlEnumerable, IPolygon _mint(to, amount); } - /// @notice Update the limit of tokens that can be minted per second - /// @param newCap the amount of tokens in 18 decimals as an absolute value + /// @inheritdoc IPolygonEcosystemToken function updateMintCap(uint256 newCap) external onlyRole(CAP_MANAGER_ROLE) { emit MintCapUpdated(mintPerSecondCap, newCap); mintPerSecondCap = newCap; } - /// @notice Manages the default max approval to the permit2 contract - /// @param enabled If true, the permit2 contract has full approval by default, if false, it has no approval by default + /// @inheritdoc IPolygonEcosystemToken function updatePermit2Allowance(bool enabled) external onlyRole(PERMIT2_REVOKER_ROLE) { _updatePermit2Allowance(enabled); } - /// @notice The permit2 contract has full approval by default. If the approval is revoked, it can still be manually approved. + /// @dev The permit2 contract has full approval by default. If the approval is revoked, it can still be manually approved. function allowance(address owner, address spender) public view override(ERC20, IERC20) returns (uint256) { if (spender == PERMIT2 && permit2Enabled) return type(uint256).max; return super.allowance(owner, spender); } - /// @notice Returns the implementation version - /// @dev This is to support our dev pipeline, and is present despite - /// this contract not being behind a proxy - /// @return Version string + /// @inheritdoc IPolygonEcosystemToken function getVersion() external pure returns (string memory) { - return "1.0.0"; + return "1.1.0"; } function _updatePermit2Allowance(bool enabled) private { diff --git a/src/PolygonMigration.sol b/src/PolygonMigration.sol index 9cc05a4..8a0ab5b 100644 --- a/src/PolygonMigration.sol +++ b/src/PolygonMigration.sol @@ -43,9 +43,7 @@ contract PolygonMigration is Ownable2StepUpgradeable, IPolygonMigration { polygon = IERC20(polygon_); } - /// @notice This function allows for migrating MATIC tokens to POL tokens - /// @dev The function does not do any validation since the migration is a one-way process - /// @param amount Amount of MATIC to migrate + /// @inheritdoc IPolygonMigration function migrate(uint256 amount) external { emit Migrated(msg.sender, amount); @@ -53,10 +51,7 @@ contract PolygonMigration is Ownable2StepUpgradeable, IPolygonMigration { polygon.safeTransfer(msg.sender, amount); } - /// @notice This function allows for unmigrating from POL tokens to MATIC tokens - /// @dev The function can only be called when unmigration is unlocked (lock updatable by governance) - /// @dev The function does not do any further validation, also note the unmigration is a reversible process - /// @param amount Amount of POL to migrate + /// @inheritdoc IPolygonMigration function unmigrate(uint256 amount) external onlyUnmigrationUnlocked { emit Unmigrated(msg.sender, msg.sender, amount); @@ -64,11 +59,7 @@ contract PolygonMigration is Ownable2StepUpgradeable, IPolygonMigration { matic.safeTransfer(msg.sender, amount); } - /// @notice This function allows for unmigrating POL tokens (from msg.sender) to MATIC tokens (to account) - /// @dev The function can only be called when unmigration is unlocked (lock updatable by governance) - /// @dev The function does not do any further validation, also note the unmigration is a reversible process - /// @param recipient Address to receive MATIC tokens - /// @param amount Amount of POL to migrate + /// @inheritdoc IPolygonMigration function unmigrateTo(address recipient, uint256 amount) external onlyUnmigrationUnlocked { emit Unmigrated(msg.sender, recipient, amount); @@ -76,14 +67,7 @@ contract PolygonMigration is Ownable2StepUpgradeable, IPolygonMigration { matic.safeTransfer(recipient, amount); } - /// @notice This function allows for unmigrating from POL tokens to MATIC tokens using an EIP-2612 permit - /// @dev The function can only be called when unmigration is unlocked (lock updatable by governance) - /// @dev The function does not do any further validation, also note the unmigration is a reversible process - /// @param amount Amount of POL to migrate - /// @param deadline Deadline for the permit - /// @param v v value of the permit signature - /// @param r r value of the permit signature - /// @param s s value of the permit signature + /// @inheritdoc IPolygonMigration function unmigrateWithPermit( uint256 amount, uint256 deadline, @@ -98,32 +82,21 @@ contract PolygonMigration is Ownable2StepUpgradeable, IPolygonMigration { matic.safeTransfer(msg.sender, amount); } - /// @notice Allows governance to lock or unlock the unmigration process - /// @dev The function does not do any validation since governance can update the unmigration process if required - /// @param unmigrationLocked_ New unmigration lock status + /// @inheritdoc IPolygonMigration function updateUnmigrationLock(bool unmigrationLocked_) external onlyOwner { emit UnmigrationLockUpdated(unmigrationLocked_); unmigrationLocked = unmigrationLocked_; } - /// @notice Returns the implementation version - /// @return Version string + /// @inheritdoc IPolygonMigration function getVersion() external pure returns (string memory) { return "1.0.0"; } - /// @notice Allows governance to burn `amount` of POL tokens - /// @dev This functions burns POL by sending to dead address - /// @dev does not change totalSupply in the internal accounting of POL - /// @param amount Amount of POL to burn + /// @inheritdoc IPolygonMigration function burn(uint256 amount) external onlyOwner { polygon.safeTransfer(0x000000000000000000000000000000000000dEaD, amount); } - /** - * @dev This empty reserved space is put in place to allow future versions to add new - * variables without shifting down storage in the inheritance chain. - * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps - */ uint256[49] private __gap; } diff --git a/src/interfaces/IDefaultEmissionManager.sol b/src/interfaces/IDefaultEmissionManager.sol index 8c5cc1b..02182c8 100644 --- a/src/interfaces/IDefaultEmissionManager.sol +++ b/src/interfaces/IDefaultEmissionManager.sol @@ -3,18 +3,45 @@ pragma solidity 0.8.21; import {IPolygonEcosystemToken} from "./IPolygonEcosystemToken.sol"; +/// @title Default Emission Manager +/// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) +/// @notice A default emission manager implementation for the Polygon ERC20 token contract on Ethereum L1 +/// @dev The contract allows for a 3% mint per year (compounded). 2% staking layer and 1% treasury +/// @custom:security-contact security@polygon.technology interface IDefaultEmissionManager { + /// @notice emitted when new tokens are minted + /// @param amount the amount of tokens minted + /// @param caller the caller of the mint function + event TokenMint(uint256 amount, address caller); + + /// @notice thrown when a zero address is supplied during deployment error InvalidAddress(); - event TokenMint(uint256 amount, address caller); + /// @notice allows anyone to mint tokens to the stakeManager and treasury contracts based on current emission rates + /// @dev minting is done based on totalSupply diffs between the currentTotalSupply (maintained on POL, which includes any previous mints) and the newSupply (calculated based on the time elapsed since deployment) + function mint() external; - function getVersion() external pure returns (string memory version); + /// @return log2(3%pa continuously compounded emission per year) in 18 decimals, see _inflatedSupplyAfter + function INTEREST_PER_YEAR_LOG2() external view returns (uint256); + /// @return the start supply of the POL token in 18 decimals + function START_SUPPLY() external view returns (uint256); + + /// @return polygonEcosystemToken address of the POL token function token() external view returns (IPolygonEcosystemToken polygonEcosystemToken); + /// @return timestamp timestamp of initialisation of the contract, when emission starts function startTimestamp() external view returns (uint256 timestamp); - function mint() external; - + /// @notice returns total supply from compounded emission after timeElapsed from startTimestamp (deployment) + /// @param timeElapsedInSeconds the time elapsed since startTimestamp + /// @return inflatedSupply supply total supply from compounded emission after timeElapsed + /// @dev interestRatePerYear = 1.03; 3% per year + /// approximate the compounded interest rate using x^y = 2^(log2(x)*y) + /// where x is the interest rate per year and y is the number of seconds elapsed since deployment divided by 365 days in seconds + /// log2(interestRatePerYear) = 0.04264433740849372 with 18 decimals, as the interest rate does not change, hard code the value function inflatedSupplyAfter(uint256 timeElapsedInSeconds) external pure returns (uint256 inflatedSupply); + + /// @return version the implementation version + function getVersion() external pure returns (string memory version); } diff --git a/src/interfaces/IPolygonEcosystemToken.sol b/src/interfaces/IPolygonEcosystemToken.sol index 9547b6e..6a3280e 100644 --- a/src/interfaces/IPolygonEcosystemToken.sol +++ b/src/interfaces/IPolygonEcosystemToken.sol @@ -5,24 +5,67 @@ import {IERC20Permit} from "openzeppelin-contracts/contracts/token/ERC20/extensi import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {IAccessControlEnumerable} from "openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol"; +/// @title Polygon ERC20 token +/// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) +/// @notice This is the Polygon ERC20 token contract on Ethereum L1 +/// @dev The contract allows for a 1-to-1 representation between $POL and $MATIC and allows for additional emission based on hub and treasury requirements +/// @custom:security-contact security@polygon.technology interface IPolygonEcosystemToken is IERC20, IERC20Permit, IAccessControlEnumerable { + /// @notice emitted when the mint cap is updated + /// @param oldCap the old mint cap + /// @param newCap the new mint cap event MintCapUpdated(uint256 oldCap, uint256 newCap); + + /// @notice emitted when the permit2 integration is enabled/disabled + /// @param enabled whether the permit2 integration is enabled or not event Permit2AllowanceUpdated(bool enabled); + /// @notice thrown when a zero address is supplied during deployment error InvalidAddress(); + + /// @notice thrown when the mint cap is exceeded + /// @param maxMint the maximum amount of tokens that can be minted + /// @param mintRequested the amount of tokens that were requested to be minted error MaxMintExceeded(uint256 maxMint, uint256 mintRequested); - function mintPerSecondCap() external view returns (uint256 currentMintPerSecondCap); + /// @notice mint token entrypoint for the emission manager contract + /// @param to address to mint to + /// @param amount amount to mint + /// @dev The function only validates the sender, the emission manager is responsible for correctness + function mint(address to, uint256 amount) external; - function getVersion() external pure returns (string memory version); + /// @notice update the limit of tokens that can be minted per second + /// @param newCap the amount of tokens in 18 decimals as an absolute value + function updateMintCap(uint256 newCap) external; - function lastMint() external view returns (uint256 lastMintTimestamp); + /// @notice manages the default max approval to the permit2 contract + /// @param enabled If true, the permit2 contract has full approval by default, if false, it has no approval by default + function updatePermit2Allowance(bool enabled) external; - function permit2Enabled() external view returns (bool isPermit2Enabled); + /// @return the role that allows minting of tokens + function EMISSION_ROLE() external view returns (bytes32); - function mint(address to, uint256 amount) external; + /// @return the role that allows updating the mint cap + function CAP_MANAGER_ROLE() external view returns (bytes32); - function updateMintCap(uint256 newCap) external; + /// @return the role that allows revoking the permit2 approval + function PERMIT2_REVOKER_ROLE() external view returns (bytes32); - function updatePermit2Allowance(bool enabled) external; + /// @return the address of the permit2 contract + function PERMIT2() external view returns (address); + + /// @return currentMintPerSecondCap the current amount of tokens that can be minted per second + /// @dev 13.37 POL tokens per second. will limit emission in ~23 years + function mintPerSecondCap() external view returns (uint256 currentMintPerSecondCap); + + /// @return lastMintTimestamp the timestamp of the last mint + function lastMint() external view returns (uint256 lastMintTimestamp); + + /// @return isPermit2Enabled whether the permit2 default approval is currently active + function permit2Enabled() external view returns (bool isPermit2Enabled); + + /// @notice returns the version of the contract + /// @return version version string + /// @dev this is to support our dev pipeline, and is present despite this contract not being behind a proxy + function getVersion() external pure returns (string memory version); } diff --git a/src/interfaces/IPolygonMigration.sol b/src/interfaces/IPolygonMigration.sol index 78ec75f..014142e 100644 --- a/src/interfaces/IPolygonMigration.sol +++ b/src/interfaces/IPolygonMigration.sol @@ -3,30 +3,84 @@ pragma solidity 0.8.21; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; +/// @title Polygon Migration +/// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk) +/// @notice This is the migration contract for Matic <-> Polygon ERC20 token on Ethereum L1 +/// @dev The contract allows for a 1-to-1 conversion from $MATIC into $POL and vice-versa +/// @custom:security-contact security@polygon.technology interface IPolygonMigration { - error UnmigrationLocked(); - error InvalidAddressOrAlreadySet(); - error InvalidAddress(); - + /// @notice emitted when MATIC are migrated to POL + /// @param account the account that migrated MATIC + /// @param amount the amount of MATIC that was migrated event Migrated(address indexed account, uint256 amount); + + /// @notice emitted when POL are unmigrated to MATIC + /// @param account the account that unmigrated POL + /// @param recipient the account that received MATIC + /// @param amount the amount of POL that was unmigrated event Unmigrated(address indexed account, address indexed recipient, uint256 amount); + + /// @notice emitted when the unmigration is enabled/disabled + /// @param lock whether the unmigration is enabled or not event UnmigrationLockUpdated(bool lock); - function unmigrationLocked() external view returns (bool isUnmigrationLocked); + /// @notice thrown when a user attempts to unmigrate while unmigration is locked + error UnmigrationLocked(); - function polygon() external view returns (IERC20 polygonEcosystemToken); + /// @notice thrown when an invalid POL token address is supplied or the address is already set + error InvalidAddressOrAlreadySet(); - function getVersion() external pure returns (string memory version); + /// @notice thrown when a zero address is supplied during deployment + error InvalidAddress(); + /// @notice this function allows for migrating MATIC tokens to POL tokens + /// @param amount amount of MATIC to migrate + /// @dev the function does not do any validation since the migration is a one-way process function migrate(uint256 amount) external; + /// @notice this function allows for unmigrating from POL tokens to MATIC tokens + /// @param amount amount of POL to migrate + /// @dev the function can only be called when unmigration is unlocked (lock updatable by governance) + /// @dev the function does not do any further validation, also note the unmigration is a reversible process function unmigrate(uint256 amount) external; + /// @notice this function allows for unmigrating POL tokens (from msg.sender) to MATIC tokens (to account) + /// @param recipient address to receive MATIC tokens + /// @param amount amount of POL to migrate + /// @dev the function can only be called when unmigration is unlocked (lock updatable by governance) + /// @dev the function does not do any further validation, also note the unmigration is a reversible process function unmigrateTo(address recipient, uint256 amount) external; + /// @notice this function allows for unmigrating from POL tokens to MATIC tokens using an EIP-2612 permit + /// @param amount amount of POL to migrate + /// @param deadline deadline for the permit + /// @param v v value of the permit signature + /// @param r r value of the permit signature + /// @param s s value of the permit signature + /// @dev the function can only be called when unmigration is unlocked (lock updatable by governance) + /// @dev the function does not do any further validation, also note the unmigration is a reversible process function unmigrateWithPermit(uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; - function updateUnmigrationLock(bool unmigrationLocked_) external; + /// @notice allows governance to lock or unlock the unmigration process + /// @param unmigrationLocked new unmigration lock status + /// @dev the function does not do any validation since governance can update the unmigration process if required + function updateUnmigrationLock(bool unmigrationLocked) external; + /// @notice allows governance to burn `amount` of POL tokens + /// @param amount amount of POL to burn + /// @dev this functions burns POL by sending to dead address + /// @dev does not change totalSupply in the internal accounting of POL function burn(uint256 amount) external; + + /// @return maticToken the MATIC token address + function matic() external view returns (IERC20 maticToken); + + /// @return polygonEcosystemToken the POL token address + function polygon() external view returns (IERC20 polygonEcosystemToken); + + /// @return isUnmigrationLocked whether the unmigration is locked or not + function unmigrationLocked() external view returns (bool isUnmigrationLocked); + + /// @return version the implementation version + function getVersion() external pure returns (string memory version); } diff --git a/test/DefaultEmissionManager.t.sol b/test/DefaultEmissionManager.t.sol index 6523b36..7e07ee7 100644 --- a/test/DefaultEmissionManager.t.sol +++ b/test/DefaultEmissionManager.t.sol @@ -143,9 +143,12 @@ contract DefaultEmissionManagerTest is Test { uint256 newSupply = abi.decode(vm.ffi(inputs), (uint256)); assertApproxEqAbs(newSupply, polygon.totalSupply(), _MAX_PRECISION_DELTA); - assertEq(matic.balanceOf(stakeManager), (polygon.totalSupply() - initialTotalSupply) / 2); + uint256 totalAmtMinted = polygon.totalSupply() - initialTotalSupply; + uint256 totalAmtMintedOneThird = totalAmtMinted / 3; + assertEq(matic.balanceOf(stakeManager), totalAmtMinted - totalAmtMintedOneThird); + assertEq(matic.balanceOf(treasury), 0); assertEq(polygon.balanceOf(stakeManager), 0); - assertEq(polygon.balanceOf(treasury), (polygon.totalSupply() - initialTotalSupply) / 2); + assertEq(polygon.balanceOf(treasury), totalAmtMintedOneThird); } function test_MintDelayTwice(uint128 delay) external { @@ -161,8 +164,9 @@ contract DefaultEmissionManagerTest is Test { uint256 newSupply = abi.decode(vm.ffi(inputs), (uint256)); assertApproxEqAbs(newSupply, polygon.totalSupply(), _MAX_PRECISION_DELTA); - uint256 balance = (polygon.totalSupply() - initialTotalSupply) / 2; - assertEq(matic.balanceOf(stakeManager), balance); + uint256 balance = (polygon.totalSupply() - initialTotalSupply) / 3; + uint256 stakeManagerBalance = (polygon.totalSupply() - initialTotalSupply) - balance; + assertEq(matic.balanceOf(stakeManager), stakeManagerBalance); assertEq(polygon.balanceOf(stakeManager), 0); assertEq(polygon.balanceOf(treasury), balance); @@ -175,8 +179,13 @@ contract DefaultEmissionManagerTest is Test { newSupply = abi.decode(vm.ffi(inputs), (uint256)); assertApproxEqAbs(newSupply, polygon.totalSupply(), _MAX_PRECISION_DELTA); - balance += (polygon.totalSupply() - initialTotalSupply) / 2; - assertEq(matic.balanceOf(stakeManager), balance); + uint256 totalAmtMinted = polygon.totalSupply() - initialTotalSupply; + uint256 totalAmtMintedOneThird = totalAmtMinted / 3; + + balance += totalAmtMintedOneThird; + stakeManagerBalance += totalAmtMinted - totalAmtMintedOneThird; + + assertEq(matic.balanceOf(stakeManager), stakeManagerBalance); assertEq(polygon.balanceOf(stakeManager), 0); assertEq(polygon.balanceOf(treasury), balance); } @@ -185,6 +194,7 @@ contract DefaultEmissionManagerTest is Test { vm.assume(delay * uint256(cycles) <= 10 * 365 days && delay > 0 && cycles < 30); uint256 balance; + uint256 stakeManagerBalance; for (uint256 cycle; cycle < cycles; cycle++) { uint256 initialTotalSupply = polygon.totalSupply(); @@ -197,8 +207,13 @@ contract DefaultEmissionManagerTest is Test { uint256 newSupply = abi.decode(vm.ffi(inputs), (uint256)); assertApproxEqAbs(newSupply, polygon.totalSupply(), _MAX_PRECISION_DELTA); - balance += (polygon.totalSupply() - initialTotalSupply) / 2; - assertEq(matic.balanceOf(stakeManager), balance); + uint256 totalAmtMinted = polygon.totalSupply() - initialTotalSupply; + uint256 totalAmtMintedOneThird = totalAmtMinted / 3; + + balance += totalAmtMintedOneThird; + stakeManagerBalance += totalAmtMinted - totalAmtMintedOneThird; + + assertEq(matic.balanceOf(stakeManager), stakeManagerBalance); assertEq(polygon.balanceOf(stakeManager), 0); assertEq(polygon.balanceOf(treasury), balance); } @@ -209,6 +224,6 @@ contract DefaultEmissionManagerTest is Test { inputs[2] = vm.toString(delay); inputs[3] = vm.toString(polygon.totalSupply()); uint256 newSupply = abi.decode(vm.ffi(inputs), (uint256)); - assertApproxEqAbs(newSupply, emissionManager.inflatedSupplyAfter(block.timestamp + delay), 1e19); + assertApproxEqAbs(newSupply, emissionManager.inflatedSupplyAfter(block.timestamp + delay), 1e20); } } diff --git a/test/PolygonEcosystemToken.t.sol b/test/PolygonEcosystemToken.t.sol index 9e1096f..4d0044a 100644 --- a/test/PolygonEcosystemToken.t.sol +++ b/test/PolygonEcosystemToken.t.sol @@ -18,7 +18,7 @@ contract PolygonTest is Test { address public governance; address public permit2revoker; DefaultEmissionManager public emissionManager; - uint256 public mintPerSecondCap = 10e18; // 10 POL tokens per second + uint256 public mintPerSecondCap = 13.37e18; // 13.37 POL tokens per second function setUp() external { migration = makeAddr("migration"); diff --git a/test/util/calc.js b/test/util/calc.js index b5c2f19..7b96dbd 100644 --- a/test/util/calc.js +++ b/test/util/calc.js @@ -1,4 +1,4 @@ -const interestRatePerYear = 1.02; +const interestRatePerYear = 1.03; const startSupply = 10_000_000_000e18; function main() { const [timeElapsedInSeconds] = process.argv.slice(2); From 211ea80330f3a2eeefb80112e3437981b64db9ca Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Tue, 17 Oct 2023 22:39:00 +0530 Subject: [PATCH 03/17] docs: forge foc --- docs/src/README.md | 6 +- .../contract.DefaultEmissionManager.md | 31 ++-- .../contract.PolygonEcosystemToken.md | 25 ++- .../contract.PolygonMigration.md | 58 +++---- .../interface.IDefaultEmissionManager.md | 92 +++++++++- .../interface.IPolygonEcosystemToken.md | 154 +++++++++++++++-- .../interface.IPolygonMigration.md | 161 +++++++++++++++--- .../src/lib/PowUtil.sol/library.PowUtil.md | 2 +- 8 files changed, 418 insertions(+), 111 deletions(-) diff --git a/docs/src/README.md b/docs/src/README.md index 335b989..d2f0533 100644 --- a/docs/src/README.md +++ b/docs/src/README.md @@ -44,7 +44,11 @@ A default implementation is included and this contract will be proxy upgradable - (mainnet): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY` - (testnet, goerli for example): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` -4. Run `node scripts/util/extract.js ` to extract deployment information from forge broadcast output (broadcast/latest-run.json). +4. Run `node scripts/util/extract.js [version = 1.0.0] [scriptName = Deploy.s.sol]` to extract deployment information from forge broadcast output (broadcast/latest-run.json). + +## Reference Deployments + +- Goerli [0x4f34BF3352A701AEc924CE34d6CfC373eABb186c](https://goerli.etherscan.io/address/0x4f34BF3352A701AEc924CE34d6CfC373eABb186c) --- diff --git a/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md b/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md index 5c89766..983ad44 100644 --- a/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md +++ b/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md @@ -1,22 +1,22 @@ # DefaultEmissionManager -[Git Source](https://github.com/0xPolygon/pol-token/blob/a780764684dd1ef1ca70707f8069da35cddbd074/src/DefaultEmissionManager.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/DefaultEmissionManager.sol) **Inherits:** Ownable2StepUpgradeable, [IDefaultEmissionManager](/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md) **Author:** -Polygon Labs (@DhairyaSethi, @gretzke, @qedk) +Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) A default emission manager implementation for the Polygon ERC20 token contract on Ethereum L1 -*The contract allows for a 1% mint *each* per year (compounded every year) to the stakeManager and treasury contracts* +*The contract allows for a 3% mint per year (compounded). 2% staking layer and 1% treasury* ## State Variables ### INTEREST_PER_YEAR_LOG2 ```solidity -uint256 public constant INTEREST_PER_YEAR_LOG2 = 0.028569152196770894e18; +uint256 public constant INTEREST_PER_YEAR_LOG2 = 0.04264433740849372e18; ``` @@ -70,10 +70,6 @@ uint256 public startTimestamp; ### __gap -*This empty reserved space is put in place to allow future versions to add new -variables without shifting down storage in the inheritance chain. -See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps* - ```solidity uint256[48] private __gap; @@ -97,10 +93,9 @@ function initialize(address token_, address owner_) external initializer; ### mint -Allows anyone to mint tokens to the stakeManager and treasury contracts based on current emission rates +allows anyone to mint tokens to the stakeManager and treasury contracts based on current emission rates -*Minting is done based on totalSupply diffs between the currentTotalSupply (maintained on POL, which includes any -previous mints) and the newSupply (calculated based on the time elapsed since deployment)* +*minting is done based on totalSupply diffs between the currentTotalSupply (maintained on POL, which includes any previous mints) and the newSupply (calculated based on the time elapsed since deployment)* ```solidity @@ -109,12 +104,12 @@ function mint() external; ### inflatedSupplyAfter -Returns total supply from compounded emission after timeElapsed from startTimestamp (deployment) +returns total supply from compounded emission after timeElapsed from startTimestamp (deployment) -*interestRatePerYear = 1.02; 2% per year +*interestRatePerYear = 1.03; 3% per year approximate the compounded interest rate using x^y = 2^(log2(x)*y) where x is the interest rate per year and y is the number of seconds elapsed since deployment divided by 365 days in seconds -log2(interestRatePerYear) = 0.028569152196770894 with 18 decimals, as the interest rate does not change, hard code the value* +log2(interestRatePerYear) = 0.04264433740849372 with 18 decimals, as the interest rate does not change, hard code the value* ```solidity @@ -124,19 +119,17 @@ function inflatedSupplyAfter(uint256 timeElapsed) public pure returns (uint256 s |Name|Type|Description| |----|----|-----------| -|`timeElapsed`|`uint256`|The time elapsed since startTimestamp| +|`timeElapsed`|`uint256`|| **Returns** |Name|Type|Description| |----|----|-----------| -|`supply`|`uint256`|total supply from compounded emission after timeElapsed| +|`supply`|`uint256`|inflatedSupply supply total supply from compounded emission after timeElapsed| ### getVersion -Returns the implementation version - ```solidity function getVersion() external pure returns (string memory); @@ -145,6 +138,6 @@ function getVersion() external pure returns (string memory); |Name|Type|Description| |----|----|-----------| -|``|`string`|Version string| +|``|`string`|version the implementation version| diff --git a/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md b/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md index 2ead38b..d8a8ca1 100644 --- a/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md +++ b/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md @@ -1,11 +1,11 @@ # PolygonEcosystemToken -[Git Source](https://github.com/0xPolygon/pol-token/blob/a780764684dd1ef1ca70707f8069da35cddbd074/src/PolygonEcosystemToken.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/PolygonEcosystemToken.sol) **Inherits:** ERC20Permit, AccessControlEnumerable, [IPolygonEcosystemToken](/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md) **Author:** -Polygon Labs (@DhairyaSethi, @gretzke, @qedk) +Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) This is the Polygon ERC20 token contract on Ethereum L1 @@ -44,7 +44,7 @@ address public constant PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3; ### mintPerSecondCap ```solidity -uint256 public mintPerSecondCap = 10e18; +uint256 public mintPerSecondCap = 13.37e18; ``` @@ -74,7 +74,7 @@ constructor(address migration, address emissionManager, address governance, addr ### mint -Mint token entrypoint for the emission manager contract +mint token entrypoint for the emission manager contract *The function only validates the sender, the emission manager is responsible for correctness* @@ -86,13 +86,13 @@ function mint(address to, uint256 amount) external onlyRole(EMISSION_ROLE); |Name|Type|Description| |----|----|-----------| -|`to`|`address`|Address to mint to| -|`amount`|`uint256`|Amount to mint| +|`to`|`address`|address to mint to| +|`amount`|`uint256`|amount to mint| ### updateMintCap -Update the limit of tokens that can be minted per second +update the limit of tokens that can be minted per second ```solidity @@ -107,7 +107,7 @@ function updateMintCap(uint256 newCap) external onlyRole(CAP_MANAGER_ROLE); ### updatePermit2Allowance -Manages the default max approval to the permit2 contract +manages the default max approval to the permit2 contract ```solidity @@ -122,7 +122,7 @@ function updatePermit2Allowance(bool enabled) external onlyRole(PERMIT2_REVOKER_ ### allowance -The permit2 contract has full approval by default. If the approval is revoked, it can still be manually approved. +*The permit2 contract has full approval by default. If the approval is revoked, it can still be manually approved.* ```solidity @@ -131,10 +131,9 @@ function allowance(address owner, address spender) public view override(ERC20, I ### getVersion -Returns the implementation version +returns the version of the contract -*This is to support our dev pipeline, and is present despite -this contract not being behind a proxy* +*this is to support our dev pipeline, and is present despite this contract not being behind a proxy* ```solidity @@ -144,7 +143,7 @@ function getVersion() external pure returns (string memory); |Name|Type|Description| |----|----|-----------| -|``|`string`|Version string| +|``|`string`|version version string| ### _updatePermit2Allowance diff --git a/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md b/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md index 4ecd2a1..2226b90 100644 --- a/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md +++ b/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md @@ -1,5 +1,5 @@ # PolygonMigration -[Git Source](https://github.com/0xPolygon/pol-token/blob/a780764684dd1ef1ca70707f8069da35cddbd074/src/PolygonMigration.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/PolygonMigration.sol) **Inherits:** Ownable2StepUpgradeable, [IPolygonMigration](/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md) @@ -35,10 +35,6 @@ bool public unmigrationLocked; ### __gap -*This empty reserved space is put in place to allow future versions to add new -variables without shifting down storage in the inheritance chain. -See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps* - ```solidity uint256[49] private __gap; @@ -84,9 +80,9 @@ function setPolygonToken(address polygon_) external onlyOwner; ### migrate -This function allows for migrating MATIC tokens to POL tokens +this function allows for migrating MATIC tokens to POL tokens -*The function does not do any validation since the migration is a one-way process* +*the function does not do any validation since the migration is a one-way process* ```solidity @@ -96,16 +92,14 @@ function migrate(uint256 amount) external; |Name|Type|Description| |----|----|-----------| -|`amount`|`uint256`|Amount of MATIC to migrate| +|`amount`|`uint256`|amount of MATIC to migrate| ### unmigrate -This function allows for unmigrating from POL tokens to MATIC tokens - -*The function can only be called when unmigration is unlocked (lock updatable by governance)* +this function allows for unmigrating from POL tokens to MATIC tokens -*The function does not do any further validation, also note the unmigration is a reversible process* +*the function can only be called when unmigration is unlocked (lock updatable by governance)* ```solidity @@ -115,16 +109,14 @@ function unmigrate(uint256 amount) external onlyUnmigrationUnlocked; |Name|Type|Description| |----|----|-----------| -|`amount`|`uint256`|Amount of POL to migrate| +|`amount`|`uint256`|amount of POL to migrate| ### unmigrateTo -This function allows for unmigrating POL tokens (from msg.sender) to MATIC tokens (to account) - -*The function can only be called when unmigration is unlocked (lock updatable by governance)* +this function allows for unmigrating POL tokens (from msg.sender) to MATIC tokens (to account) -*The function does not do any further validation, also note the unmigration is a reversible process* +*the function can only be called when unmigration is unlocked (lock updatable by governance)* ```solidity @@ -134,17 +126,15 @@ function unmigrateTo(address recipient, uint256 amount) external onlyUnmigration |Name|Type|Description| |----|----|-----------| -|`recipient`|`address`|Address to receive MATIC tokens| -|`amount`|`uint256`|Amount of POL to migrate| +|`recipient`|`address`|address to receive MATIC tokens| +|`amount`|`uint256`|amount of POL to migrate| ### unmigrateWithPermit -This function allows for unmigrating from POL tokens to MATIC tokens using an EIP-2612 permit +this function allows for unmigrating from POL tokens to MATIC tokens using an EIP-2612 permit -*The function can only be called when unmigration is unlocked (lock updatable by governance)* - -*The function does not do any further validation, also note the unmigration is a reversible process* +*the function can only be called when unmigration is unlocked (lock updatable by governance)* ```solidity @@ -156,8 +146,8 @@ function unmigrateWithPermit(uint256 amount, uint256 deadline, uint8 v, bytes32 |Name|Type|Description| |----|----|-----------| -|`amount`|`uint256`|Amount of POL to migrate| -|`deadline`|`uint256`|Deadline for the permit| +|`amount`|`uint256`|amount of POL to migrate| +|`deadline`|`uint256`|deadline for the permit| |`v`|`uint8`|v value of the permit signature| |`r`|`bytes32`|r value of the permit signature| |`s`|`bytes32`|s value of the permit signature| @@ -165,9 +155,9 @@ function unmigrateWithPermit(uint256 amount, uint256 deadline, uint8 v, bytes32 ### updateUnmigrationLock -Allows governance to lock or unlock the unmigration process +allows governance to lock or unlock the unmigration process -*The function does not do any validation since governance can update the unmigration process if required* +*the function does not do any validation since governance can update the unmigration process if required* ```solidity @@ -177,13 +167,11 @@ function updateUnmigrationLock(bool unmigrationLocked_) external onlyOwner; |Name|Type|Description| |----|----|-----------| -|`unmigrationLocked_`|`bool`|New unmigration lock status| +|`unmigrationLocked_`|`bool`|| ### getVersion -Returns the implementation version - ```solidity function getVersion() external pure returns (string memory); @@ -192,16 +180,14 @@ function getVersion() external pure returns (string memory); |Name|Type|Description| |----|----|-----------| -|``|`string`|Version string| +|``|`string`|version the implementation version| ### burn -Allows governance to burn `amount` of POL tokens - -*This functions burns POL by sending to dead address* +allows governance to burn `amount` of POL tokens -*does not change totalSupply in the internal accounting of POL* +*this functions burns POL by sending to dead address* ```solidity @@ -211,6 +197,6 @@ function burn(uint256 amount) external onlyOwner; |Name|Type|Description| |----|----|-----------| -|`amount`|`uint256`|Amount of POL to burn| +|`amount`|`uint256`|amount of POL to burn| diff --git a/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md b/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md index 47515b3..b6f083a 100644 --- a/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md +++ b/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md @@ -1,21 +1,64 @@ # IDefaultEmissionManager -[Git Source](https://github.com/0xPolygon/pol-token/blob/a780764684dd1ef1ca70707f8069da35cddbd074/src/interfaces/IDefaultEmissionManager.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/interfaces/IDefaultEmissionManager.sol) + +**Author:** +Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) + +A default emission manager implementation for the Polygon ERC20 token contract on Ethereum L1 + +*The contract allows for a 3% mint per year (compounded). 2% staking layer and 1% treasury* ## Functions -### getVersion +### mint + +allows anyone to mint tokens to the stakeManager and treasury contracts based on current emission rates + +*minting is done based on totalSupply diffs between the currentTotalSupply (maintained on POL, which includes any previous mints) and the newSupply (calculated based on the time elapsed since deployment)* ```solidity -function getVersion() external pure returns (string memory version); +function mint() external; ``` +### INTEREST_PER_YEAR_LOG2 + + +```solidity +function INTEREST_PER_YEAR_LOG2() external view returns (uint256); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|``|`uint256`|log2(3%pa continuously compounded emission per year) in 18 decimals, see _inflatedSupplyAfter| + + +### START_SUPPLY + + +```solidity +function START_SUPPLY() external view returns (uint256); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|``|`uint256`|the start supply of the POL token in 18 decimals| + + ### token ```solidity function token() external view returns (IPolygonEcosystemToken polygonEcosystemToken); ``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`polygonEcosystemToken`|`IPolygonEcosystemToken`|address of the POL token| + ### startTimestamp @@ -23,23 +66,56 @@ function token() external view returns (IPolygonEcosystemToken polygonEcosystemT ```solidity function startTimestamp() external view returns (uint256 timestamp); ``` +**Returns** -### mint +|Name|Type|Description| +|----|----|-----------| +|`timestamp`|`uint256`|timestamp of initialisation of the contract, when emission starts| + + +### inflatedSupplyAfter + +returns total supply from compounded emission after timeElapsed from startTimestamp (deployment) + +*interestRatePerYear = 1.03; 3% per year +approximate the compounded interest rate using x^y = 2^(log2(x)*y) +where x is the interest rate per year and y is the number of seconds elapsed since deployment divided by 365 days in seconds +log2(interestRatePerYear) = 0.04264433740849372 with 18 decimals, as the interest rate does not change, hard code the value* ```solidity -function mint() external; +function inflatedSupplyAfter(uint256 timeElapsedInSeconds) external pure returns (uint256 inflatedSupply); ``` +**Parameters** -### inflatedSupplyAfter +|Name|Type|Description| +|----|----|-----------| +|`timeElapsedInSeconds`|`uint256`|the time elapsed since startTimestamp| + +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`inflatedSupply`|`uint256`|supply total supply from compounded emission after timeElapsed| + + +### getVersion ```solidity -function inflatedSupplyAfter(uint256 timeElapsedInSeconds) external pure returns (uint256 inflatedSupply); +function getVersion() external pure returns (string memory version); ``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`version`|`string`|the implementation version| + ## Events ### TokenMint +emitted when new tokens are minted + ```solidity event TokenMint(uint256 amount, address caller); @@ -47,6 +123,8 @@ event TokenMint(uint256 amount, address caller); ## Errors ### InvalidAddress +thrown when a zero address is supplied during deployment + ```solidity error InvalidAddress(); diff --git a/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md b/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md index 05e5357..5cb040e 100644 --- a/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md +++ b/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md @@ -1,68 +1,188 @@ # IPolygonEcosystemToken -[Git Source](https://github.com/0xPolygon/pol-token/blob/a780764684dd1ef1ca70707f8069da35cddbd074/src/interfaces/IPolygonEcosystemToken.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/interfaces/IPolygonEcosystemToken.sol) **Inherits:** IERC20, IERC20Permit, IAccessControlEnumerable +**Author:** +Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) + +This is the Polygon ERC20 token contract on Ethereum L1 + +*The contract allows for a 1-to-1 representation between $POL and $MATIC and allows for additional emission based on hub and treasury requirements* + ## Functions -### mintPerSecondCap +### mint + +mint token entrypoint for the emission manager contract + +*The function only validates the sender, the emission manager is responsible for correctness* ```solidity -function mintPerSecondCap() external view returns (uint256 currentMintPerSecondCap); +function mint(address to, uint256 amount) external; ``` +**Parameters** -### getVersion +|Name|Type|Description| +|----|----|-----------| +|`to`|`address`|address to mint to| +|`amount`|`uint256`|amount to mint| + + +### updateMintCap + +update the limit of tokens that can be minted per second ```solidity -function getVersion() external pure returns (string memory version); +function updateMintCap(uint256 newCap) external; ``` +**Parameters** -### lastMint +|Name|Type|Description| +|----|----|-----------| +|`newCap`|`uint256`|the amount of tokens in 18 decimals as an absolute value| + + +### updatePermit2Allowance + +manages the default max approval to the permit2 contract ```solidity -function lastMint() external view returns (uint256 lastMintTimestamp); +function updatePermit2Allowance(bool enabled) external; ``` +**Parameters** -### permit2Enabled +|Name|Type|Description| +|----|----|-----------| +|`enabled`|`bool`|If true, the permit2 contract has full approval by default, if false, it has no approval by default| + + +### EMISSION_ROLE ```solidity -function permit2Enabled() external view returns (bool isPermit2Enabled); +function EMISSION_ROLE() external view returns (bytes32); ``` +**Returns** -### mint +|Name|Type|Description| +|----|----|-----------| +|``|`bytes32`|the role that allows minting of tokens| + + +### CAP_MANAGER_ROLE ```solidity -function mint(address to, uint256 amount) external; +function CAP_MANAGER_ROLE() external view returns (bytes32); ``` +**Returns** -### updateMintCap +|Name|Type|Description| +|----|----|-----------| +|``|`bytes32`|the role that allows updating the mint cap| + + +### PERMIT2_REVOKER_ROLE ```solidity -function updateMintCap(uint256 newCap) external; +function PERMIT2_REVOKER_ROLE() external view returns (bytes32); ``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|``|`bytes32`|the role that allows revoking the permit2 approval| -### updatePermit2Allowance + +### PERMIT2 ```solidity -function updatePermit2Allowance(bool enabled) external; +function PERMIT2() external view returns (address); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|``|`address`|the address of the permit2 contract| + + +### mintPerSecondCap + +*13.37 POL tokens per second. will limit emission in ~23 years* + + +```solidity +function mintPerSecondCap() external view returns (uint256 currentMintPerSecondCap); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`currentMintPerSecondCap`|`uint256`|the current amount of tokens that can be minted per second| + + +### lastMint + + +```solidity +function lastMint() external view returns (uint256 lastMintTimestamp); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`lastMintTimestamp`|`uint256`|the timestamp of the last mint| + + +### permit2Enabled + + +```solidity +function permit2Enabled() external view returns (bool isPermit2Enabled); ``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`isPermit2Enabled`|`bool`|whether the permit2 default approval is currently active| + + +### getVersion + +returns the version of the contract + +*this is to support our dev pipeline, and is present despite this contract not being behind a proxy* + + +```solidity +function getVersion() external pure returns (string memory version); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`version`|`string`|version string| + ## Events ### MintCapUpdated +emitted when the mint cap is updated + ```solidity event MintCapUpdated(uint256 oldCap, uint256 newCap); ``` ### Permit2AllowanceUpdated +emitted when the permit2 integration is enabled/disabled + ```solidity event Permit2AllowanceUpdated(bool enabled); @@ -70,12 +190,16 @@ event Permit2AllowanceUpdated(bool enabled); ## Errors ### InvalidAddress +thrown when a zero address is supplied during deployment + ```solidity error InvalidAddress(); ``` ### MaxMintExceeded +thrown when the mint cap is exceeded + ```solidity error MaxMintExceeded(uint256 maxMint, uint256 mintRequested); diff --git a/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md b/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md index 33e29ac..ebc7a11 100644 --- a/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md +++ b/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md @@ -1,85 +1,202 @@ # IPolygonMigration -[Git Source](https://github.com/0xPolygon/pol-token/blob/a780764684dd1ef1ca70707f8069da35cddbd074/src/interfaces/IPolygonMigration.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/interfaces/IPolygonMigration.sol) +**Author:** +Polygon Labs (@DhairyaSethi, @gretzke, @qedk) -## Functions -### unmigrationLocked +This is the migration contract for Matic <-> Polygon ERC20 token on Ethereum L1 +*The contract allows for a 1-to-1 conversion from $MATIC into $POL and vice-versa* -```solidity -function unmigrationLocked() external view returns (bool isUnmigrationLocked); -``` -### polygon +## Functions +### migrate +this function allows for migrating MATIC tokens to POL tokens -```solidity -function polygon() external view returns (IERC20 polygonEcosystemToken); -``` - -### getVersion +*the function does not do any validation since the migration is a one-way process* ```solidity -function getVersion() external pure returns (string memory version); +function migrate(uint256 amount) external; ``` +**Parameters** -### migrate - +|Name|Type|Description| +|----|----|-----------| +|`amount`|`uint256`|amount of MATIC to migrate| -```solidity -function migrate(uint256 amount) external; -``` ### unmigrate +this function allows for unmigrating from POL tokens to MATIC tokens + +*the function can only be called when unmigration is unlocked (lock updatable by governance)* + +*the function does not do any further validation, also note the unmigration is a reversible process* + ```solidity function unmigrate(uint256 amount) external; ``` +**Parameters** + +|Name|Type|Description| +|----|----|-----------| +|`amount`|`uint256`|amount of POL to migrate| + ### unmigrateTo +this function allows for unmigrating POL tokens (from msg.sender) to MATIC tokens (to account) + +*the function can only be called when unmigration is unlocked (lock updatable by governance)* + +*the function does not do any further validation, also note the unmigration is a reversible process* + ```solidity function unmigrateTo(address recipient, uint256 amount) external; ``` +**Parameters** + +|Name|Type|Description| +|----|----|-----------| +|`recipient`|`address`|address to receive MATIC tokens| +|`amount`|`uint256`|amount of POL to migrate| + ### unmigrateWithPermit +this function allows for unmigrating from POL tokens to MATIC tokens using an EIP-2612 permit + +*the function can only be called when unmigration is unlocked (lock updatable by governance)* + +*the function does not do any further validation, also note the unmigration is a reversible process* + ```solidity function unmigrateWithPermit(uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; ``` +**Parameters** + +|Name|Type|Description| +|----|----|-----------| +|`amount`|`uint256`|amount of POL to migrate| +|`deadline`|`uint256`|deadline for the permit| +|`v`|`uint8`|v value of the permit signature| +|`r`|`bytes32`|r value of the permit signature| +|`s`|`bytes32`|s value of the permit signature| + ### updateUnmigrationLock +allows governance to lock or unlock the unmigration process + +*the function does not do any validation since governance can update the unmigration process if required* + ```solidity -function updateUnmigrationLock(bool unmigrationLocked_) external; +function updateUnmigrationLock(bool unmigrationLocked) external; ``` +**Parameters** + +|Name|Type|Description| +|----|----|-----------| +|`unmigrationLocked`|`bool`|new unmigration lock status| + ### burn +allows governance to burn `amount` of POL tokens + +*this functions burns POL by sending to dead address* + +*does not change totalSupply in the internal accounting of POL* + ```solidity function burn(uint256 amount) external; ``` +**Parameters** + +|Name|Type|Description| +|----|----|-----------| +|`amount`|`uint256`|amount of POL to burn| + + +### matic + + +```solidity +function matic() external view returns (IERC20 maticToken); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`maticToken`|`IERC20`|the MATIC token address| + + +### polygon + + +```solidity +function polygon() external view returns (IERC20 polygonEcosystemToken); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`polygonEcosystemToken`|`IERC20`|the POL token address| + + +### unmigrationLocked + + +```solidity +function unmigrationLocked() external view returns (bool isUnmigrationLocked); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`isUnmigrationLocked`|`bool`|whether the unmigration is locked or not| + + +### getVersion + + +```solidity +function getVersion() external pure returns (string memory version); +``` +**Returns** + +|Name|Type|Description| +|----|----|-----------| +|`version`|`string`|the implementation version| + ## Events ### Migrated +emitted when MATIC are migrated to POL + ```solidity event Migrated(address indexed account, uint256 amount); ``` ### Unmigrated +emitted when POL are unmigrated to MATIC + ```solidity event Unmigrated(address indexed account, address indexed recipient, uint256 amount); ``` ### UnmigrationLockUpdated +emitted when the unmigration is enabled/disabled + ```solidity event UnmigrationLockUpdated(bool lock); @@ -87,18 +204,24 @@ event UnmigrationLockUpdated(bool lock); ## Errors ### UnmigrationLocked +thrown when a user attempts to unmigrate while unmigration is locked + ```solidity error UnmigrationLocked(); ``` ### InvalidAddressOrAlreadySet +thrown when an invalid POL token address is supplied or the address is already set + ```solidity error InvalidAddressOrAlreadySet(); ``` ### InvalidAddress +thrown when a zero address is supplied during deployment + ```solidity error InvalidAddress(); diff --git a/docs/src/src/lib/PowUtil.sol/library.PowUtil.md b/docs/src/src/lib/PowUtil.sol/library.PowUtil.md index e252a75..a22ec86 100644 --- a/docs/src/src/lib/PowUtil.sol/library.PowUtil.md +++ b/docs/src/src/lib/PowUtil.sol/library.PowUtil.md @@ -1,5 +1,5 @@ # PowUtil -[Git Source](https://github.com/0xPolygon/pol-token/blob/a780764684dd1ef1ca70707f8069da35cddbd074/src/lib/PowUtil.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/lib/PowUtil.sol) ## Functions From d35df2739df171f1b7c93b74559d2553f2165a2a Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Tue, 17 Oct 2023 22:42:00 +0530 Subject: [PATCH 04/17] chore: expand getVersion natspec --- .../contract.DefaultEmissionManager.md | 4 +++- .../src/src/PolygonMigration.sol/contract.PolygonMigration.md | 4 +++- .../interface.IDefaultEmissionManager.md | 4 +++- .../IPolygonMigration.sol/interface.IPolygonMigration.md | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md b/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md index 983ad44..e5ddb24 100644 --- a/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md +++ b/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md @@ -130,6 +130,8 @@ function inflatedSupplyAfter(uint256 timeElapsed) public pure returns (uint256 s ### getVersion +returns the version of the contract + ```solidity function getVersion() external pure returns (string memory); @@ -138,6 +140,6 @@ function getVersion() external pure returns (string memory); |Name|Type|Description| |----|----|-----------| -|``|`string`|version the implementation version| +|``|`string`|version version string| diff --git a/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md b/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md index 2226b90..c53a57b 100644 --- a/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md +++ b/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md @@ -172,6 +172,8 @@ function updateUnmigrationLock(bool unmigrationLocked_) external onlyOwner; ### getVersion +returns the version of the contract + ```solidity function getVersion() external pure returns (string memory); @@ -180,7 +182,7 @@ function getVersion() external pure returns (string memory); |Name|Type|Description| |----|----|-----------| -|``|`string`|version the implementation version| +|``|`string`|version version string| ### burn diff --git a/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md b/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md index b6f083a..91fe00a 100644 --- a/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md +++ b/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md @@ -101,6 +101,8 @@ function inflatedSupplyAfter(uint256 timeElapsedInSeconds) external pure returns ### getVersion +returns the version of the contract + ```solidity function getVersion() external pure returns (string memory version); @@ -109,7 +111,7 @@ function getVersion() external pure returns (string memory version); |Name|Type|Description| |----|----|-----------| -|`version`|`string`|the implementation version| +|`version`|`string`|version string| ## Events diff --git a/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md b/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md index ebc7a11..4166aea 100644 --- a/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md +++ b/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md @@ -166,6 +166,8 @@ function unmigrationLocked() external view returns (bool isUnmigrationLocked); ### getVersion +returns the version of the contract + ```solidity function getVersion() external pure returns (string memory version); @@ -174,7 +176,7 @@ function getVersion() external pure returns (string memory version); |Name|Type|Description| |----|----|-----------| -|`version`|`string`|the implementation version| +|`version`|`string`|version string| ## Events From f2075c64c8093b25183d98e9610ad58c96b92a04 Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Tue, 17 Oct 2023 22:43:25 +0530 Subject: [PATCH 05/17] chore: expand getVersion natspec --- src/interfaces/IDefaultEmissionManager.sol | 3 ++- src/interfaces/IPolygonMigration.sol | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/interfaces/IDefaultEmissionManager.sol b/src/interfaces/IDefaultEmissionManager.sol index 02182c8..9e5b069 100644 --- a/src/interfaces/IDefaultEmissionManager.sol +++ b/src/interfaces/IDefaultEmissionManager.sol @@ -42,6 +42,7 @@ interface IDefaultEmissionManager { /// log2(interestRatePerYear) = 0.04264433740849372 with 18 decimals, as the interest rate does not change, hard code the value function inflatedSupplyAfter(uint256 timeElapsedInSeconds) external pure returns (uint256 inflatedSupply); - /// @return version the implementation version + /// @notice returns the version of the contract + /// @return version version string function getVersion() external pure returns (string memory version); } diff --git a/src/interfaces/IPolygonMigration.sol b/src/interfaces/IPolygonMigration.sol index 014142e..fb69b42 100644 --- a/src/interfaces/IPolygonMigration.sol +++ b/src/interfaces/IPolygonMigration.sol @@ -81,6 +81,7 @@ interface IPolygonMigration { /// @return isUnmigrationLocked whether the unmigration is locked or not function unmigrationLocked() external view returns (bool isUnmigrationLocked); - /// @return version the implementation version + /// @notice returns the version of the contract + /// @return version version string function getVersion() external pure returns (string memory version); } From 30f4eb25e57e6170e1d9d3fc8cfc0af43d19f992 Mon Sep 17 00:00:00 2001 From: gretzke Date: Tue, 17 Oct 2023 21:03:13 +0200 Subject: [PATCH 06/17] Add mainnet deployment script for version 1.1.0 --- scripts/1.1.0/Deploy.s.sol | 70 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 scripts/1.1.0/Deploy.s.sol diff --git a/scripts/1.1.0/Deploy.s.sol b/scripts/1.1.0/Deploy.s.sol new file mode 100644 index 0000000..c510c16 --- /dev/null +++ b/scripts/1.1.0/Deploy.s.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.21; + +import {Script, stdJson, console2 as console} from "forge-std/Script.sol"; + +import {ProxyAdmin, TransparentUpgradeableProxy} from "openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; +import {PolygonEcosystemToken} from "../../src/PolygonEcosystemToken.sol"; +import {DefaultEmissionManager} from "../../src/DefaultEmissionManager.sol"; +import {PolygonMigration} from "../../src/PolygonMigration.sol"; + +contract Deploy is Script { + using stdJson for string; + + string internal constant TEST_MNEMONIC = "test test test test test test test test test test test junk"; + uint256 public deployerPrivateKey; + + constructor() { + deployerPrivateKey = vm.envOr({name: "PRIVATE_KEY", defaultValue: uint256(0)}); + if (deployerPrivateKey == 0) { + (, deployerPrivateKey) = deriveRememberKey({mnemonic: TEST_MNEMONIC, index: 0}); + } + } + + function run() public { + string memory input = vm.readFile("scripts/1.1.0/input.json"); + string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); + address matic = input.readAddress(string.concat(chainIdSlug, ".matic")); + address governance = input.readAddress(string.concat(chainIdSlug, ".governance")); + address treasury = input.readAddress(string.concat(chainIdSlug, ".treasury")); + address stakeManager = input.readAddress(string.concat(chainIdSlug, ".stakeManager")); + address permit2revoker = input.readAddress(string.concat(chainIdSlug, ".permit2revoker")); + + vm.startBroadcast(deployerPrivateKey); + + ProxyAdmin admin = new ProxyAdmin(); + admin.transferOwnership(governance); + + address migrationImplementation = address(new PolygonMigration(matic)); + + address migrationProxy = address( + new TransparentUpgradeableProxy( + migrationImplementation, + address(admin), + abi.encodeWithSelector(PolygonMigration.initialize.selector) + ) + ); + + address emissionManagerImplementation = address( + new DefaultEmissionManager(migrationProxy, stakeManager, treasury) + ); + address emissionManagerProxy = address( + new TransparentUpgradeableProxy(address(emissionManagerImplementation), address(admin), "") + ); + + PolygonEcosystemToken polygonToken = new PolygonEcosystemToken( + migrationProxy, + emissionManagerProxy, + governance, + permit2revoker + ); + + DefaultEmissionManager(emissionManagerProxy).initialize(address(polygonToken), governance); + + PolygonMigration(migrationProxy).setPolygonToken(address(polygonToken)); + + PolygonMigration(migrationProxy).transferOwnership(governance); // governance needs to accept the ownership transfer + + vm.stopBroadcast(); + } +} From 820fcb530aa69ce418282b73c262ed40950ec8d6 Mon Sep 17 00:00:00 2001 From: gretzke Date: Tue, 17 Oct 2023 21:03:36 +0200 Subject: [PATCH 07/17] Update upgrade script for Goerli --- scripts/1.1.0/UpgradeEmissionManager.s.sol | 11 +---------- scripts/1.1.0/input.json | 13 ++++++++++++- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/scripts/1.1.0/UpgradeEmissionManager.s.sol b/scripts/1.1.0/UpgradeEmissionManager.s.sol index 868f7dd..14c1218 100644 --- a/scripts/1.1.0/UpgradeEmissionManager.s.sol +++ b/scripts/1.1.0/UpgradeEmissionManager.s.sol @@ -22,21 +22,12 @@ contract Deploy is Script { function run() public { string memory input = vm.readFile("scripts/1.1.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); - ITransparentUpgradeableProxy emissionProxy = ITransparentUpgradeableProxy( - input.readAddress(string.concat(chainIdSlug, ".emissionProxy")) - ); - address proxyAdmin = input.readAddress(string.concat(chainIdSlug, ".proxyAdmin")); address migrationProxy = input.readAddress(string.concat(chainIdSlug, ".migrationProxy")); address stakeManager = input.readAddress(string.concat(chainIdSlug, ".stakeManager")); address treasury = input.readAddress(string.concat(chainIdSlug, ".treasury")); vm.startBroadcast(deployerPrivateKey); - ProxyAdmin admin = ProxyAdmin(proxyAdmin); - address emissionManagerImplementationUpgrade = address( - new DefaultEmissionManager(migrationProxy, stakeManager, treasury) - ); - - admin.upgrade(emissionProxy, emissionManagerImplementationUpgrade); + new DefaultEmissionManager(migrationProxy, stakeManager, treasury); vm.stopBroadcast(); } diff --git a/scripts/1.1.0/input.json b/scripts/1.1.0/input.json index f20a649..fa52a1a 100644 --- a/scripts/1.1.0/input.json +++ b/scripts/1.1.0/input.json @@ -1,8 +1,19 @@ { + "1": { + "matic": "0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0", + "governance": "0x6e7a5820baD6cebA8Ef5ea69c0C92EbbDAc9CE48", + "treasury": "0x2ff25495d77f380d5F65B95F103181aE8b1cf898", + "stakeManager": "0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908", + "permit2revoker": "0x6e7a5820baD6cebA8Ef5ea69c0C92EbbDAc9CE48" + }, + "5": { + "migrationProxy": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "stakeManager": "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "treasury": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + }, "31337": { "treasury": "0x0000000000000000000000000000000000000001", "stakeManager": "0x0000000000000000000000000000000000000001", - "proxyAdmin": "0x4ed7c70F96B99c776995fB64377f0d4aB3B0e1C1", "migrationProxy": "0x4A679253410272dd5232B3Ff7cF5dbB88f295319", "emissionProxy": "0x09635F643e140090A9A8Dcd712eD6285858ceBef" } From 639b14b73b944561f054d43b16de448c62fe7261 Mon Sep 17 00:00:00 2001 From: gretzke Date: Tue, 17 Oct 2023 21:58:54 +0200 Subject: [PATCH 08/17] Update script names --- scripts/1.0.0/{Deploy.s.sol => Deploy.goerli.s.sol} | 0 scripts/1.1.0/Deploy.s.sol | 11 +---------- ...ager.s.sol => UpgradeEmissionManager.goerli.s.sol} | 0 3 files changed, 1 insertion(+), 10 deletions(-) rename scripts/1.0.0/{Deploy.s.sol => Deploy.goerli.s.sol} (100%) rename scripts/1.1.0/{UpgradeEmissionManager.s.sol => UpgradeEmissionManager.goerli.s.sol} (100%) diff --git a/scripts/1.0.0/Deploy.s.sol b/scripts/1.0.0/Deploy.goerli.s.sol similarity index 100% rename from scripts/1.0.0/Deploy.s.sol rename to scripts/1.0.0/Deploy.goerli.s.sol diff --git a/scripts/1.1.0/Deploy.s.sol b/scripts/1.1.0/Deploy.s.sol index c510c16..a694c90 100644 --- a/scripts/1.1.0/Deploy.s.sol +++ b/scripts/1.1.0/Deploy.s.sol @@ -11,17 +11,8 @@ import {PolygonMigration} from "../../src/PolygonMigration.sol"; contract Deploy is Script { using stdJson for string; - string internal constant TEST_MNEMONIC = "test test test test test test test test test test test junk"; - uint256 public deployerPrivateKey; - - constructor() { - deployerPrivateKey = vm.envOr({name: "PRIVATE_KEY", defaultValue: uint256(0)}); - if (deployerPrivateKey == 0) { - (, deployerPrivateKey) = deriveRememberKey({mnemonic: TEST_MNEMONIC, index: 0}); - } - } - function run() public { + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); string memory input = vm.readFile("scripts/1.1.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); address matic = input.readAddress(string.concat(chainIdSlug, ".matic")); diff --git a/scripts/1.1.0/UpgradeEmissionManager.s.sol b/scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol similarity index 100% rename from scripts/1.1.0/UpgradeEmissionManager.s.sol rename to scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol From 34d2d30c3ecb77b845ebccde8774023a400d908a Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Wed, 18 Oct 2023 01:35:02 +0530 Subject: [PATCH 09/17] fix: rm usage of default priv key --- scripts/1.0.0/Deploy.goerli.s.sol | 11 +---------- scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol | 11 +---------- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/scripts/1.0.0/Deploy.goerli.s.sol b/scripts/1.0.0/Deploy.goerli.s.sol index 25569f1..f4735b0 100644 --- a/scripts/1.0.0/Deploy.goerli.s.sol +++ b/scripts/1.0.0/Deploy.goerli.s.sol @@ -11,17 +11,8 @@ import {PolygonMigration} from "../../src/PolygonMigration.sol"; contract Deploy is Script { using stdJson for string; - string internal constant TEST_MNEMONIC = "test test test test test test test test test test test junk"; - uint256 public deployerPrivateKey; - - constructor() { - deployerPrivateKey = vm.envOr({name: "PRIVATE_KEY", defaultValue: uint256(0)}); - if (deployerPrivateKey == 0) { - (, deployerPrivateKey) = deriveRememberKey({mnemonic: TEST_MNEMONIC, index: 0}); - } - } - function run() public { + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); string memory input = vm.readFile("scripts/1.0.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); address matic = input.readAddress(string.concat(chainIdSlug, ".matic")); diff --git a/scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol b/scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol index 14c1218..2d87fdf 100644 --- a/scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol +++ b/scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol @@ -9,17 +9,8 @@ import {DefaultEmissionManager} from "../../src/DefaultEmissionManager.sol"; contract Deploy is Script { using stdJson for string; - string internal constant TEST_MNEMONIC = "test test test test test test test test test test test junk"; - uint256 public deployerPrivateKey; - - constructor() { - deployerPrivateKey = vm.envOr({name: "PRIVATE_KEY", defaultValue: uint256(0)}); - if (deployerPrivateKey == 0) { - (, deployerPrivateKey) = deriveRememberKey({mnemonic: TEST_MNEMONIC, index: 0}); - } - } - function run() public { + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); string memory input = vm.readFile("scripts/1.1.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); address migrationProxy = input.readAddress(string.concat(chainIdSlug, ".migrationProxy")); From 584db158415e6e38884d6f4082138f2ffa9ef0f9 Mon Sep 17 00:00:00 2001 From: gretzke Date: Tue, 17 Oct 2023 23:28:06 +0200 Subject: [PATCH 10/17] Update README.md --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d2f0533..d99f3c4 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,15 @@ A default implementation is included and this contract will be proxy upgradable ### Deployment +Forge scripts are used to deploy or upgrade contracts and an additional extract.js script can be used to generate a JSON and Markdown file with coalesced deployment information. (see [deployments](./deployments/)) + 1. Ensure .env file is set, `cp .env.example` -2. Populate Enviornment variables: `source .env` -3. We use a forge script to deploy the contracts, and have an additional extract.js script to store a JSON file with coalesced deployment information. (see [deployments](./deployments/)) +2. `source .env` + +3. Deploy using foundry -- (mainnet): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY` -- (testnet, goerli for example): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` +- (mainnet): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --etherscan-api-key $ETHERSCAN_API_KEY` +- (testnet, goerli for example): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` 4. Run `node scripts/util/extract.js [version = 1.0.0] [scriptName = Deploy.s.sol]` to extract deployment information from forge broadcast output (broadcast/latest-run.json). From f6265b60967ea17236fc1596d374de59488e6584 Mon Sep 17 00:00:00 2001 From: gretzke Date: Tue, 17 Oct 2023 23:52:11 +0200 Subject: [PATCH 11/17] rename scripts directory to script --- README.md | 6 +++--- docs/src/README.md | 13 ++++++++----- .../contract.DefaultEmissionManager.md | 2 +- .../contract.PolygonEcosystemToken.md | 2 +- .../contract.PolygonMigration.md | 2 +- .../interface.IDefaultEmissionManager.md | 2 +- .../interface.IPolygonEcosystemToken.md | 2 +- .../interface.IPolygonMigration.md | 2 +- docs/src/src/lib/PowUtil.sol/library.PowUtil.md | 2 +- foundry.toml | 6 +++--- {scripts => script}/1.0.0/Deploy.goerli.s.sol | 2 +- {scripts => script}/1.0.0/input.json | 0 {scripts => script}/1.1.0/Deploy.s.sol | 2 +- .../1.1.0/UpgradeEmissionManager.goerli.s.sol | 2 +- {scripts => script}/1.1.0/input.json | 0 {scripts => script}/config.json | 0 {scripts => script}/utils/extract.js | 6 +++--- slither.config.json | 2 +- 18 files changed, 28 insertions(+), 25 deletions(-) rename {scripts => script}/1.0.0/Deploy.goerli.s.sol (97%) rename {scripts => script}/1.0.0/input.json (100%) rename {scripts => script}/1.1.0/Deploy.s.sol (97%) rename {scripts => script}/1.1.0/UpgradeEmissionManager.goerli.s.sol (93%) rename {scripts => script}/1.1.0/input.json (100%) rename {scripts => script}/config.json (100%) rename {scripts => script}/utils/extract.js (97%) diff --git a/README.md b/README.md index d99f3c4..0aed857 100644 --- a/README.md +++ b/README.md @@ -44,10 +44,10 @@ Forge scripts are used to deploy or upgrade contracts and an additional extract. 3. Deploy using foundry -- (mainnet): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --etherscan-api-key $ETHERSCAN_API_KEY` -- (testnet, goerli for example): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` +- (mainnet): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --etherscan-api-key $ETHERSCAN_API_KEY` +- (testnet, goerli for example): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` -4. Run `node scripts/util/extract.js [version = 1.0.0] [scriptName = Deploy.s.sol]` to extract deployment information from forge broadcast output (broadcast/latest-run.json). +4. Run `node script/util/extract.js [version = 1.0.0] [scriptName = Deploy.s.sol]` to extract deployment information from forge broadcast output (broadcast/latest-run.json). ## Reference Deployments diff --git a/docs/src/README.md b/docs/src/README.md index d2f0533..0aed857 100644 --- a/docs/src/README.md +++ b/docs/src/README.md @@ -37,14 +37,17 @@ A default implementation is included and this contract will be proxy upgradable ### Deployment +Forge scripts are used to deploy or upgrade contracts and an additional extract.js script can be used to generate a JSON and Markdown file with coalesced deployment information. (see [deployments](./deployments/)) + 1. Ensure .env file is set, `cp .env.example` -2. Populate Enviornment variables: `source .env` -3. We use a forge script to deploy the contracts, and have an additional extract.js script to store a JSON file with coalesced deployment information. (see [deployments](./deployments/)) +2. `source .env` + +3. Deploy using foundry -- (mainnet): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY` -- (testnet, goerli for example): `forge script scripts/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --private-key $PRIVATE_KEY --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` +- (mainnet): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --etherscan-api-key $ETHERSCAN_API_KEY` +- (testnet, goerli for example): `forge script script/Deploy.s.sol --broadcast --verify --rpc-url $RPC_URL --verifier-url https://api-goerli.etherscan.io/api --chain-id 5` -4. Run `node scripts/util/extract.js [version = 1.0.0] [scriptName = Deploy.s.sol]` to extract deployment information from forge broadcast output (broadcast/latest-run.json). +4. Run `node script/util/extract.js [version = 1.0.0] [scriptName = Deploy.s.sol]` to extract deployment information from forge broadcast output (broadcast/latest-run.json). ## Reference Deployments diff --git a/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md b/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md index e5ddb24..0a53bfe 100644 --- a/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md +++ b/docs/src/src/DefaultEmissionManager.sol/contract.DefaultEmissionManager.md @@ -1,5 +1,5 @@ # DefaultEmissionManager -[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/DefaultEmissionManager.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/DefaultEmissionManager.sol) **Inherits:** Ownable2StepUpgradeable, [IDefaultEmissionManager](/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md) diff --git a/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md b/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md index d8a8ca1..9202b52 100644 --- a/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md +++ b/docs/src/src/PolygonEcosystemToken.sol/contract.PolygonEcosystemToken.md @@ -1,5 +1,5 @@ # PolygonEcosystemToken -[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/PolygonEcosystemToken.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/PolygonEcosystemToken.sol) **Inherits:** ERC20Permit, AccessControlEnumerable, [IPolygonEcosystemToken](/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md) diff --git a/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md b/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md index c53a57b..08dfc9b 100644 --- a/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md +++ b/docs/src/src/PolygonMigration.sol/contract.PolygonMigration.md @@ -1,5 +1,5 @@ # PolygonMigration -[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/PolygonMigration.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/PolygonMigration.sol) **Inherits:** Ownable2StepUpgradeable, [IPolygonMigration](/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md) diff --git a/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md b/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md index 91fe00a..bead873 100644 --- a/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md +++ b/docs/src/src/interfaces/IDefaultEmissionManager.sol/interface.IDefaultEmissionManager.md @@ -1,5 +1,5 @@ # IDefaultEmissionManager -[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/interfaces/IDefaultEmissionManager.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/interfaces/IDefaultEmissionManager.sol) **Author:** Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos) diff --git a/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md b/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md index 5cb040e..13aba64 100644 --- a/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md +++ b/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md @@ -1,5 +1,5 @@ # IPolygonEcosystemToken -[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/interfaces/IPolygonEcosystemToken.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/interfaces/IPolygonEcosystemToken.sol) **Inherits:** IERC20, IERC20Permit, IAccessControlEnumerable diff --git a/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md b/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md index 4166aea..2072f5f 100644 --- a/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md +++ b/docs/src/src/interfaces/IPolygonMigration.sol/interface.IPolygonMigration.md @@ -1,5 +1,5 @@ # IPolygonMigration -[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/interfaces/IPolygonMigration.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/interfaces/IPolygonMigration.sol) **Author:** Polygon Labs (@DhairyaSethi, @gretzke, @qedk) diff --git a/docs/src/src/lib/PowUtil.sol/library.PowUtil.md b/docs/src/src/lib/PowUtil.sol/library.PowUtil.md index a22ec86..40ea615 100644 --- a/docs/src/src/lib/PowUtil.sol/library.PowUtil.md +++ b/docs/src/src/lib/PowUtil.sol/library.PowUtil.md @@ -1,5 +1,5 @@ # PowUtil -[Git Source](https://github.com/0xPolygon/pol-token/blob/4e60db3944f1f433beb163a74034e19c0fc68cf0/src/lib/PowUtil.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/lib/PowUtil.sol) ## Functions diff --git a/foundry.toml b/foundry.toml index c7781a0..88b2a66 100644 --- a/foundry.toml +++ b/foundry.toml @@ -8,9 +8,9 @@ via_ir = true solc = '0.8.21' ffi = true fs_permissions = [ - { access = "read", path = "scripts/config.json" }, - { access = "read", path = "scripts/1.0.0/input.json" }, - { access = "read", path = "scripts/1.1.0/input.json" }, + { access = "read", path = "script/config.json" }, + { access = "read", path = "script/1.0.0/input.json" }, + { access = "read", path = "script/1.1.0/input.json" }, ] [profile.intense.fuzz] diff --git a/scripts/1.0.0/Deploy.goerli.s.sol b/script/1.0.0/Deploy.goerli.s.sol similarity index 97% rename from scripts/1.0.0/Deploy.goerli.s.sol rename to script/1.0.0/Deploy.goerli.s.sol index f4735b0..01b4d66 100644 --- a/scripts/1.0.0/Deploy.goerli.s.sol +++ b/script/1.0.0/Deploy.goerli.s.sol @@ -13,7 +13,7 @@ contract Deploy is Script { function run() public { uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - string memory input = vm.readFile("scripts/1.0.0/input.json"); + string memory input = vm.readFile("script/1.0.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); address matic = input.readAddress(string.concat(chainIdSlug, ".matic")); address governance = input.readAddress(string.concat(chainIdSlug, ".governance")); diff --git a/scripts/1.0.0/input.json b/script/1.0.0/input.json similarity index 100% rename from scripts/1.0.0/input.json rename to script/1.0.0/input.json diff --git a/scripts/1.1.0/Deploy.s.sol b/script/1.1.0/Deploy.s.sol similarity index 97% rename from scripts/1.1.0/Deploy.s.sol rename to script/1.1.0/Deploy.s.sol index a694c90..abb0f76 100644 --- a/scripts/1.1.0/Deploy.s.sol +++ b/script/1.1.0/Deploy.s.sol @@ -13,7 +13,7 @@ contract Deploy is Script { function run() public { uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - string memory input = vm.readFile("scripts/1.1.0/input.json"); + string memory input = vm.readFile("script/1.1.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); address matic = input.readAddress(string.concat(chainIdSlug, ".matic")); address governance = input.readAddress(string.concat(chainIdSlug, ".governance")); diff --git a/scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol b/script/1.1.0/UpgradeEmissionManager.goerli.s.sol similarity index 93% rename from scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol rename to script/1.1.0/UpgradeEmissionManager.goerli.s.sol index 2d87fdf..5252b5c 100644 --- a/scripts/1.1.0/UpgradeEmissionManager.goerli.s.sol +++ b/script/1.1.0/UpgradeEmissionManager.goerli.s.sol @@ -11,7 +11,7 @@ contract Deploy is Script { function run() public { uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - string memory input = vm.readFile("scripts/1.1.0/input.json"); + string memory input = vm.readFile("script/1.1.0/input.json"); string memory chainIdSlug = string(abi.encodePacked('["', vm.toString(block.chainid), '"]')); address migrationProxy = input.readAddress(string.concat(chainIdSlug, ".migrationProxy")); address stakeManager = input.readAddress(string.concat(chainIdSlug, ".stakeManager")); diff --git a/scripts/1.1.0/input.json b/script/1.1.0/input.json similarity index 100% rename from scripts/1.1.0/input.json rename to script/1.1.0/input.json diff --git a/scripts/config.json b/script/config.json similarity index 100% rename from scripts/config.json rename to script/config.json diff --git a/scripts/utils/extract.js b/script/utils/extract.js similarity index 97% rename from scripts/utils/extract.js rename to script/utils/extract.js index 59e7a42..fbb5d25 100644 --- a/scripts/utils/extract.js +++ b/script/utils/extract.js @@ -4,7 +4,7 @@ const { join } = require("path"); /** * @description Extracts contract deployment data from run-latest.json (foundry broadcast output) and writes to deployments/{chainId}.json - * @usage node scripts/utils/extract.js {chainId} [version = "1.0.0"] [scriptName = "Deploy.s.sol"] + * @usage node script/utils/extract.js {chainId} [version = "1.0.0"] [scriptName = "Deploy.s.sol"] * @dev * currently only supports TransparentUpgradeableProxy pattern */ @@ -434,12 +434,12 @@ function validateInputs() { ) ) { console.log( - `error: scripts/${version}/input.json or scripts/${version}/${scriptName || ""} does not exist\n` + `error: script/${version}/input.json or script/${version}/${scriptName || ""} does not exist\n` ); printUsageAndExit = true; } if (printUsageAndExit) { - console.log(`usage: node scripts/utils/extract.js {chainId} [version = "1.0.0"] [scriptName = "Deploy.s.sol"]`); + console.log(`usage: node script/utils/extract.js {chainId} [version = "1.0.0"] [scriptName = "Deploy.s.sol"]`); process.exit(1); } } diff --git a/slither.config.json b/slither.config.json index e0d7e2a..3583960 100644 --- a/slither.config.json +++ b/slither.config.json @@ -1,3 +1,3 @@ { - "filter_paths": "(lib/|test/|scripts/)" + "filter_paths": "(lib/|test/|script/)" } From 5cda0ddea735314caa40abc5a6968b32909bb9a8 Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Wed, 18 Oct 2023 04:42:00 +0530 Subject: [PATCH 12/17] new: check impl address on proxy --- script/utils/extract.js | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/script/utils/extract.js b/script/utils/extract.js index fbb5d25..660a961 100644 --- a/script/utils/extract.js +++ b/script/utils/extract.js @@ -86,6 +86,45 @@ async function main() { } else { if (out.history.find((h) => h.commitHash === commitHash)) return console.log("warn: commitHash already deployed"); // if commitHash already exists in history, return + for (const { contractName, contractAddress } of deployments) { + if (Object.keys(out.latest).includes(contractName) && out.latest[contractName].proxy) { + // new deployment, check if implementation changed on chain + if (out.latest[contractName].proxyType !== "TransparentUpgradeableProxy") continue; // only support TransparentUpgradeableProxy pattern + const currentImplementation = getImplementationAddress( + out.latest[contractName].address, + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + rpcUrl + ); + if (currentImplementation === out.latest[contractName].implementation) + throw new Error( + `Implementation for ${contractName}(${out.latest[contractName]}) did not change - ${currentImplementation}` + ); + if (currentImplementation !== contractAddress) + throw new Error( + `Implementation mismatch for ${contractName}(${out.latest[contractName]}), onchain - ${currentImplementation}, deployed - ${contractAddress}` + ); + + // currentImplementation === contractAddress + // implementation changed, update latestContracts + latestContracts[contractName] = { + ...out.latest[contractName], + implementation: toChecksumAddress(newImplementationAddress), + version: (await getVersion(newImplementationAddress, rpcUrl))?.version || version, + timestamp, + commitHash, + }; + out.history.unshift({ + contracts: Object.entries(latestContracts).reduce((obj, [key, { timestamp, commitHash, ...rest }]) => { + obj[key] = rest; + return obj; + }, {}), + input: input[chainId], + timestamp, + commitHash, + }); + } + } + const deployedContractsMap = new Map( Object.entries(out.latest).map(([contractName, { address }]) => [address.toLowerCase(), contractName]) ); @@ -143,6 +182,21 @@ function toChecksumAddress(address) { } } +function getImplementationAddress(proxyAddress, implementationSlot, rpcUrl) { + try { + const implementationAddress = execSync(`cast storage ${proxyAddress} ${implementationSlot} --rpc-url ${rpcUrl}`) + .toString() + .trim(); // note: update if not using cast + if (implementationAddress === "0x0000000000000000000000000000000000000000000000000000000000000000") + throw new Error(`empty implementation address for ${proxyAddress} at slot ${implementationSlot}`); + const trimmedAddress = "0x" + implementationAddress.substring(66 - 40, 66); + return toChecksumAddress(trimmedAddress); + } catch (e) { + console.log("ERROR", e); + return "0x0000000000000000000000000000000000000000"; + } +} + async function getVersion(contractAddress, rpcUrl) { try { const res = await ( From b42f4e68e2bfa046951797d6c478cfe39ba26f9d Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Wed, 18 Oct 2023 04:47:08 +0530 Subject: [PATCH 13/17] fix: error logging --- script/utils/extract.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/utils/extract.js b/script/utils/extract.js index 660a961..1845150 100644 --- a/script/utils/extract.js +++ b/script/utils/extract.js @@ -97,11 +97,11 @@ async function main() { ); if (currentImplementation === out.latest[contractName].implementation) throw new Error( - `Implementation for ${contractName}(${out.latest[contractName]}) did not change - ${currentImplementation}` + `Implementation for ${contractName}(${out.latest[contractName].address}) did not change - ${currentImplementation}` ); if (currentImplementation !== contractAddress) throw new Error( - `Implementation mismatch for ${contractName}(${out.latest[contractName]}), onchain - ${currentImplementation}, deployed - ${contractAddress}` + `Implementation mismatch for ${contractName}(${out.latest[contractName].address}), onchain - ${currentImplementation}, deployed - ${contractAddress}` ); // currentImplementation === contractAddress From d2124975f5cc5fc4789505431dbe90bc1031836e Mon Sep 17 00:00:00 2001 From: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com> Date: Wed, 18 Oct 2023 04:54:58 +0530 Subject: [PATCH 14/17] fix: error string --- script/utils/extract.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/script/utils/extract.js b/script/utils/extract.js index 1845150..5f79665 100644 --- a/script/utils/extract.js +++ b/script/utils/extract.js @@ -97,7 +97,7 @@ async function main() { ); if (currentImplementation === out.latest[contractName].implementation) throw new Error( - `Implementation for ${contractName}(${out.latest[contractName].address}) did not change - ${currentImplementation}` + `Implementation for ${contractName}(${out.latest[contractName].address}) did not change - ${currentImplementation}, deployed - ${contractAddress}` ); if (currentImplementation !== contractAddress) throw new Error( @@ -108,8 +108,8 @@ async function main() { // implementation changed, update latestContracts latestContracts[contractName] = { ...out.latest[contractName], - implementation: toChecksumAddress(newImplementationAddress), - version: (await getVersion(newImplementationAddress, rpcUrl))?.version || version, + implementation: toChecksumAddress(currentImplementation), + version: (await getVersion(currentImplementation, rpcUrl))?.version || version, timestamp, commitHash, }; From 0e4d4845f5a18bc5296d07cb4ccd3bd86aaf7bed Mon Sep 17 00:00:00 2001 From: gretzke Date: Wed, 18 Oct 2023 01:41:11 +0200 Subject: [PATCH 15/17] v1.1.0 upgrade to default emission manager on Goerli Testnet --- .../5/run-1697585431.json | 37 +++++++++++ .../5/run-1697585437.json | 66 +++++++++++++++++++ .../5/run-1697585466.json | 66 +++++++++++++++++++ .../5/run-latest.json | 66 +++++++++++++++++++ deployments/5.md | 54 +++++++++++++-- deployments/json/5.json | 28 ++++++-- 6 files changed, 308 insertions(+), 9 deletions(-) create mode 100644 broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585431.json create mode 100644 broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585437.json create mode 100644 broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585466.json create mode 100644 broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-latest.json diff --git a/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585431.json b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585431.json new file mode 100644 index 0000000..48bdfe3 --- /dev/null +++ b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585431.json @@ -0,0 +1,37 @@ +{ + "transactions": [ + { + "hash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd2e", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc5760209051669780cc86ea48988152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e312e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47576003840491610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b669780cc86ea48989080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea26469706673582212202b7f96ad3870372b47dc953b76e8d0bdbcd67d99f98564b55e72f6c02bc2aa3a64736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0xb", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04" + ], + "returns": {}, + "timestamp": 1697585431, + "chain": 5, + "multi": false, + "commit": "444a61b" +} \ No newline at end of file diff --git a/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585437.json b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585437.json new file mode 100644 index 0000000..0bf4296 --- /dev/null +++ b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585437.json @@ -0,0 +1,66 @@ +{ + "transactions": [ + { + "hash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd2e", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc5760209051669780cc86ea48988152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e312e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47576003840491610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b669780cc86ea48989080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea26469706673582212202b7f96ad3870372b47dc953b76e8d0bdbcd67d99f98564b55e72f6c02bc2aa3a64736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0xb", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionIndex": "0x0", + "blockHash": "0xe121c18fc5031c74b5589d19bfe9961f58b1e733bd57cdf8d7cff25318dd9fc4", + "blockNumber": "0x96d586", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x13da71", + "gasUsed": "0x13da71", + "contractAddress": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "logs": [ + { + "address": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xe121c18fc5031c74b5589d19bfe9961f58b1e733bd57cdf8d7cff25318dd9fc4", + "blockNumber": "0x96d586", + "transactionHash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1697585437, + "chain": 5, + "multi": false, + "commit": "444a61b" +} \ No newline at end of file diff --git a/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585466.json b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585466.json new file mode 100644 index 0000000..19b3864 --- /dev/null +++ b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-1697585466.json @@ -0,0 +1,66 @@ +{ + "transactions": [ + { + "hash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd2e", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc5760209051669780cc86ea48988152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e312e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47576003840491610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b669780cc86ea48989080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea26469706673582212202b7f96ad3870372b47dc953b76e8d0bdbcd67d99f98564b55e72f6c02bc2aa3a64736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0xb", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionIndex": "0x0", + "blockHash": "0xe121c18fc5031c74b5589d19bfe9961f58b1e733bd57cdf8d7cff25318dd9fc4", + "blockNumber": "0x96d586", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x13da71", + "gasUsed": "0x13da71", + "contractAddress": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "logs": [ + { + "address": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xe121c18fc5031c74b5589d19bfe9961f58b1e733bd57cdf8d7cff25318dd9fc4", + "blockNumber": "0x96d586", + "transactionHash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1697585466, + "chain": 5, + "multi": false, + "commit": "444a61b" +} \ No newline at end of file diff --git a/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-latest.json b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-latest.json new file mode 100644 index 0000000..19b3864 --- /dev/null +++ b/broadcast/UpgradeEmissionManager.goerli.s.sol/5/run-latest.json @@ -0,0 +1,66 @@ +{ + "transactions": [ + { + "hash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionType": "CREATE", + "contractName": "DefaultEmissionManager", + "contractAddress": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "function": null, + "arguments": [ + "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + ], + "transaction": { + "type": "0x02", + "from": "0x95e6f8bd0549786c2a49f6546cf51410889f9330", + "gas": "0x19cd2e", + "value": "0x0", + "data": "0x61010034620001c357601f6200181438819003918201601f191683019291906001600160401b03841183851017620001c8578160609284926040968752833981010312620001c3576200005281620001de565b906200006e836200006660208401620001de565b9201620001de565b916001600160a01b03908116908115908115620001b7575b8115620001ab575b506200019a573360805260a05260c05260e05260005460ff8160081c16620001465760ff808216036200010b575b50516116209081620001f482396080518161040b015260a051818181610492015281816107460152610c78015260c0518181816102c90152610cae015260e0518181816103740152610c280152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160ff8152a138620000bc565b815162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b835163e6c4247b60e01b8152600490fd5b9050831615386200008e565b83811615915062000086565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001c35756fe608060408181526004918236101561001657600080fd5b600092833560e01c9182630d8e6e2c1461078e575081631249c58b146107755781631705a3bd1461073157816321daf0851461070a578163485cc955146103a357816361d027b31461035f578163715018a6146102f85781637542ff95146102b457816379ba50971461022757816387b1103414610200575080638da5cb5b146101d8578063e30c3978146101b0578063e6fd48bc14610192578063f2fde38b14610121578063f6908f7c146101005763fc0c546a146100d557600080fd5b346100fc57816003193601126100fc5760975490516001600160a01b039091168152602090f35b5080fd5b50346100fc57816003193601126100fc5760209051669780cc86ea48988152f35b823461018f57602036600319011261018f5761013b610818565b610143610889565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346100fc57816003193601126100fc576020906098549051908152f35b50346100fc57816003193601126100fc5760655490516001600160a01b039091168152602090f35b50346100fc57816003193601126100fc5760335490516001600160a01b039091168152602090f35b82843461018f57602036600319011261018f575061022060209235610d8c565b9051908152f35b919050346102b057826003193601126102b057606554336001600160a01b039091160361025b578261025833610833565b80f35b906020608492519162461bcd60e51b8352820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152fd5b8280fd5b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610311610889565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102b057816003193601126102b0576103bd610818565b6001600160a01b03916024803591848316908184036107065787549460ff8660081c1615958680976106f9575b80156106e2575b156106895760ff1981166001178a5586610678575b5033877f0000000000000000000000000000000000000000000000000000000000000000160361067457861691821590811561066b575b5061065d57609780546001600160a01b031916831790554260985586516318160ddd60e01b81526020969087818481875afa908115610614578a91610630575b506b204fce5e3e250261100000000361061e577f000000000000000000000000000000000000000000000000000000000000000016928751636eb1769f60e11b8152308382015284828201528781604481875afa908115610614578a916105e3575b506105825787519363095ea7b360e01b8886015281850152600019604485015260448452608084019184831067ffffffffffffffff8411176105715750508652610532929161052d91610949565b610833565b61053a578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b634e487b7160e01b8a526041905288fd5b875162461bcd60e51b81529182018790526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b90508781813d831161060d575b6105fa8183610927565b810103126106095751386104df565b8980fd5b503d6105f0565b89513d8c823e3d90fd5b634e487b7160e01b8952600182528389fd5b90508781813d8311610656575b6106478183610927565b8101031261060957513861047d565b503d61063d565b865163e6c4247b60e01b8152fd5b9050153861043d565b8880fd5b61ffff191661010117895538610406565b885162461bcd60e51b8152602081850152602e818701527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156103f15750600160ff8216146103f1565b50600160ff8216106103ea565b8780fd5b5050346100fc57816003193601126100fc57602090516b204fce5e3e250261100000008152f35b5050346100fc57816003193601126100fc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b833461018f578060031936011261018f57610258610b45565b849084346102b057826003193601126102b0576107cb92506107af8261090b565b60058252640312e312e360dc1b602083015251918291826107cf565b0390f35b6020808252825181830181905290939260005b82811061080457505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107e2565b600435906001600160a01b038216820361082e57565b600080fd5b6bffffffffffffffffffffffff60a01b90816065541660655560335460018060a01b038092168093821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6033546001600160a01b0316330361089d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff81116108f557604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176108f557604052565b90601f8019910116810190811067ffffffffffffffff8211176108f557604052565b60018060a01b03169060405161095e8161090b565b6020928382527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848301526000808486829651910182855af13d15610a83573d9167ffffffffffffffff8311610a6f57906109d9939291604051926109cc88601f19601f8401160185610927565b83523d868885013e610a8d565b805191821591848315610a4b575b5050509050156109f45750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126100fc5782015190811515820361018f5750803880846109e7565b634e487b7160e01b85526041600452602485fd5b906109d992916060915b91929015610aef5750815115610aa1575090565b3b15610aaa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b025750805190602001fd5b60405162461bcd60e51b8152908190610b1e90600483016107cf565b0390fd5b91908203918211610b2f57565b634e487b7160e01b600052601160045260246000fd5b609754604080516318160ddd60e01b81526000926001600160a01b03908116916020908181600481875afa8015610d82578690610d4f575b610b9b9150610b96610b9160985442610b22565b610d8c565b610b22565b928315610d47576003840491610bb18386610b22565b947fcae919fa60d0c9867c5b3e0a9529934bca78c09d353736e3327f74837594adc58780518381523385820152a1823b156107065786516340c10f1960e01b81523060048201526024810191909152878160448183875af18015610d3d57610d20575b50855163a9059cbb60e01b918101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166024820152604480820193909352918252610c769190610c71606483610927565b610949565b7f00000000000000000000000000000000000000000000000000000000000000001690813b15610d1c578251630899d25960e41b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810191909152919083908390604490829084905af1908115610d135750610d02575050565b610d0c82916108e1565b61018f5750565b513d84823e3d90fd5b8380fd5b610c7693929197610d33610c71926108e1565b9791929350610c14565b87513d8a823e3d90fd5b505050505050565b508181813d8311610d7b575b610d658183610927565b81010312610d7757610b9b9051610b7d565b8580fd5b503d610d5b565b85513d88823e3d90fd5b669780cc86ea48989080820291820403610b2f57670de0b6b3a764000090816301e1338060409204821b0482600160bf1b67ff0000000000000083166114d9575b66ff00000000000083166113d1575b65ff000000000083166112d1575b64ff0000000083166111d9575b63ff00000083166110e9575b62ff00008316611001575b61ff008316610f21575b60ff8316610e4a575b02911c60bf031c6b204fce5e3e2502611000000090818102918183041490151715610b2f570490565b60808316610f0f575b838316610efd575b60208316610eeb575b60108316610ed9575b60088316610ec7575b60048316610eb5575b60028316610ea3575b6001831615610e21576801000000000000000102831c610e21565b6801000000000000000102831c610e88565b6801000000000000000302831c610e7f565b6801000000000000000602831c610e76565b6801000000000000000b02831c610e6d565b6801000000000000001602831c610e64565b6801000000000000002c02831c610e5b565b6801000000000000005902831c610e53565b6180008316610fef575b6140008316610fdd575b6120008316610fcb575b6110008316610fb9575b6108008316610fa7575b6104008316610f95575b6102008316610f83575b610100831615610e1857680100000000000000b102831c610e18565b6801000000000000016302831c610f67565b680100000000000002c602831c610f5d565b6801000000000000058c02831c610f53565b68010000000000000b1702831c610f49565b6801000000000000162e02831c610f3f565b68010000000000002c5d02831c610f35565b680100000000000058b902831c610f2b565b6280000083166110d7575b6240000083166110c5575b6220000083166110b3575b6210000083166110a1575b62080000831661108f575b62040000831661107d575b62020000831661106b575b62010000831615610e0e576801000000000000b17202831c610e0e565b680100000000000162e402831c61104e565b6801000000000002c5c802831c611043565b68010000000000058b9102831c611038565b680100000000000b172102831c61102d565b68010000000000162e4302831c611022565b680100000000002c5c8602831c611017565b6801000000000058b90c02831c61100c565b638000000083166111c7575b634000000083166111b5575b632000000083166111a3575b63100000008316611191575b6308000000831661117f575b6304000000831661116d575b6302000000831661115b575b6301000000831615610e035768010000000000b1721802831c610e03565b6801000000000162e43002831c61113d565b68010000000002c5c86002831c611131565b680100000000058b90c002831c611125565b6801000000000b17217f02831c611119565b680100000000162e42ff02831c61110d565b6801000000002c5c85fe02831c611101565b68010000000058b90bfc02831c6110f5565b64800000000083166112bf575b64400000000083166112ad575b642000000000831661129b575b6410000000008316611289575b6408000000008316611277575b6404000000008316611265575b6402000000008316611253575b640100000000831615610df757680100000000b17217f802831c610df7565b68010000000162e42ff102831c611234565b680100000002c5c85fe302831c611227565b6801000000058b90bfce02831c61121a565b68010000000b17217fbb02831c61120d565b6801000000162e42fff002831c611200565b68010000002c5c8601cc02831c6111f3565b680100000058b90c0b4902831c6111e6565b6580000000000083166113bf575b6540000000000083166113ad575b65200000000000831661139b575b651000000000008316611389575b650800000000008316611377575b650400000000008316611365575b650200000000008316611353575b65010000000000831615610dea576801000000b17218355102831c610dea565b680100000162e430e5a202831c611333565b6801000002c5c863b73f02831c611325565b68010000058b90cf1e6e02831c611317565b680100000b1721bcfc9a02831c611309565b68010000162e43f4f83102831c6112fb565b680100002c5c89d5ec6d02831c6112ed565b6801000058b91b5bc9ae02831c6112df565b668000000000000083166114c7575b664000000000000083166114b5575b662000000000000083166114a3575b66100000000000008316611491575b6608000000000000831661147f575b6604000000000000831661146d575b6602000000000000831661145b575b6601000000000000831615610ddc5768010000b17255775c0402831c610ddc565b6801000162e525ee054702831c61143a565b68010002c5cc37da949202831c61142b565b680100058ba01fb9f96d02831c61141c565b6801000b175effdc76ba02831c61140d565b680100162f3904051fa102831c6113fe565b6801002c605e2e8cec5002831c6113ef565b68010058c86da1c09ea202831c6113e0565b67800000000000000083166115d7575b67400000000000000083166115c5575b67200000000000000083166115b3575b67100000000000000083166115a1575b670800000000000000831661158f575b670400000000000000831661157d575b670200000000000000831661156b575b670100000000000000831615610dcd57680100b1afa5abcbed6102831c610dcd565b68010163da9fb33356d802831c611549565b680102c9a3e778060ee702831c611539565b6801059b0d31585743ae02831c611529565b68010b5586cf9890f62a02831c611519565b6801172b83c7d517adce02831c611509565b6801306fe0a31b7152df02831c6114f9565b5068016a09e667f3bcc909607f1b6114e956fea26469706673582212202b7f96ad3870372b47dc953b76e8d0bdbcd67d99f98564b55e72f6c02bc2aa3a64736f6c634300081500330000000000000000000000005c5589fca76237ed00ba024e19b6c077a108f68700000000000000000000000000200ea4ee292e253e6ca07dba5edc07c8aa37a3000000000000000000000000531c7befe78b6496e5753815ab3d3cc024c1e842", + "nonce": "0xb", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionIndex": "0x0", + "blockHash": "0xe121c18fc5031c74b5589d19bfe9961f58b1e733bd57cdf8d7cff25318dd9fc4", + "blockNumber": "0x96d586", + "from": "0x95e6F8BD0549786c2a49F6546Cf51410889f9330", + "to": null, + "cumulativeGasUsed": "0x13da71", + "gasUsed": "0x13da71", + "contractAddress": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "logs": [ + { + "address": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xe121c18fc5031c74b5589d19bfe9961f58b1e733bd57cdf8d7cff25318dd9fc4", + "blockNumber": "0x96d586", + "transactionHash": "0x25bc708e7a3943104d5f0d95739c2f28233b114c919cf4c345cf95765141bf04", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000", + "type": "0x2", + "effectiveGasPrice": "0xb2d05e07" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1697585466, + "chain": 5, + "multi": false, + "commit": "444a61b" +} \ No newline at end of file diff --git a/deployments/5.md b/deployments/5.md index 1f5a7f1..0401618 100644 --- a/deployments/5.md +++ b/deployments/5.md @@ -9,6 +9,8 @@ - [Proxy Admin](#proxy-admin) - [Polygon Ecosystem Token](#polygon-ecosystem-token) - [Deployment History](#deployment-history) + - [1.1.0](#110) + - [1.0.0](#100) ## Summary @@ -25,7 +27,7 @@ DefaultEmissionManager 0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d - 1.0.0 + 1.1.0 ProxyAdmin @@ -94,11 +96,11 @@ Address: [0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d](https://goerli.etherscan.i Deployment Txn: [0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02](https://goerli.etherscan.io/tx/0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02) -Version: [1.0.0](https://github.com/0xPolygon/pol-token/releases/tag/1.0.0) +Version: [1.1.0](https://github.com/0xPolygon/pol-token/releases/tag/1.1.0) -Commit Hash: [9af97e8](https://github.com/0xPolygon/pol-token/commit/9af97e84fca5f31e7351cb91b85ac7dd5f40f563) +Commit Hash: [c998725](https://github.com/0xPolygon/pol-token/commit/c998725f1e40f23bf3e6916c8d1ae305b473877b) -Wed, 04 Oct 2023 10:36:56 UTC +Tue, 17 Oct 2023 23:31:06 UTC _Proxy Information_ @@ -109,7 +111,7 @@ Proxy Type: TransparentUpgradeableProxy -Implementation: [0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393](https://goerli.etherscan.io/address/0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393) +Implementation: [0x16258ebEa8eb68271Ca2677aBE05256265398A4D](https://goerli.etherscan.io/address/0x16258ebEa8eb68271Ca2677aBE05256265398A4D) @@ -125,6 +127,11 @@ Proxy Admin: [0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2](https://goerli.ethersc Address Commit Hash + + 1.1.0 + 0x16258ebEa8eb68271Ca2677aBE05256265398A4D + c998725 + 1.0.0 0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393 @@ -170,6 +177,43 @@ Wed, 04 Oct 2023 10:36:56 UTC ### Deployment History +### [1.1.0](https://github.com/0xPolygon/pol-token/releases/tag/1.1.0) + +Tue, 17 Oct 2023 23:31:06 UTC + +Commit Hash: [c998725](https://github.com/0xPolygon/pol-token/commit/c998725f1e40f23bf3e6916c8d1ae305b473877b) + +Deployed contracts: + +- [Default Emission Manager](https://goerli.etherscan.io/address/0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d) ([Implementation](https://goerli.etherscan.io/address/0x16258ebEa8eb68271Ca2677aBE05256265398A4D)) + +
+Inputs + + + + + + + + + + + + + + + + + + + + +
ParameterValue
migrationProxy0x5c5589fca76237Ed00BA024e19b6C077a108f687
stakeManager0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3
treasury0x531c7Befe78B6496e5753815ab3d3Cc024c1E842
+
+ + + ### [1.0.0](https://github.com/0xPolygon/pol-token/releases/tag/1.0.0) Wed, 04 Oct 2023 10:36:56 UTC diff --git a/deployments/json/5.json b/deployments/json/5.json index 9fdaf1c..d19f622 100644 --- a/deployments/json/5.json +++ b/deployments/json/5.json @@ -13,15 +13,15 @@ "commitHash": "9af97e84fca5f31e7351cb91b85ac7dd5f40f563" }, "DefaultEmissionManager": { - "implementation": "0xe76193f2107bF7Cc9C6A0de6af63D3C74b936393", + "implementation": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", "proxy": true, - "version": "1.0.0", + "version": "1.1.0", "proxyType": "TransparentUpgradeableProxy", - "timestamp": 1696415816, + "timestamp": 1697585466, "deploymentTxn": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02", - "commitHash": "9af97e84fca5f31e7351cb91b85ac7dd5f40f563" + "commitHash": "c998725f1e40f23bf3e6916c8d1ae305b473877b" }, "ProxyAdmin": { "address": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", @@ -40,6 +40,26 @@ } }, "history": [ + { + "contracts": { + "DefaultEmissionManager": { + "implementation": "0x16258ebEa8eb68271Ca2677aBE05256265398A4D", + "proxyAdmin": "0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2", + "address": "0x0e481cfeB712d37A0C6cd4e2801cA01E09Bc1A9d", + "proxy": true, + "version": "1.1.0", + "proxyType": "TransparentUpgradeableProxy", + "deploymentTxn": "0xff69667f86a1050432a4d07f93d6202b9141bad1d0e73da42675e1fdf9b1ce02" + } + }, + "input": { + "migrationProxy": "0x5c5589fca76237Ed00BA024e19b6C077a108f687", + "stakeManager": "0x00200eA4Ee292E253E6Ca07dBA5EdC07c8Aa37A3", + "treasury": "0x531c7Befe78B6496e5753815ab3d3Cc024c1E842" + }, + "timestamp": 1697585466, + "commitHash": "c998725f1e40f23bf3e6916c8d1ae305b473877b" + }, { "contracts": { "PolygonMigration": { From 50afc6b87467948a80ba9f5883c4ce85e0f7be1e Mon Sep 17 00:00:00 2001 From: gretzke Date: Wed, 18 Oct 2023 01:45:33 +0200 Subject: [PATCH 16/17] fix markdown styling --- deployments/5.md | 5 ++--- script/utils/extract.js | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/deployments/5.md b/deployments/5.md index 0401618..9366b43 100644 --- a/deployments/5.md +++ b/deployments/5.md @@ -10,7 +10,6 @@ - [Polygon Ecosystem Token](#polygon-ecosystem-token) - [Deployment History](#deployment-history) - [1.1.0](#110) - - [1.0.0](#100) ## Summary @@ -72,7 +71,7 @@ Proxy Admin: [0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2](https://goerli.ethersc
-Implementation History +Implementation History @@ -120,7 +119,7 @@ Proxy Admin: [0x9Ed32fDC7E4600E1F733dbCEA750C19E7830FBc2](https://goerli.ethersc
-Implementation History +Implementation History
Version
diff --git a/script/utils/extract.js b/script/utils/extract.js index 5f79665..12bd0b8 100644 --- a/script/utils/extract.js +++ b/script/utils/extract.js @@ -241,7 +241,7 @@ function generateMarkdown(input) { const { deploymentHistoryMd, allVersions } = generateDeploymentHistory(input.history, input.latest, input.chainId); out += Object.keys(allVersions) .map((v) => `\n\t- [${v}](#${v.replace(/\./g, "")})`) - .join("\n"); + .join(""); out += `\n\n## Summary
Version
@@ -346,7 +346,7 @@ function generateProxyInformationIfProxy({ out += `\n`; out += `
-Implementation History +Implementation History
From c386afc4d074038a5b9fd3d1e522b496ba26aa87 Mon Sep 17 00:00:00 2001 From: gretzke Date: Wed, 18 Oct 2023 13:33:01 +0200 Subject: [PATCH 17/17] update documentation to correct value --- .../interface.IPolygonEcosystemToken.md | 4 ++-- src/interfaces/IPolygonEcosystemToken.sol | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md b/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md index 13aba64..9544532 100644 --- a/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md +++ b/docs/src/src/interfaces/IPolygonEcosystemToken.sol/interface.IPolygonEcosystemToken.md @@ -1,5 +1,5 @@ # IPolygonEcosystemToken -[Git Source](https://github.com/0xPolygon/pol-token/blob/7a1dec282d430e9f94fc81b42f7da0c058e0221b/src/interfaces/IPolygonEcosystemToken.sol) +[Git Source](https://github.com/0xPolygon/pol-token/blob/c90f15d50e8eaa68c8104f9ffe45a66d1d128a64/src/interfaces/IPolygonEcosystemToken.sol) **Inherits:** IERC20, IERC20Permit, IAccessControlEnumerable @@ -115,7 +115,7 @@ function PERMIT2() external view returns (address); ### mintPerSecondCap -*13.37 POL tokens per second. will limit emission in ~23 years* +*13.37 POL tokens per second. will limit emission in ~12 years* ```solidity diff --git a/src/interfaces/IPolygonEcosystemToken.sol b/src/interfaces/IPolygonEcosystemToken.sol index 6a3280e..0ae6f73 100644 --- a/src/interfaces/IPolygonEcosystemToken.sol +++ b/src/interfaces/IPolygonEcosystemToken.sol @@ -55,7 +55,7 @@ interface IPolygonEcosystemToken is IERC20, IERC20Permit, IAccessControlEnumerab function PERMIT2() external view returns (address); /// @return currentMintPerSecondCap the current amount of tokens that can be minted per second - /// @dev 13.37 POL tokens per second. will limit emission in ~23 years + /// @dev 13.37 POL tokens per second. will limit emission in ~12 years function mintPerSecondCap() external view returns (uint256 currentMintPerSecondCap); /// @return lastMintTimestamp the timestamp of the last mint
Version