diff --git a/contracts/README.md b/contracts/README.md index ae81b4c765..d650d0ac9e 100644 --- a/contracts/README.md +++ b/contracts/README.md @@ -34,7 +34,9 @@ Any contract inheriting `GovernanceVote.sol` can set up a consensus vote on meth [GovProxyAdmin](https://github.com/bane-labs/go-ethereum/blob/bane-main/contracts/solidity/GovProxyAdmin.sol) controls the upgrade of other pre-compiled system contracts, since all of their `onlyOwner`/`onlyAdmin` point to `0x1212000000000000000000000000000000000000`. -This contract inherits `GovernanceVote.sol` so that it requires a `50%` majority votes among current consensus to execute `upgradeAndCall(...)`, which means **more than half** of the **current consensus** votes for **the same contract implementation**. +This contract inherits `GovernanceVote.sol` so that it requires a `50%` majority votes among current consensus to execute `scheduleUpgrade(...)`, which means **more than half** of the **current consensus** votes for **the same contract implementation**. + +This contract inherits `TimelockController.sol` to implement a lock period(2 days) after the vote is passed before calling `executeUpgrade(...)` to upgrade the upgradable system contract. Anyone can call `executeUpgrade(...)`` after the lock period is reached. All of the upgradable Neo X system contracts use [ERC1967Proxy](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v5.0/contracts/proxy/ERC1967/ERC1967Proxy.sol) and [UUPSUpgradeable](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v5.0/contracts/proxy/utils/UUPSUpgradeable.sol). diff --git a/contracts/solidity/GovProxyAdmin.sol b/contracts/solidity/GovProxyAdmin.sol index 019ccd38cb..83bae0e8c1 100644 --- a/contracts/solidity/GovProxyAdmin.sol +++ b/contracts/solidity/GovProxyAdmin.sol @@ -3,22 +3,36 @@ pragma solidity ^0.8.25; import {GovernanceVote} from "./base/GovernanceVote.sol"; import {GovProxyUpgradeable} from "./base/GovProxyUpgradeable.sol"; +import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol"; /** * @dev This is an auxiliary contract meant to be assigned as the admin of a {Proxy}. * Use GovernanceVote to manage upgrade */ -contract GovProxyAdmin is GovernanceVote { +contract GovProxyAdmin is GovernanceVote, TimelockController { + //bytes4(keccak256(bytes('upgradeToAndCall(address,bytes)'))) + bytes4 public constant UPGRADE_SELECTOR = 0x4f1ef286; + + /** + * @dev This constructor does not affect the deployment code in the genesis file because we use GovProxyAdmin as a pre-deployment contract. + * This constructor is only there because the inheritance of TimelockController requires a constructor to compile properly. + */ + constructor( + uint256 minDelay, + address[] memory proposers, + address[] memory executors, + address admin + ) TimelockController(minDelay, proposers, executors, admin) {} + /** - * @dev Upgrades the implementation in proxy to `newImplementation`, and - * subsequently executes the function call encoded in `data`. See - * {UUPSUpgradeable-upgradeToAndCall}. + * @dev Schedule an operation that upgrades `proxy` to `newImplementation` and calls a function on the new implementation. * * Requirements: * + * - need voting pass * - This contract must be the admin of `proxy`. */ - function upgradeAndCall( + function scheduleUpgrade( GovProxyUpgradeable proxy, address newImplementation, bytes memory data @@ -34,6 +48,34 @@ contract GovProxyAdmin is GovernanceVote { keccak256(abi.encode(proxy, newImplementation, data)) ) { - proxy.upgradeToAndCall{value: msg.value}(newImplementation, data); + this.schedule( + address(proxy), + msg.value, + abi.encodeWithSelector(UPGRADE_SELECTOR, newImplementation, data), + 0, + 0, + getMinDelay() + ); + } + + /** + * @dev Execute an (ready) operation that upgrades `proxy` to `implementation` and calls a function on the new implementation. + * + * Requirements: + * + * - This contract must be the admin of `proxy`. + */ + function executeUpgrade( + GovProxyUpgradeable proxy, + address newImplementation, + bytes memory data + ) public payable { + this.execute( + address(proxy), + msg.value, + abi.encodeWithSelector(UPGRADE_SELECTOR, newImplementation, data), + 0, + 0 + ); } } diff --git a/privnet/four/genesis_privnet.json b/privnet/four/genesis_privnet.json index ecc6de7c40..7285516181 100644 --- a/privnet/four/genesis_privnet.json +++ b/privnet/four/genesis_privnet.json @@ -46,7 +46,14 @@ }, "0x1212000000000000000000000000000000000000": { "balance": "0", - "code": "0x608060405260043610610033575f3560e01c8063701b70ac1461003757806389dc5c841461006b5780639623609d1461009e575b5f80fd5b348015610042575f80fd5b5061005661005136600461051a565b6100b3565b60405190151581526020015b60405180910390f35b348015610076575f80fd5b50610086600361090960911b0181565b6040516001600160a01b039091168152602001610062565b6100b16100ac366004610581565b610179565b005b5f80600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156100f8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261011f9190810190610634565b90505f5b81518110156101705781818151811061013e5761013e6106e1565b60200260200101516001600160a01b0316846001600160a01b031603610168575060019392505050565b600101610123565b505f9392505050565b7fe739b9109d83c1c6d0d640fe9ed476fc5862a6de5483b00678a3fffa7a2be2f68383836040516020016101af93929190610738565b604051602081830303815290604052805190602001206101ce336100b3565b61020a5760405162461bcd60e51b81526020600482015260096024820152682737ba1026b4b732b960b91b604482015260640160405180910390fd5b61021482826102d1565b61021e828261032e565b156102ca5760405163278f794360e11b81526001600160a01b03861690634f1ef286903490610253908890889060040161076c565b5f604051808303818588803b15801561026a575f80fd5b505af115801561027c573d5f803e3d5ffd5b505060408051868152602081018690527ff5aa3d6492eaf1a4d6787c5bd36e8ec61c245d4af2fd1fd387e387a50de9f8c594500191506102b99050565b60405180910390a16102ca82610436565b5050505050565b5f828152602081815260408083203380855290835292819020849055805192835290820184905281018290527f61699483e2a58589628399a22e34da872b583143ab99b3245ba6dacf4974d2e39060600160405180910390a15050565b5f80600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610373573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261039a9190810190610634565b90505f805b825181101561040f57845f808881526020019081526020015f205f8584815181106103cc576103cc6106e1565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054036104075781610403816107ab565b9250505b60010161039f565b5060028251600161042091906107c3565b61042a91906107d6565b11159150505b92915050565b5f600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561047a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104a19190810190610634565b90505f5b81518110156104fe575f808481526020019081526020015f205f8383815181106104d1576104d16106e1565b6020908102919091018101516001600160a01b031682528101919091526040015f908120556001016104a5565b505050565b6001600160a01b0381168114610517575f80fd5b50565b5f6020828403121561052a575f80fd5b813561053581610503565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105795761057961053c565b604052919050565b5f805f60608486031215610593575f80fd5b833561059e81610503565b92506020848101356105af81610503565b9250604085013567ffffffffffffffff808211156105cb575f80fd5b818701915087601f8301126105de575f80fd5b8135818111156105f0576105f061053c565b610602601f8201601f19168501610550565b91508082528884828501011115610617575f80fd5b80848401858401375f848284010152508093505050509250925092565b5f6020808385031215610645575f80fd5b825167ffffffffffffffff8082111561065c575f80fd5b818501915085601f83011261066f575f80fd5b8151818111156106815761068161053c565b8060051b9150610692848301610550565b81815291830184019184810190888411156106ab575f80fd5b938501935b838510156106d557845192506106c583610503565b82825293850193908501906106b0565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f81518084525f5b81811015610719576020818501810151868301820152016106fd565b505f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038481168252831660208201526060604082018190525f90610763908301846106f5565b95945050505050565b6001600160a01b03831681526040602082018190525f9061078f908301846106f5565b949350505050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016107bc576107bc610797565b5060010190565b8082018082111561043057610430610797565b5f826107f057634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212208b5abf9068d280c8882fefb135628450824597b22a5188a2b2be9cc20531f25064736f6c63430008180033" + "code": "0x6080604052600436106101e75760003560e01c80638065657f11610102578063bc197c8111610095578063d547741f11610064578063d547741f1461063e578063e38335e51461065e578063f23a6e6114610671578063f27a0c921461069d57600080fd5b8063bc197c81146105b2578063c4d252f5146105de578063c6abe97f146105fe578063d45c44351461061157600080fd5b8063a217fddf116100d1578063a217fddf14610509578063a5257a1d1461051e578063b08e51c01461055e578063b1c5f4271461059257600080fd5b80638065657f1461044f5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104c357600080fd5b80632f2ff15d1161017a57806364d623531161014957806364d62353146103d45780636a994e10146103f45780636dbda217146104075780637958004c1461042257600080fd5b80632f2ff15d1461035457806331d507501461037457806336568abe14610394578063584b153e146103b457600080fd5b806313bc9f20116101b657806313bc9f201461029f578063150b7a02146102bf578063248a9ca3146103035780632ab0f5291461033457600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a578063134008d31461028c57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611892565b6106b2565b005b34801561022157600080fd5b50610235610230366004611909565b610788565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061027e7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610241565b61021361029a366004611933565b610799565b3480156102ab57600080fd5b506102356102ba3660046119a1565b610891565b3480156102cb57600080fd5b506102ea6102da366004611a71565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561030f57600080fd5b5061027e61031e3660046119a1565b6000908152600160208190526040909120015490565b34801561034057600080fd5b5061023561034f3660046119a1565b6108b7565b34801561036057600080fd5b5061021361036f366004611add565b6108c0565b34801561038057600080fd5b5061023561038f3660046119a1565b6108ec565b3480156103a057600080fd5b506102136103af366004611add565b610911565b3480156103c057600080fd5b506102356103cf3660046119a1565b610949565b3480156103e057600080fd5b506102136103ef3660046119a1565b61098f565b610213610402366004611b0d565b610a02565b34801561041357600080fd5b506102ea63278f794360e11b81565b34801561042e57600080fd5b5061044261043d3660046119a1565b610c1c565b6040516102419190611b85565b34801561045b57600080fd5b5061027e61046a366004611933565b610c67565b34801561047b57600080fd5b5061021361048a366004611bf2565b610ca6565b34801561049b57600080fd5b5061027e7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b3480156104cf57600080fd5b506102356104de366004611add565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561051557600080fd5b5061027e600081565b34801561052a57600080fd5b5061054673121200000000000000000000000000000000000381565b6040516001600160a01b039091168152602001610241565b34801561056a57600080fd5b5061027e7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b34801561059e57600080fd5b5061027e6105ad366004611ca4565b610e34565b3480156105be57600080fd5b506102ea6105cd366004611de0565b63bc197c8160e01b95945050505050565b3480156105ea57600080fd5b506102136105f93660046119a1565b610e79565b61021361060c366004611b0d565b610f24565b34801561061d57600080fd5b5061027e61062c3660046119a1565b60009081526002602052604090205490565b34801561064a57600080fd5b50610213610659366004611add565b610fd3565b61021361066c366004611ca4565b610ff9565b34801561067d57600080fd5b506102ea61068c366004611e8e565b63f23a6e6160e01b95945050505050565b3480156106a957600080fd5b5060035461027e565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16106dc816111b7565b60006106ec898989898989610c67565b90506106f881846111c4565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161073496959493929190611f20565b60405180910390a3831561077d57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d03878560405161077491815260200190565b60405180910390a25b505050505050505050565b600061079382611258565b92915050565b600080527fc9ee83ecf8e561e5df8e9e3a8d108a689296832fb5d541ca3c450b10eaabf8e16020527fc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff1661081657610816813361127d565b6000610826888888888888610c67565b905061083281856112d6565b61083e88888888611324565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516108769493929190611f5e565b60405180910390a361088781611393565b5050505050505050565b600060025b61089f83610c1c565b60038111156108b0576108b0611b6f565b1492915050565b60006003610896565b600082815260016020819052604090912001546108dc816111b7565b6108e683836113bf565b50505050565b6000806108f883610c1c565b600381111561090957610909611b6f565b141592915050565b6001600160a01b038116331461093a5760405163334bd91960e11b815260040160405180910390fd5b6109448282611452565b505050565b60008061095583610c1c565b9050600181600381111561096b5761096b611b6f565b14806109885750600281600381111561098657610986611b6f565b145b9392505050565b333081146109c05760405163e2850c5960e01b81526001600160a01b03821660048201526024015b60405180910390fd5b60035460408051918252602082018490527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150600355565b6040517fe739b9109d83c1c6d0d640fe9ed476fc5862a6de5483b00678a3fffa7a2be2f690610a3990859085908590602001611fd7565b6040516020818303038152906040528051906020012060007312120000000000000000000000000000000000036001600160a01b0316631633da6e6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610acb919081019061200c565b9050610ad781336114d9565b610af4576040516365004e0b60e01b815260040160405180910390fd5b610afe8383611538565b610b098383836115e4565b610b135750610c15565b827ff5aa3d6492eaf1a4d6787c5bd36e8ec61c245d4af2fd1fd387e387a50de9f8c583604051610b4591815260200190565b60405180910390a2610b5683611681565b306001600160a01b03166301d5062a8734634f1ef28660e01b8989604051602401610b829291906120a6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152600080610bc060035490565b6040518763ffffffff1660e01b8152600401610be1969594939291906120d0565b600060405180830381600087803b158015610bfb57600080fd5b505af1158015610c0f573d6000803e3d6000fd5b50505050505b5050505050565b60008181526002602052604081205480600003610c3c5750600092915050565b60018103610c4d5750600392915050565b42811115610c5e5750600192915050565b50600292915050565b6000868686868686604051602001610c8496959493929190611f20565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610cd0816111b7565b8887141580610cdf5750888514155b15610d11576040516001624fcdef60e01b03198152600481018a905260248101869052604481018890526064016109b7565b6000610d238b8b8b8b8b8b8b8b610e34565b9050610d2f81846111c4565b60005b8a811015610de55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610d6f57610d6f612116565b9050602002016020810190610d84919061212c565b8d8d86818110610d9657610d96612116565b905060200201358c8c87818110610daf57610daf612116565b9050602002810190610dc19190612149565b8c8b604051610dd596959493929190611f20565b60405180910390a3600101610d32565b508315610e2757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610e1e91815260200190565b60405180910390a25b5050505050505050505050565b60008888888888888888604051602001610e55989796959493929190612227565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610ea3816111b7565b610eac82610949565b610ee85781610ebb6002611765565b610ec56001611765565b604051635ead8eb560e01b815260048101939093521760248201526044016109b7565b6000828152600260205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b306001600160a01b031663134008d38434634f1ef28660e01b8686604051602401610f509291906120a6565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e086901b9092168252610f9c93929160009081906004016122e3565b600060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b50505050505050565b60008281526001602081905260409091200154610fef816111b7565b6108e68383611452565b600080527fc9ee83ecf8e561e5df8e9e3a8d108a689296832fb5d541ca3c450b10eaabf8e16020527fc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff1661107657611076813361127d565b87861415806110855750878414155b156110b7576040516001624fcdef60e01b031981526004810189905260248101859052604481018790526064016109b7565b60006110c98a8a8a8a8a8a8a8a610e34565b90506110d581856112d6565b60005b898110156111ad5760008b8b838181106110f4576110f4612116565b9050602002016020810190611109919061212c565b905060008a8a8481811061111f5761111f612116565b9050602002013590503660008a8a8681811061113d5761113d612116565b905060200281019061114f9190612149565b9150915061115f84848484611324565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58868686866040516111969493929190611f5e565b60405180910390a3505050508060010190506110d8565b50610c0f81611393565b6111c1813361127d565b50565b6111cd826108ec565b156111ff57816111dd6000611765565b604051635ead8eb560e01b8152600481019290925260248201526044016109b7565b600061120a60035490565b90508082101561123757604051635433660960e01b815260048101839052602481018290526044016109b7565b6112418242612335565b600093845260026020526040909320929092555050565b60006001600160e01b03198216630271189760e51b1480610793575061079382611788565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166112d25760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109b7565b5050565b6112df82610891565b6112ee57816111dd6002611765565b80158015906113035750611301816108b7565b155b156112d25760405163121534c360e31b8152600481018290526024016109b7565b600080856001600160a01b0316858585604051611342929190612348565b60006040518083038185875af1925050503d806000811461137f576040519150601f19603f3d011682016040523d82523d6000602084013e611384565b606091505b5091509150610fca82826117bd565b61139c81610891565b6113ab57806111dd6002611765565b600090815260026020526040902060019055565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff1661144a5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610793565b506000610793565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff161561144a5760008381526001602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610793565b8151600090815b8181101561152d578481815181106114fa576114fa612116565b60200260200101516001600160a01b0316846001600160a01b03160361152557600192505050610793565b6001016114e0565b506000949350505050565b6000828152602081815260408083203384529091529020546115915760008281526020818152604082206001908101805491820181558352912001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b6000828152602081815260408083203380855290835292819020849055518381528492917f61699483e2a58589628399a22e34da872b583143ab99b3245ba6dacf4974d2e3910160405180910390a35050565b60008060005b835181101561165c576000868152602081905260408120855187929087908590811061161857611618612116565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403611654578161165081612358565b9250505b6001016115ea565b5060028351600161166d9190612335565b6116779190612371565b1115949350505050565b600081815260208181526040808320600101805482518185028101850190935280835291929091908301828280156116e257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116c4575b5050505050905060005b8151811015611748576000838152602081905260408120835190919084908490811061171a5761171a612116565b6020908102919091018101516001600160a01b031682528101919091526040016000908120556001016116ec565b506000828152602081905260408120906108e66001830182611802565b600081600381111561177957611779611b6f565b600160ff919091161b92915050565b60006001600160e01b03198216637965db0b60e01b148061079357506301ffc9a760e01b6001600160e01b0319831614610793565b6060826117d2576117cd826117d9565b610793565b5080610793565b8051156117e95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50805460008255906000526020600020908101906111c191905b80821115611830576000815560010161181c565b5090565b6001600160a01b03811681146111c157600080fd5b60008083601f84011261185b57600080fd5b50813567ffffffffffffffff81111561187357600080fd5b60208301915083602082850101111561188b57600080fd5b9250929050565b600080600080600080600060c0888a0312156118ad57600080fd5b87356118b881611834565b965060208801359550604088013567ffffffffffffffff8111156118db57600080fd5b6118e78a828b01611849565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561191b57600080fd5b81356001600160e01b03198116811461098857600080fd5b60008060008060008060a0878903121561194c57600080fd5b863561195781611834565b955060208701359450604087013567ffffffffffffffff81111561197a57600080fd5b61198689828a01611849565b979a9699509760608101359660809091013595509350505050565b6000602082840312156119b357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156119f9576119f96119ba565b604052919050565b600082601f830112611a1257600080fd5b813567ffffffffffffffff811115611a2c57611a2c6119ba565b611a3f601f8201601f19166020016119d0565b818152846020838601011115611a5457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611a8757600080fd5b8435611a9281611834565b93506020850135611aa281611834565b925060408501359150606085013567ffffffffffffffff811115611ac557600080fd5b611ad187828801611a01565b91505092959194509250565b60008060408385031215611af057600080fd5b823591506020830135611b0281611834565b809150509250929050565b600080600060608486031215611b2257600080fd5b8335611b2d81611834565b92506020840135611b3d81611834565b9150604084013567ffffffffffffffff811115611b5957600080fd5b611b6586828701611a01565b9150509250925092565b634e487b7160e01b600052602160045260246000fd5b6020810160048310611ba757634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f840112611bbf57600080fd5b50813567ffffffffffffffff811115611bd757600080fd5b6020830191508360208260051b850101111561188b57600080fd5b600080600080600080600080600060c08a8c031215611c1057600080fd5b893567ffffffffffffffff80821115611c2857600080fd5b611c348d838e01611bad565b909b50995060208c0135915080821115611c4d57600080fd5b611c598d838e01611bad565b909950975060408c0135915080821115611c7257600080fd5b50611c7f8c828d01611bad565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b031215611cc057600080fd5b883567ffffffffffffffff80821115611cd857600080fd5b611ce48c838d01611bad565b909a50985060208b0135915080821115611cfd57600080fd5b611d098c838d01611bad565b909850965060408b0135915080821115611d2257600080fd5b50611d2f8b828c01611bad565b999c989b509699959896976060870135966080013595509350505050565b600067ffffffffffffffff821115611d6757611d676119ba565b5060051b60200190565b600082601f830112611d8257600080fd5b81356020611d97611d9283611d4d565b6119d0565b8083825260208201915060208460051b870101935086841115611db957600080fd5b602086015b84811015611dd55780358352918301918301611dbe565b509695505050505050565b600080600080600060a08688031215611df857600080fd5b8535611e0381611834565b94506020860135611e1381611834565b9350604086013567ffffffffffffffff80821115611e3057600080fd5b611e3c89838a01611d71565b94506060880135915080821115611e5257600080fd5b611e5e89838a01611d71565b93506080880135915080821115611e7457600080fd5b50611e8188828901611a01565b9150509295509295909350565b600080600080600060a08688031215611ea657600080fd5b8535611eb181611834565b94506020860135611ec181611834565b93506040860135925060608601359150608086013567ffffffffffffffff811115611eeb57600080fd5b611e8188828901611a01565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038716815285602082015260a060408201526000611f4960a083018688611ef7565b60608301949094525060800152949350505050565b6001600160a01b0385168152836020820152606060408201526000611f87606083018486611ef7565b9695505050505050565b6000815180845260005b81811015611fb757602081850181015186830182015201611f9b565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160a01b038086168352808516602084015250606060408301526120036060830184611f91565b95945050505050565b6000602080838503121561201f57600080fd5b825167ffffffffffffffff81111561203657600080fd5b8301601f8101851361204757600080fd5b8051612055611d9282611d4d565b81815260059190911b8201830190838101908783111561207457600080fd5b928401925b8284101561209b57835161208c81611834565b82529284019290840190612079565b979650505050505050565b6001600160a01b03831681526040602082015260006120c86040830184611f91565b949350505050565b6001600160a01b038716815285602082015260c0604082015260006120f860c0830187611f91565b606083019590955250608081019290925260a0909101529392505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213e57600080fd5b813561098881611834565b6000808335601e1984360301811261216057600080fd5b83018035915067ffffffffffffffff82111561217b57600080fd5b60200191503681900382131561188b57600080fd5b6000838385526020808601955060208560051b8301018460005b8781101561221a57848303601f19018952813536889003601e190181126121d057600080fd5b8701848101903567ffffffffffffffff8111156121ec57600080fd5b8036038213156121fb57600080fd5b612206858284611ef7565b9a86019a94505050908301906001016121aa565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561226a57823561224d81611834565b6001600160a01b031682526020928301929091019060010161223a565b5083810360208501528881527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8911156122a357600080fd5b8860051b9150818a602083013701828103602090810160408501526122cb9082018789612190565b60608401959095525050608001529695505050505050565b6001600160a01b038616815284602082015260a06040820152600061230b60a0830186611f91565b606083019490945250608001529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107935761079361231f565b8183823760009101908152919050565b60006001820161236a5761236a61231f565b5060010190565b60008261238e57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212206811c99f0ec90c4c6cd4d886c37f9cd4efa15d7727aac1a9091ebed1a42e8d6864736f6c63430008190033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x02a300", + "0x26c3468aa299fbffbefa8234f58df42e8e0f89b49d653a057410fe8a2dca75a6": "0x01", + "0x679c2b4cecc1570ce0a132b9c632e76ef651a18754315da3fb574383826fe941": "0x01", + "0xc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf": "0x01", + "0x1e9a90c8ff5b9c8bf06956466dd70bf9e30099f30408e9d0645ffbab9ba0f771": "0x01" + } }, "0x1212000000000000000000000000000000000001": { "balance": "0", diff --git a/privnet/seven/genesis_privnet.json b/privnet/seven/genesis_privnet.json index 6825f4f085..c85013548e 100644 --- a/privnet/seven/genesis_privnet.json +++ b/privnet/seven/genesis_privnet.json @@ -37,7 +37,14 @@ }, "0x1212000000000000000000000000000000000000": { "balance": "0", - "code": "0x608060405260043610610033575f3560e01c8063701b70ac1461003757806389dc5c841461006b5780639623609d1461009e575b5f80fd5b348015610042575f80fd5b5061005661005136600461051a565b6100b3565b60405190151581526020015b60405180910390f35b348015610076575f80fd5b50610086600361090960911b0181565b6040516001600160a01b039091168152602001610062565b6100b16100ac366004610581565b610179565b005b5f80600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156100f8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261011f9190810190610634565b90505f5b81518110156101705781818151811061013e5761013e6106e1565b60200260200101516001600160a01b0316846001600160a01b031603610168575060019392505050565b600101610123565b505f9392505050565b7fe739b9109d83c1c6d0d640fe9ed476fc5862a6de5483b00678a3fffa7a2be2f68383836040516020016101af93929190610738565b604051602081830303815290604052805190602001206101ce336100b3565b61020a5760405162461bcd60e51b81526020600482015260096024820152682737ba1026b4b732b960b91b604482015260640160405180910390fd5b61021482826102d1565b61021e828261032e565b156102ca5760405163278f794360e11b81526001600160a01b03861690634f1ef286903490610253908890889060040161076c565b5f604051808303818588803b15801561026a575f80fd5b505af115801561027c573d5f803e3d5ffd5b505060408051868152602081018690527ff5aa3d6492eaf1a4d6787c5bd36e8ec61c245d4af2fd1fd387e387a50de9f8c594500191506102b99050565b60405180910390a16102ca82610436565b5050505050565b5f828152602081815260408083203380855290835292819020849055805192835290820184905281018290527f61699483e2a58589628399a22e34da872b583143ab99b3245ba6dacf4974d2e39060600160405180910390a15050565b5f80600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610373573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261039a9190810190610634565b90505f805b825181101561040f57845f808881526020019081526020015f205f8584815181106103cc576103cc6106e1565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054036104075781610403816107ab565b9250505b60010161039f565b5060028251600161042091906107c3565b61042a91906107d6565b11159150505b92915050565b5f600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561047a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104a19190810190610634565b90505f5b81518110156104fe575f808481526020019081526020015f205f8383815181106104d1576104d16106e1565b6020908102919091018101516001600160a01b031682528101919091526040015f908120556001016104a5565b505050565b6001600160a01b0381168114610517575f80fd5b50565b5f6020828403121561052a575f80fd5b813561053581610503565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105795761057961053c565b604052919050565b5f805f60608486031215610593575f80fd5b833561059e81610503565b92506020848101356105af81610503565b9250604085013567ffffffffffffffff808211156105cb575f80fd5b818701915087601f8301126105de575f80fd5b8135818111156105f0576105f061053c565b610602601f8201601f19168501610550565b91508082528884828501011115610617575f80fd5b80848401858401375f848284010152508093505050509250925092565b5f6020808385031215610645575f80fd5b825167ffffffffffffffff8082111561065c575f80fd5b818501915085601f83011261066f575f80fd5b8151818111156106815761068161053c565b8060051b9150610692848301610550565b81815291830184019184810190888411156106ab575f80fd5b938501935b838510156106d557845192506106c583610503565b82825293850193908501906106b0565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f81518084525f5b81811015610719576020818501810151868301820152016106fd565b505f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038481168252831660208201526060604082018190525f90610763908301846106f5565b95945050505050565b6001600160a01b03831681526040602082018190525f9061078f908301846106f5565b949350505050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016107bc576107bc610797565b5060010190565b8082018082111561043057610430610797565b5f826107f057634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212208b5abf9068d280c8882fefb135628450824597b22a5188a2b2be9cc20531f25064736f6c63430008180033" + "code": "0x6080604052600436106101e75760003560e01c80638065657f11610102578063bc197c8111610095578063d547741f11610064578063d547741f1461063e578063e38335e51461065e578063f23a6e6114610671578063f27a0c921461069d57600080fd5b8063bc197c81146105b2578063c4d252f5146105de578063c6abe97f146105fe578063d45c44351461061157600080fd5b8063a217fddf116100d1578063a217fddf14610509578063a5257a1d1461051e578063b08e51c01461055e578063b1c5f4271461059257600080fd5b80638065657f1461044f5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104c357600080fd5b80632f2ff15d1161017a57806364d623531161014957806364d62353146103d45780636a994e10146103f45780636dbda217146104075780637958004c1461042257600080fd5b80632f2ff15d1461035457806331d507501461037457806336568abe14610394578063584b153e146103b457600080fd5b806313bc9f20116101b657806313bc9f201461029f578063150b7a02146102bf578063248a9ca3146103035780632ab0f5291461033457600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a578063134008d31461028c57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611892565b6106b2565b005b34801561022157600080fd5b50610235610230366004611909565b610788565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061027e7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610241565b61021361029a366004611933565b610799565b3480156102ab57600080fd5b506102356102ba3660046119a1565b610891565b3480156102cb57600080fd5b506102ea6102da366004611a71565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561030f57600080fd5b5061027e61031e3660046119a1565b6000908152600160208190526040909120015490565b34801561034057600080fd5b5061023561034f3660046119a1565b6108b7565b34801561036057600080fd5b5061021361036f366004611add565b6108c0565b34801561038057600080fd5b5061023561038f3660046119a1565b6108ec565b3480156103a057600080fd5b506102136103af366004611add565b610911565b3480156103c057600080fd5b506102356103cf3660046119a1565b610949565b3480156103e057600080fd5b506102136103ef3660046119a1565b61098f565b610213610402366004611b0d565b610a02565b34801561041357600080fd5b506102ea63278f794360e11b81565b34801561042e57600080fd5b5061044261043d3660046119a1565b610c1c565b6040516102419190611b85565b34801561045b57600080fd5b5061027e61046a366004611933565b610c67565b34801561047b57600080fd5b5061021361048a366004611bf2565b610ca6565b34801561049b57600080fd5b5061027e7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b3480156104cf57600080fd5b506102356104de366004611add565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561051557600080fd5b5061027e600081565b34801561052a57600080fd5b5061054673121200000000000000000000000000000000000381565b6040516001600160a01b039091168152602001610241565b34801561056a57600080fd5b5061027e7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b34801561059e57600080fd5b5061027e6105ad366004611ca4565b610e34565b3480156105be57600080fd5b506102ea6105cd366004611de0565b63bc197c8160e01b95945050505050565b3480156105ea57600080fd5b506102136105f93660046119a1565b610e79565b61021361060c366004611b0d565b610f24565b34801561061d57600080fd5b5061027e61062c3660046119a1565b60009081526002602052604090205490565b34801561064a57600080fd5b50610213610659366004611add565b610fd3565b61021361066c366004611ca4565b610ff9565b34801561067d57600080fd5b506102ea61068c366004611e8e565b63f23a6e6160e01b95945050505050565b3480156106a957600080fd5b5060035461027e565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16106dc816111b7565b60006106ec898989898989610c67565b90506106f881846111c4565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161073496959493929190611f20565b60405180910390a3831561077d57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d03878560405161077491815260200190565b60405180910390a25b505050505050505050565b600061079382611258565b92915050565b600080527fc9ee83ecf8e561e5df8e9e3a8d108a689296832fb5d541ca3c450b10eaabf8e16020527fc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff1661081657610816813361127d565b6000610826888888888888610c67565b905061083281856112d6565b61083e88888888611324565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516108769493929190611f5e565b60405180910390a361088781611393565b5050505050505050565b600060025b61089f83610c1c565b60038111156108b0576108b0611b6f565b1492915050565b60006003610896565b600082815260016020819052604090912001546108dc816111b7565b6108e683836113bf565b50505050565b6000806108f883610c1c565b600381111561090957610909611b6f565b141592915050565b6001600160a01b038116331461093a5760405163334bd91960e11b815260040160405180910390fd5b6109448282611452565b505050565b60008061095583610c1c565b9050600181600381111561096b5761096b611b6f565b14806109885750600281600381111561098657610986611b6f565b145b9392505050565b333081146109c05760405163e2850c5960e01b81526001600160a01b03821660048201526024015b60405180910390fd5b60035460408051918252602082018490527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150600355565b6040517fe739b9109d83c1c6d0d640fe9ed476fc5862a6de5483b00678a3fffa7a2be2f690610a3990859085908590602001611fd7565b6040516020818303038152906040528051906020012060007312120000000000000000000000000000000000036001600160a01b0316631633da6e6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610acb919081019061200c565b9050610ad781336114d9565b610af4576040516365004e0b60e01b815260040160405180910390fd5b610afe8383611538565b610b098383836115e4565b610b135750610c15565b827ff5aa3d6492eaf1a4d6787c5bd36e8ec61c245d4af2fd1fd387e387a50de9f8c583604051610b4591815260200190565b60405180910390a2610b5683611681565b306001600160a01b03166301d5062a8734634f1ef28660e01b8989604051602401610b829291906120a6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152600080610bc060035490565b6040518763ffffffff1660e01b8152600401610be1969594939291906120d0565b600060405180830381600087803b158015610bfb57600080fd5b505af1158015610c0f573d6000803e3d6000fd5b50505050505b5050505050565b60008181526002602052604081205480600003610c3c5750600092915050565b60018103610c4d5750600392915050565b42811115610c5e5750600192915050565b50600292915050565b6000868686868686604051602001610c8496959493929190611f20565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610cd0816111b7565b8887141580610cdf5750888514155b15610d11576040516001624fcdef60e01b03198152600481018a905260248101869052604481018890526064016109b7565b6000610d238b8b8b8b8b8b8b8b610e34565b9050610d2f81846111c4565b60005b8a811015610de55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610d6f57610d6f612116565b9050602002016020810190610d84919061212c565b8d8d86818110610d9657610d96612116565b905060200201358c8c87818110610daf57610daf612116565b9050602002810190610dc19190612149565b8c8b604051610dd596959493929190611f20565b60405180910390a3600101610d32565b508315610e2757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610e1e91815260200190565b60405180910390a25b5050505050505050505050565b60008888888888888888604051602001610e55989796959493929190612227565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610ea3816111b7565b610eac82610949565b610ee85781610ebb6002611765565b610ec56001611765565b604051635ead8eb560e01b815260048101939093521760248201526044016109b7565b6000828152600260205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b306001600160a01b031663134008d38434634f1ef28660e01b8686604051602401610f509291906120a6565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e086901b9092168252610f9c93929160009081906004016122e3565b600060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b50505050505050565b60008281526001602081905260409091200154610fef816111b7565b6108e68383611452565b600080527fc9ee83ecf8e561e5df8e9e3a8d108a689296832fb5d541ca3c450b10eaabf8e16020527fc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff1661107657611076813361127d565b87861415806110855750878414155b156110b7576040516001624fcdef60e01b031981526004810189905260248101859052604481018790526064016109b7565b60006110c98a8a8a8a8a8a8a8a610e34565b90506110d581856112d6565b60005b898110156111ad5760008b8b838181106110f4576110f4612116565b9050602002016020810190611109919061212c565b905060008a8a8481811061111f5761111f612116565b9050602002013590503660008a8a8681811061113d5761113d612116565b905060200281019061114f9190612149565b9150915061115f84848484611324565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58868686866040516111969493929190611f5e565b60405180910390a3505050508060010190506110d8565b50610c0f81611393565b6111c1813361127d565b50565b6111cd826108ec565b156111ff57816111dd6000611765565b604051635ead8eb560e01b8152600481019290925260248201526044016109b7565b600061120a60035490565b90508082101561123757604051635433660960e01b815260048101839052602481018290526044016109b7565b6112418242612335565b600093845260026020526040909320929092555050565b60006001600160e01b03198216630271189760e51b1480610793575061079382611788565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166112d25760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109b7565b5050565b6112df82610891565b6112ee57816111dd6002611765565b80158015906113035750611301816108b7565b155b156112d25760405163121534c360e31b8152600481018290526024016109b7565b600080856001600160a01b0316858585604051611342929190612348565b60006040518083038185875af1925050503d806000811461137f576040519150601f19603f3d011682016040523d82523d6000602084013e611384565b606091505b5091509150610fca82826117bd565b61139c81610891565b6113ab57806111dd6002611765565b600090815260026020526040902060019055565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff1661144a5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610793565b506000610793565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff161561144a5760008381526001602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610793565b8151600090815b8181101561152d578481815181106114fa576114fa612116565b60200260200101516001600160a01b0316846001600160a01b03160361152557600192505050610793565b6001016114e0565b506000949350505050565b6000828152602081815260408083203384529091529020546115915760008281526020818152604082206001908101805491820181558352912001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b6000828152602081815260408083203380855290835292819020849055518381528492917f61699483e2a58589628399a22e34da872b583143ab99b3245ba6dacf4974d2e3910160405180910390a35050565b60008060005b835181101561165c576000868152602081905260408120855187929087908590811061161857611618612116565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403611654578161165081612358565b9250505b6001016115ea565b5060028351600161166d9190612335565b6116779190612371565b1115949350505050565b600081815260208181526040808320600101805482518185028101850190935280835291929091908301828280156116e257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116c4575b5050505050905060005b8151811015611748576000838152602081905260408120835190919084908490811061171a5761171a612116565b6020908102919091018101516001600160a01b031682528101919091526040016000908120556001016116ec565b506000828152602081905260408120906108e66001830182611802565b600081600381111561177957611779611b6f565b600160ff919091161b92915050565b60006001600160e01b03198216637965db0b60e01b148061079357506301ffc9a760e01b6001600160e01b0319831614610793565b6060826117d2576117cd826117d9565b610793565b5080610793565b8051156117e95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50805460008255906000526020600020908101906111c191905b80821115611830576000815560010161181c565b5090565b6001600160a01b03811681146111c157600080fd5b60008083601f84011261185b57600080fd5b50813567ffffffffffffffff81111561187357600080fd5b60208301915083602082850101111561188b57600080fd5b9250929050565b600080600080600080600060c0888a0312156118ad57600080fd5b87356118b881611834565b965060208801359550604088013567ffffffffffffffff8111156118db57600080fd5b6118e78a828b01611849565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561191b57600080fd5b81356001600160e01b03198116811461098857600080fd5b60008060008060008060a0878903121561194c57600080fd5b863561195781611834565b955060208701359450604087013567ffffffffffffffff81111561197a57600080fd5b61198689828a01611849565b979a9699509760608101359660809091013595509350505050565b6000602082840312156119b357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156119f9576119f96119ba565b604052919050565b600082601f830112611a1257600080fd5b813567ffffffffffffffff811115611a2c57611a2c6119ba565b611a3f601f8201601f19166020016119d0565b818152846020838601011115611a5457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611a8757600080fd5b8435611a9281611834565b93506020850135611aa281611834565b925060408501359150606085013567ffffffffffffffff811115611ac557600080fd5b611ad187828801611a01565b91505092959194509250565b60008060408385031215611af057600080fd5b823591506020830135611b0281611834565b809150509250929050565b600080600060608486031215611b2257600080fd5b8335611b2d81611834565b92506020840135611b3d81611834565b9150604084013567ffffffffffffffff811115611b5957600080fd5b611b6586828701611a01565b9150509250925092565b634e487b7160e01b600052602160045260246000fd5b6020810160048310611ba757634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f840112611bbf57600080fd5b50813567ffffffffffffffff811115611bd757600080fd5b6020830191508360208260051b850101111561188b57600080fd5b600080600080600080600080600060c08a8c031215611c1057600080fd5b893567ffffffffffffffff80821115611c2857600080fd5b611c348d838e01611bad565b909b50995060208c0135915080821115611c4d57600080fd5b611c598d838e01611bad565b909950975060408c0135915080821115611c7257600080fd5b50611c7f8c828d01611bad565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b031215611cc057600080fd5b883567ffffffffffffffff80821115611cd857600080fd5b611ce48c838d01611bad565b909a50985060208b0135915080821115611cfd57600080fd5b611d098c838d01611bad565b909850965060408b0135915080821115611d2257600080fd5b50611d2f8b828c01611bad565b999c989b509699959896976060870135966080013595509350505050565b600067ffffffffffffffff821115611d6757611d676119ba565b5060051b60200190565b600082601f830112611d8257600080fd5b81356020611d97611d9283611d4d565b6119d0565b8083825260208201915060208460051b870101935086841115611db957600080fd5b602086015b84811015611dd55780358352918301918301611dbe565b509695505050505050565b600080600080600060a08688031215611df857600080fd5b8535611e0381611834565b94506020860135611e1381611834565b9350604086013567ffffffffffffffff80821115611e3057600080fd5b611e3c89838a01611d71565b94506060880135915080821115611e5257600080fd5b611e5e89838a01611d71565b93506080880135915080821115611e7457600080fd5b50611e8188828901611a01565b9150509295509295909350565b600080600080600060a08688031215611ea657600080fd5b8535611eb181611834565b94506020860135611ec181611834565b93506040860135925060608601359150608086013567ffffffffffffffff811115611eeb57600080fd5b611e8188828901611a01565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038716815285602082015260a060408201526000611f4960a083018688611ef7565b60608301949094525060800152949350505050565b6001600160a01b0385168152836020820152606060408201526000611f87606083018486611ef7565b9695505050505050565b6000815180845260005b81811015611fb757602081850181015186830182015201611f9b565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160a01b038086168352808516602084015250606060408301526120036060830184611f91565b95945050505050565b6000602080838503121561201f57600080fd5b825167ffffffffffffffff81111561203657600080fd5b8301601f8101851361204757600080fd5b8051612055611d9282611d4d565b81815260059190911b8201830190838101908783111561207457600080fd5b928401925b8284101561209b57835161208c81611834565b82529284019290840190612079565b979650505050505050565b6001600160a01b03831681526040602082015260006120c86040830184611f91565b949350505050565b6001600160a01b038716815285602082015260c0604082015260006120f860c0830187611f91565b606083019590955250608081019290925260a0909101529392505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213e57600080fd5b813561098881611834565b6000808335601e1984360301811261216057600080fd5b83018035915067ffffffffffffffff82111561217b57600080fd5b60200191503681900382131561188b57600080fd5b6000838385526020808601955060208560051b8301018460005b8781101561221a57848303601f19018952813536889003601e190181126121d057600080fd5b8701848101903567ffffffffffffffff8111156121ec57600080fd5b8036038213156121fb57600080fd5b612206858284611ef7565b9a86019a94505050908301906001016121aa565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561226a57823561224d81611834565b6001600160a01b031682526020928301929091019060010161223a565b5083810360208501528881527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8911156122a357600080fd5b8860051b9150818a602083013701828103602090810160408501526122cb9082018789612190565b60608401959095525050608001529695505050505050565b6001600160a01b038616815284602082015260a06040820152600061230b60a0830186611f91565b606083019490945250608001529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107935761079361231f565b8183823760009101908152919050565b60006001820161236a5761236a61231f565b5060010190565b60008261238e57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212206811c99f0ec90c4c6cd4d886c37f9cd4efa15d7727aac1a9091ebed1a42e8d6864736f6c63430008190033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x02a300", + "0x26c3468aa299fbffbefa8234f58df42e8e0f89b49d653a057410fe8a2dca75a6": "0x01", + "0x679c2b4cecc1570ce0a132b9c632e76ef651a18754315da3fb574383826fe941": "0x01", + "0xc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf": "0x01", + "0x1e9a90c8ff5b9c8bf06956466dd70bf9e30099f30408e9d0645ffbab9ba0f771": "0x01" + } }, "0x1212000000000000000000000000000000000001": { "balance": "0", diff --git a/privnet/single/genesis_privnet.json b/privnet/single/genesis_privnet.json index cc861ebe3f..c559798417 100644 --- a/privnet/single/genesis_privnet.json +++ b/privnet/single/genesis_privnet.json @@ -34,7 +34,14 @@ }, "0x1212000000000000000000000000000000000000": { "balance": "0", - "code": "0x608060405260043610610033575f3560e01c8063701b70ac1461003757806389dc5c841461006b5780639623609d1461009e575b5f80fd5b348015610042575f80fd5b5061005661005136600461051a565b6100b3565b60405190151581526020015b60405180910390f35b348015610076575f80fd5b50610086600361090960911b0181565b6040516001600160a01b039091168152602001610062565b6100b16100ac366004610581565b610179565b005b5f80600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156100f8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261011f9190810190610634565b90505f5b81518110156101705781818151811061013e5761013e6106e1565b60200260200101516001600160a01b0316846001600160a01b031603610168575060019392505050565b600101610123565b505f9392505050565b7fe739b9109d83c1c6d0d640fe9ed476fc5862a6de5483b00678a3fffa7a2be2f68383836040516020016101af93929190610738565b604051602081830303815290604052805190602001206101ce336100b3565b61020a5760405162461bcd60e51b81526020600482015260096024820152682737ba1026b4b732b960b91b604482015260640160405180910390fd5b61021482826102d1565b61021e828261032e565b156102ca5760405163278f794360e11b81526001600160a01b03861690634f1ef286903490610253908890889060040161076c565b5f604051808303818588803b15801561026a575f80fd5b505af115801561027c573d5f803e3d5ffd5b505060408051868152602081018690527ff5aa3d6492eaf1a4d6787c5bd36e8ec61c245d4af2fd1fd387e387a50de9f8c594500191506102b99050565b60405180910390a16102ca82610436565b5050505050565b5f828152602081815260408083203380855290835292819020849055805192835290820184905281018290527f61699483e2a58589628399a22e34da872b583143ab99b3245ba6dacf4974d2e39060600160405180910390a15050565b5f80600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610373573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261039a9190810190610634565b90505f805b825181101561040f57845f808881526020019081526020015f205f8584815181106103cc576103cc6106e1565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054036104075781610403816107ab565b9250505b60010161039f565b5060028251600161042091906107c3565b61042a91906107d6565b11159150505b92915050565b5f600361090960911b016001600160a01b0316631633da6e6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561047a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104a19190810190610634565b90505f5b81518110156104fe575f808481526020019081526020015f205f8383815181106104d1576104d16106e1565b6020908102919091018101516001600160a01b031682528101919091526040015f908120556001016104a5565b505050565b6001600160a01b0381168114610517575f80fd5b50565b5f6020828403121561052a575f80fd5b813561053581610503565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105795761057961053c565b604052919050565b5f805f60608486031215610593575f80fd5b833561059e81610503565b92506020848101356105af81610503565b9250604085013567ffffffffffffffff808211156105cb575f80fd5b818701915087601f8301126105de575f80fd5b8135818111156105f0576105f061053c565b610602601f8201601f19168501610550565b91508082528884828501011115610617575f80fd5b80848401858401375f848284010152508093505050509250925092565b5f6020808385031215610645575f80fd5b825167ffffffffffffffff8082111561065c575f80fd5b818501915085601f83011261066f575f80fd5b8151818111156106815761068161053c565b8060051b9150610692848301610550565b81815291830184019184810190888411156106ab575f80fd5b938501935b838510156106d557845192506106c583610503565b82825293850193908501906106b0565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f81518084525f5b81811015610719576020818501810151868301820152016106fd565b505f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038481168252831660208201526060604082018190525f90610763908301846106f5565b95945050505050565b6001600160a01b03831681526040602082018190525f9061078f908301846106f5565b949350505050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016107bc576107bc610797565b5060010190565b8082018082111561043057610430610797565b5f826107f057634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212208b5abf9068d280c8882fefb135628450824597b22a5188a2b2be9cc20531f25064736f6c63430008180033" + "code": "0x6080604052600436106101e75760003560e01c80638065657f11610102578063bc197c8111610095578063d547741f11610064578063d547741f1461063e578063e38335e51461065e578063f23a6e6114610671578063f27a0c921461069d57600080fd5b8063bc197c81146105b2578063c4d252f5146105de578063c6abe97f146105fe578063d45c44351461061157600080fd5b8063a217fddf116100d1578063a217fddf14610509578063a5257a1d1461051e578063b08e51c01461055e578063b1c5f4271461059257600080fd5b80638065657f1461044f5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104c357600080fd5b80632f2ff15d1161017a57806364d623531161014957806364d62353146103d45780636a994e10146103f45780636dbda217146104075780637958004c1461042257600080fd5b80632f2ff15d1461035457806331d507501461037457806336568abe14610394578063584b153e146103b457600080fd5b806313bc9f20116101b657806313bc9f201461029f578063150b7a02146102bf578063248a9ca3146103035780632ab0f5291461033457600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a578063134008d31461028c57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611892565b6106b2565b005b34801561022157600080fd5b50610235610230366004611909565b610788565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061027e7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610241565b61021361029a366004611933565b610799565b3480156102ab57600080fd5b506102356102ba3660046119a1565b610891565b3480156102cb57600080fd5b506102ea6102da366004611a71565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561030f57600080fd5b5061027e61031e3660046119a1565b6000908152600160208190526040909120015490565b34801561034057600080fd5b5061023561034f3660046119a1565b6108b7565b34801561036057600080fd5b5061021361036f366004611add565b6108c0565b34801561038057600080fd5b5061023561038f3660046119a1565b6108ec565b3480156103a057600080fd5b506102136103af366004611add565b610911565b3480156103c057600080fd5b506102356103cf3660046119a1565b610949565b3480156103e057600080fd5b506102136103ef3660046119a1565b61098f565b610213610402366004611b0d565b610a02565b34801561041357600080fd5b506102ea63278f794360e11b81565b34801561042e57600080fd5b5061044261043d3660046119a1565b610c1c565b6040516102419190611b85565b34801561045b57600080fd5b5061027e61046a366004611933565b610c67565b34801561047b57600080fd5b5061021361048a366004611bf2565b610ca6565b34801561049b57600080fd5b5061027e7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b3480156104cf57600080fd5b506102356104de366004611add565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561051557600080fd5b5061027e600081565b34801561052a57600080fd5b5061054673121200000000000000000000000000000000000381565b6040516001600160a01b039091168152602001610241565b34801561056a57600080fd5b5061027e7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b34801561059e57600080fd5b5061027e6105ad366004611ca4565b610e34565b3480156105be57600080fd5b506102ea6105cd366004611de0565b63bc197c8160e01b95945050505050565b3480156105ea57600080fd5b506102136105f93660046119a1565b610e79565b61021361060c366004611b0d565b610f24565b34801561061d57600080fd5b5061027e61062c3660046119a1565b60009081526002602052604090205490565b34801561064a57600080fd5b50610213610659366004611add565b610fd3565b61021361066c366004611ca4565b610ff9565b34801561067d57600080fd5b506102ea61068c366004611e8e565b63f23a6e6160e01b95945050505050565b3480156106a957600080fd5b5060035461027e565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16106dc816111b7565b60006106ec898989898989610c67565b90506106f881846111c4565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161073496959493929190611f20565b60405180910390a3831561077d57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d03878560405161077491815260200190565b60405180910390a25b505050505050505050565b600061079382611258565b92915050565b600080527fc9ee83ecf8e561e5df8e9e3a8d108a689296832fb5d541ca3c450b10eaabf8e16020527fc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff1661081657610816813361127d565b6000610826888888888888610c67565b905061083281856112d6565b61083e88888888611324565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516108769493929190611f5e565b60405180910390a361088781611393565b5050505050505050565b600060025b61089f83610c1c565b60038111156108b0576108b0611b6f565b1492915050565b60006003610896565b600082815260016020819052604090912001546108dc816111b7565b6108e683836113bf565b50505050565b6000806108f883610c1c565b600381111561090957610909611b6f565b141592915050565b6001600160a01b038116331461093a5760405163334bd91960e11b815260040160405180910390fd5b6109448282611452565b505050565b60008061095583610c1c565b9050600181600381111561096b5761096b611b6f565b14806109885750600281600381111561098657610986611b6f565b145b9392505050565b333081146109c05760405163e2850c5960e01b81526001600160a01b03821660048201526024015b60405180910390fd5b60035460408051918252602082018490527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150600355565b6040517fe739b9109d83c1c6d0d640fe9ed476fc5862a6de5483b00678a3fffa7a2be2f690610a3990859085908590602001611fd7565b6040516020818303038152906040528051906020012060007312120000000000000000000000000000000000036001600160a01b0316631633da6e6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610acb919081019061200c565b9050610ad781336114d9565b610af4576040516365004e0b60e01b815260040160405180910390fd5b610afe8383611538565b610b098383836115e4565b610b135750610c15565b827ff5aa3d6492eaf1a4d6787c5bd36e8ec61c245d4af2fd1fd387e387a50de9f8c583604051610b4591815260200190565b60405180910390a2610b5683611681565b306001600160a01b03166301d5062a8734634f1ef28660e01b8989604051602401610b829291906120a6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152600080610bc060035490565b6040518763ffffffff1660e01b8152600401610be1969594939291906120d0565b600060405180830381600087803b158015610bfb57600080fd5b505af1158015610c0f573d6000803e3d6000fd5b50505050505b5050505050565b60008181526002602052604081205480600003610c3c5750600092915050565b60018103610c4d5750600392915050565b42811115610c5e5750600192915050565b50600292915050565b6000868686868686604051602001610c8496959493929190611f20565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610cd0816111b7565b8887141580610cdf5750888514155b15610d11576040516001624fcdef60e01b03198152600481018a905260248101869052604481018890526064016109b7565b6000610d238b8b8b8b8b8b8b8b610e34565b9050610d2f81846111c4565b60005b8a811015610de55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610d6f57610d6f612116565b9050602002016020810190610d84919061212c565b8d8d86818110610d9657610d96612116565b905060200201358c8c87818110610daf57610daf612116565b9050602002810190610dc19190612149565b8c8b604051610dd596959493929190611f20565b60405180910390a3600101610d32565b508315610e2757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610e1e91815260200190565b60405180910390a25b5050505050505050505050565b60008888888888888888604051602001610e55989796959493929190612227565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610ea3816111b7565b610eac82610949565b610ee85781610ebb6002611765565b610ec56001611765565b604051635ead8eb560e01b815260048101939093521760248201526044016109b7565b6000828152600260205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b306001600160a01b031663134008d38434634f1ef28660e01b8686604051602401610f509291906120a6565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e086901b9092168252610f9c93929160009081906004016122e3565b600060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b50505050505050565b60008281526001602081905260409091200154610fef816111b7565b6108e68383611452565b600080527fc9ee83ecf8e561e5df8e9e3a8d108a689296832fb5d541ca3c450b10eaabf8e16020527fc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff1661107657611076813361127d565b87861415806110855750878414155b156110b7576040516001624fcdef60e01b031981526004810189905260248101859052604481018790526064016109b7565b60006110c98a8a8a8a8a8a8a8a610e34565b90506110d581856112d6565b60005b898110156111ad5760008b8b838181106110f4576110f4612116565b9050602002016020810190611109919061212c565b905060008a8a8481811061111f5761111f612116565b9050602002013590503660008a8a8681811061113d5761113d612116565b905060200281019061114f9190612149565b9150915061115f84848484611324565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58868686866040516111969493929190611f5e565b60405180910390a3505050508060010190506110d8565b50610c0f81611393565b6111c1813361127d565b50565b6111cd826108ec565b156111ff57816111dd6000611765565b604051635ead8eb560e01b8152600481019290925260248201526044016109b7565b600061120a60035490565b90508082101561123757604051635433660960e01b815260048101839052602481018290526044016109b7565b6112418242612335565b600093845260026020526040909320929092555050565b60006001600160e01b03198216630271189760e51b1480610793575061079382611788565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166112d25760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109b7565b5050565b6112df82610891565b6112ee57816111dd6002611765565b80158015906113035750611301816108b7565b155b156112d25760405163121534c360e31b8152600481018290526024016109b7565b600080856001600160a01b0316858585604051611342929190612348565b60006040518083038185875af1925050503d806000811461137f576040519150601f19603f3d011682016040523d82523d6000602084013e611384565b606091505b5091509150610fca82826117bd565b61139c81610891565b6113ab57806111dd6002611765565b600090815260026020526040902060019055565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff1661144a5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610793565b506000610793565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff161561144a5760008381526001602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610793565b8151600090815b8181101561152d578481815181106114fa576114fa612116565b60200260200101516001600160a01b0316846001600160a01b03160361152557600192505050610793565b6001016114e0565b506000949350505050565b6000828152602081815260408083203384529091529020546115915760008281526020818152604082206001908101805491820181558352912001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b6000828152602081815260408083203380855290835292819020849055518381528492917f61699483e2a58589628399a22e34da872b583143ab99b3245ba6dacf4974d2e3910160405180910390a35050565b60008060005b835181101561165c576000868152602081905260408120855187929087908590811061161857611618612116565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403611654578161165081612358565b9250505b6001016115ea565b5060028351600161166d9190612335565b6116779190612371565b1115949350505050565b600081815260208181526040808320600101805482518185028101850190935280835291929091908301828280156116e257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116c4575b5050505050905060005b8151811015611748576000838152602081905260408120835190919084908490811061171a5761171a612116565b6020908102919091018101516001600160a01b031682528101919091526040016000908120556001016116ec565b506000828152602081905260408120906108e66001830182611802565b600081600381111561177957611779611b6f565b600160ff919091161b92915050565b60006001600160e01b03198216637965db0b60e01b148061079357506301ffc9a760e01b6001600160e01b0319831614610793565b6060826117d2576117cd826117d9565b610793565b5080610793565b8051156117e95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50805460008255906000526020600020908101906111c191905b80821115611830576000815560010161181c565b5090565b6001600160a01b03811681146111c157600080fd5b60008083601f84011261185b57600080fd5b50813567ffffffffffffffff81111561187357600080fd5b60208301915083602082850101111561188b57600080fd5b9250929050565b600080600080600080600060c0888a0312156118ad57600080fd5b87356118b881611834565b965060208801359550604088013567ffffffffffffffff8111156118db57600080fd5b6118e78a828b01611849565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561191b57600080fd5b81356001600160e01b03198116811461098857600080fd5b60008060008060008060a0878903121561194c57600080fd5b863561195781611834565b955060208701359450604087013567ffffffffffffffff81111561197a57600080fd5b61198689828a01611849565b979a9699509760608101359660809091013595509350505050565b6000602082840312156119b357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156119f9576119f96119ba565b604052919050565b600082601f830112611a1257600080fd5b813567ffffffffffffffff811115611a2c57611a2c6119ba565b611a3f601f8201601f19166020016119d0565b818152846020838601011115611a5457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611a8757600080fd5b8435611a9281611834565b93506020850135611aa281611834565b925060408501359150606085013567ffffffffffffffff811115611ac557600080fd5b611ad187828801611a01565b91505092959194509250565b60008060408385031215611af057600080fd5b823591506020830135611b0281611834565b809150509250929050565b600080600060608486031215611b2257600080fd5b8335611b2d81611834565b92506020840135611b3d81611834565b9150604084013567ffffffffffffffff811115611b5957600080fd5b611b6586828701611a01565b9150509250925092565b634e487b7160e01b600052602160045260246000fd5b6020810160048310611ba757634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f840112611bbf57600080fd5b50813567ffffffffffffffff811115611bd757600080fd5b6020830191508360208260051b850101111561188b57600080fd5b600080600080600080600080600060c08a8c031215611c1057600080fd5b893567ffffffffffffffff80821115611c2857600080fd5b611c348d838e01611bad565b909b50995060208c0135915080821115611c4d57600080fd5b611c598d838e01611bad565b909950975060408c0135915080821115611c7257600080fd5b50611c7f8c828d01611bad565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b031215611cc057600080fd5b883567ffffffffffffffff80821115611cd857600080fd5b611ce48c838d01611bad565b909a50985060208b0135915080821115611cfd57600080fd5b611d098c838d01611bad565b909850965060408b0135915080821115611d2257600080fd5b50611d2f8b828c01611bad565b999c989b509699959896976060870135966080013595509350505050565b600067ffffffffffffffff821115611d6757611d676119ba565b5060051b60200190565b600082601f830112611d8257600080fd5b81356020611d97611d9283611d4d565b6119d0565b8083825260208201915060208460051b870101935086841115611db957600080fd5b602086015b84811015611dd55780358352918301918301611dbe565b509695505050505050565b600080600080600060a08688031215611df857600080fd5b8535611e0381611834565b94506020860135611e1381611834565b9350604086013567ffffffffffffffff80821115611e3057600080fd5b611e3c89838a01611d71565b94506060880135915080821115611e5257600080fd5b611e5e89838a01611d71565b93506080880135915080821115611e7457600080fd5b50611e8188828901611a01565b9150509295509295909350565b600080600080600060a08688031215611ea657600080fd5b8535611eb181611834565b94506020860135611ec181611834565b93506040860135925060608601359150608086013567ffffffffffffffff811115611eeb57600080fd5b611e8188828901611a01565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038716815285602082015260a060408201526000611f4960a083018688611ef7565b60608301949094525060800152949350505050565b6001600160a01b0385168152836020820152606060408201526000611f87606083018486611ef7565b9695505050505050565b6000815180845260005b81811015611fb757602081850181015186830182015201611f9b565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160a01b038086168352808516602084015250606060408301526120036060830184611f91565b95945050505050565b6000602080838503121561201f57600080fd5b825167ffffffffffffffff81111561203657600080fd5b8301601f8101851361204757600080fd5b8051612055611d9282611d4d565b81815260059190911b8201830190838101908783111561207457600080fd5b928401925b8284101561209b57835161208c81611834565b82529284019290840190612079565b979650505050505050565b6001600160a01b03831681526040602082015260006120c86040830184611f91565b949350505050565b6001600160a01b038716815285602082015260c0604082015260006120f860c0830187611f91565b606083019590955250608081019290925260a0909101529392505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213e57600080fd5b813561098881611834565b6000808335601e1984360301811261216057600080fd5b83018035915067ffffffffffffffff82111561217b57600080fd5b60200191503681900382131561188b57600080fd5b6000838385526020808601955060208560051b8301018460005b8781101561221a57848303601f19018952813536889003601e190181126121d057600080fd5b8701848101903567ffffffffffffffff8111156121ec57600080fd5b8036038213156121fb57600080fd5b612206858284611ef7565b9a86019a94505050908301906001016121aa565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561226a57823561224d81611834565b6001600160a01b031682526020928301929091019060010161223a565b5083810360208501528881527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8911156122a357600080fd5b8860051b9150818a602083013701828103602090810160408501526122cb9082018789612190565b60608401959095525050608001529695505050505050565b6001600160a01b038616815284602082015260a06040820152600061230b60a0830186611f91565b606083019490945250608001529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107935761079361231f565b8183823760009101908152919050565b60006001820161236a5761236a61231f565b5060010190565b60008261238e57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212206811c99f0ec90c4c6cd4d886c37f9cd4efa15d7727aac1a9091ebed1a42e8d6864736f6c63430008190033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x02a300", + "0x26c3468aa299fbffbefa8234f58df42e8e0f89b49d653a057410fe8a2dca75a6": "0x01", + "0x679c2b4cecc1570ce0a132b9c632e76ef651a18754315da3fb574383826fe941": "0x01", + "0xc0fa88a244cc7ef9d9d002c28d732f538ce4aca61e2c872a6094f549ac0895cf": "0x01", + "0x1e9a90c8ff5b9c8bf06956466dd70bf9e30099f30408e9d0645ffbab9ba0f771": "0x01" + } }, "0x1212000000000000000000000000000000000001": { "balance": "0",