Commit 53afefdd authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

sdk: decouple from contracts-bedrock (#10258)

* sdk: decouple from contracts-bedrock

Decouples the sdk from `contracts-bedrock` to enable
it to easily be moved out of the monorepo.

The foundry artifacts are build from 3fc229e3 and then
copy/pasted into the sdk. There are no large breaking changes
planned which is why this is safe to do. This sdk has already
been replaced by viem and in the future a Go sdk can be broken
out of the `op-e2e` package to serve as the reference implementation
of a sdk.

The typescript sdk will be subject to just work until new breaking
changes are introduced but at that point we should have sufficient
migration to the alternative solutions.

* sdk: remove dead dep

* deps: fix pnpm lock
parent 94131808
......@@ -62,7 +62,6 @@
},
"dependencies": {
"@eth-optimism/contracts": "0.6.0",
"@eth-optimism/contracts-bedrock": "workspace:*",
"@eth-optimism/core-utils": "workspace:*",
"lodash": "^4.17.21",
"merkletreejs": "^0.3.11",
......
......@@ -14,10 +14,10 @@ import {
} from '@ethersproject/abstract-provider'
import { predeploys } from '@eth-optimism/contracts'
import { hexStringEquals } from '@eth-optimism/core-utils'
import l1StandardBridgeArtifact from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json'
import l2StandardBridgeArtifact from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json'
import optimismMintableERC20 from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20.sol/OptimismMintableERC20.json'
import l1StandardBridgeArtifact from '../forge-artifacts/L1StandardBridge.json'
import l2StandardBridgeArtifact from '../forge-artifacts/L2StandardBridge.json'
import optimismMintableERC20 from '../forge-artifacts/OptimismMintableERC20.json'
import { CrossChainMessenger } from '../cross-chain-messenger'
import {
IBridgeAdapter,
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{"abi":[{"type":"function","name":"DEPOSITOR_ACCOUNT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"baseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"basefee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"hash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"l1FeeOverhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l1FeeScalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"number","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"sequenceNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setL1BlockValues","inputs":[{"name":"_number","type":"uint64","internalType":"uint64"},{"name":"_timestamp","type":"uint64","internalType":"uint64"},{"name":"_basefee","type":"uint256","internalType":"uint256"},{"name":"_hash","type":"bytes32","internalType":"bytes32"},{"name":"_sequenceNumber","type":"uint64","internalType":"uint64"},{"name":"_batcherHash","type":"bytes32","internalType":"bytes32"},{"name":"_l1FeeOverhead","type":"uint256","internalType":"uint256"},{"name":"_l1FeeScalar","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL1BlockValuesEcotone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"timestamp","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061053e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:145:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:145:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:660;;;;;;:::i;:::-;;:::i;:::-;;1071:19;;;;;;;;;1014:25:357;;;1002:2;987:18;1071:19:145;;;;;;;;3886:956;;;:::i;1961:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1001:22::-;;;;;;1156:28;;;;;;;;;;;;2067:18:357;2055:31;;;2037:50;;2025:2;2010:18;1156:28:145;1893:200:357;1298:31:145;;;;;;;;;;;;;;;2272:10:357;2260:23;;;2242:42;;2230:2;2215:18;1298:31:145;2098:192:357;840:20:145;;;;;;;;;1680:28;;;;;;1821:26;;;;;;931:23;;;;;;;;;;;;1438:27;;;;;;;;;;;;680:86;;724:42;680:86;;;;;2471:42:357;2459:55;;;2441:74;;2429:2;2414:18;680:86:145;2295:226:357;1539:26:145;;;;;;1899;;;;;;2494:660;2789:10;724:42;2789:31;2781:103;;;;;;;2728:2:357;2781:103:145;;;2710:21:357;2767:2;2747:18;;;2740:30;2806:34;2786:18;;;2779:62;2877:29;2857:18;;;2850:57;2924:19;;2781:103:145;;;;;;;;2895:6;:16;;;2921:22;;;;;;;;;2895:16;;;2921:22;;;;;;;;;;;2895:16;2953:18;;;;2981:4;:12;;;;3003:14;:32;;;;;;2895:16;3003:32;;;;;;;;3045:11;:26;;;;3081:13;:30;3121:11;:26;2494:660::o;3886:956::-;4036:8;4046:17;4029:233;;;4096:10;4090:4;4083:24;4194:4;4188;4181:18;4029:233;4453:1;4440:15;4435:3;4431:25;4410:19;4403:54;4566:2;4553:16;4548:3;4544:26;4531:11;4524:47;4618:2;4605:16;4591:12;4584:38;4684:2;4671:16;4653;4646:42;4743:3;4730:17;4719:9;4712:36;4810:3;4797:17;4779:16;4772:43;3886:956::o;14:171:357:-;81:20;;141:18;130:30;;120:41;;110:69;;175:1;172;165:12;110:69;14:171;;;:::o;190:673::-;309:6;317;325;333;341;349;357;365;418:3;406:9;397:7;393:23;389:33;386:53;;;435:1;432;425:12;386:53;458:28;476:9;458:28;:::i;:::-;448:38;;505:37;538:2;527:9;523:18;505:37;:::i;:::-;495:47;;589:2;578:9;574:18;561:32;551:42;;640:2;629:9;625:18;612:32;602:42;;663:38;696:3;685:9;681:19;663:38;:::i;:::-;190:673;;;;-1:-1:-1;190:673:357;;;;653:48;748:3;733:19;;720:33;;-1:-1:-1;800:3:357;785:19;;772:33;;852:3;837:19;824:33;;-1:-1:-1;190:673:357;-1:-1:-1;;190:673:357:o;1050:656::-;1162:4;1191:2;1220;1209:9;1202:21;1252:6;1246:13;1295:6;1290:2;1279:9;1275:18;1268:34;1320:1;1330:140;1344:6;1341:1;1338:13;1330:140;;;1439:14;;;1435:23;;1429:30;1405:17;;;1424:2;1401:26;1394:66;1359:10;;1330:140;;;1488:6;1485:1;1482:13;1479:91;;;1558:1;1553:2;1544:6;1533:9;1529:22;1525:31;1518:42;1479:91;-1:-1:-1;1622:2:357;1610:15;1627:66;1606:88;1591:104;;;;1697:2;1587:113;;1050:656;-1:-1:-1;;;1050:656:357:o","linkReferences":{}},"methodIdentifiers":{"DEPOSITOR_ACCOUNT()":"e591b282","baseFeeScalar()":"c5985918","basefee()":"5cf24969","batcherHash()":"e81b2c6d","blobBaseFee()":"f8206140","blobBaseFeeScalar()":"68d5dca6","hash()":"09bd5a60","l1FeeOverhead()":"8b239f73","l1FeeScalar()":"9e8c4966","number()":"8381f58a","sequenceNumber()":"64ca23ef","setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":"015d8eb9","setL1BlockValuesEcotone()":"440a5e20","timestamp()":"b80777ea","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DEPOSITOR_ACCOUNT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"basefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeOverhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeScalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"number\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_number\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_basefee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batcherHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeOverhead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeScalar\",\"type\":\"uint256\"}],\"name\":\"setL1BlockValues\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setL1BlockValuesEcotone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000015\",\"kind\":\"dev\",\"methods\":{\"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)\":{\"custom:legacy\":\"@notice Updates the L1 block values.\",\"params\":{\"_basefee\":\"L1 basefee.\",\"_batcherHash\":\"Versioned hash to authenticate batcher by.\",\"_hash\":\"L1 blockhash.\",\"_l1FeeOverhead\":\"L1 fee overhead.\",\"_l1FeeScalar\":\"L1 fee scalar.\",\"_number\":\"L1 blocknumber.\",\"_sequenceNumber\":\"Number of L2 blocks since epoch start.\",\"_timestamp\":\"L1 timestamp.\"}}},\"stateVariables\":{\"l1FeeOverhead\":{\"custom:legacy\":\"\"},\"l1FeeScalar\":{\"custom:legacy\":\"\"},\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"L1Block\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DEPOSITOR_ACCOUNT()\":{\"notice\":\"Address of the special depositor account.\"},\"baseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func.\"},\"basefee()\":{\"notice\":\"The latest L1 base fee.\"},\"batcherHash()\":{\"notice\":\"The versioned hash to authenticate the batcher by.\"},\"blobBaseFee()\":{\"notice\":\"The latest L1 blob base fee.\"},\"blobBaseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func.\"},\"hash()\":{\"notice\":\"The latest L1 blockhash.\"},\"l1FeeOverhead()\":{\"notice\":\"The overhead value applied to the L1 portion of the transaction fee.\"},\"l1FeeScalar()\":{\"notice\":\"The scalar value applied to the L1 portion of the transaction fee.\"},\"number()\":{\"notice\":\"The latest L1 block number known by the L2 system.\"},\"sequenceNumber()\":{\"notice\":\"The number of L2 blocks in the same epoch.\"},\"setL1BlockValuesEcotone()\":{\"notice\":\"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by.\"},\"timestamp()\":{\"notice\":\"The latest L1 timestamp known by the L2 system.\"}},\"notice\":\"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \\\"depositor\\\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1Block.sol\":\"L1Block\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_ACCOUNT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"basefee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeOverhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeScalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"number","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sequenceNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"_number","type":"uint64"},{"internalType":"uint64","name":"_timestamp","type":"uint64"},{"internalType":"uint256","name":"_basefee","type":"uint256"},{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"uint64","name":"_sequenceNumber","type":"uint64"},{"internalType":"bytes32","name":"_batcherHash","type":"bytes32"},{"internalType":"uint256","name":"_l1FeeOverhead","type":"uint256"},{"internalType":"uint256","name":"_l1FeeScalar","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValues"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValuesEcotone"},{"inputs":[],"stateMutability":"view","type":"function","name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"custom:legacy":"@notice Updates the L1 block values.","params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"version":1},"userdoc":{"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1Block.sol":"L1Block"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":90216,"contract":"src/L2/L1Block.sol:L1Block","label":"number","offset":0,"slot":"0","type":"t_uint64"},{"astId":90219,"contract":"src/L2/L1Block.sol:L1Block","label":"timestamp","offset":8,"slot":"0","type":"t_uint64"},{"astId":90222,"contract":"src/L2/L1Block.sol:L1Block","label":"basefee","offset":0,"slot":"1","type":"t_uint256"},{"astId":90225,"contract":"src/L2/L1Block.sol:L1Block","label":"hash","offset":0,"slot":"2","type":"t_bytes32"},{"astId":90228,"contract":"src/L2/L1Block.sol:L1Block","label":"sequenceNumber","offset":0,"slot":"3","type":"t_uint64"},{"astId":90231,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFeeScalar","offset":8,"slot":"3","type":"t_uint32"},{"astId":90234,"contract":"src/L2/L1Block.sol:L1Block","label":"baseFeeScalar","offset":12,"slot":"3","type":"t_uint32"},{"astId":90237,"contract":"src/L2/L1Block.sol:L1Block","label":"batcherHash","offset":0,"slot":"4","type":"t_bytes32"},{"astId":90240,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeOverhead","offset":0,"slot":"5","type":"t_uint256"},{"astId":90243,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeScalar","offset":0,"slot":"6","type":"t_uint256"},{"astId":90246,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFee","offset":0,"slot":"7","type":"t_uint256"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"version":1,"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"notice":"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \"depositor\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch."},"devdoc":{"version":1,"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"title":"L1Block"},"ast":{"absolutePath":"src/L2/L1Block.sol","id":90319,"exportedSymbols":{"ISemver":[109417],"L1Block":[90318]},"nodeType":"SourceUnit","src":"32:4813:145","nodes":[{"id":90204,"nodeType":"PragmaDirective","src":"32:23:145","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90206,"nodeType":"ImportDirective","src":"57:52:145","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90319,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90205,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"66:7:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90318,"nodeType":"ContractDefinition","src":"588:4256:145","nodes":[{"id":90213,"nodeType":"VariableDeclaration","src":"680:86:145","nodes":[],"constant":true,"documentation":{"id":90210,"nodeType":"StructuredDocumentation","src":"622:53:145","text":"@notice Address of the special depositor account."},"functionSelector":"e591b282","mutability":"constant","name":"DEPOSITOR_ACCOUNT","nameLocation":"704:17:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90211,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:145","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307844656144444561444465416444654164444541644445616464654164644541644445416430303031","id":90212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"724:42:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001"},"visibility":"public"},{"id":90216,"nodeType":"VariableDeclaration","src":"840:20:145","nodes":[],"constant":false,"documentation":{"id":90214,"nodeType":"StructuredDocumentation","src":"773:62:145","text":"@notice The latest L1 block number known by the L2 system."},"functionSelector":"8381f58a","mutability":"mutable","name":"number","nameLocation":"854:6:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90215,"name":"uint64","nodeType":"ElementaryTypeName","src":"840:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90219,"nodeType":"VariableDeclaration","src":"931:23:145","nodes":[],"constant":false,"documentation":{"id":90217,"nodeType":"StructuredDocumentation","src":"867:59:145","text":"@notice The latest L1 timestamp known by the L2 system."},"functionSelector":"b80777ea","mutability":"mutable","name":"timestamp","nameLocation":"945:9:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90218,"name":"uint64","nodeType":"ElementaryTypeName","src":"931:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90222,"nodeType":"VariableDeclaration","src":"1001:22:145","nodes":[],"constant":false,"documentation":{"id":90220,"nodeType":"StructuredDocumentation","src":"961:35:145","text":"@notice The latest L1 base fee."},"functionSelector":"5cf24969","mutability":"mutable","name":"basefee","nameLocation":"1016:7:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90221,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90225,"nodeType":"VariableDeclaration","src":"1071:19:145","nodes":[],"constant":false,"documentation":{"id":90223,"nodeType":"StructuredDocumentation","src":"1030:36:145","text":"@notice The latest L1 blockhash."},"functionSelector":"09bd5a60","mutability":"mutable","name":"hash","nameLocation":"1086:4:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1071:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":90228,"nodeType":"VariableDeclaration","src":"1156:28:145","nodes":[],"constant":false,"documentation":{"id":90226,"nodeType":"StructuredDocumentation","src":"1097:54:145","text":"@notice The number of L2 blocks in the same epoch."},"functionSelector":"64ca23ef","mutability":"mutable","name":"sequenceNumber","nameLocation":"1170:14:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90227,"name":"uint64","nodeType":"ElementaryTypeName","src":"1156:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90231,"nodeType":"VariableDeclaration","src":"1298:31:145","nodes":[],"constant":false,"documentation":{"id":90229,"nodeType":"StructuredDocumentation","src":"1191:102:145","text":"@notice The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"functionSelector":"68d5dca6","mutability":"mutable","name":"blobBaseFeeScalar","nameLocation":"1312:17:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90230,"name":"uint32","nodeType":"ElementaryTypeName","src":"1298:6:145","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":90234,"nodeType":"VariableDeclaration","src":"1438:27:145","nodes":[],"constant":false,"documentation":{"id":90232,"nodeType":"StructuredDocumentation","src":"1336:97:145","text":"@notice The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"functionSelector":"c5985918","mutability":"mutable","name":"baseFeeScalar","nameLocation":"1452:13:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90233,"name":"uint32","nodeType":"ElementaryTypeName","src":"1438:6:145","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":90237,"nodeType":"VariableDeclaration","src":"1539:26:145","nodes":[],"constant":false,"documentation":{"id":90235,"nodeType":"StructuredDocumentation","src":"1472:62:145","text":"@notice The versioned hash to authenticate the batcher by."},"functionSelector":"e81b2c6d","mutability":"mutable","name":"batcherHash","nameLocation":"1554:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1539:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":90240,"nodeType":"VariableDeclaration","src":"1680:28:145","nodes":[],"constant":false,"documentation":{"id":90238,"nodeType":"StructuredDocumentation","src":"1572:103:145","text":"@notice The overhead value applied to the L1 portion of the transaction fee.\n @custom:legacy"},"functionSelector":"8b239f73","mutability":"mutable","name":"l1FeeOverhead","nameLocation":"1695:13:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1680:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90243,"nodeType":"VariableDeclaration","src":"1821:26:145","nodes":[],"constant":false,"documentation":{"id":90241,"nodeType":"StructuredDocumentation","src":"1715:101:145","text":"@notice The scalar value applied to the L1 portion of the transaction fee.\n @custom:legacy"},"functionSelector":"9e8c4966","mutability":"mutable","name":"l1FeeScalar","nameLocation":"1836:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90242,"name":"uint256","nodeType":"ElementaryTypeName","src":"1821:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90246,"nodeType":"VariableDeclaration","src":"1899:26:145","nodes":[],"constant":false,"documentation":{"id":90244,"nodeType":"StructuredDocumentation","src":"1854:40:145","text":"@notice The latest L1 blob base fee."},"functionSelector":"f8206140","mutability":"mutable","name":"blobBaseFee","nameLocation":"1914:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1899:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90250,"nodeType":"VariableDeclaration","src":"1961:40:145","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90247,"nodeType":"StructuredDocumentation","src":"1932:24:145","text":"@custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1984:7:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90248,"name":"string","nodeType":"ElementaryTypeName","src":"1961:6:145","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":90249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:7:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":90311,"nodeType":"FunctionDefinition","src":"2494:660:145","nodes":[],"body":{"id":90310,"nodeType":"Block","src":"2771:383:145","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":90271,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2789:3:145","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2789:10:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":90273,"name":"DEPOSITOR_ACCOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90213,"src":"2803:17:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2789:31:145","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f756e742063616e20736574204c3120626c6f636b2076616c756573","id":90275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2822:61:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \"L1Block: only the depositor account can set L1 block values\""},"value":"L1Block: only the depositor account can set L1 block values"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \"L1Block: only the depositor account can set L1 block values\""}],"id":90270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2781:7:145","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2781:103:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90277,"nodeType":"ExpressionStatement","src":"2781:103:145"},{"expression":{"id":90280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90278,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90216,"src":"2895:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90279,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90253,"src":"2904:7:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2895:16:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90281,"nodeType":"ExpressionStatement","src":"2895:16:145"},{"expression":{"id":90284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90282,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90219,"src":"2921:9:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90283,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90255,"src":"2933:10:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2921:22:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90285,"nodeType":"ExpressionStatement","src":"2921:22:145"},{"expression":{"id":90288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90286,"name":"basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90222,"src":"2953:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90287,"name":"_basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90257,"src":"2963:8:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2953:18:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90289,"nodeType":"ExpressionStatement","src":"2953:18:145"},{"expression":{"id":90292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90290,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90225,"src":"2981:4:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90291,"name":"_hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90259,"src":"2988:5:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2981:12:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":90293,"nodeType":"ExpressionStatement","src":"2981:12:145"},{"expression":{"id":90296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90294,"name":"sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90228,"src":"3003:14:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90295,"name":"_sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90261,"src":"3020:15:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3003:32:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90297,"nodeType":"ExpressionStatement","src":"3003:32:145"},{"expression":{"id":90300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90298,"name":"batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90237,"src":"3045:11:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90299,"name":"_batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90263,"src":"3059:12:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3045:26:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":90301,"nodeType":"ExpressionStatement","src":"3045:26:145"},{"expression":{"id":90304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90302,"name":"l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90240,"src":"3081:13:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90303,"name":"_l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90265,"src":"3097:14:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3081:30:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90305,"nodeType":"ExpressionStatement","src":"3081:30:145"},{"expression":{"id":90308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90306,"name":"l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90243,"src":"3121:11:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90307,"name":"_l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90267,"src":"3135:12:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3121:26:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90309,"nodeType":"ExpressionStatement","src":"3121:26:145"}]},"documentation":{"id":90251,"nodeType":"StructuredDocumentation","src":"2008:481:145","text":"@custom:legacy\n @notice Updates the L1 block values.\n @param _number L1 blocknumber.\n @param _timestamp L1 timestamp.\n @param _basefee L1 basefee.\n @param _hash L1 blockhash.\n @param _sequenceNumber Number of L2 blocks since epoch start.\n @param _batcherHash Versioned hash to authenticate batcher by.\n @param _l1FeeOverhead L1 fee overhead.\n @param _l1FeeScalar L1 fee scalar."},"functionSelector":"015d8eb9","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValues","nameLocation":"2503:16:145","parameters":{"id":90268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90253,"mutability":"mutable","name":"_number","nameLocation":"2536:7:145","nodeType":"VariableDeclaration","scope":90311,"src":"2529:14:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90252,"name":"uint64","nodeType":"ElementaryTypeName","src":"2529:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90255,"mutability":"mutable","name":"_timestamp","nameLocation":"2560:10:145","nodeType":"VariableDeclaration","scope":90311,"src":"2553:17:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90254,"name":"uint64","nodeType":"ElementaryTypeName","src":"2553:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90257,"mutability":"mutable","name":"_basefee","nameLocation":"2588:8:145","nodeType":"VariableDeclaration","scope":90311,"src":"2580:16:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90256,"name":"uint256","nodeType":"ElementaryTypeName","src":"2580:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90259,"mutability":"mutable","name":"_hash","nameLocation":"2614:5:145","nodeType":"VariableDeclaration","scope":90311,"src":"2606:13:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2606:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":90261,"mutability":"mutable","name":"_sequenceNumber","nameLocation":"2636:15:145","nodeType":"VariableDeclaration","scope":90311,"src":"2629:22:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90260,"name":"uint64","nodeType":"ElementaryTypeName","src":"2629:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90263,"mutability":"mutable","name":"_batcherHash","nameLocation":"2669:12:145","nodeType":"VariableDeclaration","scope":90311,"src":"2661:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2661:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":90265,"mutability":"mutable","name":"_l1FeeOverhead","nameLocation":"2699:14:145","nodeType":"VariableDeclaration","scope":90311,"src":"2691:22:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90264,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90267,"mutability":"mutable","name":"_l1FeeScalar","nameLocation":"2731:12:145","nodeType":"VariableDeclaration","scope":90311,"src":"2723:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2723:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2519:230:145"},"returnParameters":{"id":90269,"nodeType":"ParameterList","parameters":[],"src":"2771:0:145"},"scope":90318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90317,"nodeType":"FunctionDefinition","src":"3886:956:145","nodes":[],"body":{"id":90316,"nodeType":"Block","src":"3930:912:145","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3949:887:145","statements":[{"body":{"nodeType":"YulBlock","src":"4065:197:145","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4090:4:145","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"4096:10:145","type":"","value":"0x3cc50b45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4083:6:145"},"nodeType":"YulFunctionCall","src":"4083:24:145"},"nodeType":"YulExpressionStatement","src":"4083:24:145"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4188:4:145","type":"","value":"0x1C"},{"kind":"number","nodeType":"YulLiteral","src":"4194:4:145","type":"","value":"0x04"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4181:6:145"},"nodeType":"YulFunctionCall","src":"4181:18:145"},"nodeType":"YulExpressionStatement","src":"4181:18:145"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"caller","nodeType":"YulIdentifier","src":"4036:6:145"},"nodeType":"YulFunctionCall","src":"4036:8:145"},{"name":"DEPOSITOR_ACCOUNT","nodeType":"YulIdentifier","src":"4046:17:145"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4032:3:145"},"nodeType":"YulFunctionCall","src":"4032:32:145"},"nodeType":"YulIf","src":"4029:233:145"},{"nodeType":"YulVariableDeclaration","src":"4275:27:145","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4300:1:145","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4287:12:145"},"nodeType":"YulFunctionCall","src":"4287:15:145"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"4279:4:145","type":""}]},{"expression":{"arguments":[{"name":"sequenceNumber.slot","nodeType":"YulIdentifier","src":"4410:19:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4435:3:145","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4453:1:145","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4440:12:145"},"nodeType":"YulFunctionCall","src":"4440:15:145"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4431:3:145"},"nodeType":"YulFunctionCall","src":"4431:25:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4403:6:145"},"nodeType":"YulFunctionCall","src":"4403:54:145"},"nodeType":"YulExpressionStatement","src":"4403:54:145"},{"expression":{"arguments":[{"name":"number.slot","nodeType":"YulIdentifier","src":"4531:11:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4548:3:145","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4566:2:145","type":"","value":"20"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4553:12:145"},"nodeType":"YulFunctionCall","src":"4553:16:145"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4544:3:145"},"nodeType":"YulFunctionCall","src":"4544:26:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4524:6:145"},"nodeType":"YulFunctionCall","src":"4524:47:145"},"nodeType":"YulExpressionStatement","src":"4524:47:145"},{"expression":{"arguments":[{"name":"basefee.slot","nodeType":"YulIdentifier","src":"4591:12:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4618:2:145","type":"","value":"36"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4605:12:145"},"nodeType":"YulFunctionCall","src":"4605:16:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4584:6:145"},"nodeType":"YulFunctionCall","src":"4584:38:145"},"nodeType":"YulExpressionStatement","src":"4584:38:145"},{"expression":{"arguments":[{"name":"blobBaseFee.slot","nodeType":"YulIdentifier","src":"4653:16:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4684:2:145","type":"","value":"68"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4671:12:145"},"nodeType":"YulFunctionCall","src":"4671:16:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4646:6:145"},"nodeType":"YulFunctionCall","src":"4646:42:145"},"nodeType":"YulExpressionStatement","src":"4646:42:145"},{"expression":{"arguments":[{"name":"hash.slot","nodeType":"YulIdentifier","src":"4719:9:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4743:3:145","type":"","value":"100"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4730:12:145"},"nodeType":"YulFunctionCall","src":"4730:17:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4712:6:145"},"nodeType":"YulFunctionCall","src":"4712:36:145"},"nodeType":"YulExpressionStatement","src":"4712:36:145"},{"expression":{"arguments":[{"name":"batcherHash.slot","nodeType":"YulIdentifier","src":"4779:16:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4810:3:145","type":"","value":"132"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4797:12:145"},"nodeType":"YulFunctionCall","src":"4797:17:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4772:6:145"},"nodeType":"YulFunctionCall","src":"4772:43:145"},"nodeType":"YulExpressionStatement","src":"4772:43:145"}]},"evmVersion":"london","externalReferences":[{"declaration":90213,"isOffset":false,"isSlot":false,"src":"4046:17:145","valueSize":1},{"declaration":90222,"isOffset":false,"isSlot":true,"src":"4591:12:145","suffix":"slot","valueSize":1},{"declaration":90237,"isOffset":false,"isSlot":true,"src":"4779:16:145","suffix":"slot","valueSize":1},{"declaration":90246,"isOffset":false,"isSlot":true,"src":"4653:16:145","suffix":"slot","valueSize":1},{"declaration":90225,"isOffset":false,"isSlot":true,"src":"4719:9:145","suffix":"slot","valueSize":1},{"declaration":90216,"isOffset":false,"isSlot":true,"src":"4531:11:145","suffix":"slot","valueSize":1},{"declaration":90228,"isOffset":false,"isSlot":true,"src":"4410:19:145","suffix":"slot","valueSize":1}],"id":90315,"nodeType":"InlineAssembly","src":"3940:896:145"}]},"documentation":{"id":90312,"nodeType":"StructuredDocumentation","src":"3160:721:145","text":"@notice Updates the L1 block values for an Ecotone upgraded chain.\n Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size.\n Params are expected to be in the following order:\n 1. _baseFeeScalar L1 base fee scalar\n 2. _blobBaseFeeScalar L1 blob base fee scalar\n 3. _sequenceNumber Number of L2 blocks since epoch start.\n 4. _timestamp L1 timestamp.\n 5. _number L1 blocknumber.\n 6. _basefee L1 base fee.\n 7. _blobBaseFee L1 blob base fee.\n 8. _hash L1 blockhash.\n 9. _batcherHash Versioned hash to authenticate batcher by."},"functionSelector":"440a5e20","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValuesEcotone","nameLocation":"3895:23:145","parameters":{"id":90313,"nodeType":"ParameterList","parameters":[],"src":"3918:2:145"},"returnParameters":{"id":90314,"nodeType":"ParameterList","parameters":[],"src":"3930:0:145"},"scope":90318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":90208,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"608:7:145"},"id":90209,"nodeType":"InheritanceSpecifier","src":"608:7:145"}],"canonicalName":"L1Block","contractDependencies":[],"contractKind":"contract","documentation":{"id":90207,"nodeType":"StructuredDocumentation","src":"111:477:145","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000015\n @title L1Block\n @notice The L1Block predeploy gives users access to information about the last known L1 block.\n Values within this contract are updated once per epoch (every L1 block) and can only be\n set by the \"depositor\" account, a special system address. Depositor account transactions\n are created by the protocol whenever we move to a new epoch."},"fullyImplemented":true,"linearizedBaseContracts":[90318,109417],"name":"L1Block","nameLocation":"597:7:145","scope":90319,"usedErrors":[]}],"license":"MIT"},"id":145}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initiateWithdrawal","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_gasLimit","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sentMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"MessagePassed","inputs":[{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"withdrawalHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"WithdrawerBalanceBurnt","inputs":[{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506106d3806100206000396000f3fe6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d1461012a578063c2b3e5ac1461016a578063ecc704281461017d57600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101e2565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b6103a6565b3480156100e057600080fd5b5061011d6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b691906104d1565b34801561013657600080fd5b5061015a6101453660046104eb565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b610178366004610533565b6101e2565b34801561018957600080fd5b506101d46001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b60006102786040518060c0016040528061023c6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103de565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103136001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054348787876040516103489493929190610637565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103b08161042b565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040e979096959101610667565b604051602081830303815290604052805190602001209050919050565b806040516104389061045a565b6040518091039082f0905080158015610455573d6000803e3d6000fd5b505050565b6008806106bf83390190565b6000815180845260005b8181101561048c57602081850181015186830182015201610470565b8181111561049e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104e46020830184610466565b9392505050565b6000602082840312156104fd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561054857600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056c57600080fd5b925060208401359150604084013567ffffffffffffffff8082111561059057600080fd5b818601915086601f8301126105a457600080fd5b8135818111156105b6576105b6610504565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105fc576105fc610504565b8160405282815289602084870101111561061557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8481528360208201526080604082015260006106566080830185610466565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106b260c0830184610466565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a","sourceMap":"722:3696:150:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d1461012a578063c2b3e5ac1461016a578063ecc704281461017d57600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101e2565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b6103a6565b3480156100e057600080fd5b5061011d6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b691906104d1565b34801561013657600080fd5b5061015a6101453660046104eb565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b610178366004610533565b6101e2565b34801561018957600080fd5b506101d46001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b60006102786040518060c0016040528061023c6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103de565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103136001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054348787876040516103489493929190610637565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103b08161042b565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040e979096959101610667565b604051602081830303815290604052805190602001209050919050565b806040516104389061045a565b6040518091039082f0905080158015610455573d6000803e3d6000fd5b505050565b6008806106bf83390190565b6000815180845260005b8181101561048c57602081850181015186830182015201610470565b8181111561049e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104e46020830184610466565b9392505050565b6000602082840312156104fd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561054857600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056c57600080fd5b925060208401359150604084013567ffffffffffffffff8082111561059057600080fd5b818601915086601f8301126105a457600080fd5b8135818111156105b6576105b6610504565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105fc576105fc610504565b8160405282815289602084870101111561061557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8481528360208201526080604082015260006106566080830185610466565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106b260c0830184610466565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a","sourceMap":"722:3696:150:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2474:68;2493:10;911:7;2532:9;;;;;;;;;;;;2474:18;:68::i;:::-;722:3696;;;;;981:42;;;;;;;;;;;;1022:1;981:42;;;;;188:6:357;176:19;;;158:38;;146:2;131:18;981:42:150;;;;;;;;2915:154;;;;;;;;;;;;;:::i;2307:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1094:44::-;;;;;;;;;;-1:-1:-1;1094:44:150;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1318:14:357;;1311:22;1293:41;;1281:2;1266:18;1094:44:150;1153:187:357;3311:650:150;;;;;;:::i;:::-;;:::i;4282:134::-;;;;;;;;;;;;4383:8;;;;4855:18:195;4852:30;;4282:134:150;;;;2930:25:357;;;2918:2;2903:18;4282:134:150;2784:177:357;3311:650:150;3420:22;3445:297;3481:251;;;;;;;;3534:14;4383:8;;;;4855:18:195;4852:30;;4282:134:150;3534:14;3481:251;;3574:10;3481:251;;;;;;;;;;;3642:9;3481:251;;;;;;;;;;;;;;;3445:22;:297::i;:::-;3753:12;:28;;;;;;;;;;:35;;;;3784:4;3753:35;;;3420:322;-1:-1:-1;3804:95:150;;;3834:10;3818:14;4383:8;;;;4855:18:195;4852:30;;4282:134:150;3818:14;3804:95;3855:9;3866;3877:5;3884:14;3804:95;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;3936:8:150;3934:10;;;;;;;;;;;;;;;;-1:-1:-1;;3311:650:150:o;2915:154::-;2968:21;2999:17;2968:21;2999:8;:17::i;:::-;3031:31;;3054:7;;3031:31;;;;;2940:129;2915:154::o;4456:211:196:-;4590:9;;4601:10;;;;;4613;;;;;4625:9;;;;4636:12;;;;4650:8;;;;4579:80;;4543:7;;4579:80;;4590:9;;4601:10;4650:8;4579:80;;:::i;:::-;;;;;;;;;;;;;4569:91;;;;;;4562:98;;4456:211;;;:::o;224:86:190:-;292:7;273:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;224:86;:::o;-1:-1:-1:-;;;;;;;;:::o;207:531:357:-;249:3;287:5;281:12;314:6;309:3;302:19;339:1;349:162;363:6;360:1;357:13;349:162;;;425:4;481:13;;;477:22;;471:29;453:11;;;449:20;;442:59;378:12;349:162;;;529:6;526:1;523:13;520:87;;;595:1;588:4;579:6;574:3;570:16;566:27;559:38;520:87;-1:-1:-1;652:2:357;640:15;657:66;636:88;627:98;;;;727:4;623:109;;207:531;-1:-1:-1;;207:531:357:o;743:220::-;892:2;881:9;874:21;855:4;912:45;953:2;942:9;938:18;930:6;912:45;:::i;:::-;904:53;743:220;-1:-1:-1;;;743:220:357:o;968:180::-;1027:6;1080:2;1068:9;1059:7;1055:23;1051:32;1048:52;;;1096:1;1093;1086:12;1048:52;-1:-1:-1;1119:23:357;;968:180;-1:-1:-1;968:180:357:o;1345:184::-;1397:77;1394:1;1387:88;1494:4;1491:1;1484:15;1518:4;1515:1;1508:15;1534:1245;1620:6;1628;1636;1689:2;1677:9;1668:7;1664:23;1660:32;1657:52;;;1705:1;1702;1695:12;1657:52;1744:9;1731:23;1794:42;1787:5;1783:54;1776:5;1773:65;1763:93;;1852:1;1849;1842:12;1763:93;1875:5;-1:-1:-1;1927:2:357;1912:18;;1899:32;;-1:-1:-1;1982:2:357;1967:18;;1954:32;2005:18;2035:14;;;2032:34;;;2062:1;2059;2052:12;2032:34;2100:6;2089:9;2085:22;2075:32;;2145:7;2138:4;2134:2;2130:13;2126:27;2116:55;;2167:1;2164;2157:12;2116:55;2203:2;2190:16;2225:2;2221;2218:10;2215:36;;;2231:18;;:::i;:::-;2365:2;2359:9;2427:4;2419:13;;2270:66;2415:22;;;2439:2;2411:31;2407:40;2395:53;;;2463:18;;;2483:22;;;2460:46;2457:72;;;2509:18;;:::i;:::-;2549:10;2545:2;2538:22;2584:2;2576:6;2569:18;2624:7;2619:2;2614;2610;2606:11;2602:20;2599:33;2596:53;;;2645:1;2642;2635:12;2596:53;2701:2;2696;2692;2688:11;2683:2;2675:6;2671:15;2658:46;2746:1;2741:2;2736;2728:6;2724:15;2720:24;2713:35;2767:6;2757:16;;;;;;;1534:1245;;;;;:::o;2966:433::-;3197:6;3186:9;3179:25;3240:6;3235:2;3224:9;3220:18;3213:34;3283:3;3278:2;3267:9;3263:18;3256:31;3160:4;3304:46;3345:3;3334:9;3330:19;3322:6;3304:46;:::i;:::-;3296:54;;3386:6;3381:2;3370:9;3366:18;3359:34;2966:433;;;;;;;:::o;3404:656::-;3691:6;3680:9;3673:25;3654:4;3717:42;3807:2;3799:6;3795:15;3790:2;3779:9;3775:18;3768:43;3859:2;3851:6;3847:15;3842:2;3831:9;3827:18;3820:43;;3899:6;3894:2;3883:9;3879:18;3872:34;3943:6;3937:3;3926:9;3922:19;3915:35;3987:3;3981;3970:9;3966:19;3959:32;4008:46;4049:3;4038:9;4034:19;4026:6;4008:46;:::i;:::-;4000:54;3404:656;-1:-1:-1;;;;;;;;3404:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","burn()":"44df8e70","initiateWithdrawal(address,uint256,bytes)":"c2b3e5ac","messageNonce()":"ecc70428","sentMessages(bytes32)":"82e3702d","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"}],\"name\":\"MessagePassed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawerBalanceBurnt\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSAGE_VERSION\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initiateWithdrawal\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sentMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000016\",\"events\":{\"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)\":{\"params\":{\"data\":\"The data to be forwarded to the target on L1.\",\"gasLimit\":\"The minimum amount of gas that must be provided when withdrawing.\",\"nonce\":\"Unique value corresponding to each withdrawal.\",\"sender\":\"The L2 account address which initiated the withdrawal.\",\"target\":\"The L1 account address the call will be send to.\",\"value\":\"The ETH value submitted for withdrawal, to be forwarded to the target.\",\"withdrawalHash\":\"The hash of the withdrawal.\"}},\"WithdrawerBalanceBurnt(uint256)\":{\"params\":{\"amount\":\"Amount of ETh that was burned.\"}}},\"kind\":\"dev\",\"methods\":{\"initiateWithdrawal(address,uint256,bytes)\":{\"params\":{\"_data\":\"Data to forward to L1 target.\",\"_gasLimit\":\"Minimum gas limit for executing the message on L1.\",\"_target\":\"Address to call on L1 execution.\"}},\"messageNonce()\":{\"returns\":{\"_0\":\"Nonce of the next message to be sent, with added message version.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"L2ToL1MessagePasser\",\"version\":1},\"userdoc\":{\"events\":{\"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)\":{\"notice\":\"Emitted any time a withdrawal is initiated.\"},\"WithdrawerBalanceBurnt(uint256)\":{\"notice\":\"Emitted when the balance of this contract is burned.\"}},\"kind\":\"user\",\"methods\":{\"MESSAGE_VERSION()\":{\"notice\":\"The current message version identifier.\"},\"burn()\":{\"notice\":\"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap.\"},\"initiateWithdrawal(address,uint256,bytes)\":{\"notice\":\"Sends a message from L2 to L1.\"},\"messageNonce()\":{\"notice\":\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\"},\"sentMessages(bytes32)\":{\"notice\":\"Includes the message hashes for all withdrawals\"}},\"notice\":\"The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from L2 to L1 can be stored. The storage root of this contract is pulled up to the top level of the L2 output to reduce the cost of proving the existence of sent messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L2ToL1MessagePasser.sol\":\"L2ToL1MessagePasser\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"bytes32","name":"withdrawalHash","type":"bytes32","indexed":false}],"type":"event","name":"MessagePassed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"WithdrawerBalanceBurnt","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"initiateWithdrawal"},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"initiateWithdrawal(address,uint256,bytes)":{"params":{"_data":"Data to forward to L1 target.","_gasLimit":"Minimum gas limit for executing the message on L1.","_target":"Address to call on L1 execution."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"The current message version identifier."},"burn()":{"notice":"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap."},"initiateWithdrawal(address,uint256,bytes)":{"notice":"Sends a message from L2 to L1."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"sentMessages(bytes32)":{"notice":"Includes the message hashes for all withdrawals"}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2ToL1MessagePasser.sol":"L2ToL1MessagePasser"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":91174,"contract":"src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser","label":"sentMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"},{"astId":91177,"contract":"src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser","label":"msgNonce","offset":0,"slot":"1","type":"t_uint240"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"The current message version identifier."},"burn()":{"notice":"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap."},"initiateWithdrawal(address,uint256,bytes)":{"notice":"Sends a message from L2 to L1."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"sentMessages(bytes32)":{"notice":"Includes the message hashes for all withdrawals"}},"events":{"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)":{"notice":"Emitted any time a withdrawal is initiated."},"WithdrawerBalanceBurnt(uint256)":{"notice":"Emitted when the balance of this contract is burned."}},"notice":"The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from L2 to L1 can be stored. The storage root of this contract is pulled up to the top level of the L2 output to reduce the cost of proving the existence of sent messages."},"devdoc":{"version":1,"kind":"dev","methods":{"initiateWithdrawal(address,uint256,bytes)":{"params":{"_data":"Data to forward to L1 target.","_gasLimit":"Minimum gas limit for executing the message on L1.","_target":"Address to call on L1 execution."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}}},"events":{"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)":{"params":{"data":"The data to be forwarded to the target on L1.","gasLimit":"The minimum amount of gas that must be provided when withdrawing.","nonce":"Unique value corresponding to each withdrawal.","sender":"The L2 account address which initiated the withdrawal.","target":"The L1 account address the call will be send to.","value":"The ETH value submitted for withdrawal, to be forwarded to the target.","withdrawalHash":"The hash of the withdrawal."}},"WithdrawerBalanceBurnt(uint256)":{"params":{"amount":"Amount of ETh that was burned."}}},"title":"L2ToL1MessagePasser"},"ast":{"absolutePath":"src/L2/L2ToL1MessagePasser.sol","id":91308,"exportedSymbols":{"Burn":[102909],"Encoding":[103714],"Hashing":[103936],"ISemver":[109417],"L2ToL1MessagePasser":[91307],"Types":[104349]},"nodeType":"SourceUnit","src":"32:4387:150","nodes":[{"id":91148,"nodeType":"PragmaDirective","src":"32:23:150","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91150,"nodeType":"ImportDirective","src":"57:48:150","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":104350,"symbolAliases":[{"foreign":{"id":91149,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"66:5:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91152,"nodeType":"ImportDirective","src":"106:52:150","nodes":[],"absolutePath":"src/libraries/Hashing.sol","file":"src/libraries/Hashing.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":103937,"symbolAliases":[{"foreign":{"id":91151,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"115:7:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91154,"nodeType":"ImportDirective","src":"159:54:150","nodes":[],"absolutePath":"src/libraries/Encoding.sol","file":"src/libraries/Encoding.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":103715,"symbolAliases":[{"foreign":{"id":91153,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103714,"src":"168:8:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91156,"nodeType":"ImportDirective","src":"214:46:150","nodes":[],"absolutePath":"src/libraries/Burn.sol","file":"src/libraries/Burn.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":102926,"symbolAliases":[{"foreign":{"id":91155,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102909,"src":"223:4:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91158,"nodeType":"ImportDirective","src":"261:52:150","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":91157,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"270:7:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91307,"nodeType":"ContractDefinition","src":"722:3696:150","nodes":[{"id":91165,"nodeType":"VariableDeclaration","src":"857:61:150","nodes":[],"constant":true,"documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"768:84:150","text":"@notice The L1 gas limit set when eth is withdrawn using the receive() function."},"mutability":"constant","name":"RECEIVE_DEFAULT_GAS_LIMIT","nameLocation":"883:25:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91163,"name":"uint256","nodeType":"ElementaryTypeName","src":"857:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130305f303030","id":91164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"911:7:150","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"visibility":"internal"},{"id":91169,"nodeType":"VariableDeclaration","src":"981:42:150","nodes":[],"constant":true,"documentation":{"id":91166,"nodeType":"StructuredDocumentation","src":"925:51:150","text":"@notice The current message version identifier."},"functionSelector":"3f827a5a","mutability":"constant","name":"MESSAGE_VERSION","nameLocation":"1004:15:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":91167,"name":"uint16","nodeType":"ElementaryTypeName","src":"981:6:150","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":91168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:150","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":91174,"nodeType":"VariableDeclaration","src":"1094:44:150","nodes":[],"constant":false,"documentation":{"id":91170,"nodeType":"StructuredDocumentation","src":"1030:59:150","text":"@notice Includes the message hashes for all withdrawals"},"functionSelector":"82e3702d","mutability":"mutable","name":"sentMessages","nameLocation":"1126:12:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":91173,"keyType":{"id":91171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1102:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1094:24:150","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":91172,"name":"bool","nodeType":"ElementaryTypeName","src":"1113:4:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":91177,"nodeType":"VariableDeclaration","src":"1205:25:150","nodes":[],"constant":false,"documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"1145:55:150","text":"@notice A unique value hashed with each withdrawal."},"mutability":"mutable","name":"msgNonce","nameLocation":"1222:8:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":91176,"name":"uint240","nodeType":"ElementaryTypeName","src":"1205:7:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"},{"id":91194,"nodeType":"EventDefinition","src":"1869:222:150","nodes":[],"anonymous":false,"documentation":{"id":91178,"nodeType":"StructuredDocumentation","src":"1237:627:150","text":"@notice Emitted any time a withdrawal is initiated.\n @param nonce Unique value corresponding to each withdrawal.\n @param sender The L2 account address which initiated the withdrawal.\n @param target The L1 account address the call will be send to.\n @param value The ETH value submitted for withdrawal, to be forwarded to the target.\n @param gasLimit The minimum amount of gas that must be provided when withdrawing.\n @param data The data to be forwarded to the target on L1.\n @param withdrawalHash The hash of the withdrawal."},"eventSelector":"02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054","name":"MessagePassed","nameLocation":"1875:13:150","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91180,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"1914:5:150","nodeType":"VariableDeclaration","scope":91194,"src":"1898:21:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91179,"name":"uint256","nodeType":"ElementaryTypeName","src":"1898:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91182,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1945:6:150","nodeType":"VariableDeclaration","scope":91194,"src":"1929:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91181,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91184,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"1977:6:150","nodeType":"VariableDeclaration","scope":91194,"src":"1961:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91183,"name":"address","nodeType":"ElementaryTypeName","src":"1961:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91186,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2001:5:150","nodeType":"VariableDeclaration","scope":91194,"src":"1993:13:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91188,"indexed":false,"mutability":"mutable","name":"gasLimit","nameLocation":"2024:8:150","nodeType":"VariableDeclaration","scope":91194,"src":"2016:16:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2016:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91190,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2048:4:150","nodeType":"VariableDeclaration","scope":91194,"src":"2042:10:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91189,"name":"bytes","nodeType":"ElementaryTypeName","src":"2042:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":91192,"indexed":false,"mutability":"mutable","name":"withdrawalHash","nameLocation":"2070:14:150","nodeType":"VariableDeclaration","scope":91194,"src":"2062:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2062:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1888:202:150"}},{"id":91199,"nodeType":"EventDefinition","src":"2219:53:150","nodes":[],"anonymous":false,"documentation":{"id":91195,"nodeType":"StructuredDocumentation","src":"2097:117:150","text":"@notice Emitted when the balance of this contract is burned.\n @param amount Amount of ETh that was burned."},"eventSelector":"7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f","name":"WithdrawerBalanceBurnt","nameLocation":"2225:22:150","parameters":{"id":91198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91197,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"2264:6:150","nodeType":"VariableDeclaration","scope":91199,"src":"2248:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2247:24:150"}},{"id":91203,"nodeType":"VariableDeclaration","src":"2307:40:150","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":91200,"nodeType":"StructuredDocumentation","src":"2278:24:150","text":"@custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2330:7:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91201,"name":"string","nodeType":"ElementaryTypeName","src":"2307:6:150","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":91202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2340:7:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":91218,"nodeType":"FunctionDefinition","src":"2437:112:150","nodes":[],"body":{"id":91217,"nodeType":"Block","src":"2464:85:150","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":91208,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2493:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2493:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91210,"name":"RECEIVE_DEFAULT_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91165,"src":"2505:25:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":91213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2538:2:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":91212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2532:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":91211,"name":"bytes","nodeType":"ElementaryTypeName","src":"2532:5:150","typeDescriptions":{}}},"id":91214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2532:9:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91207,"name":"initiateWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91293,"src":"2474:18:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":91215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2474:68:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91216,"nodeType":"ExpressionStatement","src":"2474:68:150"}]},"documentation":{"id":91204,"nodeType":"StructuredDocumentation","src":"2354:78:150","text":"@notice Allows users to withdraw ETH by sending directly to this contract."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":91205,"nodeType":"ParameterList","parameters":[],"src":"2444:2:150"},"returnParameters":{"id":91206,"nodeType":"ParameterList","parameters":[],"src":"2464:0:150"},"scope":91307,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":91241,"nodeType":"FunctionDefinition","src":"2915:154:150","nodes":[],"body":{"id":91240,"nodeType":"Block","src":"2940:129:150","nodes":[],"statements":[{"assignments":[91223],"declarations":[{"constant":false,"id":91223,"mutability":"mutable","name":"balance","nameLocation":"2958:7:150","nodeType":"VariableDeclaration","scope":91240,"src":"2950:15:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91222,"name":"uint256","nodeType":"ElementaryTypeName","src":"2950:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":91229,"initialValue":{"expression":{"arguments":[{"id":91226,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2976:4:150","typeDescriptions":{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}],"id":91225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2968:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91224,"name":"address","nodeType":"ElementaryTypeName","src":"2968:7:150","typeDescriptions":{}}},"id":91227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2968:13:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":91228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2968:21:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2950:39:150"},{"expression":{"arguments":[{"id":91233,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91223,"src":"3008:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":91230,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102909,"src":"2999:4:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Burn_$102909_$","typeString":"type(library Burn)"}},"id":91232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"eth","nodeType":"MemberAccess","referencedDeclaration":102881,"src":"2999:8:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":91234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:17:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91235,"nodeType":"ExpressionStatement","src":"2999:17:150"},{"eventCall":{"arguments":[{"id":91237,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91223,"src":"3054:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":91236,"name":"WithdrawerBalanceBurnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91199,"src":"3031:22:150","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":91238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3031:31:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91239,"nodeType":"EmitStatement","src":"3026:36:150"}]},"documentation":{"id":91219,"nodeType":"StructuredDocumentation","src":"2555:355:150","text":"@notice Removes all ETH held by this contract from the state. Used to prevent the amount of\n ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to\n create a contract and self-destruct it to itself. Anyone can call this function. Not\n incentivized since this function is very cheap."},"functionSelector":"44df8e70","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2924:4:150","parameters":{"id":91220,"nodeType":"ParameterList","parameters":[],"src":"2928:2:150"},"returnParameters":{"id":91221,"nodeType":"ParameterList","parameters":[],"src":"2940:0:150"},"scope":91307,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91293,"nodeType":"FunctionDefinition","src":"3311:650:150","nodes":[],"body":{"id":91292,"nodeType":"Block","src":"3410:551:150","nodes":[],"statements":[{"assignments":[91252],"declarations":[{"constant":false,"id":91252,"mutability":"mutable","name":"withdrawalHash","nameLocation":"3428:14:150","nodeType":"VariableDeclaration","scope":91292,"src":"3420:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3420:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":91268,"initialValue":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":91257,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91306,"src":"3534:12:150","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3534:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":91259,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3574:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3574:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91261,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91244,"src":"3610:7:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3642:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3642:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91264,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91246,"src":"3679:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91265,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91248,"src":"3712:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":91255,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"3481:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Types_$104349_$","typeString":"type(library Types)"}},"id":91256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"WithdrawalTransaction","nodeType":"MemberAccess","referencedDeclaration":104348,"src":"3481:27:150","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_WithdrawalTransaction_$104348_storage_ptr_$","typeString":"type(struct Types.WithdrawalTransaction storage pointer)"}},"id":91266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["nonce","sender","target","value","gasLimit","data"],"nodeType":"FunctionCall","src":"3481:251:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}],"expression":{"id":91253,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"3445:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":91254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashWithdrawal","nodeType":"MemberAccess","referencedDeclaration":103911,"src":"3445:22:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"}},"id":91267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3445:297:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3420:322:150"},{"expression":{"id":91273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":91269,"name":"sentMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91174,"src":"3753:12:150","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":91271,"indexExpression":{"id":91270,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91252,"src":"3766:14:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3753:28:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":91272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3784:4:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3753:35:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":91274,"nodeType":"ExpressionStatement","src":"3753:35:150"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":91276,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91306,"src":"3818:12:150","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3818:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":91278,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3834:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3834:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91280,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91244,"src":"3846:7:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3855:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3855:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91283,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91246,"src":"3866:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91284,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91248,"src":"3877:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":91285,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91252,"src":"3884:14:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":91275,"name":"MessagePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91194,"src":"3804:13:150","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory,bytes32)"}},"id":91286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3804:95:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91287,"nodeType":"EmitStatement","src":"3799:100:150"},{"id":91291,"nodeType":"UncheckedBlock","src":"3910:45:150","statements":[{"expression":{"id":91289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3934:10:150","subExpression":{"id":91288,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91177,"src":"3936:8:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"id":91290,"nodeType":"ExpressionStatement","src":"3934:10:150"}]}]},"documentation":{"id":91242,"nodeType":"StructuredDocumentation","src":"3075:231:150","text":"@notice Sends a message from L2 to L1.\n @param _target Address to call on L1 execution.\n @param _gasLimit Minimum gas limit for executing the message on L1.\n @param _data Data to forward to L1 target."},"functionSelector":"c2b3e5ac","implemented":true,"kind":"function","modifiers":[],"name":"initiateWithdrawal","nameLocation":"3320:18:150","parameters":{"id":91249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91244,"mutability":"mutable","name":"_target","nameLocation":"3347:7:150","nodeType":"VariableDeclaration","scope":91293,"src":"3339:15:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91243,"name":"address","nodeType":"ElementaryTypeName","src":"3339:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91246,"mutability":"mutable","name":"_gasLimit","nameLocation":"3364:9:150","nodeType":"VariableDeclaration","scope":91293,"src":"3356:17:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91245,"name":"uint256","nodeType":"ElementaryTypeName","src":"3356:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91248,"mutability":"mutable","name":"_data","nameLocation":"3388:5:150","nodeType":"VariableDeclaration","scope":91293,"src":"3375:18:150","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91247,"name":"bytes","nodeType":"ElementaryTypeName","src":"3375:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3338:56:150"},"returnParameters":{"id":91250,"nodeType":"ParameterList","parameters":[],"src":"3410:0:150"},"scope":91307,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":91306,"nodeType":"FunctionDefinition","src":"4282:134:150","nodes":[],"body":{"id":91305,"nodeType":"Block","src":"4336:80:150","nodes":[],"statements":[{"expression":{"arguments":[{"id":91301,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91177,"src":"4383:8:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},{"id":91302,"name":"MESSAGE_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91169,"src":"4393:15:150","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint240","typeString":"uint240"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":91299,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103714,"src":"4353:8:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$103714_$","typeString":"type(library Encoding)"}},"id":91300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":103643,"src":"4353:29:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint240_$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint240,uint16) pure returns (uint256)"}},"id":91303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4353:56:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":91298,"id":91304,"nodeType":"Return","src":"4346:63:150"}]},"documentation":{"id":91294,"nodeType":"StructuredDocumentation","src":"3967:310:150","text":"@notice Retrieves the next message nonce. Message version will be added to the upper two\n bytes of the message nonce. Message version allows us to treat messages as having\n different structures.\n @return Nonce of the next message to be sent, with added message version."},"functionSelector":"ecc70428","implemented":true,"kind":"function","modifiers":[],"name":"messageNonce","nameLocation":"4291:12:150","parameters":{"id":91295,"nodeType":"ParameterList","parameters":[],"src":"4303:2:150"},"returnParameters":{"id":91298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91306,"src":"4327:7:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91296,"name":"uint256","nodeType":"ElementaryTypeName","src":"4327:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4326:9:150"},"scope":91307,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":91160,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"754:7:150"},"id":91161,"nodeType":"InheritanceSpecifier","src":"754:7:150"}],"canonicalName":"L2ToL1MessagePasser","contractDependencies":[102925],"contractKind":"contract","documentation":{"id":91159,"nodeType":"StructuredDocumentation","src":"315:407:150","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000016\n @title L2ToL1MessagePasser\n @notice The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from\n L2 to L1 can be stored. The storage root of this contract is pulled up to the top level\n of the L2 output to reduce the cost of proving the existence of sent messages."},"fullyImplemented":true,"linearizedBaseContracts":[91307,109417],"name":"L2ToL1MessagePasser","nameLocation":"731:19:150","scope":91308,"usedErrors":[]}],"license":"MIT"},"id":150}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"guy","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"src","type":"address","internalType":"address"},{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"guy","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6107f9806101246000396000f3fe6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a72315820d9a21886186e04516cbdaa611a54950fabc4d47164691bf70de28f6c54060de964736f6c63430005110032","sourceMap":"739:40:0:-;718:1809;739:40;;718:1809;739:40;;;-1:-1:-1;;;739:40:0;;;;;;-1:-1:-1;;739:40:0;;:::i;:::-;-1:-1:-1;785:31:0;;;;;;;;;;;;;-1:-1:-1;;;785:31:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;822:27:0;;;-1:-1:-1;;822:27:0;847:2;822:27;;;718:1809;5:2:-1;;;;30:1;27;20:12;5:2;718:1809:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;718:1809:0;;;-1:-1:-1;718:1809:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a72315820d9a21886186e04516cbdaa611a54950fabc4d47164691bf70de28f6c54060de964736f6c63430005110032","sourceMap":"718:1809:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1289:9;:7;:9::i;:::-;718:1809;739:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;739:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;739:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1755:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1755:177:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1755:177:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1654:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1654:95:0;;;:::i;:::-;;;;;;;;;;;;;;;;2065:460;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2065:460:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2065:460:0;;;;;;;;;;;;;;;;;;:::i;1445:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1445:203:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1445:203:0;;:::i;822:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;822:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1108:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1108:65:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1108:65:0;;;;:::i;785:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;785:31:0;;;:::i;1938:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1938:121:0;;;;;;;;;:::i;1179:65::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1179:65:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1179:65:0;;;;;;;;;;;:::i;1310:130::-;1364:10;1354:21;;;;:9;:21;;;;;;;;;:34;;1379:9;1354:34;;;;;;1403:30;;;;;;;;;;;;;;;;;1310:130::o;739:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1755:177::-;1837:10;1811:4;1827:21;;;:9;:21;;;;;;;;;:26;;;;;;;;;;;:32;;;1874:30;;;;;;;1811:4;;1827:26;;1837:10;;1874:30;;;;;;;;-1:-1:-1;1921:4:0;1755:177;;;;:::o;1654:95::-;1721:21;1654:95;:::o;2065:460::-;2183:14;;;2155:4;2183:14;;;:9;:14;;;;;;:21;-1:-1:-1;2183:21:0;2175:30;;;;;;2220:17;;;2227:10;2220:17;;;;:59;;-1:-1:-1;2241:14:0;;;;;;;:9;:14;;;;;;;;2256:10;2241:26;;;;;;;;2276:2;2241:38;;2220:59;2216:179;;;2303:14;;;;;;;:9;:14;;;;;;;;2318:10;2303:26;;;;;;;;:33;-1:-1:-1;2303:33:0;2295:42;;;;;;2351:14;;;;;;;:9;:14;;;;;;;;2366:10;2351:26;;;;;;;:33;;;;;;;2216:179;2405:14;;;;;;;;:9;:14;;;;;;;;:21;;;;;;;2436:14;;;;;;;;;;:21;;;;;;2473:23;;;;;;;2436:14;;2473:23;;;;;;;;;;;-1:-1:-1;2514:4:0;2065:460;;;;;:::o;1445:203::-;1508:10;1498:21;;;;:9;:21;;;;;;:28;-1:-1:-1;1498:28:0;1490:37;;;;;;1547:10;1537:21;;;;:9;:21;;;;;;:28;;;;;;;1575:24;;;;;;1562:3;;1575:24;;1537:21;1575:24;1562:3;1547:10;1575:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1614:27:0;;;;;;;;1625:10;;1614:27;;;;;;;;;;1445:203;:::o;822:27::-;;;;;;:::o;1108:65::-;;;;;;;;;;;;;:::o;785:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1938:121;1995:4;2018:34;2031:10;2043:3;2048;2018:12;:34::i;:::-;2011:41;1938:121;-1:-1:-1;;;1938:121:0:o;1179:65::-;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"src/vendor/WETH9.sol\":\"WETH9\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/vendor/WETH9.sol\":{\"keccak256\":\"0x5cf72b1d2b0f0a758d5540c663352aa757c80a975c2e2d9b22cc6bc9f1ada1a1\",\"urls\":[\"bzz-raw://aba380794ab2878afe942d0c093cb41820afa854182668af91bffa3f26492244\",\"dweb:/ipfs/QmTW9EWupsNX3DgoJc13uu2V3P4UPRErvaVCPmLyCbDnM1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"guy","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"compilationTarget":{"src/vendor/WETH9.sol":"WETH9"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/vendor/WETH9.sol":{"keccak256":"0x5cf72b1d2b0f0a758d5540c663352aa757c80a975c2e2d9b22cc6bc9f1ada1a1","urls":["bzz-raw://aba380794ab2878afe942d0c093cb41820afa854182668af91bffa3f26492244","dweb:/ipfs/QmTW9EWupsNX3DgoJc13uu2V3P4UPRErvaVCPmLyCbDnM1"],"license":null}},"version":1},"storageLayout":{"storage":[{"astId":4,"contract":"src/vendor/WETH9.sol:WETH9","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":7,"contract":"src/vendor/WETH9.sol:WETH9","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":10,"contract":"src/vendor/WETH9.sol:WETH9","label":"decimals","offset":0,"slot":"2","type":"t_uint8"},{"astId":42,"contract":"src/vendor/WETH9.sol:WETH9","label":"balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":48,"contract":"src/vendor/WETH9.sol:WETH9","label":"allowance","offset":0,"slot":"4","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{},"devdoc":{},"ast":{"absolutePath":"src/vendor/WETH9.sol","id":246,"exportedSymbols":{"WETH9":[245]},"nodeType":"SourceUnit","src":"686:36998:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"686:30:0","nodes":[],"literals":["solidity",">=","0.4",".22","<","0.6"]},{"id":245,"nodeType":"ContractDefinition","src":"718:1809:0","nodes":[{"id":4,"nodeType":"VariableDeclaration","src":"739:40:0","nodes":[],"constant":false,"name":"name","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":2,"name":"string","nodeType":"ElementaryTypeName","src":"739:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"57726170706564204574686572","id":3,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"764:15:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3","typeString":"literal_string \"Wrapped Ether\""},"value":"Wrapped Ether"},"visibility":"public"},{"id":7,"nodeType":"VariableDeclaration","src":"785:31:0","nodes":[],"constant":false,"name":"symbol","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5,"name":"string","nodeType":"ElementaryTypeName","src":"785:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"57455448","id":6,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"810:6:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8","typeString":"literal_string \"WETH\""},"value":"WETH"},"visibility":"public"},{"id":10,"nodeType":"VariableDeclaration","src":"822:27:0","nodes":[],"constant":false,"name":"decimals","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8,"name":"uint8","nodeType":"ElementaryTypeName","src":"822:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":9,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"id":18,"nodeType":"EventDefinition","src":"856:68:0","nodes":[],"anonymous":false,"documentation":null,"name":"Approval","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":18,"src":"872:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14,"indexed":true,"name":"guy","nodeType":"VariableDeclaration","scope":18,"src":"893:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":16,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":18,"src":"914:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15,"name":"uint","nodeType":"ElementaryTypeName","src":"914:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"871:52:0"}},{"id":26,"nodeType":"EventDefinition","src":"929:68:0","nodes":[],"anonymous":false,"documentation":null,"name":"Transfer","parameters":{"id":25,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":26,"src":"945:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"945:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":22,"indexed":true,"name":"dst","nodeType":"VariableDeclaration","scope":26,"src":"966:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":24,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":26,"src":"987:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23,"name":"uint","nodeType":"ElementaryTypeName","src":"987:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"944:52:0"}},{"id":32,"nodeType":"EventDefinition","src":"1002:46:0","nodes":[],"anonymous":false,"documentation":null,"name":"Deposit","parameters":{"id":31,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"indexed":true,"name":"dst","nodeType":"VariableDeclaration","scope":32,"src":"1017:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":30,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":32,"src":"1038:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29,"name":"uint","nodeType":"ElementaryTypeName","src":"1038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1016:31:0"}},{"id":38,"nodeType":"EventDefinition","src":"1053:49:0","nodes":[],"anonymous":false,"documentation":null,"name":"Withdrawal","parameters":{"id":37,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":38,"src":"1071:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33,"name":"address","nodeType":"ElementaryTypeName","src":"1071:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":36,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":38,"src":"1092:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35,"name":"uint","nodeType":"ElementaryTypeName","src":"1092:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1070:31:0"}},{"id":42,"nodeType":"VariableDeclaration","src":"1108:65:0","nodes":[],"constant":false,"name":"balanceOf","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":41,"keyType":{"id":39,"name":"address","nodeType":"ElementaryTypeName","src":"1117:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1108:25:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":40,"name":"uint","nodeType":"ElementaryTypeName","src":"1128:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"id":48,"nodeType":"VariableDeclaration","src":"1179:65:0","nodes":[],"constant":false,"name":"allowance","scope":245,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":47,"keyType":{"id":43,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1179:46:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":46,"keyType":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1208:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:25:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":45,"name":"uint","nodeType":"ElementaryTypeName","src":"1219:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"id":55,"nodeType":"FunctionDefinition","src":"1251:54:0","nodes":[],"body":{"id":54,"nodeType":"Block","src":"1279:26:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":51,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1289:9:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53,"nodeType":"ExpressionStatement","src":"1289:9:0"}]},"documentation":null,"implemented":true,"kind":"fallback","modifiers":[],"name":"","parameters":{"id":49,"nodeType":"ParameterList","parameters":[],"src":"1259:2:0"},"returnParameters":{"id":50,"nodeType":"ParameterList","parameters":[],"src":"1279:0:0"},"scope":245,"stateMutability":"payable","superFunction":null,"visibility":"external"},{"id":74,"nodeType":"FunctionDefinition","src":"1310:130:0","nodes":[],"body":{"id":73,"nodeType":"Block","src":"1344:96:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":64,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":58,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"1354:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":61,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":59,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1364:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1364:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1354:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":62,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1379:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1379:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1354:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":65,"nodeType":"ExpressionStatement","src":"1354:34:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":67,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1411:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1411:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":69,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1423:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1423:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":66,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"1403:7:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":71,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72,"nodeType":"EmitStatement","src":"1398:35:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"deposit","parameters":{"id":56,"nodeType":"ParameterList","parameters":[],"src":"1326:2:0"},"returnParameters":{"id":57,"nodeType":"ParameterList","parameters":[],"src":"1344:0:0"},"scope":245,"stateMutability":"payable","superFunction":null,"visibility":"public"},{"id":110,"nodeType":"FunctionDefinition","src":"1445:203:0","nodes":[],"body":{"id":109,"nodeType":"Block","src":"1480:168:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":80,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"1498:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":83,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":81,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1508:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1508:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1498:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":84,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1523:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1498:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79,"name":"require","nodeType":"Identifier","overloadedDeclarations":[263,264],"referencedDeclaration":263,"src":"1490:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1490:37:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87,"nodeType":"ExpressionStatement","src":"1490:37:0"},{"expression":{"argumentTypes":null,"id":93,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":88,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"1537:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":91,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":89,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1547:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1547:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1537:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":92,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1562:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1537:28:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":94,"nodeType":"ExpressionStatement","src":"1537:28:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":100,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1595:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":95,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1575:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":98,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1575:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":99,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1575:19:0","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:24:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":102,"nodeType":"ExpressionStatement","src":"1575:24:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":104,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1625:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1625:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":106,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1637:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":103,"name":"Withdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"1614:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1614:27:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":108,"nodeType":"EmitStatement","src":"1609:32:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"name":"wad","nodeType":"VariableDeclaration","scope":110,"src":"1463:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75,"name":"uint","nodeType":"ElementaryTypeName","src":"1463:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1462:10:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1480:0:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":121,"nodeType":"FunctionDefinition","src":"1654:95:0","nodes":[],"body":{"id":120,"nodeType":"Block","src":"1704:45:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":116,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"1729:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_WETH9_$245","typeString":"contract WETH9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_WETH9_$245","typeString":"contract WETH9"}],"id":115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1721:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1721:13:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1721:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":114,"id":119,"nodeType":"Return","src":"1714:28:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","parameters":{"id":111,"nodeType":"ParameterList","parameters":[],"src":"1674:2:0"},"returnParameters":{"id":114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":113,"name":"","nodeType":"VariableDeclaration","scope":121,"src":"1698:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112,"name":"uint","nodeType":"ElementaryTypeName","src":"1698:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1697:6:0"},"scope":245,"stateMutability":"view","superFunction":null,"visibility":"public"},{"id":149,"nodeType":"FunctionDefinition","src":"1755:177:0","nodes":[],"body":{"id":148,"nodeType":"Block","src":"1817:115:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":130,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"1827:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":134,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":131,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1837:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1837:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1827:21:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":135,"indexExpression":{"argumentTypes":null,"id":133,"name":"guy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123,"src":"1849:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1827:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":136,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"1856:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1827:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":138,"nodeType":"ExpressionStatement","src":"1827:32:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":140,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1883:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1883:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":142,"name":"guy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123,"src":"1895:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":143,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"1900:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":139,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1874:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1874:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":145,"nodeType":"EmitStatement","src":"1869:35:0"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1921:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":129,"id":147,"nodeType":"Return","src":"1914:11:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"approve","parameters":{"id":126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":123,"name":"guy","nodeType":"VariableDeclaration","scope":149,"src":"1772:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":125,"name":"wad","nodeType":"VariableDeclaration","scope":149,"src":"1785:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":124,"name":"uint","nodeType":"ElementaryTypeName","src":"1785:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1771:23:0"},"returnParameters":{"id":129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"name":"","nodeType":"VariableDeclaration","scope":149,"src":"1811:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":127,"name":"bool","nodeType":"ElementaryTypeName","src":"1811:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1810:6:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":166,"nodeType":"FunctionDefinition","src":"1938:121:0","nodes":[],"body":{"id":165,"nodeType":"Block","src":"2001:58:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":159,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2031:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2031:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":161,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151,"src":"2043:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":162,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"2048:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":158,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"2018:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2018:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":157,"id":164,"nodeType":"Return","src":"2011:41:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","parameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":151,"name":"dst","nodeType":"VariableDeclaration","scope":166,"src":"1956:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":150,"name":"address","nodeType":"ElementaryTypeName","src":"1956:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":153,"name":"wad","nodeType":"VariableDeclaration","scope":166,"src":"1969:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":152,"name":"uint","nodeType":"ElementaryTypeName","src":"1969:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1955:23:0"},"returnParameters":{"id":157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":156,"name":"","nodeType":"VariableDeclaration","scope":166,"src":"1995:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":155,"name":"bool","nodeType":"ElementaryTypeName","src":"1995:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1994:6:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":244,"nodeType":"FunctionDefinition","src":"2065:460:0","nodes":[],"body":{"id":243,"nodeType":"Block","src":"2165:360:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":178,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"2183:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":180,"indexExpression":{"argumentTypes":null,"id":179,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2193:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2183:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":181,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2201:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2183:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":177,"name":"require","nodeType":"Identifier","overloadedDeclarations":[263,264],"referencedDeclaration":263,"src":"2175:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2175:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":184,"nodeType":"ExpressionStatement","src":"2175:30:0"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":185,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2220:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":186,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2227:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2227:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2220:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":189,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"2241:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":191,"indexExpression":{"argumentTypes":null,"id":190,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2251:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2241:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":194,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":192,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2256:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2256:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2241:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2276:2:0","subExpression":{"argumentTypes":null,"hexValue":"31","id":196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2277:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2271:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2271:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2241:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2220:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":222,"nodeType":"IfStatement","src":"2216:179:0","trueBody":{"id":221,"nodeType":"Block","src":"2281:114:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":202,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"2303:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":204,"indexExpression":{"argumentTypes":null,"id":203,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2313:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2303:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":207,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":205,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2318:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2318:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2303:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":208,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2333:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2303:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":201,"name":"require","nodeType":"Identifier","overloadedDeclarations":[263,264],"referencedDeclaration":263,"src":"2295:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2295:42:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"ExpressionStatement","src":"2295:42:0"},{"expression":{"argumentTypes":null,"id":219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":212,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"2351:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":216,"indexExpression":{"argumentTypes":null,"id":213,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2361:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2351:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":217,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":214,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2366:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2366:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2351:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":218,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2381:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2351:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220,"nodeType":"ExpressionStatement","src":"2351:33:0"}]}},{"expression":{"argumentTypes":null,"id":227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":223,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"2405:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":225,"indexExpression":{"argumentTypes":null,"id":224,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2415:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2405:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":226,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2423:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2405:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":228,"nodeType":"ExpressionStatement","src":"2405:21:0"},{"expression":{"argumentTypes":null,"id":233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":229,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42,"src":"2436:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":231,"indexExpression":{"argumentTypes":null,"id":230,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"2446:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2436:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"id":232,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2454:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2436:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":234,"nodeType":"ExpressionStatement","src":"2436:21:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":236,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2482:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":237,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"2487:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":238,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"2492:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":235,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"2473:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2473:23:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":240,"nodeType":"EmitStatement","src":"2468:28:0"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2514:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":176,"id":242,"nodeType":"Return","src":"2507:11:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","parameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":168,"name":"src","nodeType":"VariableDeclaration","scope":244,"src":"2087:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":167,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":170,"name":"dst","nodeType":"VariableDeclaration","scope":244,"src":"2100:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":169,"name":"address","nodeType":"ElementaryTypeName","src":"2100:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":172,"name":"wad","nodeType":"VariableDeclaration","scope":244,"src":"2113:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":171,"name":"uint","nodeType":"ElementaryTypeName","src":"2113:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2086:36:0"},"returnParameters":{"id":176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":175,"name":"","nodeType":"VariableDeclaration","scope":244,"src":"2155:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":174,"name":"bool","nodeType":"ElementaryTypeName","src":"2155:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2154:6:0"},"scope":245,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[245],"name":"WETH9","scope":246}]},"id":0}
\ No newline at end of file
import { getContractInterface, predeploys } from '@eth-optimism/contracts'
import { ethers, Contract } from 'ethers'
import l1StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json'
import l2StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json'
import optimismMintableERC20 from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20.sol/OptimismMintableERC20.json'
import optimismPortal from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal.sol/OptimismPortal.json'
import l1CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L1CrossDomainMessenger.sol/L1CrossDomainMessenger.json'
import l2CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L2CrossDomainMessenger.sol/L2CrossDomainMessenger.json'
import optimismMintableERC20Factory from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20Factory.sol/OptimismMintableERC20Factory.json'
import proxyAdmin from '@eth-optimism/contracts-bedrock/forge-artifacts/ProxyAdmin.sol/ProxyAdmin.json'
import l2OutputOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/L2OutputOracle.sol/L2OutputOracle.json'
import l1ERC721Bridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1ERC721Bridge.sol/L1ERC721Bridge.json'
import l2ERC721Bridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ERC721Bridge.sol/L2ERC721Bridge.json'
import l1Block from '@eth-optimism/contracts-bedrock/forge-artifacts/L1Block.sol/L1Block.json'
import l2ToL1MessagePasser from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ToL1MessagePasser.sol/L2ToL1MessagePasser.json'
import gasPriceOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/GasPriceOracle.sol/GasPriceOracle.json'
import disputeGameFactory from '@eth-optimism/contracts-bedrock/forge-artifacts/DisputeGameFactory.sol/DisputeGameFactory.json'
import optimismPortal2 from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal2.sol/OptimismPortal2.json'
import faultDisputeGame from '@eth-optimism/contracts-bedrock/forge-artifacts/FaultDisputeGame.sol/FaultDisputeGame.json'
import l1StandardBridge from '../forge-artifacts/L1StandardBridge.json'
import l2StandardBridge from '../forge-artifacts/L2StandardBridge.json'
import optimismMintableERC20 from '../forge-artifacts/OptimismMintableERC20.json'
import optimismPortal from '../forge-artifacts/OptimismPortal.json'
import l1CrossDomainMessenger from '../forge-artifacts/L1CrossDomainMessenger.json'
import l2CrossDomainMessenger from '../forge-artifacts/L2CrossDomainMessenger.json'
import optimismMintableERC20Factory from '../forge-artifacts/OptimismMintableERC20Factory.json'
import proxyAdmin from '../forge-artifacts/ProxyAdmin.json'
import l2OutputOracle from '../forge-artifacts/L2OutputOracle.json'
import l1ERC721Bridge from '../forge-artifacts/L1ERC721Bridge.json'
import l2ERC721Bridge from '../forge-artifacts/L2ERC721Bridge.json'
import l1Block from '../forge-artifacts/L1Block.json'
import l2ToL1MessagePasser from '../forge-artifacts/L2ToL1MessagePasser.json'
import gasPriceOracle from '../forge-artifacts/GasPriceOracle.json'
import disputeGameFactory from '../forge-artifacts/DisputeGameFactory.json'
import optimismPortal2 from '../forge-artifacts/OptimismPortal2.json'
import faultDisputeGame from '../forge-artifacts/FaultDisputeGame.json'
import { toAddress } from './coercion'
import { DeepPartial } from './type-utils'
import { CrossChainMessenger } from '../cross-chain-messenger'
......
......@@ -7,17 +7,17 @@ import '@nomiclabs/hardhat-ethers'
import 'hardhat-deploy'
import { Event, Contract, Wallet, providers, utils, ethers } from 'ethers'
import { predeploys, sleep } from '@eth-optimism/core-utils'
import Artifact__WETH9 from '@eth-optimism/contracts-bedrock/forge-artifacts/WETH9.sol/WETH9.json'
import Artifact__OptimismMintableERC20TokenFactory from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20Factory.sol/OptimismMintableERC20Factory.json'
import Artifact__OptimismMintableERC20Token from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismMintableERC20.sol/OptimismMintableERC20.json'
import Artifact__L2ToL1MessagePasser from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ToL1MessagePasser.sol/L2ToL1MessagePasser.json'
import Artifact__L2CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L2CrossDomainMessenger.sol/L2CrossDomainMessenger.json'
import Artifact__L2StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json'
import Artifact__OptimismPortal from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal.sol/OptimismPortal.json'
import Artifact__L1CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L1CrossDomainMessenger.sol/L1CrossDomainMessenger.json'
import Artifact__L1StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json'
import Artifact__L2OutputOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/L2OutputOracle.sol/L2OutputOracle.json'
import Artifact__WETH9 from '../src/forge-artifacts/WETH9.json'
import Artifact__OptimismMintableERC20TokenFactory from '../src/forge-artifacts/OptimismMintableERC20Factory.json'
import Artifact__OptimismMintableERC20Token from '../src/forge-artifacts/OptimismMintableERC20.json'
import Artifact__L2ToL1MessagePasser from '../src/forge-artifacts/L2ToL1MessagePasser.json'
import Artifact__L2CrossDomainMessenger from '../src/forge-artifacts/L2CrossDomainMessenger.json'
import Artifact__L2StandardBridge from '../src/forge-artifacts/L2StandardBridge.json'
import Artifact__OptimismPortal from '../src/forge-artifacts/OptimismPortal.json'
import Artifact__L1CrossDomainMessenger from '../src/forge-artifacts/L1CrossDomainMessenger.json'
import Artifact__L1StandardBridge from '../src/forge-artifacts/L1StandardBridge.json'
import Artifact__L2OutputOracle from '../src/forge-artifacts/L2OutputOracle.json'
import {
CrossChainMessenger,
MessageStatus,
......
......@@ -6,14 +6,14 @@ import 'hardhat-deploy'
import { Deployment } from 'hardhat-deploy/types'
import { predeploys } from '@eth-optimism/core-utils'
import { providers, utils, ethers } from 'ethers'
import Artifact__L2ToL1MessagePasser from '@eth-optimism/contracts-bedrock/forge-artifacts/L2ToL1MessagePasser.sol/L2ToL1MessagePasser.json'
import Artifact__L2CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L2CrossDomainMessenger.sol/L2CrossDomainMessenger.json'
import Artifact__L2StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L2StandardBridge.sol/L2StandardBridge.json'
import Artifact__OptimismPortal from '@eth-optimism/contracts-bedrock/forge-artifacts/OptimismPortal.sol/OptimismPortal.json'
import Artifact__L1CrossDomainMessenger from '@eth-optimism/contracts-bedrock/forge-artifacts/L1CrossDomainMessenger.sol/L1CrossDomainMessenger.json'
import Artifact__L1StandardBridge from '@eth-optimism/contracts-bedrock/forge-artifacts/L1StandardBridge.sol/L1StandardBridge.json'
import Artifact__L2OutputOracle from '@eth-optimism/contracts-bedrock/forge-artifacts/L2OutputOracle.sol/L2OutputOracle.json'
import Artifact__L2ToL1MessagePasser from '../src/forge-artifacts/L2ToL1MessagePasser.json'
import Artifact__L2CrossDomainMessenger from '../src/forge-artifacts/L2CrossDomainMessenger.json'
import Artifact__L2StandardBridge from '../src/forge-artifacts/L2StandardBridge.json'
import Artifact__OptimismPortal from '../src/forge-artifacts/OptimismPortal.json'
import Artifact__L1CrossDomainMessenger from '../src/forge-artifacts/L1CrossDomainMessenger.json'
import Artifact__L1StandardBridge from '../src/forge-artifacts/L1StandardBridge.json'
import Artifact__L2OutputOracle from '../src/forge-artifacts/L2OutputOracle.json'
import {
CrossChainMessenger,
MessageStatus,
......
......@@ -6,6 +6,7 @@
"outDir": "./dist"
},
"include": [
"src/**/*"
"src/**/*",
"src/forge-artifacts/*.json"
]
}
......@@ -440,9 +440,6 @@ importers:
'@eth-optimism/contracts':
specifier: 0.6.0
version: 0.6.0(bufferutil@4.0.8)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3))(utf-8-validate@6.0.3)
'@eth-optimism/contracts-bedrock':
specifier: workspace:*
version: link:../contracts-bedrock
'@eth-optimism/core-utils':
specifier: workspace:*
version: link:../core-utils
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment