@gooddollar/goodprotocol
Version:
GoodDollar Protocol
317 lines (316 loc) • 25.2 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "OneTimePaymentsV2",
"sourceName": "contracts/utils/OneTimePaymentsV2.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract INameService",
"name": "_ns",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "paymentId",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "PaymentCancel",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "paymentId",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "PaymentDeposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "paymentId",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "PaymentWithdraw",
"type": "event"
},
{
"inputs": [],
"name": "avatar",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "paymentId",
"type": "address"
}
],
"name": "cancel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "dao",
"outputs": [
{
"internalType": "contract Controller",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "paymentId",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "depositAsset",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "paymentId",
"type": "address"
}
],
"name": "hasPayment",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nameService",
"outputs": [
{
"internalType": "contract INameService",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nativeToken",
"outputs": [
{
"internalType": "contract IGoodDollar",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "onTokenTransfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "payments",
"outputs": [
{
"internalType": "bool",
"name": "hasPayment",
"type": "bool"
},
{
"internalType": "uint256",
"name": "paymentAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "paymentSender",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "updateAvatar",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "paymentId",
"type": "address"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b506040516200130f3803806200130f8339810160408190526200003491620001b1565b6200003f8162000046565b50620001d8565b600280546001600160a01b0319166001600160a01b0383161790556200006b6200006e565b50565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015620000d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f89190620001b1565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801562000153573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001799190620001b1565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811681146200006b57600080fd5b600060208284031215620001c457600080fd5b8151620001d1816200019b565b9392505050565b61112780620001e86000396000f3fe60806040526004361061008c5760003560e01c80631b3c90a8146100915780633e6326fc146100a85780634162169f146100e55780634bb78b14146101055780634c33fe94146101255780635aef7de61461014557806399fa169a146101655780639ea7811614610178578063a4c0ed36146101c1578063e1758bd8146101e1578063e2982c21146101f6575b600080fd5b34801561009d57600080fd5b506100a661027a565b005b3480156100b457600080fd5b506002546100c8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f157600080fd5b506000546100c8906001600160a01b031681565b34801561011157600080fd5b506100a6610120366004610e77565b6103a1565b34801561013157600080fd5b506100a6610140366004610f3a565b61049f565b34801561015157600080fd5b506001546100c8906001600160a01b031681565b6100a6610173366004610f5e565b610587565b34801561018457600080fd5b506101b1610193366004610f3a565b6001600160a01b031660009081526035602052604090205460ff1690565b60405190151581526020016100dc565b3480156101cd57600080fd5b506101b16101dc366004610f9f565b610784565b3480156101ed57600080fd5b506100c86108eb565b34801561020257600080fd5b50610249610211366004610f3a565b603560205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b03918216911684565b60408051941515855260208501939093526001600160a01b03918216928401929092521660608201526080016100dc565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156102dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103019190611027565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611027565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ad3383610978565b9050826001600160a01b0316816001600160a01b0316146104105760405162461bcd60e51b815260206004820152601860248201527714da59db985d1d5c99481a5cc81b9bdd0818dbdc9c9958dd60421b60448201526064015b60405180910390fd5b6001600160a01b038084166000908152603560205260409020600181015460028201546003909201549092918216911661044b868483610a07565b604080518481526001600160a01b038381166020830152808916923392918616917fc75e7bc3dc5e0d16e3df9df2689b6a26e490567bd567066ce9cdacc19507124a910160405180910390a4505050505050565b6001600160a01b0381811660009081526035602052604090206002015416331461050b5760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792062652063616c6c65642062792063726561746f720000006044820152606401610407565b6001600160a01b038082166000908152603560205260409020600181015460039091015490911661053d838383610a07565b336001600160a01b03167f277bedca6530994c2b7997a918461bf3c20dc35ad66561a387316ddcbeb5343884848460405161057a93929190611044565b60405180910390a2505050565b6001600160a01b03831660009081526035602052604090205460ff16156105c05760405162461bcd60e51b815260040161040790611067565b6001600160a01b0382161561068e576040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611099565b6106895760405162461bcd60e51b8152602060048201526014602482015273185cdcd95d0819195c1bdcda5d0819985a5b195960621b6044820152606401610407565b6106d9565b600034116106d65760405162461bcd60e51b81526020600482015260156024820152741b985d1a5d994819195c1bdcda5d0819985a5b1959605a1b6044820152606401610407565b50345b6040805160808101825260018082526020808301858152338486018181526001600160a01b03898116606088019081528b821660009081526035909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b031990811692841692909217905591516003909401805490921693169290921790915590516000805160206110d28339815191529061057a90869085908790611044565b60008061079383850185610f3a565b6001600160a01b03811660009081526035602052604090205490915060ff16156107cf5760405162461bcd60e51b815260040161040790611067565b6107d76108eb565b6001600160a01b0316336001600160a01b03161461082f5760405162461bcd60e51b81526020600482015260156024820152744f6e6c792063616c6c61626c65206279207468697360581b6044820152606401610407565b60408051608081018252600180825260208083018981526001600160a01b038b811685870181815233606088018181528a851660009081526035909752958990209751885460ff191690151517885593519587019590955593516002860180546001600160a01b0319908116928416929092179055925160039095018054909316941693909317905591516000805160206110d2833981519152916108d79185918a91611044565b60405180910390a250600195945050505050565b60025460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611027565b905090565b60408051606084901b6001600160601b031916602080830191909152825160148184030181526034830184528051908201207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6054840152607080840191909152835180840390910181526090909201909252805191012060009060006109fe8285610be1565b95945050505050565b6001600160a01b03831660009081526035602052604090205460ff16610a665760405162461bcd60e51b81526020600482015260146024820152737061796d656e744964206e6f7420696e2075736560601b6044820152606401610407565b6001600160a01b038084166000908152603560205260409020805460ff191690558116610b2457604051600090339084908381818185875af1925050503d8060008114610acf576040519150601f19603f3d011682016040523d82523d6000602084013e610ad4565b606091505b5050905080610b1e5760405162461bcd60e51b81526020600482015260166024820152751dda5d1a191c985dc81b985d1a5d994819985a5b195960521b6044820152606401610407565b50505050565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190611099565b610bdc5760405162461bcd60e51b81526020600482015260186024820152771dda5d1a191c985dc81d1c985b9cd9995c8819985a5b195960421b6044820152606401610407565b505050565b6000806000610bf08585610c05565b91509150610bfd81610c4a565b509392505050565b6000808251604103610c3b5760208301516040840151606085015160001a610c2f87828585610d92565b94509450505050610c43565b506000905060025b9250929050565b6000816004811115610c5e57610c5e6110bb565b03610c665750565b6001816004811115610c7a57610c7a6110bb565b03610cc25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610407565b6002816004811115610cd657610cd66110bb565b03610d235760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610407565b6003816004811115610d3757610d376110bb565b03610d8f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610407565b50565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115610dbf5750600090506003610e43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610e13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e3c57600060019250925050610e43565b9150600090505b94509492505050565b6001600160a01b0381168114610d8f57600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610e8a57600080fd5b8235610e9581610e4c565b915060208301356001600160401b0380821115610eb157600080fd5b818501915085601f830112610ec557600080fd5b813581811115610ed757610ed7610e61565b604051601f8201601f19908116603f01168101908382118183101715610eff57610eff610e61565b81604052828152886020848701011115610f1857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610f4c57600080fd5b8135610f5781610e4c565b9392505050565b600080600060608486031215610f7357600080fd5b8335610f7e81610e4c565b92506020840135610f8e81610e4c565b929592945050506040919091013590565b60008060008060608587031215610fb557600080fd5b8435610fc081610e4c565b93506020850135925060408501356001600160401b0380821115610fe357600080fd5b818701915087601f830112610ff757600080fd5b81358181111561100657600080fd5b88602082850101111561101857600080fd5b95989497505060200194505050565b60006020828403121561103957600080fd5b8151610f5781610e4c565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6020808252601890820152777061796d656e74496420616c726561647920696e2075736560401b604082015260600190565b6000602082840312156110ab57600080fd5b81518015158114610f5757600080fd5b634e487b7160e01b600052602160045260246000fdfe7573720b06c06bb7eb7077bf04c865302461f8648509da8867240cdb54e5a4b4a264697066735822122084e895108c08e2ce530fbdb52d95bba54b0382fee3820c374859c5b9fa3478e264736f6c63430008130033",
"deployedBytecode": "0x60806040526004361061008c5760003560e01c80631b3c90a8146100915780633e6326fc146100a85780634162169f146100e55780634bb78b14146101055780634c33fe94146101255780635aef7de61461014557806399fa169a146101655780639ea7811614610178578063a4c0ed36146101c1578063e1758bd8146101e1578063e2982c21146101f6575b600080fd5b34801561009d57600080fd5b506100a661027a565b005b3480156100b457600080fd5b506002546100c8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f157600080fd5b506000546100c8906001600160a01b031681565b34801561011157600080fd5b506100a6610120366004610e77565b6103a1565b34801561013157600080fd5b506100a6610140366004610f3a565b61049f565b34801561015157600080fd5b506001546100c8906001600160a01b031681565b6100a6610173366004610f5e565b610587565b34801561018457600080fd5b506101b1610193366004610f3a565b6001600160a01b031660009081526035602052604090205460ff1690565b60405190151581526020016100dc565b3480156101cd57600080fd5b506101b16101dc366004610f9f565b610784565b3480156101ed57600080fd5b506100c86108eb565b34801561020257600080fd5b50610249610211366004610f3a565b603560205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b03918216911684565b60408051941515855260208501939093526001600160a01b03918216928401929092521660608201526080016100dc565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156102dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103019190611027565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611027565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ad3383610978565b9050826001600160a01b0316816001600160a01b0316146104105760405162461bcd60e51b815260206004820152601860248201527714da59db985d1d5c99481a5cc81b9bdd0818dbdc9c9958dd60421b60448201526064015b60405180910390fd5b6001600160a01b038084166000908152603560205260409020600181015460028201546003909201549092918216911661044b868483610a07565b604080518481526001600160a01b038381166020830152808916923392918616917fc75e7bc3dc5e0d16e3df9df2689b6a26e490567bd567066ce9cdacc19507124a910160405180910390a4505050505050565b6001600160a01b0381811660009081526035602052604090206002015416331461050b5760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792062652063616c6c65642062792063726561746f720000006044820152606401610407565b6001600160a01b038082166000908152603560205260409020600181015460039091015490911661053d838383610a07565b336001600160a01b03167f277bedca6530994c2b7997a918461bf3c20dc35ad66561a387316ddcbeb5343884848460405161057a93929190611044565b60405180910390a2505050565b6001600160a01b03831660009081526035602052604090205460ff16156105c05760405162461bcd60e51b815260040161040790611067565b6001600160a01b0382161561068e576040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611099565b6106895760405162461bcd60e51b8152602060048201526014602482015273185cdcd95d0819195c1bdcda5d0819985a5b195960621b6044820152606401610407565b6106d9565b600034116106d65760405162461bcd60e51b81526020600482015260156024820152741b985d1a5d994819195c1bdcda5d0819985a5b1959605a1b6044820152606401610407565b50345b6040805160808101825260018082526020808301858152338486018181526001600160a01b03898116606088019081528b821660009081526035909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b031990811692841692909217905591516003909401805490921693169290921790915590516000805160206110d28339815191529061057a90869085908790611044565b60008061079383850185610f3a565b6001600160a01b03811660009081526035602052604090205490915060ff16156107cf5760405162461bcd60e51b815260040161040790611067565b6107d76108eb565b6001600160a01b0316336001600160a01b03161461082f5760405162461bcd60e51b81526020600482015260156024820152744f6e6c792063616c6c61626c65206279207468697360581b6044820152606401610407565b60408051608081018252600180825260208083018981526001600160a01b038b811685870181815233606088018181528a851660009081526035909752958990209751885460ff191690151517885593519587019590955593516002860180546001600160a01b0319908116928416929092179055925160039095018054909316941693909317905591516000805160206110d2833981519152916108d79185918a91611044565b60405180910390a250600195945050505050565b60025460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611027565b905090565b60408051606084901b6001600160601b031916602080830191909152825160148184030181526034830184528051908201207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6054840152607080840191909152835180840390910181526090909201909252805191012060009060006109fe8285610be1565b95945050505050565b6001600160a01b03831660009081526035602052604090205460ff16610a665760405162461bcd60e51b81526020600482015260146024820152737061796d656e744964206e6f7420696e2075736560601b6044820152606401610407565b6001600160a01b038084166000908152603560205260409020805460ff191690558116610b2457604051600090339084908381818185875af1925050503d8060008114610acf576040519150601f19603f3d011682016040523d82523d6000602084013e610ad4565b606091505b5050905080610b1e5760405162461bcd60e51b81526020600482015260166024820152751dda5d1a191c985dc81b985d1a5d994819985a5b195960521b6044820152606401610407565b50505050565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190611099565b610bdc5760405162461bcd60e51b81526020600482015260186024820152771dda5d1a191c985dc81d1c985b9cd9995c8819985a5b195960421b6044820152606401610407565b505050565b6000806000610bf08585610c05565b91509150610bfd81610c4a565b509392505050565b6000808251604103610c3b5760208301516040840151606085015160001a610c2f87828585610d92565b94509450505050610c43565b506000905060025b9250929050565b6000816004811115610c5e57610c5e6110bb565b03610c665750565b6001816004811115610c7a57610c7a6110bb565b03610cc25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610407565b6002816004811115610cd657610cd66110bb565b03610d235760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610407565b6003816004811115610d3757610d376110bb565b03610d8f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610407565b50565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115610dbf5750600090506003610e43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610e13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e3c57600060019250925050610e43565b9150600090505b94509492505050565b6001600160a01b0381168114610d8f57600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610e8a57600080fd5b8235610e9581610e4c565b915060208301356001600160401b0380821115610eb157600080fd5b818501915085601f830112610ec557600080fd5b813581811115610ed757610ed7610e61565b604051601f8201601f19908116603f01168101908382118183101715610eff57610eff610e61565b81604052828152886020848701011115610f1857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610f4c57600080fd5b8135610f5781610e4c565b9392505050565b600080600060608486031215610f7357600080fd5b8335610f7e81610e4c565b92506020840135610f8e81610e4c565b929592945050506040919091013590565b60008060008060608587031215610fb557600080fd5b8435610fc081610e4c565b93506020850135925060408501356001600160401b0380821115610fe357600080fd5b818701915087601f830112610ff757600080fd5b81358181111561100657600080fd5b88602082850101111561101857600080fd5b95989497505060200194505050565b60006020828403121561103957600080fd5b8151610f5781610e4c565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6020808252601890820152777061796d656e74496420616c726561647920696e2075736560401b604082015260600190565b6000602082840312156110ab57600080fd5b81518015158114610f5757600080fd5b634e487b7160e01b600052602160045260246000fdfe7573720b06c06bb7eb7077bf04c865302461f8648509da8867240cdb54e5a4b4a264697066735822122084e895108c08e2ce530fbdb52d95bba54b0382fee3820c374859c5b9fa3478e264736f6c63430008130033",
"linkReferences": {},
"deployedLinkReferences": {}
}