{
  "address": "0x4821975ca220601c153d02353300d6ad34adc362",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "name": "BalanceWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "depositId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "DisbursementFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "depositId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "DisbursementSuccess",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "c__0x16931334",
          "type": "bytes32"
        }
      ],
      "name": "c_0x16931334",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_nextDepositId",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "internalType": "struct TeleportrDisburser.Disbursement[]",
          "name": "_disbursements",
          "type": "tuple[]"
        }
      ],
      "name": "disburse",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalDisbursements",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdrawBalance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "transactionHash": "0x91be8d4c1a357b2c06bac93ce2a39015504cdd13910b0b05403bd11f8b5259c8",
  "receipt": {
    "to": null,
    "from": "0x6c2cBc2132aB6Fc48Ebf3569Bdde7B0AA34aa0FC",
    "contractAddress": "0xde440ADa095F36835ecB90297D22Ccbe02045a94",
    "transactionIndex": 0,
    "gasUsed": "1341401",
    "logsBloom": "0x00000000000000000000000010000000000000000000000000800000000000010000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000100000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000010000000000000000000000000000000000000000000000000",
    "blockHash": "0x94f294a93fc7178f06afbe6f97c0c013bbf570016ad491583af420c1d3f21763",
    "transactionHash": "0x91be8d4c1a357b2c06bac93ce2a39015504cdd13910b0b05403bd11f8b5259c8",
    "logs": [
      {
        "transactionIndex": 0,
        "blockNumber": 1644547,
        "transactionHash": "0x91be8d4c1a357b2c06bac93ce2a39015504cdd13910b0b05403bd11f8b5259c8",
        "address": "0xde440ADa095F36835ecB90297D22Ccbe02045a94",
        "topics": [
          "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x0000000000000000000000006c2cbc2132ab6fc48ebf3569bdde7b0aa34aa0fc"
        ],
        "data": "0x",
        "logIndex": 0,
        "blockHash": "0x94f294a93fc7178f06afbe6f97c0c013bbf570016ad491583af420c1d3f21763"
      }
    ],
    "blockNumber": 1644547,
    "cumulativeGasUsed": "1341401",
    "status": 1,
    "byzantium": true
  },
  "args": [],
  "solcInputHash": "f20d616c1af6713a0e8ca9fae9d7bae7",
  "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"BalanceWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"depositId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DisbursementFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"depositId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DisbursementSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"c__0x16931334\",\"type\":\"bytes32\"}],\"name\":\"c_0x16931334\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nextDepositId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"internalType\":\"struct TeleportrDisburser.Disbursement[]\",\"name\":\"_disbursements\",\"type\":\"tuple[]\"}],\"name\":\"disburse\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDisbursements\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"BalanceWithdrawn(address,uint256)\":{\"params\":{\"balance\":\"The current contract balance paid to the owner.\",\"owner\":\"The current owner and recipient of the funds.\"}},\"DisbursementFailed(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount intended to be sent to the recipient.\",\"depositId\":\"The unique sequence number identifying the deposit.\",\"to\":\"The intended recipient of the disbursement.\"}},\"DisbursementSuccess(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount sent to the recipient.\",\"depositId\":\"The unique sequence number identifying the deposit.\",\"to\":\"The recipient of the disbursement.\"}}},\"kind\":\"dev\",\"methods\":{\"disburse(uint256,(uint256,address)[])\":{\"params\":{\"_disbursements\":\"A list of Disbursements to process.\",\"_nextDepositId\":\"The depositId of the first Dispursement.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"TeleportrDisburser\",\"version\":1},\"userdoc\":{\"events\":{\"BalanceWithdrawn(address,uint256)\":{\"notice\":\"Emitted any time the balance is withdrawn by the owner.\"},\"DisbursementFailed(uint256,address,uint256)\":{\"notice\":\"Emitted any time a disbursement fails to send.\"},\"DisbursementSuccess(uint256,address,uint256)\":{\"notice\":\"Emitted any time a disbursement is successfuly sent.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initializes a new TeleportrDisburser contract.\"},\"disburse(uint256,(uint256,address)[])\":{\"notice\":\"Accepts a list of Disbursements and forwards the amount paid to the contract to each recipient. The method reverts if there are zero disbursements, the total amount to forward differs from the amount sent in the transaction, or the _nextDepositId is unexpected. Failed disbursements will not cause the method to revert, but will instead be held by the contract and availabe for the owner to withdraw.\"},\"totalDisbursements()\":{\"notice\":\"The total number of disbursements processed.\"},\"withdrawBalance()\":{\"notice\":\"Sends the contract's current balance to the owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/L2/teleportr/TeleportrDisburser.sol\":\"TeleportrDisburser\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\",\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]},\"contracts/L2/teleportr/TeleportrDisburser.sol\":{\"keccak256\":\"0x42a2eb0f230f8b713fb97d6d44330251c067a26344439cb8fc0f6c5008c61e69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b3f82df2740a5b40c30fca65cbf6d3242bbf34260a266cf579ef015235af676\",\"dweb:/ipfs/QmZyfQh3M3fzGMjrF31NcAG3YpxMGW93mNzVHcxfjo29qt\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b506200003262000026620000dc60201b60201c565b620000e460201b60201c565b620000667f39bbaedb82e6743a336be557192fb64c205b1c7023985a2169da77cfa38456e760001b620001a860201b60201c565b6200009a7f24db5b5cfdf4200d735f11046f2ae1a70f4558a5d72f76885640a569c06c07cf60001b620001a860201b60201c565b620000ce7f317e8430390de1cd59d658f9aa2e38e3fc3ede461a2882fce72bce93ad4b116360001b620001a860201b60201c565b6000600181905550620001ab565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b50565b6116cc80620001bb6000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b146100ce578063a0adbb93146100f9578063ad48144d14610122578063f2fde38b1461013e57610070565b806325999e7f146100755780635fd8c710146100a0578063715018a6146100b7575b600080fd5b34801561008157600080fd5b5061008a610167565b60405161009791906110ac565b60405180910390f35b3480156100ac57600080fd5b506100b561016d565b005b3480156100c357600080fd5b506100cc61041f565b005b3480156100da57600080fd5b506100e36104a7565b6040516100f09190611108565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b9190611163565b6104d0565b005b61013c60048036038101906101379190611221565b6104d3565b005b34801561014a57600080fd5b50610165600480360381019061016091906112ad565b610ecf565b005b60015481565b610175610fc7565b73ffffffffffffffffffffffffffffffffffffffff166101936104a7565b73ffffffffffffffffffffffffffffffffffffffff16146101e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e090611337565b60405180910390fd5b6102157ffe92f91ad70fcc788c91b5c6377091fddb1bb4643da297f26117462bd94f49fd60001b6104d0565b6102417f1703157428668d098e51859c561d5296ef183d7c69ae701c20e674a9fb1fc99d60001b6104d0565b61026d7fa3bdcd2326103ecf302266dfd6c4af18da60b0396e4465dbc816f02baf137a4d60001b6104d0565b60006102776104a7565b90506102a57fbcfc6ad7959841cabcf36b03dfcd357d7d622acca2ba6e9a43b2372593a2b1f460001b6104d0565b6102d17f627056f9061efb209e979f60571640480c8dc859fd3b1446b24f901abd471d7860001b6104d0565b60004790506103027f872f745d610a98fff77a703564a28bce54c15938fd721d2bb1c1c96b29f02cc060001b6104d0565b61032e7fc7b520880199ff8ecee4cb60a0f2910d8beafd85c2a5d75e88cd45146cbd88c860001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff167fddc398b321237a8d40ac914388309c2f52a08c134e4dc4ce61e32f57cb7d80f18260405161037491906110ac565b60405180910390a26103a87fbb13c854fee71d4d649f60251494946a1dc47696ecdbc5239eebd0f0e09dedb660001b6104d0565b6103d47f848adaf7559bcfbc99734e73f7109730b5e7d6c9dac716b49e5293cd159045da60001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561041a573d6000803e3d6000fd5b505050565b610427610fc7565b73ffffffffffffffffffffffffffffffffffffffff166104456104a7565b73ffffffffffffffffffffffffffffffffffffffff161461049b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049290611337565b60405180910390fd5b6104a56000610fcf565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b50565b6104db610fc7565b73ffffffffffffffffffffffffffffffffffffffff166104f96104a7565b73ffffffffffffffffffffffffffffffffffffffff161461054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054690611337565b60405180910390fd5b61057b7f2ada5d99a5213ee4ca2bb15d1f40a59e356e720b5882c0781678a5e06b9ddb5960001b6104d0565b6105a77f7a7334b1d6bfe4bd15a6309ce921c6474f6768575c5e38d2b2ce7acc447ba59160001b6104d0565b6105d37fb807ae02c58a5c6be11b494711fb222a14e0d7e215117e68acdd94a81151ba7460001b6104d0565b60008282905090506106077f21ab292895678d1873f05582fb6da03baffcd8dbbf67acb7d05adbe92e38f27360001b6104d0565b6106337f807737600e915e0ac1bda9d244b1b42f3883b11d61a3714e96412ab37d49aa0d60001b6104d0565b61065f7fc1dafb9e03ad5f719e2b448b24a8dec5f2278a2d3a090d11212eccbf65b3b9dc60001b6104d0565b600081116106a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610699906113a3565b60405180910390fd5b6106ce7f23dbf8b6555265ebf2ff79777f7ef74ba63f296fc3b5440ee3f186724f49d63d60001b6104d0565b6106fa7f0f09cdc510c9eeadb6f4ffed3990e7ce53a93e2d1026c772e2303eb967ae645660001b6104d0565b6107267f442b40ff3f756dfe83209f66d82504cceb390151b2ea76b7ce2bce481ddb3b0e60001b6104d0565b600060015490506107597fb14a4d7d74c1e2df0ad5d1ac6189bd833e51ed69416aa7c504d01606d755c7ef60001b6104d0565b6107857f1338effe85e1ba3bde809611b8cd8ff762211afaccab634e6b6449395abbd82260001b6104d0565b6107b17fc20c000c8553b2152a7a80ac43c52f1b7ba7cbd04b533472fc0fd7fd7057f68060001b6104d0565b8481146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061140f565b60405180910390fd5b61081f7fb25de3d3bad93e8f821dbd0a8d2aeb60bfa371bf7f2593187e3d6f3012cbbd1360001b6104d0565b61084b7fc1437f73ab0f757f501060cc8e214fb6e895e2c11fdec90f1c26c337259cb3b260001b6104d0565b816001600082825401925050819055506108877f60fb755f4c85c0f5e4fc55a59a862d71795ee75dd9aebd26397347a776a4438060001b6104d0565b6108b37f961eebfc60945127454266e3a2aa59e195e493c917f20887f27522f65f6138f360001b6104d0565b60006108e17f4a4656352b6110f616892179a43a4db2d257323981851d33e20f1d032afa810160001b6104d0565b61090d7f03453438aaa639cf92f4b9a0819dd07143a378d1d08840fd1091d6142cbd37ea60001b6104d0565b60005b838110156109ad576109447fa06b97308620cba29f8f5270af06b6b2b47882e99ef6a3ab7cb6ae3dff36e6c760001b6104d0565b6109707f1def478f38c0910e76e6a9de11aea3e47f48c79346e34413455d16858a227f7460001b6104d0565b8585828181106109835761098261142f565b5b9050604002016000013582610998919061148d565b915080806109a5906114e3565b915050610910565b506109da7f1bd35d5e9c2fadd60189746ebf51278308a09575bc3dacb8a2ce127511f4bd5b60001b6104d0565b610a067f6ed34bb8ab9df4b9f1295d0d512d642d3757c3c47b131b126385d8539862347060001b6104d0565b610a327f6140d5c902a63db76a3285429152fb3a87752f7db4120de3c9d932f328bc305060001b6104d0565b348114610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061159e565b60405180910390fd5b610aa07f18246eeaf0026a3e2c4ac32cbc1dc0606e82d2890a32165286e3d0a8c95fd7a460001b6104d0565b610acc7f70b83d9371755905523d6f1e944a8b8692c0959960315ee55559fafd7c2c52bf60001b6104d0565b610af87f21baa28c2eb7d3242d4afa89ad217acdeea738ab84a007f3e8aa489d3ce867c860001b6104d0565b60005b83811015610ec657610b2f7fcdf5d58952d1caa81fdfa362bb2eeb66956f151aa2b33f407f9833563b20496e60001b6104d0565b610b5b7f82fdec1cc8aa1098d9a8242384eaea39f90e5593c12b39cb109348a772e9fafe60001b6104d0565b6000868683818110610b7057610b6f61142f565b5b905060400201600001359050610ba87faaf73602f455fb6fc88332cf7f6d0caabacde6b54d461dc6eb9a7ee12bb2b57460001b6104d0565b610bd47f0d14c42168fe96cb818965cb522ed1023d13f8dc0ab098cdf8760c35932c9cdf60001b6104d0565b6000878784818110610be957610be861142f565b5b9050604002016020016020810190610c0191906112ad565b9050610c2f7f4fccbbc284abd163c3c18f168872dc29d4fac77f01fc1cf5f9992b361605dc4f60001b6104d0565b610c5b7f14f24022c2530a4720a223a36c798ed655b1320c21a7fb1cd078146c936b277060001b6104d0565b60008173ffffffffffffffffffffffffffffffffffffffff16836108fc90604051610c85906115ef565b600060405180830381858888f193505050503d8060008114610cc3576040519150601f19603f3d011682016040523d82523d6000602084013e610cc8565b606091505b50509050610cf87f990d01d9292bbf5a72b844d9e480c435f5bf3f28c6a3cf01231653128d574a2960001b6104d0565b610d247fbeb05d1cb9e0c8962b3fbce755095395f809190d1f56a0305f52d745ed2be60860001b6104d0565b8015610dd657610d567f926cdb8fa3eec76098df0921133fbad388217c8a5f07adf0e3652e64344ff66760001b6104d0565b610d827fcf258c3a8696678566a6fd532ee096e27d2a9dc64bcc87d8fccf2c9df406855560001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff16867feaa22fd2d7b875476355b32cf719794faf9d91b66e73bc6375a053cace9caaee85604051610dc991906110ac565b60405180910390a3610e7e565b610e027f9065e1e3bc2a1b35f85ca394361800750d7ccf66381f3e69fe4faefe0e5cc78f60001b6104d0565b610e2e7f57081b0378c1c31ae18ff29ec060b75a2fcf8bec375989be94d0d303a4f0021160001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff16867f9b478c095979d3d3a7d602ffd9ee1f0843204d853558ae0882c8fcc0a5bc78cf85604051610e7591906110ac565b60405180910390a35b610eaa7f9de3918864af83d66c46c014e27703f1021307042aef5dcf52b75516706ddd8b60001b6104d0565b6001860195505050508080610ebe906114e3565b915050610afb565b50505050505050565b610ed7610fc7565b73ffffffffffffffffffffffffffffffffffffffff16610ef56104a7565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4290611337565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb290611676565b60405180910390fd5b610fc481610fcf565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000819050919050565b6110a681611093565b82525050565b60006020820190506110c1600083018461109d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110f2826110c7565b9050919050565b611102816110e7565b82525050565b600060208201905061111d60008301846110f9565b92915050565b600080fd5b600080fd5b6000819050919050565b6111408161112d565b811461114b57600080fd5b50565b60008135905061115d81611137565b92915050565b60006020828403121561117957611178611123565b5b60006111878482850161114e565b91505092915050565b61119981611093565b81146111a457600080fd5b50565b6000813590506111b681611190565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126111e1576111e06111bc565b5b8235905067ffffffffffffffff8111156111fe576111fd6111c1565b5b60208301915083604082028301111561121a576112196111c6565b5b9250929050565b60008060006040848603121561123a57611239611123565b5b6000611248868287016111a7565b935050602084013567ffffffffffffffff81111561126957611268611128565b5b611275868287016111cb565b92509250509250925092565b61128a816110e7565b811461129557600080fd5b50565b6000813590506112a781611281565b92915050565b6000602082840312156112c3576112c2611123565b5b60006112d184828501611298565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006113216020836112da565b915061132c826112eb565b602082019050919050565b6000602082019050818103600083015261135081611314565b9050919050565b7f4e6f2064697362757273656d656e747300000000000000000000000000000000600082015250565b600061138d6010836112da565b915061139882611357565b602082019050919050565b600060208201905081810360008301526113bc81611380565b9050919050565b7f556e6578706563746564206e657874206465706f736974206964000000000000600082015250565b60006113f9601a836112da565b9150611404826113c3565b602082019050919050565b60006020820190508181036000830152611428816113ec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061149882611093565b91506114a383611093565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114d8576114d761145e565b5b828201905092915050565b60006114ee82611093565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156115215761152061145e565b5b600182019050919050565b7f44697362757273656d656e7420746f74616c20213d20616d6f756e742073656e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006115886021836112da565b91506115938261152c565b604082019050919050565b600060208201905081810360008301526115b78161157b565b9050919050565b600081905092915050565b50565b60006115d96000836115be565b91506115e4826115c9565b600082019050919050565b60006115fa826115cc565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006116606026836112da565b915061166b82611604565b604082019050919050565b6000602082019050818103600083015261168f81611653565b905091905056fea264697066735822122083f16098b83d1bcd3c8f88b64cd62c2ff0f7149c4df36e3ea3404931581a899064736f6c63430008090033",
  "deployedBytecode": "0x6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b146100ce578063a0adbb93146100f9578063ad48144d14610122578063f2fde38b1461013e57610070565b806325999e7f146100755780635fd8c710146100a0578063715018a6146100b7575b600080fd5b34801561008157600080fd5b5061008a610167565b60405161009791906110ac565b60405180910390f35b3480156100ac57600080fd5b506100b561016d565b005b3480156100c357600080fd5b506100cc61041f565b005b3480156100da57600080fd5b506100e36104a7565b6040516100f09190611108565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b9190611163565b6104d0565b005b61013c60048036038101906101379190611221565b6104d3565b005b34801561014a57600080fd5b50610165600480360381019061016091906112ad565b610ecf565b005b60015481565b610175610fc7565b73ffffffffffffffffffffffffffffffffffffffff166101936104a7565b73ffffffffffffffffffffffffffffffffffffffff16146101e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e090611337565b60405180910390fd5b6102157ffe92f91ad70fcc788c91b5c6377091fddb1bb4643da297f26117462bd94f49fd60001b6104d0565b6102417f1703157428668d098e51859c561d5296ef183d7c69ae701c20e674a9fb1fc99d60001b6104d0565b61026d7fa3bdcd2326103ecf302266dfd6c4af18da60b0396e4465dbc816f02baf137a4d60001b6104d0565b60006102776104a7565b90506102a57fbcfc6ad7959841cabcf36b03dfcd357d7d622acca2ba6e9a43b2372593a2b1f460001b6104d0565b6102d17f627056f9061efb209e979f60571640480c8dc859fd3b1446b24f901abd471d7860001b6104d0565b60004790506103027f872f745d610a98fff77a703564a28bce54c15938fd721d2bb1c1c96b29f02cc060001b6104d0565b61032e7fc7b520880199ff8ecee4cb60a0f2910d8beafd85c2a5d75e88cd45146cbd88c860001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff167fddc398b321237a8d40ac914388309c2f52a08c134e4dc4ce61e32f57cb7d80f18260405161037491906110ac565b60405180910390a26103a87fbb13c854fee71d4d649f60251494946a1dc47696ecdbc5239eebd0f0e09dedb660001b6104d0565b6103d47f848adaf7559bcfbc99734e73f7109730b5e7d6c9dac716b49e5293cd159045da60001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561041a573d6000803e3d6000fd5b505050565b610427610fc7565b73ffffffffffffffffffffffffffffffffffffffff166104456104a7565b73ffffffffffffffffffffffffffffffffffffffff161461049b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049290611337565b60405180910390fd5b6104a56000610fcf565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b50565b6104db610fc7565b73ffffffffffffffffffffffffffffffffffffffff166104f96104a7565b73ffffffffffffffffffffffffffffffffffffffff161461054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054690611337565b60405180910390fd5b61057b7f2ada5d99a5213ee4ca2bb15d1f40a59e356e720b5882c0781678a5e06b9ddb5960001b6104d0565b6105a77f7a7334b1d6bfe4bd15a6309ce921c6474f6768575c5e38d2b2ce7acc447ba59160001b6104d0565b6105d37fb807ae02c58a5c6be11b494711fb222a14e0d7e215117e68acdd94a81151ba7460001b6104d0565b60008282905090506106077f21ab292895678d1873f05582fb6da03baffcd8dbbf67acb7d05adbe92e38f27360001b6104d0565b6106337f807737600e915e0ac1bda9d244b1b42f3883b11d61a3714e96412ab37d49aa0d60001b6104d0565b61065f7fc1dafb9e03ad5f719e2b448b24a8dec5f2278a2d3a090d11212eccbf65b3b9dc60001b6104d0565b600081116106a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610699906113a3565b60405180910390fd5b6106ce7f23dbf8b6555265ebf2ff79777f7ef74ba63f296fc3b5440ee3f186724f49d63d60001b6104d0565b6106fa7f0f09cdc510c9eeadb6f4ffed3990e7ce53a93e2d1026c772e2303eb967ae645660001b6104d0565b6107267f442b40ff3f756dfe83209f66d82504cceb390151b2ea76b7ce2bce481ddb3b0e60001b6104d0565b600060015490506107597fb14a4d7d74c1e2df0ad5d1ac6189bd833e51ed69416aa7c504d01606d755c7ef60001b6104d0565b6107857f1338effe85e1ba3bde809611b8cd8ff762211afaccab634e6b6449395abbd82260001b6104d0565b6107b17fc20c000c8553b2152a7a80ac43c52f1b7ba7cbd04b533472fc0fd7fd7057f68060001b6104d0565b8481146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061140f565b60405180910390fd5b61081f7fb25de3d3bad93e8f821dbd0a8d2aeb60bfa371bf7f2593187e3d6f3012cbbd1360001b6104d0565b61084b7fc1437f73ab0f757f501060cc8e214fb6e895e2c11fdec90f1c26c337259cb3b260001b6104d0565b816001600082825401925050819055506108877f60fb755f4c85c0f5e4fc55a59a862d71795ee75dd9aebd26397347a776a4438060001b6104d0565b6108b37f961eebfc60945127454266e3a2aa59e195e493c917f20887f27522f65f6138f360001b6104d0565b60006108e17f4a4656352b6110f616892179a43a4db2d257323981851d33e20f1d032afa810160001b6104d0565b61090d7f03453438aaa639cf92f4b9a0819dd07143a378d1d08840fd1091d6142cbd37ea60001b6104d0565b60005b838110156109ad576109447fa06b97308620cba29f8f5270af06b6b2b47882e99ef6a3ab7cb6ae3dff36e6c760001b6104d0565b6109707f1def478f38c0910e76e6a9de11aea3e47f48c79346e34413455d16858a227f7460001b6104d0565b8585828181106109835761098261142f565b5b9050604002016000013582610998919061148d565b915080806109a5906114e3565b915050610910565b506109da7f1bd35d5e9c2fadd60189746ebf51278308a09575bc3dacb8a2ce127511f4bd5b60001b6104d0565b610a067f6ed34bb8ab9df4b9f1295d0d512d642d3757c3c47b131b126385d8539862347060001b6104d0565b610a327f6140d5c902a63db76a3285429152fb3a87752f7db4120de3c9d932f328bc305060001b6104d0565b348114610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061159e565b60405180910390fd5b610aa07f18246eeaf0026a3e2c4ac32cbc1dc0606e82d2890a32165286e3d0a8c95fd7a460001b6104d0565b610acc7f70b83d9371755905523d6f1e944a8b8692c0959960315ee55559fafd7c2c52bf60001b6104d0565b610af87f21baa28c2eb7d3242d4afa89ad217acdeea738ab84a007f3e8aa489d3ce867c860001b6104d0565b60005b83811015610ec657610b2f7fcdf5d58952d1caa81fdfa362bb2eeb66956f151aa2b33f407f9833563b20496e60001b6104d0565b610b5b7f82fdec1cc8aa1098d9a8242384eaea39f90e5593c12b39cb109348a772e9fafe60001b6104d0565b6000868683818110610b7057610b6f61142f565b5b905060400201600001359050610ba87faaf73602f455fb6fc88332cf7f6d0caabacde6b54d461dc6eb9a7ee12bb2b57460001b6104d0565b610bd47f0d14c42168fe96cb818965cb522ed1023d13f8dc0ab098cdf8760c35932c9cdf60001b6104d0565b6000878784818110610be957610be861142f565b5b9050604002016020016020810190610c0191906112ad565b9050610c2f7f4fccbbc284abd163c3c18f168872dc29d4fac77f01fc1cf5f9992b361605dc4f60001b6104d0565b610c5b7f14f24022c2530a4720a223a36c798ed655b1320c21a7fb1cd078146c936b277060001b6104d0565b60008173ffffffffffffffffffffffffffffffffffffffff16836108fc90604051610c85906115ef565b600060405180830381858888f193505050503d8060008114610cc3576040519150601f19603f3d011682016040523d82523d6000602084013e610cc8565b606091505b50509050610cf87f990d01d9292bbf5a72b844d9e480c435f5bf3f28c6a3cf01231653128d574a2960001b6104d0565b610d247fbeb05d1cb9e0c8962b3fbce755095395f809190d1f56a0305f52d745ed2be60860001b6104d0565b8015610dd657610d567f926cdb8fa3eec76098df0921133fbad388217c8a5f07adf0e3652e64344ff66760001b6104d0565b610d827fcf258c3a8696678566a6fd532ee096e27d2a9dc64bcc87d8fccf2c9df406855560001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff16867feaa22fd2d7b875476355b32cf719794faf9d91b66e73bc6375a053cace9caaee85604051610dc991906110ac565b60405180910390a3610e7e565b610e027f9065e1e3bc2a1b35f85ca394361800750d7ccf66381f3e69fe4faefe0e5cc78f60001b6104d0565b610e2e7f57081b0378c1c31ae18ff29ec060b75a2fcf8bec375989be94d0d303a4f0021160001b6104d0565b8173ffffffffffffffffffffffffffffffffffffffff16867f9b478c095979d3d3a7d602ffd9ee1f0843204d853558ae0882c8fcc0a5bc78cf85604051610e7591906110ac565b60405180910390a35b610eaa7f9de3918864af83d66c46c014e27703f1021307042aef5dcf52b75516706ddd8b60001b6104d0565b6001860195505050508080610ebe906114e3565b915050610afb565b50505050505050565b610ed7610fc7565b73ffffffffffffffffffffffffffffffffffffffff16610ef56104a7565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4290611337565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb290611676565b60405180910390fd5b610fc481610fcf565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000819050919050565b6110a681611093565b82525050565b60006020820190506110c1600083018461109d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110f2826110c7565b9050919050565b611102816110e7565b82525050565b600060208201905061111d60008301846110f9565b92915050565b600080fd5b600080fd5b6000819050919050565b6111408161112d565b811461114b57600080fd5b50565b60008135905061115d81611137565b92915050565b60006020828403121561117957611178611123565b5b60006111878482850161114e565b91505092915050565b61119981611093565b81146111a457600080fd5b50565b6000813590506111b681611190565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126111e1576111e06111bc565b5b8235905067ffffffffffffffff8111156111fe576111fd6111c1565b5b60208301915083604082028301111561121a576112196111c6565b5b9250929050565b60008060006040848603121561123a57611239611123565b5b6000611248868287016111a7565b935050602084013567ffffffffffffffff81111561126957611268611128565b5b611275868287016111cb565b92509250509250925092565b61128a816110e7565b811461129557600080fd5b50565b6000813590506112a781611281565b92915050565b6000602082840312156112c3576112c2611123565b5b60006112d184828501611298565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006113216020836112da565b915061132c826112eb565b602082019050919050565b6000602082019050818103600083015261135081611314565b9050919050565b7f4e6f2064697362757273656d656e747300000000000000000000000000000000600082015250565b600061138d6010836112da565b915061139882611357565b602082019050919050565b600060208201905081810360008301526113bc81611380565b9050919050565b7f556e6578706563746564206e657874206465706f736974206964000000000000600082015250565b60006113f9601a836112da565b9150611404826113c3565b602082019050919050565b60006020820190508181036000830152611428816113ec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061149882611093565b91506114a383611093565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114d8576114d761145e565b5b828201905092915050565b60006114ee82611093565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156115215761152061145e565b5b600182019050919050565b7f44697362757273656d656e7420746f74616c20213d20616d6f756e742073656e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006115886021836112da565b91506115938261152c565b604082019050919050565b600060208201905081810360008301526115b78161157b565b9050919050565b600081905092915050565b50565b60006115d96000836115be565b91506115e4826115c9565b600082019050919050565b60006115fa826115cc565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006116606026836112da565b915061166b82611604565b604082019050919050565b6000602082019050818103600083015261168f81611653565b905091905056fea264697066735822122083f16098b83d1bcd3c8f88b64cd62c2ff0f7149c4df36e3ea3404931581a899064736f6c63430008090033",
  "devdoc": {
    "events": {
      "BalanceWithdrawn(address,uint256)": {
        "params": {
          "balance": "The current contract balance paid to the owner.",
          "owner": "The current owner and recipient of the funds."
        }
      },
      "DisbursementFailed(uint256,address,uint256)": {
        "params": {
          "amount": "The amount intended to be sent to the recipient.",
          "depositId": "The unique sequence number identifying the deposit.",
          "to": "The intended recipient of the disbursement."
        }
      },
      "DisbursementSuccess(uint256,address,uint256)": {
        "params": {
          "amount": "The amount sent to the recipient.",
          "depositId": "The unique sequence number identifying the deposit.",
          "to": "The recipient of the disbursement."
        }
      }
    },
    "kind": "dev",
    "methods": {
      "disburse(uint256,(uint256,address)[])": {
        "params": {
          "_disbursements": "A list of Disbursements to process.",
          "_nextDepositId": "The depositId of the first Dispursement."
        }
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "title": "TeleportrDisburser",
    "version": 1
  },
  "userdoc": {
    "events": {
      "BalanceWithdrawn(address,uint256)": {
        "notice": "Emitted any time the balance is withdrawn by the owner."
      },
      "DisbursementFailed(uint256,address,uint256)": {
        "notice": "Emitted any time a disbursement fails to send."
      },
      "DisbursementSuccess(uint256,address,uint256)": {
        "notice": "Emitted any time a disbursement is successfuly sent."
      }
    },
    "kind": "user",
    "methods": {
      "constructor": {
        "notice": "Initializes a new TeleportrDisburser contract."
      },
      "disburse(uint256,(uint256,address)[])": {
        "notice": "Accepts a list of Disbursements and forwards the amount paid to the contract to each recipient. The method reverts if there are zero disbursements, the total amount to forward differs from the amount sent in the transaction, or the _nextDepositId is unexpected. Failed disbursements will not cause the method to revert, but will instead be held by the contract and availabe for the owner to withdraw."
      },
      "totalDisbursements()": {
        "notice": "The total number of disbursements processed."
      },
      "withdrawBalance()": {
        "notice": "Sends the contract's current balance to the owner."
      }
    },
    "version": 1
  },
  "storageLayout": {
    "storage": [
      {
        "astId": 393,
        "contract": "contracts/L2/teleportr/TeleportrDisburser.sol:TeleportrDisburser",
        "label": "_owner",
        "offset": 0,
        "slot": "0",
        "type": "t_address"
      },
      {
        "astId": 10517,
        "contract": "contracts/L2/teleportr/TeleportrDisburser.sol:TeleportrDisburser",
        "label": "totalDisbursements",
        "offset": 0,
        "slot": "1",
        "type": "t_uint256"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      }
    }
  }
}