{
  "_format": "hh-sol-artifact-1",
  "contractName": "TransferOnion",
  "sourceName": "contracts/periphery/TransferOnion.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_shell",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "SENDER",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TOKEN",
      "outputs": [
        {
          "internalType": "contract ERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "shell",
              "type": "bytes32"
            }
          ],
          "internalType": "struct TransferOnion.Layer[]",
          "name": "_layers",
          "type": "tuple[]"
        }
      ],
      "name": "peel",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "shell",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c060405234801561001057600080fd5b50604051610a31380380610a3183398101604081905261002f91610069565b600160008190556001600160a01b039384166080529190921660a052556100ac565b6001600160a01b038116811461006657600080fd5b50565b60008060006060848603121561007e57600080fd5b835161008981610051565b602085015190935061009a81610051565b80925050604084015190509250925092565b60805160a0516109546100dd60003960008181606b01526102d601526000818160bc01526102b301526109546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
