diff --git a/substrate/eth-bridge/contracts/.gitignore b/substrate/eth-bridge/contracts/.gitignore deleted file mode 100644 index 85198aaa55..0000000000 --- a/substrate/eth-bridge/contracts/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -# Compiler files -cache/ -out/ - -# Ignores development broadcast logs -!/broadcast -/broadcast/*/31337/ -/broadcast/**/dry-run/ - -# Docs -docs/ - -# Dotenv file -.env diff --git a/substrate/eth-bridge/contracts/.solhint.json b/substrate/eth-bridge/contracts/.solhint.json deleted file mode 100644 index 3b422aba76..0000000000 --- a/substrate/eth-bridge/contracts/.solhint.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "solhint:recommended", - "rules": { - "compiler-version": "off", - "constructor-syntax": "error", - "func-param-name-mixedcase": "error", - "modifier-name-mixedcase": "error", - "named-parameters-mapping": "error", - "private-vars-leading-underscore": ["error",{"strict":true}], - "func-visibility": ["warn",{"ignoreConstructors":true}], - "max-states-count": "off" - } -} diff --git a/substrate/eth-bridge/contracts/README.md b/substrate/eth-bridge/contracts/README.md deleted file mode 100644 index e4e3bade99..0000000000 --- a/substrate/eth-bridge/contracts/README.md +++ /dev/null @@ -1,207 +0,0 @@ -# Federated Bridge EVM Contracts - -## Overview - -This project is a part of Substrate <-> ETH bridge designed for bridging LLM and -LLD tokens to Ethereum network. - -## Terminology - -* Bridge - complete system for transferring LLD/LLM to/from ETH, consisting of the bridge - pallet, relays, watchers and bridge contract. -* Bridge pallet - part of Substrate chain - handles locking and unlocking -* Bridge contract - contract deployed on ETH - handles minting and burning -* Mint/burn - create/destroy wrapped token on ETH side -* Lock/unlock - lock LLD/LLM on substrate side while it's wrapped in tokens on ETH side. -* Stop - state in which bridge stops all actions -* Federation - set of relays, capable of minting and unlocking. -* Relay - offchain software that monitors locks on substrate and burns on eth and relays them to - the other chain -* Watcher - monitors if relays don't misbehave - has right to stop bridge at any time -* Admin - someone with rights to stop/resume bridge -* Superadmin - account with rights to add/remove relay rights - -## Typical Substrate -> Eth transfer flow - -1. User deposits native tokens to bridge pallet, a Receipt is issued as an event -2. Relays see the Receipt event and relay it to bridge contract using `voteMint` call -3. User waits until `votesRequired` votes are cast -4. User calls `mint` on the bridge contract and gets tokens. - -## Typical Eth -> Substrate transfer flow - -1. User burns wrapped LLM/LLD using `burn` call on bridge contract, a Receipt is - issued as an event -2. Relays see the Receipt event and relay it to Substrate bridge pallet -3. User waits until required number of votes are cast by relays on substrate side -4. User calls `withdraw` on the substrate side. - -## Economics - -Running relays requires paying for resource use (CPU, storage, network) and -both Substrate and Ethereum network fees. As such, they're rewarded on each -successful withdrawal by user. - -The fee charged to user on withdrawal is set with `setFee` call and can be -queried using `fee()` call. - -This fee is divided relays that actually cast vote on given transfer. First -voter and voter that caused final approval of receipt get a bigger share, as -these actions use more gas. - -## Security - -Following security features are implemented in the contract: -* bridge is stopped if 2 relays claim different details about given Receipt (different amount, - recipient etc) -* bridge can be stopped by a watcher at any time -* bridge enforces rate-limit on mints -* bridge enforces minimum transfer amount -* bridge limits how many wrapped tokens can be in circulation -* there's a delay between approval of mint and actually allowing it - -## Official deployments - -Sepolia testnet (meant to be used with Liberland Bastiat testnet): - -``` -LDN ERC-20 token (proxy): 0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1 -LDN Bridge (proxy): 0xC4217e86A64Ccec4Ac1Ac6ce04Acba709b9D912B - -LKN ERC-20 token (proxy): 0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B -LKN Bridge (proxy): 0x195afd36BD3d831F4C1195a150584D6A7ebF546f - -Common bridge implementation: 0x7642C06e8e67D8b26eC483AdaC478dFb26135634 -Common token implementation: 0x70f5152D56132beFb503cCa1d6CCB6f5F49048a8 -``` - -All contracts are verified on [sourcify.eth](https://sourcify.dev/) and [Etherscan](https://sepolia.etherscan.io/). - -## Getting started - -### Install foundry - -[Foundry documentation](https://book.getfoundry.sh/getting-started/installation) - -### Install deps - -``` -> forge install -Updating dependencies in "/tmp/liberland_substrate/eth-bridge/contracts/lib" -``` - -### Build contracts - -``` -> forge build -[⠊] Compiling... -[⠑] Compiling 59 files with 0.8.18 -[⠊] Solc 0.8.18 finished in 4.56s -Compiler run successful -``` - -### Run tests - -``` -> forge test -vv -[...] -Test result: ok. 65 passed; 0 failed; finished in 8.75ms -``` - -### Deploy - -Read the `script/Deploy.s.sol` file to get details on used config parameters. - -Dry run: -``` -> forge script script/Deploy.s.sol -[⠢] Compiling... -No files changed, compilation skipped -Script ran successfully. -Gas used: 5238389 - -If you wish to simulate on-chain transactions pass a RPC URL. -``` - -Dry run on target network: -``` -> forge script script/Deploy.s.sol --rpc-url $RPC_URL --private-key $PRIVATE_KEY -[⠢] Compiling... -No files changed, compilation skipped -Script ran successfully. - -## Setting up (1) EVMs. - -========================== - -Chain 31337 - -Estimated gas price: 5 gwei - -Estimated total gas used for script: 7529029 - -Estimated amount required: 0.037645145 ETH - -========================== - -SIMULATION COMPLETE. To broadcast these transactions, add --broadcast and wallet configuration(s) to the previous command. See forge script --help for more. - -Transactions saved to: /home/kacper/liberland/liberland_substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/31337/dry-run/run-latest.json -``` - -Actually deploy: -``` -> forge script script/Deploy.s.sol --rpc-url $RPC_URL --private-key $PRIVATE_KEY --broadcast -[..] -ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. -Total Paid: 0.022781265579052796 ETH (5787973 gas * avg 3.909207263 gwei) - -Transactions saved to: /home/kacper/liberland/liberland_substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/31337/run-latest.json -``` - -Get contract addresses (replace path): -``` -> jq '.transactions | map(select(.transactionType == "CREATE")) | map(.contractName, .contractAddress)' broadcast/Deploy.s.sol/31337/run-latest.json -[ - "Bridge", - "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35", - "WrappedToken", - "0xA15BB66138824a1c7167f5E85b957d04Dd34E468", - "ERC1967Proxy", - "0xb19b36b1456E65E3A6D514D3F715f204BD59f431", - "ERC1967Proxy", - "0x8ce361602B935680E8DeC218b820ff5056BeB7af", - "ERC1967Proxy", - "0x0C8E79F3534B00D9a3D4a856B665Bf4eBC22f2ba", - "ERC1967Proxy", - "0xeD1DB453C3156Ff3155a97AD217b3087D5Dc5f6E" -] -``` -Note that `Bridge` and `WrappedToken` are underlying implementation and you can't use it directly - you must interact with Proxies. - -Take addresses of proxies and check which are tokens: -``` -> cast call 0xeD1DB453C3156Ff3155a97AD217b3087D5Dc5f6E 'name()' | cast --to-ascii -Error: -(code: 3, message: execution reverted, data: Some(String("0x"))) - -> cast call 0x0C8E79F3534B00D9a3D4a856B665Bf4eBC22f2ba 'name()' | cast --to-ascii - Liberland Merits -> cast call 0x8ce361602B935680E8DeC218b820ff5056BeB7af 'name()' | cast --to-ascii -Error: -(code: 3, message: execution reverted, data: Some(String("0x"))) - -> cast call 0xb19b36b1456E65E3A6D514D3F715f204BD59f431 'name()' | cast --to-ascii - Liberland Dollars -``` - -Take the proxy addresses that failed - these are bridge proxies - and check which tokens they use: -``` -> cast call 0x8ce361602B935680E8DeC218b820ff5056BeB7af 'token()' -0x000000000000000000000000b19b36b1456e65e3a6d514d3f715f204bd59f431 # LLD Token address - -> cast call 0xeD1DB453C3156Ff3155a97AD217b3087D5Dc5f6E 'token()' -0x0000000000000000000000000c8e79f3534b00d9a3d4a856b665bf4ebc22f2ba # LLM Token address -``` - -License: MIT diff --git a/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1686557556.json b/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1686557556.json deleted file mode 100644 index 742257edf4..0000000000 --- a/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1686557556.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xfee9d371f939b293ea6803eb6e0af6c4bd0e69342f91335eb6b8c0c4b9fe0f65", - "transactionType": "CREATE", - "contractName": "Bridge", - "contractAddress": "0x14cb6EDb15c156272B59e7Fd688a1F0b09C999d4", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x2dc7a1", - "value": "0x0", - "data": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516128556200012060003960008181610e8101528181610ec101528181610f6001528181610fa0015261102f01526128556000f3fe6080604052600436106102395760003560e01c806361e08e721161012e578063b53f5227116100ab578063ddca3f431161006f578063ddca3f4314610744578063ead93c8f1461075a578063f1ba83a114610774578063f72c0d8b14610796578063fc0c546a146107b857600080fd5b8063b53f5227146106af578063b88a802f146106cf578063bcf64e05146106e4578063d547741f14610704578063d9a755721461072457600080fd5b806391d14854116100f257806391d14854146105ae5780639f8ee31c146105ce578063a217fddf14610667578063acec338a1461067c578063adf2cead1461069c57600080fd5b806361e08e721461051a578063633433de1461053757806363a599a41461055757806369fe0e2d1461056c57806375b238fc1461058c57600080fd5b80632f2ff15d116101bc5780633659cfe6116101805780633659cfe61461047e5780634460bdd61461049e57806346aa52ce146104c05780634f1ef286146104f257806352d1902d1461050557600080fd5b80632f2ff15d146103da57806331d7a262146103fa57806334636e8e14610428578063361fab251461043e57806336568abe1461045e57600080fd5b80630c2891b7116102035780630c2891b71461031d5780630e0a999e1461035457806319d1997a1461037457806321e6b53d1461038a578063248a9ca3146103aa57600080fd5b80624f94071461023e578062688c401461026057806301ffc9a71461028057806304421823146102b55780630847a4fb146102e5575b600080fd5b34801561024a57600080fd5b5061025e610259366004612205565b6107d8565b005b34801561026c57600080fd5b5061025e61027b36600461224c565b6107f6565b34801561028c57600080fd5b506102a061029b3660046122ac565b610983565b60405190151581526020015b60405180910390f35b3480156102c157600080fd5b506102d760008051602061273983398151915281565b6040519081526020016102ac565b3480156102f157600080fd5b506103056103003660046122d6565b6109ba565b6040516001600160a01b0390911681526020016102ac565b34801561032957600080fd5b5060fb5461033f90610100900463ffffffff1681565b60405163ffffffff90911681526020016102ac565b34801561036057600080fd5b5061025e61036f3660046122f8565b6109f3565b34801561038057600080fd5b506102d760fe5481565b34801561039657600080fd5b5061025e6103a536600461234f565b610c48565b3480156103b657600080fd5b506102d76103c5366004612205565b60009081526065602052604090206001015490565b3480156103e657600080fd5b5061025e6103f536600461236c565b610ce5565b34801561040657600080fd5b506102d761041536600461234f565b6101026020526000908152604090205481565b34801561043457600080fd5b506102d760fd5481565b34801561044a57600080fd5b5061025e610459366004612205565b610ddb565b34801561046a57600080fd5b5061025e61047936600461236c565b610df9565b34801561048a57600080fd5b5061025e61049936600461234f565b610e77565b3480156104aa57600080fd5b506102d76000805160206127b983398151915281565b3480156104cc57600080fd5b5061010354610104546104dd919082565b604080519283526020830191909152016102ac565b61025e6105003660046123b2565b610f56565b34801561051157600080fd5b506102d7611022565b34801561052657600080fd5b5061010554610106546104dd919082565b34801561054357600080fd5b5061025e610552366004612476565b6110d5565b34801561056357600080fd5b5061025e611137565b34801561057857600080fd5b5061025e610587366004612205565b611182565b34801561059857600080fd5b506102d760008051602061280083398151915281565b3480156105ba57600080fd5b506102a06105c936600461236c565b6111a0565b3480156105da57600080fd5b5061062c6105e9366004612205565b61010060205260009081526040902080546001820154600283015460039093015467ffffffffffffffff831693600160401b9093046001600160a01b0316929085565b6040805167ffffffffffffffff90961686526001600160a01b039094166020860152928401919091526060830152608082015260a0016102ac565b34801561067357600080fd5b506102d7600081565b34801561068857600080fd5b5061025e61069736600461249f565b6111cb565b61025e6106aa366004612205565b6111ec565b3480156106bb57600080fd5b5061025e6106ca3660046122d6565b611417565b3480156106db57600080fd5b5061025e61143d565b3480156106f057600080fd5b5061025e6106ff3660046122d6565b6114ba565b34801561071057600080fd5b5061025e61071f36600461236c565b61154d565b34801561073057600080fd5b506102a061073f36600461236c565b61163e565b34801561075057600080fd5b506102d760fc5481565b34801561076657600080fd5b5060fb546102a09060ff1681565b34801561078057600080fd5b506102d760008051602061277983398151915281565b3480156107a257600080fd5b506102d760008051602061275983398151915281565b3480156107c457600080fd5b5060ff54610305906001600160a01b031681565b6000805160206127b98339815191526107f08161165e565b5060fd55565b600054610100900460ff16158080156108165750600054600160ff909116105b806108305750303b158015610830575060005460ff166001145b6108985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156108bb576000805461ff0019166101001790555b6108c3611668565b6108cb611668565b60ff80546001600160a01b0319166001600160a01b038a1617905561010584905561010683905560fb805464ffffffff00191661010063ffffffff8a160217905560fc85905560fd86905560fe8290556109336000805160206127b9833981519152336116d5565b8015610979576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60006001600160e01b03198216637965db0b60e01b14806109b457506301ffc9a760e01b6001600160e01b03198316145b92915050565b61010160205281600052604060002081815481106109d757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600080516020612739833981519152610a0b8161165e565b60fb5460ff16610a2e576040516343e5c67f60e11b815260040160405180910390fd5b8367ffffffffffffffff16600003610a595760405163a9cb9e0d60e01b815260040160405180910390fd5b6000858152610100602052604090206003015415610a8a57604051632bf773b360e11b815260040160405180910390fd5b6000858152610100602052604090205467ffffffffffffffff1615610acd57610ab58585848661175b565b610ac857610ac360006117d1565b610c41565b610b10565b60008581526101006020526040902080546001600160a01b038416600160401b026001600160e01b031990911667ffffffffffffffff8716171781556001018390555b610b1a853361163e565b15610b3857604051637c9a1cf960e01b815260040160405180910390fd5b60008581526101016020908152604080832080546001810182559084528284200180546001600160a01b03191633179055878352610100909152902060020154158015610ba2575060fb546000868152610101602052604090205461010090910463ffffffff1611155b15610be55760008581526101006020526040808220436002909101555186917f6fb7fd1eda743aa3eb32c69f3b8cf14a5aeadf26db51057a7c5c78ba10eac8a491a25b60008581526101006020908152604091829020548251888152339281019290925267ffffffffffffffff168183015290517f35736f19ec5960edd1e2dbf347b5682b955d14cfaec893ec96d43ec699d742c39181900360600190a15b5050505050565b6000805160206127b9833981519152610c608161165e565b60ff80546001600160a01b031981169091556001600160a01b0316610c8560006117d1565b60405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b90602401600060405180830381600087803b158015610cc857600080fd5b505af1158015610cdc573d6000803e3d6000fd5b50505050505050565b60006000805160206127b9833981519152831480610d10575060008051602061273983398151915283145b80610d28575060008051602061275983398151915283145b15610d4857610d456000805160206127b9833981519152336111a0565b90505b600080516020612800833981519152831480610d71575060008051602061277983398151915283145b15610daf57610d8e6000805160206127b9833981519152336111a0565b80610dac5750610dac600080516020612800833981519152336111a0565b90505b80610dcc576040516282b42960e81b815260040160405180910390fd5b610dd683836116d5565b505050565b6000805160206127b9833981519152610df38161165e565b5060fe55565b6001600160a01b0381163314610e695760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b610e73828261199a565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ebf5760405162461bcd60e51b815260040161088f906124bc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f08600080516020612799833981519152546001600160a01b031690565b6001600160a01b031614610f2e5760405162461bcd60e51b815260040161088f90612508565b610f3781611a01565b60408051600080825260208201909252610f5391839190611a19565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f9e5760405162461bcd60e51b815260040161088f906124bc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fe7600080516020612799833981519152546001600160a01b031690565b6001600160a01b03161461100d5760405162461bcd60e51b815260040161088f90612508565b61101682611a01565b610e7382826001611a19565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110c25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161088f565b5060008051602061279983398151915290565b6000805160206127b98339815191526110ed8161165e565b8163ffffffff166000036111145760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fb805463ffffffff9092166101000264ffffffff0019909216919091179055565b60008051602061277983398151915261114f8161165e565b6040517f4e97bcfc80ae353daee1a1990d5b388eef167d3e197ebf5243cc4d43b4125c0990600090a1610f5360006117d1565b60008051602061280083398151915261119a8161165e565b5060fc55565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206128008339815191526111e38161165e565b610e73826117d1565b60fb5460ff1661120f576040516343e5c67f60e11b815260040160405180910390fd5b60008181526101006020526040812060028101549091036112435760405163c19f17a960e01b815260040160405180910390fd5b60038101541561126657604051632bf773b360e11b815260040160405180910390fd5b60fd548160020154611278919061256a565b43101561129857604051636fed7d8560e01b815260040160405180910390fd5b60fe54816001015460ff60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611317919061257d565b611321919061256a565b1115611340576040516395bfe45760e01b815260040160405180910390fd5b60008281526101016020526040902061135890611b84565b6113658160010154611cd9565b6040518281527f533f7dadbc941d74aaeaeccf2e8b5c0c607281e9050f147d7606feed36c4306c9060200160405180910390a143600382015560ff54815460018301546040516340c10f1960e01b81526001600160a01b03600160401b9093048316600482015260248101919091529116906340c10f19906044015b600060405180830381600087803b1580156113fb57600080fd5b505af115801561140f573d6000803e3d6000fd5b505050505050565b6000805160206127b983398151915261142f8161165e565b506101059190915561010655565b3360008181526101026020526040808220805490839055905190929083908381818185875af1925050503d8060008114611493576040519150601f19603f3d011682016040523d82523d6000602084013e611498565b606091505b5050905080610e7357604051630db2c7f160e31b815260040160405180910390fd5b60fb5460ff166114dd576040516343e5c67f60e11b815260040160405180910390fd5b60408051838152602081018390527f2ee983b623929fc355aa68e38a8d4476c1e01d7ea0cfbb5403dceb3f638e6974910160405180910390a160ff54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044016113e1565b60006000805160206127b9833981519152831480611578575060008051602061277983398151915283145b80611590575060008051602061275983398151915283145b156115b0576115ad6000805160206127b9833981519152336111a0565b90505b6000805160206128008339815191528314806115d9575060008051602061273983398151915283145b15611617576115f66000805160206127b9833981519152336111a0565b806116145750611614600080516020612800833981519152336111a0565b90505b80611634576040516282b42960e81b815260040160405180910390fd5b610dd6838361199a565b6000828152610101602052604081206116579083611d62565b9392505050565b610f538133611dc5565b600054610100900460ff166116d35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161088f565b565b6116df82826111a0565b610e735760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556117173390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600084815261010060205260408120805467ffffffffffffffff8681169116146117895760009150506117c9565b80546001600160a01b03858116600160401b90920416146117ae5760009150506117c9565b828160010154146117c35760009150506117c9565b60019150505b949350505050565b8080156117e7575060ff546001600160a01b0316155b156118055760405163c52a9bd360e01b815260040160405180910390fd5b60fb5460ff1615158115151461184b5760405181151581527ff74fbb47e96130656a063aecd12cec7b7599ed09cfe357c4d850ae7f2cb19b5a9060200160405180910390a15b60fb805460ff191682151517905560ff546001600160a01b031615610f535760ff5460408051635c975abb60e01b815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa1580156118b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d89190612596565b90508180156118e45750805b156119395760ff60009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113fb57600080fd5b81158015611945575080155b15610e735760ff60009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113fb57600080fd5b6119a482826111a0565b15610e735760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020612759833981519152610e738161165e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a4c57610dd683611e1e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611aa6575060408051601f3d908101601f19168201909252611aa39181019061257d565b60015b611b095760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161088f565b6000805160206127998339815191528114611b785760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161088f565b50610dd6838383611eba565b60fc54341015611ba757604051631c0b171360e31b815260040160405180910390fd5b80546008600260036000611bbb82866125b3565b611bc5848661256a565b611bcf919061256a565b90506000611bdd82346125ca565b90506000611beb83836125b3565b611bf590346125ec565b905060005b87811015611cce57846000829003611c1957611c16888261256a565b90505b60fb54611c3390600190610100900463ffffffff166125ff565b63ffffffff168203611c4c57611c49878261256a565b90505b6000611c5882866125b3565b905082600003611c6f57611c6c848261256a565b90505b8061010260008d8681548110611c8757611c87612623565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611cbb90849061256a565b909155505060019092019150611bfa9050565b505050505050505050565b61010454600090611cea90436125ec565b905060008161010560010154611d0091906125b3565b9050600081610103600001541115611d1f575061010354819003611d23565b5060005b611d2d848261256a565b61010554909150811115611d54576040516307ef6f4d60e31b815260040160405180910390fd5b610103555050436101045550565b8154600090815b81811015611dba57836001600160a01b0316858281548110611d8d57611d8d612623565b6000918252602090912001546001600160a01b031603611db2576001925050506109b4565b600101611d69565b506000949350505050565b611dcf82826111a0565b610e7357611ddc81611ee5565b611de7836020611ef7565b604051602001611df892919061265d565b60408051601f198184030181529082905262461bcd60e51b825261088f916004016126d2565b6001600160a01b0381163b611e8b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161088f565b60008051602061279983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ec383612093565b600082511180611ed05750805b15610dd657611edf83836120d3565b50505050565b60606109b46001600160a01b03831660145b60606000611f068360026125b3565b611f1190600261256a565b67ffffffffffffffff811115611f2957611f2961239c565b6040519080825280601f01601f191660200182016040528015611f53576020820181803683370190505b509050600360fc1b81600081518110611f6e57611f6e612623565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611f9d57611f9d612623565b60200101906001600160f81b031916908160001a9053506000611fc18460026125b3565b611fcc90600161256a565b90505b6001811115612044576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061200057612000612623565b1a60f81b82828151811061201657612016612623565b60200101906001600160f81b031916908160001a90535060049490941c9361203d81612705565b9050611fcf565b5083156116575760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b61209c81611e1e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61213b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161088f565b600080846001600160a01b031684604051612156919061271c565b600060405180830381855af49150503d8060008114612191576040519150601f19603f3d011682016040523d82523d6000602084013e612196565b606091505b50915091506121be82826040518060600160405280602781526020016127d9602791396121c7565b95945050505050565b606083156121d6575081611657565b61165783838151156121eb5781518083602001fd5b8060405162461bcd60e51b815260040161088f91906126d2565b60006020828403121561221757600080fd5b5035919050565b6001600160a01b0381168114610f5357600080fd5b803563ffffffff8116811461224757600080fd5b919050565b600080600080600080600060e0888a03121561226757600080fd5b87356122728161221e565b965061228060208901612233565b96999698505050506040850135946060810135946080820135945060a0820135935060c0909101359150565b6000602082840312156122be57600080fd5b81356001600160e01b03198116811461165757600080fd5b600080604083850312156122e957600080fd5b50508035926020909101359150565b6000806000806080858703121561230e57600080fd5b84359350602085013567ffffffffffffffff8116811461232d57600080fd5b92506040850135915060608501356123448161221e565b939692955090935050565b60006020828403121561236157600080fd5b81356116578161221e565b6000806040838503121561237f57600080fd5b8235915060208301356123918161221e565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156123c557600080fd5b82356123d08161221e565b9150602083013567ffffffffffffffff808211156123ed57600080fd5b818501915085601f83011261240157600080fd5b8135818111156124135761241361239c565b604051601f8201601f19908116603f0116810190838211818310171561243b5761243b61239c565b8160405282815288602084870101111561245457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561248857600080fd5b61165782612233565b8015158114610f5357600080fd5b6000602082840312156124b157600080fd5b813561165781612491565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109b4576109b4612554565b60006020828403121561258f57600080fd5b5051919050565b6000602082840312156125a857600080fd5b815161165781612491565b80820281158282048414176109b4576109b4612554565b6000826125e757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109b4576109b4612554565b63ffffffff82811682821603908082111561261c5761261c612554565b5092915050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561265457818101518382015260200161263c565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612695816017850160208801612639565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516126c6816028840160208801612639565b01602801949350505050565b60208152600082518060208401526126f1816040850160208701612639565b601f01601f19169190910160400192915050565b60008161271457612714612554565b506000190190565b6000825161272e818460208701612639565b919091019291505056fe077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e32125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220ecf81f4a960261b8dd8ecbcb4c0ddc4eb052ebf9e2433b6da2d0dd0e6d6684dc64736f6c63430008120033", - "nonce": "0x1c", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x7e3d3c07161e3bcbb7296b9b5ded484c791e1a72689056a5af01d9aa60c08a90", - "transactionType": "CREATE", - "contractName": "WrappedToken", - "contractAddress": "0x195E89cdE9475e18DB594A24FC2954235d7F4e92", - "function": null, - "arguments": [ - "Liberland Denar", - "LDN" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x191389", - "value": "0x0", - "data": "0x6101406040523480156200001257600080fd5b50604051620018b0380380620018b0833981016040819052620000359162000242565b6040805180820190915260018152603160f81b602082015282908190818460036200006183826200033b565b5060046200007082826200033b565b50506005805460ff1916905550620000883362000123565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c05261012052506200040795505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001a557600080fd5b81516001600160401b0380821115620001c257620001c26200017d565b604051601f8301601f19908116603f01168101908282118183101715620001ed57620001ed6200017d565b816040528381526020925086838588010111156200020a57600080fd5b600091505b838210156200022e57858201830151818301840152908201906200020f565b600093810190920192909252949350505050565b600080604083850312156200025657600080fd5b82516001600160401b03808211156200026e57600080fd5b6200027c8683870162000193565b935060208501519150808211156200029357600080fd5b50620002a28582860162000193565b9150509250929050565b600181811c90821680620002c157607f821691505b602082108103620002e257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033657600081815260208120601f850160051c81016020861015620003115750805b601f850160051c820191505b8181101562000332578281556001016200031d565b5050505b505050565b81516001600160401b038111156200035757620003576200017d565b6200036f81620003688454620002ac565b84620002e8565b602080601f831160018114620003a757600084156200038e5750858301515b600019600386901b1c1916600185901b17855562000332565b600085815260208120601f198616915b82811015620003d857888601518255948401946001909101908401620003b7565b5085821015620003f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e0516101005161012051611459620004576000396000610af101526000610b4001526000610b1b01526000610a7401526000610a9e01526000610ac801526114596000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b85780639dc29fac1161007c5780639dc29fac1461027c578063a457c2d71461028f578063a9059cbb146102a2578063d505accf146102b5578063dd62ed3e146102c8578063f2fde38b146102db57600080fd5b8063715018a6146102285780637ecebe00146102305780638456cb59146102435780638da5cb5b1461024b57806395d89b411461027457600080fd5b80633644e5151161010a5780633644e515146101bc57806339509351146101c45780633f4ba83a146101d757806340c10f19146101e15780635c975abb146101f457806370a08231146101ff57600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f6102ee565b60405161015c9190611220565b60405180910390f35b61017861017336600461128a565b610380565b604051901515815260200161015c565b6002545b60405190815260200161015c565b6101786101a83660046112b4565b61039a565b604051600c815260200161015c565b61018c6103be565b6101786101d236600461128a565b6103cd565b6101df6103ef565b005b6101df6101ef36600461128a565b610401565b60055460ff16610178565b61018c61020d3660046112f0565b6001600160a01b031660009081526020819052604090205490565b6101df610417565b61018c61023e3660046112f0565b610429565b6101df610447565b60055461010090046001600160a01b03166040516001600160a01b03909116815260200161015c565b61014f610457565b6101df61028a36600461128a565b610466565b61017861029d36600461128a565b610483565b6101786102b036600461128a565b610503565b6101df6102c3366004611312565b610511565b61018c6102d6366004611385565b610675565b6101df6102e93660046112f0565b6106a0565b6060600380546102fd906113b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610329906113b8565b80156103765780601f1061034b57610100808354040283529160200191610376565b820191906000526020600020905b81548152906001019060200180831161035957829003601f168201915b5050505050905090565b60003361038e818585610719565b60019150505b92915050565b6000336103a885828561083e565b6103b38585856108b8565b506001949350505050565b60006103c8610a67565b905090565b60003361038e8185856103e08383610675565b6103ea91906113ec565b610719565b6103f7610b8e565b6103ff610bee565b565b610409610b8e565b6104138282610c40565b5050565b61041f610b8e565b6103ff6000610d0b565b6001600160a01b038116600090815260066020526040812054610394565b61044f610b8e565b6103ff610d65565b6060600480546102fd906113b8565b61046e610b8e565b61047982338361083e565b6104138282610da2565b600033816104918286610675565b9050838110156104f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103b38286868403610719565b60003361038e8185856108b8565b834211156105615760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104ed565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105908c610ed8565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006105eb82610f00565b905060006105fb82878787610f4e565b9050896001600160a01b0316816001600160a01b03161461065e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104ed565b6106698a8a8a610719565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6106a8610b8e565b6001600160a01b03811661070d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61071681610d0b565b50565b6001600160a01b03831661077b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ed565b6001600160a01b0382166107dc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ed565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061084a8484610675565b905060001981146108b257818110156108a55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ed565b6108b28484848403610719565b50505050565b6001600160a01b03831661091c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ed565b6001600160a01b03821661097e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ed565b610989838383610f76565b6001600160a01b03831660009081526020819052604090205481811015610a015760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ed565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108b2565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610ac057507f000000000000000000000000000000000000000000000000000000000000000046145b15610aea57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6005546001600160a01b036101009091041633146103ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b610bf6610f83565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610c965760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104ed565b610ca260008383610f76565b8060026000828254610cb491906113ec565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610d6d610fcc565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610c233390565b6001600160a01b038216610e025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104ed565b610e0e82600083610f76565b6001600160a01b03821660009081526020819052604090205481811015610e825760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104ed565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610831565b6001600160a01b03811660009081526006602052604090208054600181018255905b50919050565b6000610394610f0d610a67565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610f5f87878787611012565b91509150610f6c816110d6565b5095945050505050565b610f7e610fcc565b505050565b60055460ff166103ff5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104ed565b60055460ff16156103ff5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ed565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561104957506000905060036110cd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561109d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110c6576000600192509250506110cd565b9150600090505b94509492505050565b60008160048111156110ea576110ea61140d565b036110f25750565b60018160048111156111065761110661140d565b036111535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104ed565b60028160048111156111675761116761140d565b036111b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104ed565b60038160048111156111c8576111c861140d565b036107165760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104ed565b600060208083528351808285015260005b8181101561124d57858101830151858201604001528201611231565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461128557600080fd5b919050565b6000806040838503121561129d57600080fd5b6112a68361126e565b946020939093013593505050565b6000806000606084860312156112c957600080fd5b6112d28461126e565b92506112e06020850161126e565b9150604084013590509250925092565b60006020828403121561130257600080fd5b61130b8261126e565b9392505050565b600080600080600080600060e0888a03121561132d57600080fd5b6113368861126e565b96506113446020890161126e565b95506040880135945060608801359350608088013560ff8116811461136857600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561139857600080fd5b6113a18361126e565b91506113af6020840161126e565b90509250929050565b600181811c908216806113cc57607f821691505b602082108103610efa57634e487b7160e01b600052602260045260246000fd5b8082018082111561039457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220d3e3222a359321fb2f96a5d6db5f1322b191d4dd8bf7bc1f09b4fb360883dadc64736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f4c696265726c616e642044656e6172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c444e0000000000000000000000000000000000000000000000000000000000", - "nonce": "0x1d", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x56e6fb8ed1226d430464dab4d2013cfabf3fa63a2afa1a61ab117317971fa1f7", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "function": null, - "arguments": [ - "0x14cb6EDb15c156272B59e7Fd688a1F0b09C999d4", - "0x00688c40000000000000000000000000195e89cde9475e18db594a24fc2954235d7f4e920000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003ccac26cc5ae00000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000003691d6afc0000000000000000000000000000000000000000000000000000429d069189e0000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x90eb6", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201a5a8dc888ce85ff4ae07f041d17d5934859232186edf2343aee6c07a5cb29d764736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000014cb6edb15c156272b59e7fd688a1f0b09c999d4000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e400688c40000000000000000000000000195e89cde9475e18db594a24fc2954235d7f4e920000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003ccac26cc5ae00000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000003691d6afc0000000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x1e", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x340cb4bad5dbdd0744791b53ccac2879da8594af71eb6cf9396e0ca860d90773", - "transactionType": "CALL", - "contractName": "WrappedToken", - "contractAddress": "0x195E89cdE9475e18DB594A24FC2954235d7F4e92", - "function": "transferOwnership(address)", - "arguments": [ - "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x195e89cde9475e18db594a24fc2954235d7f4e92", - "gas": "0x9b06", - "value": "0x0", - "data": "0xf2fde38b000000000000000000000000c8af0c3e0e4fc787d9e657b2a68ce6ed9cedb5da", - "nonce": "0x1f", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x12f1cd661788071ecabac254c98cca33f2fa50f1629633938fe06e69481adacd", - "transactionType": "CREATE", - "contractName": "WrappedToken", - "contractAddress": "0x023A1D6C9f4b792399804DF2AaFaA2Df2bdd8a12", - "function": null, - "arguments": [ - "Liberland Kuna", - "LKN" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x191379", - "value": "0x0", - "data": "0x6101406040523480156200001257600080fd5b50604051620018b0380380620018b0833981016040819052620000359162000242565b6040805180820190915260018152603160f81b602082015282908190818460036200006183826200033b565b5060046200007082826200033b565b50506005805460ff1916905550620000883362000123565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c05261012052506200040795505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001a557600080fd5b81516001600160401b0380821115620001c257620001c26200017d565b604051601f8301601f19908116603f01168101908282118183101715620001ed57620001ed6200017d565b816040528381526020925086838588010111156200020a57600080fd5b600091505b838210156200022e57858201830151818301840152908201906200020f565b600093810190920192909252949350505050565b600080604083850312156200025657600080fd5b82516001600160401b03808211156200026e57600080fd5b6200027c8683870162000193565b935060208501519150808211156200029357600080fd5b50620002a28582860162000193565b9150509250929050565b600181811c90821680620002c157607f821691505b602082108103620002e257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033657600081815260208120601f850160051c81016020861015620003115750805b601f850160051c820191505b8181101562000332578281556001016200031d565b5050505b505050565b81516001600160401b038111156200035757620003576200017d565b6200036f81620003688454620002ac565b84620002e8565b602080601f831160018114620003a757600084156200038e5750858301515b600019600386901b1c1916600185901b17855562000332565b600085815260208120601f198616915b82811015620003d857888601518255948401946001909101908401620003b7565b5085821015620003f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e0516101005161012051611459620004576000396000610af101526000610b4001526000610b1b01526000610a7401526000610a9e01526000610ac801526114596000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b85780639dc29fac1161007c5780639dc29fac1461027c578063a457c2d71461028f578063a9059cbb146102a2578063d505accf146102b5578063dd62ed3e146102c8578063f2fde38b146102db57600080fd5b8063715018a6146102285780637ecebe00146102305780638456cb59146102435780638da5cb5b1461024b57806395d89b411461027457600080fd5b80633644e5151161010a5780633644e515146101bc57806339509351146101c45780633f4ba83a146101d757806340c10f19146101e15780635c975abb146101f457806370a08231146101ff57600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f6102ee565b60405161015c9190611220565b60405180910390f35b61017861017336600461128a565b610380565b604051901515815260200161015c565b6002545b60405190815260200161015c565b6101786101a83660046112b4565b61039a565b604051600c815260200161015c565b61018c6103be565b6101786101d236600461128a565b6103cd565b6101df6103ef565b005b6101df6101ef36600461128a565b610401565b60055460ff16610178565b61018c61020d3660046112f0565b6001600160a01b031660009081526020819052604090205490565b6101df610417565b61018c61023e3660046112f0565b610429565b6101df610447565b60055461010090046001600160a01b03166040516001600160a01b03909116815260200161015c565b61014f610457565b6101df61028a36600461128a565b610466565b61017861029d36600461128a565b610483565b6101786102b036600461128a565b610503565b6101df6102c3366004611312565b610511565b61018c6102d6366004611385565b610675565b6101df6102e93660046112f0565b6106a0565b6060600380546102fd906113b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610329906113b8565b80156103765780601f1061034b57610100808354040283529160200191610376565b820191906000526020600020905b81548152906001019060200180831161035957829003601f168201915b5050505050905090565b60003361038e818585610719565b60019150505b92915050565b6000336103a885828561083e565b6103b38585856108b8565b506001949350505050565b60006103c8610a67565b905090565b60003361038e8185856103e08383610675565b6103ea91906113ec565b610719565b6103f7610b8e565b6103ff610bee565b565b610409610b8e565b6104138282610c40565b5050565b61041f610b8e565b6103ff6000610d0b565b6001600160a01b038116600090815260066020526040812054610394565b61044f610b8e565b6103ff610d65565b6060600480546102fd906113b8565b61046e610b8e565b61047982338361083e565b6104138282610da2565b600033816104918286610675565b9050838110156104f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103b38286868403610719565b60003361038e8185856108b8565b834211156105615760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104ed565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105908c610ed8565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006105eb82610f00565b905060006105fb82878787610f4e565b9050896001600160a01b0316816001600160a01b03161461065e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104ed565b6106698a8a8a610719565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6106a8610b8e565b6001600160a01b03811661070d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61071681610d0b565b50565b6001600160a01b03831661077b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ed565b6001600160a01b0382166107dc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ed565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061084a8484610675565b905060001981146108b257818110156108a55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ed565b6108b28484848403610719565b50505050565b6001600160a01b03831661091c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ed565b6001600160a01b03821661097e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ed565b610989838383610f76565b6001600160a01b03831660009081526020819052604090205481811015610a015760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ed565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108b2565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610ac057507f000000000000000000000000000000000000000000000000000000000000000046145b15610aea57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6005546001600160a01b036101009091041633146103ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b610bf6610f83565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610c965760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104ed565b610ca260008383610f76565b8060026000828254610cb491906113ec565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610d6d610fcc565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610c233390565b6001600160a01b038216610e025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104ed565b610e0e82600083610f76565b6001600160a01b03821660009081526020819052604090205481811015610e825760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104ed565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610831565b6001600160a01b03811660009081526006602052604090208054600181018255905b50919050565b6000610394610f0d610a67565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610f5f87878787611012565b91509150610f6c816110d6565b5095945050505050565b610f7e610fcc565b505050565b60055460ff166103ff5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104ed565b60055460ff16156103ff5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ed565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561104957506000905060036110cd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561109d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110c6576000600192509250506110cd565b9150600090505b94509492505050565b60008160048111156110ea576110ea61140d565b036110f25750565b60018160048111156111065761110661140d565b036111535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104ed565b60028160048111156111675761116761140d565b036111b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104ed565b60038160048111156111c8576111c861140d565b036107165760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104ed565b600060208083528351808285015260005b8181101561124d57858101830151858201604001528201611231565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461128557600080fd5b919050565b6000806040838503121561129d57600080fd5b6112a68361126e565b946020939093013593505050565b6000806000606084860312156112c957600080fd5b6112d28461126e565b92506112e06020850161126e565b9150604084013590509250925092565b60006020828403121561130257600080fd5b61130b8261126e565b9392505050565b600080600080600080600060e0888a03121561132d57600080fd5b6113368861126e565b96506113446020890161126e565b95506040880135945060608801359350608088013560ff8116811461136857600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561139857600080fd5b6113a18361126e565b91506113af6020840161126e565b90509250929050565b600181811c908216806113cc57607f821691505b602082108103610efa57634e487b7160e01b600052602260045260246000fd5b8082018082111561039457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220d3e3222a359321fb2f96a5d6db5f1322b191d4dd8bf7bc1f09b4fb360883dadc64736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e4c696265726c616e64204b756e6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c4b4e0000000000000000000000000000000000000000000000000000000000", - "nonce": "0x20", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x1fae4020078ad9c8f10859095d6f6c9f860b5f85ea9d9ff9920ce42a4a29041e", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "function": null, - "arguments": [ - "0x14cb6EDb15c156272B59e7Fd688a1F0b09C999d4", - "0x00688c40000000000000000000000000023a1d6c9f4b792399804df2aafaa2df2bdd8a120000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003ccac26cc5ae00000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000016345785d8a0000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x90eb6", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201a5a8dc888ce85ff4ae07f041d17d5934859232186edf2343aee6c07a5cb29d764736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000014cb6edb15c156272b59e7fd688a1f0b09c999d4000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e400688c40000000000000000000000000023a1d6c9f4b792399804df2aafaa2df2bdd8a120000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003ccac26cc5ae00000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x21", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x559d0693280e90d5888da3b1dda48251bfb02625e26e0a700254b86053e60f43", - "transactionType": "CALL", - "contractName": "WrappedToken", - "contractAddress": "0x023A1D6C9f4b792399804DF2AaFaA2Df2bdd8a12", - "function": "transferOwnership(address)", - "arguments": [ - "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x023a1d6c9f4b792399804df2aafaa2df2bdd8a12", - "gas": "0x9b06", - "value": "0x0", - "data": "0xf2fde38b0000000000000000000000007e1e09c0b41b22eb1fa04145cdf21cea01560c99", - "nonce": "0x22", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0xfee9d371f939b293ea6803eb6e0af6c4bd0e69342f91335eb6b8c0c4b9fe0f65", - "transactionIndex": "0x1", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x269853", - "gasUsed": "0x2339b2", - "contractAddress": "0x14cb6EDb15c156272B59e7Fd688a1F0b09C999d4", - "logs": [ - { - "address": "0x14cb6EDb15c156272B59e7Fd688a1F0b09C999d4", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "transactionHash": "0xfee9d371f939b293ea6803eb6e0af6c4bd0e69342f91335eb6b8c0c4b9fe0f65", - "transactionIndex": "0x1", - "logIndex": "0x0", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e2b" - }, - { - "transactionHash": "0x7e3d3c07161e3bcbb7296b9b5ded484c791e1a72689056a5af01d9aa60c08a90", - "transactionIndex": "0x2", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x39e406", - "gasUsed": "0x134bb3", - "contractAddress": "0x195E89cdE9475e18DB594A24FC2954235d7F4e92", - "logs": [ - { - "address": "0x195E89cdE9475e18DB594A24FC2954235d7F4e92", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "transactionHash": "0x7e3d3c07161e3bcbb7296b9b5ded484c791e1a72689056a5af01d9aa60c08a90", - "transactionIndex": "0x2", - "logIndex": "0x1", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000400000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000020000020000000000000000000020000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e2b" - }, - { - "transactionHash": "0x56e6fb8ed1226d430464dab4d2013cfabf3fa63a2afa1a61ab117317971fa1f7", - "transactionIndex": "0x3", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x40dc30", - "gasUsed": "0x6f82a", - "contractAddress": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "logs": [ - { - "address": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000014cb6edb15c156272b59e7fd688a1f0b09c999d4" - ], - "data": "0x", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "transactionHash": "0x56e6fb8ed1226d430464dab4d2013cfabf3fa63a2afa1a61ab117317971fa1f7", - "transactionIndex": "0x3", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "transactionHash": "0x56e6fb8ed1226d430464dab4d2013cfabf3fa63a2afa1a61ab117317971fa1f7", - "transactionIndex": "0x3", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "transactionHash": "0x56e6fb8ed1226d430464dab4d2013cfabf3fa63a2afa1a61ab117317971fa1f7", - "transactionIndex": "0x3", - "logIndex": "0x4", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000010000000000000400040100000000000000000000000000000000000000000010800000000000000000800000000000000000000000000000000000000000400000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000080000000000000000020000040000000000000000000000400000000000000000000001000000000000000000020000000000000000000040000000000000000000100000080000000000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e2b" - }, - { - "transactionHash": "0x340cb4bad5dbdd0744791b53ccac2879da8594af71eb6cf9396e0ca860d90773", - "transactionIndex": "0x4", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x195E89cdE9475e18DB594A24FC2954235d7F4e92", - "cumulativeGasUsed": "0x414c6d", - "gasUsed": "0x703d", - "contractAddress": null, - "logs": [ - { - "address": "0x195E89cdE9475e18DB594A24FC2954235d7F4e92", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x000000000000000000000000c8af0c3e0e4fc787d9e657b2a68ce6ed9cedb5da" - ], - "data": "0x", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "transactionHash": "0x340cb4bad5dbdd0744791b53ccac2879da8594af71eb6cf9396e0ca860d90773", - "transactionIndex": "0x4", - "logIndex": "0x5", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000400000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000400000000000000000008000000000000000000000000000000000000000000000000000000000800000000000000000000000000000001000000000000000000000000000000000000000000000080000000000020000000000000000000020000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e2b" - }, - { - "transactionHash": "0x12f1cd661788071ecabac254c98cca33f2fa50f1629633938fe06e69481adacd", - "transactionIndex": "0x5", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x549814", - "gasUsed": "0x134ba7", - "contractAddress": "0x023A1D6C9f4b792399804DF2AaFaA2Df2bdd8a12", - "logs": [ - { - "address": "0x023A1D6C9f4b792399804DF2AaFaA2Df2bdd8a12", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x8c44d00c84dc86425e0aca18911541f2e28a7b00c98a68d576c7f77d9c254bbc", - "blockNumber": "0x381440", - "transactionHash": "0x12f1cd661788071ecabac254c98cca33f2fa50f1629633938fe06e69481adacd", - "transactionIndex": "0x5", - "logIndex": "0x6", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800014000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000020000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e2b" - }, - { - "transactionHash": "0x1fae4020078ad9c8f10859095d6f6c9f860b5f85ea9d9ff9920ce42a4a29041e", - "transactionIndex": "0x3", - "blockHash": "0x0b29efd9b7c5d179cc5165e2ab8acf9c33dbe0afb168660b1f388d988bfbc8a2", - "blockNumber": "0x381441", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x122995", - "gasUsed": "0x6f82a", - "contractAddress": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "logs": [ - { - "address": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000014cb6edb15c156272b59e7fd688a1f0b09c999d4" - ], - "data": "0x", - "blockHash": "0x0b29efd9b7c5d179cc5165e2ab8acf9c33dbe0afb168660b1f388d988bfbc8a2", - "blockNumber": "0x381441", - "transactionHash": "0x1fae4020078ad9c8f10859095d6f6c9f860b5f85ea9d9ff9920ce42a4a29041e", - "transactionIndex": "0x3", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x0b29efd9b7c5d179cc5165e2ab8acf9c33dbe0afb168660b1f388d988bfbc8a2", - "blockNumber": "0x381441", - "transactionHash": "0x1fae4020078ad9c8f10859095d6f6c9f860b5f85ea9d9ff9920ce42a4a29041e", - "transactionIndex": "0x3", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x0b29efd9b7c5d179cc5165e2ab8acf9c33dbe0afb168660b1f388d988bfbc8a2", - "blockNumber": "0x381441", - "transactionHash": "0x1fae4020078ad9c8f10859095d6f6c9f860b5f85ea9d9ff9920ce42a4a29041e", - "transactionIndex": "0x3", - "logIndex": "0x3", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000000000000000000400040000000000000000000400000000000002000000000010800000000080000000800000000000000000000000000000000000000000400000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000080000000000000000000000040000000000000000000000400000000000000000000001000000000000000000020000000000000000000040000000000000000000100000080000000000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e2e" - }, - { - "transactionHash": "0x559d0693280e90d5888da3b1dda48251bfb02625e26e0a700254b86053e60f43", - "transactionIndex": "0x4", - "blockHash": "0x0b29efd9b7c5d179cc5165e2ab8acf9c33dbe0afb168660b1f388d988bfbc8a2", - "blockNumber": "0x381441", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x023A1D6C9f4b792399804DF2AaFaA2Df2bdd8a12", - "cumulativeGasUsed": "0x1299d2", - "gasUsed": "0x703d", - "contractAddress": null, - "logs": [ - { - "address": "0x023A1D6C9f4b792399804DF2AaFaA2Df2bdd8a12", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007e1e09c0b41b22eb1fa04145cdf21cea01560c99" - ], - "data": "0x", - "blockHash": "0x0b29efd9b7c5d179cc5165e2ab8acf9c33dbe0afb168660b1f388d988bfbc8a2", - "blockNumber": "0x381441", - "transactionHash": "0x559d0693280e90d5888da3b1dda48251bfb02625e26e0a700254b86053e60f43", - "transactionIndex": "0x4", - "logIndex": "0x4", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800014000000000000000000000000000000000000000000000800000000000000040000000000000100000000000000000000000000000001000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e2e" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1686557556, - "chain": 11155111, - "multi": false, - "commit": "1e88d686c1" -} \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1690321291.json b/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1690321291.json deleted file mode 100644 index ce8907d60c..0000000000 --- a/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1690321291.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xd35765f7d8671b53893d998b0cc53ade4609f2fc8c7c75d11c0548dfbcdd430d", - "transactionType": "CREATE", - "contractName": "Bridge", - "contractAddress": "0x5fdf9c5a7F958573A8A9B5F09df84f6fE62FDB1d", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x2db460", - "value": "0x0", - "data": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516128436200012060003960008181610e7901528181610eb901528181610f5801528181610f98015261102701526128436000f3fe6080604052600436106102395760003560e01c806361e08e721161012e578063b53f5227116100ab578063ddca3f431161006f578063ddca3f4314610744578063ead93c8f1461075a578063f1ba83a114610774578063f72c0d8b14610796578063fc0c546a146107b857600080fd5b8063b53f5227146106af578063b88a802f146106cf578063bcf64e05146106e4578063d547741f14610704578063d9a755721461072457600080fd5b806391d14854116100f257806391d14854146105ae5780639f8ee31c146105ce578063a217fddf14610667578063acec338a1461067c578063adf2cead1461069c57600080fd5b806361e08e721461051a578063633433de1461053757806363a599a41461055757806369fe0e2d1461056c57806375b238fc1461058c57600080fd5b80632f2ff15d116101bc5780633659cfe6116101805780633659cfe61461047e5780634460bdd61461049e57806346aa52ce146104c05780634f1ef286146104f257806352d1902d1461050557600080fd5b80632f2ff15d146103da57806331d7a262146103fa57806334636e8e14610428578063361fab251461043e57806336568abe1461045e57600080fd5b80630c2891b7116102035780630c2891b71461031d5780630e0a999e1461035457806319d1997a1461037457806321e6b53d1461038a578063248a9ca3146103aa57600080fd5b80624f94071461023e578062688c401461026057806301ffc9a71461028057806304421823146102b55780630847a4fb146102e5575b600080fd5b34801561024a57600080fd5b5061025e6102593660046121f3565b6107d8565b005b34801561026c57600080fd5b5061025e61027b36600461223a565b6107f6565b34801561028c57600080fd5b506102a061029b36600461229a565b610983565b60405190151581526020015b60405180910390f35b3480156102c157600080fd5b506102d760008051602061272783398151915281565b6040519081526020016102ac565b3480156102f157600080fd5b506103056103003660046122c4565b6109ba565b6040516001600160a01b0390911681526020016102ac565b34801561032957600080fd5b5060fb5461033f90610100900463ffffffff1681565b60405163ffffffff90911681526020016102ac565b34801561036057600080fd5b5061025e61036f3660046122e6565b6109f3565b34801561038057600080fd5b506102d760fe5481565b34801561039657600080fd5b5061025e6103a536600461233d565b610c40565b3480156103b657600080fd5b506102d76103c53660046121f3565b60009081526065602052604090206001015490565b3480156103e657600080fd5b5061025e6103f536600461235a565b610cdd565b34801561040657600080fd5b506102d761041536600461233d565b6101026020526000908152604090205481565b34801561043457600080fd5b506102d760fd5481565b34801561044a57600080fd5b5061025e6104593660046121f3565b610dd3565b34801561046a57600080fd5b5061025e61047936600461235a565b610df1565b34801561048a57600080fd5b5061025e61049936600461233d565b610e6f565b3480156104aa57600080fd5b506102d76000805160206127a783398151915281565b3480156104cc57600080fd5b5061010354610104546104dd919082565b604080519283526020830191909152016102ac565b61025e6105003660046123a0565b610f4e565b34801561051157600080fd5b506102d761101a565b34801561052657600080fd5b5061010554610106546104dd919082565b34801561054357600080fd5b5061025e610552366004612464565b6110cd565b34801561056357600080fd5b5061025e61112f565b34801561057857600080fd5b5061025e6105873660046121f3565b61117a565b34801561059857600080fd5b506102d76000805160206127ee83398151915281565b3480156105ba57600080fd5b506102a06105c936600461235a565b611198565b3480156105da57600080fd5b5061062c6105e93660046121f3565b61010060205260009081526040902080546001820154600283015460039093015467ffffffffffffffff831693600160401b9093046001600160a01b0316929085565b6040805167ffffffffffffffff90961686526001600160a01b039094166020860152928401919091526060830152608082015260a0016102ac565b34801561067357600080fd5b506102d7600081565b34801561068857600080fd5b5061025e61069736600461248d565b6111c3565b61025e6106aa3660046121f3565b6111e4565b3480156106bb57600080fd5b5061025e6106ca3660046122c4565b611407565b3480156106db57600080fd5b5061025e61142d565b3480156106f057600080fd5b5061025e6106ff3660046122c4565b6114aa565b34801561071057600080fd5b5061025e61071f36600461235a565b61153b565b34801561073057600080fd5b506102a061073f36600461235a565b61162c565b34801561075057600080fd5b506102d760fc5481565b34801561076657600080fd5b5060fb546102a09060ff1681565b34801561078057600080fd5b506102d760008051602061276783398151915281565b3480156107a257600080fd5b506102d760008051602061274783398151915281565b3480156107c457600080fd5b5060ff54610305906001600160a01b031681565b6000805160206127a78339815191526107f08161164c565b5060fd55565b600054610100900460ff16158080156108165750600054600160ff909116105b806108305750303b158015610830575060005460ff166001145b6108985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156108bb576000805461ff0019166101001790555b6108c3611656565b6108cb611656565b60ff80546001600160a01b0319166001600160a01b038a1617905561010584905561010683905560fb805464ffffffff00191661010063ffffffff8a160217905560fc85905560fd86905560fe8290556109336000805160206127a7833981519152336116c3565b8015610979576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60006001600160e01b03198216637965db0b60e01b14806109b457506301ffc9a760e01b6001600160e01b03198316145b92915050565b61010160205281600052604060002081815481106109d757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600080516020612727833981519152610a0b8161164c565b60fb5460ff16610a2e576040516343e5c67f60e11b815260040160405180910390fd5b8367ffffffffffffffff16600003610a595760405163a9cb9e0d60e01b815260040160405180910390fd5b6000858152610100602052604090206003015415610a8a57604051632bf773b360e11b815260040160405180910390fd5b6000858152610100602052604090205467ffffffffffffffff1615610acd57610ab585858486611749565b610ac857610ac360006117bf565b610c39565b610b10565b60008581526101006020526040902080546001600160a01b038416600160401b026001600160e01b031990911667ffffffffffffffff8716171781556001018390555b610b1a853361162c565b15610b3857604051637c9a1cf960e01b815260040160405180910390fd5b60008581526101016020908152604080832080546001810182559084528284200180546001600160a01b03191633179055878352610100909152902060020154158015610ba2575060fb546000868152610101602052604090205461010090910463ffffffff1611155b15610be55760008581526101006020526040808220436002909101555186917f6fb7fd1eda743aa3eb32c69f3b8cf14a5aeadf26db51057a7c5c78ba10eac8a491a25b6000858152610100602090815260409182902054915167ffffffffffffffff9092168252339187917f35736f19ec5960edd1e2dbf347b5682b955d14cfaec893ec96d43ec699d742c3910160405180910390a35b5050505050565b6000805160206127a7833981519152610c588161164c565b60ff80546001600160a01b031981169091556001600160a01b0316610c7d60006117bf565b60405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b90602401600060405180830381600087803b158015610cc057600080fd5b505af1158015610cd4573d6000803e3d6000fd5b50505050505050565b60006000805160206127a7833981519152831480610d08575060008051602061272783398151915283145b80610d20575060008051602061274783398151915283145b15610d4057610d3d6000805160206127a783398151915233611198565b90505b6000805160206127ee833981519152831480610d69575060008051602061276783398151915283145b15610da757610d866000805160206127a783398151915233611198565b80610da45750610da46000805160206127ee83398151915233611198565b90505b80610dc4576040516282b42960e81b815260040160405180910390fd5b610dce83836116c3565b505050565b6000805160206127a7833981519152610deb8161164c565b5060fe55565b6001600160a01b0381163314610e615760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b610e6b8282611988565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610eb75760405162461bcd60e51b815260040161088f906124aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f00600080516020612787833981519152546001600160a01b031690565b6001600160a01b031614610f265760405162461bcd60e51b815260040161088f906124f6565b610f2f816119ef565b60408051600080825260208201909252610f4b91839190611a07565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f965760405162461bcd60e51b815260040161088f906124aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fdf600080516020612787833981519152546001600160a01b031690565b6001600160a01b0316146110055760405162461bcd60e51b815260040161088f906124f6565b61100e826119ef565b610e6b82826001611a07565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110ba5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161088f565b5060008051602061278783398151915290565b6000805160206127a78339815191526110e58161164c565b8163ffffffff1660000361110c5760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fb805463ffffffff9092166101000264ffffffff0019909216919091179055565b6000805160206127678339815191526111478161164c565b6040517f4e97bcfc80ae353daee1a1990d5b388eef167d3e197ebf5243cc4d43b4125c0990600090a1610f4b60006117bf565b6000805160206127ee8339815191526111928161164c565b5060fc55565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206127ee8339815191526111db8161164c565b610e6b826117bf565b60fb5460ff16611207576040516343e5c67f60e11b815260040160405180910390fd5b600081815261010060205260408120600281015490910361123b5760405163c19f17a960e01b815260040160405180910390fd5b60038101541561125e57604051632bf773b360e11b815260040160405180910390fd5b60fd5481600201546112709190612558565b43101561129057604051636fed7d8560e01b815260040160405180910390fd5b60fe54816001015460ff60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f919061256b565b6113199190612558565b1115611338576040516395bfe45760e01b815260040160405180910390fd5b60008281526101016020526040902061135090611b72565b61135d8160010154611cc7565b60405182907f533f7dadbc941d74aaeaeccf2e8b5c0c607281e9050f147d7606feed36c4306c90600090a243600382015560ff54815460018301546040516340c10f1960e01b81526001600160a01b03600160401b9093048316600482015260248101919091529116906340c10f19906044015b600060405180830381600087803b1580156113eb57600080fd5b505af11580156113ff573d6000803e3d6000fd5b505050505050565b6000805160206127a783398151915261141f8161164c565b506101059190915561010655565b3360008181526101026020526040808220805490839055905190929083908381818185875af1925050503d8060008114611483576040519150601f19603f3d011682016040523d82523d6000602084013e611488565b606091505b5050905080610e6b57604051630db2c7f160e31b815260040160405180910390fd5b60fb5460ff166114cd576040516343e5c67f60e11b815260040160405180910390fd5b604051828152819033907fdc2326ce9005f56c5df82c47c1219524e289753a3d5de92038d1e956bb565e419060200160405180910390a360ff54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044016113d1565b60006000805160206127a7833981519152831480611566575060008051602061276783398151915283145b8061157e575060008051602061274783398151915283145b1561159e5761159b6000805160206127a783398151915233611198565b90505b6000805160206127ee8339815191528314806115c7575060008051602061272783398151915283145b15611605576115e46000805160206127a783398151915233611198565b8061160257506116026000805160206127ee83398151915233611198565b90505b80611622576040516282b42960e81b815260040160405180910390fd5b610dce8383611988565b6000828152610101602052604081206116459083611d50565b9392505050565b610f4b8133611db3565b600054610100900460ff166116c15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161088f565b565b6116cd8282611198565b610e6b5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556117053390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600084815261010060205260408120805467ffffffffffffffff8681169116146117775760009150506117b7565b80546001600160a01b03858116600160401b909204161461179c5760009150506117b7565b828160010154146117b15760009150506117b7565b60019150505b949350505050565b8080156117d5575060ff546001600160a01b0316155b156117f35760405163c52a9bd360e01b815260040160405180910390fd5b60fb5460ff161515811515146118395760405181151581527ff74fbb47e96130656a063aecd12cec7b7599ed09cfe357c4d850ae7f2cb19b5a9060200160405180910390a15b60fb805460ff191682151517905560ff546001600160a01b031615610f4b5760ff5460408051635c975abb60e01b815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa1580156118a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c69190612584565b90508180156118d25750805b156119275760ff60009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113eb57600080fd5b81158015611933575080155b15610e6b5760ff60009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113eb57600080fd5b6119928282611198565b15610e6b5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020612747833981519152610e6b8161164c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a3a57610dce83611e0c565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a94575060408051601f3d908101601f19168201909252611a919181019061256b565b60015b611af75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161088f565b6000805160206127878339815191528114611b665760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161088f565b50610dce838383611ea8565b60fc54341015611b9557604051631c0b171360e31b815260040160405180910390fd5b80546008600260036000611ba982866125a1565b611bb38486612558565b611bbd9190612558565b90506000611bcb82346125b8565b90506000611bd983836125a1565b611be390346125da565b905060005b87811015611cbc57846000829003611c0757611c048882612558565b90505b60fb54611c2190600190610100900463ffffffff166125ed565b63ffffffff168203611c3a57611c378782612558565b90505b6000611c4682866125a1565b905082600003611c5d57611c5a8482612558565b90505b8061010260008d8681548110611c7557611c75612611565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611ca9908490612558565b909155505060019092019150611be89050565b505050505050505050565b61010454600090611cd890436125da565b905060008161010560010154611cee91906125a1565b9050600081610103600001541115611d0d575061010354819003611d11565b5060005b611d1b8482612558565b61010554909150811115611d42576040516307ef6f4d60e31b815260040160405180910390fd5b610103555050436101045550565b8154600090815b81811015611da857836001600160a01b0316858281548110611d7b57611d7b612611565b6000918252602090912001546001600160a01b031603611da0576001925050506109b4565b600101611d57565b506000949350505050565b611dbd8282611198565b610e6b57611dca81611ed3565b611dd5836020611ee5565b604051602001611de692919061264b565b60408051601f198184030181529082905262461bcd60e51b825261088f916004016126c0565b6001600160a01b0381163b611e795760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161088f565b60008051602061278783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611eb183612081565b600082511180611ebe5750805b15610dce57611ecd83836120c1565b50505050565b60606109b46001600160a01b03831660145b60606000611ef48360026125a1565b611eff906002612558565b67ffffffffffffffff811115611f1757611f1761238a565b6040519080825280601f01601f191660200182016040528015611f41576020820181803683370190505b509050600360fc1b81600081518110611f5c57611f5c612611565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611f8b57611f8b612611565b60200101906001600160f81b031916908160001a9053506000611faf8460026125a1565b611fba906001612558565b90505b6001811115612032576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611fee57611fee612611565b1a60f81b82828151811061200457612004612611565b60200101906001600160f81b031916908160001a90535060049490941c9361202b816126f3565b9050611fbd565b5083156116455760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b61208a81611e0c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6121295760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161088f565b600080846001600160a01b031684604051612144919061270a565b600060405180830381855af49150503d806000811461217f576040519150601f19603f3d011682016040523d82523d6000602084013e612184565b606091505b50915091506121ac82826040518060600160405280602781526020016127c7602791396121b5565b95945050505050565b606083156121c4575081611645565b61164583838151156121d95781518083602001fd5b8060405162461bcd60e51b815260040161088f91906126c0565b60006020828403121561220557600080fd5b5035919050565b6001600160a01b0381168114610f4b57600080fd5b803563ffffffff8116811461223557600080fd5b919050565b600080600080600080600060e0888a03121561225557600080fd5b87356122608161220c565b965061226e60208901612221565b96999698505050506040850135946060810135946080820135945060a0820135935060c0909101359150565b6000602082840312156122ac57600080fd5b81356001600160e01b03198116811461164557600080fd5b600080604083850312156122d757600080fd5b50508035926020909101359150565b600080600080608085870312156122fc57600080fd5b84359350602085013567ffffffffffffffff8116811461231b57600080fd5b92506040850135915060608501356123328161220c565b939692955090935050565b60006020828403121561234f57600080fd5b81356116458161220c565b6000806040838503121561236d57600080fd5b82359150602083013561237f8161220c565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156123b357600080fd5b82356123be8161220c565b9150602083013567ffffffffffffffff808211156123db57600080fd5b818501915085601f8301126123ef57600080fd5b8135818111156124015761240161238a565b604051601f8201601f19908116603f011681019083821181831017156124295761242961238a565b8160405282815288602084870101111561244257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561247657600080fd5b61164582612221565b8015158114610f4b57600080fd5b60006020828403121561249f57600080fd5b81356116458161247f565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109b4576109b4612542565b60006020828403121561257d57600080fd5b5051919050565b60006020828403121561259657600080fd5b81516116458161247f565b80820281158282048414176109b4576109b4612542565b6000826125d557634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109b4576109b4612542565b63ffffffff82811682821603908082111561260a5761260a612542565b5092915050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561264257818101518382015260200161262a565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612683816017850160208801612627565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516126b4816028840160208801612627565b01602801949350505050565b60208152600082518060208401526126df816040850160208701612627565b601f01601f19169190910160400192915050565b60008161270257612702612542565b506000190190565b6000825161271c818460208701612627565b919091019291505056fe077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e32125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cf1d73710cf2a4ab82de3daf7d2ee3e9f08696e358b0318e623cf0187420271c64736f6c63430008120033", - "nonce": "0x3f", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x130766f54a98be0650309c5546c20976182b82d53627854afc7f59c3ac72c634", - "transactionType": "CREATE", - "contractName": "WrappedToken", - "contractAddress": "0x0f018D7e0B8f5D5cCc88c0B23d931AaAA13B0C42", - "function": null, - "arguments": [ - "Liberland Denar", - "LDN" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x19490c", - "value": "0x0", - "data": "0x6101406040523480156200001257600080fd5b50604051620018e1380380620018e1833981016040819052620000359162000242565b6040805180820190915260018152603160f81b602082015282908190818460036200006183826200033b565b5060046200007082826200033b565b50506005805460ff1916905550620000883362000123565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c05261012052506200040795505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001a557600080fd5b81516001600160401b0380821115620001c257620001c26200017d565b604051601f8301601f19908116603f01168101908282118183101715620001ed57620001ed6200017d565b816040528381526020925086838588010111156200020a57600080fd5b600091505b838210156200022e57858201830151818301840152908201906200020f565b600093810190920192909252949350505050565b600080604083850312156200025657600080fd5b82516001600160401b03808211156200026e57600080fd5b6200027c8683870162000193565b935060208501519150808211156200029357600080fd5b50620002a28582860162000193565b9150509250929050565b600181811c90821680620002c157607f821691505b602082108103620002e257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033657600081815260208120601f850160051c81016020861015620003115750805b601f850160051c820191505b8181101562000332578281556001016200031d565b5050505b505050565b81516001600160401b038111156200035757620003576200017d565b6200036f81620003688454620002ac565b84620002e8565b602080601f831160018114620003a757600084156200038e5750858301515b600019600386901b1c1916600185901b17855562000332565b600085815260208120601f198616915b82811015620003d857888601518255948401946001909101908401620003b7565b5085821015620003f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610100516101205161148a620004576000396000610b2901526000610b7801526000610b5301526000610aac01526000610ad601526000610b00015261148a6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b85780639dc29fac1161007c5780639dc29fac1461027c578063a457c2d71461028f578063a9059cbb146102a2578063d505accf146102b5578063dd62ed3e146102c8578063f2fde38b146102db57600080fd5b8063715018a6146102285780637ecebe00146102305780638456cb59146102435780638da5cb5b1461024b57806395d89b411461027457600080fd5b80633644e5151161010a5780633644e515146101bc57806339509351146101c45780633f4ba83a146101d757806340c10f19146101e15780635c975abb146101f457806370a08231146101ff57600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f6102ee565b60405161015c9190611258565b60405180910390f35b6101786101733660046112c2565b610380565b604051901515815260200161015c565b6002545b60405190815260200161015c565b6101786101a83660046112ec565b61039a565b604051600c815260200161015c565b61018c6103be565b6101786101d23660046112c2565b6103cd565b6101df6103ef565b005b6101df6101ef3660046112c2565b610401565b60055460ff16610178565b61018c61020d366004611328565b6001600160a01b031660009081526020819052604090205490565b6101df610417565b61018c61023e366004611328565b610429565b6101df610447565b60055461010090046001600160a01b03166040516001600160a01b03909116815260200161015c565b61014f610457565b6101df61028a3660046112c2565b610466565b61017861029d3660046112c2565b610483565b6101786102b03660046112c2565b610503565b6101df6102c3366004611343565b610511565b61018c6102d63660046113b6565b610675565b6101df6102e9366004611328565b6106d8565b6060600380546102fd906113e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610329906113e9565b80156103765780601f1061034b57610100808354040283529160200191610376565b820191906000526020600020905b81548152906001019060200180831161035957829003601f168201915b5050505050905090565b60003361038e818585610751565b60019150505b92915050565b6000336103a8858285610876565b6103b38585856108f0565b506001949350505050565b60006103c8610a9f565b905090565b60003361038e8185856103e08383610675565b6103ea919061141d565b610751565b6103f7610bc6565b6103ff610c26565b565b610409610bc6565b6104138282610c78565b5050565b61041f610bc6565b6103ff6000610d43565b6001600160a01b038116600090815260066020526040812054610394565b61044f610bc6565b6103ff610d9d565b6060600480546102fd906113e9565b61046e610bc6565b610479823383610876565b6104138282610dda565b600033816104918286610675565b9050838110156104f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103b38286868403610751565b60003361038e8185856108f0565b834211156105615760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104ed565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105908c610f10565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006105eb82610f38565b905060006105fb82878787610f86565b9050896001600160a01b0316816001600160a01b03161461065e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104ed565b6106698a8a8a610751565b50505050505050505050565b60055460009061010090046001600160a01b03166001600160a01b0316826001600160a01b0316036106aa5750600019610394565b6001600160a01b038084166000908152600160209081526040808320938616835292905220545b9392505050565b6106e0610bc6565b6001600160a01b0381166107455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61074e81610d43565b50565b6001600160a01b0383166107b35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ed565b6001600160a01b0382166108145760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ed565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006108828484610675565b905060001981146108ea57818110156108dd5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ed565b6108ea8484848403610751565b50505050565b6001600160a01b0383166109545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ed565b6001600160a01b0382166109b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ed565b6109c1838383610fae565b6001600160a01b03831660009081526020819052604090205481811015610a395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ed565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108ea565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610af857507f000000000000000000000000000000000000000000000000000000000000000046145b15610b2257507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6005546001600160a01b036101009091041633146103ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b610c2e610fbb565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610cce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104ed565b610cda60008383610fae565b8060026000828254610cec919061141d565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610da5611004565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610c5b3390565b6001600160a01b038216610e3a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104ed565b610e4682600083610fae565b6001600160a01b03821660009081526020819052604090205481811015610eba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104ed565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610869565b6001600160a01b03811660009081526006602052604090208054600181018255905b50919050565b6000610394610f45610a9f565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610f978787878761104a565b91509150610fa48161110e565b5095945050505050565b610fb6611004565b505050565b60055460ff166103ff5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104ed565b60055460ff16156103ff5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ed565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156110815750600090506003611105565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110d5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110fe57600060019250925050611105565b9150600090505b94509492505050565b60008160048111156111225761112261143e565b0361112a5750565b600181600481111561113e5761113e61143e565b0361118b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104ed565b600281600481111561119f5761119f61143e565b036111ec5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104ed565b60038160048111156112005761120061143e565b0361074e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104ed565b600060208083528351808285015260005b8181101561128557858101830151858201604001528201611269565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146112bd57600080fd5b919050565b600080604083850312156112d557600080fd5b6112de836112a6565b946020939093013593505050565b60008060006060848603121561130157600080fd5b61130a846112a6565b9250611318602085016112a6565b9150604084013590509250925092565b60006020828403121561133a57600080fd5b6106d1826112a6565b600080600080600080600060e0888a03121561135e57600080fd5b611367886112a6565b9650611375602089016112a6565b95506040880135945060608801359350608088013560ff8116811461139957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156113c957600080fd5b6113d2836112a6565b91506113e0602084016112a6565b90509250929050565b600181811c908216806113fd57607f821691505b602082108103610f3257634e487b7160e01b600052602260045260246000fd5b8082018082111561039457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea26469706673582212207973e1f7636f28144dc4be0aff3be4455c5186040c5da48d497b32b79d13fd1b64736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f4c696265726c616e642044656e6172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c444e0000000000000000000000000000000000000000000000000000000000", - "nonce": "0x40", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xa152a9409ce791e6b88ed0b110883f7b373a9a402f094bb8616a31b9c08a70cd", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x4B084924eC2a8C8481B3D533524331Ede1Deb0f7", - "function": null, - "arguments": [ - "0x5fdf9c5a7F958573A8A9B5F09df84f6fE62FDB1d", - "0x00688c400000000000000000000000000f018d7e0b8f5d5ccc88c0b23d931aaaa13b0c420000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000003691d6afc0000000000000000000000000000000000000000000000000000429d069189e0000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x90eb6", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201a5a8dc888ce85ff4ae07f041d17d5934859232186edf2343aee6c07a5cb29d764736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000005fdf9c5a7f958573a8a9b5f09df84f6fe62fdb1d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e400688c400000000000000000000000000f018d7e0b8f5d5ccc88c0b23d931aaaa13b0c420000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000003691d6afc0000000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x41", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x43c002995f3194736c13a1e9103be0264f677e0fa6bcf4603fb6e42fdbaa9ba5", - "transactionType": "CALL", - "contractName": "WrappedToken", - "contractAddress": "0x0f018D7e0B8f5D5cCc88c0B23d931AaAA13B0C42", - "function": "transferOwnership(address)", - "arguments": [ - "0x4B084924eC2a8C8481B3D533524331Ede1Deb0f7" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x0f018d7e0b8f5d5ccc88c0b23d931aaaa13b0c42", - "gas": "0x9b06", - "value": "0x0", - "data": "0xf2fde38b0000000000000000000000004b084924ec2a8c8481b3d533524331ede1deb0f7", - "nonce": "0x42", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xa52a095db6e013060fd0d25408fa6ef4ac23cdef8c84ae1f019f7a660943105e", - "transactionType": "CREATE", - "contractName": "WrappedToken", - "contractAddress": "0x7134B5DF53D7A276849a1A64a76f6D8972508747", - "function": null, - "arguments": [ - "Liberland Kuna", - "LKN" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x1948fd", - "value": "0x0", - "data": "0x6101406040523480156200001257600080fd5b50604051620018e1380380620018e1833981016040819052620000359162000242565b6040805180820190915260018152603160f81b602082015282908190818460036200006183826200033b565b5060046200007082826200033b565b50506005805460ff1916905550620000883362000123565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c05261012052506200040795505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001a557600080fd5b81516001600160401b0380821115620001c257620001c26200017d565b604051601f8301601f19908116603f01168101908282118183101715620001ed57620001ed6200017d565b816040528381526020925086838588010111156200020a57600080fd5b600091505b838210156200022e57858201830151818301840152908201906200020f565b600093810190920192909252949350505050565b600080604083850312156200025657600080fd5b82516001600160401b03808211156200026e57600080fd5b6200027c8683870162000193565b935060208501519150808211156200029357600080fd5b50620002a28582860162000193565b9150509250929050565b600181811c90821680620002c157607f821691505b602082108103620002e257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033657600081815260208120601f850160051c81016020861015620003115750805b601f850160051c820191505b8181101562000332578281556001016200031d565b5050505b505050565b81516001600160401b038111156200035757620003576200017d565b6200036f81620003688454620002ac565b84620002e8565b602080601f831160018114620003a757600084156200038e5750858301515b600019600386901b1c1916600185901b17855562000332565b600085815260208120601f198616915b82811015620003d857888601518255948401946001909101908401620003b7565b5085821015620003f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610100516101205161148a620004576000396000610b2901526000610b7801526000610b5301526000610aac01526000610ad601526000610b00015261148a6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b85780639dc29fac1161007c5780639dc29fac1461027c578063a457c2d71461028f578063a9059cbb146102a2578063d505accf146102b5578063dd62ed3e146102c8578063f2fde38b146102db57600080fd5b8063715018a6146102285780637ecebe00146102305780638456cb59146102435780638da5cb5b1461024b57806395d89b411461027457600080fd5b80633644e5151161010a5780633644e515146101bc57806339509351146101c45780633f4ba83a146101d757806340c10f19146101e15780635c975abb146101f457806370a08231146101ff57600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f6102ee565b60405161015c9190611258565b60405180910390f35b6101786101733660046112c2565b610380565b604051901515815260200161015c565b6002545b60405190815260200161015c565b6101786101a83660046112ec565b61039a565b604051600c815260200161015c565b61018c6103be565b6101786101d23660046112c2565b6103cd565b6101df6103ef565b005b6101df6101ef3660046112c2565b610401565b60055460ff16610178565b61018c61020d366004611328565b6001600160a01b031660009081526020819052604090205490565b6101df610417565b61018c61023e366004611328565b610429565b6101df610447565b60055461010090046001600160a01b03166040516001600160a01b03909116815260200161015c565b61014f610457565b6101df61028a3660046112c2565b610466565b61017861029d3660046112c2565b610483565b6101786102b03660046112c2565b610503565b6101df6102c3366004611343565b610511565b61018c6102d63660046113b6565b610675565b6101df6102e9366004611328565b6106d8565b6060600380546102fd906113e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610329906113e9565b80156103765780601f1061034b57610100808354040283529160200191610376565b820191906000526020600020905b81548152906001019060200180831161035957829003601f168201915b5050505050905090565b60003361038e818585610751565b60019150505b92915050565b6000336103a8858285610876565b6103b38585856108f0565b506001949350505050565b60006103c8610a9f565b905090565b60003361038e8185856103e08383610675565b6103ea919061141d565b610751565b6103f7610bc6565b6103ff610c26565b565b610409610bc6565b6104138282610c78565b5050565b61041f610bc6565b6103ff6000610d43565b6001600160a01b038116600090815260066020526040812054610394565b61044f610bc6565b6103ff610d9d565b6060600480546102fd906113e9565b61046e610bc6565b610479823383610876565b6104138282610dda565b600033816104918286610675565b9050838110156104f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103b38286868403610751565b60003361038e8185856108f0565b834211156105615760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104ed565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105908c610f10565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006105eb82610f38565b905060006105fb82878787610f86565b9050896001600160a01b0316816001600160a01b03161461065e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104ed565b6106698a8a8a610751565b50505050505050505050565b60055460009061010090046001600160a01b03166001600160a01b0316826001600160a01b0316036106aa5750600019610394565b6001600160a01b038084166000908152600160209081526040808320938616835292905220545b9392505050565b6106e0610bc6565b6001600160a01b0381166107455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61074e81610d43565b50565b6001600160a01b0383166107b35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ed565b6001600160a01b0382166108145760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ed565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006108828484610675565b905060001981146108ea57818110156108dd5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ed565b6108ea8484848403610751565b50505050565b6001600160a01b0383166109545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ed565b6001600160a01b0382166109b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ed565b6109c1838383610fae565b6001600160a01b03831660009081526020819052604090205481811015610a395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ed565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108ea565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610af857507f000000000000000000000000000000000000000000000000000000000000000046145b15610b2257507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6005546001600160a01b036101009091041633146103ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b610c2e610fbb565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610cce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104ed565b610cda60008383610fae565b8060026000828254610cec919061141d565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610da5611004565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610c5b3390565b6001600160a01b038216610e3a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104ed565b610e4682600083610fae565b6001600160a01b03821660009081526020819052604090205481811015610eba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104ed565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610869565b6001600160a01b03811660009081526006602052604090208054600181018255905b50919050565b6000610394610f45610a9f565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610f978787878761104a565b91509150610fa48161110e565b5095945050505050565b610fb6611004565b505050565b60055460ff166103ff5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104ed565b60055460ff16156103ff5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ed565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156110815750600090506003611105565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110d5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110fe57600060019250925050611105565b9150600090505b94509492505050565b60008160048111156111225761112261143e565b0361112a5750565b600181600481111561113e5761113e61143e565b0361118b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104ed565b600281600481111561119f5761119f61143e565b036111ec5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104ed565b60038160048111156112005761120061143e565b0361074e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104ed565b600060208083528351808285015260005b8181101561128557858101830151858201604001528201611269565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146112bd57600080fd5b919050565b600080604083850312156112d557600080fd5b6112de836112a6565b946020939093013593505050565b60008060006060848603121561130157600080fd5b61130a846112a6565b9250611318602085016112a6565b9150604084013590509250925092565b60006020828403121561133a57600080fd5b6106d1826112a6565b600080600080600080600060e0888a03121561135e57600080fd5b611367886112a6565b9650611375602089016112a6565b95506040880135945060608801359350608088013560ff8116811461139957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156113c957600080fd5b6113d2836112a6565b91506113e0602084016112a6565b90509250929050565b600181811c908216806113fd57607f821691505b602082108103610f3257634e487b7160e01b600052602260045260246000fd5b8082018082111561039457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea26469706673582212207973e1f7636f28144dc4be0aff3be4455c5186040c5da48d497b32b79d13fd1b64736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e4c696265726c616e64204b756e6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c4b4e0000000000000000000000000000000000000000000000000000000000", - "nonce": "0x43", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xae9825efc8532b45affe048ff5782dfabda68d864b2cc2189c36710380c0124f", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xB6bCcBaa59E1e84E272A90319DD586f97C75f464", - "function": null, - "arguments": [ - "0x5fdf9c5a7F958573A8A9B5F09df84f6fE62FDB1d", - "0x00688c400000000000000000000000007134b5df53d7a276849a1a64a76f6d89725087470000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000016345785d8a0000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x90eb6", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201a5a8dc888ce85ff4ae07f041d17d5934859232186edf2343aee6c07a5cb29d764736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000005fdf9c5a7f958573a8a9b5f09df84f6fe62fdb1d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e400688c400000000000000000000000007134b5df53d7a276849a1a64a76f6d89725087470000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x44", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xcfb645661d3e0eebd7509e84fd6bb6bf78cab01de6d52f7ed2c39106d2115651", - "transactionType": "CALL", - "contractName": "WrappedToken", - "contractAddress": "0x7134B5DF53D7A276849a1A64a76f6D8972508747", - "function": "transferOwnership(address)", - "arguments": [ - "0xB6bCcBaa59E1e84E272A90319DD586f97C75f464" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x7134b5df53d7a276849a1a64a76f6d8972508747", - "gas": "0x9b06", - "value": "0x0", - "data": "0xf2fde38b000000000000000000000000b6bccbaa59e1e84e272a90319dd586f97c75f464", - "nonce": "0x45", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0xd35765f7d8671b53893d998b0cc53ade4609f2fc8c7c75d11c0548dfbcdd430d", - "transactionIndex": "0x0", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x232ae2", - "gasUsed": "0x232ae2", - "contractAddress": "0x5fdf9c5a7F958573A8A9B5F09df84f6fE62FDB1d", - "logs": [ - { - "address": "0x5fdf9c5a7F958573A8A9B5F09df84f6fE62FDB1d", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xd35765f7d8671b53893d998b0cc53ade4609f2fc8c7c75d11c0548dfbcdd430d", - "transactionIndex": "0x0", - "logIndex": "0x0", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000080000000000000000000000400000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e0c" - }, - { - "transactionHash": "0x130766f54a98be0650309c5546c20976182b82d53627854afc7f59c3ac72c634", - "transactionIndex": "0x1", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x369fc3", - "gasUsed": "0x1374e1", - "contractAddress": "0x0f018D7e0B8f5D5cCc88c0B23d931AaAA13B0C42", - "logs": [ - { - "address": "0x0f018D7e0B8f5D5cCc88c0B23d931AaAA13B0C42", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0x130766f54a98be0650309c5546c20976182b82d53627854afc7f59c3ac72c634", - "transactionIndex": "0x1", - "logIndex": "0x1", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000200000000000800000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000002020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000020000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e0c" - }, - { - "transactionHash": "0xa152a9409ce791e6b88ed0b110883f7b373a9a402f094bb8616a31b9c08a70cd", - "transactionIndex": "0x2", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x3d97ed", - "gasUsed": "0x6f82a", - "contractAddress": "0x4B084924eC2a8C8481B3D533524331Ede1Deb0f7", - "logs": [ - { - "address": "0x4B084924eC2a8C8481B3D533524331Ede1Deb0f7", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000005fdf9c5a7f958573a8a9b5f09df84f6fe62fdb1d" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xa152a9409ce791e6b88ed0b110883f7b373a9a402f094bb8616a31b9c08a70cd", - "transactionIndex": "0x2", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x4B084924eC2a8C8481B3D533524331Ede1Deb0f7", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xa152a9409ce791e6b88ed0b110883f7b373a9a402f094bb8616a31b9c08a70cd", - "transactionIndex": "0x2", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0x4B084924eC2a8C8481B3D533524331Ede1Deb0f7", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xa152a9409ce791e6b88ed0b110883f7b373a9a402f094bb8616a31b9c08a70cd", - "transactionIndex": "0x2", - "logIndex": "0x4", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000000000000000000400040000000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000000000000000000002002000000000000002000000000000000400000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000080000080000000000000000000000000000000001000000000000400000000000000000000001000000000000000000020000000000000000000040000000000000000000100000080000000000020000000000000000000000000000000000000000000000000000010000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e0c" - }, - { - "transactionHash": "0x43c002995f3194736c13a1e9103be0264f677e0fa6bcf4603fb6e42fdbaa9ba5", - "transactionIndex": "0x3", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x0f018D7e0B8f5D5cCc88c0B23d931AaAA13B0C42", - "cumulativeGasUsed": "0x3e082a", - "gasUsed": "0x703d", - "contractAddress": null, - "logs": [ - { - "address": "0x0f018D7e0B8f5D5cCc88c0B23d931AaAA13B0C42", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000004b084924ec2a8c8481b3d533524331ede1deb0f7" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0x43c002995f3194736c13a1e9103be0264f677e0fa6bcf4603fb6e42fdbaa9ba5", - "transactionIndex": "0x3", - "logIndex": "0x5", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000200000000000800000000000000000000000800000000000000000000000000000000000001000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000080000000000020000000000000000000000000000000000000080000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e0c" - }, - { - "transactionHash": "0xa52a095db6e013060fd0d25408fa6ef4ac23cdef8c84ae1f019f7a660943105e", - "transactionIndex": "0x4", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x517cff", - "gasUsed": "0x1374d5", - "contractAddress": "0x7134B5DF53D7A276849a1A64a76f6D8972508747", - "logs": [ - { - "address": "0x7134B5DF53D7A276849a1A64a76f6D8972508747", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xa52a095db6e013060fd0d25408fa6ef4ac23cdef8c84ae1f019f7a660943105e", - "transactionIndex": "0x4", - "logIndex": "0x6", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000800000000000800000400000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000020000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e0c" - }, - { - "transactionHash": "0xae9825efc8532b45affe048ff5782dfabda68d864b2cc2189c36710380c0124f", - "transactionIndex": "0x5", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x587529", - "gasUsed": "0x6f82a", - "contractAddress": "0xB6bCcBaa59E1e84E272A90319DD586f97C75f464", - "logs": [ - { - "address": "0xB6bCcBaa59E1e84E272A90319DD586f97C75f464", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000005fdf9c5a7f958573a8a9b5f09df84f6fe62fdb1d" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xae9825efc8532b45affe048ff5782dfabda68d864b2cc2189c36710380c0124f", - "transactionIndex": "0x5", - "logIndex": "0x7", - "removed": false - }, - { - "address": "0xB6bCcBaa59E1e84E272A90319DD586f97C75f464", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xae9825efc8532b45affe048ff5782dfabda68d864b2cc2189c36710380c0124f", - "transactionIndex": "0x5", - "logIndex": "0x8", - "removed": false - }, - { - "address": "0xB6bCcBaa59E1e84E272A90319DD586f97C75f464", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xae9825efc8532b45affe048ff5782dfabda68d864b2cc2189c36710380c0124f", - "transactionIndex": "0x5", - "logIndex": "0x9", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000000000000000000400040000000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000200000000000000002002000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000008000400000000000000000000000000000000000080000080002000000000000000000000000000000000000000000400000000000000000000001000000000000000000020000000000000000000040000000000000000000100000080000000000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e0c" - }, - { - "transactionHash": "0xcfb645661d3e0eebd7509e84fd6bb6bf78cab01de6d52f7ed2c39106d2115651", - "transactionIndex": "0x6", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x7134B5DF53D7A276849a1A64a76f6D8972508747", - "cumulativeGasUsed": "0x58e566", - "gasUsed": "0x703d", - "contractAddress": null, - "logs": [ - { - "address": "0x7134B5DF53D7A276849a1A64a76f6D8972508747", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x000000000000000000000000b6bccbaa59e1e84e272a90319dd586f97c75f464" - ], - "data": "0x", - "blockHash": "0x196e52bc60a3bd7bdbd6885d195d218c654a19950984e02626b9854b1ba6303a", - "blockNumber": "0x3c7c83", - "transactionHash": "0xcfb645661d3e0eebd7509e84fd6bb6bf78cab01de6d52f7ed2c39106d2115651", - "transactionIndex": "0x6", - "logIndex": "0xa", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000020000000000000000000000000800000000000000000000000000000000000000800000000000800000400040000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000080000000000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e0c" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1690321291, - "chain": 11155111, - "multi": false, - "commit": "e8de720a9c" -} \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1695646229.json b/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1695646229.json deleted file mode 100644 index dce557ef42..0000000000 --- a/substrate/eth-bridge/contracts/broadcast/Deploy.s.sol/11155111/run-1695646229.json +++ /dev/null @@ -1,651 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xae4e42dcf95e9488cbb2c1f4413c9e9594482633e344e5f0332034db6f6978a9", - "transactionType": "CREATE", - "contractName": "Bridge", - "contractAddress": "0x9598CDF255589C86F5ef6ff7A96Ce87D8E04F9e0", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x2d81df", - "value": "0x0", - "data": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516128156200011f60003960008181610c7701528181610cb701528181610d5601528181610d960152610e2501526128156000f3fe6080604052600436106102455760003560e01c806363a599a411610139578063b53f5227116100b6578063d9a755721161007a578063d9a7557214610747578063ddca3f4314610767578063ead93c8f1461077d578063f1ba83a114610797578063f72c0d8b146107b9578063fc0c546a146107db57600080fd5b8063b53f5227146106b2578063b88a802f146106d2578063bcf64e05146106e7578063d547741f14610707578063d6987b8c1461072757600080fd5b80639f8ee31c116100fd5780639f8ee31c146105ba578063a217fddf14610653578063a4f35b6514610668578063acec338a1461067f578063adf2cead1461069f57600080fd5b806363a599a41461052357806369fe0e2d1461053857806375b238fc1461055857806391d148541461057a57806397d159e71461059a57600080fd5b806334636e8e116101c757806346aa52ce1161018b57806346aa52ce1461048c5780634f1ef286146104be57806352d1902d146104d157806361e08e72146104e6578063633433de1461050357600080fd5b806334636e8e146103f4578063361fab251461040a57806336568abe1461042a5780633659cfe61461044a5780634460bdd61461046a57600080fd5b80630e0a999e1161020e5780630e0a999e1461034057806319d1997a14610360578063248a9ca3146103765780632f2ff15d146103a657806331d7a262146103c657600080fd5b80624f94071461024a57806301ffc9a71461026c57806304421823146102a15780630847a4fb146102d15780630c2891b714610309575b600080fd5b34801561025657600080fd5b5061026a6102653660046121bc565b6107fb565b005b34801561027857600080fd5b5061028c6102873660046121d5565b610819565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102c36000805160206126f983398151915281565b604051908152602001610298565b3480156102dd57600080fd5b506102f16102ec3660046121ff565b610850565b6040516001600160a01b039091168152602001610298565b34801561031557600080fd5b5060fb5461032b90610100900463ffffffff1681565b60405163ffffffff9091168152602001610298565b34801561034c57600080fd5b5061026a61035b366004612236565b610889565b34801561036c57600080fd5b506102c360fe5481565b34801561038257600080fd5b506102c36103913660046121bc565b60009081526065602052604090206001015490565b3480156103b257600080fd5b5061026a6103c136600461228d565b610ad6565b3480156103d257600080fd5b506102c36103e13660046122bd565b6101026020526000908152604090205481565b34801561040057600080fd5b506102c360fd5481565b34801561041657600080fd5b5061026a6104253660046121bc565b610bcc565b34801561043657600080fd5b5061026a61044536600461228d565b610bea565b34801561045657600080fd5b5061026a6104653660046122bd565b610c6d565b34801561047657600080fd5b506102c360008051602061277983398151915281565b34801561049857600080fd5b5061010354610104546104a9919082565b60408051928352602083019190915201610298565b61026a6104cc3660046122f0565b610d4c565b3480156104dd57600080fd5b506102c3610e18565b3480156104f257600080fd5b5061010554610106546104a9919082565b34801561050f57600080fd5b5061026a61051e3660046123cd565b610ecb565b34801561052f57600080fd5b5061026a610f2d565b34801561054457600080fd5b5061026a6105533660046121bc565b610f78565b34801561056457600080fd5b506102c36000805160206127c083398151915281565b34801561058657600080fd5b5061028c61059536600461228d565b610f96565b3480156105a657600080fd5b5061026a6105b53660046121bc565b610fc1565b3480156105c657600080fd5b506106186105d53660046121bc565b61010060205260009081526040902080546001820154600283015460039093015467ffffffffffffffff831693600160401b9093046001600160a01b0316929085565b6040805167ffffffffffffffff90961686526001600160a01b039094166020860152928401919091526060830152608082015260a001610298565b34801561065f57600080fd5b506102c3600081565b34801561067457600080fd5b506102c36101075481565b34801561068b57600080fd5b5061026a61069a3660046123f6565b610fe0565b61026a6106ad3660046121bc565b611001565b3480156106be57600080fd5b5061026a6106cd3660046121ff565b611224565b3480156106de57600080fd5b5061026a61124a565b3480156106f357600080fd5b5061026a6107023660046121ff565b6112c7565b34801561071357600080fd5b5061026a61072236600461228d565b61137c565b34801561073357600080fd5b5061026a610742366004612413565b61146d565b34801561075357600080fd5b5061028c61076236600461228d565b6115fc565b34801561077357600080fd5b506102c360fc5481565b34801561078957600080fd5b5060fb5461028c9060ff1681565b3480156107a357600080fd5b506102c360008051602061273983398151915281565b3480156107c557600080fd5b506102c360008051602061271983398151915281565b3480156107e757600080fd5b5060ff546102f1906001600160a01b031681565b6000805160206127798339815191526108138161161c565b5060fd55565b60006001600160e01b03198216637965db0b60e01b148061084a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610101602052816000526040600020818154811061086d57600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000805160206126f98339815191526108a18161161c565b60fb5460ff166108c4576040516343e5c67f60e11b815260040160405180910390fd5b8367ffffffffffffffff166000036108ef5760405163a9cb9e0d60e01b815260040160405180910390fd5b600085815261010060205260409020600301541561092057604051632bf773b360e11b815260040160405180910390fd5b6000858152610100602052604090205467ffffffffffffffff16156109635761094b85858486611626565b61095e57610959600061169c565b610acf565b6109a6565b60008581526101006020526040902080546001600160a01b038416600160401b026001600160e01b031990911667ffffffffffffffff8716171781556001018390555b6109b085336115fc565b156109ce57604051637c9a1cf960e01b815260040160405180910390fd5b60008581526101016020908152604080832080546001810182559084528284200180546001600160a01b03191633179055878352610100909152902060020154158015610a38575060fb546000868152610101602052604090205461010090910463ffffffff1611155b15610a7b5760008581526101006020526040808220436002909101555186917f6fb7fd1eda743aa3eb32c69f3b8cf14a5aeadf26db51057a7c5c78ba10eac8a491a25b6000858152610100602090815260409182902054915167ffffffffffffffff9092168252339187917f35736f19ec5960edd1e2dbf347b5682b955d14cfaec893ec96d43ec699d742c3910160405180910390a35b5050505050565b6000600080516020612779833981519152831480610b0157506000805160206126f983398151915283145b80610b19575060008051602061271983398151915283145b15610b3957610b3660008051602061277983398151915233610f96565b90505b6000805160206127c0833981519152831480610b62575060008051602061273983398151915283145b15610ba057610b7f60008051602061277983398151915233610f96565b80610b9d5750610b9d6000805160206127c083398151915233610f96565b90505b80610bbd576040516282b42960e81b815260040160405180910390fd5b610bc78383611865565b505050565b600080516020612779833981519152610be48161161c565b5060fe55565b6001600160a01b0381163314610c5f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610c6982826118eb565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610cb55760405162461bcd60e51b8152600401610c569061247c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610cfe600080516020612759833981519152546001600160a01b031690565b6001600160a01b031614610d245760405162461bcd60e51b8152600401610c56906124c8565b610d2d81611952565b60408051600080825260208201909252610d499183919061196a565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d945760405162461bcd60e51b8152600401610c569061247c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ddd600080516020612759833981519152546001600160a01b031690565b6001600160a01b031614610e035760405162461bcd60e51b8152600401610c56906124c8565b610e0c82611952565b610c698282600161196a565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eb85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c56565b5060008051602061275983398151915290565b600080516020612779833981519152610ee38161161c565b8163ffffffff16600003610f0a5760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fb805463ffffffff9092166101000264ffffffff0019909216919091179055565b600080516020612739833981519152610f458161161c565b6040517f4e97bcfc80ae353daee1a1990d5b388eef167d3e197ebf5243cc4d43b4125c0990600090a1610d49600061169c565b6000805160206127c0833981519152610f908161161c565b5060fc55565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206127c0833981519152610fd98161161c565b5061010755565b6000805160206127c0833981519152610ff88161161c565b610c698261169c565b60fb5460ff16611024576040516343e5c67f60e11b815260040160405180910390fd5b60008181526101006020526040812060028101549091036110585760405163c19f17a960e01b815260040160405180910390fd5b60038101541561107b57604051632bf773b360e11b815260040160405180910390fd5b60fd54816002015461108d919061252a565b4310156110ad57604051636fed7d8560e01b815260040160405180910390fd5b60fe54816001015460ff60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112c919061253d565b611136919061252a565b1115611155576040516395bfe45760e01b815260040160405180910390fd5b60008281526101016020526040902061116d90611ad5565b61117a8160010154611c1f565b60405182907f533f7dadbc941d74aaeaeccf2e8b5c0c607281e9050f147d7606feed36c4306c90600090a243600382015560ff54815460018301546040516340c10f1960e01b81526001600160a01b03600160401b9093048316600482015260248101919091529116906340c10f19906044015b600060405180830381600087803b15801561120857600080fd5b505af115801561121c573d6000803e3d6000fd5b505050505050565b60008051602061277983398151915261123c8161161c565b506101059190915561010655565b3360008181526101026020526040808220805490839055905190929083908381818185875af1925050503d80600081146112a0576040519150601f19603f3d011682016040523d82523d6000602084013e6112a5565b606091505b5050905080610c6957604051630db2c7f160e31b815260040160405180910390fd5b60fb5460ff166112ea576040516343e5c67f60e11b815260040160405180910390fd5b6101075482101561130e576040516322313ae960e01b815260040160405180910390fd5b604051828152819033907fdc2326ce9005f56c5df82c47c1219524e289753a3d5de92038d1e956bb565e419060200160405180910390a360ff54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044016111ee565b60006000805160206127798339815191528314806113a7575060008051602061273983398151915283145b806113bf575060008051602061271983398151915283145b156113df576113dc60008051602061277983398151915233610f96565b90505b6000805160206127c083398151915283148061140857506000805160206126f983398151915283145b156114465761142560008051602061277983398151915233610f96565b8061144357506114436000805160206127c083398151915233610f96565b90505b80611463576040516282b42960e81b815260040160405180910390fd5b610bc783836118eb565b600054610100900460ff161580801561148d5750600054600160ff909116105b806114a75750303b1580156114a7575060005460ff166001145b61150a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c56565b6000805460ff19166001179055801561152d576000805461ff0019166101001790555b611535611ca8565b61153d611ca8565b60ff80546001600160a01b0319166001600160a01b038b1617905561010585905561010684905560fb805464ffffffff00191661010063ffffffff8b160217905560fc86905560fd87905560fe8390556101078290556115ab60008051602061277983398151915233611865565b80156115f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6000828152610101602052604081206116159083611d15565b9392505050565b610d498133611d78565b600084815261010060205260408120805467ffffffffffffffff868116911614611654576000915050611694565b80546001600160a01b03858116600160401b9092041614611679576000915050611694565b8281600101541461168e576000915050611694565b60019150505b949350505050565b8080156116b2575060ff546001600160a01b0316155b156116d05760405163c52a9bd360e01b815260040160405180910390fd5b60fb5460ff161515811515146117165760405181151581527ff74fbb47e96130656a063aecd12cec7b7599ed09cfe357c4d850ae7f2cb19b5a9060200160405180910390a15b60fb805460ff191682151517905560ff546001600160a01b031615610d495760ff5460408051635c975abb60e01b815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa15801561177f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a39190612556565b90508180156117af5750805b156118045760ff60009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561120857600080fd5b81158015611810575080155b15610c695760ff60009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561120857600080fd5b61186f8282610f96565b610c695760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118a73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6118f58282610f96565b15610c695760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020612719833981519152610c698161161c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561199d57610bc783611dd1565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119f7575060408051601f3d908101601f191682019092526119f49181019061253d565b60015b611a5a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c56565b6000805160206127598339815191528114611ac95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c56565b50610bc7838383611e6d565b60fc54341015611af857604051631c0b171360e31b815260040160405180910390fd5b80546008600260036000611b0c8286612573565b611b16848661252a565b611b20919061252a565b90506000611b2e823461258a565b90506000611b3c8383612573565b611b4690346125ac565b905060005b878110156115f157846000829003611b6a57611b67888261252a565b90505b60fb54611b8490600190610100900463ffffffff166125bf565b63ffffffff168203611b9d57611b9a878261252a565b90505b6000611ba98286612573565b905082600003611bc057611bbd848261252a565b90505b8061010260008d8681548110611bd857611bd86125e3565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611c0c90849061252a565b909155505060019092019150611b4b9050565b61010454600090611c3090436125ac565b905060008161010560010154611c469190612573565b9050600081610103600001541115611c65575061010354819003611c69565b5060005b611c73848261252a565b61010554909150811115611c9a576040516307ef6f4d60e31b815260040160405180910390fd5b610103555050436101045550565b600054610100900460ff16611d135760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610c56565b565b8154600090815b81811015611d6d57836001600160a01b0316858281548110611d4057611d406125e3565b6000918252602090912001546001600160a01b031603611d655760019250505061084a565b600101611d1c565b506000949350505050565b611d828282610f96565b610c6957611d8f81611e98565b611d9a836020611eaa565b604051602001611dab92919061261d565b60408051601f198184030181529082905262461bcd60e51b8252610c5691600401612692565b6001600160a01b0381163b611e3e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c56565b60008051602061275983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611e7683612046565b600082511180611e835750805b15610bc757611e928383612086565b50505050565b606061084a6001600160a01b03831660145b60606000611eb9836002612573565b611ec490600261252a565b67ffffffffffffffff811115611edc57611edc6122da565b6040519080825280601f01601f191660200182016040528015611f06576020820181803683370190505b509050600360fc1b81600081518110611f2157611f216125e3565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611f5057611f506125e3565b60200101906001600160f81b031916908160001a9053506000611f74846002612573565b611f7f90600161252a565b90505b6001811115611ff7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611fb357611fb36125e3565b1a60f81b828281518110611fc957611fc96125e3565b60200101906001600160f81b031916908160001a90535060049490941c93611ff0816126c5565b9050611f82565b5083156116155760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c56565b61204f81611dd1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606116158383604051806060016040528060278152602001612799602791396060600080856001600160a01b0316856040516120c391906126dc565b600060405180830381855af49150503d80600081146120fe576040519150601f19603f3d011682016040523d82523d6000602084013e612103565b606091505b50915091506121148683838761211e565b9695505050505050565b6060831561218d578251600003612186576001600160a01b0385163b6121865760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c56565b5081611694565b61169483838151156121a25781518083602001fd5b8060405162461bcd60e51b8152600401610c569190612692565b6000602082840312156121ce57600080fd5b5035919050565b6000602082840312156121e757600080fd5b81356001600160e01b03198116811461161557600080fd5b6000806040838503121561221257600080fd5b50508035926020909101359150565b6001600160a01b0381168114610d4957600080fd5b6000806000806080858703121561224c57600080fd5b84359350602085013567ffffffffffffffff8116811461226b57600080fd5b925060408501359150606085013561228281612221565b939692955090935050565b600080604083850312156122a057600080fd5b8235915060208301356122b281612221565b809150509250929050565b6000602082840312156122cf57600080fd5b813561161581612221565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561230357600080fd5b823561230e81612221565b9150602083013567ffffffffffffffff8082111561232b57600080fd5b818501915085601f83011261233f57600080fd5b813581811115612351576123516122da565b604051601f8201601f19908116603f01168101908382118183101715612379576123796122da565b8160405282815288602084870101111561239257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b803563ffffffff811681146123c857600080fd5b919050565b6000602082840312156123df57600080fd5b611615826123b4565b8015158114610d4957600080fd5b60006020828403121561240857600080fd5b8135611615816123e8565b600080600080600080600080610100898b03121561243057600080fd5b883561243b81612221565b975061244960208a016123b4565b979a9799505050506040860135956060810135956080820135955060a0820135945060c0820135935060e0909101359150565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561084a5761084a612514565b60006020828403121561254f57600080fd5b5051919050565b60006020828403121561256857600080fd5b8151611615816123e8565b808202811582820484141761084a5761084a612514565b6000826125a757634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561084a5761084a612514565b63ffffffff8281168282160390808211156125dc576125dc612514565b5092915050565b634e487b7160e01b600052603260045260246000fd5b60005b838110156126145781810151838201526020016125fc565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516126558160178501602088016125f9565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516126868160288401602088016125f9565b01602801949350505050565b60208152600082518060208401526126b18160408501602087016125f9565b601f01601f19169190910160400192915050565b6000816126d4576126d4612514565b506000190190565b600082516126ee8184602087016125f9565b919091019291505056fe077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e32125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212202dc820d196d15a50eb4662aa16dbc67f60ff53e8956e0d8a6f46f4caa5c37ddc64736f6c63430008120033", - "nonce": "0x81", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x1d5b6b8b6836dcecb3025a9fab1b73227ee37892528a867f1527e6f76b5f2488", - "transactionType": "CREATE", - "contractName": "WrappedToken", - "contractAddress": "0x70f5152D56132beFb503cCa1d6CCB6f5F49048a8", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x302362", - "value": "0x0", - "data": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051612a796200011f6000396000818161081e0152818161085e01528181610ab301528181610af30152610b820152612a796000f3fe6080604052600436106101f95760003560e01c80635c975abb1161010d578063a217fddf116100a0578063d53913931161006f578063d539139314610589578063d547741f146105ab578063dd62ed3e146105cb578063e63ab1e9146105eb578063f72c0d8b1461061f57600080fd5b8063a217fddf14610514578063a457c2d714610529578063a9059cbb14610549578063d505accf1461056957600080fd5b806384b0196e116100dc57806384b0196e1461049757806391d14854146104bf57806395d89b41146104df5780639dc29fac146104f457600080fd5b80635c975abb1461041457806370a082311461042c5780637ecebe00146104625780638456cb591461048257600080fd5b80633644e515116101905780633f4ba83a1161015f5780633f4ba83a1461039757806340c10f19146103ac5780634cd88b76146103cc5780634f1ef286146103ec57806352d1902d146103ff57600080fd5b80633644e5151461032257806336568abe146103375780633659cfe614610357578063395093511461037757600080fd5b806323b872dd116101cc57806323b872dd14610294578063248a9ca3146102b45780632f2ff15d146102e4578063313ce5671461030657600080fd5b806301ffc9a7146101fe57806306fdde0314610233578063095ea7b31461025557806318160ddd14610275575b600080fd5b34801561020a57600080fd5b5061021e610219366004612280565b610653565b60405190151581526020015b60405180910390f35b34801561023f57600080fd5b5061024861068a565b60405161022a91906122fa565b34801561026157600080fd5b5061021e610270366004612329565b61071c565b34801561028157600080fd5b506035545b60405190815260200161022a565b3480156102a057600080fd5b5061021e6102af366004612353565b610734565b3480156102c057600080fd5b506102866102cf36600461238f565b600090815260c9602052604090206001015490565b3480156102f057600080fd5b506103046102ff3660046123a8565b610758565b005b34801561031257600080fd5b50604051600c815260200161022a565b34801561032e57600080fd5b50610286610782565b34801561034357600080fd5b506103046103523660046123a8565b610791565b34801561036357600080fd5b506103046103723660046123d4565b610814565b34801561038357600080fd5b5061021e610392366004612329565b6108f3565b3480156103a357600080fd5b50610304610915565b3480156103b857600080fd5b506103046103c7366004612329565b610947565b3480156103d857600080fd5b506103046103e736600461249b565b610969565b6103046103fa3660046124ff565b610aa9565b34801561040b57600080fd5b50610286610b75565b34801561042057600080fd5b5060655460ff1661021e565b34801561043857600080fd5b506102866104473660046123d4565b6001600160a01b031660009081526033602052604090205490565b34801561046e57600080fd5b5061028661047d3660046123d4565b610c28565b34801561048e57600080fd5b50610304610c47565b3480156104a357600080fd5b506104ac610c79565b60405161022a9796959493929190612557565b3480156104cb57600080fd5b5061021e6104da3660046123a8565b610d17565b3480156104eb57600080fd5b50610248610d42565b34801561050057600080fd5b5061030461050f366004612329565b610d51565b34801561052057600080fd5b50610286600081565b34801561053557600080fd5b5061021e610544366004612329565b610d7e565b34801561055557600080fd5b5061021e610564366004612329565b610df9565b34801561057557600080fd5b506103046105843660046125ed565b610e07565b34801561059557600080fd5b50610286600080516020612a2483398151915281565b3480156105b757600080fd5b506103046105c63660046123a8565b610f6b565b3480156105d757600080fd5b506102866105e6366004612660565b610f90565b3480156105f757600080fd5b506102867f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b34801561062b57600080fd5b506102867f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b60006001600160e01b03198216637965db0b60e01b148061068457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060603680546106999061268a565b80601f01602080910402602001604051908101604052809291908181526020018280546106c59061268a565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b5050505050905090565b60003361072a818585610fe6565b5060019392505050565b60003361074285828561110a565b61074d858585611184565b506001949350505050565b600082815260c960205260409020600101546107738161133a565b61077d8383611344565b505050565b600061078c6113ca565b905090565b6001600160a01b03811633146108065760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61081082826113d4565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361085c5760405162461bcd60e51b81526004016107fd906126be565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108a56000805160206129dd833981519152546001600160a01b031690565b6001600160a01b0316146108cb5760405162461bcd60e51b81526004016107fd9061270a565b6108d48161143b565b604080516000808252602082019092526108f091839190611465565b50565b60003361072a8185856109068383610f90565b610910919061276c565b610fe6565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61093f8161133a565b6108f06115d0565b600080516020612a2483398151915261095f8161133a565b61077d8383611622565b600054610100900460ff16158080156109895750600054600160ff909116105b806109a35750303b1580156109a3575060005460ff166001145b610a065760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107fd565b6000805460ff191660011790558015610a29576000805461ff0019166101001790555b610a3383836116ef565b610a3b611720565b610a43611751565b610a4c83611778565b610a54611751565b610a5f600033611344565b801561077d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610af15760405162461bcd60e51b81526004016107fd906126be565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b3a6000805160206129dd833981519152546001600160a01b031690565b6001600160a01b031614610b605760405162461bcd60e51b81526004016107fd9061270a565b610b698261143b565b61081082826001611465565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c155760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107fd565b506000805160206129dd83398151915290565b6001600160a01b038116600090815261012f6020526040812054610684565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c718161133a565b6108f06117c2565b60006060806000806000606060fb546000801b148015610c99575060fc54155b610cdd5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016107fd565b610ce56117ff565b610ced61180e565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060603780546106999061268a565b600080516020612a24833981519152610d698161133a565b610d7483338461110a565b61077d838361181d565b60003381610d8c8286610f90565b905083811015610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107fd565b61074d8286868403610fe6565b60003361072a818585611184565b83421115610e575760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016107fd565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e868c61195d565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610ee182611986565b90506000610ef1828787876119b3565b9050896001600160a01b0316816001600160a01b031614610f545760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016107fd565b610f5f8a8a8a610fe6565b50505050505050505050565b600082815260c96020526040902060010154610f868161133a565b61077d83836113d4565b6000610faa600080516020612a2483398151915283610d17565b15610fb85750600019610684565b6001600160a01b038084166000908152603460209081526040808320938616835292905220545b9392505050565b6001600160a01b0383166110485760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fd565b6001600160a01b0382166110a95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fd565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111168484610f90565b9050600019811461117e57818110156111715760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107fd565b61117e8484848403610fe6565b50505050565b6001600160a01b0383166111e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fd565b6001600160a01b03821661124a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fd565b6112558383836119dd565b6001600160a01b038316600090815260336020526040902054818110156112cd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107fd565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061132d9086815260200190565b60405180910390a361117e565b6108f081336119e5565b61134e8282610d17565b61081057600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113863390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061078c611a3e565b6113de8282610d17565b1561081057600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e36108108161133a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156114985761077d83611ab2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114f2575060408051601f3d908101601f191682019092526114ef9181019061277f565b60015b6115555760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107fd565b6000805160206129dd83398151915281146115c45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107fd565b5061077d838383611b4e565b6115d8611b73565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166116785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107fd565b611684600083836119dd565b8060356000828254611696919061276c565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600054610100900460ff166117165760405162461bcd60e51b81526004016107fd90612798565b6108108282611bbc565b600054610100900460ff166117475760405162461bcd60e51b81526004016107fd90612798565b61174f611bfc565b565b600054610100900460ff1661174f5760405162461bcd60e51b81526004016107fd90612798565b600054610100900460ff1661179f5760405162461bcd60e51b81526004016107fd90612798565b6108f081604051806040016040528060018152602001603160f81b815250611c2f565b6117ca611c7e565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586116053390565b606060fd80546106999061268a565b606060fe80546106999061268a565b6001600160a01b03821661187d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107fd565b611889826000836119dd565b6001600160a01b038216600090815260336020526040902054818110156118fd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107fd565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038116600090815261012f602052604090208054600181018255905b50919050565b60006106846119936113ca565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006119c487878787611cc4565b915091506119d181611d88565b5090505b949350505050565b61077d611c7e565b6119ef8282610d17565b610810576119fc81611ed2565b611a07836020611ee4565b604051602001611a189291906127e3565b60408051601f198184030181529082905262461bcd60e51b82526107fd916004016122fa565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611a69612080565b611a716120d9565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b0381163b611b1f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107fd565b6000805160206129dd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611b578361210a565b600082511180611b645750805b1561077d5761117e838361214a565b60655460ff1661174f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107fd565b600054610100900460ff16611be35760405162461bcd60e51b81526004016107fd90612798565b6036611bef83826128a6565b50603761077d82826128a6565b600054610100900460ff16611c235760405162461bcd60e51b81526004016107fd90612798565b6065805460ff19169055565b600054610100900460ff16611c565760405162461bcd60e51b81526004016107fd90612798565b60fd611c6283826128a6565b5060fe611c6f82826128a6565b5050600060fb81905560fc5550565b60655460ff161561174f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107fd565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611cfb5750600090506003611d7f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611d4f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d7857600060019250925050611d7f565b9150600090505b94509492505050565b6000816004811115611d9c57611d9c612966565b03611da45750565b6001816004811115611db857611db8612966565b03611e055760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107fd565b6002816004811115611e1957611e19612966565b03611e665760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107fd565b6003816004811115611e7a57611e7a612966565b036108f05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016107fd565b60606106846001600160a01b03831660145b60606000611ef383600261297c565b611efe90600261276c565b67ffffffffffffffff811115611f1657611f166123ef565b6040519080825280601f01601f191660200182016040528015611f40576020820181803683370190505b509050600360fc1b81600081518110611f5b57611f5b612993565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611f8a57611f8a612993565b60200101906001600160f81b031916908160001a9053506000611fae84600261297c565b611fb990600161276c565b90505b6001811115612031576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611fed57611fed612993565b1a60f81b82828151811061200357612003612993565b60200101906001600160f81b031916908160001a90535060049490941c9361202a816129a9565b9050611fbc565b508315610fdf5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107fd565b60008061208b6117ff565b8051909150156120a2578051602090910120919050565b60fb5480156120b15792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806120e461180e565b8051909150156120fb578051602090910120919050565b60fc5480156120b15792915050565b61211381611ab2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610fdf83836040518060600160405280602781526020016129fd602791396060600080856001600160a01b03168560405161218791906129c0565b600060405180830381855af49150503d80600081146121c2576040519150601f19603f3d011682016040523d82523d6000602084013e6121c7565b606091505b50915091506121d8868383876121e2565b9695505050505050565b6060831561225157825160000361224a576001600160a01b0385163b61224a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107fd565b50816119d5565b6119d583838151156122665781518083602001fd5b8060405162461bcd60e51b81526004016107fd91906122fa565b60006020828403121561229257600080fd5b81356001600160e01b031981168114610fdf57600080fd5b60005b838110156122c55781810151838201526020016122ad565b50506000910152565b600081518084526122e68160208601602086016122aa565b601f01601f19169290920160200192915050565b602081526000610fdf60208301846122ce565b80356001600160a01b038116811461232457600080fd5b919050565b6000806040838503121561233c57600080fd5b6123458361230d565b946020939093013593505050565b60008060006060848603121561236857600080fd5b6123718461230d565b925061237f6020850161230d565b9150604084013590509250925092565b6000602082840312156123a157600080fd5b5035919050565b600080604083850312156123bb57600080fd5b823591506123cb6020840161230d565b90509250929050565b6000602082840312156123e657600080fd5b610fdf8261230d565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612420576124206123ef565b604051601f8501601f19908116603f01168101908282118183101715612448576124486123ef565b8160405280935085815286868601111561246157600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261248c57600080fd5b610fdf83833560208501612405565b600080604083850312156124ae57600080fd5b823567ffffffffffffffff808211156124c657600080fd5b6124d28683870161247b565b935060208501359150808211156124e857600080fd5b506124f58582860161247b565b9150509250929050565b6000806040838503121561251257600080fd5b61251b8361230d565b9150602083013567ffffffffffffffff81111561253757600080fd5b8301601f8101851361254857600080fd5b6124f585823560208401612405565b60ff60f81b881681526000602060e08184015261257760e084018a6122ce565b8381036040850152612589818a6122ce565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156125db578351835292840192918401916001016125bf565b50909c9b505050505050505050505050565b600080600080600080600060e0888a03121561260857600080fd5b6126118861230d565b965061261f6020890161230d565b95506040880135945060608801359350608088013560ff8116811461264357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561267357600080fd5b61267c8361230d565b91506123cb6020840161230d565b600181811c9082168061269e57607f821691505b60208210810361198057634e487b7160e01b600052602260045260246000fd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561068457610684612756565b60006020828403121561279157600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161281b8160178501602088016122aa565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161284c8160288401602088016122aa565b01602801949350505050565b601f82111561077d57600081815260208120601f850160051c8101602086101561287f5750805b601f850160051c820191505b8181101561289e5782815560010161288b565b505050505050565b815167ffffffffffffffff8111156128c0576128c06123ef565b6128d4816128ce845461268a565b84612858565b602080601f83116001811461290957600084156128f15750858301515b600019600386901b1c1916600185901b17855561289e565b600085815260208120601f198616915b8281101561293857888601518255948401946001909101908401612919565b50858210156129565787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b808202811582820484141761068457610684612756565b634e487b7160e01b600052603260045260246000fd5b6000816129b8576129b8612756565b506000190190565b600082516129d28184602087016122aa565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a2646970667358221220e8322b9abf87dc8f2dfff33c334b9d92d3f5b36a7119dc7d5fa2be141881f94164736f6c63430008120033", - "nonce": "0x82", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xeff7aa1ed2b8a4ab03de63bf852c8cda366bb6f7ba1eafdf2e188cc72400cb48", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "function": null, - "arguments": [ - "0x70f5152D56132beFb503cCa1d6CCB6f5F49048a8", - "0x4cd88b7600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f4c696265726c616e642044656e6172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c444e0000000000000000000000000000000000000000000000000000000000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x7ec35", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bce4cab4e0933ca202ed3bb267582debf45ef49a5864438e250547ad2d2cc9e064736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000070f5152d56132befb503cca1d6ccb6f5f49048a8000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c44cd88b7600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f4c696265726c616e642044656e6172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c444e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x83", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xf08f3b826846b0b44c4fe543c7e5f924d7b99fa544cd86d5606691edd22a4cf0", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xC4217e86A64Ccec4Ac1Ac6ce04Acba709b9D912B", - "function": null, - "arguments": [ - "0x9598CDF255589C86F5ef6ff7A96Ce87D8E04F9e0", - "0xd6987b8c000000000000000000000000ab249b1c05905bced7a228dd8fc18ff4487b8ee10000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000003691d6afc0000000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000001b48eb57e000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x9813d", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bce4cab4e0933ca202ed3bb267582debf45ef49a5864438e250547ad2d2cc9e064736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009598cdf255589c86f5ef6ff7a96ce87d8e04f9e000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000104d6987b8c000000000000000000000000ab249b1c05905bced7a228dd8fc18ff4487b8ee10000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000003691d6afc0000000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000001b48eb57e00000000000000000000000000000000000000000000000000000000000", - "nonce": "0x84", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x33575fcb410320f94af1486d472b7ee4b63f2bf356b6aeb38299f2073a9f3d53", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0xab249b1c05905bced7a228dd8fc18ff4487b8ee1", - "gas": "0x1305f", - "value": "0x0", - "data": "0x2f2ff15d9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6000000000000000000000000c4217e86a64ccec4ac1ac6ce04acba709b9d912b", - "nonce": "0x85", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x69952a89bef8fd2ad8749b2675331a4cef36bd5d373cff407cf3a16bc34d7064", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0xab249b1c05905bced7a228dd8fc18ff4487b8ee1", - "gas": "0x1305f", - "value": "0x0", - "data": "0x2f2ff15d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a000000000000000000000000c4217e86a64ccec4ac1ac6ce04acba709b9d912b", - "nonce": "0x86", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xeacfa9aa71d26706c749ffe8718eb6f1833a8239a89021c60e1da218be826e64", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "function": null, - "arguments": [ - "0x70f5152D56132beFb503cCa1d6CCB6f5F49048a8", - "0x4cd88b7600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e4c696265726c616e64204b756e6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c4b4e0000000000000000000000000000000000000000000000000000000000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x7ec25", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bce4cab4e0933ca202ed3bb267582debf45ef49a5864438e250547ad2d2cc9e064736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000070f5152d56132befb503cca1d6ccb6f5f49048a8000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c44cd88b7600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e4c696265726c616e64204b756e6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c4b4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x87", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x7d9a2831299916126b8413c0f35d1de22712c36c9c8d7f0cf3f274ff5258cad9", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "function": null, - "arguments": [ - "0x9598CDF255589C86F5ef6ff7A96Ce87D8E04F9e0", - "0xd6987b8c00000000000000000000000042c096574ac5efe204ccb73ffc86031e30decc7b0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000009184e72a000" - ], - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x9813d", - "value": "0x0", - "data": "0x608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bce4cab4e0933ca202ed3bb267582debf45ef49a5864438e250547ad2d2cc9e064736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009598cdf255589c86f5ef6ff7a96ce87d8e04f9e000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000104d6987b8c00000000000000000000000042c096574ac5efe204ccb73ffc86031e30decc7b0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000003252c5061afe00000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000009184e72a00000000000000000000000000000000000000000000000000000000000", - "nonce": "0x88", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x1419b49e8072ed29e774bc347996b236157e9319559bd5c2e2c7e5b32f51bfcd", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x42c096574ac5efe204ccb73ffc86031e30decc7b", - "gas": "0x1305f", - "value": "0x0", - "data": "0x2f2ff15d9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6000000000000000000000000195afd36bd3d831f4c1195a150584d6a7ebf546f", - "nonce": "0x89", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xdbdfdd8524ae5d217b5dd5c96164875111719a3a40e2ec1ca0a04f53501bfbe8", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x42c096574ac5efe204ccb73ffc86031e30decc7b", - "gas": "0x1305f", - "value": "0x0", - "data": "0x2f2ff15d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a000000000000000000000000195afd36bd3d831f4c1195a150584d6a7ebf546f", - "nonce": "0x8a", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0xae4e42dcf95e9488cbb2c1f4413c9e9594482633e344e5f0332034db6f6978a9", - "transactionIndex": "0x18", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x674ce5", - "gasUsed": "0x230405", - "contractAddress": "0x9598CDF255589C86F5ef6ff7A96Ce87D8E04F9e0", - "logs": [ - { - "address": "0x9598CDF255589C86F5ef6ff7A96Ce87D8E04F9e0", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xae4e42dcf95e9488cbb2c1f4413c9e9594482633e344e5f0332034db6f6978a9", - "transactionIndex": "0x18", - "logIndex": "0x28", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0x1d5b6b8b6836dcecb3025a9fab1b73227ee37892528a867f1527e6f76b5f2488", - "transactionIndex": "0x19", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x8c5726", - "gasUsed": "0x250a41", - "contractAddress": "0x70f5152D56132beFb503cCa1d6CCB6f5F49048a8", - "logs": [ - { - "address": "0x70f5152D56132beFb503cCa1d6CCB6f5F49048a8", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0x1d5b6b8b6836dcecb3025a9fab1b73227ee37892528a867f1527e6f76b5f2488", - "transactionIndex": "0x19", - "logIndex": "0x29", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000080000000000000000000000000002000000000000000000400800000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0xeff7aa1ed2b8a4ab03de63bf852c8cda366bb6f7ba1eafdf2e188cc72400cb48", - "transactionIndex": "0x1a", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x926fd7", - "gasUsed": "0x618b1", - "contractAddress": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "logs": [ - { - "address": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000070f5152d56132befb503cca1d6ccb6f5f49048a8" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xeff7aa1ed2b8a4ab03de63bf852c8cda366bb6f7ba1eafdf2e188cc72400cb48", - "transactionIndex": "0x1a", - "logIndex": "0x2a", - "removed": false - }, - { - "address": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xeff7aa1ed2b8a4ab03de63bf852c8cda366bb6f7ba1eafdf2e188cc72400cb48", - "transactionIndex": "0x1a", - "logIndex": "0x2b", - "removed": false - }, - { - "address": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xeff7aa1ed2b8a4ab03de63bf852c8cda366bb6f7ba1eafdf2e188cc72400cb48", - "transactionIndex": "0x1a", - "logIndex": "0x2c", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000000000000000000400000000000000020000000000000008000000000000000002000000000000000000800000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000020000000000000000000800000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000200000000000000000000000000400000000000000000000001000000000000000000020000000000000000000040000000000000000000100000080000020000020000000000000000000000002000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0xf08f3b826846b0b44c4fe543c7e5f924d7b99fa544cd86d5606691edd22a4cf0", - "transactionIndex": "0x1b", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x99c01c", - "gasUsed": "0x75045", - "contractAddress": "0xC4217e86A64Ccec4Ac1Ac6ce04Acba709b9D912B", - "logs": [ - { - "address": "0xC4217e86A64Ccec4Ac1Ac6ce04Acba709b9D912B", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009598cdf255589c86f5ef6ff7a96ce87d8e04f9e0" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xf08f3b826846b0b44c4fe543c7e5f924d7b99fa544cd86d5606691edd22a4cf0", - "transactionIndex": "0x1b", - "logIndex": "0x2d", - "removed": false - }, - { - "address": "0xC4217e86A64Ccec4Ac1Ac6ce04Acba709b9D912B", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xf08f3b826846b0b44c4fe543c7e5f924d7b99fa544cd86d5606691edd22a4cf0", - "transactionIndex": "0x1b", - "logIndex": "0x2e", - "removed": false - }, - { - "address": "0xC4217e86A64Ccec4Ac1Ac6ce04Acba709b9D912B", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xf08f3b826846b0b44c4fe543c7e5f924d7b99fa544cd86d5606691edd22a4cf0", - "transactionIndex": "0x1b", - "logIndex": "0x2f", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004040000000000000000000020400040000000000000000000000000000000000000000000010001000000000000000800000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000080000000000000000200000000000000000000000000000400000000000000000000001000004000000000000020000000000000000000040000000000000000000100000080000000000020000000000000000000000000400000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0x33575fcb410320f94af1486d472b7ee4b63f2bf356b6aeb38299f2073a9f3d53", - "transactionIndex": "0x1c", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "cumulativeGasUsed": "0x9a9c79", - "gasUsed": "0xdc5d", - "contractAddress": null, - "logs": [ - { - "address": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6", - "0x000000000000000000000000c4217e86a64ccec4ac1ac6ce04acba709b9d912b", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0x33575fcb410320f94af1486d472b7ee4b63f2bf356b6aeb38299f2073a9f3d53", - "transactionIndex": "0x1c", - "logIndex": "0x30", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000400000000000000000000000000000000000020000000000000008000000000000000000000000000004000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000001000000000000100000080000000000020000000000000000002000020000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0x69952a89bef8fd2ad8749b2675331a4cef36bd5d373cff407cf3a16bc34d7064", - "transactionIndex": "0x1d", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "cumulativeGasUsed": "0x9b78d6", - "gasUsed": "0xdc5d", - "contractAddress": null, - "logs": [ - { - "address": "0xAB249B1c05905BCeD7a228dd8fC18fF4487B8eE1", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", - "0x000000000000000000000000c4217e86a64ccec4ac1ac6ce04acba709b9d912b", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0x69952a89bef8fd2ad8749b2675331a4cef36bd5d373cff407cf3a16bc34d7064", - "transactionIndex": "0x1d", - "logIndex": "0x31", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000400000000000000000000000000000000000020000000000000008000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000100002080000000000020000000000000000002000020000000000400000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0xeacfa9aa71d26706c749ffe8718eb6f1833a8239a89021c60e1da218be826e64", - "transactionIndex": "0x1e", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0xa1917b", - "gasUsed": "0x618a5", - "contractAddress": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "logs": [ - { - "address": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000070f5152d56132befb503cca1d6ccb6f5f49048a8" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xeacfa9aa71d26706c749ffe8718eb6f1833a8239a89021c60e1da218be826e64", - "transactionIndex": "0x1e", - "logIndex": "0x32", - "removed": false - }, - { - "address": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xeacfa9aa71d26706c749ffe8718eb6f1833a8239a89021c60e1da218be826e64", - "transactionIndex": "0x1e", - "logIndex": "0x33", - "removed": false - }, - { - "address": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xeacfa9aa71d26706c749ffe8718eb6f1833a8239a89021c60e1da218be826e64", - "transactionIndex": "0x1e", - "logIndex": "0x34", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000000000000000000400000000000000000000000000000000000000000000000002000000000000000000800000000000000000018000000000000000000000000000000000002000000000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000200000000000000000000000000400000000000000000000001000000000000000000020000000000000008000040000000000000000000100000080000020000020000000000000000000000002000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0x7d9a2831299916126b8413c0f35d1de22712c36c9c8d7f0cf3f274ff5258cad9", - "transactionIndex": "0x1f", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0xa8e1c0", - "gasUsed": "0x75045", - "contractAddress": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "logs": [ - { - "address": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009598cdf255589c86f5ef6ff7a96ce87d8e04f9e0" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0x7d9a2831299916126b8413c0f35d1de22712c36c9c8d7f0cf3f274ff5258cad9", - "transactionIndex": "0x1f", - "logIndex": "0x35", - "removed": false - }, - { - "address": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0x7d9a2831299916126b8413c0f35d1de22712c36c9c8d7f0cf3f274ff5258cad9", - "transactionIndex": "0x1f", - "logIndex": "0x36", - "removed": false - }, - { - "address": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0x7d9a2831299916126b8413c0f35d1de22712c36c9c8d7f0cf3f274ff5258cad9", - "transactionIndex": "0x1f", - "logIndex": "0x37", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004040000000000000000000000400040000000000000000000000000000000000000000000010001000000000000000800000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000020000000000000000080000000000000000000000000000000080000000000000400000000000000000000001200004000000000000020000000000000000000040000000000000000000100000080000000000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0x1419b49e8072ed29e774bc347996b236157e9319559bd5c2e2c7e5b32f51bfcd", - "transactionIndex": "0x20", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "cumulativeGasUsed": "0xa9be1d", - "gasUsed": "0xdc5d", - "contractAddress": null, - "logs": [ - { - "address": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6", - "0x000000000000000000000000195afd36bd3d831f4c1195a150584d6a7ebf546f", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0x1419b49e8072ed29e774bc347996b236157e9319559bd5c2e2c7e5b32f51bfcd", - "transactionIndex": "0x20", - "logIndex": "0x38", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000004020000880000000000000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000008000000000001008000000000100000080000000000020000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - }, - { - "transactionHash": "0xdbdfdd8524ae5d217b5dd5c96164875111719a3a40e2ec1ca0a04f53501bfbe8", - "transactionIndex": "0x21", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "cumulativeGasUsed": "0xaa9a7a", - "gasUsed": "0xdc5d", - "contractAddress": null, - "logs": [ - { - "address": "0x42c096574aC5Efe204ccB73FfC86031e30DEcc7B", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", - "0x000000000000000000000000195afd36bd3d831f4c1195a150584d6a7ebf546f", - "0x0000000000000000000000007638462f3a5f2cdb49609bf4947ae396f9088949" - ], - "data": "0x", - "blockHash": "0x57a4454f1504f8291508edcf566471847730c5557c1d8493242b91c779d1acb8", - "blockNumber": "0x428bdc", - "transactionHash": "0xdbdfdd8524ae5d217b5dd5c96164875111719a3a40e2ec1ca0a04f53501bfbe8", - "transactionIndex": "0x21", - "logIndex": "0x39", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000880000000000000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000008000000000000008000000000100002080000000000020000000000000000000000000000000000400000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x104c533c00" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1695646229, - "chain": 11155111, - "multi": false, - "commit": "978cf502fa" -} \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/broadcast/Upgrade.s.sol/11155111/run-1689844979.json b/substrate/eth-bridge/contracts/broadcast/Upgrade.s.sol/11155111/run-1689844979.json deleted file mode 100644 index f89227268c..0000000000 --- a/substrate/eth-bridge/contracts/broadcast/Upgrade.s.sol/11155111/run-1689844979.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x007e2784fa05377d72d5193b2e9ab3da39bed30f96959274372c3fedde6e1cfc", - "transactionType": "CREATE", - "contractName": "Bridge", - "contractAddress": "0x3dF5907e08f803c5e2eEAa5e8cb83Aa6CD61f002", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x2db460", - "value": "0x0", - "data": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516128436200012060003960008181610e7901528181610eb901528181610f5801528181610f98015261102701526128436000f3fe6080604052600436106102395760003560e01c806361e08e721161012e578063b53f5227116100ab578063ddca3f431161006f578063ddca3f4314610744578063ead93c8f1461075a578063f1ba83a114610774578063f72c0d8b14610796578063fc0c546a146107b857600080fd5b8063b53f5227146106af578063b88a802f146106cf578063bcf64e05146106e4578063d547741f14610704578063d9a755721461072457600080fd5b806391d14854116100f257806391d14854146105ae5780639f8ee31c146105ce578063a217fddf14610667578063acec338a1461067c578063adf2cead1461069c57600080fd5b806361e08e721461051a578063633433de1461053757806363a599a41461055757806369fe0e2d1461056c57806375b238fc1461058c57600080fd5b80632f2ff15d116101bc5780633659cfe6116101805780633659cfe61461047e5780634460bdd61461049e57806346aa52ce146104c05780634f1ef286146104f257806352d1902d1461050557600080fd5b80632f2ff15d146103da57806331d7a262146103fa57806334636e8e14610428578063361fab251461043e57806336568abe1461045e57600080fd5b80630c2891b7116102035780630c2891b71461031d5780630e0a999e1461035457806319d1997a1461037457806321e6b53d1461038a578063248a9ca3146103aa57600080fd5b80624f94071461023e578062688c401461026057806301ffc9a71461028057806304421823146102b55780630847a4fb146102e5575b600080fd5b34801561024a57600080fd5b5061025e6102593660046121f3565b6107d8565b005b34801561026c57600080fd5b5061025e61027b36600461223a565b6107f6565b34801561028c57600080fd5b506102a061029b36600461229a565b610983565b60405190151581526020015b60405180910390f35b3480156102c157600080fd5b506102d760008051602061272783398151915281565b6040519081526020016102ac565b3480156102f157600080fd5b506103056103003660046122c4565b6109ba565b6040516001600160a01b0390911681526020016102ac565b34801561032957600080fd5b5060fb5461033f90610100900463ffffffff1681565b60405163ffffffff90911681526020016102ac565b34801561036057600080fd5b5061025e61036f3660046122e6565b6109f3565b34801561038057600080fd5b506102d760fe5481565b34801561039657600080fd5b5061025e6103a536600461233d565b610c40565b3480156103b657600080fd5b506102d76103c53660046121f3565b60009081526065602052604090206001015490565b3480156103e657600080fd5b5061025e6103f536600461235a565b610cdd565b34801561040657600080fd5b506102d761041536600461233d565b6101026020526000908152604090205481565b34801561043457600080fd5b506102d760fd5481565b34801561044a57600080fd5b5061025e6104593660046121f3565b610dd3565b34801561046a57600080fd5b5061025e61047936600461235a565b610df1565b34801561048a57600080fd5b5061025e61049936600461233d565b610e6f565b3480156104aa57600080fd5b506102d76000805160206127a783398151915281565b3480156104cc57600080fd5b5061010354610104546104dd919082565b604080519283526020830191909152016102ac565b61025e6105003660046123a0565b610f4e565b34801561051157600080fd5b506102d761101a565b34801561052657600080fd5b5061010554610106546104dd919082565b34801561054357600080fd5b5061025e610552366004612464565b6110cd565b34801561056357600080fd5b5061025e61112f565b34801561057857600080fd5b5061025e6105873660046121f3565b61117a565b34801561059857600080fd5b506102d76000805160206127ee83398151915281565b3480156105ba57600080fd5b506102a06105c936600461235a565b611198565b3480156105da57600080fd5b5061062c6105e93660046121f3565b61010060205260009081526040902080546001820154600283015460039093015467ffffffffffffffff831693600160401b9093046001600160a01b0316929085565b6040805167ffffffffffffffff90961686526001600160a01b039094166020860152928401919091526060830152608082015260a0016102ac565b34801561067357600080fd5b506102d7600081565b34801561068857600080fd5b5061025e61069736600461248d565b6111c3565b61025e6106aa3660046121f3565b6111e4565b3480156106bb57600080fd5b5061025e6106ca3660046122c4565b611407565b3480156106db57600080fd5b5061025e61142d565b3480156106f057600080fd5b5061025e6106ff3660046122c4565b6114aa565b34801561071057600080fd5b5061025e61071f36600461235a565b61153b565b34801561073057600080fd5b506102a061073f36600461235a565b61162c565b34801561075057600080fd5b506102d760fc5481565b34801561076657600080fd5b5060fb546102a09060ff1681565b34801561078057600080fd5b506102d760008051602061276783398151915281565b3480156107a257600080fd5b506102d760008051602061274783398151915281565b3480156107c457600080fd5b5060ff54610305906001600160a01b031681565b6000805160206127a78339815191526107f08161164c565b5060fd55565b600054610100900460ff16158080156108165750600054600160ff909116105b806108305750303b158015610830575060005460ff166001145b6108985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156108bb576000805461ff0019166101001790555b6108c3611656565b6108cb611656565b60ff80546001600160a01b0319166001600160a01b038a1617905561010584905561010683905560fb805464ffffffff00191661010063ffffffff8a160217905560fc85905560fd86905560fe8290556109336000805160206127a7833981519152336116c3565b8015610979576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60006001600160e01b03198216637965db0b60e01b14806109b457506301ffc9a760e01b6001600160e01b03198316145b92915050565b61010160205281600052604060002081815481106109d757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600080516020612727833981519152610a0b8161164c565b60fb5460ff16610a2e576040516343e5c67f60e11b815260040160405180910390fd5b8367ffffffffffffffff16600003610a595760405163a9cb9e0d60e01b815260040160405180910390fd5b6000858152610100602052604090206003015415610a8a57604051632bf773b360e11b815260040160405180910390fd5b6000858152610100602052604090205467ffffffffffffffff1615610acd57610ab585858486611749565b610ac857610ac360006117bf565b610c39565b610b10565b60008581526101006020526040902080546001600160a01b038416600160401b026001600160e01b031990911667ffffffffffffffff8716171781556001018390555b610b1a853361162c565b15610b3857604051637c9a1cf960e01b815260040160405180910390fd5b60008581526101016020908152604080832080546001810182559084528284200180546001600160a01b03191633179055878352610100909152902060020154158015610ba2575060fb546000868152610101602052604090205461010090910463ffffffff1611155b15610be55760008581526101006020526040808220436002909101555186917f6fb7fd1eda743aa3eb32c69f3b8cf14a5aeadf26db51057a7c5c78ba10eac8a491a25b6000858152610100602090815260409182902054915167ffffffffffffffff9092168252339187917f35736f19ec5960edd1e2dbf347b5682b955d14cfaec893ec96d43ec699d742c3910160405180910390a35b5050505050565b6000805160206127a7833981519152610c588161164c565b60ff80546001600160a01b031981169091556001600160a01b0316610c7d60006117bf565b60405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b90602401600060405180830381600087803b158015610cc057600080fd5b505af1158015610cd4573d6000803e3d6000fd5b50505050505050565b60006000805160206127a7833981519152831480610d08575060008051602061272783398151915283145b80610d20575060008051602061274783398151915283145b15610d4057610d3d6000805160206127a783398151915233611198565b90505b6000805160206127ee833981519152831480610d69575060008051602061276783398151915283145b15610da757610d866000805160206127a783398151915233611198565b80610da45750610da46000805160206127ee83398151915233611198565b90505b80610dc4576040516282b42960e81b815260040160405180910390fd5b610dce83836116c3565b505050565b6000805160206127a7833981519152610deb8161164c565b5060fe55565b6001600160a01b0381163314610e615760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b610e6b8282611988565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610eb75760405162461bcd60e51b815260040161088f906124aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f00600080516020612787833981519152546001600160a01b031690565b6001600160a01b031614610f265760405162461bcd60e51b815260040161088f906124f6565b610f2f816119ef565b60408051600080825260208201909252610f4b91839190611a07565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f965760405162461bcd60e51b815260040161088f906124aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fdf600080516020612787833981519152546001600160a01b031690565b6001600160a01b0316146110055760405162461bcd60e51b815260040161088f906124f6565b61100e826119ef565b610e6b82826001611a07565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110ba5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161088f565b5060008051602061278783398151915290565b6000805160206127a78339815191526110e58161164c565b8163ffffffff1660000361110c5760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fb805463ffffffff9092166101000264ffffffff0019909216919091179055565b6000805160206127678339815191526111478161164c565b6040517f4e97bcfc80ae353daee1a1990d5b388eef167d3e197ebf5243cc4d43b4125c0990600090a1610f4b60006117bf565b6000805160206127ee8339815191526111928161164c565b5060fc55565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206127ee8339815191526111db8161164c565b610e6b826117bf565b60fb5460ff16611207576040516343e5c67f60e11b815260040160405180910390fd5b600081815261010060205260408120600281015490910361123b5760405163c19f17a960e01b815260040160405180910390fd5b60038101541561125e57604051632bf773b360e11b815260040160405180910390fd5b60fd5481600201546112709190612558565b43101561129057604051636fed7d8560e01b815260040160405180910390fd5b60fe54816001015460ff60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f919061256b565b6113199190612558565b1115611338576040516395bfe45760e01b815260040160405180910390fd5b60008281526101016020526040902061135090611b72565b61135d8160010154611cc7565b60405182907f533f7dadbc941d74aaeaeccf2e8b5c0c607281e9050f147d7606feed36c4306c90600090a243600382015560ff54815460018301546040516340c10f1960e01b81526001600160a01b03600160401b9093048316600482015260248101919091529116906340c10f19906044015b600060405180830381600087803b1580156113eb57600080fd5b505af11580156113ff573d6000803e3d6000fd5b505050505050565b6000805160206127a783398151915261141f8161164c565b506101059190915561010655565b3360008181526101026020526040808220805490839055905190929083908381818185875af1925050503d8060008114611483576040519150601f19603f3d011682016040523d82523d6000602084013e611488565b606091505b5050905080610e6b57604051630db2c7f160e31b815260040160405180910390fd5b60fb5460ff166114cd576040516343e5c67f60e11b815260040160405180910390fd5b604051828152819033907fdc2326ce9005f56c5df82c47c1219524e289753a3d5de92038d1e956bb565e419060200160405180910390a360ff54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044016113d1565b60006000805160206127a7833981519152831480611566575060008051602061276783398151915283145b8061157e575060008051602061274783398151915283145b1561159e5761159b6000805160206127a783398151915233611198565b90505b6000805160206127ee8339815191528314806115c7575060008051602061272783398151915283145b15611605576115e46000805160206127a783398151915233611198565b8061160257506116026000805160206127ee83398151915233611198565b90505b80611622576040516282b42960e81b815260040160405180910390fd5b610dce8383611988565b6000828152610101602052604081206116459083611d50565b9392505050565b610f4b8133611db3565b600054610100900460ff166116c15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161088f565b565b6116cd8282611198565b610e6b5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556117053390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600084815261010060205260408120805467ffffffffffffffff8681169116146117775760009150506117b7565b80546001600160a01b03858116600160401b909204161461179c5760009150506117b7565b828160010154146117b15760009150506117b7565b60019150505b949350505050565b8080156117d5575060ff546001600160a01b0316155b156117f35760405163c52a9bd360e01b815260040160405180910390fd5b60fb5460ff161515811515146118395760405181151581527ff74fbb47e96130656a063aecd12cec7b7599ed09cfe357c4d850ae7f2cb19b5a9060200160405180910390a15b60fb805460ff191682151517905560ff546001600160a01b031615610f4b5760ff5460408051635c975abb60e01b815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa1580156118a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c69190612584565b90508180156118d25750805b156119275760ff60009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113eb57600080fd5b81158015611933575080155b15610e6b5760ff60009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113eb57600080fd5b6119928282611198565b15610e6b5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020612747833981519152610e6b8161164c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a3a57610dce83611e0c565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a94575060408051601f3d908101601f19168201909252611a919181019061256b565b60015b611af75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161088f565b6000805160206127878339815191528114611b665760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161088f565b50610dce838383611ea8565b60fc54341015611b9557604051631c0b171360e31b815260040160405180910390fd5b80546008600260036000611ba982866125a1565b611bb38486612558565b611bbd9190612558565b90506000611bcb82346125b8565b90506000611bd983836125a1565b611be390346125da565b905060005b87811015611cbc57846000829003611c0757611c048882612558565b90505b60fb54611c2190600190610100900463ffffffff166125ed565b63ffffffff168203611c3a57611c378782612558565b90505b6000611c4682866125a1565b905082600003611c5d57611c5a8482612558565b90505b8061010260008d8681548110611c7557611c75612611565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611ca9908490612558565b909155505060019092019150611be89050565b505050505050505050565b61010454600090611cd890436125da565b905060008161010560010154611cee91906125a1565b9050600081610103600001541115611d0d575061010354819003611d11565b5060005b611d1b8482612558565b61010554909150811115611d42576040516307ef6f4d60e31b815260040160405180910390fd5b610103555050436101045550565b8154600090815b81811015611da857836001600160a01b0316858281548110611d7b57611d7b612611565b6000918252602090912001546001600160a01b031603611da0576001925050506109b4565b600101611d57565b506000949350505050565b611dbd8282611198565b610e6b57611dca81611ed3565b611dd5836020611ee5565b604051602001611de692919061264b565b60408051601f198184030181529082905262461bcd60e51b825261088f916004016126c0565b6001600160a01b0381163b611e795760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161088f565b60008051602061278783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611eb183612081565b600082511180611ebe5750805b15610dce57611ecd83836120c1565b50505050565b60606109b46001600160a01b03831660145b60606000611ef48360026125a1565b611eff906002612558565b67ffffffffffffffff811115611f1757611f1761238a565b6040519080825280601f01601f191660200182016040528015611f41576020820181803683370190505b509050600360fc1b81600081518110611f5c57611f5c612611565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611f8b57611f8b612611565b60200101906001600160f81b031916908160001a9053506000611faf8460026125a1565b611fba906001612558565b90505b6001811115612032576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611fee57611fee612611565b1a60f81b82828151811061200457612004612611565b60200101906001600160f81b031916908160001a90535060049490941c9361202b816126f3565b9050611fbd565b5083156116455760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b61208a81611e0c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6121295760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161088f565b600080846001600160a01b031684604051612144919061270a565b600060405180830381855af49150503d806000811461217f576040519150601f19603f3d011682016040523d82523d6000602084013e612184565b606091505b50915091506121ac82826040518060600160405280602781526020016127c7602791396121b5565b95945050505050565b606083156121c4575081611645565b61164583838151156121d95781518083602001fd5b8060405162461bcd60e51b815260040161088f91906126c0565b60006020828403121561220557600080fd5b5035919050565b6001600160a01b0381168114610f4b57600080fd5b803563ffffffff8116811461223557600080fd5b919050565b600080600080600080600060e0888a03121561225557600080fd5b87356122608161220c565b965061226e60208901612221565b96999698505050506040850135946060810135946080820135945060a0820135935060c0909101359150565b6000602082840312156122ac57600080fd5b81356001600160e01b03198116811461164557600080fd5b600080604083850312156122d757600080fd5b50508035926020909101359150565b600080600080608085870312156122fc57600080fd5b84359350602085013567ffffffffffffffff8116811461231b57600080fd5b92506040850135915060608501356123328161220c565b939692955090935050565b60006020828403121561234f57600080fd5b81356116458161220c565b6000806040838503121561236d57600080fd5b82359150602083013561237f8161220c565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156123b357600080fd5b82356123be8161220c565b9150602083013567ffffffffffffffff808211156123db57600080fd5b818501915085601f8301126123ef57600080fd5b8135818111156124015761240161238a565b604051601f8201601f19908116603f011681019083821181831017156124295761242961238a565b8160405282815288602084870101111561244257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561247657600080fd5b61164582612221565b8015158114610f4b57600080fd5b60006020828403121561249f57600080fd5b81356116458161247f565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109b4576109b4612542565b60006020828403121561257d57600080fd5b5051919050565b60006020828403121561259657600080fd5b81516116458161247f565b80820281158282048414176109b4576109b4612542565b6000826125d557634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109b4576109b4612542565b63ffffffff82811682821603908082111561260a5761260a612542565b5092915050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561264257818101518382015260200161262a565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612683816017850160208801612627565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516126b4816028840160208801612627565b01602801949350505050565b60208152600082518060208401526126df816040850160208701612627565b601f01601f19169190910160400192915050565b60008161270257612702612542565b506000190190565b6000825161271c818460208701612627565b919091019291505056fe077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e32125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cf1d73710cf2a4ab82de3daf7d2ee3e9f08696e358b0318e623cf0187420271c64736f6c63430008120033", - "nonce": "0x34", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x9bbf61a0818bff2ca28276178e91957a4edbe3c1adecdb738639d21afca368df", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0xc8af0c3e0e4fc787d9e657b2a68ce6ed9cedb5da", - "gas": "0xd50a", - "value": "0x0", - "data": "0x3659cfe60000000000000000000000003df5907e08f803c5e2eeaa5e8cb83aa6cd61f002", - "nonce": "0x35", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x02c1e95c9ce139fe0f1f38905df3c7e6675bae1b4ce5f8d890de2f6c5d6e1cc4", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x7e1e09c0b41b22eb1fa04145cdf21cea01560c99", - "gas": "0xd50a", - "value": "0x0", - "data": "0x3659cfe60000000000000000000000003df5907e08f803c5e2eeaa5e8cb83aa6cd61f002", - "nonce": "0x36", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0x007e2784fa05377d72d5193b2e9ab3da39bed30f96959274372c3fedde6e1cfc", - "transactionIndex": "0x8", - "blockHash": "0x65f3f5e50a1da3ec961d2fc876629ed3afab1843fcccb5e3e6ce26242df49163", - "blockNumber": "0x3bf44b", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x569b83", - "gasUsed": "0x232ae2", - "contractAddress": "0x3dF5907e08f803c5e2eEAa5e8cb83Aa6CD61f002", - "logs": [ - { - "address": "0x3dF5907e08f803c5e2eEAa5e8cb83Aa6CD61f002", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x65f3f5e50a1da3ec961d2fc876629ed3afab1843fcccb5e3e6ce26242df49163", - "blockNumber": "0x3bf44b", - "transactionHash": "0x007e2784fa05377d72d5193b2e9ab3da39bed30f96959274372c3fedde6e1cfc", - "transactionIndex": "0x8", - "logIndex": "0xf", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000004000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05ec7" - }, - { - "transactionHash": "0x9bbf61a0818bff2ca28276178e91957a4edbe3c1adecdb738639d21afca368df", - "transactionIndex": "0x9", - "blockHash": "0x65f3f5e50a1da3ec961d2fc876629ed3afab1843fcccb5e3e6ce26242df49163", - "blockNumber": "0x3bf44b", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "cumulativeGasUsed": "0x5735c1", - "gasUsed": "0x9a3e", - "contractAddress": null, - "logs": [ - { - "address": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000003df5907e08f803c5e2eeaa5e8cb83aa6cd61f002" - ], - "data": "0x", - "blockHash": "0x65f3f5e50a1da3ec961d2fc876629ed3afab1843fcccb5e3e6ce26242df49163", - "blockNumber": "0x3bf44b", - "transactionHash": "0x9bbf61a0818bff2ca28276178e91957a4edbe3c1adecdb738639d21afca368df", - "transactionIndex": "0x9", - "logIndex": "0x10", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000010000000000000400000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05ec7" - }, - { - "transactionHash": "0x02c1e95c9ce139fe0f1f38905df3c7e6675bae1b4ce5f8d890de2f6c5d6e1cc4", - "transactionIndex": "0xa", - "blockHash": "0x65f3f5e50a1da3ec961d2fc876629ed3afab1843fcccb5e3e6ce26242df49163", - "blockNumber": "0x3bf44b", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "cumulativeGasUsed": "0x57cfff", - "gasUsed": "0x9a3e", - "contractAddress": null, - "logs": [ - { - "address": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000003df5907e08f803c5e2eeaa5e8cb83aa6cd61f002" - ], - "data": "0x", - "blockHash": "0x65f3f5e50a1da3ec961d2fc876629ed3afab1843fcccb5e3e6ce26242df49163", - "blockNumber": "0x3bf44b", - "transactionHash": "0x02c1e95c9ce139fe0f1f38905df3c7e6675bae1b4ce5f8d890de2f6c5d6e1cc4", - "transactionIndex": "0xa", - "logIndex": "0x11", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000400000000000002000000000000000000000080000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05ec7" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1689844979, - "chain": 11155111, - "multi": false, - "commit": "b8cfc6d152" -} \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/broadcast/Upgrade.s.sol/11155111/run-1690447016.json b/substrate/eth-bridge/contracts/broadcast/Upgrade.s.sol/11155111/run-1690447016.json deleted file mode 100644 index ce4ec892dd..0000000000 --- a/substrate/eth-bridge/contracts/broadcast/Upgrade.s.sol/11155111/run-1690447016.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x6cad82c4eabf884c899165b8b4c2649f5d823fb5760195139472b8b5fab503de", - "transactionType": "CREATE", - "contractName": "Bridge", - "contractAddress": "0x6BA58104312334ff71c4e4D6D34A1FD6cf02FC1d", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x2e58ee", - "value": "0x0", - "data": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516128d96200012060003960008181610d3f01528181610d7f01528181610e1e01528181610e5e0152610eed01526128d96000f3fe6080604052600436106102505760003560e01c806363a599a411610139578063b53f5227116100b6578063d9a755721161007a578063d9a7557214610772578063ddca3f4314610792578063ead93c8f146107a8578063f1ba83a1146107c2578063f72c0d8b146107e4578063fc0c546a1461080657600080fd5b8063b53f5227146106dd578063b88a802f146106fd578063bcf64e0514610712578063d547741f14610732578063d6987b8c1461075257600080fd5b80639f8ee31c116100fd5780639f8ee31c146105e5578063a217fddf1461067e578063a4f35b6514610693578063acec338a146106aa578063adf2cead146106ca57600080fd5b806363a599a41461054e57806369fe0e2d1461056357806375b238fc1461058357806391d14854146105a557806397d159e7146105c557600080fd5b806331d7a262116101d25780634460bdd6116101965780634460bdd61461049557806346aa52ce146104b75780634f1ef286146104e957806352d1902d146104fc57806361e08e7214610511578063633433de1461052e57600080fd5b806331d7a262146103f157806334636e8e1461041f578063361fab251461043557806336568abe146104555780633659cfe61461047557600080fd5b80630e0a999e116102195780630e0a999e1461034b57806319d1997a1461036b57806321e6b53d14610381578063248a9ca3146103a15780632f2ff15d146103d157600080fd5b80624f94071461025557806301ffc9a71461027757806304421823146102ac5780630847a4fb146102dc5780630c2891b714610314575b600080fd5b34801561026157600080fd5b50610275610270366004612280565b610826565b005b34801561028357600080fd5b50610297610292366004612299565b610844565b60405190151581526020015b60405180910390f35b3480156102b857600080fd5b506102ce6000805160206127bd83398151915281565b6040519081526020016102a3565b3480156102e857600080fd5b506102fc6102f73660046122c3565b61087b565b6040516001600160a01b0390911681526020016102a3565b34801561032057600080fd5b5060fb5461033690610100900463ffffffff1681565b60405163ffffffff90911681526020016102a3565b34801561035757600080fd5b506102756103663660046122fa565b6108b4565b34801561037757600080fd5b506102ce60fe5481565b34801561038d57600080fd5b5061027561039c366004612351565b610b01565b3480156103ad57600080fd5b506102ce6103bc366004612280565b60009081526065602052604090206001015490565b3480156103dd57600080fd5b506102756103ec36600461236e565b610b9e565b3480156103fd57600080fd5b506102ce61040c366004612351565b6101026020526000908152604090205481565b34801561042b57600080fd5b506102ce60fd5481565b34801561044157600080fd5b50610275610450366004612280565b610c94565b34801561046157600080fd5b5061027561047036600461236e565b610cb2565b34801561048157600080fd5b50610275610490366004612351565b610d35565b3480156104a157600080fd5b506102ce60008051602061283d83398151915281565b3480156104c357600080fd5b5061010354610104546104d4919082565b604080519283526020830191909152016102a3565b6102756104f73660046123b4565b610e14565b34801561050857600080fd5b506102ce610ee0565b34801561051d57600080fd5b5061010554610106546104d4919082565b34801561053a57600080fd5b50610275610549366004612491565b610f93565b34801561055a57600080fd5b50610275610ff5565b34801561056f57600080fd5b5061027561057e366004612280565b611040565b34801561058f57600080fd5b506102ce60008051602061288483398151915281565b3480156105b157600080fd5b506102976105c036600461236e565b61105e565b3480156105d157600080fd5b506102756105e0366004612280565b611089565b3480156105f157600080fd5b50610643610600366004612280565b61010060205260009081526040902080546001820154600283015460039093015467ffffffffffffffff831693600160401b9093046001600160a01b0316929085565b6040805167ffffffffffffffff90961686526001600160a01b039094166020860152928401919091526060830152608082015260a0016102a3565b34801561068a57600080fd5b506102ce600081565b34801561069f57600080fd5b506102ce6101075481565b3480156106b657600080fd5b506102756106c53660046124ba565b6110a8565b6102756106d8366004612280565b6110c9565b3480156106e957600080fd5b506102756106f83660046122c3565b6112ec565b34801561070957600080fd5b50610275611312565b34801561071e57600080fd5b5061027561072d3660046122c3565b61138f565b34801561073e57600080fd5b5061027561074d36600461236e565b611444565b34801561075e57600080fd5b5061027561076d3660046124d7565b611535565b34801561077e57600080fd5b5061029761078d36600461236e565b6116c4565b34801561079e57600080fd5b506102ce60fc5481565b3480156107b457600080fd5b5060fb546102979060ff1681565b3480156107ce57600080fd5b506102ce6000805160206127fd83398151915281565b3480156107f057600080fd5b506102ce6000805160206127dd83398151915281565b34801561081257600080fd5b5060ff546102fc906001600160a01b031681565b60008051602061283d83398151915261083e816116e4565b5060fd55565b60006001600160e01b03198216637965db0b60e01b148061087557506301ffc9a760e01b6001600160e01b03198316145b92915050565b610101602052816000526040600020818154811061089857600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000805160206127bd8339815191526108cc816116e4565b60fb5460ff166108ef576040516343e5c67f60e11b815260040160405180910390fd5b8367ffffffffffffffff1660000361091a5760405163a9cb9e0d60e01b815260040160405180910390fd5b600085815261010060205260409020600301541561094b57604051632bf773b360e11b815260040160405180910390fd5b6000858152610100602052604090205467ffffffffffffffff161561098e57610976858584866116ee565b610989576109846000611764565b610afa565b6109d1565b60008581526101006020526040902080546001600160a01b038416600160401b026001600160e01b031990911667ffffffffffffffff8716171781556001018390555b6109db85336116c4565b156109f957604051637c9a1cf960e01b815260040160405180910390fd5b60008581526101016020908152604080832080546001810182559084528284200180546001600160a01b03191633179055878352610100909152902060020154158015610a63575060fb546000868152610101602052604090205461010090910463ffffffff1611155b15610aa65760008581526101006020526040808220436002909101555186917f6fb7fd1eda743aa3eb32c69f3b8cf14a5aeadf26db51057a7c5c78ba10eac8a491a25b6000858152610100602090815260409182902054915167ffffffffffffffff9092168252339187917f35736f19ec5960edd1e2dbf347b5682b955d14cfaec893ec96d43ec699d742c3910160405180910390a35b5050505050565b60008051602061283d833981519152610b19816116e4565b60ff80546001600160a01b031981169091556001600160a01b0316610b3e6000611764565b60405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b90602401600060405180830381600087803b158015610b8157600080fd5b505af1158015610b95573d6000803e3d6000fd5b50505050505050565b600060008051602061283d833981519152831480610bc957506000805160206127bd83398151915283145b80610be157506000805160206127dd83398151915283145b15610c0157610bfe60008051602061283d8339815191523361105e565b90505b600080516020612884833981519152831480610c2a57506000805160206127fd83398151915283145b15610c6857610c4760008051602061283d8339815191523361105e565b80610c655750610c656000805160206128848339815191523361105e565b90505b80610c85576040516282b42960e81b815260040160405180910390fd5b610c8f838361192d565b505050565b60008051602061283d833981519152610cac816116e4565b5060fe55565b6001600160a01b0381163314610d275760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610d3182826119b3565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d7d5760405162461bcd60e51b8152600401610d1e90612540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dc660008051602061281d833981519152546001600160a01b031690565b6001600160a01b031614610dec5760405162461bcd60e51b8152600401610d1e9061258c565b610df581611a1a565b60408051600080825260208201909252610e1191839190611a32565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e5c5760405162461bcd60e51b8152600401610d1e90612540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ea560008051602061281d833981519152546001600160a01b031690565b6001600160a01b031614610ecb5760405162461bcd60e51b8152600401610d1e9061258c565b610ed482611a1a565b610d3182826001611a32565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f805760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610d1e565b5060008051602061281d83398151915290565b60008051602061283d833981519152610fab816116e4565b8163ffffffff16600003610fd25760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fb805463ffffffff9092166101000264ffffffff0019909216919091179055565b6000805160206127fd83398151915261100d816116e4565b6040517f4e97bcfc80ae353daee1a1990d5b388eef167d3e197ebf5243cc4d43b4125c0990600090a1610e116000611764565b600080516020612884833981519152611058816116e4565b5060fc55565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206128848339815191526110a1816116e4565b5061010755565b6000805160206128848339815191526110c0816116e4565b610d3182611764565b60fb5460ff166110ec576040516343e5c67f60e11b815260040160405180910390fd5b60008181526101006020526040812060028101549091036111205760405163c19f17a960e01b815260040160405180910390fd5b60038101541561114357604051632bf773b360e11b815260040160405180910390fd5b60fd54816002015461115591906125ee565b43101561117557604051636fed7d8560e01b815260040160405180910390fd5b60fe54816001015460ff60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612601565b6111fe91906125ee565b111561121d576040516395bfe45760e01b815260040160405180910390fd5b60008281526101016020526040902061123590611b9d565b6112428160010154611ce7565b60405182907f533f7dadbc941d74aaeaeccf2e8b5c0c607281e9050f147d7606feed36c4306c90600090a243600382015560ff54815460018301546040516340c10f1960e01b81526001600160a01b03600160401b9093048316600482015260248101919091529116906340c10f19906044015b600060405180830381600087803b1580156112d057600080fd5b505af11580156112e4573d6000803e3d6000fd5b505050505050565b60008051602061283d833981519152611304816116e4565b506101059190915561010655565b3360008181526101026020526040808220805490839055905190929083908381818185875af1925050503d8060008114611368576040519150601f19603f3d011682016040523d82523d6000602084013e61136d565b606091505b5050905080610d3157604051630db2c7f160e31b815260040160405180910390fd5b60fb5460ff166113b2576040516343e5c67f60e11b815260040160405180910390fd5b610107548210156113d6576040516322313ae960e01b815260040160405180910390fd5b604051828152819033907fdc2326ce9005f56c5df82c47c1219524e289753a3d5de92038d1e956bb565e419060200160405180910390a360ff54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044016112b6565b600060008051602061283d83398151915283148061146f57506000805160206127fd83398151915283145b8061148757506000805160206127dd83398151915283145b156114a7576114a460008051602061283d8339815191523361105e565b90505b6000805160206128848339815191528314806114d057506000805160206127bd83398151915283145b1561150e576114ed60008051602061283d8339815191523361105e565b8061150b575061150b6000805160206128848339815191523361105e565b90505b8061152b576040516282b42960e81b815260040160405180910390fd5b610c8f83836119b3565b600054610100900460ff16158080156115555750600054600160ff909116105b8061156f5750303b15801561156f575060005460ff166001145b6115d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d1e565b6000805460ff1916600117905580156115f5576000805461ff0019166101001790555b6115fd611d70565b611605611d70565b60ff80546001600160a01b0319166001600160a01b038b1617905561010585905561010684905560fb805464ffffffff00191661010063ffffffff8b160217905560fc86905560fd87905560fe83905561010782905561167360008051602061283d8339815191523361192d565b80156116b9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6000828152610101602052604081206116dd9083611ddd565b9392505050565b610e118133611e40565b600084815261010060205260408120805467ffffffffffffffff86811691161461171c57600091505061175c565b80546001600160a01b03858116600160401b909204161461174157600091505061175c565b8281600101541461175657600091505061175c565b60019150505b949350505050565b80801561177a575060ff546001600160a01b0316155b156117985760405163c52a9bd360e01b815260040160405180910390fd5b60fb5460ff161515811515146117de5760405181151581527ff74fbb47e96130656a063aecd12cec7b7599ed09cfe357c4d850ae7f2cb19b5a9060200160405180910390a15b60fb805460ff191682151517905560ff546001600160a01b031615610e115760ff5460408051635c975abb60e01b815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa158015611847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186b919061261a565b90508180156118775750805b156118cc5760ff60009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112d057600080fd5b811580156118d8575080155b15610d315760ff60009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112d057600080fd5b611937828261105e565b610d315760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561196f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6119bd828261105e565b15610d315760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206127dd833981519152610d31816116e4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a6557610c8f83611e99565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611abf575060408051601f3d908101601f19168201909252611abc91810190612601565b60015b611b225760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610d1e565b60008051602061281d8339815191528114611b915760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610d1e565b50610c8f838383611f35565b60fc54341015611bc057604051631c0b171360e31b815260040160405180910390fd5b80546008600260036000611bd48286612637565b611bde84866125ee565b611be891906125ee565b90506000611bf6823461264e565b90506000611c048383612637565b611c0e9034612670565b905060005b878110156116b957846000829003611c3257611c2f88826125ee565b90505b60fb54611c4c90600190610100900463ffffffff16612683565b63ffffffff168203611c6557611c6287826125ee565b90505b6000611c718286612637565b905082600003611c8857611c8584826125ee565b90505b8061010260008d8681548110611ca057611ca06126a7565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611cd49084906125ee565b909155505060019092019150611c139050565b61010454600090611cf89043612670565b905060008161010560010154611d0e9190612637565b9050600081610103600001541115611d2d575061010354819003611d31565b5060005b611d3b84826125ee565b61010554909150811115611d62576040516307ef6f4d60e31b815260040160405180910390fd5b610103555050436101045550565b600054610100900460ff16611ddb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d1e565b565b8154600090815b81811015611e3557836001600160a01b0316858281548110611e0857611e086126a7565b6000918252602090912001546001600160a01b031603611e2d57600192505050610875565b600101611de4565b506000949350505050565b611e4a828261105e565b610d3157611e5781611f60565b611e62836020611f72565b604051602001611e739291906126e1565b60408051601f198184030181529082905262461bcd60e51b8252610d1e91600401612756565b6001600160a01b0381163b611f065760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610d1e565b60008051602061281d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611f3e8361210e565b600082511180611f4b5750805b15610c8f57611f5a838361214e565b50505050565b60606108756001600160a01b03831660145b60606000611f81836002612637565b611f8c9060026125ee565b67ffffffffffffffff811115611fa457611fa461239e565b6040519080825280601f01601f191660200182016040528015611fce576020820181803683370190505b509050600360fc1b81600081518110611fe957611fe96126a7565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612018576120186126a7565b60200101906001600160f81b031916908160001a905350600061203c846002612637565b6120479060016125ee565b90505b60018111156120bf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061207b5761207b6126a7565b1a60f81b828281518110612091576120916126a7565b60200101906001600160f81b031916908160001a90535060049490941c936120b881612789565b905061204a565b5083156116dd5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610d1e565b61211781611e99565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6121b65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610d1e565b600080846001600160a01b0316846040516121d191906127a0565b600060405180830381855af49150503d806000811461220c576040519150601f19603f3d011682016040523d82523d6000602084013e612211565b606091505b5091509150612239828260405180606001604052806027815260200161285d60279139612242565b95945050505050565b606083156122515750816116dd565b6116dd83838151156122665781518083602001fd5b8060405162461bcd60e51b8152600401610d1e9190612756565b60006020828403121561229257600080fd5b5035919050565b6000602082840312156122ab57600080fd5b81356001600160e01b0319811681146116dd57600080fd5b600080604083850312156122d657600080fd5b50508035926020909101359150565b6001600160a01b0381168114610e1157600080fd5b6000806000806080858703121561231057600080fd5b84359350602085013567ffffffffffffffff8116811461232f57600080fd5b9250604085013591506060850135612346816122e5565b939692955090935050565b60006020828403121561236357600080fd5b81356116dd816122e5565b6000806040838503121561238157600080fd5b823591506020830135612393816122e5565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156123c757600080fd5b82356123d2816122e5565b9150602083013567ffffffffffffffff808211156123ef57600080fd5b818501915085601f83011261240357600080fd5b8135818111156124155761241561239e565b604051601f8201601f19908116603f0116810190838211818310171561243d5761243d61239e565b8160405282815288602084870101111561245657600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b803563ffffffff8116811461248c57600080fd5b919050565b6000602082840312156124a357600080fd5b6116dd82612478565b8015158114610e1157600080fd5b6000602082840312156124cc57600080fd5b81356116dd816124ac565b600080600080600080600080610100898b0312156124f457600080fd5b88356124ff816122e5565b975061250d60208a01612478565b979a9799505050506040860135956060810135956080820135955060a0820135945060c0820135935060e0909101359150565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610875576108756125d8565b60006020828403121561261357600080fd5b5051919050565b60006020828403121561262c57600080fd5b81516116dd816124ac565b8082028115828204841417610875576108756125d8565b60008261266b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610875576108756125d8565b63ffffffff8281168282160390808211156126a0576126a06125d8565b5092915050565b634e487b7160e01b600052603260045260246000fd5b60005b838110156126d85781810151838201526020016126c0565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516127198160178501602088016126bd565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161274a8160288401602088016126bd565b01602801949350505050565b60208152600082518060208401526127758160408501602087016126bd565b601f01601f19169190910160400192915050565b600081612798576127986125d8565b506000190190565b600082516127b28184602087016126bd565b919091019291505056fe077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e32125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212202896391e1337e3e492af02727a049b7625d78cf19401664379e9027b5441604264736f6c63430008120033", - "nonce": "0x52", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x42caf843474b1602d7e1f5548595f527b9088c8913e129f4096dbd0dddc49495", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0xc8af0c3e0e4fc787d9e657b2a68ce6ed9cedb5da", - "gas": "0xd4ed", - "value": "0x0", - "data": "0x3659cfe60000000000000000000000006ba58104312334ff71c4e4d6d34a1fd6cf02fc1d", - "nonce": "0x53", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xfbe541d8d2b6897159b54ad07e8b3a02624fe4f38f405326ff6b2c9a6252d82e", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x7e1e09c0b41b22eb1fa04145cdf21cea01560c99", - "gas": "0xd4ed", - "value": "0x0", - "data": "0x3659cfe60000000000000000000000006ba58104312334ff71c4e4d6d34a1fd6cf02fc1d", - "nonce": "0x54", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0x6cad82c4eabf884c899165b8b4c2649f5d823fb5760195139472b8b5fab503de", - "transactionIndex": "0x9", - "blockHash": "0xa752adc3eda02916f9ab3fc18b7eb6acb6bd62d140d6636b0d11977091cdb68c", - "blockNumber": "0x3ca07c", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x844fda", - "gasUsed": "0x23a97f", - "contractAddress": "0x6BA58104312334ff71c4e4D6D34A1FD6cf02FC1d", - "logs": [ - { - "address": "0x6BA58104312334ff71c4e4D6D34A1FD6cf02FC1d", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xa752adc3eda02916f9ab3fc18b7eb6acb6bd62d140d6636b0d11977091cdb68c", - "blockNumber": "0x3ca07c", - "transactionHash": "0x6cad82c4eabf884c899165b8b4c2649f5d823fb5760195139472b8b5fab503de", - "transactionIndex": "0x9", - "logIndex": "0x1b", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000001000000004000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e1e" - }, - { - "transactionHash": "0x42caf843474b1602d7e1f5548595f527b9088c8913e129f4096dbd0dddc49495", - "transactionIndex": "0xa", - "blockHash": "0xa752adc3eda02916f9ab3fc18b7eb6acb6bd62d140d6636b0d11977091cdb68c", - "blockNumber": "0x3ca07c", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "cumulativeGasUsed": "0x84ea02", - "gasUsed": "0x9a28", - "contractAddress": null, - "logs": [ - { - "address": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000006ba58104312334ff71c4e4d6d34a1fd6cf02fc1d" - ], - "data": "0x", - "blockHash": "0xa752adc3eda02916f9ab3fc18b7eb6acb6bd62d140d6636b0d11977091cdb68c", - "blockNumber": "0x3ca07c", - "transactionHash": "0x42caf843474b1602d7e1f5548595f527b9088c8913e129f4096dbd0dddc49495", - "transactionIndex": "0xa", - "logIndex": "0x1c", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000010000000000000400000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000004000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e1e" - }, - { - "transactionHash": "0xfbe541d8d2b6897159b54ad07e8b3a02624fe4f38f405326ff6b2c9a6252d82e", - "transactionIndex": "0xb", - "blockHash": "0xa752adc3eda02916f9ab3fc18b7eb6acb6bd62d140d6636b0d11977091cdb68c", - "blockNumber": "0x3ca07c", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "cumulativeGasUsed": "0x85842a", - "gasUsed": "0x9a28", - "contractAddress": null, - "logs": [ - { - "address": "0x7E1E09c0B41b22EB1fA04145cdf21cea01560c99", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000006ba58104312334ff71c4e4d6d34a1fd6cf02fc1d" - ], - "data": "0x", - "blockHash": "0xa752adc3eda02916f9ab3fc18b7eb6acb6bd62d140d6636b0d11977091cdb68c", - "blockNumber": "0x3ca07c", - "transactionHash": "0xfbe541d8d2b6897159b54ad07e8b3a02624fe4f38f405326ff6b2c9a6252d82e", - "transactionIndex": "0xb", - "logIndex": "0x1d", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000400000000000002000000000000000000000080000000010000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0xb2d05e1e" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1690447016, - "chain": 11155111, - "multi": false, - "commit": "e42a9b08d9" -} \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/broadcast/UpgradeBridgesToV2.s.sol/11155111/run-1702463511.json b/substrate/eth-bridge/contracts/broadcast/UpgradeBridgesToV2.s.sol/11155111/run-1702463511.json deleted file mode 100644 index f0cc9ec527..0000000000 --- a/substrate/eth-bridge/contracts/broadcast/UpgradeBridgesToV2.s.sol/11155111/run-1702463511.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x173a51d8e6943af8cd8b0fcbaa6e90d75d31593e8c6edaf63e660b8eceb01a44", - "transactionType": "CREATE", - "contractName": "Bridge", - "contractAddress": "0x7642C06e8e67D8b26eC483AdaC478dFb26135634", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "gas": "0x2ff8f0", - "value": "0x0", - "data": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051612a556200011f60003960008181610d4e01528181610d8e01528181610ed901528181610f190152610fa80152612a556000f3fe60806040526004361061027c5760003560e01c8063633433de1161014f578063adf2cead116100c1578063ddca3f431161007a578063ddca3f4314610803578063ead93c8f14610819578063eb95416014610833578063f1ba83a11461084a578063f72c0d8b1461086c578063fc0c546a1461088e57600080fd5b8063adf2cead1461075b578063b53f52271461076e578063b88a802f1461078e578063bcf64e05146107a3578063d547741f146107c3578063d9a75572146107e357600080fd5b8063968d0f2311610113578063968d0f231461063657806397d159e7146106565780639f8ee31c14610676578063a217fddf1461070f578063a4f35b6514610724578063acec338a1461073b57600080fd5b8063633433de1461059f57806363a599a4146105bf57806369fe0e2d146105d457806375b238fc146105f457806391d148541461061657600080fd5b806331d7a262116101f35780634460bdd6116101ac5780634460bdd6146104e657806346aa52ce146105085780634b1597b21461053a5780634f1ef2861461055a57806352d1902d1461056d57806361e08e721461058257600080fd5b806331d7a2621461042b57806334636e8e14610459578063361fab251461046f57806336568abe1461048f5780633659cfe6146104af578063403fb4a8146104cf57600080fd5b80630c2891b7116102455780630c2891b7146103575780630e0a999e1461038e57806319d1997a146103ae578063248a9ca3146103c457806324ec7590146103f45780632f2ff15d1461040b57600080fd5b80624f94071461028157806301f59d16146102a357806301ffc9a7146102cd57806304421823146102fd5780630847a4fb1461031f575b600080fd5b34801561028d57600080fd5b506102a161029c366004612356565b6108ae565b005b3480156102af57600080fd5b506102ba61010a5481565b6040519081526020015b60405180910390f35b3480156102d957600080fd5b506102ed6102e836600461236f565b6108cc565b60405190151581526020016102c4565b34801561030957600080fd5b506102ba60008051602061293983398151915281565b34801561032b57600080fd5b5061033f61033a366004612399565b610903565b6040516001600160a01b0390911681526020016102c4565b34801561036357600080fd5b5060fb5461037990610100900463ffffffff1681565b60405163ffffffff90911681526020016102c4565b34801561039a57600080fd5b506102a16103a93660046123d0565b61093c565b3480156103ba57600080fd5b506102ba60fe5481565b3480156103d057600080fd5b506102ba6103df366004612356565b60009081526065602052604090206001015490565b34801561040057600080fd5b506102ba6101095481565b34801561041757600080fd5b506102a1610426366004612427565b610b89565b34801561043757600080fd5b506102ba610446366004612457565b6101026020526000908152604090205481565b34801561046557600080fd5b506102ba60fd5481565b34801561047b57600080fd5b506102a161048a366004612356565b610c7f565b34801561049b57600080fd5b506102a16104aa366004612427565b610cc1565b3480156104bb57600080fd5b506102a16104ca366004612457565b610d44565b3480156104db57600080fd5b506102ba61010b5481565b3480156104f257600080fd5b506102ba6000805160206129b983398151915281565b34801561051457600080fd5b506101035461010454610525919082565b604080519283526020830191909152016102c4565b34801561054657600080fd5b506102a1610555366004612474565b610e23565b6102a16105683660046124bc565b610ecf565b34801561057957600080fd5b506102ba610f9b565b34801561058e57600080fd5b506101055461010654610525919082565b3480156105ab57600080fd5b506102a16105ba366004612599565b61104e565b3480156105cb57600080fd5b506102a16110b3565b3480156105e057600080fd5b506102a16105ef366004612356565b6110fe565b34801561060057600080fd5b506102ba600080516020612a0083398151915281565b34801561062257600080fd5b506102ed610631366004612427565b61114d565b34801561064257600080fd5b506102a16106513660046125b4565b611178565b34801561066257600080fd5b506102a1610671366004612356565b6111a2565b34801561068257600080fd5b506106d4610691366004612356565b61010060205260009081526040902080546001820154600283015460039093015467ffffffffffffffff831693600160401b9093046001600160a01b0316929085565b6040805167ffffffffffffffff90961686526001600160a01b039094166020860152928401919091526060830152608082015260a0016102c4565b34801561071b57600080fd5b506102ba600081565b34801561073057600080fd5b506102ba6101075481565b34801561074757600080fd5b506102a1610756366004612651565b6111c1565b6102a1610769366004612356565b6111e2565b34801561077a57600080fd5b506102a1610789366004612399565b611405565b34801561079a57600080fd5b506102a161142b565b3480156107af57600080fd5b506102a16107be366004612399565b6114a8565b3480156107cf57600080fd5b506102a16107de366004612427565b61155d565b3480156107ef57600080fd5b506102ed6107fe366004612427565b61164e565b34801561080f57600080fd5b506102ba60fc5481565b34801561082557600080fd5b5060fb546102ed9060ff1681565b34801561083f57600080fd5b506102ba6101085481565b34801561085657600080fd5b506102ba60008051602061297983398151915281565b34801561087857600080fd5b506102ba60008051602061295983398151915281565b34801561089a57600080fd5b5060ff5461033f906001600160a01b031681565b6000805160206129b98339815191526108c68161166e565b5060fd55565b60006001600160e01b03198216637965db0b60e01b14806108fd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610101602052816000526040600020818154811061092057600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000805160206129398339815191526109548161166e565b60fb5460ff16610977576040516343e5c67f60e11b815260040160405180910390fd5b8367ffffffffffffffff166000036109a25760405163a9cb9e0d60e01b815260040160405180910390fd5b60008581526101006020526040902060030154156109d357604051632bf773b360e11b815260040160405180910390fd5b6000858152610100602052604090205467ffffffffffffffff1615610a16576109fe85858486611678565b610a1157610a0c60006116ee565b610b82565b610a59565b60008581526101006020526040902080546001600160a01b038416600160401b026001600160e01b031990911667ffffffffffffffff8716171781556001018390555b610a63853361164e565b15610a8157604051637c9a1cf960e01b815260040160405180910390fd5b60008581526101016020908152604080832080546001810182559084528284200180546001600160a01b03191633179055878352610100909152902060020154158015610aeb575060fb546000868152610101602052604090205461010090910463ffffffff1611155b15610b2e5760008581526101006020526040808220436002909101555186917f6fb7fd1eda743aa3eb32c69f3b8cf14a5aeadf26db51057a7c5c78ba10eac8a491a25b6000858152610100602090815260409182902054915167ffffffffffffffff9092168252339187917f35736f19ec5960edd1e2dbf347b5682b955d14cfaec893ec96d43ec699d742c3910160405180910390a35b5050505050565b60006000805160206129b9833981519152831480610bb4575060008051602061293983398151915283145b80610bcc575060008051602061295983398151915283145b15610bec57610be96000805160206129b98339815191523361114d565b90505b600080516020612a00833981519152831480610c15575060008051602061297983398151915283145b15610c5357610c326000805160206129b98339815191523361114d565b80610c505750610c50600080516020612a008339815191523361114d565b90505b80610c70576040516282b42960e81b815260040160405180910390fd5b610c7a83836118b7565b505050565b6000805160206129b9833981519152610c978161166e565b61010854821115610cbb5760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fe55565b6001600160a01b0381163314610d365760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610d40828261193d565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d8c5760405162461bcd60e51b8152600401610d2d9061266e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dd5600080516020612999833981519152546001600160a01b031690565b6001600160a01b031614610dfb5760405162461bcd60e51b8152600401610d2d906126ba565b610e04816119a4565b60408051600080825260208201909252610e20918391906119bc565b50565b600054600290610100900460ff16158015610e45575060005460ff8083169116105b610e615760405162461bcd60e51b8152600401610d2d90612706565b6000805461010887905561010986905561010a85905561010b84905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f175760405162461bcd60e51b8152600401610d2d9061266e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f60600080516020612999833981519152546001600160a01b031690565b6001600160a01b031614610f865760405162461bcd60e51b8152600401610d2d906126ba565b610f8f826119a4565b610d40828260016119bc565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461103b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610d2d565b5060008051602061299983398151915290565b6000805160206129b98339815191526110668161166e565b61010b548263ffffffff1610156110905760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fb805463ffffffff9092166101000264ffffffff0019909216919091179055565b6000805160206129798339815191526110cb8161166e565b6040517f4e97bcfc80ae353daee1a1990d5b388eef167d3e197ebf5243cc4d43b4125c0990600090a1610e2060006116ee565b600080516020612a008339815191526111168161166e565b61010a5482118061112957506101095482105b156111475760405163a9cb9e0d60e01b815260040160405180910390fd5b5060fc55565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6111888c8c8c8c8c8c8c8c611b27565b61119484848484610e23565b505050505050505050505050565b600080516020612a008339815191526111ba8161166e565b5061010755565b600080516020612a008339815191526111d98161166e565b610d40826116ee565b60fb5460ff16611205576040516343e5c67f60e11b815260040160405180910390fd5b60008181526101006020526040812060028101549091036112395760405163c19f17a960e01b815260040160405180910390fd5b60038101541561125c57604051632bf773b360e11b815260040160405180910390fd5b60fd54816002015461126e919061276a565b43101561128e57604051636fed7d8560e01b815260040160405180910390fd5b60fe54816001015460ff60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d919061277d565b611317919061276a565b1115611336576040516395bfe45760e01b815260040160405180910390fd5b60008281526101016020526040902061134e90611c6f565b61135b8160010154611db9565b60405182907f533f7dadbc941d74aaeaeccf2e8b5c0c607281e9050f147d7606feed36c4306c90600090a243600382015560ff54815460018301546040516340c10f1960e01b81526001600160a01b03600160401b9093048316600482015260248101919091529116906340c10f19906044015b600060405180830381600087803b1580156113e957600080fd5b505af11580156113fd573d6000803e3d6000fd5b505050505050565b6000805160206129b983398151915261141d8161166e565b506101059190915561010655565b3360008181526101026020526040808220805490839055905190929083908381818185875af1925050503d8060008114611481576040519150601f19603f3d011682016040523d82523d6000602084013e611486565b606091505b5050905080610d4057604051630db2c7f160e31b815260040160405180910390fd5b60fb5460ff166114cb576040516343e5c67f60e11b815260040160405180910390fd5b610107548210156114ef576040516322313ae960e01b815260040160405180910390fd5b604051828152819033907fdc2326ce9005f56c5df82c47c1219524e289753a3d5de92038d1e956bb565e419060200160405180910390a360ff54604051632770a7eb60e21b8152336004820152602481018490526001600160a01b0390911690639dc29fac906044016113cf565b60006000805160206129b9833981519152831480611588575060008051602061297983398151915283145b806115a0575060008051602061295983398151915283145b156115c0576115bd6000805160206129b98339815191523361114d565b90505b600080516020612a008339815191528314806115e9575060008051602061293983398151915283145b15611627576116066000805160206129b98339815191523361114d565b806116245750611624600080516020612a008339815191523361114d565b90505b80611644576040516282b42960e81b815260040160405180910390fd5b610c7a838361193d565b6000828152610101602052604081206116679083611e42565b9392505050565b610e208133611ea5565b600084815261010060205260408120805467ffffffffffffffff8681169116146116a65760009150506116e6565b80546001600160a01b03858116600160401b90920416146116cb5760009150506116e6565b828160010154146116e05760009150506116e6565b60019150505b949350505050565b808015611704575060ff546001600160a01b0316155b156117225760405163c52a9bd360e01b815260040160405180910390fd5b60fb5460ff161515811515146117685760405181151581527ff74fbb47e96130656a063aecd12cec7b7599ed09cfe357c4d850ae7f2cb19b5a9060200160405180910390a15b60fb805460ff191682151517905560ff546001600160a01b031615610e205760ff5460408051635c975abb60e01b815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa1580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f59190612796565b90508180156118015750805b156118565760ff60009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113e957600080fd5b81158015611862575080155b15610d405760ff60009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113e957600080fd5b6118c1828261114d565b610d405760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118f93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611947828261114d565b15610d405760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020612959833981519152610d408161166e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156119ef57610c7a83611efe565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a49575060408051601f3d908101601f19168201909252611a469181019061277d565b60015b611aac5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610d2d565b6000805160206129998339815191528114611b1b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610d2d565b50610c7a838383611f9a565b600054610100900460ff1615808015611b475750600054600160ff909116105b80611b615750303b158015611b61575060005460ff166001145b611b7d5760405162461bcd60e51b8152600401610d2d90612706565b6000805460ff191660011790558015611ba0576000805461ff0019166101001790555b611ba8611fc5565b611bb0611fc5565b60ff80546001600160a01b0319166001600160a01b038b1617905561010585905561010684905560fb805464ffffffff00191661010063ffffffff8b160217905560fc86905560fd87905560fe839055610107829055611c1e6000805160206129b9833981519152336118b7565b8015611c64576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60fc54341015611c9257604051631c0b171360e31b815260040160405180910390fd5b80546008600260036000611ca682866127b3565b611cb0848661276a565b611cba919061276a565b90506000611cc882346127ca565b90506000611cd683836127b3565b611ce090346127ec565b905060005b87811015611c6457846000829003611d0457611d01888261276a565b90505b60fb54611d1e90600190610100900463ffffffff166127ff565b63ffffffff168203611d3757611d34878261276a565b90505b6000611d4382866127b3565b905082600003611d5a57611d57848261276a565b90505b8061010260008d8681548110611d7257611d72612823565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611da690849061276a565b909155505060019092019150611ce59050565b61010454600090611dca90436127ec565b905060008161010560010154611de091906127b3565b9050600081610103600001541115611dff575061010354819003611e03565b5060005b611e0d848261276a565b61010554909150811115611e34576040516307ef6f4d60e31b815260040160405180910390fd5b610103555050436101045550565b8154600090815b81811015611e9a57836001600160a01b0316858281548110611e6d57611e6d612823565b6000918252602090912001546001600160a01b031603611e92576001925050506108fd565b600101611e49565b506000949350505050565b611eaf828261114d565b610d4057611ebc81612032565b611ec7836020612044565b604051602001611ed892919061285d565b60408051601f198184030181529082905262461bcd60e51b8252610d2d916004016128d2565b6001600160a01b0381163b611f6b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610d2d565b60008051602061299983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611fa3836121e0565b600082511180611fb05750805b15610c7a57611fbf8383612220565b50505050565b600054610100900460ff166120305760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d2d565b565b60606108fd6001600160a01b03831660145b606060006120538360026127b3565b61205e90600261276a565b67ffffffffffffffff811115612076576120766124a6565b6040519080825280601f01601f1916602001820160405280156120a0576020820181803683370190505b509050600360fc1b816000815181106120bb576120bb612823565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106120ea576120ea612823565b60200101906001600160f81b031916908160001a905350600061210e8460026127b3565b61211990600161276a565b90505b6001811115612191576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061214d5761214d612823565b1a60f81b82828151811061216357612163612823565b60200101906001600160f81b031916908160001a90535060049490941c9361218a81612905565b905061211c565b5083156116675760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610d2d565b6121e981611efe565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061166783836040518060600160405280602781526020016129d9602791396060600080856001600160a01b03168560405161225d919061291c565b600060405180830381855af49150503d8060008114612298576040519150601f19603f3d011682016040523d82523d6000602084013e61229d565b606091505b50915091506122ae868383876122b8565b9695505050505050565b60608315612327578251600003612320576001600160a01b0385163b6123205760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d2d565b50816116e6565b6116e6838381511561233c5781518083602001fd5b8060405162461bcd60e51b8152600401610d2d91906128d2565b60006020828403121561236857600080fd5b5035919050565b60006020828403121561238157600080fd5b81356001600160e01b03198116811461166757600080fd5b600080604083850312156123ac57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610e2057600080fd5b600080600080608085870312156123e657600080fd5b84359350602085013567ffffffffffffffff8116811461240557600080fd5b925060408501359150606085013561241c816123bb565b939692955090935050565b6000806040838503121561243a57600080fd5b82359150602083013561244c816123bb565b809150509250929050565b60006020828403121561246957600080fd5b8135611667816123bb565b6000806000806080858703121561248a57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156124cf57600080fd5b82356124da816123bb565b9150602083013567ffffffffffffffff808211156124f757600080fd5b818501915085601f83011261250b57600080fd5b81358181111561251d5761251d6124a6565b604051601f8201601f19908116603f01168101908382118183101715612545576125456124a6565b8160405282815288602084870101111561255e57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b803563ffffffff8116811461259457600080fd5b919050565b6000602082840312156125ab57600080fd5b61166782612580565b6000806000806000806000806000806000806101808d8f0312156125d757600080fd5b8c356125e2816123bb565b9b506125f060208e01612580565b9b9e9b9d5050505060408a0135996060810135996080820135995060a0820135985060c0820135975060e08201359650610100820135955061012082013594506101408201359350610160909101359150565b8015158114610e2057600080fd5b60006020828403121561266357600080fd5b813561166781612643565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156108fd576108fd612754565b60006020828403121561278f57600080fd5b5051919050565b6000602082840312156127a857600080fd5b815161166781612643565b80820281158282048414176108fd576108fd612754565b6000826127e757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108fd576108fd612754565b63ffffffff82811682821603908082111561281c5761281c612754565b5092915050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561285457818101518382015260200161283c565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612895816017850160208801612839565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516128c6816028840160208801612839565b01602801949350505050565b60208152600082518060208401526128f1816040850160208701612839565b601f01601f19169190910160400192915050565b60008161291457612914612754565b506000190190565b6000825161292e818460208701612839565b919091019291505056fe077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e32125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220e65c721216308c1244445946378e209f5740f8badcce6a17ade931935684481a64736f6c63430008120033", - "nonce": "0xad", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x7665e545d83e9adc39003371224a8a706b1710d7cdac4f4a44a688b51d20e7bc", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0xc8af0c3e0e4fc787d9e657b2a68ce6ed9cedb5da", - "gas": "0x2e4ce", - "value": "0x0", - "data": "0x4f1ef2860000000000000000000000007642c06e8e67d8b26ec483adac478dfb26135634000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000844b1597b200000000000000000000000000000000000000000000000029a2241af62c000000000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000", - "nonce": "0xae", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x85577168d7d66364c199434364cb170ed060cf1b264eb2c691b056fe74bfbe4b", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x7638462f3a5f2cdb49609bf4947ae396f9088949", - "to": "0x195afd36bd3d831f4c1195a150584d6a7ebf546f", - "gas": "0x2e51a", - "value": "0x0", - "data": "0x4f1ef2860000000000000000000000007642c06e8e67d8b26ec483adac478dfb26135634000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000844b1597b20000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000", - "nonce": "0xaf", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "transactionHash": "0x173a51d8e6943af8cd8b0fcbaa6e90d75d31593e8c6edaf63e660b8eceb01a44", - "transactionIndex": "0x9", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": null, - "cumulativeGasUsed": "0x43e139", - "gasUsed": "0x24e998", - "contractAddress": "0x7642C06e8e67D8b26eC483AdaC478dFb26135634", - "logs": [ - { - "address": "0x7642C06e8e67D8b26eC483AdaC478dFb26135634", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "transactionHash": "0x173a51d8e6943af8cd8b0fcbaa6e90d75d31593e8c6edaf63e660b8eceb01a44", - "transactionIndex": "0x9", - "logIndex": "0x18", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000", - "type": "0x2", - "effectiveGasPrice": "0x1562261507" - }, - { - "transactionHash": "0x7665e545d83e9adc39003371224a8a706b1710d7cdac4f4a44a688b51d20e7bc", - "transactionIndex": "0xa", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "cumulativeGasUsed": "0x45f98e", - "gasUsed": "0x21855", - "contractAddress": null, - "logs": [ - { - "address": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000007642c06e8e67d8b26ec483adac478dfb26135634" - ], - "data": "0x", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "transactionHash": "0x7665e545d83e9adc39003371224a8a706b1710d7cdac4f4a44a688b51d20e7bc", - "transactionIndex": "0xa", - "logIndex": "0x19", - "removed": false - }, - { - "address": "0xC8af0C3E0e4FC787D9e657b2A68ce6ED9cedB5DA", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000002", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "transactionHash": "0x7665e545d83e9adc39003371224a8a706b1710d7cdac4f4a44a688b51d20e7bc", - "transactionIndex": "0xa", - "logIndex": "0x1a", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000010000000000000400000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000020000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000020000000000000000000010000000400000000000000000000000000000000000000000020000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x1562261507" - }, - { - "transactionHash": "0x85577168d7d66364c199434364cb170ed060cf1b264eb2c691b056fe74bfbe4b", - "transactionIndex": "0xb", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "from": "0x7638462F3a5F2cDb49609bF4947ae396f9088949", - "to": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "cumulativeGasUsed": "0x48121a", - "gasUsed": "0x2188c", - "contractAddress": null, - "logs": [ - { - "address": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000007642c06e8e67d8b26ec483adac478dfb26135634" - ], - "data": "0x", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "transactionHash": "0x85577168d7d66364c199434364cb170ed060cf1b264eb2c691b056fe74bfbe4b", - "transactionIndex": "0xb", - "logIndex": "0x1b", - "removed": false - }, - { - "address": "0x195afd36BD3d831F4C1195a150584D6A7ebF546f", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000002", - "blockHash": "0x87e722ff3e09da6a664f0d12c19c5369711e27353b23fe4b417606481f49527d", - "blockNumber": "0x4a6f94", - "transactionHash": "0x85577168d7d66364c199434364cb170ed060cf1b264eb2c691b056fe74bfbe4b", - "transactionIndex": "0xb", - "logIndex": "0x1c", - "removed": false - } - ], - "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000020000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000080000010000000400000000000000000000000200000000000000000020000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x1562261507" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1702463511, - "chain": 11155111, - "multi": false, - "commit": "edd348251a" -} \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/dev-scripts/common.sh b/substrate/eth-bridge/contracts/dev-scripts/common.sh deleted file mode 100644 index a5a39c3fa1..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/common.sh +++ /dev/null @@ -1,9 +0,0 @@ -WALLET_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" -WALLET_ADDRESS="0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" -LLD_TOKEN="0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0" -LLD_BRIDGE="0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" -LLM_TOKEN="0x0165878A594ca255338adfa4d48449f69242Eb8F" -LLM_BRIDGE="0xa513E6E4b8f2a923D98304ec87F64353C4D5C853" - -CAST_LLM_BRIDGE="cast send $LLM_BRIDGE --private-key=$WALLET_KEY" -API_ALICE="polkadot-js-api --seed //Alice" diff --git a/substrate/eth-bridge/contracts/dev-scripts/eth-to-sub.sh b/substrate/eth-bridge/contracts/dev-scripts/eth-to-sub.sh deleted file mode 100755 index 6f7e0d6d60..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/eth-to-sub.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -cd "$(dirname "$0")" -. common.sh - -. fake-mint.sh - -# burn tokens -$CAST_LLM_BRIDGE 'burn(uint256,bytes32)' 10000000000000 0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d - diff --git a/substrate/eth-bridge/contracts/dev-scripts/fake-mint.sh b/substrate/eth-bridge/contracts/dev-scripts/fake-mint.sh deleted file mode 100755 index 518df230db..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/fake-mint.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -cd "$(dirname "$0")" -. common.sh - -# fake mint some tokens -cast rpc anvil_impersonateAccount $LLM_BRIDGE -cast rpc anvil_setBalance $LLM_BRIDGE 9999999999999999999 -cast send $LLM_TOKEN --unlocked --from=$LLM_BRIDGE 'mint(address,uint256)' $WALLET_ADDRESS 9999999999999 -cast rpc anvil_stopImpersonatingAccount $LLM_BRIDGE diff --git a/substrate/eth-bridge/contracts/dev-scripts/setup-contracts.sh b/substrate/eth-bridge/contracts/dev-scripts/setup-contracts.sh deleted file mode 100755 index a7843b5944..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/setup-contracts.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -cd "$(dirname "$0")" -. common.sh - -cd "$(dirname "$0")/.." - -forge script script/Deploy.s.sol --rpc-url http://localhost:8545 --private-key=$WALLET_KEY --broadcast - -# grant admin role -$CAST_LLM_BRIDGE 'grantRole(bytes32,address)' 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775 $WALLET_ADDRESS - -# grant relay role -$CAST_LLM_BRIDGE 'grantRole(bytes32,address)' 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7 $WALLET_ADDRESS - -# grant watcher role -$CAST_LLM_BRIDGE 'grantRole(bytes32,address)' 0x2125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89 $WALLET_ADDRESS - -# 1 vote required -$CAST_LLM_BRIDGE 'setVotesRequired(uint32)' 1 - -# no mint delay -$CAST_LLM_BRIDGE 'setMintDelay(uint256)' 0 - -# start bridge -$CAST_LLM_BRIDGE 'setActive(bool)' 1 - -# make sure we get some blocks often -cast rpc evm_setIntervalMining 2 diff --git a/substrate/eth-bridge/contracts/dev-scripts/setup-pallet.sh b/substrate/eth-bridge/contracts/dev-scripts/setup-pallet.sh deleted file mode 100755 index 70b808a5fb..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/setup-pallet.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -cd "$(dirname "$0")" -. common.sh - -# make Bob a relay and watcher -$API_ALICE tx.ethLLMBridge.addRelay 5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty -$API_ALICE tx.ethLLMBridge.addWatcher 5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty - -# votes required = 1 -$API_ALICE tx.ethLLMBridge.setVotesRequired 1 - -# start bridge -$API_ALICE tx.ethLLMBridge.setState Active diff --git a/substrate/eth-bridge/contracts/dev-scripts/sub-to-eth.sh b/substrate/eth-bridge/contracts/dev-scripts/sub-to-eth.sh deleted file mode 100755 index 655cbff91d..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/sub-to-eth.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -cd "$(dirname "$0")" -. common.sh - -$API_ALICE tx.ethLLMBridge.deposit 10000000000000 $WALLET_ADDRESS diff --git a/substrate/eth-bridge/contracts/dev-scripts/vote-eth.sh b/substrate/eth-bridge/contracts/dev-scripts/vote-eth.sh deleted file mode 100755 index 7d8cac9b49..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/vote-eth.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -cd "$(dirname "$0")" -. common.sh - -$CAST_LLM_BRIDGE 'voteMint(bytes32,uint64,uint256,address)' $1 1 1000000000000 $WALLET_ADDRESS - diff --git a/substrate/eth-bridge/contracts/dev-scripts/vote-sub.sh b/substrate/eth-bridge/contracts/dev-scripts/vote-sub.sh deleted file mode 100755 index ab72885cc9..0000000000 --- a/substrate/eth-bridge/contracts/dev-scripts/vote-sub.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -cd "$(dirname "$0")" -. common.sh - -polkadot-js-api --seed "//Bob" tx.ethLLMBridge.voteWithdraw $1 '{"eth_block_number": 1, "substrate_recipient": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", "amount": 10}' diff --git a/substrate/eth-bridge/contracts/foundry.toml b/substrate/eth-bridge/contracts/foundry.toml deleted file mode 100644 index 2778b32741..0000000000 --- a/substrate/eth-bridge/contracts/foundry.toml +++ /dev/null @@ -1,7 +0,0 @@ -[profile.default] -src = "src" -out = "out" -libs = ["lib"] -solc_version = "0.8.18" - -# See more config options https://github.com/foundry-rs/foundry/tree/master/config \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/lib/forge-std b/substrate/eth-bridge/contracts/lib/forge-std deleted file mode 160000 index 7b4876e8de..0000000000 --- a/substrate/eth-bridge/contracts/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7b4876e8de2a232a54159035f173e35421000c19 diff --git a/substrate/eth-bridge/contracts/lib/openzeppelin-contracts b/substrate/eth-bridge/contracts/lib/openzeppelin-contracts deleted file mode 160000 index fd81a96f01..0000000000 --- a/substrate/eth-bridge/contracts/lib/openzeppelin-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fd81a96f01cc42ef1c9a5399364968d0e07e9e90 diff --git a/substrate/eth-bridge/contracts/lib/openzeppelin-contracts-upgradeable b/substrate/eth-bridge/contracts/lib/openzeppelin-contracts-upgradeable deleted file mode 160000 index 3d4c0d5741..0000000000 --- a/substrate/eth-bridge/contracts/lib/openzeppelin-contracts-upgradeable +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3d4c0d5741b131c231e558d7a6213392ab3672a5 diff --git a/substrate/eth-bridge/contracts/remappings.txt b/substrate/eth-bridge/contracts/remappings.txt deleted file mode 100644 index 3b26015cae..0000000000 --- a/substrate/eth-bridge/contracts/remappings.txt +++ /dev/null @@ -1,4 +0,0 @@ -ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/ -forge-std/=lib/forge-std/src/ -openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/ -openzeppelin-contracts/=lib/openzeppelin-contracts/ diff --git a/substrate/eth-bridge/contracts/script/Deploy.s.sol b/substrate/eth-bridge/contracts/script/Deploy.s.sol deleted file mode 100644 index 2e835d94f0..0000000000 --- a/substrate/eth-bridge/contracts/script/Deploy.s.sol +++ /dev/null @@ -1,86 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.18; - -import "forge-std/Script.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import "../src/WrappedToken.sol"; -import "../src/Bridge.sol"; - -contract Deploy is Script { - function run() external { - vm.startBroadcast(); - - // 165363 gas for fist and final vote - // 3 * 30726 for standard votes - // 50 gwei cost per gas - // * 11/10 to add 10% buffer - uint256 fee = (165363 + 3 * 30726) * (50 gwei) * 11 / uint256(10); - uint256 delay = 300; // 300 blocks * 12 sec per block = 1h - uint32 votesRequired = 5; - - Bridge bridgeImpl = new Bridge(); - WrappedToken tokenImpl = new WrappedToken(); - - WrappedToken lld = WrappedToken( - address( - new ERC1967Proxy( - address(tokenImpl), abi.encodeCall(WrappedToken.initialize, ("Liberland Dollars", "LLD")) - ) - ) - ); - ERC1967Proxy lldBridge = new ERC1967Proxy( - address(bridgeImpl), - abi.encodeCall( - Bridge.initialize, - ( - lld, - votesRequired, - delay, - fee, - 30_000_000_000_000_000, // max burst mint - 60_000_000_000_000, // rate limit counter decay - 300_000_000_000_000_000, // supply limit - 30_000_000_000_000, // min transfer - 3_000_000_000_000_000_000, // max supply limit - 1_000_000 gwei, // min fee - 100_000_000 gwei, // max fee - 3 // min votes required - ) - ) - ); - lld.grantRole(lld.MINTER_ROLE(), address(lldBridge)); - lld.grantRole(lld.PAUSER_ROLE(), address(lldBridge)); - - WrappedToken llm = WrappedToken( - address( - new ERC1967Proxy( - address(tokenImpl), abi.encodeCall(WrappedToken.initialize, ("Liberland Merits", "LLM")) - ) - ) - ); - ERC1967Proxy llmBridge = new ERC1967Proxy( - address(bridgeImpl), - abi.encodeCall( - Bridge.initialize, - ( - llm, - votesRequired, - delay, - fee, - 10_000_000_000_000_000, // max burst mint - 20_000_000_000_000, // rate limit counter decay - 100_000_000_000_000_000, // supply limit - 10_000_000_000_000, // min transfer - 1_000_000_000_000_000_000, // max supply limit - 1_000_000 gwei, // min fee - 100_000_000 gwei, // max fee - 3 // min votes required - ) - ) - ); - llm.grantRole(llm.MINTER_ROLE(), address(llmBridge)); - llm.grantRole(llm.PAUSER_ROLE(), address(llmBridge)); - - vm.stopBroadcast(); - } -} diff --git a/substrate/eth-bridge/contracts/script/UpgradeBridges.s.sol b/substrate/eth-bridge/contracts/script/UpgradeBridges.s.sol deleted file mode 100644 index d51804458f..0000000000 --- a/substrate/eth-bridge/contracts/script/UpgradeBridges.s.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.18; - -import "forge-std/Script.sol"; -import "../src/Bridge.sol"; - -contract UpgradeBridges is Script { - function run() external { - vm.startBroadcast(); - Bridge lldProxy = Bridge(vm.envAddress("LLDBridgeProxy")); - Bridge llmProxy = Bridge(vm.envAddress("LLMBridgeProxy")); - - Bridge newBridgeImpl = new Bridge(); - - lldProxy.upgradeTo(address(newBridgeImpl)); - llmProxy.upgradeTo(address(newBridgeImpl)); - } -} diff --git a/substrate/eth-bridge/contracts/script/UpgradeBridgesToV2.s.sol b/substrate/eth-bridge/contracts/script/UpgradeBridgesToV2.s.sol deleted file mode 100644 index a941ce40ce..0000000000 --- a/substrate/eth-bridge/contracts/script/UpgradeBridgesToV2.s.sol +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.18; - -import "forge-std/Script.sol"; -import "../src/Bridge.sol"; - -contract UpgradeBridgesToV2 is Script { - function run() external { - vm.startBroadcast(); - Bridge lldProxy = Bridge(vm.envAddress("LLDBridgeProxy")); - Bridge llmProxy = Bridge(vm.envAddress("LLMBridgeProxy")); - - Bridge newBridgeImpl = new Bridge(); - - lldProxy.upgradeToAndCall( - address(newBridgeImpl), - abi.encodeCall( - Bridge.initializeV2, - ( - 3_000_000_000_000_000_000, // max supply limit of 3M LLD, admin can lower it - 1_000_000 gwei, // min fee - 100_000_000 gwei, // max fee - 3 // min votes required - ) - ) - ); - llmProxy.upgradeToAndCall( - address(newBridgeImpl), - abi.encodeCall( - Bridge.initializeV2, - ( - 1_000_000_000_000_000_000, // max supply limit of 3M LLD, admin can lower it - 1_000_000 gwei, // min fee - 100_000_000 gwei, // max fee - 3 // min votes required - ) - ) - ); - } -} diff --git a/substrate/eth-bridge/contracts/script/UpgradeTokens.s.sol b/substrate/eth-bridge/contracts/script/UpgradeTokens.s.sol deleted file mode 100644 index 89524bf04a..0000000000 --- a/substrate/eth-bridge/contracts/script/UpgradeTokens.s.sol +++ /dev/null @@ -1,20 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.18; - -import "forge-std/Script.sol"; -import "../src/Bridge.sol"; - -contract UpgradeTokens is Script { - function run() external { - vm.startBroadcast(); - Bridge lldBridge = Bridge(vm.envAddress("LLDBridgeProxy")); - Bridge llmBridge = Bridge(vm.envAddress("LLMBridgeProxy")); - WrappedToken lldProxy = lldBridge.token(); - WrappedToken llmProxy = llmBridge.token(); - - WrappedToken newTokenImpl = new WrappedToken(); - - lldProxy.upgradeTo(address(newTokenImpl)); - llmProxy.upgradeTo(address(newTokenImpl)); - } -} diff --git a/substrate/eth-bridge/contracts/slither.config.json b/substrate/eth-bridge/contracts/slither.config.json deleted file mode 100644 index db7d755a09..0000000000 --- a/substrate/eth-bridge/contracts/slither.config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "filter_paths": "lib/|test/" -} \ No newline at end of file diff --git a/substrate/eth-bridge/contracts/src/Bridge.sol b/substrate/eth-bridge/contracts/src/Bridge.sol deleted file mode 100644 index 26f15bff41..0000000000 --- a/substrate/eth-bridge/contracts/src/Bridge.sol +++ /dev/null @@ -1,530 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.18; - -import {Initializable} from "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"; -import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol"; -import {AccessControlUpgradeable} from - "openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol"; -import {WrappedToken} from "./WrappedToken.sol"; -import {IncomingReceiptStruct, RateLimitParameters, RateLimitCounter} from "./BridgeTypes.sol"; -import {BridgeEvents} from "./BridgeEvents.sol"; - -/// Bridge is deactivated - see `bridgeActive()` and `setActive(bool)` -error BridgeInactive(); -/// IncomingReceipt was already processed and tokens were minted -error AlreadyProcessed(); -/// IncomingReceipt wasn't approved for minting yet -error NotApproved(); -/// IncomingReceipt was approved, but `mintDelay` blocks didn't pass yet -error TooSoon(); -/// Insufficient ether was sent - see `fee()` -error InsufficientEther(); -/// Too much is being minted by the bridge at the moment, try again later -error RateLimited(); -/// Eth transfer failed when redeeming reward -error EthTransferFailed(); -/// Caller is not authorized for this call -error Unauthorized(); -/// Total supply limit was reached - try again later -error TooMuchSupply(); -/// Invalid argument -error InvalidArgument(); -/// Invalid bridge configuration -error InvalidConfiguration(); -/// This relay already voted for this ReceiptId -error AlreadyVoted(); -/// Transferred amount is less than configured minimum -error TooSmallAmount(); - -/// @title Substrate <-> ETH bridge for Liberland -/// @dev Must be used with ERC1967Proxy -contract Bridge is Initializable, AccessControlUpgradeable, UUPSUpgradeable, BridgeEvents { - // 7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689 - /// Role that's allowed to: - /// * grant and revoke all roles - /// * setVotesRequired - /// * setMintDelay - /// * setRateLimit - /// * setSupplyLimit - /// * transferTokenOwnership - bytes32 public constant SUPER_ADMIN_ROLE = keccak256("SUPER_ADMIN_ROLE"); - - // a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775 - /// Role that's allowed to: - /// * add and remove admins - /// * add watchers - /// * remove relays - /// * setFee - /// * setActive - bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE"); - - // 077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7 - /// Role that's allowed to voteMint - bytes32 public constant RELAY_ROLE = keccak256("RELAY_ROLE"); - - // 2125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89 - /// Role thats allowed to emergencyStop - bytes32 public constant WATCHER_ROLE = keccak256("WATCHER_ROLE"); - - // 189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3 - /// Role that's allowed to upgrade the contract - bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE"); - - /// If false, burning, voting, minting is disabled - bool public bridgeActive; - /// Number of votes required to approve IncomingReceipt - uint32 public votesRequired; - /// Fee that must be sent on `mint()` and is distributed to voters - uint256 public fee; - /// Delay in blocks between approval and allowing `mint()` - uint256 public mintDelay; - /// Maximum amount of tokens in circulation - uint256 public supplyLimit; - /// Address of token that will be minted/burned - WrappedToken public token; - /// Incoming Receipts - Substrate -> ETH transfers - mapping(bytes32 receiptId => IncomingReceiptStruct receipt) public incomingReceipts; - /// Votes for approving given receipt - mapping(bytes32 receiptId => address[] votes) public votes; - /// Rewards for relays that can be claimed with `claimReward` - mapping(address voter => uint256 pendingReward) public pendingRewards; - /// Counter for enforcing rate limit - RateLimitCounter public mintCounter; // 2x uint256 - /// Rate limit configuration - RateLimitParameters public rateLimit; // 2x uint256 - /// Minimum transfer - only applied for burns - uint256 public minTransfer; - /// Maximum supply limit - admin can't increase supply limit above this value - uint256 public maxSupplyLimit; - /// Minimum fee that admin can set - uint256 public minFee; - /// Maximum fee that admin can set - uint256 public maxFee; - /// Minimum votes required that admin can set - uint256 public minVotesRequired; - - constructor() { - _disableInitializers(); - } - - /// Initializer, should be called in the same tx as deployment - /// @param token_ Address of ERC20 token to manage - /// @param votesRequired_ initial `votesRequired` - /// @param mintDelay_ initial `votesRequired` - /// @param fee_ initial `votesRequired` - /// @param counterLimit initial `rateLimit.counterLimit` - /// @param decayRate initial `rateLimit.decayRate` - /// @param supplyLimit_ initial `supplyLimit` - /// @param minTransfer_ initial `minTransfer` - /// @param maxSupplyLimit_ maximum `supplyLimit` that can be set by admin - /// @param minFee_ minimum `fee` that can be set by admin - /// @param maxFee_ maximum `fee` that can be set by admin - function initialize( - WrappedToken token_, - uint32 votesRequired_, - uint256 mintDelay_, - uint256 fee_, - uint256 counterLimit, - uint256 decayRate, - uint256 supplyLimit_, - uint256 minTransfer_, - uint256 maxSupplyLimit_, - uint256 minFee_, - uint256 maxFee_, - uint256 minVotesRequired_ - ) external { - _initializeV1(token_, votesRequired_, mintDelay_, fee_, counterLimit, decayRate, supplyLimit_, minTransfer_); - initializeV2(maxSupplyLimit_, minFee_, maxFee_, minVotesRequired_); - } - - function _initializeV1( - WrappedToken token_, - uint32 votesRequired_, - uint256 mintDelay_, - uint256 fee_, - uint256 counterLimit, - uint256 decayRate, - uint256 supplyLimit_, - uint256 minTransfer_ - ) internal initializer { - __AccessControl_init(); - __UUPSUpgradeable_init(); - - token = token_; - rateLimit.counterLimit = counterLimit; - rateLimit.decayRate = decayRate; - // slither-disable-start events-maths - votesRequired = votesRequired_; - fee = fee_; - mintDelay = mintDelay_; - supplyLimit = supplyLimit_; - minTransfer = minTransfer_; - // slither-disable-end events-maths - _grantRole(SUPER_ADMIN_ROLE, msg.sender); - } - - /// Reinitializer from v1 to v2. Should be used in the same tx as upgrade - /// @param maxSupplyLimit_ maximum `supplyLimit` that can be set by admin - function initializeV2(uint256 maxSupplyLimit_, uint256 minFee_, uint256 maxFee_, uint256 minVotesRequired_) - public - reinitializer(2) - { - maxSupplyLimit = maxSupplyLimit_; - minFee = minFee_; - maxFee = maxFee_; - minVotesRequired = minVotesRequired_; - } - - /// Adding special users. See role docs on info who can grant each role - /// @param role Role to grant - /// @param account Account to grant the role to - /// @dev Reverts with `Unauthorized()` if caller doesn't have correct role for - /// action - function grantRole(bytes32 role, address account) public override { - bool authorized = false; - - // Only super admin can add super admins, relays and upgraders - if (role == SUPER_ADMIN_ROLE || role == RELAY_ROLE || role == UPGRADER_ROLE) { - authorized = hasRole(SUPER_ADMIN_ROLE, msg.sender); - } - - // Super admin or admin can add admins and watchers - if (role == ADMIN_ROLE || role == WATCHER_ROLE) { - authorized = hasRole(SUPER_ADMIN_ROLE, msg.sender) || hasRole(ADMIN_ROLE, msg.sender); - } - - if (!authorized) revert Unauthorized(); - _grantRole(role, account); - } - - /// Removing special users. See role docs on info who can remove each role - /// @param role Role to remove - /// @param account Account to remove the role from - /// @dev Reverts with `Unauthorized()` if caller doesn't have correct role for - /// action - function revokeRole(bytes32 role, address account) public override { - bool authorized = false; - - // Only super admin can remove super admins, watchers and upgraders - if (role == SUPER_ADMIN_ROLE || role == WATCHER_ROLE || role == UPGRADER_ROLE) { - authorized = hasRole(SUPER_ADMIN_ROLE, msg.sender); - } - - // Super admin or admin can remove admins and relays - if (role == ADMIN_ROLE || role == RELAY_ROLE) { - authorized = hasRole(SUPER_ADMIN_ROLE, msg.sender) || hasRole(ADMIN_ROLE, msg.sender); - } - - if (!authorized) revert Unauthorized(); - _revokeRole(role, account); - } - - /// Burn token and get receipt in return. - /// This is the entrypoint for users to start ETH -> Substrate transfer. - /// @param amount Amount of token to burn (a.k.a. transfer to substrate). - /// @param substrateRecipient AccountId on substrate side that will receive - /// funds - /// @dev Reverts with `BridgeInactive` if bridge is inactive - /// @dev Reverts with underlying token's error if bridge is not approved to - /// manage funds or if caller has insufficient balance - /// @dev Emits `OutgoingReceipt(sender, amount, substrateRecipient)` on success - /// @dev Interacts with `token` contract - function burn(uint256 amount, bytes32 substrateRecipient) public { - // CHECKS - if (!bridgeActive) revert BridgeInactive(); - if (amount < minTransfer) revert TooSmallAmount(); - - // EFFECTS - emit OutgoingReceipt(msg.sender, substrateRecipient, amount); - - // INTERACTIONS - token.burn(msg.sender, amount); - } - - /// Vote for approval of given receipt. - /// This is the call used by relays to relay Substrate -> ETH transfers. - /// @param receiptId Incoming receipt id. - /// @param substrateBlockNumber Substrate block number on which Receipt was - /// created. - /// @param amount Amount being transfered - /// @param ethRecipient Ethereum address of token recipient - /// @dev Only addresses with RELAY_ROLE can call this - /// @dev Reverts with `BridgeInactive` if bridge is inactive - /// @dev Reverts with `InvalidArgument` if `substrateBlockNumber` is 0 - /// @dev Reverts with `AlreadyProcessed` if receipt was already fully processed - /// @dev Will stop the bridge if details for this receiptId don't match - /// details relayed by other relays - /// @dev Reverts with `AlreadyVoted()` if this relay already voted. - /// @dev Emits `Approved(receiptId)` if this vote caused reaching - /// `votesRequired` - /// @dev Emits `Vote(receiptId, msg.sender)` on success - function voteMint(bytes32 receiptId, uint64 substrateBlockNumber, uint256 amount, address ethRecipient) - public - onlyRole(RELAY_ROLE) - { - if (!bridgeActive) revert BridgeInactive(); - if (substrateBlockNumber == 0) revert InvalidArgument(); - if (incomingReceipts[receiptId].processedOn > 0) revert AlreadyProcessed(); - - // checks if already exists - if (incomingReceipts[receiptId].substrateBlockNumber != 0) { - if (!_checkReceiptMatches(receiptId, substrateBlockNumber, ethRecipient, amount)) { - // someone lied, stop the bridge - _setActive(false); - return; - } - } else { - incomingReceipts[receiptId].substrateBlockNumber = substrateBlockNumber; - incomingReceipts[receiptId].ethRecipient = ethRecipient; - incomingReceipts[receiptId].amount = amount; - } - - // check if already voted - if (voted(receiptId, msg.sender)) revert AlreadyVoted(); - - votes[receiptId].push(msg.sender); - - if (incomingReceipts[receiptId].approvedOn == 0 && votes[receiptId].length >= votesRequired) { - incomingReceipts[receiptId].approvedOn = block.number; - emit Approved(receiptId); - } - - emit Vote(receiptId, msg.sender, incomingReceipts[receiptId].substrateBlockNumber); - } - - /// Mint tokens according to the receipt. - /// Receipt must already be relayed and approved by relays. - /// This is payable and requires sending at least `fee()` ether. - /// @param receiptId Receipt - /// @dev Reverts with `BridgeInactive` if bridge is inactive - /// @dev Reverts with `AlreadyProcessed` if receipt was already processed - /// @dev Reverts with `NotApproved` if receipt isn't approved by relays - /// @dev Reverts with `TooSoon` if `mintDelay` blocks didn't pass since - /// approval - /// @dev Reverts with `TooMuchSupply` if there's too many tokens in - /// circulation - /// @dev Reverts with `RateLimited` if there's too many tokens minted in - /// short time - /// @dev Reverts with `InsufficientEther` if not enough ether was sent - /// @dev Emits `Processed(receiptId)` on success - /// @dev Interacts with `token` contract - function mint(bytes32 receiptId) public payable { - // CHECKS - if (!bridgeActive) revert BridgeInactive(); - - IncomingReceiptStruct storage receipt = incomingReceipts[receiptId]; - if (receipt.approvedOn == 0) revert NotApproved(); - - if (receipt.processedOn != 0) revert AlreadyProcessed(); - - if (block.number < receipt.approvedOn + mintDelay) revert TooSoon(); - - if (token.totalSupply() + receipt.amount > supplyLimit) { - revert TooMuchSupply(); - } - - // EFFECTS - _takeFee(votes[receiptId]); - _rateLimit(receipt.amount); - emit Processed(receiptId); - receipt.processedOn = block.number; - - // INTERACTIONS - token.mint(receipt.ethRecipient, receipt.amount); - } - - /// Set the minting fee - /// @param fee_ New minting fee - /// @dev Only addresses with ADMIN_ROLE can call this - /// @dev Will revert with InvalidArgument if outside [minFee,maxFee] range - function setFee(uint256 fee_) public onlyRole(ADMIN_ROLE) { - if (fee_ > maxFee || fee_ < minFee) { - revert InvalidArgument(); - } - fee = fee_; - } - - /// Set the number of votes required to approve minting - /// @param votesRequired_ Number of votes required - /// @dev Only addresses with SUPER_ADMIN_ROLE can call this - /// @dev Reverts with `InvalidArgument` if `votesRequired_` is 0 - function setVotesRequired(uint32 votesRequired_) public onlyRole(SUPER_ADMIN_ROLE) { - if (votesRequired_ < minVotesRequired) revert InvalidArgument(); - votesRequired = votesRequired_; - } - - /// Stop/start bridge. Will also pause/unpause the token accordingly. - /// @param active True to start, False to stop - /// @dev Only addresses with ADMIN_ROLE can call this - /// @dev Reverts with `InvalidArgument` if `votesRequired_` is 0 - /// @dev Reverts with `InvalidConfiguration` if `token` is ` and `active` is - /// true - /// @dev Emits `StateChanged(active)` if state actually changed - /// @dev Interacts with `token` contract - function setActive(bool active) public onlyRole(ADMIN_ROLE) { - _setActive(active); - } - - /// Emergency stop - stops the bridge - /// @dev Only addresses with ADMIN_ROLE can call this - /// @dev Emits `StateChanged(active)` if state actually changed - /// @dev Always emits `EmergencyStop()` - function emergencyStop() public onlyRole(WATCHER_ROLE) { - emit EmergencyStop(); - _setActive(false); - } - - /// Set the minting delay - /// @param delay New minting delay - /// @dev Only addresses with SUPER_ADMIN_ROLE can call this - function setMintDelay(uint256 delay) public onlyRole(SUPER_ADMIN_ROLE) { - mintDelay = delay; - } - - /// Claim pending reward - /// Used by relays to get ether collected from users as minting fees. - /// @dev May revert with EthTransferFailed - function claimReward() public { - uint256 amount = pendingRewards[msg.sender]; - pendingRewards[msg.sender] = 0; - // disabling check as this is the recommended way of transferring ether - // https://solidity-by-example.org/sending-ether/ - // slither-disable-next-line low-level-calls - (bool sent,) = msg.sender.call{value: amount}(""); - if (!sent) revert EthTransferFailed(); - } - - /// Set rate limit parameters - /// @param counterLimit New counter limit (max burst mint) - /// @param decayRate New decay rate (avg mint per block) - /// @dev Only addresses with SUPER_ADMIN_ROLE can call this - function setRateLimit(uint256 counterLimit, uint256 decayRate) public onlyRole(SUPER_ADMIN_ROLE) { - rateLimit.counterLimit = counterLimit; - rateLimit.decayRate = decayRate; - } - - /// Set max circulating token supply - /// @param supplyLimit_ new supply limit - /// @dev Only addresses with SUPER_ADMIN_ROLE can call this - /// @dev Reverts with `InvalidArgument` if `supplyLimit_` is greater than original limit set in constructor - function setSupplyLimit(uint256 supplyLimit_) public onlyRole(SUPER_ADMIN_ROLE) { - if (supplyLimit_ > maxSupplyLimit) { - revert InvalidArgument(); - } - supplyLimit = supplyLimit_; - } - - /// Set minimum transfer amount - /// @param minTransfer_ New minimum transfer amount - /// @dev Only addresses with ADMIN_ROLE can call this - function setMinTransfer(uint256 minTransfer_) public onlyRole(ADMIN_ROLE) { - minTransfer = minTransfer_; - } - - /// Check if given receiptId was already voted on by given voter - /// @param receiptId ReceiptId to check - /// @param voter Voter to check - /// @return voted_ true if voter voted for receipt - function voted(bytes32 receiptId, address voter) public view returns (bool voted_) { - return _arrayContains(votes[receiptId], voter); - } - - // solhint-disable-next-line no-empty-blocks - function _authorizeUpgrade(address newImplementation) internal override onlyRole(UPGRADER_ROLE) {} - - function _setActive(bool active) internal { - if (active && address(token) == address(0)) revert InvalidConfiguration(); - if (active != bridgeActive) emit StateChanged(active); - bridgeActive = active; - - if (address(token) != address(0)) { - bool tokenPaused = token.paused(); - if (active && tokenPaused) { - token.unpause(); - } else if (!active && !tokenPaused) { - token.pause(); - } - } - } - - function _rateLimit(uint256 amount) internal { - uint256 blocksElapsed = block.number - mintCounter.lastUpdate; - uint256 decay = rateLimit.decayRate * blocksElapsed; - uint256 counter; - if (mintCounter.counter > decay) { - unchecked { - counter = mintCounter.counter - decay; - } - } else { - counter = 0; - } - - counter += amount; - - if (counter > rateLimit.counterLimit) revert RateLimited(); - - mintCounter.counter = counter; - mintCounter.lastUpdate = block.number; - } - - function _takeFee(address[] storage receiptVotes) internal { - if (msg.value < fee) revert InsufficientEther(); - - uint256 votesCount = receiptVotes.length; - - // first vote costs ~110k gas - // standard vote costs ~30k gas - // approving vote costs ~50k gas - // this assumes that hw/transfer cost is negligible in comparison to - // network fees - uint256 firstWeight = 8; // + standardWeight = 11 - uint256 approverWeight = 2; // + standardWeight = 5 - uint256 standardWeight = 3; - - uint256 totalWeight = firstWeight + approverWeight + votesCount * standardWeight; - - // disabling slither rule as we're specifically adjusting for the - // precision loss here - // slither-disable-start divide-before-multiply - uint256 perWeightFee = msg.value / totalWeight; - uint256 remainder = msg.value - perWeightFee * totalWeight; - // slither-disable-end divide-before-multiply - - for (uint256 i = 0; i < votesCount;) { - uint256 weight = standardWeight; - if (i == 0) weight += firstWeight; - if (i == votesRequired - 1) weight += approverWeight; - - uint256 reward = perWeightFee * weight; - if (i == 0) reward += remainder; - - pendingRewards[receiptVotes[i]] += reward; - unchecked { - ++i; - } - } - } - - function _checkReceiptMatches(bytes32 receiptId, uint64 substrateBlockNumber, address ethRecipient, uint256 amount) - internal - view - returns (bool) - { - IncomingReceiptStruct storage r = incomingReceipts[receiptId]; - if (r.substrateBlockNumber != substrateBlockNumber) return false; - if (r.ethRecipient != ethRecipient) return false; - if (r.amount != amount) return false; - return true; - } - - function _arrayContains(address[] storage arr, address needle) internal view returns (bool) { - uint256 len = arr.length; - for (uint256 i = 0; i < len;) { - if (arr[i] == needle) return true; - unchecked { - ++i; - } - } - return false; - } -} diff --git a/substrate/eth-bridge/contracts/src/BridgeEvents.sol b/substrate/eth-bridge/contracts/src/BridgeEvents.sol deleted file mode 100644 index 41dc0c4c00..0000000000 --- a/substrate/eth-bridge/contracts/src/BridgeEvents.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.18; - -/// @title Interface with events emitted by the bridge -interface BridgeEvents { - /// Emitted after burn, notifies relays that transfer is happening - /// @param from Account that burned its tokens - /// @param substrateRecipient Who should get tokens on substrate - /// @param amount Amount of token burned - event OutgoingReceipt(address indexed from, bytes32 indexed substrateRecipient, uint256 amount); - - /// Bridge get activated or deactivated - /// @param newBridgeState New bridge state - event StateChanged(bool newBridgeState); - - /// An IncomingReceipt was approved for transfer. `mint(bytes32)` - /// can now be called for this receipt after `mintDelay` blocks pass. - /// @param receiptId Receipt that got approved - event Approved(bytes32 indexed receiptId); - - /// Vote was cast to approve IncomingReceipt - /// @param receiptId subject Receipt - /// @param relay Relay that cast the vote - event Vote(bytes32 indexed receiptId, address indexed relay, uint64 substrateBlockNumber); - - /// IncomingReceipt was completely processed - tokens were minted - /// @param receiptId subject Receipt - event Processed(bytes32 indexed receiptId); - - /// Bridge was emergency stopped by watcher - misbehavior by relay was - /// detected - event EmergencyStop(); -} diff --git a/substrate/eth-bridge/contracts/src/BridgeTypes.sol b/substrate/eth-bridge/contracts/src/BridgeTypes.sol deleted file mode 100644 index c6869ec06f..0000000000 --- a/substrate/eth-bridge/contracts/src/BridgeTypes.sol +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.18; - -/// Struct for representing Substrate -> ETH transfer -struct IncomingReceiptStruct { - uint64 substrateBlockNumber; - address ethRecipient; - uint256 amount; - uint256 approvedOn; - uint256 processedOn; -} - -/// Rate limit parameters. Limit how fast can tokens be minted.This is -/// implemented as The Leaky Bucket as a Meter algorithm - -/// https://en.wikipedia.org/wiki/Leaky_bucket. -/// `counterLimit` is the max counter (a.k.a. max burst, max single withdrawal) -/// `decayRate` is after reaching max, how much can be minted per block. -struct RateLimitParameters { - uint256 counterLimit; - uint256 decayRate; -} - -/// Struct for keeping track of counters required to enforce rate limits -struct RateLimitCounter { - uint256 counter; - uint256 lastUpdate; -} diff --git a/substrate/eth-bridge/contracts/src/WrappedToken.sol b/substrate/eth-bridge/contracts/src/WrappedToken.sol deleted file mode 100644 index 8e87d86351..0000000000 --- a/substrate/eth-bridge/contracts/src/WrappedToken.sol +++ /dev/null @@ -1,74 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.18; - -import {Initializable} from "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"; -import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol"; -import {AccessControlUpgradeable} from - "openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol"; -import {ERC20Upgradeable} from "openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; -import {PausableUpgradeable} from "openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol"; -import {ERC20PermitUpgradeable} from - "openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol"; - -/// @dev Must be used with ERC1967Proxy -contract WrappedToken is - Initializable, - ERC20Upgradeable, - PausableUpgradeable, - AccessControlUpgradeable, - ERC20PermitUpgradeable, - UUPSUpgradeable -{ - bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); - bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); - bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE"); - - constructor() { - _disableInitializers(); - } - - function initialize(string memory name, string memory symbol) public initializer { - __ERC20_init(name, symbol); - __Pausable_init(); - __AccessControl_init(); - __ERC20Permit_init(name); - __UUPSUpgradeable_init(); - - _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); - } - - function pause() public onlyRole(PAUSER_ROLE) { - _pause(); - } - - function unpause() public onlyRole(PAUSER_ROLE) { - _unpause(); - } - - function mint(address to, uint256 amount) public onlyRole(MINTER_ROLE) { - _mint(to, amount); - } - - function burn(address account, uint256 amount) public onlyRole(MINTER_ROLE) { - _spendAllowance(account, _msgSender(), amount); - _burn(account, amount); - } - - function allowance(address owner, address spender) public view virtual override returns (uint256) { - if (hasRole(MINTER_ROLE, spender)) { - return type(uint256).max; - } - return super.allowance(owner, spender); - } - - function decimals() public pure override returns (uint8) { - return 12; - } - - function _beforeTokenTransfer(address from, address to, uint256 amount) internal override whenNotPaused { - super._beforeTokenTransfer(from, to, amount); - } - - // solhint-disable-next-line no-empty-blocks - function _authorizeUpgrade(address newImplementation) internal override onlyRole(UPGRADER_ROLE) {} -} diff --git a/substrate/eth-bridge/contracts/test/Bridge.t.sol b/substrate/eth-bridge/contracts/test/Bridge.t.sol deleted file mode 100644 index e0fe640c4a..0000000000 --- a/substrate/eth-bridge/contracts/test/Bridge.t.sol +++ /dev/null @@ -1,860 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.18; - -import "forge-std/Test.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import "../src/WrappedToken.sol"; -import "../src/Bridge.sol"; - -using stdStorage for StdStorage; - -contract BridgeTest is Test, BridgeEvents { - WrappedToken public token; - Bridge public bridge; - - address alice = vm.addr(1); - address bob = vm.addr(2); - address charlie = vm.addr(3); - address dave = vm.addr(4); - - bytes32 substrate1 = "12345678901234567890123456789012"; - bytes32 receipt1 = "12345678901234567890123456789012"; - bytes32 receipt2 = "22345678901234567890123456789012"; - bytes32 receipt3 = "32345678901234567890123456789012"; - - event Transfer(address indexed from, address indexed to, uint256 value); - - function setUp() public { - Bridge bridgeImpl = new Bridge(); - WrappedToken tokenImpl = new WrappedToken(); - token = WrappedToken( - address( - new ERC1967Proxy( - address(tokenImpl), abi.encodeCall(WrappedToken.initialize, ("Liberland Merits", "LLM")) - ) - ) - ); - - bridge = Bridge( - address( - new ERC1967Proxy( - address(bridgeImpl), - abi.encodeCall(Bridge.initialize, (token, 2, 10, 4, 1000, 10, 1_000_000, 0, 1_000_000, 2, 100, 2)) - ) - ) - ); - bridge.grantRole(bridge.ADMIN_ROLE(), dave); - bridge.grantRole(bridge.RELAY_ROLE(), alice); - bridge.grantRole(bridge.RELAY_ROLE(), bob); - bridge.grantRole(bridge.RELAY_ROLE(), charlie); - bridge.grantRole(bridge.WATCHER_ROLE(), alice); - bridge.grantRole(bridge.WATCHER_ROLE(), dave); - vm.deal(alice, 100); - token.grantRole(token.MINTER_ROLE(), address(bridge)); - token.grantRole(token.PAUSER_ROLE(), address(bridge)); - vm.startPrank(address(bridge)); - token.mint(alice, 100); - token.mint(bob, 100); - token.mint(charlie, 100); - token.mint(dave, 100); - token.mint(address(this), 100); - vm.stopPrank(); - - vm.prank(dave); - bridge.setActive(true); - } - - function testBurnRevertsOnStoppedBridge() public { - vm.prank(dave); - bridge.setActive(false); - - vm.expectRevert(BridgeInactive.selector); - bridge.burn(100, substrate1); - } - - function testBurnEmitsReceipt() public { - vm.expectEmit(false, false, false, false); - emit OutgoingReceipt(address(this), substrate1, 100); - bridge.burn(100, substrate1); - } - - function testBurnTakesTokenFromCaller() public { - bridge.burn(10, substrate1); - assertEq(token.balanceOf(address(this)), 90); - bridge.burn(10, substrate1); - assertEq(token.balanceOf(address(this)), 80); - bridge.burn(80, substrate1); - assertEq(token.balanceOf(address(this)), 0); - } - - function testBurnReducesTotalSupply() public { - bridge.burn(10, substrate1); - assertEq(token.totalSupply(), 490); - bridge.burn(10, substrate1); - assertEq(token.totalSupply(), 480); - bridge.burn(80, substrate1); - assertEq(token.totalSupply(), 400); - } - - function testBurnFailsOnInsufficientFunds() public { - vm.expectRevert(bytes("ERC20: burn amount exceeds balance")); - bridge.burn(101, substrate1); - } - - function testVoteFailsOnNonRelay() public { - vm.expectRevert( - "AccessControl: account 0x7fa9385be102ac3eac297483dd6233d62b3e1496 is missing role 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7" - ); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testVoteFailsOnStoppedBridge() public { - vm.prank(dave); - bridge.setActive(false); - vm.prank(alice); - vm.expectRevert(BridgeInactive.selector); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testVoteSuccedsAfterReachingRequiredVotes() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(charlie); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testVoteFailsOnProcessedReceipt() public { - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.roll(11); - bridge.mint{value: 4}(receipt1); - - vm.stopPrank(); - vm.prank(charlie); - vm.expectRevert(AlreadyProcessed.selector); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testVoteSetsReceiptDetails() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - - (uint64 substrateBlockNumber, address ethRecipient, uint256 amount,,) = bridge.incomingReceipts(receipt1); - assertEq(substrateBlockNumber, 1); - assertEq(ethRecipient, alice); - assertEq(amount, 100); - } - - function testVoteStopsBridgeOnMismatchedDetails() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.prank(bob); - vm.expectEmit(false, false, false, true); - emit StateChanged(false); - bridge.voteMint(receipt1, 1, 101, alice); - - vm.prank(alice); - vm.expectRevert(BridgeInactive.selector); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testVotingRevertsOnDoubleVote() public { - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.expectRevert(AlreadyVoted.selector); - bridge.voteMint(receipt1, 1, 100, alice); - vm.stopPrank(); - - vm.expectRevert(NotApproved.selector); - bridge.mint(receipt1); - - vm.prank(bob); - vm.expectEmit(true, false, false, false); - emit Approved(receipt1); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testVotingEmitsEvent() public { - vm.prank(alice); - vm.expectEmit(false, false, false, true); - emit Vote(receipt1, alice, 1); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testVotingSetsApprovedOn() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - (,,, uint256 approvedOn,) = bridge.incomingReceipts(receipt1); - assertEq(approvedOn, block.number); - } - - function testMintFailsOnUnknownReceipt() public { - vm.expectRevert(NotApproved.selector); - bridge.mint(receipt1); - } - - function testMintFailsOnInsufficientVotes() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.expectRevert(NotApproved.selector); - bridge.mint(receipt1); - } - - function testMintFailsOnStoppedBridge() public { - vm.prank(dave); - bridge.setActive(false); - - vm.expectRevert(BridgeInactive.selector); - bridge.mint(receipt1); - } - - function testMintEmitsEvent() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - vm.expectEmit(true, true, false, true); - emit Transfer(address(0), alice, 100); - bridge.mint{value: 4}(receipt1); - } - - function testMintIncreasesTotalSupply() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - bridge.mint{value: 4}(receipt1); - - assertEq(token.totalSupply(), 600); - } - - function testMintSendsTokensToRecipient() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - bridge.mint{value: 4}(receipt1); - - assertEq(token.balanceOf(alice), 200); - } - - function testMintRespectsMaxIssuanceLimit() public { - // we start with 500 already minted - bridge.setSupplyLimit(650); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 149, alice); - bridge.voteMint(receipt2, 1, 2, alice); - bridge.voteMint(receipt3, 1, 1, alice); - vm.stopPrank(); - vm.startPrank(bob); - bridge.voteMint(receipt1, 1, 149, alice); - bridge.voteMint(receipt2, 1, 2, alice); - bridge.voteMint(receipt3, 1, 1, alice); - vm.stopPrank(); - - vm.roll(11); - bridge.mint{value: 4}(receipt1); - - vm.expectRevert(TooMuchSupply.selector); - bridge.mint{value: 4}(receipt2); - - bridge.mint{value: 4}(receipt3); - } - - function testMintFailsOnInsufficientEther() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - vm.expectRevert(InsufficientEther.selector); - bridge.mint{value: 3}(receipt1); - } - - function testMintDistributesRewardsToVotingRelays1() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - bridge.mint{value: 16}(receipt1); - - assertEq(bridge.pendingRewards(alice), 11); - assertEq(bridge.pendingRewards(bob), 5); - assertEq(bridge.pendingRewards(charlie), 0); - } - - function testMintDistributesRewardsToVotingRelays2() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(charlie); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - bridge.mint{value: 19}(receipt1); - - assertEq(bridge.pendingRewards(alice), 11); - assertEq(bridge.pendingRewards(bob), 5); - assertEq(bridge.pendingRewards(charlie), 3); - } - - function testMintUpdatesReceiptStatus() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - bridge.mint{value: 4}(receipt1); - - (,,,, uint256 processedOn) = bridge.incomingReceipts(receipt1); - assertEq(processedOn, block.number); - } - - function testMintWorksOnlyOnce() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - vm.roll(11); - bridge.mint{value: 4}(receipt1); - - vm.expectRevert(AlreadyProcessed.selector); - bridge.mint{value: 4}(receipt1); - } - - function testMintRespectsMintDelay() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(10); - vm.expectRevert(TooSoon.selector); - bridge.mint{value: 4}(receipt1); - - vm.roll(11); - bridge.mint{value: 4}(receipt1); - } - - function testMintRespectsMintDelayWithVotesAfterApproval() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(charlie); - vm.roll(5); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(10); - vm.expectRevert(TooSoon.selector); - bridge.mint{value: 4}(receipt1); - - vm.roll(11); - bridge.mint{value: 4}(receipt1); - } - - function testEmergencyStopChecksPerms() public { - vm.expectRevert( - "AccessControl: account 0x7fa9385be102ac3eac297483dd6233d62b3e1496 is missing role 0x2125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89" - ); - bridge.emergencyStop(); - - vm.prank(dave); - bridge.emergencyStop(); - } - - function testEmergencyStopEmitsEvent() public { - vm.prank(dave); - vm.expectEmit(false, false, false, false); - emit EmergencyStop(); - bridge.emergencyStop(); - } - - function testEmergencyStopWorks() public { - vm.prank(dave); - bridge.emergencyStop(); - - vm.prank(alice); - vm.expectRevert(BridgeInactive.selector); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testSetFeeWorks() public { - vm.startPrank(dave); - bridge.setFee(2); - assertEq(bridge.fee(), 2); - bridge.setFee(10); - assertEq(bridge.fee(), 10); - } - - function testSetFeeRespectsMinMax() public { - vm.startPrank(dave); - vm.expectRevert(InvalidArgument.selector); - bridge.setFee(1); - vm.expectRevert(InvalidArgument.selector); - bridge.setFee(101); - } - - function testSetFeeRequiresAdmin() public { - vm.prank(alice); - vm.expectRevert( - "AccessControl: account 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf is missing role 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775" - ); - bridge.setFee(1); - } - - function testSetVotesRequiredWorks() public { - bridge.setVotesRequired(5); - assertEq(bridge.votesRequired(), 5); - bridge.setVotesRequired(10); - assertEq(bridge.votesRequired(), 10); - } - - function testSetVotesRequiredRespectsMin() public { - vm.expectRevert(InvalidArgument.selector); - bridge.setVotesRequired(1); - } - - function testSetVotesRequiredRequiresSuperAdmin() public { - vm.prank(alice); - vm.expectRevert( - "AccessControl: account 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf is missing role 0x7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689" - ); - bridge.setVotesRequired(1); - } - - function testRemovingRelayRequiresAdmin() public { - bytes32 relay = bridge.RELAY_ROLE(); - vm.prank(alice); - vm.expectRevert(Unauthorized.selector); - bridge.revokeRole(relay, alice); - - bridge.revokeRole(relay, alice); - } - - function testRemovingRelayWorks() public { - bytes32 relay = bridge.RELAY_ROLE(); - - assertEq(bridge.hasRole(relay, alice), true); - bridge.revokeRole(relay, alice); - assertEq(bridge.hasRole(relay, alice), false); - - vm.prank(alice); - vm.expectRevert( - "AccessControl: account 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf is missing role 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7" - ); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testAddingWatcherRequiresAdmin() public { - bytes32 watcher = bridge.WATCHER_ROLE(); - - vm.prank(alice); - vm.expectRevert(Unauthorized.selector); - bridge.grantRole(watcher, alice); - - vm.prank(dave); - bridge.grantRole(watcher, alice); - - bridge.grantRole(watcher, bob); - } - - function testAddingWatcherWorks() public { - bytes32 watcher = bridge.WATCHER_ROLE(); - - assertEq(bridge.hasRole(watcher, bob), false); - bridge.grantRole(watcher, bob); - assertEq(bridge.hasRole(watcher, bob), true); - - vm.prank(bob); - bridge.emergencyStop(); - } - - function testSetActiveRequiresAdmin() public { - vm.startPrank(dave); - bridge.setActive(true); - bridge.setActive(false); - vm.stopPrank(); - - vm.startPrank(alice); - vm.expectRevert( - "AccessControl: account 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf is missing role 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775" - ); - bridge.setActive(true); - - vm.expectRevert( - "AccessControl: account 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf is missing role 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775" - ); - bridge.setActive(false); - } - - function testSetActivePausesToken() public { - vm.startPrank(dave); - - bridge.setActive(false); - assertEq(token.paused(), true); - - bridge.setActive(false); - assertEq(token.paused(), true); - - bridge.setActive(true); - assertEq(token.paused(), false); - - bridge.setActive(true); - assertEq(token.paused(), false); - } - - function testSetActiveWorks() public { - vm.startPrank(dave); - bridge.setActive(false); - assertEq(bridge.bridgeActive(), false); - bridge.setActive(true); - assertEq(bridge.bridgeActive(), true); - bridge.setActive(false); - assertEq(bridge.bridgeActive(), false); - } - - function testAddingAdminsRequiresAdmin() public { - bytes32 admin = bridge.ADMIN_ROLE(); - - assertEq(bridge.hasRole(admin, alice), false); - bridge.grantRole(admin, alice); - assertEq(bridge.hasRole(admin, alice), true); - - vm.prank(bob); - vm.expectRevert(Unauthorized.selector); - bridge.grantRole(admin, alice); - - vm.prank(dave); - bridge.grantRole(admin, alice); - } - - function testRemovingAdminsRequiresAdmin() public { - bytes32 admin = bridge.ADMIN_ROLE(); - bridge.grantRole(admin, bob); - - vm.prank(charlie); - vm.expectRevert(Unauthorized.selector); - bridge.revokeRole(admin, bob); - - assertEq(bridge.hasRole(admin, bob), true); - bridge.revokeRole(admin, bob); - assertEq(bridge.hasRole(admin, bob), false); - - vm.prank(dave); - bridge.revokeRole(admin, dave); - } - - function testAddingSuperAdminsRequiresSuperAdmin() public { - bytes32 superAdmin = bridge.SUPER_ADMIN_ROLE(); - - assertEq(bridge.hasRole(superAdmin, alice), false); - bridge.grantRole(superAdmin, alice); - assertEq(bridge.hasRole(superAdmin, alice), true); - - vm.prank(bob); - vm.expectRevert(Unauthorized.selector); - bridge.grantRole(superAdmin, bob); - - vm.prank(dave); - vm.expectRevert(Unauthorized.selector); - bridge.grantRole(superAdmin, bob); - } - - function testRemovingSuperAdminsRequiresSuperAdmin() public { - bytes32 superAdmin = bridge.SUPER_ADMIN_ROLE(); - bridge.grantRole(superAdmin, alice); - - vm.prank(charlie); - vm.expectRevert(Unauthorized.selector); - bridge.revokeRole(superAdmin, alice); - - vm.prank(dave); - vm.expectRevert(Unauthorized.selector); - bridge.revokeRole(superAdmin, alice); - - assertEq(bridge.hasRole(superAdmin, alice), true); - bridge.revokeRole(superAdmin, alice); - assertEq(bridge.hasRole(superAdmin, alice), false); - } - - function testRemovingWatcherRequiresSuperAdmin() public { - bytes32 watcher = bridge.WATCHER_ROLE(); - vm.prank(alice); - vm.expectRevert(Unauthorized.selector); - bridge.revokeRole(watcher, alice); - - vm.prank(dave); - vm.expectRevert(Unauthorized.selector); - bridge.revokeRole(watcher, alice); - - bridge.revokeRole(watcher, alice); - } - - function testRemovingWatcherWorks() public { - bytes32 watcher = bridge.WATCHER_ROLE(); - - assertEq(bridge.hasRole(watcher, alice), true); - bridge.revokeRole(watcher, alice); - assertEq(bridge.hasRole(watcher, alice), false); - - vm.prank(alice); - vm.expectRevert( - "AccessControl: account 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf is missing role 0x2125d1e225cadc5c8296e2cc1f96ee607770bf4a4a16131e62f6819937437c89" - ); - bridge.emergencyStop(); - } - - function testAddingRelayRequiresSuperAdmin() public { - bytes32 relay = bridge.RELAY_ROLE(); - - vm.prank(alice); - vm.expectRevert(Unauthorized.selector); - bridge.grantRole(relay, dave); - - vm.prank(dave); - vm.expectRevert(Unauthorized.selector); - bridge.grantRole(relay, dave); - - bridge.grantRole(relay, dave); - } - - function testAddingRelayWorks() public { - bytes32 relay = bridge.RELAY_ROLE(); - - assertEq(bridge.hasRole(relay, dave), false); - bridge.grantRole(relay, dave); - assertEq(bridge.hasRole(relay, dave), true); - - vm.prank(dave); - bridge.voteMint(receipt1, 1, 100, alice); - } - - function testRateLimitAllowsSingleTxAtLimit() public { - vm.prank(bob); - bridge.voteMint(receipt1, 1, 1000, alice); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 1000, alice); - vm.roll(11); - - bridge.mint{value: 4}(receipt1); - } - - function testRateLimitAllowsMultiTxAtLimit() public { - vm.startPrank(bob); - bridge.voteMint(receipt1, 1, 500, alice); - bridge.voteMint(receipt2, 1, 500, alice); - vm.stopPrank(); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 500, alice); - bridge.voteMint(receipt2, 1, 500, alice); - vm.stopPrank(); - vm.roll(11); - - bridge.mint{value: 4}(receipt1); - bridge.mint{value: 4}(receipt2); - } - - function testRateLimitAllowsUsingDecayedAmountRightAway() public { - vm.startPrank(bob); - bridge.voteMint(receipt1, 1, 1000, alice); - bridge.voteMint(receipt2, 1, 10, alice); - vm.stopPrank(); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 1000, alice); - bridge.voteMint(receipt2, 1, 10, alice); - vm.stopPrank(); - vm.roll(11); - - bridge.mint{value: 4}(receipt1); - vm.roll(12); - bridge.mint{value: 4}(receipt2); - } - - function testRateLimitGoesToZeroAfterWholeWindow() public { - vm.startPrank(bob); - bridge.voteMint(receipt1, 1, 1000, alice); - bridge.voteMint(receipt2, 1, 1000, alice); - vm.stopPrank(); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 1000, alice); - bridge.voteMint(receipt2, 1, 1000, alice); - vm.stopPrank(); - vm.roll(11); - - bridge.mint{value: 4}(receipt1); - vm.roll(111); - bridge.mint{value: 4}(receipt2); - } - - function testRateLimitPreventsSingleBigMint() public { - vm.prank(bob); - bridge.voteMint(receipt1, 1, 1001, alice); - vm.prank(alice); - bridge.voteMint(receipt1, 1, 1001, alice); - vm.roll(11); - - vm.expectRevert(RateLimited.selector); - bridge.mint{value: 4}(receipt1); - } - - function testRateLimitPreventsMultiBigMint() public { - vm.startPrank(bob); - bridge.voteMint(receipt1, 1, 501, alice); - bridge.voteMint(receipt2, 1, 500, alice); - vm.stopPrank(); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 501, alice); - bridge.voteMint(receipt2, 1, 500, alice); - vm.stopPrank(); - vm.roll(11); - - bridge.mint{value: 4}(receipt1); - - vm.expectRevert(RateLimited.selector); - bridge.mint{value: 4}(receipt2); - } - - function testRateLimitRespectsDecay() public { - vm.startPrank(bob); - bridge.voteMint(receipt1, 1, 1000, alice); - bridge.voteMint(receipt2, 1, 500, alice); - bridge.voteMint(receipt3, 1, 501, alice); - vm.stopPrank(); - vm.startPrank(alice); - bridge.voteMint(receipt1, 1, 1000, alice); - bridge.voteMint(receipt2, 1, 500, alice); - bridge.voteMint(receipt3, 1, 501, alice); - vm.stopPrank(); - - vm.roll(100); - bridge.mint{value: 4}(receipt1); - - vm.roll(149); - vm.expectRevert(RateLimited.selector); - bridge.mint{value: 4}(receipt2); - - vm.roll(150); - vm.expectRevert(RateLimited.selector); - bridge.mint{value: 4}(receipt3); - - bridge.mint{value: 4}(receipt2); - } - - function testMaxTotalSupplyIsRespectedAfterBurns() public { - bridge.setSupplyLimit(500); - - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, alice); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, alice); - - vm.roll(11); - vm.expectRevert(TooMuchSupply.selector); - bridge.mint(receipt1); - - bridge.burn(100, substrate1); - bridge.mint{value: 4}(receipt1); - } - - function testOnlyUpgraderCanUpgrade() public { - Bridge impl2 = new Bridge(); - - vm.expectRevert( - "AccessControl: account 0x7fa9385be102ac3eac297483dd6233d62b3e1496 is missing role 0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3" - ); - bridge.upgradeTo(address(impl2)); - - bridge.grantRole(bridge.UPGRADER_ROLE(), address(this)); - bridge.upgradeTo(address(impl2)); - } - - function testOnlyUpgradesToUUPSCompatible() public { - bridge.grantRole(bridge.UPGRADER_ROLE(), address(this)); - vm.expectRevert("ERC1967Upgrade: new implementation is not UUPS"); - bridge.upgradeTo(address(token)); - } - - function testIsUpgradeable() public { - Bridge impl2 = new Bridge(); - bridge.grantRole(bridge.UPGRADER_ROLE(), address(this)); - bridge.upgradeTo(address(impl2)); - - vm.expectCall(address(impl2), ""); - bridge.fee(); - } - - function testClaimRewardWorks() public { - vm.prank(alice); - bridge.voteMint(receipt1, 1, 100, dave); - vm.prank(bob); - bridge.voteMint(receipt1, 1, 100, dave); - vm.prank(charlie); - bridge.voteMint(receipt1, 1, 100, dave); - - vm.roll(11); - bridge.mint{value: 19}(receipt1); - - assertEq(alice.balance, 100); - - vm.prank(alice); - bridge.claimReward(); - assertEq(alice.balance, 111); - assertEq(bob.balance, 0); - assertEq(charlie.balance, 0); - - vm.prank(bob); - bridge.claimReward(); - assertEq(alice.balance, 111); - assertEq(bob.balance, 5); - assertEq(charlie.balance, 0); - - vm.prank(charlie); - bridge.claimReward(); - assertEq(alice.balance, 111); - assertEq(bob.balance, 5); - assertEq(charlie.balance, 3); - } - - function testMinTransferIsRespected() public { - vm.startPrank(dave); - bridge.setMinTransfer(10); - - vm.expectRevert(TooSmallAmount.selector); - bridge.burn(9, substrate1); - - bridge.setMinTransfer(9); - bridge.burn(9, substrate1); - } - - function testSetSupplyLimitCantExceedMaxSupplyLimit() public { - uint256 maxLimit = bridge.maxSupplyLimit(); - - bridge.setSupplyLimit(maxLimit - 2); - bridge.setSupplyLimit(maxLimit - 1); - bridge.setSupplyLimit(maxLimit); - - vm.expectRevert(InvalidArgument.selector); - bridge.setSupplyLimit(maxLimit + 1); - } -} diff --git a/substrate/eth-bridge/contracts/test/VoteFeeCompare.t.sol b/substrate/eth-bridge/contracts/test/VoteFeeCompare.t.sol deleted file mode 100644 index 1be764d583..0000000000 --- a/substrate/eth-bridge/contracts/test/VoteFeeCompare.t.sol +++ /dev/null @@ -1,89 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.18; - -import "forge-std/Test.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import "../src/WrappedToken.sol"; -import "../src/Bridge.sol"; - -using stdStorage for StdStorage; - -contract VoteFeeCompare is Test, BridgeEvents { - WrappedToken public token; - Bridge public bridge; - - address alice = vm.addr(1); - address bob = vm.addr(2); - address charlie = vm.addr(3); - address dave = vm.addr(4); - - bytes32 substrate1 = "12345678901234567890123456789012"; - bytes32 receipt1 = "12345678901234567890123456789012"; - bytes32 receipt2 = "22345678901234567890123456789012"; - bytes32 receipt3 = "32345678901234567890123456789012"; - - event Transfer(address indexed from, address indexed to, uint256 value); - - function setUp() public { - Bridge bridgeImpl = new Bridge(); - WrappedToken tokenImpl = new WrappedToken(); - token = WrappedToken( - address( - new ERC1967Proxy( - address(tokenImpl), abi.encodeCall(WrappedToken.initialize, ("Liberland Merits", "LLM")) - ) - ) - ); - bridge = Bridge( - address( - new ERC1967Proxy( - address(bridgeImpl), - abi.encodeCall(Bridge.initialize, (token, 3, 10, 4, 1000, 10, 650, 0, 650, 2, 100, 2)) - ) - ) - ); - bridge.grantRole(bridge.ADMIN_ROLE(), address(this)); - bridge.grantRole(bridge.RELAY_ROLE(), alice); - bridge.grantRole(bridge.RELAY_ROLE(), bob); - bridge.grantRole(bridge.RELAY_ROLE(), charlie); - bridge.grantRole(bridge.RELAY_ROLE(), dave); - bridge.grantRole(bridge.RELAY_ROLE(), address(this)); - token.grantRole(token.MINTER_ROLE(), address(bridge)); - token.grantRole(token.PAUSER_ROLE(), address(bridge)); - bridge.setActive(true); - } - - function testGas() public { - uint256 gas; - uint256 first; - uint256 standard; - uint256 approve; - - vm.prank(alice); - gas = gasleft(); - bridge.voteMint(receipt1, 1, 100, alice); - first = gas - gasleft(); - - vm.prank(bob); - gas = gasleft(); - bridge.voteMint(receipt1, 1, 100, alice); - standard = gas - gasleft(); - - vm.prank(charlie); - gas = gasleft(); - bridge.voteMint(receipt1, 1, 100, alice); - approve = gas - gasleft(); - - assert(standard < first); - assert(standard < approve); - - console.log("Standard vote: ", standard); - console.log("First vote premium: ", first - standard); - console.log("Approving vote premium: ", approve - standard); - console.log(""); - console.log("Avg gas per vote (with N relays): "); - console.log(standard, "+", first + approve - 2 * standard, "/ N"); - console.log("Avg total gas per transfer (with N relays): "); - console.log(first + approve - 2 * standard, "+ N *", standard); - } -} diff --git a/substrate/eth-bridge/contracts/test/WrappedToken.t.sol b/substrate/eth-bridge/contracts/test/WrappedToken.t.sol deleted file mode 100644 index 6c510dca34..0000000000 --- a/substrate/eth-bridge/contracts/test/WrappedToken.t.sol +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.18; - -import "forge-std/Test.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import "../src/WrappedToken.sol"; - -using stdStorage for StdStorage; - -contract WrappedTokenTest is Test { - WrappedToken public token; - - address alice = vm.addr(1); - address bob = vm.addr(2); - address charlie = vm.addr(3); - - function setUp() public { - WrappedToken tokenImpl = new WrappedToken(); - token = WrappedToken( - address( - new ERC1967Proxy( - address(tokenImpl), abi.encodeCall(WrappedToken.initialize, ("Liberland Merits", "LLM")) - ) - ) - ); - token.grantRole(token.MINTER_ROLE(), alice); - token.grantRole(token.PAUSER_ROLE(), alice); - vm.prank(alice); - token.mint(bob, 10); - } - - function testMinterNeedsNoApproval() public { - vm.startPrank(alice); - token.transferFrom(bob, alice, 1); - token.burn(bob, 1); - vm.stopPrank(); - } - - function testOthersNeedApproval() public { - vm.prank(charlie); - vm.expectRevert("ERC20: insufficient allowance"); - token.transferFrom(bob, alice, 2); - - vm.prank(bob); - token.approve(charlie, 1); - - vm.prank(charlie); - vm.expectRevert("ERC20: insufficient allowance"); - token.transferFrom(bob, alice, 2); - - vm.prank(bob); - token.approve(charlie, 2); - - vm.prank(charlie); - token.transferFrom(bob, alice, 2); - } - - function testPauserCanPause() public { - vm.prank(alice); - token.pause(); - vm.prank(alice); - token.unpause(); - } - - function testOthersCantPause() public { - vm.prank(bob); - vm.expectRevert( - "AccessControl: account 0x2b5ad5c4795c026514f8317c7a215e218dccd6cf is missing role 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a" - ); - token.pause(); - - vm.prank(alice); - token.pause(); - - vm.prank(bob); - vm.expectRevert( - "AccessControl: account 0x2b5ad5c4795c026514f8317c7a215e218dccd6cf is missing role 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a" - ); - token.unpause(); - } - - function testMinterCanMintAndBurn() public { - vm.prank(alice); - token.mint(bob, 10); - - vm.prank(alice); - token.burn(bob, 10); - } - - function testOthersCantMintNorBurn() public { - vm.prank(bob); - vm.expectRevert( - "AccessControl: account 0x2b5ad5c4795c026514f8317c7a215e218dccd6cf is missing role 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6" - ); - token.mint(bob, 10); - - vm.prank(alice); - token.mint(bob, 10); - - vm.prank(bob); - vm.expectRevert( - "AccessControl: account 0x2b5ad5c4795c026514f8317c7a215e218dccd6cf is missing role 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6" - ); - token.burn(bob, 10); - } - - function testOnlyUpgraderCanUpgrade() public { - token.grantRole(token.UPGRADER_ROLE(), address(this)); - - WrappedToken impl2 = new WrappedToken(); - - vm.prank(bob); - vm.expectRevert( - "AccessControl: account 0x2b5ad5c4795c026514f8317c7a215e218dccd6cf is missing role 0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3" - ); - token.upgradeTo(address(impl2)); - - token.upgradeTo(address(impl2)); - } - - function testOnlyUpgradesToUUPSCompatible() public { - token.grantRole(token.UPGRADER_ROLE(), address(this)); - - vm.expectRevert("ERC1967Upgrade: new implementation is not UUPS"); - token.upgradeTo(address(token)); - } - - function testIsUpgradeable() public { - token.grantRole(token.UPGRADER_ROLE(), address(this)); - - WrappedToken impl2 = new WrappedToken(); - token.upgradeTo(address(impl2)); - - vm.expectCall(address(impl2), ""); - token.balanceOf(alice); - } -}