{
  "_format": "hh-sol-artifact-1",
  "contractName": "ExampleSwapToPrice",
  "sourceName": "contracts/soma/SomaSwap/examples/ExampleSwapToPrice.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "factory_",
          "type": "address"
        },
        {
          "internalType": "contract ISomaSwapRouter",
          "name": "router_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "router",
      "outputs": [
        {
          "internalType": "contract ISomaSwapRouter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenB",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxSpendTokenA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxSpendTokenB",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapToPrice",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60c060405234801561001057600080fd5b5060405161129a38038061129a83398101604081905261002f9161005e565b6001600160a01b0391821660a05216608052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516111ca6100d0600039600081816060015261018801526000818160a30152818161026e015261032101526111ca6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063bef90fd314610046578063c45a01551461005b578063f887ea401461009e575b600080fd5b610059610054366004610e68565b6100c5565b005b6100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100827f000000000000000000000000000000000000000000000000000000000000000081565b85158015906100d357508415155b6101245760405162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5052494345000060448201526064015b60405180910390fd5b8315158061013157508215155b61017d5760405162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015260640161011b565b6000806000806101ae7f00000000000000000000000000000000000000000000000000000000000000008d8d6103b9565b915091506101be8a8a8484610483565b909450925050508061021d5760405162461bcd60e51b815260206004820152602260248201527f4578616d706c6553776170546f50726963653a205a45524f5f414d4f554e545f60448201526124a760f11b606482015260840161011b565b60008261022a578561022c565b865b90508082111561023a578091505b600083610247578a610249565b8b5b9050600084610258578c61025a565b8b5b90506102688233308761054c565b610293827f00000000000000000000000000000000000000000000000000000000000000008661068a565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106102c8576102c8610efa565b60200260200101906001600160a01b031690816001600160a01b03168152505081816001815181106102fc576102fc610efa565b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81527f0000000000000000000000000000000000000000000000000000000000000000909116906338ed17399061036190889060009086908e908e90600401610f10565b6000604051808303816000875af1158015610380573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103a89190810190610f81565b505050505050505050505050505050565b60008060006103c885856107b9565b5090506000806103d98888886108ae565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a919061105b565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b031614610471578082610474565b81815b90999098509650505050505050565b60008085610492858786610a17565b10915060006104a18585610ae2565b905060006104e76104e26104b7846103e8610ae2565b866104c257896104c4565b8a5b6104dd6103e5896104d5578d6104d7565b8c5b90610ae2565b610a17565b610af7565b905060006103e585610504576104ff876103e8610ae2565b610510565b610510886103e8610ae2565b61051a91906110d7565b9050808210156105335760008094509450505050610543565b61053d8282610c78565b93505050505b94509492505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916105b091906110f9565b6000604051808303816000865af19150503d80600081146105ed576040519150601f19603f3d011682016040523d82523d6000602084013e6105f2565b606091505b509150915081801561061c57508051158061061c57508080602001905181019061061c9190611128565b6106825760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161011b565b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916106e691906110f9565b6000604051808303816000865af19150503d8060008114610723576040519150601f19603f3d011682016040523d82523d6000602084013e610728565b606091505b50915091508180156107525750805115806107525750808060200190518101906107529190611128565b6107b25760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b606482015260840161011b565b5050505050565b600080826001600160a01b0316846001600160a01b0316036108295760405162461bcd60e51b8152602060048201526024808201527f536f6d61537761704c6962726172793a204944454e544943414c5f41444452456044820152635353455360e01b606482015260840161011b565b826001600160a01b0316846001600160a01b03161061084957828461084c565b83835b90925090506001600160a01b0382166108a75760405162461bcd60e51b815260206004820152601d60248201527f536f6d61537761704c6962726172793a205a45524f5f41444452455353000000604482015260640161011b565b9250929050565b60008060006108bd85856107b9565b91509150610a0b866001600160a01b0316632dd310006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610926919061114a565b876001600160a01b031663257671f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109889190611167565b60408051606087811b6bffffffffffffffffffffffff1990811660208085019190915288831b82166034850152845160288186030181526048850186528051908201206001600160f81b031960688601529690921b166069830152607d820194909452609d808201939093528151808203909301835260bd019052805191012090565b925050505b9392505050565b6000806000610a268686610c84565b9150915060008480610a3a57610a3a6110ab565b868809905082811115610a5557610a52600183611180565b91505b610a5f8184611180565b925081600003610a7d57610a7385846110d7565b9350505050610a10565b848210610acc5760405162461bcd60e51b815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015260640161011b565b610ad7838387610cc6565b979650505050505050565b6000610aee8284611193565b90505b92915050565b600081600003610b0957506000919050565b816001600160801b8210610b225760809190911c9060401b5b680100000000000000008210610b3d5760409190911c9060201b5b6401000000008210610b545760209190911c9060101b5b620100008210610b695760109190911c9060081b5b6101008210610b7d5760089190911c9060041b5b60108210610b905760049190911c9060021b5b60088210610b9c5760011b5b6001610ba882866110d7565b610bb290836111aa565b901c90506001610bc282866110d7565b610bcc90836111aa565b901c90506001610bdc82866110d7565b610be690836111aa565b901c90506001610bf682866110d7565b610c0090836111aa565b901c90506001610c1082866110d7565b610c1a90836111aa565b901c90506001610c2a82866110d7565b610c3490836111aa565b901c90506001610c4482866110d7565b610c4e90836111aa565b901c90506000610c5e82866110d7565b9050808210610c6d5780610c6f565b815b95945050505050565b6000610aee8284611180565b600080806000198486099050610c9a8486611193565b9250610ca68382611180565b915082811015610cbe57610cbb600183611180565b91505b509250929050565b600080610cd283610e37565b83169050610ce081846110d7565b9250610cec81866110d7565b945080610cf882610e37565b610d0291906110d7565b610d0d9060016111aa565b610d179085611193565b610d2190866111aa565b94506001610d2f8185611193565b610d3a906002611180565b610d449082611193565b9050610d508185611193565b610d5b906002611180565b610d659082611193565b9050610d718185611193565b610d7c906002611180565b610d869082611193565b9050610d928185611193565b610d9d906002611180565b610da79082611193565b9050610db38185611193565b610dbe906002611180565b610dc89082611193565b9050610dd48185611193565b610ddf906002611180565b610de99082611193565b9050610df58185611193565b610e00906002611180565b610e0a9082611193565b9050610e168185611193565b610e21906002611180565b610e2b9082611193565b9050610a0b8187611193565b6000610e4582600019611180565b610af19060016111aa565b6001600160a01b0381168114610e6557600080fd5b50565b600080600080600080600080610100898b031215610e8557600080fd5b8835610e9081610e50565b97506020890135610ea081610e50565b965060408901359550606089013594506080890135935060a0890135925060c0890135610ecc81610e50565b8092505060e089013590509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015610f605784516001600160a01b031683529383019391830191600101610f3b565b50506001600160a01b03969096166060850152505050608001529392505050565b60006020808385031215610f9457600080fd5b825167ffffffffffffffff80821115610fac57600080fd5b818501915085601f830112610fc057600080fd5b815181811115610fd257610fd2610ee4565b8060051b604051601f19603f83011681018181108582111715610ff757610ff7610ee4565b60405291825284820192508381018501918883111561101557600080fd5b938501935b828510156110335784518452938501939285019261101a565b98975050505050505050565b80516001600160701b038116811461105657600080fd5b919050565b60008060006060848603121561107057600080fd5b6110798461103f565b92506110876020850161103f565b9150604084015163ffffffff811681146110a057600080fd5b809150509250925092565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826110f457634e487b7160e01b600052601260045260246000fd5b500490565b6000825160005b8181101561111a5760208186018101518583015201611100565b506000920191825250919050565b60006020828403121561113a57600080fd5b81518015158114610a1057600080fd5b60006020828403121561115c57600080fd5b8151610a1081610e50565b60006020828403121561117957600080fd5b5051919050565b81810381811115610af157610af16110c1565b8082028115828204841417610af157610af16110c1565b80820180821115610af157610af16110c156fea164736f6c6343000812000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063bef90fd314610046578063c45a01551461005b578063f887ea401461009e575b600080fd5b610059610054366004610e68565b6100c5565b005b6100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100827f000000000000000000000000000000000000000000000000000000000000000081565b85158015906100d357508415155b6101245760405162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5052494345000060448201526064015b60405180910390fd5b8315158061013157508215155b61017d5760405162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015260640161011b565b6000806000806101ae7f00000000000000000000000000000000000000000000000000000000000000008d8d6103b9565b915091506101be8a8a8484610483565b909450925050508061021d5760405162461bcd60e51b815260206004820152602260248201527f4578616d706c6553776170546f50726963653a205a45524f5f414d4f554e545f60448201526124a760f11b606482015260840161011b565b60008261022a578561022c565b865b90508082111561023a578091505b600083610247578a610249565b8b5b9050600084610258578c61025a565b8b5b90506102688233308761054c565b610293827f00000000000000000000000000000000000000000000000000000000000000008661068a565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106102c8576102c8610efa565b60200260200101906001600160a01b031690816001600160a01b03168152505081816001815181106102fc576102fc610efa565b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81527f0000000000000000000000000000000000000000000000000000000000000000909116906338ed17399061036190889060009086908e908e90600401610f10565b6000604051808303816000875af1158015610380573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103a89190810190610f81565b505050505050505050505050505050565b60008060006103c885856107b9565b5090506000806103d98888886108ae565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a919061105b565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b031614610471578082610474565b81815b90999098509650505050505050565b60008085610492858786610a17565b10915060006104a18585610ae2565b905060006104e76104e26104b7846103e8610ae2565b866104c257896104c4565b8a5b6104dd6103e5896104d5578d6104d7565b8c5b90610ae2565b610a17565b610af7565b905060006103e585610504576104ff876103e8610ae2565b610510565b610510886103e8610ae2565b61051a91906110d7565b9050808210156105335760008094509450505050610543565b61053d8282610c78565b93505050505b94509492505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916105b091906110f9565b6000604051808303816000865af19150503d80600081146105ed576040519150601f19603f3d011682016040523d82523d6000602084013e6105f2565b606091505b509150915081801561061c57508051158061061c57508080602001905181019061061c9190611128565b6106825760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161011b565b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916106e691906110f9565b6000604051808303816000865af19150503d8060008114610723576040519150601f19603f3d011682016040523d82523d6000602084013e610728565b606091505b50915091508180156107525750805115806107525750808060200190518101906107529190611128565b6107b25760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b606482015260840161011b565b5050505050565b600080826001600160a01b0316846001600160a01b0316036108295760405162461bcd60e51b8152602060048201526024808201527f536f6d61537761704c6962726172793a204944454e544943414c5f41444452456044820152635353455360e01b606482015260840161011b565b826001600160a01b0316846001600160a01b03161061084957828461084c565b83835b90925090506001600160a01b0382166108a75760405162461bcd60e51b815260206004820152601d60248201527f536f6d61537761704c6962726172793a205a45524f5f41444452455353000000604482015260640161011b565b9250929050565b60008060006108bd85856107b9565b91509150610a0b866001600160a01b0316632dd310006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610926919061114a565b876001600160a01b031663257671f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109889190611167565b60408051606087811b6bffffffffffffffffffffffff1990811660208085019190915288831b82166034850152845160288186030181526048850186528051908201206001600160f81b031960688601529690921b166069830152607d820194909452609d808201939093528151808203909301835260bd019052805191012090565b925050505b9392505050565b6000806000610a268686610c84565b9150915060008480610a3a57610a3a6110ab565b868809905082811115610a5557610a52600183611180565b91505b610a5f8184611180565b925081600003610a7d57610a7385846110d7565b9350505050610a10565b848210610acc5760405162461bcd60e51b815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015260640161011b565b610ad7838387610cc6565b979650505050505050565b6000610aee8284611193565b90505b92915050565b600081600003610b0957506000919050565b816001600160801b8210610b225760809190911c9060401b5b680100000000000000008210610b3d5760409190911c9060201b5b6401000000008210610b545760209190911c9060101b5b620100008210610b695760109190911c9060081b5b6101008210610b7d5760089190911c9060041b5b60108210610b905760049190911c9060021b5b60088210610b9c5760011b5b6001610ba882866110d7565b610bb290836111aa565b901c90506001610bc282866110d7565b610bcc90836111aa565b901c90506001610bdc82866110d7565b610be690836111aa565b901c90506001610bf682866110d7565b610c0090836111aa565b901c90506001610c1082866110d7565b610c1a90836111aa565b901c90506001610c2a82866110d7565b610c3490836111aa565b901c90506001610c4482866110d7565b610c4e90836111aa565b901c90506000610c5e82866110d7565b9050808210610c6d5780610c6f565b815b95945050505050565b6000610aee8284611180565b600080806000198486099050610c9a8486611193565b9250610ca68382611180565b915082811015610cbe57610cbb600183611180565b91505b509250929050565b600080610cd283610e37565b83169050610ce081846110d7565b9250610cec81866110d7565b945080610cf882610e37565b610d0291906110d7565b610d0d9060016111aa565b610d179085611193565b610d2190866111aa565b94506001610d2f8185611193565b610d3a906002611180565b610d449082611193565b9050610d508185611193565b610d5b906002611180565b610d659082611193565b9050610d718185611193565b610d7c906002611180565b610d869082611193565b9050610d928185611193565b610d9d906002611180565b610da79082611193565b9050610db38185611193565b610dbe906002611180565b610dc89082611193565b9050610dd48185611193565b610ddf906002611180565b610de99082611193565b9050610df58185611193565b610e00906002611180565b610e0a9082611193565b9050610e168185611193565b610e21906002611180565b610e2b9082611193565b9050610a0b8187611193565b6000610e4582600019611180565b610af19060016111aa565b6001600160a01b0381168114610e6557600080fd5b50565b600080600080600080600080610100898b031215610e8557600080fd5b8835610e9081610e50565b97506020890135610ea081610e50565b965060408901359550606089013594506080890135935060a0890135925060c0890135610ecc81610e50565b8092505060e089013590509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015610f605784516001600160a01b031683529383019391830191600101610f3b565b50506001600160a01b03969096166060850152505050608001529392505050565b60006020808385031215610f9457600080fd5b825167ffffffffffffffff80821115610fac57600080fd5b818501915085601f830112610fc057600080fd5b815181811115610fd257610fd2610ee4565b8060051b604051601f19603f83011681018181108582111715610ff757610ff7610ee4565b60405291825284820192508381018501918883111561101557600080fd5b938501935b828510156110335784518452938501939285019261101a565b98975050505050505050565b80516001600160701b038116811461105657600080fd5b919050565b60008060006060848603121561107057600080fd5b6110798461103f565b92506110876020850161103f565b9150604084015163ffffffff811681146110a057600080fd5b809150509250925092565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826110f457634e487b7160e01b600052601260045260246000fd5b500490565b6000825160005b8181101561111a5760208186018101518583015201611100565b506000920191825250919050565b60006020828403121561113a57600080fd5b81518015158114610a1057600080fd5b60006020828403121561115c57600080fd5b8151610a1081610e50565b60006020828403121561117957600080fd5b5051919050565b81810381811115610af157610af16110c1565b8082028115828204841417610af157610af16110c1565b80820180821115610af157610af16110c156fea164736f6c6343000812000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
