bnpl
Version:
The smart contracts for bnpl
390 lines (389 loc) • 23 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "Conduit",
"sourceName": "contracts/conduit/Conduit.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "BadReturnValueFromERC20OnTransfer",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "channel",
"type": "address"
}
],
"name": "ChannelClosed",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "channel",
"type": "address"
},
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"name": "ChannelStatusAlreadySet",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "identifiers",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "ERC1155BatchTransferGenericFailure",
"type": "error"
},
{
"inputs": [],
"name": "Invalid1155BatchTransferEncoding",
"type": "error"
},
{
"inputs": [],
"name": "InvalidController",
"type": "error"
},
{
"inputs": [],
"name": "InvalidERC721TransferAmount",
"type": "error"
},
{
"inputs": [],
"name": "InvalidItemType",
"type": "error"
},
{
"inputs": [],
"name": "MissingItemAmount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "NoContract",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "identifier",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "TokenTransferGenericFailure",
"type": "error"
},
{
"inputs": [],
"name": "UnusedItemParameters",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "channel",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "open",
"type": "bool"
}
],
"name": "ChannelUpdated",
"type": "event"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum ConduitItemType",
"name": "itemType",
"type": "uint8"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "identifier",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct ConduitTransfer[]",
"name": "transfers",
"type": "tuple[]"
}
],
"name": "execute",
"outputs": [
{
"internalType": "bytes4",
"name": "magicValue",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"internalType": "struct ConduitBatch1155Transfer[]",
"name": "batchTransfers",
"type": "tuple[]"
}
],
"name": "executeBatch1155",
"outputs": [
{
"internalType": "bytes4",
"name": "magicValue",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum ConduitItemType",
"name": "itemType",
"type": "uint8"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "identifier",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct ConduitTransfer[]",
"name": "standardTransfers",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"internalType": "struct ConduitBatch1155Transfer[]",
"name": "batchTransfers",
"type": "tuple[]"
}
],
"name": "executeWithBatch1155",
"outputs": [
{
"internalType": "bytes4",
"name": "magicValue",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "channel",
"type": "address"
},
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"name": "updateChannel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a060405234801561001057600080fd5b5033608052608051610db461003060003960006102a40152610db46000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634ce34aa214610051578063899e104c146100995780638df25d92146100ac578063c4e8fcb5146100bf575b600080fd5b61006461005f366004610b4f565b6100d4565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b6100646100a7366004610bd6565b610175565b6100646100ba366004610c42565b610217565b6100d26100cd366004610ca1565b61028c565b005b6000336000526000602052604060002054610117577f93daadf2000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b8160005b8181101561014b5761014385858381811061013857610138610cdd565b905060c0020161040e565b60010161011b565b507f4ce34aa200000000000000000000000000000000000000000000000000000000949350505050565b60003360005260006020526040600020546101b8577f93daadf2000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b8360005b818110156101e1576101d987878381811061013857610138610cdd565b6001016101bc565b506101ec84846105ac565b507f899e104c0000000000000000000000000000000000000000000000000000000095945050505050565b600033600052600060205260406000205461025a577f93daadf2000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b61026483836105ac565b507f8df25d920000000000000000000000000000000000000000000000000000000092915050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102fb576040517f6d5769be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481151560ff909116151503610386576040517f924e341e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152811515602482015260440160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b600161041d6020830183610d3b565b600381111561042e5761042e610d0c565b03610473576104706104466040830160208401610d63565b6104566060840160408501610d63565b6104666080850160608601610d63565b8460a00135610755565b50565b60026104826020830183610d3b565b600381111561049357610493610d0c565b03610513578060a001356001146104d6576040517fefcc00b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104706104e96040830160208401610d63565b6104f96060840160408501610d63565b6105096080850160608601610d63565b84608001356108c2565b60036105226020830183610d3b565b600381111561053357610533610d0c565b0361057a5761047061054b6040830160208401610d63565b61055b6060840160408501610d63565b61056b6080850160608601610d63565b84608001358560a001356109d1565b6040517f7932f1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082807f2eb2c2d60000000000000000000000000000000000000000000000000000000060205260005b8381101561074857823582018035803b610618577f5f15d672000000000000000000000000000000000000000000000000000000006000528060045260246000fd5b60a08201356020810260c0018060808501351460a06060860135141681850135831416159050801561066e577feba2084c0000000000000000000000000000000000000000000000000000000060005260046000fd5b506020860195506080602084016024376040810260400190508060a00160a45260008160c401528060c4018160a0850160c4376000808260206000875af1935083610739573d156106fe576020601f3d010491506020810482600302818411156106e657818403600302610200838002868002030401015b5a6020820110156106fb573d6000803e3d6000fd5b50505b7fafc445e2000000000000000000000000000000000000000000000000000000006000528260045260c0606452608451602001608452806000fd5b505050506001810190506105d6565b5050505060806040525050565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000600052836004528260245281604452602060006064600080895af1803d15601f3d116001600051141617163d151581166108b25780873b1515166108b25780610884578161084a573d1561080b576020601f3d01046020840481600302818311156107f257818303600302610200838002858002030401015b5a602082011015610807573d6000803e3d6000fd5b5050505b7ff486bc870000000000000000000000000000000000000000000000000000000060005286600452856024528460445260006064528360845260a46000fd5b7f98891923000000000000000000000000000000000000000000000000000000006000528660045285602452846044528360645260846000fd5b7f5f15d672000000000000000000000000000000000000000000000000000000006000528660045260246000fd5b5050604052505060006060525050565b833b6108f6577f5f15d672000000000000000000000000000000000000000000000000000000006000528360045260246000fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000006000528360045282602452816044526000806064600080895af1806109c2573d15610983576020601f3d010460208304816003028183111561096a57818303600302610200838002858002030401015b5a60208201101561097f573d6000803e3d6000fd5b5050505b7ff486bc870000000000000000000000000000000000000000000000000000000060005285600452846024528360445282606452600160845260a46000fd5b50604052505060006060525050565b843b610a05577f5f15d672000000000000000000000000000000000000000000000000000000006000528460045260246000fd5b60405160805160a05160c0517ff242432a000000000000000000000000000000000000000000000000000000006000528760045286602452856044528460645260a0608452600060a45260008060c46000808d5af180610ae7573d15610aa9576020601f3d0104602086048160030281831115610a9057818303600302610200838002858002030401015b5a602082011015610aa5573d6000803e3d6000fd5b5050505b7ff486bc8700000000000000000000000000000000000000000000000000000000600052896004528860245287604452866064528560845260a46000fd5b5060809290925260a05260c05260405250506000606052505050565b60008083601f840112610b1557600080fd5b50813567ffffffffffffffff811115610b2d57600080fd5b60208301915083602060c083028501011115610b4857600080fd5b9250929050565b60008060208385031215610b6257600080fd5b823567ffffffffffffffff811115610b7957600080fd5b610b8585828601610b03565b90969095509350505050565b60008083601f840112610ba357600080fd5b50813567ffffffffffffffff811115610bbb57600080fd5b6020830191508360208260051b8501011115610b4857600080fd5b60008060008060408587031215610bec57600080fd5b843567ffffffffffffffff80821115610c0457600080fd5b610c1088838901610b03565b90965094506020870135915080821115610c2957600080fd5b50610c3687828801610b91565b95989497509550505050565b60008060208385031215610c5557600080fd5b823567ffffffffffffffff811115610c6c57600080fd5b610b8585828601610b91565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c9c57600080fd5b919050565b60008060408385031215610cb457600080fd5b610cbd83610c78565b915060208301358015158114610cd257600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215610d4d57600080fd5b813560048110610d5c57600080fd5b9392505050565b600060208284031215610d7557600080fd5b610d5c82610c7856fea26469706673582212209cadd638170dc51bd1bcdf7a749c70a4b43d82a57f073a9e1a087a48e2f0ad0164736f6c634300080e0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634ce34aa214610051578063899e104c146100995780638df25d92146100ac578063c4e8fcb5146100bf575b600080fd5b61006461005f366004610b4f565b6100d4565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b6100646100a7366004610bd6565b610175565b6100646100ba366004610c42565b610217565b6100d26100cd366004610ca1565b61028c565b005b6000336000526000602052604060002054610117577f93daadf2000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b8160005b8181101561014b5761014385858381811061013857610138610cdd565b905060c0020161040e565b60010161011b565b507f4ce34aa200000000000000000000000000000000000000000000000000000000949350505050565b60003360005260006020526040600020546101b8577f93daadf2000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b8360005b818110156101e1576101d987878381811061013857610138610cdd565b6001016101bc565b506101ec84846105ac565b507f899e104c0000000000000000000000000000000000000000000000000000000095945050505050565b600033600052600060205260406000205461025a577f93daadf2000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b61026483836105ac565b507f8df25d920000000000000000000000000000000000000000000000000000000092915050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102fb576040517f6d5769be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481151560ff909116151503610386576040517f924e341e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152811515602482015260440160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b600161041d6020830183610d3b565b600381111561042e5761042e610d0c565b03610473576104706104466040830160208401610d63565b6104566060840160408501610d63565b6104666080850160608601610d63565b8460a00135610755565b50565b60026104826020830183610d3b565b600381111561049357610493610d0c565b03610513578060a001356001146104d6576040517fefcc00b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104706104e96040830160208401610d63565b6104f96060840160408501610d63565b6105096080850160608601610d63565b84608001356108c2565b60036105226020830183610d3b565b600381111561053357610533610d0c565b0361057a5761047061054b6040830160208401610d63565b61055b6060840160408501610d63565b61056b6080850160608601610d63565b84608001358560a001356109d1565b6040517f7932f1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082807f2eb2c2d60000000000000000000000000000000000000000000000000000000060205260005b8381101561074857823582018035803b610618577f5f15d672000000000000000000000000000000000000000000000000000000006000528060045260246000fd5b60a08201356020810260c0018060808501351460a06060860135141681850135831416159050801561066e577feba2084c0000000000000000000000000000000000000000000000000000000060005260046000fd5b506020860195506080602084016024376040810260400190508060a00160a45260008160c401528060c4018160a0850160c4376000808260206000875af1935083610739573d156106fe576020601f3d010491506020810482600302818411156106e657818403600302610200838002868002030401015b5a6020820110156106fb573d6000803e3d6000fd5b50505b7fafc445e2000000000000000000000000000000000000000000000000000000006000528260045260c0606452608451602001608452806000fd5b505050506001810190506105d6565b5050505060806040525050565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000600052836004528260245281604452602060006064600080895af1803d15601f3d116001600051141617163d151581166108b25780873b1515166108b25780610884578161084a573d1561080b576020601f3d01046020840481600302818311156107f257818303600302610200838002858002030401015b5a602082011015610807573d6000803e3d6000fd5b5050505b7ff486bc870000000000000000000000000000000000000000000000000000000060005286600452856024528460445260006064528360845260a46000fd5b7f98891923000000000000000000000000000000000000000000000000000000006000528660045285602452846044528360645260846000fd5b7f5f15d672000000000000000000000000000000000000000000000000000000006000528660045260246000fd5b5050604052505060006060525050565b833b6108f6577f5f15d672000000000000000000000000000000000000000000000000000000006000528360045260246000fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000006000528360045282602452816044526000806064600080895af1806109c2573d15610983576020601f3d010460208304816003028183111561096a57818303600302610200838002858002030401015b5a60208201101561097f573d6000803e3d6000fd5b5050505b7ff486bc870000000000000000000000000000000000000000000000000000000060005285600452846024528360445282606452600160845260a46000fd5b50604052505060006060525050565b843b610a05577f5f15d672000000000000000000000000000000000000000000000000000000006000528460045260246000fd5b60405160805160a05160c0517ff242432a000000000000000000000000000000000000000000000000000000006000528760045286602452856044528460645260a0608452600060a45260008060c46000808d5af180610ae7573d15610aa9576020601f3d0104602086048160030281831115610a9057818303600302610200838002858002030401015b5a602082011015610aa5573d6000803e3d6000fd5b5050505b7ff486bc8700000000000000000000000000000000000000000000000000000000600052896004528860245287604452866064528560845260a46000fd5b5060809290925260a05260c05260405250506000606052505050565b60008083601f840112610b1557600080fd5b50813567ffffffffffffffff811115610b2d57600080fd5b60208301915083602060c083028501011115610b4857600080fd5b9250929050565b60008060208385031215610b6257600080fd5b823567ffffffffffffffff811115610b7957600080fd5b610b8585828601610b03565b90969095509350505050565b60008083601f840112610ba357600080fd5b50813567ffffffffffffffff811115610bbb57600080fd5b6020830191508360208260051b8501011115610b4857600080fd5b60008060008060408587031215610bec57600080fd5b843567ffffffffffffffff80821115610c0457600080fd5b610c1088838901610b03565b90965094506020870135915080821115610c2957600080fd5b50610c3687828801610b91565b95989497509550505050565b60008060208385031215610c5557600080fd5b823567ffffffffffffffff811115610c6c57600080fd5b610b8585828601610b91565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c9c57600080fd5b919050565b60008060408385031215610cb457600080fd5b610cbd83610c78565b915060208301358015158114610cd257600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215610d4d57600080fd5b813560048110610d5c57600080fd5b9392505050565b600060208284031215610d7557600080fd5b610d5c82610c7856fea26469706673582212209cadd638170dc51bd1bcdf7a749c70a4b43d82a57f073a9e1a087a48e2f0ad0164736f6c634300080e0033",
"linkReferences": {},
"deployedLinkReferences": {}
}