diff --git a/contracts/script/DeployL2PeripheryContracts.s.sol b/contracts/script/DeployL2PeripheryContracts.s.sol index 19cb768f..cc506364 100644 --- a/contracts/script/DeployL2PeripheryContracts.s.sol +++ b/contracts/script/DeployL2PeripheryContracts.s.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.25; import {Script, console} from "forge-std/Script.sol"; import {L2NativeSuperchainERC20} from "../src/L2NativeSuperchainERC20.sol"; +import {SuperchainETHWrapper} from "../src/SuperchainETHWrapper.sol"; contract DeployL2PeripheryContracts is Script { /// @notice Used for tracking the next address to deploy a periphery contract at. @@ -31,6 +32,7 @@ contract DeployL2PeripheryContracts is Script { function run() public broadcast { deployL2NativeSuperchainERC20(); + deploySuperchainETHWrapper(); } function deployL2NativeSuperchainERC20() public { @@ -39,6 +41,12 @@ contract DeployL2PeripheryContracts is Script { console.log("Deployed L2NativeSuperchainERC20 at address: ", deploymentAddress); } + function deploySuperchainETHWrapper() public { + address _superchainETHWrapperContract = address(new SuperchainETHWrapper{salt: _salt()}()); + address deploymentAddress = deployAtNextDeploymentAddress(_superchainETHWrapperContract.code); + console.log("Deployed SuperchainETHWrapper at address: ", deploymentAddress); + } + function deployAtNextDeploymentAddress(bytes memory newRuntimeBytecode) internal returns (address _deploymentAddr) diff --git a/contracts/src/SuperchainETHWrapper.sol b/contracts/src/SuperchainETHWrapper.sol new file mode 100644 index 00000000..56bbe2a9 --- /dev/null +++ b/contracts/src/SuperchainETHWrapper.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.15; + +import {Unauthorized} from "@contracts-bedrock/libraries/errors/CommonErrors.sol"; +import {Predeploys} from "@contracts-bedrock/libraries/Predeploys.sol"; +import {SafeCall} from "@contracts-bedrock//libraries/SafeCall.sol"; +import {IL2ToL2CrossDomainMessenger} from "@contracts-bedrock/L2/interfaces/IL2ToL2CrossDomainMessenger.sol"; +import {ISuperchainTokenBridge} from "@contracts-bedrock/L2/interfaces/ISuperchainTokenBridge.sol"; +import {ISuperchainWETH} from "@contracts-bedrock/L2/interfaces/ISuperchainWETH.sol"; + +/** + * @notice Thrown when the relay of SuperchainWETH has not succeeded. + * @dev This error is triggered if the SuperchainWETH relay through the L2ToL2CrossDomainMessenger + * has not completed successfully successful. + */ +error RelaySuperchainWETHNotSuccessful(); + +/** + * @title SuperchainETHWrapper + * @notice This contract facilitates sending ETH across chains within the Superchain by wrapping + * ETH into SuperchainWETH, relaying the wrapped asset to another chain, and then + * unwrapping it back to ETH on the destination chain. + * @dev The contract integrates with the SuperchainWETH contract for wrapping and unwrapping ETH, + * and uses the L2ToL2CrossDomainMessenger for relaying the wrapped ETH between chains. + */ +contract SuperchainETHWrapper { + /** + * @dev Emitted when ETH is received by the contract. + * @param from The address that sent ETH. + * @param value The amount of ETH received. + */ + event LogReceived(address from, uint256 value); + + // Fallback function to receive ETH + receive() external payable { + emit LogReceived(msg.sender, msg.value); + } + + /** + * @notice Unwraps SuperchainWETH into native ETH and sends it to a specified destination address. + * @param _relayERC20MsgHash The hash of the relayed ERC20 message. + * @param _dst The destination address on the receiving chain. + * @param _wad The amount of SuperchainWETH to unwrap to ETH. + */ + function unwrap(bytes32 _relayERC20MsgHash, address _dst, uint256 _wad) external { + IL2ToL2CrossDomainMessenger messenger = IL2ToL2CrossDomainMessenger(Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER); + if (msg.sender != address(messenger)) revert Unauthorized(); + if (messenger.crossDomainMessageSender() != address(this)) revert Unauthorized(); + + if (messenger.successfulMessages(_relayERC20MsgHash) == false) { + revert RelaySuperchainWETHNotSuccessful(); + } + + ISuperchainWETH(Predeploys.SUPERCHAIN_WETH).withdraw(_wad); + SafeCall.call(_dst, _wad, hex""); + } + + /** + * @notice Wraps ETH into SuperchainWETH and sends it to another chain. + * @dev This function wraps the sent ETH into SuperchainWETH, computes the relay message hash, + * and relays the message to the destination chain. + * @param _dst The destination address on the receiving chain. + * @param _chainId The ID of the destination chain. + */ + function sendETH(address _dst, uint256 _chainId) public payable { + ISuperchainWETH(Predeploys.SUPERCHAIN_WETH).deposit{value: msg.value}(); + bytes32 messageHash = ISuperchainTokenBridge(Predeploys.SUPERCHAIN_TOKEN_BRIDGE).sendERC20( + Predeploys.SUPERCHAIN_WETH, address(this), msg.value, _chainId + ); + IL2ToL2CrossDomainMessenger(Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER).sendMessage({ + _destination: _chainId, + _target: address(this), + _message: abi.encodeCall(this.unwrap, (messageHash, _dst, msg.value)) + }); + } +} diff --git a/contracts/test/SuperchainETHWrapper.t.sol b/contracts/test/SuperchainETHWrapper.t.sol new file mode 100644 index 00000000..f7c91d90 --- /dev/null +++ b/contracts/test/SuperchainETHWrapper.t.sol @@ -0,0 +1,213 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.15; + +import {Test} from "forge-std/Test.sol"; + +import {Unauthorized} from "@contracts-bedrock/libraries/errors/CommonErrors.sol"; +import {Predeploys} from "@contracts-bedrock/libraries/Predeploys.sol"; +import {IL2ToL2CrossDomainMessenger} from "@contracts-bedrock/L2/interfaces/IL2ToL2CrossDomainMessenger.sol"; +import {ISuperchainTokenBridge} from "@contracts-bedrock/L2/interfaces/ISuperchainTokenBridge.sol"; +import {ISuperchainWETH} from "@contracts-bedrock/L2/interfaces/ISuperchainWETH.sol"; +import {IWETH} from "@contracts-bedrock/universal/interfaces/IWETH.sol"; +import {SuperchainWETH} from "@contracts-bedrock/L2/SuperchainWETH.sol"; + +import {SuperchainETHWrapper, RelaySuperchainWETHNotSuccessful} from "../src/SuperchainETHWrapper.sol"; + +/// @title SuperchainETHWrapper Happy Path Tests +/// @notice This contract contains the tests for successful paths in SuperchainETHWrapper. +contract SuperchainETHWrapper_HappyPath_Test is Test { + SuperchainETHWrapper public superchainETHWrapper; + + /// @notice Helper function to setup a mock and expect a call to it. + function _mockAndExpect(address _receiver, bytes memory _calldata, bytes memory _returned) internal { + vm.mockCall(_receiver, _calldata, _returned); + vm.expectCall(_receiver, _calldata); + } + + /// @notice Helper function to setup a mock and expect a call to it. + function _mockAndExpect(address _receiver, uint256 _msgValue, bytes memory _calldata, bytes memory _returned) + internal + { + vm.mockCall(_receiver, _msgValue, _calldata, _returned); + vm.expectCall(_receiver, _msgValue, _calldata); + } + + /// @notice Sets up the test suite. + function setUp() public { + superchainETHWrapper = new SuperchainETHWrapper(); + SuperchainWETH superchainWETH = new SuperchainWETH(); + vm.etch(Predeploys.SUPERCHAIN_WETH, address(superchainWETH).code); + } + + /// @notice Tests the `sendETH` function deposits the sender's tokens, calls + /// SuperchainWETH.sendERC20, and sends an encoded call to + /// SuperchainETHWrapper.unwrap through L2ToL2CrossDomainMessenger. + function testFuzz_sendETH_succeeds( + address _sender, + address _to, + uint256 _amount, + uint256 _chainId, + bytes32 messageHash + ) public { + vm.assume(_chainId != block.chainid); + _amount = bound(_amount, 0, type(uint248).max - 1); + vm.deal(_sender, _amount); + _mockAndExpect( + Predeploys.SUPERCHAIN_WETH, _amount, abi.encodeWithSelector(IWETH.deposit.selector), abi.encode("") + ); + _mockAndExpect( + Predeploys.SUPERCHAIN_TOKEN_BRIDGE, + abi.encodeCall( + ISuperchainTokenBridge.sendERC20, + (Predeploys.SUPERCHAIN_WETH, address(superchainETHWrapper), _amount, _chainId) + ), + abi.encode(messageHash) + ); + bytes memory _message = abi.encodeCall(superchainETHWrapper.unwrap, (messageHash, _to, _amount)); + _mockAndExpect( + Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER, + abi.encodeWithSelector( + IL2ToL2CrossDomainMessenger.sendMessage.selector, _chainId, address(superchainETHWrapper), _message + ), + abi.encode("") + ); + + vm.prank(_sender); + superchainETHWrapper.sendETH{value: _amount}(_to, _chainId); + } + + /** + * @notice Tests the successful execution of the `unwrap` function. + * @dev This test mocks the `crossDomainMessageSender` and `successfulMessages` function calls + * to simulate the proper cross-domain message behavior. + * @param _to Address receiving the unwrapped ETH. + * @param _amount Amount of ETH to be unwrapped and sent. + * @param _relayERC20MsgHash Hash of the relayed message. + */ + function testFuzz_unwrap_succeeds(address _to, uint256 _amount, bytes32 _relayERC20MsgHash) public { + _amount = bound(_amount, 0, type(uint248).max - 1); + // Ensure that the target contract is not a Forge contract. + assumeNotForgeAddress(_to); + // Ensure that the target call is payable if value is sent + assumePayable(_to); + uint256 prevBalance = _to.balance; + + _mockAndExpect( + Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER, + abi.encodeWithSelector(IL2ToL2CrossDomainMessenger.crossDomainMessageSender.selector), + abi.encode(address(superchainETHWrapper)) + ); + _mockAndExpect( + Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER, + abi.encodeCall(IL2ToL2CrossDomainMessenger.successfulMessages, (_relayERC20MsgHash)), + abi.encode(true) + ); + _mockAndExpect( + Predeploys.SUPERCHAIN_WETH, + abi.encodeCall(ISuperchainWETH(Predeploys.SUPERCHAIN_WETH).withdraw, (_amount)), + abi.encode("") + ); + // Simulates the withdrawal being sent to the SuperchainETHWrapper contract. + vm.deal(address(superchainETHWrapper), _amount); + + vm.prank(Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER); + superchainETHWrapper.unwrap(_relayERC20MsgHash, _to, _amount); + assertEq(_to.balance - prevBalance, _amount); + } +} + +/// @title SuperchainETHWrapper Revert Tests +/// @notice This contract contains tests to check that certain conditions result in expected +/// reverts. +contract SuperchainETHWrapperRevertTests is Test { + SuperchainETHWrapper public superchainETHWrapper; + + /// @notice Helper function to setup a mock and expect a call to it. + function _mockAndExpect(address _receiver, bytes memory _calldata, bytes memory _returned) internal { + vm.mockCall(_receiver, _calldata, _returned); + vm.expectCall(_receiver, _calldata); + } + + /// @notice Sets up the test suite. + function setUp() public { + superchainETHWrapper = new SuperchainETHWrapper(); + } + + /** + * @notice Tests that the `unwrap` function reverts when the message is unrelayed. + * @dev Mocks the cross-domain message sender and sets `successfulMessages` to return `false`, + * triggering a revert when trying to call `unwrap`. + * @param _to Address receiving the unwrapped ETH. + * @param _amount Amount of ETH to be unwrapped. + * @param _relayERC20MsgHash Hash of the relayed message. + */ + function testFuzz_unwrap_fromUnrelayedMsgHash_reverts(address _to, uint256 _amount, bytes32 _relayERC20MsgHash) + public + { + _mockAndExpect( + Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER, + abi.encodeWithSelector(IL2ToL2CrossDomainMessenger.crossDomainMessageSender.selector), + abi.encode(address(superchainETHWrapper)) + ); + _mockAndExpect( + Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER, + abi.encodeCall(IL2ToL2CrossDomainMessenger.successfulMessages, (_relayERC20MsgHash)), + abi.encode(false) + ); + + vm.prank(Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER); + vm.expectRevert(RelaySuperchainWETHNotSuccessful.selector); + superchainETHWrapper.unwrap(_relayERC20MsgHash, _to, _amount); + } + + /** + * @notice Tests that the `unwrap` function reverts when the sender is not the expected messenger. + * @dev Mocks an invalid sender (not the messenger) to ensure the function reverts with the + * `Unauthorized` error. + * @param _sender Address that tries to call `unwrap` but is not the messenger. + * @param _to Address receiving the unwrapped ETH. + * @param _amount Amount of ETH to be unwrapped. + * @param _relayERC20MsgHash Hash of the relayed message. + */ + function testFuzz_unwrap_nonMessengerSender_reverts( + address _sender, + address _to, + uint256 _amount, + bytes32 _relayERC20MsgHash + ) public { + vm.assume(_sender != Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER); + + vm.prank(_sender); + vm.expectRevert(Unauthorized.selector); + superchainETHWrapper.unwrap(_relayERC20MsgHash, _to, _amount); + } + + /** + * @notice Tests that the `unwrap` function reverts when the cross-domain message sender is + * not the SuperchainETHWrapper contract. + * @dev Mocks a wrong cross-domain message sender and ensures the function reverts with the + * `Unauthorized` error. + * @param _sender Address that tries to call `unwrap` but is not the correct message sender. + * @param _to Address receiving the unwrapped ETH. + * @param _amount Amount of ETH to be unwrapped. + * @param _relayERC20MsgHash Hash of the relayed message. + */ + function testFuzz_unwrap_wrongCrossDomainMessageSender_reverts( + address _sender, + address _to, + uint256 _amount, + bytes32 _relayERC20MsgHash + ) public { + vm.assume(_sender != address(superchainETHWrapper)); + + _mockAndExpect( + Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER, + abi.encodeWithSelector(IL2ToL2CrossDomainMessenger.crossDomainMessageSender.selector), + abi.encode(_sender) + ); + + vm.prank(Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER); + vm.expectRevert(Unauthorized.selector); + superchainETHWrapper.unwrap(_relayERC20MsgHash, _to, _amount); + } +} diff --git a/genesis/generated/901-l2-genesis.json b/genesis/generated/901-l2-genesis.json index bd333ada..f8b4c3e9 100644 --- a/genesis/generated/901-l2-genesis.json +++ b/genesis/generated/901-l2-genesis.json @@ -15251,6 +15251,10 @@ "code": "0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c806340c10f191161009e57806395d89b411161006e57806395d89b411461023c5780639dc29fac1461025c578063a9059cbb1461026f578063d505accf14610282578063dd62ed3e14610295575f80fd5b806340c10f19146101b757806354fd4d50146101ca57806370a08231146101f25780637ecebe0014610217575f80fd5b806323b872dd116100d957806323b872dd1461017a5780632b8c49e31461018d578063313ce567146101a05780633644e515146101af575f80fd5b806306fdde031461010a578063095ea7b31461012857806318160ddd1461014b57806318bf507714610165575b5f80fd5b6101126102bd565b60405161011f91906108d0565b60405180910390f35b61013b610136366004610920565b6102f4565b604051901515815260200161011f565b6805345cdf77eb68f44c545b60405190815260200161011f565b610178610173366004610920565b610343565b005b61013b610188366004610948565b6103ba565b61017861019b366004610920565b61045f565b6040516012815260200161011f565b6101576104ca565b6101786101c5366004610920565b610546565b60408051808201909152600c81526b0c4b8c0b8c0b58995d184b8d60a21b6020820152610112565b610157610200366004610981565b6387a211a2600c9081525f91909152602090205490565b610157610225366004610981565b6338377508600c9081525f91909152602090205490565b6040805180820190915260048152634d4f434b60e01b6020820152610112565b61017861026a366004610920565b6105b2565b61013b61027d366004610920565b61061e565b6101786102903660046109a1565b610682565b6101576102a3366004610a0e565b602052637f5e9f20600c9081525f91909152603490205490565b60408051808201909152601781527f4c324e61746976655375706572636861696e4552433230000000000000000000602082015290565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b336028602160991b0114610369576040516282b42960e81b815260040160405180910390fd5b6103738282610806565b816001600160a01b03167f7ca16db12dad0e1c536f8062fd9e2e4fbb3d1a503b59df12a0cfa9f96abf1c59826040516103ae91815260200190565b60405180910390a25050565b5f8360601b33602052637f5e9f208117600c526034600c2080548019156103f657808511156103f0576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c2080548085111561041e5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c5f80516020610a40833981519152602080a3505060019392505050565b336028602160991b0114610485576040516282b42960e81b815260040160405180910390fd5b61048f828261086f565b816001600160a01b03167f017c33ab728c93e2be949ec7e4a35b76d607957c5fac4253f5d623b4a3b13036826040516103ae91815260200190565b5f806104d46102bd565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b6001600160a01b03821661056d5760405163d92e233d60e01b815260040160405180910390fd5b6105778282610806565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516103ae91815260200190565b6001600160a01b0382166105d95760405163d92e233d60e01b815260040160405180910390fd5b6105e3828261086f565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516103ae91815260200190565b5f6387a211a2600c52335f526020600c208054808411156106465763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c335f80516020610a40833981519152602080a350600192915050565b5f61068b6102bd565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6428610156106ca57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146107b25763ddafbaef5f526004601cfd5b0190556303faf4f960a51b89176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b6805345cdf77eb68f44c54818101818110156108295763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f5f80516020610a40833981519152602080a35050565b6387a211a2600c52815f526020600c208054808311156108965763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f8181526001600160a01b0383165f80516020610a40833981519152602083a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461091b575f80fd5b919050565b5f8060408385031215610931575f80fd5b61093a83610905565b946020939093013593505050565b5f805f6060848603121561095a575f80fd5b61096384610905565b925061097160208501610905565b9150604084013590509250925092565b5f60208284031215610991575f80fd5b61099a82610905565b9392505050565b5f805f805f805f60e0888a0312156109b7575f80fd5b6109c088610905565b96506109ce60208901610905565b95506040880135945060608801359350608088013560ff811681146109f1575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610a1f575f80fd5b610a2883610905565b9150610a3660208401610905565b9050925092905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e27d15f153a33c726af6e7c67afe08e9c27082b676fb37f860a4147c56280e5564736f6c63430008190033", "balance": "0x0" }, + "420beef000000000000000000000000000000002": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0" + }, "455eba79c8c448d60a5acc272911614b352b1f67": { "balance": "0x84595161401484a000000" }, @@ -15324,6 +15328,11 @@ "976ea74026e726554db657fa54763abd0c3a0aa9": { "balance": "0x21e19e0c9bab2400000" }, + "978ce8cd0008062c153d467737ef754beb57c958": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0", + "nonce": "0x1" + }, "9965507d1a55bcc2695c58ba16fb37d819b0a4dc": { "balance": "0x21e19e0c9bab2400000" }, diff --git a/genesis/generated/902-l2-genesis.json b/genesis/generated/902-l2-genesis.json index 75279656..353fd504 100644 --- a/genesis/generated/902-l2-genesis.json +++ b/genesis/generated/902-l2-genesis.json @@ -15263,6 +15263,10 @@ "code": "0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c806340c10f191161009e57806395d89b411161006e57806395d89b411461023c5780639dc29fac1461025c578063a9059cbb1461026f578063d505accf14610282578063dd62ed3e14610295575f80fd5b806340c10f19146101b757806354fd4d50146101ca57806370a08231146101f25780637ecebe0014610217575f80fd5b806323b872dd116100d957806323b872dd1461017a5780632b8c49e31461018d578063313ce567146101a05780633644e515146101af575f80fd5b806306fdde031461010a578063095ea7b31461012857806318160ddd1461014b57806318bf507714610165575b5f80fd5b6101126102bd565b60405161011f91906108d0565b60405180910390f35b61013b610136366004610920565b6102f4565b604051901515815260200161011f565b6805345cdf77eb68f44c545b60405190815260200161011f565b610178610173366004610920565b610343565b005b61013b610188366004610948565b6103ba565b61017861019b366004610920565b61045f565b6040516012815260200161011f565b6101576104ca565b6101786101c5366004610920565b610546565b60408051808201909152600c81526b0c4b8c0b8c0b58995d184b8d60a21b6020820152610112565b610157610200366004610981565b6387a211a2600c9081525f91909152602090205490565b610157610225366004610981565b6338377508600c9081525f91909152602090205490565b6040805180820190915260048152634d4f434b60e01b6020820152610112565b61017861026a366004610920565b6105b2565b61013b61027d366004610920565b61061e565b6101786102903660046109a1565b610682565b6101576102a3366004610a0e565b602052637f5e9f20600c9081525f91909152603490205490565b60408051808201909152601781527f4c324e61746976655375706572636861696e4552433230000000000000000000602082015290565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b336028602160991b0114610369576040516282b42960e81b815260040160405180910390fd5b6103738282610806565b816001600160a01b03167f7ca16db12dad0e1c536f8062fd9e2e4fbb3d1a503b59df12a0cfa9f96abf1c59826040516103ae91815260200190565b60405180910390a25050565b5f8360601b33602052637f5e9f208117600c526034600c2080548019156103f657808511156103f0576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c2080548085111561041e5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c5f80516020610a40833981519152602080a3505060019392505050565b336028602160991b0114610485576040516282b42960e81b815260040160405180910390fd5b61048f828261086f565b816001600160a01b03167f017c33ab728c93e2be949ec7e4a35b76d607957c5fac4253f5d623b4a3b13036826040516103ae91815260200190565b5f806104d46102bd565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b6001600160a01b03821661056d5760405163d92e233d60e01b815260040160405180910390fd5b6105778282610806565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516103ae91815260200190565b6001600160a01b0382166105d95760405163d92e233d60e01b815260040160405180910390fd5b6105e3828261086f565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516103ae91815260200190565b5f6387a211a2600c52335f526020600c208054808411156106465763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c335f80516020610a40833981519152602080a350600192915050565b5f61068b6102bd565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6428610156106ca57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146107b25763ddafbaef5f526004601cfd5b0190556303faf4f960a51b89176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b6805345cdf77eb68f44c54818101818110156108295763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f5f80516020610a40833981519152602080a35050565b6387a211a2600c52815f526020600c208054808311156108965763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f8181526001600160a01b0383165f80516020610a40833981519152602083a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461091b575f80fd5b919050565b5f8060408385031215610931575f80fd5b61093a83610905565b946020939093013593505050565b5f805f6060848603121561095a575f80fd5b61096384610905565b925061097160208501610905565b9150604084013590509250925092565b5f60208284031215610991575f80fd5b61099a82610905565b9392505050565b5f805f805f805f60e0888a0312156109b7575f80fd5b6109c088610905565b96506109ce60208901610905565b95506040880135945060608801359350608088013560ff811681146109f1575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610a1f575f80fd5b610a2883610905565b9150610a3660208401610905565b9050925092905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e27d15f153a33c726af6e7c67afe08e9c27082b676fb37f860a4147c56280e5564736f6c63430008190033", "balance": "0x0" }, + "420beef000000000000000000000000000000002": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0" + }, "4cf4bd900571a562febe9dc113c686f5d87337c0": { "balance": "0x84595161401484a000000" }, @@ -15318,6 +15322,11 @@ "976ea74026e726554db657fa54763abd0c3a0aa9": { "balance": "0x21e19e0c9bab2400000" }, + "978ce8cd0008062c153d467737ef754beb57c958": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0", + "nonce": "0x1" + }, "9965507d1a55bcc2695c58ba16fb37d819b0a4dc": { "balance": "0x21e19e0c9bab2400000" }, diff --git a/genesis/generated/903-l2-genesis.json b/genesis/generated/903-l2-genesis.json index f57a51b3..c10965b2 100644 --- a/genesis/generated/903-l2-genesis.json +++ b/genesis/generated/903-l2-genesis.json @@ -15248,6 +15248,10 @@ "code": "0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c806340c10f191161009e57806395d89b411161006e57806395d89b411461023c5780639dc29fac1461025c578063a9059cbb1461026f578063d505accf14610282578063dd62ed3e14610295575f80fd5b806340c10f19146101b757806354fd4d50146101ca57806370a08231146101f25780637ecebe0014610217575f80fd5b806323b872dd116100d957806323b872dd1461017a5780632b8c49e31461018d578063313ce567146101a05780633644e515146101af575f80fd5b806306fdde031461010a578063095ea7b31461012857806318160ddd1461014b57806318bf507714610165575b5f80fd5b6101126102bd565b60405161011f91906108d0565b60405180910390f35b61013b610136366004610920565b6102f4565b604051901515815260200161011f565b6805345cdf77eb68f44c545b60405190815260200161011f565b610178610173366004610920565b610343565b005b61013b610188366004610948565b6103ba565b61017861019b366004610920565b61045f565b6040516012815260200161011f565b6101576104ca565b6101786101c5366004610920565b610546565b60408051808201909152600c81526b0c4b8c0b8c0b58995d184b8d60a21b6020820152610112565b610157610200366004610981565b6387a211a2600c9081525f91909152602090205490565b610157610225366004610981565b6338377508600c9081525f91909152602090205490565b6040805180820190915260048152634d4f434b60e01b6020820152610112565b61017861026a366004610920565b6105b2565b61013b61027d366004610920565b61061e565b6101786102903660046109a1565b610682565b6101576102a3366004610a0e565b602052637f5e9f20600c9081525f91909152603490205490565b60408051808201909152601781527f4c324e61746976655375706572636861696e4552433230000000000000000000602082015290565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b336028602160991b0114610369576040516282b42960e81b815260040160405180910390fd5b6103738282610806565b816001600160a01b03167f7ca16db12dad0e1c536f8062fd9e2e4fbb3d1a503b59df12a0cfa9f96abf1c59826040516103ae91815260200190565b60405180910390a25050565b5f8360601b33602052637f5e9f208117600c526034600c2080548019156103f657808511156103f0576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c2080548085111561041e5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c5f80516020610a40833981519152602080a3505060019392505050565b336028602160991b0114610485576040516282b42960e81b815260040160405180910390fd5b61048f828261086f565b816001600160a01b03167f017c33ab728c93e2be949ec7e4a35b76d607957c5fac4253f5d623b4a3b13036826040516103ae91815260200190565b5f806104d46102bd565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b6001600160a01b03821661056d5760405163d92e233d60e01b815260040160405180910390fd5b6105778282610806565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516103ae91815260200190565b6001600160a01b0382166105d95760405163d92e233d60e01b815260040160405180910390fd5b6105e3828261086f565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516103ae91815260200190565b5f6387a211a2600c52335f526020600c208054808411156106465763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c335f80516020610a40833981519152602080a350600192915050565b5f61068b6102bd565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6428610156106ca57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146107b25763ddafbaef5f526004601cfd5b0190556303faf4f960a51b89176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b6805345cdf77eb68f44c54818101818110156108295763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f5f80516020610a40833981519152602080a35050565b6387a211a2600c52815f526020600c208054808311156108965763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f8181526001600160a01b0383165f80516020610a40833981519152602083a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461091b575f80fd5b919050565b5f8060408385031215610931575f80fd5b61093a83610905565b946020939093013593505050565b5f805f6060848603121561095a575f80fd5b61096384610905565b925061097160208501610905565b9150604084013590509250925092565b5f60208284031215610991575f80fd5b61099a82610905565b9392505050565b5f805f805f805f60e0888a0312156109b7575f80fd5b6109c088610905565b96506109ce60208901610905565b95506040880135945060608801359350608088013560ff811681146109f1575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610a1f575f80fd5b610a2883610905565b9150610a3660208401610905565b9050925092905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e27d15f153a33c726af6e7c67afe08e9c27082b676fb37f860a4147c56280e5564736f6c63430008190033", "balance": "0x0" }, + "420beef000000000000000000000000000000002": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0" + }, "474fea2d53f975cd0f2028446d40e284ba783ec7": { "balance": "0x84595161401484a000000" }, @@ -15321,6 +15325,11 @@ "976ea74026e726554db657fa54763abd0c3a0aa9": { "balance": "0x21e19e0c9bab2400000" }, + "978ce8cd0008062c153d467737ef754beb57c958": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0", + "nonce": "0x1" + }, "9965507d1a55bcc2695c58ba16fb37d819b0a4dc": { "balance": "0x21e19e0c9bab2400000" }, diff --git a/genesis/generated/904-l2-genesis.json b/genesis/generated/904-l2-genesis.json index c76decb6..504e5f15 100644 --- a/genesis/generated/904-l2-genesis.json +++ b/genesis/generated/904-l2-genesis.json @@ -15251,6 +15251,10 @@ "code": "0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c806340c10f191161009e57806395d89b411161006e57806395d89b411461023c5780639dc29fac1461025c578063a9059cbb1461026f578063d505accf14610282578063dd62ed3e14610295575f80fd5b806340c10f19146101b757806354fd4d50146101ca57806370a08231146101f25780637ecebe0014610217575f80fd5b806323b872dd116100d957806323b872dd1461017a5780632b8c49e31461018d578063313ce567146101a05780633644e515146101af575f80fd5b806306fdde031461010a578063095ea7b31461012857806318160ddd1461014b57806318bf507714610165575b5f80fd5b6101126102bd565b60405161011f91906108d0565b60405180910390f35b61013b610136366004610920565b6102f4565b604051901515815260200161011f565b6805345cdf77eb68f44c545b60405190815260200161011f565b610178610173366004610920565b610343565b005b61013b610188366004610948565b6103ba565b61017861019b366004610920565b61045f565b6040516012815260200161011f565b6101576104ca565b6101786101c5366004610920565b610546565b60408051808201909152600c81526b0c4b8c0b8c0b58995d184b8d60a21b6020820152610112565b610157610200366004610981565b6387a211a2600c9081525f91909152602090205490565b610157610225366004610981565b6338377508600c9081525f91909152602090205490565b6040805180820190915260048152634d4f434b60e01b6020820152610112565b61017861026a366004610920565b6105b2565b61013b61027d366004610920565b61061e565b6101786102903660046109a1565b610682565b6101576102a3366004610a0e565b602052637f5e9f20600c9081525f91909152603490205490565b60408051808201909152601781527f4c324e61746976655375706572636861696e4552433230000000000000000000602082015290565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b336028602160991b0114610369576040516282b42960e81b815260040160405180910390fd5b6103738282610806565b816001600160a01b03167f7ca16db12dad0e1c536f8062fd9e2e4fbb3d1a503b59df12a0cfa9f96abf1c59826040516103ae91815260200190565b60405180910390a25050565b5f8360601b33602052637f5e9f208117600c526034600c2080548019156103f657808511156103f0576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c2080548085111561041e5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c5f80516020610a40833981519152602080a3505060019392505050565b336028602160991b0114610485576040516282b42960e81b815260040160405180910390fd5b61048f828261086f565b816001600160a01b03167f017c33ab728c93e2be949ec7e4a35b76d607957c5fac4253f5d623b4a3b13036826040516103ae91815260200190565b5f806104d46102bd565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b6001600160a01b03821661056d5760405163d92e233d60e01b815260040160405180910390fd5b6105778282610806565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516103ae91815260200190565b6001600160a01b0382166105d95760405163d92e233d60e01b815260040160405180910390fd5b6105e3828261086f565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516103ae91815260200190565b5f6387a211a2600c52335f526020600c208054808411156106465763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c335f80516020610a40833981519152602080a350600192915050565b5f61068b6102bd565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6428610156106ca57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146107b25763ddafbaef5f526004601cfd5b0190556303faf4f960a51b89176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b6805345cdf77eb68f44c54818101818110156108295763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f5f80516020610a40833981519152602080a35050565b6387a211a2600c52815f526020600c208054808311156108965763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f8181526001600160a01b0383165f80516020610a40833981519152602083a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461091b575f80fd5b919050565b5f8060408385031215610931575f80fd5b61093a83610905565b946020939093013593505050565b5f805f6060848603121561095a575f80fd5b61096384610905565b925061097160208501610905565b9150604084013590509250925092565b5f60208284031215610991575f80fd5b61099a82610905565b9392505050565b5f805f805f805f60e0888a0312156109b7575f80fd5b6109c088610905565b96506109ce60208901610905565b95506040880135945060608801359350608088013560ff811681146109f1575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610a1f575f80fd5b610a2883610905565b9150610a3660208401610905565b9050925092905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e27d15f153a33c726af6e7c67afe08e9c27082b676fb37f860a4147c56280e5564736f6c63430008190033", "balance": "0x0" }, + "420beef000000000000000000000000000000002": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0" + }, "4d745e9ad2506ceb8b68764b8a3eb5c8a9fe9889": { "balance": "0x84595161401484a000000" }, @@ -15315,6 +15319,11 @@ "976ea74026e726554db657fa54763abd0c3a0aa9": { "balance": "0x21e19e0c9bab2400000" }, + "978ce8cd0008062c153d467737ef754beb57c958": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0", + "nonce": "0x1" + }, "98a772015427498cc86a37a69d1adfb158d9ed82": { "balance": "0x84595161401484a000000" }, diff --git a/genesis/generated/905-l2-genesis.json b/genesis/generated/905-l2-genesis.json index 4523bed2..434eab7f 100644 --- a/genesis/generated/905-l2-genesis.json +++ b/genesis/generated/905-l2-genesis.json @@ -15251,6 +15251,10 @@ "code": "0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c806340c10f191161009e57806395d89b411161006e57806395d89b411461023c5780639dc29fac1461025c578063a9059cbb1461026f578063d505accf14610282578063dd62ed3e14610295575f80fd5b806340c10f19146101b757806354fd4d50146101ca57806370a08231146101f25780637ecebe0014610217575f80fd5b806323b872dd116100d957806323b872dd1461017a5780632b8c49e31461018d578063313ce567146101a05780633644e515146101af575f80fd5b806306fdde031461010a578063095ea7b31461012857806318160ddd1461014b57806318bf507714610165575b5f80fd5b6101126102bd565b60405161011f91906108d0565b60405180910390f35b61013b610136366004610920565b6102f4565b604051901515815260200161011f565b6805345cdf77eb68f44c545b60405190815260200161011f565b610178610173366004610920565b610343565b005b61013b610188366004610948565b6103ba565b61017861019b366004610920565b61045f565b6040516012815260200161011f565b6101576104ca565b6101786101c5366004610920565b610546565b60408051808201909152600c81526b0c4b8c0b8c0b58995d184b8d60a21b6020820152610112565b610157610200366004610981565b6387a211a2600c9081525f91909152602090205490565b610157610225366004610981565b6338377508600c9081525f91909152602090205490565b6040805180820190915260048152634d4f434b60e01b6020820152610112565b61017861026a366004610920565b6105b2565b61013b61027d366004610920565b61061e565b6101786102903660046109a1565b610682565b6101576102a3366004610a0e565b602052637f5e9f20600c9081525f91909152603490205490565b60408051808201909152601781527f4c324e61746976655375706572636861696e4552433230000000000000000000602082015290565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b336028602160991b0114610369576040516282b42960e81b815260040160405180910390fd5b6103738282610806565b816001600160a01b03167f7ca16db12dad0e1c536f8062fd9e2e4fbb3d1a503b59df12a0cfa9f96abf1c59826040516103ae91815260200190565b60405180910390a25050565b5f8360601b33602052637f5e9f208117600c526034600c2080548019156103f657808511156103f0576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c2080548085111561041e5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c5f80516020610a40833981519152602080a3505060019392505050565b336028602160991b0114610485576040516282b42960e81b815260040160405180910390fd5b61048f828261086f565b816001600160a01b03167f017c33ab728c93e2be949ec7e4a35b76d607957c5fac4253f5d623b4a3b13036826040516103ae91815260200190565b5f806104d46102bd565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b6001600160a01b03821661056d5760405163d92e233d60e01b815260040160405180910390fd5b6105778282610806565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516103ae91815260200190565b6001600160a01b0382166105d95760405163d92e233d60e01b815260040160405180910390fd5b6105e3828261086f565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516103ae91815260200190565b5f6387a211a2600c52335f526020600c208054808411156106465763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c335f80516020610a40833981519152602080a350600192915050565b5f61068b6102bd565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6428610156106ca57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146107b25763ddafbaef5f526004601cfd5b0190556303faf4f960a51b89176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b6805345cdf77eb68f44c54818101818110156108295763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f5f80516020610a40833981519152602080a35050565b6387a211a2600c52815f526020600c208054808311156108965763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f8181526001600160a01b0383165f80516020610a40833981519152602083a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461091b575f80fd5b919050565b5f8060408385031215610931575f80fd5b61093a83610905565b946020939093013593505050565b5f805f6060848603121561095a575f80fd5b61096384610905565b925061097160208501610905565b9150604084013590509250925092565b5f60208284031215610991575f80fd5b61099a82610905565b9392505050565b5f805f805f805f60e0888a0312156109b7575f80fd5b6109c088610905565b96506109ce60208901610905565b95506040880135945060608801359350608088013560ff811681146109f1575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610a1f575f80fd5b610a2883610905565b9150610a3660208401610905565b9050925092905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e27d15f153a33c726af6e7c67afe08e9c27082b676fb37f860a4147c56280e5564736f6c63430008190033", "balance": "0x0" }, + "420beef000000000000000000000000000000002": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0" + }, "4764b50355837fd3bbdd3977f1da4033b7dd4dcf": { "balance": "0x84595161401484a000000" }, @@ -15315,6 +15319,11 @@ "976ea74026e726554db657fa54763abd0c3a0aa9": { "balance": "0x21e19e0c9bab2400000" }, + "978ce8cd0008062c153d467737ef754beb57c958": { + "code": "0x60806040526004361061002b575f3560e01c806364a197f31461006e578063825f5b2e14610083575f80fd5b3661006a57604080513381523460208201527f60e4c1ac84c9e2c4c0aa82b86b3b1ddf0b1b73fbbeb74c8bc8f8f06041ccfdf6910160405180910390a1005b5f80fd5b61008161007c366004610431565b6100a2565b005b34801561008e575f80fd5b5061008161009d36600461045b565b61023d565b6024602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100e2575f80fd5b505af11580156100f4573d5f803e3d5ffd5b5050604051631834867b60e31b81526024602160991b016004820152306024820152346044820152606481018590525f93506028602160991b01925063c1a433d891506084016020604051808303815f875af1158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a9190610490565b60408051602481018390526001600160a01b03861660448201523460648083019190915282518083039091018152608490910182526020810180516001600160e01b031663412fad9760e11b1790529051637056f41f60e01b81529192506023602160991b0191637056f41f916101f791869130916004016104a7565b6020604051808303815f875af1158015610213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610490565b50505050565b6023602160991b01338114610264576040516282b42960e81b815260040160405180910390fd5b306001600160a01b0316816001600160a01b03166338ffde186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce91906104f2565b6001600160a01b0316146102f4576040516282b42960e81b815260040160405180910390fd5b60405163b1b1b20960e01b8152600481018590526001600160a01b0382169063b1b1b20990602401602060405180830381865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610514565b15155f0361037c5760405163024ea77560e31b815260040160405180910390fd5b604051632e1a7d4d60e01b8152600481018390526024602160991b0190632e1a7d4d906024015f604051808303815f87803b1580156103b9575f80fd5b505af11580156103cb573d5f803e3d5ffd5b505050506103e8838360405180602001604052805f8152506103ef565b5050505050565b5f6103fc845a8585610404565b949350505050565b5f805f835160208501868989f195945050505050565b6001600160a01b038116811461042e575f80fd5b50565b5f8060408385031215610442575f80fd5b823561044d8161041a565b946020939093013593505050565b5f805f6060848603121561046d575f80fd5b83359250602084013561047f8161041a565b929592945050506040919091013590565b5f602082840312156104a0575f80fd5b5051919050565b83815260018060a01b0383166020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610502575f80fd5b815161050d8161041a565b9392505050565b5f60208284031215610524575f80fd5b8151801515811461050d575f80fdfea264697066735822122017fd5cbfa6521b4e4030e9cc5e94e5a4c22d6c06f1aa37d3a2179334ce545a0364736f6c63430008190033", + "balance": "0x0", + "nonce": "0x1" + }, "9965507d1a55bcc2695c58ba16fb37d819b0a4dc": { "balance": "0x21e19e0c9bab2400000" },