{
  "_format": "hh-sol-artifact-1",
  "contractName": "ExampleFlashSwap",
  "sourceName": "contracts/soma/SomaSwap/examples/ExampleFlashSwap.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_factory",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_factoryV1",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "router",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "somaSwapCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60e06040523480156200001157600080fd5b506040516200143c3803806200143c8339810160408190526200003491620000e1565b6001600160a01b0380831660805283811660a052604080516315ab88c960e31b815290519183169163ad5c4648916004808201926020929091908290030181865afa15801562000088573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ae91906200012b565b6001600160a01b031660c0525062000150915050565b80516001600160a01b0381168114620000dc57600080fd5b919050565b600080600060608486031215620000f757600080fd5b6200010284620000c4565b92506200011260208501620000c4565b91506200012260408501620000c4565b90509250925092565b6000602082840312156200013e57600080fd5b6200014982620000c4565b9392505050565b60805160a05160c05161127d620001bf60003960008181610214015281816102490152818161028e015281816102e301528181610341015281816105c501528181610650015261078701526000818161014501528181610572015261086c015260006103f3015261127d6000f3fe6080604052600436106100225760003560e01c80632fd432491461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610ff9565b610050565b005b6040805160028082526060820183526000926020830190803683370190505090506000806000336001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d891906110a5565b90506000336001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013e91906110a5565b905061016b7f000000000000000000000000000000000000000000000000000000000000000083836109df565b6001600160a01b0316336001600160a01b03161461018b5761018b6110c9565b881580610196575087155b6101a2576101a26110c9565b88156101ae57806101b0565b815b856000815181106101c3576101c36110df565b6001600160a01b039092166020928302919091019091015288156101e757816101e9565b805b856001815181106101fc576101fc6110df565b6001600160a01b0392831660209182029290920101527f00000000000000000000000000000000000000000000000000000000000000008116908316146102435788610245565b875b93507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102865787610288565b885b925050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836000815181106102c9576102c96110df565b60200260200101516001600160a01b0316148061033157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168360018151811061031e5761031e6110df565b60200260200101516001600160a01b0316145b61033d5761033d6110c9565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168460008151811061037c5761037c6110df565b60200260200101516001600160a01b0316146103b257836000815181106103a5576103a56110df565b60200260200101516103ce565b836001815181106103c5576103c56110df565b60200260200101515b6040516303795fb160e11b81526001600160a01b0380831660048301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906306f2bf6290602401602060405180830381865afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e91906110a5565b90508315610760576000610474878901896110f5565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018890529192509084169063095ea7b3906044016020604051808303816000875af11580156104c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104eb919061110e565b506040516395e3c50b60e01b8152600481018690526024810182905260001960448201526000906001600160a01b038416906395e3c50b906064016020604051808303816000875af1158015610545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105699190611130565b905060006105987f0000000000000000000000000000000000000000000000000000000000000000888a610b46565b6000815181106105aa576105aa6110df565b602002602001015190508082116105c3576105c36110c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561061e57600080fd5b505af1158015610632573d6000803e3d6000fd5b505060405163a9059cbb60e01b8152336004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316935063a9059cbb925060440190506020604051808303816000875af11580156106a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c9919061110e565b6106d5576106d56110c9565b60006001600160a01b038e166106eb838561115f565b6040805160008152602081019182905261070491611172565b60006040518083038185875af1925050503d8060008114610741576040519150601f19603f3d011682016040523d82523d6000602084013e610746565b606091505b5050905080610757576107576110c9565b505050506109d3565b600061076e878901896110f5565b604051632e1a7d4d60e01b8152600481018690529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156107d357600080fd5b505af11580156107e7573d6000803e3d6000fd5b505060405163f39b5b9b60e01b8152600481018490526000196024820152600092506001600160a01b038516915063f39b5b9b90879060440160206040518083038185885af115801561083e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108639190611130565b905060006108927f0000000000000000000000000000000000000000000000000000000000000000878a610b46565b6000815181106108a4576108a46110df565b602002602001015190508082116108bd576108bd6110c9565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0386169063a9059cbb906044016020604051808303816000875af115801561090a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092e919061110e565b61093a5761093a6110c9565b6001600160a01b03851663a9059cbb8e610954848661115f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c3919061110e565b6109cf576109cf6110c9565b5050505b50505050505050505050565b60008060006109ee8585610ce1565b91509150610b3c866001600160a01b0316632dd310006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5791906110a5565b876001600160a01b031663257671f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab99190611130565b60408051606087811b6bffffffffffffffffffffffff1990811660208085019190915288831b82166034850152845160288186030181526048850186528051908201206001600160f81b031960688601529690921b166069830152607d820194909452609d808201939093528151808203909301835260bd019052805191012090565b9695505050505050565b6060600282511015610b9f5760405162461bcd60e51b815260206004820152601d60248201527f536f6d61537761704c6962726172793a20494e56414c49445f5041544800000060448201526064015b60405180910390fd5b815167ffffffffffffffff811115610bb957610bb961108f565b604051908082528060200260200182016040528015610be2578160200160208202803683370190505b509050828160018351610bf5919061115f565b81518110610c0557610c056110df565b602002602001018181525050600060018351610c21919061115f565b90505b8015610cd957600080610c748786610c3d60018761115f565b81518110610c4d57610c4d6110df565b6020026020010151878681518110610c6757610c676110df565b6020026020010151610dd6565b91509150610c9c848481518110610c8d57610c8d6110df565b60200260200101518383610ea0565b84610ca860018661115f565b81518110610cb857610cb86110df565b60200260200101818152505050508080610cd1906111a1565b915050610c24565b509392505050565b600080826001600160a01b0316846001600160a01b031603610d515760405162461bcd60e51b8152602060048201526024808201527f536f6d61537761704c6962726172793a204944454e544943414c5f41444452456044820152635353455360e01b6064820152608401610b96565b826001600160a01b0316846001600160a01b031610610d71578284610d74565b83835b90925090506001600160a01b038216610dcf5760405162461bcd60e51b815260206004820152601d60248201527f536f6d61537761704c6962726172793a205a45524f5f414444524553530000006044820152606401610b96565b9250929050565b6000806000610de58585610ce1565b509050600080610df68888886109df565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5791906111d4565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b031614610e8e578082610e91565b81815b90999098509650505050505050565b6000808411610f055760405162461bcd60e51b815260206004820152602b60248201527f536f6d61537761704c6962726172793a20494e53554646494349454e545f4f5560448201526a1514155517d05353d5539560aa1b6064820152608401610b96565b600083118015610f155750600082115b610f715760405162461bcd60e51b815260206004820152602760248201527f536f6d61537761704c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b6064820152608401610b96565b6000610f896103e8610f838688610fb4565b90610fb4565b90506000610f9d6103e5610f838689610fc9565b9050610b3c6001610fae8385611224565b90610fd5565b6000610fc08284611246565b90505b92915050565b6000610fc0828461115f565b6000610fc0828461125d565b6001600160a01b0381168114610ff657600080fd5b50565b60008060008060006080868803121561101157600080fd5b853561101c81610fe1565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561104757600080fd5b818801915088601f83011261105b57600080fd5b81358181111561106a57600080fd5b89602082850101111561107c57600080fd5b9699959850939650602001949392505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156110b757600080fd5b81516110c281610fe1565b9392505050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561110757600080fd5b5035919050565b60006020828403121561112057600080fd5b815180151581146110c257600080fd5b60006020828403121561114257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610fc357610fc3611149565b6000825160005b818110156111935760208186018101518583015201611179565b506000920191825250919050565b6000816111b0576111b0611149565b506000190190565b80516001600160701b03811681146111cf57600080fd5b919050565b6000806000606084860312156111e957600080fd5b6111f2846111b8565b9250611200602085016111b8565b9150604084015163ffffffff8116811461121957600080fd5b809150509250925092565b60008261124157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610fc357610fc3611149565b80820180821115610fc357610fc361114956fea164736f6c6343000812000a",
  "deployedBytecode": "0x6080604052600436106100225760003560e01c80632fd432491461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610ff9565b610050565b005b6040805160028082526060820183526000926020830190803683370190505090506000806000336001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d891906110a5565b90506000336001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013e91906110a5565b905061016b7f000000000000000000000000000000000000000000000000000000000000000083836109df565b6001600160a01b0316336001600160a01b03161461018b5761018b6110c9565b881580610196575087155b6101a2576101a26110c9565b88156101ae57806101b0565b815b856000815181106101c3576101c36110df565b6001600160a01b039092166020928302919091019091015288156101e757816101e9565b805b856001815181106101fc576101fc6110df565b6001600160a01b0392831660209182029290920101527f00000000000000000000000000000000000000000000000000000000000000008116908316146102435788610245565b875b93507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102865787610288565b885b925050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836000815181106102c9576102c96110df565b60200260200101516001600160a01b0316148061033157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168360018151811061031e5761031e6110df565b60200260200101516001600160a01b0316145b61033d5761033d6110c9565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168460008151811061037c5761037c6110df565b60200260200101516001600160a01b0316146103b257836000815181106103a5576103a56110df565b60200260200101516103ce565b836001815181106103c5576103c56110df565b60200260200101515b6040516303795fb160e11b81526001600160a01b0380831660048301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906306f2bf6290602401602060405180830381865afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e91906110a5565b90508315610760576000610474878901896110f5565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018890529192509084169063095ea7b3906044016020604051808303816000875af11580156104c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104eb919061110e565b506040516395e3c50b60e01b8152600481018690526024810182905260001960448201526000906001600160a01b038416906395e3c50b906064016020604051808303816000875af1158015610545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105699190611130565b905060006105987f0000000000000000000000000000000000000000000000000000000000000000888a610b46565b6000815181106105aa576105aa6110df565b602002602001015190508082116105c3576105c36110c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561061e57600080fd5b505af1158015610632573d6000803e3d6000fd5b505060405163a9059cbb60e01b8152336004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316935063a9059cbb925060440190506020604051808303816000875af11580156106a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c9919061110e565b6106d5576106d56110c9565b60006001600160a01b038e166106eb838561115f565b6040805160008152602081019182905261070491611172565b60006040518083038185875af1925050503d8060008114610741576040519150601f19603f3d011682016040523d82523d6000602084013e610746565b606091505b5050905080610757576107576110c9565b505050506109d3565b600061076e878901896110f5565b604051632e1a7d4d60e01b8152600481018690529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156107d357600080fd5b505af11580156107e7573d6000803e3d6000fd5b505060405163f39b5b9b60e01b8152600481018490526000196024820152600092506001600160a01b038516915063f39b5b9b90879060440160206040518083038185885af115801561083e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108639190611130565b905060006108927f0000000000000000000000000000000000000000000000000000000000000000878a610b46565b6000815181106108a4576108a46110df565b602002602001015190508082116108bd576108bd6110c9565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0386169063a9059cbb906044016020604051808303816000875af115801561090a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092e919061110e565b61093a5761093a6110c9565b6001600160a01b03851663a9059cbb8e610954848661115f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c3919061110e565b6109cf576109cf6110c9565b5050505b50505050505050505050565b60008060006109ee8585610ce1565b91509150610b3c866001600160a01b0316632dd310006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5791906110a5565b876001600160a01b031663257671f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab99190611130565b60408051606087811b6bffffffffffffffffffffffff1990811660208085019190915288831b82166034850152845160288186030181526048850186528051908201206001600160f81b031960688601529690921b166069830152607d820194909452609d808201939093528151808203909301835260bd019052805191012090565b9695505050505050565b6060600282511015610b9f5760405162461bcd60e51b815260206004820152601d60248201527f536f6d61537761704c6962726172793a20494e56414c49445f5041544800000060448201526064015b60405180910390fd5b815167ffffffffffffffff811115610bb957610bb961108f565b604051908082528060200260200182016040528015610be2578160200160208202803683370190505b509050828160018351610bf5919061115f565b81518110610c0557610c056110df565b602002602001018181525050600060018351610c21919061115f565b90505b8015610cd957600080610c748786610c3d60018761115f565b81518110610c4d57610c4d6110df565b6020026020010151878681518110610c6757610c676110df565b6020026020010151610dd6565b91509150610c9c848481518110610c8d57610c8d6110df565b60200260200101518383610ea0565b84610ca860018661115f565b81518110610cb857610cb86110df565b60200260200101818152505050508080610cd1906111a1565b915050610c24565b509392505050565b600080826001600160a01b0316846001600160a01b031603610d515760405162461bcd60e51b8152602060048201526024808201527f536f6d61537761704c6962726172793a204944454e544943414c5f41444452456044820152635353455360e01b6064820152608401610b96565b826001600160a01b0316846001600160a01b031610610d71578284610d74565b83835b90925090506001600160a01b038216610dcf5760405162461bcd60e51b815260206004820152601d60248201527f536f6d61537761704c6962726172793a205a45524f5f414444524553530000006044820152606401610b96565b9250929050565b6000806000610de58585610ce1565b509050600080610df68888886109df565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5791906111d4565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b031614610e8e578082610e91565b81815b90999098509650505050505050565b6000808411610f055760405162461bcd60e51b815260206004820152602b60248201527f536f6d61537761704c6962726172793a20494e53554646494349454e545f4f5560448201526a1514155517d05353d5539560aa1b6064820152608401610b96565b600083118015610f155750600082115b610f715760405162461bcd60e51b815260206004820152602760248201527f536f6d61537761704c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b6064820152608401610b96565b6000610f896103e8610f838688610fb4565b90610fb4565b90506000610f9d6103e5610f838689610fc9565b9050610b3c6001610fae8385611224565b90610fd5565b6000610fc08284611246565b90505b92915050565b6000610fc0828461115f565b6000610fc0828461125d565b6001600160a01b0381168114610ff657600080fd5b50565b60008060008060006080868803121561101157600080fd5b853561101c81610fe1565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561104757600080fd5b818801915088601f83011261105b57600080fd5b81358181111561106a57600080fd5b89602082850101111561107c57600080fd5b9699959850939650602001949392505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156110b757600080fd5b81516110c281610fe1565b9392505050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561110757600080fd5b5035919050565b60006020828403121561112057600080fd5b815180151581146110c257600080fd5b60006020828403121561114257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610fc357610fc3611149565b6000825160005b818110156111935760208186018101518583015201611179565b506000920191825250919050565b6000816111b0576111b0611149565b506000190190565b80516001600160701b03811681146111cf57600080fd5b919050565b6000806000606084860312156111e957600080fd5b6111f2846111b8565b9250611200602085016111b8565b9150604084015163ffffffff8116811461121957600080fd5b809150509250925092565b60008261124157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610fc357610fc3611149565b80820180821115610fc357610fc361114956fea164736f6c6343000812000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
