{
  "_format": "hh-sol-artifact-1",
  "contractName": "SushiSwapMultiSwapper",
  "sourceName": "contracts/swappers/SushiSwapMultiSwapper.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_factory",
          "type": "address"
        },
        {
          "internalType": "contract IBentoBoxV1",
          "name": "_bentoBox",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_pairCodeHash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "tokenIn",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "tokenOut",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amountMinOut",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "path",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "shareIn",
          "type": "uint256"
        }
      ],
      "name": "getOutputAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountOut",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "tokenIn",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "tokenOut",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amountMinOut",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "path",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "shareIn",
          "type": "uint256"
        }
      ],
      "name": "swap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "shareOut",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60e060405234801561001057600080fd5b5060405161128538038061128583398101604081905261002f91610052565b6001600160601b0319606093841b81166080529190921b1660a05260c0526100ac565b600080600060608486031215610066578283fd5b835161007181610094565b602085015190935061008281610094565b80925050604084015190509250925092565b6001600160a01b03811681146100a957600080fd5b50565b60805160601c60a05160601c60c0516111716101146000398061036b52806103e852806104a452806108b8525080608c528061016a528061019752806101c7528061027152508061031952806103c55280610459528061085f528061089552506111716000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063b1b8cd131461003b578063ee991a9e14610065575b600080fd5b61004e610049366004610c18565b610085565b60405161005c92919061107c565b60405180910390f35b610078610073366004610c18565b61026c565b60405161005c9190611073565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166397da6d308a30306000896040518663ffffffff1660e01b81526004016100df959493929190610dfa565b6040805180830381600087803b1580156100f857600080fd5b505af115801561010c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101309190610d2b565b50905061019381888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092506103bc915050565b92507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302b9446c897f0000000000000000000000000000000000000000000000000000000000000000338760006040518663ffffffff1660e01b815260040161020a959493929190610dfa565b6040805180830381600087803b15801561022357600080fd5b505af1158015610237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025b9190610d2b565b939a93995092975050505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166356623118898560006040518463ffffffff1660e01b81526004016102c093929190610e2e565b60206040518083038186803b1580156102d857600080fd5b505afa1580156102ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103109190610d13565b905060606103947f0000000000000000000000000000000000000000000000000000000000000000838888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925061050a915050565b9050806001825103815181106103a657fe5b6020026020010151925050509695505050505050565b6000606061040c7f000000000000000000000000000000000000000000000000000000000000000087867f000000000000000000000000000000000000000000000000000000000000000061050a565b90508060018251038151811061041e57fe5b60200260200101519150848210156104515760405162461bcd60e51b81526004016104489061103c565b60405180910390fd5b6104f66104c87f00000000000000000000000000000000000000000000000000000000000000008660008151811061048557fe5b60200260200101518760018151811061049a57fe5b60200260200101517f000000000000000000000000000000000000000000000000000000000000000061061a565b87866000815181106104d657fe5b60200260200101516001600160a01b031661068d9092919063ffffffff16565b6105018185856107b0565b50949350505050565b606060028351101561052e5760405162461bcd60e51b815260040161044890610f3b565b825167ffffffffffffffff8111801561054657600080fd5b50604051908082528060200260200182016040528015610570578160200160208202803683370190505b509050838160008151811061058157fe5b60200260200101818152505060005b6001845103811015610501576000806105d4888785815181106105af57fe5b60200260200101518886600101815181106105c657fe5b602002602001015188610984565b915091506105f68484815181106105e757fe5b60200260200101518383610a6d565b84846001018151811061060557fe5b60209081029190910101525050600101610590565b60008060006106298686610b07565b91509150868282604051602001610641929190610d4e565b604051602081830303815290604052805190602001208560405160200161066a93929190610d91565b60408051601f198184030181529190528051602090910120979650505050505050565b60006060846001600160a01b031663a9059cbb60e01b85856040516024016106b6929190610de1565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107219190610d75565b6000604051808303816000865af19150503d806000811461075e576040519150601f19603f3d011682016040523d82523d6000602084013e610763565b606091505b509150915081801561078d57508051158061078d57508080602001905181019061078d9190610bf1565b6107a95760405162461bcd60e51b815260040161044890610e51565b5050505050565b60005b600183510381101561097e576000808483815181106107ce57fe5b60200260200101518584600101815181106107e557fe5b60200260200101519150915060006107fd8383610b07565b509050600087856001018151811061081157fe5b60200260200101519050600080836001600160a01b0316866001600160a01b03161461083f57826000610843565b6000835b91509150600060028a5103881061085a578861088e565b61088e7f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061049a57fe5b90506108dc7f000000000000000000000000000000000000000000000000000000000000000088887f000000000000000000000000000000000000000000000000000000000000000061061a565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015610919576020820181803683370190505b506040518563ffffffff1660e01b8152600401610939949392919061108a565b600060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b5050600190990198506107b3975050505050505050565b50505050565b60008060006109938686610b07565b5090506000806109a58989898961061a565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a159190610cbf565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316886001600160a01b031614610a5a578082610a5d565b81815b909a909950975050505050505050565b6000808411610a8e5760405162461bcd60e51b815260040161044890610ff1565b600083118015610a9e5750600082115b610aba5760405162461bcd60e51b815260040161044890610f72565b6000610ac8856103e5610b91565b90506000610ad68285610b91565b90506000610af083610aea886103e8610b91565b90610bce565b9050808281610afb57fe5b04979650505050505050565b600080826001600160a01b0316846001600160a01b03161415610b3c5760405162461bcd60e51b815260040161044890610ef6565b826001600160a01b0316846001600160a01b031610610b5c578284610b5f565b83835b90925090506001600160a01b038216610b8a5760405162461bcd60e51b815260040161044890610fba565b9250929050565b6000811580610bac57505080820282828281610ba957fe5b04145b610bc85760405162461bcd60e51b815260040161044890610e88565b92915050565b80820182811015610bc85760405162461bcd60e51b815260040161044890610ebf565b600060208284031215610c02578081fd5b81518015158114610c11578182fd5b9392505050565b60008060008060008060a08789031215610c30578182fd5b8635610c3b81611107565b95506020870135610c4b81611107565b945060408701359350606087013567ffffffffffffffff80821115610c6e578384fd5b818901915089601f830112610c81578384fd5b813581811115610c8f578485fd5b8a60208083028501011115610ca2578485fd5b602083019550809450505050608087013590509295509295509295565b600080600060608486031215610cd3578283fd5b8351610cde8161111f565b6020850151909350610cef8161111f565b604085015190925063ffffffff81168114610d08578182fd5b809150509250925092565b600060208284031215610d24578081fd5b5051919050565b60008060408385031215610d3d578182fd5b505080516020909101519092909150565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251610d878184602087016110db565b9190910192915050565b7fff00000000000000000000000000000000000000000000000000000000000000815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526025908201527f556e697377617056324c6962726172793a204944454e544943414c5f41444452604082015264455353455360d81b606082015260800190565b6020808252601e908201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604082015260600190565b60208082526028908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c604082015267495155494449545960c01b606082015260800190565b6020808252601e908201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604082015260600190565b6020808252602b908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960408201526a1394155517d05353d5539560aa1b606082015260800190565b60208082526017908201527f696e73756666696369656e742d616d6f756e742d6f7574000000000000000000604082015260600190565b90815260200190565b918252602082015260400190565b60008582528460208301526001600160a01b03841660408301526080606083015282518060808401526110c48160a08501602087016110db565b601f01601f19169190910160a00195945050505050565b60005b838110156110f65781810151838201526020016110de565b8381111561097e5750506000910152565b6001600160a01b038116811461111c57600080fd5b50565b6dffffffffffffffffffffffffffff8116811461111c57600080fdfea2646970667358221220369f08dda2904707fe6500acd47c755369758b51a3de130d1167088dee90f5bc64736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063b1b8cd131461003b578063ee991a9e14610065575b600080fd5b61004e610049366004610c18565b610085565b60405161005c92919061107c565b60405180910390f35b610078610073366004610c18565b61026c565b60405161005c9190611073565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166397da6d308a30306000896040518663ffffffff1660e01b81526004016100df959493929190610dfa565b6040805180830381600087803b1580156100f857600080fd5b505af115801561010c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101309190610d2b565b50905061019381888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092506103bc915050565b92507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302b9446c897f0000000000000000000000000000000000000000000000000000000000000000338760006040518663ffffffff1660e01b815260040161020a959493929190610dfa565b6040805180830381600087803b15801561022357600080fd5b505af1158015610237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025b9190610d2b565b939a93995092975050505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166356623118898560006040518463ffffffff1660e01b81526004016102c093929190610e2e565b60206040518083038186803b1580156102d857600080fd5b505afa1580156102ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103109190610d13565b905060606103947f0000000000000000000000000000000000000000000000000000000000000000838888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925061050a915050565b9050806001825103815181106103a657fe5b6020026020010151925050509695505050505050565b6000606061040c7f000000000000000000000000000000000000000000000000000000000000000087867f000000000000000000000000000000000000000000000000000000000000000061050a565b90508060018251038151811061041e57fe5b60200260200101519150848210156104515760405162461bcd60e51b81526004016104489061103c565b60405180910390fd5b6104f66104c87f00000000000000000000000000000000000000000000000000000000000000008660008151811061048557fe5b60200260200101518760018151811061049a57fe5b60200260200101517f000000000000000000000000000000000000000000000000000000000000000061061a565b87866000815181106104d657fe5b60200260200101516001600160a01b031661068d9092919063ffffffff16565b6105018185856107b0565b50949350505050565b606060028351101561052e5760405162461bcd60e51b815260040161044890610f3b565b825167ffffffffffffffff8111801561054657600080fd5b50604051908082528060200260200182016040528015610570578160200160208202803683370190505b509050838160008151811061058157fe5b60200260200101818152505060005b6001845103811015610501576000806105d4888785815181106105af57fe5b60200260200101518886600101815181106105c657fe5b602002602001015188610984565b915091506105f68484815181106105e757fe5b60200260200101518383610a6d565b84846001018151811061060557fe5b60209081029190910101525050600101610590565b60008060006106298686610b07565b91509150868282604051602001610641929190610d4e565b604051602081830303815290604052805190602001208560405160200161066a93929190610d91565b60408051601f198184030181529190528051602090910120979650505050505050565b60006060846001600160a01b031663a9059cbb60e01b85856040516024016106b6929190610de1565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107219190610d75565b6000604051808303816000865af19150503d806000811461075e576040519150601f19603f3d011682016040523d82523d6000602084013e610763565b606091505b509150915081801561078d57508051158061078d57508080602001905181019061078d9190610bf1565b6107a95760405162461bcd60e51b815260040161044890610e51565b5050505050565b60005b600183510381101561097e576000808483815181106107ce57fe5b60200260200101518584600101815181106107e557fe5b60200260200101519150915060006107fd8383610b07565b509050600087856001018151811061081157fe5b60200260200101519050600080836001600160a01b0316866001600160a01b03161461083f57826000610843565b6000835b91509150600060028a5103881061085a578861088e565b61088e7f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061049a57fe5b90506108dc7f000000000000000000000000000000000000000000000000000000000000000088887f000000000000000000000000000000000000000000000000000000000000000061061a565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015610919576020820181803683370190505b506040518563ffffffff1660e01b8152600401610939949392919061108a565b600060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b5050600190990198506107b3975050505050505050565b50505050565b60008060006109938686610b07565b5090506000806109a58989898961061a565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a159190610cbf565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316886001600160a01b031614610a5a578082610a5d565b81815b909a909950975050505050505050565b6000808411610a8e5760405162461bcd60e51b815260040161044890610ff1565b600083118015610a9e5750600082115b610aba5760405162461bcd60e51b815260040161044890610f72565b6000610ac8856103e5610b91565b90506000610ad68285610b91565b90506000610af083610aea886103e8610b91565b90610bce565b9050808281610afb57fe5b04979650505050505050565b600080826001600160a01b0316846001600160a01b03161415610b3c5760405162461bcd60e51b815260040161044890610ef6565b826001600160a01b0316846001600160a01b031610610b5c578284610b5f565b83835b90925090506001600160a01b038216610b8a5760405162461bcd60e51b815260040161044890610fba565b9250929050565b6000811580610bac57505080820282828281610ba957fe5b04145b610bc85760405162461bcd60e51b815260040161044890610e88565b92915050565b80820182811015610bc85760405162461bcd60e51b815260040161044890610ebf565b600060208284031215610c02578081fd5b81518015158114610c11578182fd5b9392505050565b60008060008060008060a08789031215610c30578182fd5b8635610c3b81611107565b95506020870135610c4b81611107565b945060408701359350606087013567ffffffffffffffff80821115610c6e578384fd5b818901915089601f830112610c81578384fd5b813581811115610c8f578485fd5b8a60208083028501011115610ca2578485fd5b602083019550809450505050608087013590509295509295509295565b600080600060608486031215610cd3578283fd5b8351610cde8161111f565b6020850151909350610cef8161111f565b604085015190925063ffffffff81168114610d08578182fd5b809150509250925092565b600060208284031215610d24578081fd5b5051919050565b60008060408385031215610d3d578182fd5b505080516020909101519092909150565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251610d878184602087016110db565b9190910192915050565b7fff00000000000000000000000000000000000000000000000000000000000000815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526025908201527f556e697377617056324c6962726172793a204944454e544943414c5f41444452604082015264455353455360d81b606082015260800190565b6020808252601e908201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604082015260600190565b60208082526028908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c604082015267495155494449545960c01b606082015260800190565b6020808252601e908201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604082015260600190565b6020808252602b908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960408201526a1394155517d05353d5539560aa1b606082015260800190565b60208082526017908201527f696e73756666696369656e742d616d6f756e742d6f7574000000000000000000604082015260600190565b90815260200190565b918252602082015260400190565b60008582528460208301526001600160a01b03841660408301526080606083015282518060808401526110c48160a08501602087016110db565b601f01601f19169190910160a00195945050505050565b60005b838110156110f65781810151838201526020016110de565b8381111561097e5750506000910152565b6001600160a01b038116811461111c57600080fd5b50565b6dffffffffffffffffffffffffffff8116811461111c57600080fdfea2646970667358221220369f08dda2904707fe6500acd47c755369758b51a3de130d1167088dee90f5bc64736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
