Compare commits
1 Commits
fd7c84f20a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4568cad8f0 |
@@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
```rs
|
```rs
|
||||||
./contracts/
|
./contracts/
|
||||||
├── Constants.sol
|
|
||||||
├── DataTypes.sol
|
├── DataTypes.sol
|
||||||
├── EventAndErrors.sol
|
├── EventAndErrors.sol
|
||||||
├── lib
|
├── lib
|
||||||
@@ -19,9 +18,7 @@
|
|||||||
│ ├── tokens
|
│ ├── tokens
|
||||||
│ │ └── ERC20.sol
|
│ │ └── ERC20.sol
|
||||||
│ └── utils
|
│ └── utils
|
||||||
│ ├── ECDSA.sol
|
|
||||||
│ ├── MerkleProofLib.sol
|
│ ├── MerkleProofLib.sol
|
||||||
│ ├── Multicall.sol
|
|
||||||
│ ├── ReentrancyGuard.sol
|
│ ├── ReentrancyGuard.sol
|
||||||
│ └── SafeTransferLib.sol
|
│ └── SafeTransferLib.sol
|
||||||
├── p2pix.sol
|
├── p2pix.sol
|
||||||
|
|||||||
4
artifacts/contracts/DataTypes.sol/DataTypes.dbg.json
Normal file
4
artifacts/contracts/DataTypes.sol/DataTypes.dbg.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"_format": "hh-sol-dbg-1",
|
||||||
|
"buildInfo": "../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
|
}
|
||||||
10
artifacts/contracts/DataTypes.sol/DataTypes.json
Normal file
10
artifacts/contracts/DataTypes.sol/DataTypes.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"_format": "hh-sol-artifact-1",
|
||||||
|
"contractName": "DataTypes",
|
||||||
|
"sourceName": "contracts/DataTypes.sol",
|
||||||
|
"abi": [],
|
||||||
|
"bytecode": "0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000809000a",
|
||||||
|
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000809000a",
|
||||||
|
"linkReferences": {},
|
||||||
|
"deployedLinkReferences": {}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"_format": "hh-sol-dbg-1",
|
||||||
|
"buildInfo": "../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-artifact-1",
|
"_format": "hh-sol-artifact-1",
|
||||||
"contractName": "EventAndErrors",
|
"contractName": "EventAndErrors",
|
||||||
"sourceName": "contracts/core/EventAndErrors.sol",
|
"sourceName": "contracts/EventAndErrors.sol",
|
||||||
"abi": [
|
"abi": [
|
||||||
{
|
{
|
||||||
"inputs": [],
|
"inputs": [],
|
||||||
@@ -23,6 +23,11 @@
|
|||||||
"name": "DecOverflow",
|
"name": "DecOverflow",
|
||||||
"type": "error"
|
"type": "error"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "DepositAlreadyExists",
|
||||||
|
"type": "error"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"inputs": [],
|
"inputs": [],
|
||||||
"name": "EmptyPixTarget",
|
"name": "EmptyPixTarget",
|
||||||
@@ -291,13 +296,13 @@
|
|||||||
"anonymous": false,
|
"anonymous": false,
|
||||||
"inputs": [
|
"inputs": [
|
||||||
{
|
{
|
||||||
"indexed": true,
|
"indexed": false,
|
||||||
"internalType": "address",
|
"internalType": "address",
|
||||||
"name": "seller",
|
"name": "seller",
|
||||||
"type": "address"
|
"type": "address"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"indexed": true,
|
"indexed": false,
|
||||||
"internalType": "bytes32",
|
"internalType": "bytes32",
|
||||||
"name": "merkleRoot",
|
"name": "merkleRoot",
|
||||||
"type": "bytes32"
|
"type": "bytes32"
|
||||||
@@ -306,25 +311,6 @@
|
|||||||
"name": "RootUpdated",
|
"name": "RootUpdated",
|
||||||
"type": "event"
|
"type": "event"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "forwarder",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "TrustedForwarderUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"anonymous": false,
|
"anonymous": false,
|
||||||
"inputs": [
|
"inputs": [
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,28 @@
|
|||||||
"abi": [
|
"abi": [
|
||||||
{
|
{
|
||||||
"inputs": [],
|
"inputs": [],
|
||||||
"stateMutability": "payable",
|
"stateMutability": "nonpayable",
|
||||||
"type": "constructor"
|
"type": "constructor"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "user",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "newOwner",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "OwnerUpdated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"inputs": [
|
"inputs": [
|
||||||
{
|
{
|
||||||
@@ -52,10 +71,36 @@
|
|||||||
],
|
],
|
||||||
"stateMutability": "view",
|
"stateMutability": "view",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "owner",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "newOwner",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "setOwner",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bytecode": "0x6080806040526102c990816100128239f3fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212202029db6a087d223f768aabc1fe8120c7f9d7e525e947a354114a42f80a3955db64736f6c63430008130033",
|
"bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a350610416806100616000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80634d2b1791116100505780634d2b17911461009e5780638da5cb5b146100b1578063a4b34557146100f657600080fd5b806313af40351461006c5780631a861d2614610081575b600080fd5b61007f61007a3660046102f4565b610102565b005b61008b620f424081565b6040519081526020015b60405180910390f35b61008b6100ac366004610331565b6101f7565b6000546100d19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610095565b61008b643a3529440081565b60005473ffffffffffffffffffffffffffffffffffffffff163314610187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b600061021a6102068380610379565b61021590643a352944006103b6565b610242565b61022783620f4240610379565b61023191906103ce565b61023c9060016103b6565b92915050565b60b5817101000000000000000000000000000000000081106102695760409190911b9060801c5b690100000000000000000081106102855760209190911b9060401c5b65010000000000811061029d5760109190911b9060201c5b630100000081106102b35760089190911b9060101c5b62010000010260121c80820401600190811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b60006020828403121561030657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461032a57600080fd5b9392505050565b60006020828403121561034357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156103b1576103b161034a565b500290565b600082198211156103c9576103c961034a565b500190565b600082610404577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea164736f6c6343000809000a",
|
||||||
"deployedBytecode": "0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212202029db6a087d223f768aabc1fe8120c7f9d7e525e947a354114a42f80a3955db64736f6c63430008130033",
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c80634d2b1791116100505780634d2b17911461009e5780638da5cb5b146100b1578063a4b34557146100f657600080fd5b806313af40351461006c5780631a861d2614610081575b600080fd5b61007f61007a3660046102f4565b610102565b005b61008b620f424081565b6040519081526020015b60405180910390f35b61008b6100ac366004610331565b6101f7565b6000546100d19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610095565b61008b643a3529440081565b60005473ffffffffffffffffffffffffffffffffffffffff163314610187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b600061021a6102068380610379565b61021590643a352944006103b6565b610242565b61022783620f4240610379565b61023191906103ce565b61023c9060016103b6565b92915050565b60b5817101000000000000000000000000000000000081106102695760409190911b9060801c5b690100000000000000000081106102855760209190911b9060401c5b65010000000000811061029d5760109190911b9060201c5b630100000081106102b35760089190911b9060101c5b62010000010260121c80820401600190811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b60006020828403121561030657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461032a57600080fd5b9392505050565b60006020828403121561034357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156103b1576103b161034a565b500290565b600082198211156103c9576103c961034a565b500190565b600082610404577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea164736f6c6343000809000a",
|
||||||
"linkReferences": {},
|
"linkReferences": {},
|
||||||
"deployedLinkReferences": {}
|
"deployedLinkReferences": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../build-info/f220dbc6fa6f1dbf5c2cb562d65f0725.json"
|
|
||||||
}
|
|
||||||
@@ -1,686 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-artifact-1",
|
|
||||||
"contractName": "BaseUtils",
|
|
||||||
"sourceName": "contracts/core/BaseUtils.sol",
|
|
||||||
"abi": [
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "AddressDenied",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "AlreadyReleased",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "AmountNotAllowed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "DecOverflow",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "EmptyPixTarget",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "InvalidDeposit",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "InvalidSigner",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "LengthMismatch",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "LockExpired",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "LoopOverflow",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "MaxBalExceeded",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NoTokens",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NotEnoughTokens",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NotExpired",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NotInitialized",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "OnlySeller",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "Reentrancy",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "StaticCallFailed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "TokenDenied",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "TxAlreadyUsed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "Unauthorized",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "AllowedERC20Updated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "DepositAdded",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "DepositWithdrawn",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "owner",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "FundsWithdrawn",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "buyer",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "lockID",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockAdded",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "blocks",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockBlocksUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "buyer",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "lockId",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockReleased",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "buyer",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "lockId",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockReturned",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "user",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "OwnerUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "reputation",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "ReputationUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "bytes32",
|
|
||||||
"name": "merkleRoot",
|
|
||||||
"type": "bytes32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "RootUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "forwarder",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "TrustedForwarderUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "ValidSet",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "signers",
|
|
||||||
"type": "address[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "ValidSignersUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "_addr",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "_castAddrToKey",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "_key",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "pure",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "_key",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "_castKeyToAddr",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "_addr",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "pure",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract ERC20",
|
|
||||||
"name": "erc20",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "allowedERC20s",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "defaultLockBlocks",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "string",
|
|
||||||
"name": "str",
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "getStr",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bytes32",
|
|
||||||
"name": "strEnc",
|
|
||||||
"type": "bytes32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "pure",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "isTrustedForwarder",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "owner",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "reputation",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract IReputation",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "sellerKey",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "sellerAllowList",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bytes32",
|
|
||||||
"name": "root",
|
|
||||||
"type": "bytes32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "_blocks",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setDefaultLockBlocks",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setOwner",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract IReputation",
|
|
||||||
"name": "_reputation",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setReputation",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "forwarders",
|
|
||||||
"type": "address[]"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bool[]",
|
|
||||||
"name": "states",
|
|
||||||
"type": "bool[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setTrustedFowarders",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "_validSigners",
|
|
||||||
"type": "address[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setValidSigners",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "_tokens",
|
|
||||||
"type": "address[]"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bool[]",
|
|
||||||
"name": "_states",
|
|
||||||
"type": "bool[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "tokenSettings",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bytes32",
|
|
||||||
"name": "message",
|
|
||||||
"type": "bytes32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "usedTransactions",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "used",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "signer",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "validBacenSigners",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "valid",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "withdrawBalance",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"bytecode": "0x",
|
|
||||||
"deployedBytecode": "0x",
|
|
||||||
"linkReferences": {},
|
|
||||||
"deployedLinkReferences": {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-artifact-1",
|
|
||||||
"contractName": "Constants",
|
|
||||||
"sourceName": "contracts/core/Constants.sol",
|
|
||||||
"abi": [],
|
|
||||||
"bytecode": "0x",
|
|
||||||
"deployedBytecode": "0x",
|
|
||||||
"linkReferences": {},
|
|
||||||
"deployedLinkReferences": {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-artifact-1",
|
|
||||||
"contractName": "DataTypes",
|
|
||||||
"sourceName": "contracts/core/DataTypes.sol",
|
|
||||||
"abi": [],
|
|
||||||
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a40e6f94f4c0b9a9cdd9ac64f98613aece8f5a3f084ee1eca35eba466df9810964736f6c63430008130033",
|
|
||||||
"deployedBytecode": "0x600080fdfea2646970667358221220a40e6f94f4c0b9a9cdd9ac64f98613aece8f5a3f084ee1eca35eba466df9810964736f6c63430008130033",
|
|
||||||
"linkReferences": {},
|
|
||||||
"deployedLinkReferences": {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
|
||||||
}
|
|
||||||
@@ -1,605 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-artifact-1",
|
|
||||||
"contractName": "OwnerSettings",
|
|
||||||
"sourceName": "contracts/core/OwnerSettings.sol",
|
|
||||||
"abi": [
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "AddressDenied",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "AlreadyReleased",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "AmountNotAllowed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "DecOverflow",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "EmptyPixTarget",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "InvalidDeposit",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "InvalidSigner",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "LengthMismatch",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "LockExpired",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "LoopOverflow",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "MaxBalExceeded",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NoTokens",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NotEnoughTokens",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NotExpired",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "NotInitialized",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "OnlySeller",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "StaticCallFailed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "TokenDenied",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "TxAlreadyUsed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "Unauthorized",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "AllowedERC20Updated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "DepositAdded",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "DepositWithdrawn",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "owner",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "FundsWithdrawn",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "buyer",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "lockID",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockAdded",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "blocks",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockBlocksUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "buyer",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "lockId",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amount",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockReleased",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "buyer",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "lockId",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LockReturned",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "user",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "OwnerUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "reputation",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "ReputationUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "bytes32",
|
|
||||||
"name": "merkleRoot",
|
|
||||||
"type": "bytes32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "RootUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "forwarder",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "TrustedForwarderUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "seller",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "token",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "ValidSet",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "signers",
|
|
||||||
"type": "address[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "ValidSignersUpdated",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract ERC20",
|
|
||||||
"name": "erc20",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "allowedERC20s",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "state",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "defaultLockBlocks",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "isTrustedForwarder",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "owner",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "reputation",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract IReputation",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "sellerKey",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "sellerAllowList",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bytes32",
|
|
||||||
"name": "root",
|
|
||||||
"type": "bytes32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "_blocks",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setDefaultLockBlocks",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setOwner",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract IReputation",
|
|
||||||
"name": "_reputation",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setReputation",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "forwarders",
|
|
||||||
"type": "address[]"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bool[]",
|
|
||||||
"name": "states",
|
|
||||||
"type": "bool[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setTrustedFowarders",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "_validSigners",
|
|
||||||
"type": "address[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setValidSigners",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "_tokens",
|
|
||||||
"type": "address[]"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bool[]",
|
|
||||||
"name": "_states",
|
|
||||||
"type": "bool[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "tokenSettings",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "signer",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "validBacenSigners",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "valid",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "withdrawBalance",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"bytecode": "0x",
|
|
||||||
"deployedBytecode": "0x",
|
|
||||||
"linkReferences": {},
|
|
||||||
"deployedLinkReferences": {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,6 @@
|
|||||||
"contractName": "Owned",
|
"contractName": "Owned",
|
||||||
"sourceName": "contracts/lib/auth/Owned.sol",
|
"sourceName": "contracts/lib/auth/Owned.sol",
|
||||||
"abi": [
|
"abi": [
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "Unauthorized",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"anonymous": false,
|
"anonymous": false,
|
||||||
"inputs": [
|
"inputs": [
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-artifact-1",
|
|
||||||
"contractName": "Context",
|
|
||||||
"sourceName": "contracts/lib/metatx/ERC2771Context.sol",
|
|
||||||
"abi": [],
|
|
||||||
"bytecode": "0x",
|
|
||||||
"deployedBytecode": "0x",
|
|
||||||
"linkReferences": {},
|
|
||||||
"deployedLinkReferences": {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-artifact-1",
|
|
||||||
"contractName": "ERC2771Context",
|
|
||||||
"sourceName": "contracts/lib/metatx/ERC2771Context.sol",
|
|
||||||
"abi": [
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "isTrustedForwarder",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"bytecode": "0x",
|
|
||||||
"deployedBytecode": "0x",
|
|
||||||
"linkReferences": {},
|
|
||||||
"deployedLinkReferences": {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-dbg-1",
|
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"_format": "hh-sol-artifact-1",
|
|
||||||
"contractName": "ECDSA",
|
|
||||||
"sourceName": "contracts/lib/utils/ECDSA.sol",
|
|
||||||
"abi": [
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "InvalidSignature",
|
|
||||||
"type": "error"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212201f6fe8a460e1235bb7e19365d8e3cc56b718d44f5db82f5fa3c90d3c7da59ebf64736f6c63430008130033",
|
|
||||||
"deployedBytecode": "0x600080fdfea26469706673582212201f6fe8a460e1235bb7e19365d8e3cc56b718d44f5db82f5fa3c90d3c7da59ebf64736f6c63430008130033",
|
|
||||||
"linkReferences": {},
|
|
||||||
"deployedLinkReferences": {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"contractName": "MerkleProofLib",
|
"contractName": "MerkleProofLib",
|
||||||
"sourceName": "contracts/lib/utils/MerkleProofLib.sol",
|
"sourceName": "contracts/lib/utils/MerkleProofLib.sol",
|
||||||
"abi": [],
|
"abi": [],
|
||||||
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220030f589a2a329a8fd0f451393f1e14e20eb0e1f782beb297fe6aade2ffebc0b564736f6c63430008130033",
|
"bytecode": "0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000809000a",
|
||||||
"deployedBytecode": "0x600080fdfea2646970667358221220030f589a2a329a8fd0f451393f1e14e20eb0e1f782beb297fe6aade2ffebc0b564736f6c63430008130033",
|
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000809000a",
|
||||||
"linkReferences": {},
|
"linkReferences": {},
|
||||||
"deployedLinkReferences": {}
|
"deployedLinkReferences": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,8 +109,8 @@
|
|||||||
"type": "function"
|
"type": "function"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bytecode": "0x6080806040526107fb90816100128239f3fe604060808152600436101561001357600080fd5b6000803560e01c9182631b57b72f1461003c5750506386575ee91461003757600080fd5b610362565b3461015e5761004a36610162565b61005e61005982949394610523565b6104df565b928184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061008c83610523565b01855b81811061013e575050845b8281106100b6578351806100b2874380409084610238565b0390f35b806100cd6100c86101399386866105c7565b61060c565b87806100da8488886105c7565b92816100eb6020958681019061062d565b91906100fb8c518094819361067e565b03925af1906101086106c6565b9061011b6101146104ba565b9315158452565b8201526101288288610755565b526101338187610755565b50610769565b61009a565b6020906101496104ba565b8881528260608183015282890101520161008f565b5080fd5b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126101cd5760043567ffffffffffffffff928382116101cd57806023830112156101cd5781600401359384116101cd5760248460051b830101116101cd576024019190565b600080fd5b60005b8381106101e55750506000910152565b81810151838201526020016101d5565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093610231815180928187528780880191016101d2565b0116010190565b9160608301918352602090818401526040926060848201528451809352608081018260808560051b8401019601946000925b85841061027b575050505050505090565b9091929394959685806102ca837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80866001960301885286838d51805115158452015191818582015201906101f5565b99019401940192959493919061026a565b90604082019082526020604081840152835180925260608301928160608460051b8301019501936000915b8483106103165750505050505090565b9091929394958480610352837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa086600196030187528a516101f5565b9801930193019194939290610306565b346101cd5761037036610162565b6103798161053b565b916000805b83811061039457604051806100b28743836102db565b6103a26100c88286866105c7565b82806103bc6103b28589896105c7565b602081019061062d565b82604095926103cf87518094819361067e565b03925af1906103dc6106c6565b918290156103fa575050906103f5916101288288610755565b61037e565b604483929351106104535761042061044f916004809401602480915183010191016106ec565b92519283927fb5e1dc2d0000000000000000000000000000000000000000000000000000000084528301610744565b0390fd5b82517fb5e1dc2d0000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604490fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906040820182811067ffffffffffffffff8211176104da57604052565b61048b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff8211176104da57604052565b67ffffffffffffffff81116104da5760051b60200190565b9061054861005983610523565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06105768294610523565b019060005b82811061058757505050565b80606060208093850101520161057b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156106075760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101cd570190565b610598565b3573ffffffffffffffffffffffffffffffffffffffff811681036101cd5790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101cd570180359067ffffffffffffffff82116101cd576020019181360383136101cd57565b908092918237016000815290565b67ffffffffffffffff81116104da57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156106e7573d906106da6100598361068c565b9182523d6000602084013e565b606090565b6020818303126101cd5780519067ffffffffffffffff82116101cd570181601f820112156101cd5780516107226100598261068c565b92818452602082840101116101cd5761074191602080850191016101d2565b90565b9060206107419281815201906101f5565b80518210156106075760209160051b010190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107965760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212206c86e7cf81738039d37cf5e545b323288faae992e0d08dec8c43f2f2b31f35f664736f6c63430008130033",
|
"bytecode": "0x60806040526108ec806100136000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631b57b72f1461003b57806386575ee914610066575b600080fd5b61004e610049366004610438565b610087565b60405161005d93929190610527565b60405180910390f35b610079610074366004610438565b610227565b60405161005d9291906105cb565b600080606043804085848167ffffffffffffffff8111156100aa576100aa610653565b6040519080825280602002602001820160405280156100f057816020015b6040805180820190915260008152606060208201528152602001906001900390816100c85790505b50905060005b82811015610217576000808b8b8481811061011357610113610682565b905060200281019061012591906106b1565b6101339060208101906106ef565b73ffffffffffffffffffffffffffffffffffffffff168c8c8581811061015b5761015b610682565b905060200281019061016d91906106b1565b61017b90602081019061072c565b604051610189929190610791565b6000604051808303816000865af19150503d80600081146101c6576040519150601f19603f3d011682016040523d82523d6000602084013e6101cb565b606091505b509150915060405180604001604052808315158152602001828152508484815181106101f9576101f9610682565b60200260200101819052508261020e906107a1565b925050506100f6565b5092989197509195509350505050565b600060604383838167ffffffffffffffff81111561024757610247610653565b60405190808252806020026020018201604052801561027a57816020015b60608152602001906001900390816102655790505b50905060005b828110156104285760008089898481811061029d5761029d610682565b90506020028101906102af91906106b1565b6102bd9060208101906106ef565b73ffffffffffffffffffffffffffffffffffffffff168a8a858181106102e5576102e5610682565b90506020028101906102f791906106b1565b61030590602081019061072c565b604051610313929190610791565b6000604051808303816000865af19150503d8060008114610350576040519150601f19603f3d011682016040523d82523d6000602084013e610355565b606091505b5091509150816103f7576044815110156103aa576040517fb5e1dc2d00000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b600481019050808060200190518101906103c49190610801565b6040517fb5e1dc2d0000000000000000000000000000000000000000000000000000000081526004016103a191906108cc565b8084848151811061040a5761040a610682565b60200260200101819052508261041f906107a1565b92505050610280565b50919350909150505b9250929050565b6000806020838503121561044b57600080fd5b823567ffffffffffffffff8082111561046357600080fd5b818501915085601f83011261047757600080fd5b81358181111561048657600080fd5b8660208260051b850101111561049b57600080fd5b60209290920196919550909350505050565b60005b838110156104c85781810151838201526020016104b0565b838111156104d7576000848401525b50505050565b600081518084526104f58160208601602086016104ad565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006060820185835260208581850152604060608186015282865180855260808701915060808160051b880101945083880160005b828110156105bb578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001845281518051151588528601518688018690526105a8868901826104dd565b975050928501929085019060010161055c565b50949a9950505050505050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610645577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526106338683516104dd565b955092840192908401906001016105f9565b509398975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126106e557600080fd5b9190910192915050565b60006020828403121561070157600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461072557600080fd5b9392505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261076157600080fd5b83018035915067ffffffffffffffff82111561077c57600080fd5b60200191503681900382131561043157600080fd5b8183823760009101908152919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156107fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b60006020828403121561081357600080fd5b815167ffffffffffffffff8082111561082b57600080fd5b818401915084601f83011261083f57600080fd5b81518181111561085157610851610653565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561089757610897610653565b816040528281528760208487010111156108b057600080fd5b6108c18360208301602088016104ad565b979650505050505050565b60208152600061072560208301846104dd56fea164736f6c6343000809000a",
|
||||||
"deployedBytecode": "0x604060808152600436101561001357600080fd5b6000803560e01c9182631b57b72f1461003c5750506386575ee91461003757600080fd5b610362565b3461015e5761004a36610162565b61005e61005982949394610523565b6104df565b928184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061008c83610523565b01855b81811061013e575050845b8281106100b6578351806100b2874380409084610238565b0390f35b806100cd6100c86101399386866105c7565b61060c565b87806100da8488886105c7565b92816100eb6020958681019061062d565b91906100fb8c518094819361067e565b03925af1906101086106c6565b9061011b6101146104ba565b9315158452565b8201526101288288610755565b526101338187610755565b50610769565b61009a565b6020906101496104ba565b8881528260608183015282890101520161008f565b5080fd5b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126101cd5760043567ffffffffffffffff928382116101cd57806023830112156101cd5781600401359384116101cd5760248460051b830101116101cd576024019190565b600080fd5b60005b8381106101e55750506000910152565b81810151838201526020016101d5565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093610231815180928187528780880191016101d2565b0116010190565b9160608301918352602090818401526040926060848201528451809352608081018260808560051b8401019601946000925b85841061027b575050505050505090565b9091929394959685806102ca837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80866001960301885286838d51805115158452015191818582015201906101f5565b99019401940192959493919061026a565b90604082019082526020604081840152835180925260608301928160608460051b8301019501936000915b8483106103165750505050505090565b9091929394958480610352837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa086600196030187528a516101f5565b9801930193019194939290610306565b346101cd5761037036610162565b6103798161053b565b916000805b83811061039457604051806100b28743836102db565b6103a26100c88286866105c7565b82806103bc6103b28589896105c7565b602081019061062d565b82604095926103cf87518094819361067e565b03925af1906103dc6106c6565b918290156103fa575050906103f5916101288288610755565b61037e565b604483929351106104535761042061044f916004809401602480915183010191016106ec565b92519283927fb5e1dc2d0000000000000000000000000000000000000000000000000000000084528301610744565b0390fd5b82517fb5e1dc2d0000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604490fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906040820182811067ffffffffffffffff8211176104da57604052565b61048b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff8211176104da57604052565b67ffffffffffffffff81116104da5760051b60200190565b9061054861005983610523565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06105768294610523565b019060005b82811061058757505050565b80606060208093850101520161057b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156106075760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101cd570190565b610598565b3573ffffffffffffffffffffffffffffffffffffffff811681036101cd5790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101cd570180359067ffffffffffffffff82116101cd576020019181360383136101cd57565b908092918237016000815290565b67ffffffffffffffff81116104da57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156106e7573d906106da6100598361068c565b9182523d6000602084013e565b606090565b6020818303126101cd5780519067ffffffffffffffff82116101cd570181601f820112156101cd5780516107226100598261068c565b92818452602082840101116101cd5761074191602080850191016101d2565b90565b9060206107419281815201906101f5565b80518210156106075760209160051b010190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107965760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212206c86e7cf81738039d37cf5e545b323288faae992e0d08dec8c43f2f2b31f35f664736f6c63430008130033",
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80631b57b72f1461003b57806386575ee914610066575b600080fd5b61004e610049366004610438565b610087565b60405161005d93929190610527565b60405180910390f35b610079610074366004610438565b610227565b60405161005d9291906105cb565b600080606043804085848167ffffffffffffffff8111156100aa576100aa610653565b6040519080825280602002602001820160405280156100f057816020015b6040805180820190915260008152606060208201528152602001906001900390816100c85790505b50905060005b82811015610217576000808b8b8481811061011357610113610682565b905060200281019061012591906106b1565b6101339060208101906106ef565b73ffffffffffffffffffffffffffffffffffffffff168c8c8581811061015b5761015b610682565b905060200281019061016d91906106b1565b61017b90602081019061072c565b604051610189929190610791565b6000604051808303816000865af19150503d80600081146101c6576040519150601f19603f3d011682016040523d82523d6000602084013e6101cb565b606091505b509150915060405180604001604052808315158152602001828152508484815181106101f9576101f9610682565b60200260200101819052508261020e906107a1565b925050506100f6565b5092989197509195509350505050565b600060604383838167ffffffffffffffff81111561024757610247610653565b60405190808252806020026020018201604052801561027a57816020015b60608152602001906001900390816102655790505b50905060005b828110156104285760008089898481811061029d5761029d610682565b90506020028101906102af91906106b1565b6102bd9060208101906106ef565b73ffffffffffffffffffffffffffffffffffffffff168a8a858181106102e5576102e5610682565b90506020028101906102f791906106b1565b61030590602081019061072c565b604051610313929190610791565b6000604051808303816000865af19150503d8060008114610350576040519150601f19603f3d011682016040523d82523d6000602084013e610355565b606091505b5091509150816103f7576044815110156103aa576040517fb5e1dc2d00000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b600481019050808060200190518101906103c49190610801565b6040517fb5e1dc2d0000000000000000000000000000000000000000000000000000000081526004016103a191906108cc565b8084848151811061040a5761040a610682565b60200260200101819052508261041f906107a1565b92505050610280565b50919350909150505b9250929050565b6000806020838503121561044b57600080fd5b823567ffffffffffffffff8082111561046357600080fd5b818501915085601f83011261047757600080fd5b81358181111561048657600080fd5b8660208260051b850101111561049b57600080fd5b60209290920196919550909350505050565b60005b838110156104c85781810151838201526020016104b0565b838111156104d7576000848401525b50505050565b600081518084526104f58160208601602086016104ad565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006060820185835260208581850152604060608186015282865180855260808701915060808160051b880101945083880160005b828110156105bb578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001845281518051151588528601518688018690526105a8868901826104dd565b975050928501929085019060010161055c565b50949a9950505050505050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610645577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526106338683516104dd565b955092840192908401906001016105f9565b509398975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126106e557600080fd5b9190910192915050565b60006020828403121561070157600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461072557600080fd5b9392505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261076157600080fd5b83018035915067ffffffffffffffff82111561077c57600080fd5b60200191503681900382131561043157600080fd5b8183823760009101908152919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156107fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b60006020828403121561081357600080fd5b815167ffffffffffffffff8082111561082b57600080fd5b818401915084601f83011261083f57600080fd5b81518181111561085157610851610653565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561089757610897610653565b816040528281528760208487010111156108b057600080fd5b6108c18360208301602088016104ad565b979650505050505050565b60208152600061072560208301846104dd56fea164736f6c6343000809000a",
|
||||||
"linkReferences": {},
|
"linkReferences": {},
|
||||||
"deployedLinkReferences": {}
|
"deployedLinkReferences": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../../../build-info/cd64a64b3749ac90866585a6471cc921.json"
|
"buildInfo": "../../../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,25 +2,9 @@
|
|||||||
"_format": "hh-sol-artifact-1",
|
"_format": "hh-sol-artifact-1",
|
||||||
"contractName": "SafeTransferLib",
|
"contractName": "SafeTransferLib",
|
||||||
"sourceName": "contracts/lib/utils/SafeTransferLib.sol",
|
"sourceName": "contracts/lib/utils/SafeTransferLib.sol",
|
||||||
"abi": [
|
"abi": [],
|
||||||
{
|
"bytecode": "0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000809000a",
|
||||||
"inputs": [],
|
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000809000a",
|
||||||
"name": "ETHTransferFailed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "TransferFailed",
|
|
||||||
"type": "error"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "TransferFromFailed",
|
|
||||||
"type": "error"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220007e83452e6dfca4997d94ba5608da3c2308815d3239b1810079c74651f15a7464736f6c63430008130033",
|
|
||||||
"deployedBytecode": "0x600080fdfea2646970667358221220007e83452e6dfca4997d94ba5608da3c2308815d3239b1810079c74651f15a7464736f6c63430008130033",
|
|
||||||
"linkReferences": {},
|
"linkReferences": {},
|
||||||
"deployedLinkReferences": {}
|
"deployedLinkReferences": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../build-info/f220dbc6fa6f1dbf5c2cb562d65f0725.json"
|
"buildInfo": "../../build-info/901b067f80b6616939e558d795c555e5.json"
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
32
contracts/DataTypes.sol
Normal file
32
contracts/DataTypes.sol
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity 0.8.9;
|
||||||
|
|
||||||
|
library DataTypes {
|
||||||
|
struct Lock {
|
||||||
|
uint256 sellerKey;
|
||||||
|
uint256 counter;
|
||||||
|
/// @dev Amount to be paid for relayer.
|
||||||
|
uint256 relayerPremium;
|
||||||
|
/// @dev Amount to be tranfered via PIX.
|
||||||
|
uint256 amount;
|
||||||
|
/// @dev If not paid at this block will be expired.
|
||||||
|
uint256 expirationBlock;
|
||||||
|
uint160 pixTarget;
|
||||||
|
/// @dev Where the tokens are sent the when order gets validated.
|
||||||
|
address buyerAddress;
|
||||||
|
/// @dev Relayer's target address that receives `relayerPremium` funds.
|
||||||
|
address relayerTarget;
|
||||||
|
/// @dev Relayer address (msg.sender) that facilitated this transaction.
|
||||||
|
/// @dev Reputation points accruer.
|
||||||
|
address relayerAddress;
|
||||||
|
address token;
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
enum LockStatus {
|
||||||
|
Inexistent, // 0 := Uninitialized Lock.
|
||||||
|
Active, // 1 := Valid Lock.
|
||||||
|
Expired, // 2 := Expired Lock.
|
||||||
|
Released // 3 := Already released Lock.
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,79 +1,62 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
pragma solidity 0.8.19;
|
pragma solidity 0.8.9;
|
||||||
|
|
||||||
import { ERC20 } from "../lib/tokens/ERC20.sol";
|
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
interface EventAndErrors {
|
interface EventAndErrors {
|
||||||
/// ███ Events ████████████████████████████████████████████████████████████
|
/// ███ Events ████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
/// @dev 0x63d8d7d5e63e9840ec91a12a160d27b7cfab294f6ba070b7359692acfe6b03bf
|
|
||||||
event DepositAdded(
|
event DepositAdded(
|
||||||
address indexed seller,
|
address indexed seller,
|
||||||
// uint256 depositID,
|
// uint256 depositID,
|
||||||
ERC20 token,
|
address token,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
/// @dev 0xca585721b6b442dc9183932f7c84dc2880efb67c4da52cc06873e78971105d49
|
|
||||||
event ValidSet(
|
event ValidSet(
|
||||||
address indexed seller,
|
address indexed seller,
|
||||||
ERC20 token,
|
address token,
|
||||||
bool state
|
bool state
|
||||||
);
|
);
|
||||||
/// @dev 0x2cd6435b1b961c13f55202979edd0765a809f69a539d8a477436c94c1211e43e
|
|
||||||
event DepositWithdrawn(
|
event DepositWithdrawn(
|
||||||
address indexed seller,
|
address indexed seller,
|
||||||
ERC20 token,
|
address token,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
/// @dev 0x8fb3989f70bd172a37d15b41b015e48ea09d59329638377304a4198cd0c4ea65
|
|
||||||
event LockAdded(
|
event LockAdded(
|
||||||
address indexed buyer,
|
address indexed buyer,
|
||||||
uint256 indexed lockID,
|
uint256 indexed lockID,
|
||||||
uint256 seller,
|
uint256 seller,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
/// @dev 0x364537f14276f2a0ce9905588413f96454cbb8fb2e4f5308389307c1098bede8
|
|
||||||
event LockReleased(
|
event LockReleased(
|
||||||
address indexed buyer,
|
address indexed buyer,
|
||||||
uint256 lockId,
|
uint256 lockId,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
/// @dev 0x830501e61b8b075e170b22a430e39454bdb12ed3e9620e586430b6ac00079da5
|
|
||||||
event LockReturned(
|
event LockReturned(
|
||||||
address indexed buyer,
|
address indexed buyer,
|
||||||
uint256 lockId
|
uint256 lockId
|
||||||
);
|
);
|
||||||
/// @dev 0xeaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d
|
|
||||||
event FundsWithdrawn(
|
event FundsWithdrawn(
|
||||||
address owner,
|
address owner,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
/// @dev 0x0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632
|
|
||||||
event RootUpdated(
|
event RootUpdated(
|
||||||
address indexed seller,
|
address seller,
|
||||||
bytes32 indexed merkleRoot
|
bytes32 merkleRoot
|
||||||
);
|
);
|
||||||
/// @dev 0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a
|
|
||||||
event AllowedERC20Updated(
|
event AllowedERC20Updated(
|
||||||
address indexed token,
|
address indexed token,
|
||||||
bool indexed state
|
bool indexed state
|
||||||
);
|
);
|
||||||
/// @dev 0xbee55516e29d3969d3cb8eb01351eb3c52d06f9e2435bd5a8bfe3647e185df92
|
|
||||||
event TrustedForwarderUpdated(
|
|
||||||
address indexed forwarder,
|
|
||||||
bool indexed state
|
|
||||||
);
|
|
||||||
/// @dev 0xe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f
|
|
||||||
event ReputationUpdated(address reputation);
|
event ReputationUpdated(address reputation);
|
||||||
/// @dev 0x70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511
|
|
||||||
event LockBlocksUpdated(uint256 blocks);
|
event LockBlocksUpdated(uint256 blocks);
|
||||||
/// @dev 0x14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d7
|
|
||||||
event ValidSignersUpdated(address[] signers);
|
event ValidSignersUpdated(address[] signers);
|
||||||
|
|
||||||
|
|
||||||
/// ███ Errors ████████████████████████████████████████████████████████████
|
/// ███ Errors ████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
/// @dev Deposit already exist and it is still valid.
|
||||||
|
/// @dev 0xc44bd765
|
||||||
|
error DepositAlreadyExists();
|
||||||
/// @dev Only seller could call this function.
|
/// @dev Only seller could call this function.
|
||||||
/// @dev `msg.sender` and the seller differ.
|
/// @dev `msg.sender` and the seller differ.
|
||||||
/// @dev 0x85d1f726
|
/// @dev 0x85d1f726
|
||||||
@@ -122,6 +105,7 @@ interface EventAndErrors {
|
|||||||
/// @dev Reverts on an expired lock.
|
/// @dev Reverts on an expired lock.
|
||||||
/// @dev 0xf6fafba0
|
/// @dev 0xf6fafba0
|
||||||
error LockExpired();
|
error LockExpired();
|
||||||
|
|
||||||
/// @dev 0xce3a3d37
|
/// @dev 0xce3a3d37
|
||||||
error DecOverflow();
|
error DecOverflow();
|
||||||
/// @dev 0xf3fb0eb9
|
/// @dev 0xf3fb0eb9
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
pragma solidity 0.8.19;
|
pragma solidity 0.8.9;
|
||||||
|
|
||||||
import { IReputation } from "./lib/interfaces/IReputation.sol";
|
import { IReputation } from "./lib/interfaces/IReputation.sol";
|
||||||
|
import { Owned } from "./lib/auth/Owned.sol";
|
||||||
|
|
||||||
contract Reputation is IReputation {
|
contract Reputation is IReputation, Owned(msg.sender) {
|
||||||
/// @dev Asymptote numerator constant value for the `limiter` fx.
|
/// @dev Asymptote numerator constant value for the `limiter` fx.
|
||||||
uint256 public constant maxLimit = 1e6;
|
uint256 public constant maxLimit = 1e6;
|
||||||
/// @dev Denominator's constant operand for the `limiter` fx.
|
/// @dev Denominator's constant operand for the `limiter` fx.
|
||||||
@@ -12,7 +13,7 @@ contract Reputation is IReputation {
|
|||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
// solhint-disable no-inline-assembly
|
// solhint-disable no-inline-assembly
|
||||||
// solhint-disable-next-line no-empty-blocks
|
// solhint-disable-next-line no-empty-blocks
|
||||||
constructor(/* */) payable {/* */}
|
constructor(/* */) {/* */}
|
||||||
|
|
||||||
function limiter(
|
function limiter(
|
||||||
uint256 _userCredit
|
uint256 _userCredit
|
||||||
|
|||||||
@@ -1,185 +0,0 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
|
||||||
pragma solidity 0.8.19;
|
|
||||||
|
|
||||||
import { ERC20, OwnerSettings } from "./OwnerSettings.sol";
|
|
||||||
|
|
||||||
import { ECDSA } from "../lib/utils/ECDSA.sol";
|
|
||||||
import { MerkleProofLib as Merkle } from "../lib/utils/MerkleProofLib.sol";
|
|
||||||
import { ReentrancyGuard } from "../lib/utils/ReentrancyGuard.sol";
|
|
||||||
|
|
||||||
abstract contract BaseUtils is
|
|
||||||
OwnerSettings,
|
|
||||||
ReentrancyGuard
|
|
||||||
{
|
|
||||||
/// ███ Storage ████████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
/// @dev List of Pix transactions already signed.
|
|
||||||
/// mapping(bytes32 => bool) public usedTransactions;
|
|
||||||
/// @dev Value in custom storage slot given by:
|
|
||||||
/// let value := sload(bytes32).
|
|
||||||
|
|
||||||
/// ███ Helper FX ██████████████████████████████████████████████████████████
|
|
||||||
function _setUsedTransactions(bytes32 message) internal {
|
|
||||||
assembly {
|
|
||||||
sstore(message, true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function usedTransactions(
|
|
||||||
bytes32 message
|
|
||||||
) public view returns (bool used) {
|
|
||||||
assembly {
|
|
||||||
used := sload(message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _signerCheck(
|
|
||||||
bytes32 _message,
|
|
||||||
bytes32 _r,
|
|
||||||
bytes32 _s,
|
|
||||||
uint8 _v
|
|
||||||
) internal view {
|
|
||||||
if (usedTransactions(_message))
|
|
||||||
revert TxAlreadyUsed();
|
|
||||||
|
|
||||||
if (
|
|
||||||
!validBacenSigners(
|
|
||||||
_castAddrToKey(
|
|
||||||
ECDSA.recover(
|
|
||||||
ECDSA.toEthSignedMessageHash(
|
|
||||||
_message
|
|
||||||
),
|
|
||||||
_v,
|
|
||||||
_r,
|
|
||||||
_s
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) revert InvalidSigner();
|
|
||||||
}
|
|
||||||
|
|
||||||
function _merkleVerify(
|
|
||||||
bytes32[] calldata _merkleProof,
|
|
||||||
bytes32 _root,
|
|
||||||
address _addr
|
|
||||||
) internal pure {
|
|
||||||
if (
|
|
||||||
!Merkle.verify(
|
|
||||||
_merkleProof,
|
|
||||||
_root,
|
|
||||||
bytes32(uint256(uint160(_addr)))
|
|
||||||
)
|
|
||||||
) revert AddressDenied();
|
|
||||||
}
|
|
||||||
|
|
||||||
function _castBool(
|
|
||||||
bool _valid
|
|
||||||
) internal pure returns (uint256 _validCasted) {
|
|
||||||
assembly {
|
|
||||||
_validCasted := _valid
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getStr(
|
|
||||||
string memory str
|
|
||||||
) public pure returns (bytes32 strEnc) {
|
|
||||||
bytes memory enc = bytes(abi.encodePacked(str));
|
|
||||||
assembly {
|
|
||||||
if lt(0x20, mload(enc)) {
|
|
||||||
invalid()
|
|
||||||
}
|
|
||||||
strEnc := mload(add(enc, 0x20))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _setSellerBalance(
|
|
||||||
uint256 _sellerKey,
|
|
||||||
ERC20 _erc20,
|
|
||||||
uint256 _packed,
|
|
||||||
bytes32 _pixTarget
|
|
||||||
) internal {
|
|
||||||
assembly {
|
|
||||||
mstore(0x20, _erc20)
|
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
|
||||||
mstore(0x00, shr(0xc, _sellerKey))
|
|
||||||
let _loc := keccak256(0x0c, 0x34)
|
|
||||||
sstore(add(_loc, 0x01), _packed)
|
|
||||||
sstore(_loc, _pixTarget)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _setValidState(
|
|
||||||
uint256 _sellerKey,
|
|
||||||
ERC20 _erc20,
|
|
||||||
uint256 _packed
|
|
||||||
) internal {
|
|
||||||
assembly {
|
|
||||||
mstore(0x20, _erc20)
|
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
|
||||||
mstore(0x00, shr(0xc, _sellerKey))
|
|
||||||
let _loc := keccak256(0x0c, 0x34)
|
|
||||||
sstore(add(_loc, 0x01), _packed)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _addSellerBalance(
|
|
||||||
uint256 _sellerKey,
|
|
||||||
ERC20 _erc20,
|
|
||||||
uint256 _amount
|
|
||||||
) internal {
|
|
||||||
assembly {
|
|
||||||
mstore(0x20, _erc20)
|
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
|
||||||
mstore(0x00, shr(0xc, _sellerKey))
|
|
||||||
let _loc := add(keccak256(0x0c, 0x34), 0x01)
|
|
||||||
sstore(_loc, add(sload(_loc), _amount))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _decSellerBalance(
|
|
||||||
uint256 _sellerKey,
|
|
||||||
ERC20 _erc20,
|
|
||||||
uint256 _amount
|
|
||||||
) internal {
|
|
||||||
assembly {
|
|
||||||
mstore(0x20, _erc20)
|
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
|
||||||
mstore(0x00, shr(0xc, _sellerKey))
|
|
||||||
let _loc := add(keccak256(0x0c, 0x34), 0x01)
|
|
||||||
sstore(_loc, sub(sload(_loc), _amount))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function __sellerBalance(
|
|
||||||
uint256 _sellerKey,
|
|
||||||
ERC20 _erc20
|
|
||||||
) internal view returns (uint256 _packed) {
|
|
||||||
assembly {
|
|
||||||
mstore(0x20, _erc20)
|
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
|
||||||
mstore(0x00, shr(0xc, _sellerKey))
|
|
||||||
_packed := sload(add(keccak256(0x0c, 0x34), 0x01))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @notice Public method that handles `address`
|
|
||||||
/// to `uint256` safe type casting.
|
|
||||||
/// @dev Function sighash: 0x4b2ae980.
|
|
||||||
function _castAddrToKey(
|
|
||||||
address _addr
|
|
||||||
) public pure returns (uint256 _key) {
|
|
||||||
// _key = uint256(uint160(address(_addr))) << 12;
|
|
||||||
assembly {
|
|
||||||
_key := shl(0xc, _addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _castKeyToAddr(
|
|
||||||
uint256 _key
|
|
||||||
) public pure returns (address _addr) {
|
|
||||||
// _addr = address(uint160(uint256(_key >> 12)));
|
|
||||||
assembly {
|
|
||||||
_addr := shr(0xc, _key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
|
||||||
pragma solidity 0.8.19;
|
|
||||||
|
|
||||||
abstract contract Constants {
|
|
||||||
/// ███ Constants ██████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
uint256 constant _ROOT_UPDATED_EVENT_SIGNATURE =
|
|
||||||
0x0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632;
|
|
||||||
uint256 constant _ALLOWED_ERC20_UPDATED_EVENT_SIGNATURE =
|
|
||||||
0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a;
|
|
||||||
uint256 constant _TRUSTED_FORWARDER_UPDATED_EVENT_SIGNATURE =
|
|
||||||
0xbee55516e29d3969d3cb8eb01351eb3c52d06f9e2435bd5a8bfe3647e185df92;
|
|
||||||
|
|
||||||
/// @dev Seller casted to key => Seller's allowlist merkleroot.
|
|
||||||
/// mapping(uint256 => bytes32) public sellerAllowList;
|
|
||||||
uint256 constant _SELLER_ALLOWLIST_SLOT_SEED = 0x74dfee70;
|
|
||||||
/// @dev Tokens allowed to serve as the underlying amount of a deposit.
|
|
||||||
/// mapping(ERC20 => bool) public allowedERC20s;
|
|
||||||
uint256 constant _ALLOWED_ERC20_SLOT_SEED = 0xcbc9d1c4;
|
|
||||||
|
|
||||||
/// @dev `balance` max. value = 10**26.
|
|
||||||
/// @dev `pixTarget` keys are restricted to 160 bits.
|
|
||||||
/// mapping(uint256 => mapping(ERC20 => { `uint256`, `uint96` } )) public sellerBalance;
|
|
||||||
|
|
||||||
/// @dev Bits layout:
|
|
||||||
/// `bytes32` [0...255] := pixTarget
|
|
||||||
/// `uint96` [0...94] := balance
|
|
||||||
/// `bool` [95] := valid
|
|
||||||
|
|
||||||
/// @dev Value in custom storage slot given by:
|
|
||||||
/// mstore(0x20, token)
|
|
||||||
/// mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
|
||||||
/// mstore(0x00, seller)
|
|
||||||
/// let value := sload(keccak256(0x0c, 0x34)).
|
|
||||||
uint256 constant _SELLER_BALANCE_SLOT_SEED = 0x739094b1;
|
|
||||||
|
|
||||||
/// @dev The bitmask of `sellerBalance` entry.
|
|
||||||
uint256 constant BITMASK_SB_ENTRY = (1 << 94) - 1;
|
|
||||||
/// @dev The bit position of `valid` in `sellerBalance`.
|
|
||||||
uint256 constant BITPOS_VALID = 95;
|
|
||||||
|
|
||||||
/// @dev The scalar of BRZ token.
|
|
||||||
uint256 constant WAD = 1e18;
|
|
||||||
uint256 constant MAXBALANCE_UPPERBOUND = 1e8 ether;
|
|
||||||
uint256 constant REPUTATION_LOWERBOUND = 1e2 ether;
|
|
||||||
uint256 constant LOCKAMOUNT_UPPERBOUND = 1e6 ether;
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
|
||||||
pragma solidity 0.8.19;
|
|
||||||
|
|
||||||
import { ERC20 } from "../lib/tokens/ERC20.sol";
|
|
||||||
|
|
||||||
library DataTypes {
|
|
||||||
struct Lock {
|
|
||||||
uint256 sellerKey;
|
|
||||||
uint256 counter;
|
|
||||||
uint256 expirationBlock;
|
|
||||||
bytes32 pixTarget;
|
|
||||||
uint80 amount;
|
|
||||||
ERC20 token;
|
|
||||||
address buyerAddress;
|
|
||||||
}
|
|
||||||
|
|
||||||
// prettier-ignore
|
|
||||||
enum LockStatus {
|
|
||||||
Inexistent, // 0 := Uninitialized Lock.
|
|
||||||
Active, // 1 := Valid Lock.
|
|
||||||
Expired, // 2 := Expired Lock.
|
|
||||||
Released // 3 := Already released Lock.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,241 +0,0 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
|
||||||
pragma solidity 0.8.19;
|
|
||||||
|
|
||||||
import { ERC2771Context as ERC2771 } from "../lib/metatx/ERC2771Context.sol";
|
|
||||||
import { ERC20, SafeTransferLib } from "../lib/utils/SafeTransferLib.sol";
|
|
||||||
import { IReputation } from "../lib/interfaces/IReputation.sol";
|
|
||||||
import { EventAndErrors } from "./EventAndErrors.sol";
|
|
||||||
import { Constants } from "./Constants.sol";
|
|
||||||
import { Owned } from "../lib/auth/Owned.sol";
|
|
||||||
|
|
||||||
abstract contract OwnerSettings is
|
|
||||||
Constants,
|
|
||||||
EventAndErrors,
|
|
||||||
Owned(msg.sender),
|
|
||||||
ERC2771
|
|
||||||
{
|
|
||||||
/// ███ Storage ████████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
/// @dev List of valid Bacen signature addresses
|
|
||||||
/// mapping(uint256 => bool) public validBacenSigners;
|
|
||||||
/// @dev Value in custom storage slot given by:
|
|
||||||
/// let value := sload(shl(12, address)).
|
|
||||||
|
|
||||||
IReputation public reputation;
|
|
||||||
/// @dev Default blocks that lock will hold tokens.
|
|
||||||
uint256 public defaultLockBlocks;
|
|
||||||
|
|
||||||
/// ███ Constructor ████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
uint256 defaultBlocks,
|
|
||||||
address[] memory validSigners,
|
|
||||||
address _reputation,
|
|
||||||
ERC20[] memory tokens,
|
|
||||||
bool[] memory tokenStates
|
|
||||||
) {
|
|
||||||
setDefaultLockBlocks(defaultBlocks);
|
|
||||||
setValidSigners(validSigners);
|
|
||||||
setReputation(IReputation(_reputation));
|
|
||||||
tokenSettings(tokens, tokenStates);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// ███ Owner Only █████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
function setTrustedFowarders(
|
|
||||||
address[] memory forwarders,
|
|
||||||
bool[] memory states
|
|
||||||
) external onlyOwner {
|
|
||||||
assembly {
|
|
||||||
// first 32 bytes eq to array's length
|
|
||||||
let fLen := mload(forwarders)
|
|
||||||
// halts execution if forwarders.length eq 0
|
|
||||||
if iszero(fLen) {
|
|
||||||
invalid()
|
|
||||||
}
|
|
||||||
// revert with `LengthMismatch()`
|
|
||||||
if iszero(eq(fLen, mload(states))) {
|
|
||||||
mstore(0x00, 0xff633a38)
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
let fLoc := add(forwarders, 0x20)
|
|
||||||
let sLoc := add(states, 0x20)
|
|
||||||
for {
|
|
||||||
let end := add(fLoc, shl(5, fLen))
|
|
||||||
} iszero(eq(fLoc, end)) {
|
|
||||||
fLoc := add(fLoc, 0x20)
|
|
||||||
sLoc := add(sLoc, 0x20)
|
|
||||||
} {
|
|
||||||
// cache hashmap entry in scratch space
|
|
||||||
mstore(0x20, isTrustedForwarder.slot)
|
|
||||||
mstore(0x00, mload(fLoc))
|
|
||||||
// let mapSlot := keccak256(0x00, 0x40)
|
|
||||||
sstore(keccak256(0x00, 0x40), mload(sLoc))
|
|
||||||
|
|
||||||
// emit TrustedForwarderUpdated(address, bool)
|
|
||||||
log3(
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
_TRUSTED_FORWARDER_UPDATED_EVENT_SIGNATURE,
|
|
||||||
mload(fLoc),
|
|
||||||
mload(sLoc)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @dev Contract's underlying balance withdraw method.
|
|
||||||
/// @dev Function sighash: 0x5fd8c710.
|
|
||||||
function withdrawBalance() external onlyOwner {
|
|
||||||
uint256 balance = address(this).balance;
|
|
||||||
SafeTransferLib.safeTransferETH(msg.sender, balance);
|
|
||||||
emit FundsWithdrawn(msg.sender, balance);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setReputation(
|
|
||||||
IReputation _reputation
|
|
||||||
) public onlyOwner {
|
|
||||||
assembly {
|
|
||||||
sstore(reputation.slot, _reputation)
|
|
||||||
}
|
|
||||||
emit ReputationUpdated(address(_reputation));
|
|
||||||
}
|
|
||||||
|
|
||||||
function setDefaultLockBlocks(
|
|
||||||
uint256 _blocks
|
|
||||||
) public onlyOwner {
|
|
||||||
assembly {
|
|
||||||
sstore(defaultLockBlocks.slot, _blocks)
|
|
||||||
}
|
|
||||||
emit LockBlocksUpdated(_blocks);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setValidSigners(
|
|
||||||
address[] memory _validSigners
|
|
||||||
) public onlyOwner {
|
|
||||||
assembly {
|
|
||||||
let i := add(_validSigners, 0x20)
|
|
||||||
let end := add(i, shl(0x05, mload(_validSigners)))
|
|
||||||
for {
|
|
||||||
/* */
|
|
||||||
} iszero(returndatasize()) {
|
|
||||||
/* */
|
|
||||||
} {
|
|
||||||
sstore(shl(12, mload(i)), true)
|
|
||||||
i := add(i, 0x20)
|
|
||||||
|
|
||||||
if iszero(lt(i, end)) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
emit ValidSignersUpdated(_validSigners);
|
|
||||||
}
|
|
||||||
|
|
||||||
function tokenSettings(
|
|
||||||
ERC20[] memory _tokens,
|
|
||||||
bool[] memory _states
|
|
||||||
) public onlyOwner {
|
|
||||||
/* Yul Impl */
|
|
||||||
assembly {
|
|
||||||
// first 32 bytes eq to array's length
|
|
||||||
let tLen := mload(_tokens)
|
|
||||||
// NoTokens()
|
|
||||||
if iszero(tLen) {
|
|
||||||
mstore(0x00, 0xdf957883)
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
// LengthMismatch()
|
|
||||||
if iszero(eq(tLen, mload(_states))) {
|
|
||||||
mstore(0x00, 0xff633a38)
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
let tLoc := add(_tokens, 0x20)
|
|
||||||
let sLoc := add(_states, 0x20)
|
|
||||||
for {
|
|
||||||
let end := add(tLoc, shl(5, tLen))
|
|
||||||
} iszero(eq(tLoc, end)) {
|
|
||||||
tLoc := add(tLoc, 0x20)
|
|
||||||
sLoc := add(sLoc, 0x20)
|
|
||||||
} {
|
|
||||||
// cache hashmap entry in scratch space
|
|
||||||
mstore(0x0c, _ALLOWED_ERC20_SLOT_SEED)
|
|
||||||
mstore(0x00, mload(tLoc))
|
|
||||||
// let mapSlot := keccak256(0x0c, 0x20)
|
|
||||||
sstore(keccak256(0x0c, 0x20), mload(sLoc))
|
|
||||||
|
|
||||||
// emit AllowedERC20Updated(address, bool)
|
|
||||||
log3(
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
_ALLOWED_ERC20_UPDATED_EVENT_SIGNATURE,
|
|
||||||
mload(tLoc),
|
|
||||||
mload(sLoc)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// ███ View FX ████████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
function validBacenSigners(
|
|
||||||
uint256 signer
|
|
||||||
) public view returns (bool valid) {
|
|
||||||
assembly {
|
|
||||||
valid := sload(signer)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function sellerAllowList(
|
|
||||||
uint256 sellerKey
|
|
||||||
) public view returns (bytes32 root) {
|
|
||||||
assembly {
|
|
||||||
mstore(0x0c, _SELLER_ALLOWLIST_SLOT_SEED)
|
|
||||||
mstore(0x00, shr(12, sellerKey))
|
|
||||||
root := sload(keccak256(0x00, 0x20))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function allowedERC20s(
|
|
||||||
ERC20 erc20
|
|
||||||
) public view returns (bool state) {
|
|
||||||
assembly {
|
|
||||||
mstore(0x0c, _ALLOWED_ERC20_SLOT_SEED)
|
|
||||||
mstore(0x00, erc20)
|
|
||||||
state := sload(keccak256(0x0c, 0x20))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _limiter(
|
|
||||||
uint256 _userCredit
|
|
||||||
) internal view returns (uint256 _spendLimit) {
|
|
||||||
bytes memory encodedParams = abi.encodeWithSelector(
|
|
||||||
// IReputation.limiter.selector,
|
|
||||||
0x4d2b1791,
|
|
||||||
_userCredit
|
|
||||||
);
|
|
||||||
bool success;
|
|
||||||
assembly {
|
|
||||||
success := staticcall(
|
|
||||||
// gas
|
|
||||||
0x7530,
|
|
||||||
// address
|
|
||||||
sload(reputation.slot),
|
|
||||||
// argsOffset
|
|
||||||
add(encodedParams, 0x20),
|
|
||||||
// argsSize
|
|
||||||
mload(encodedParams),
|
|
||||||
// retOffset
|
|
||||||
0x00,
|
|
||||||
// retSize
|
|
||||||
0x20
|
|
||||||
)
|
|
||||||
_spendLimit := mload(0x00)
|
|
||||||
if iszero(success) {
|
|
||||||
// StaticCallFailed()
|
|
||||||
mstore(0x00, 0xe10bf1cc)
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,8 +4,6 @@ pragma solidity >=0.8.4;
|
|||||||
/// @notice Simple single owner authorization mixin.
|
/// @notice Simple single owner authorization mixin.
|
||||||
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)
|
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)
|
||||||
abstract contract Owned {
|
abstract contract Owned {
|
||||||
error Unauthorized();
|
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////
|
||||||
EVENTS
|
EVENTS
|
||||||
//////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////*/
|
||||||
@@ -22,7 +20,7 @@ abstract contract Owned {
|
|||||||
address public owner;
|
address public owner;
|
||||||
|
|
||||||
modifier onlyOwner() virtual {
|
modifier onlyOwner() virtual {
|
||||||
if (msg.sender != owner) revert Unauthorized();
|
require(msg.sender == owner, "UNAUTHORIZED");
|
||||||
|
|
||||||
_;
|
_;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
pragma solidity >=0.8.4;
|
|
||||||
|
|
||||||
/// @author OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
|
|
||||||
/// (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Context.sol)
|
|
||||||
|
|
||||||
/// @dev Provides information about the current execution context, including the
|
|
||||||
/// sender of the transaction and its data. While these are generally available
|
|
||||||
/// via msg.sender and msg.data, they should not be accessed in such a direct
|
|
||||||
/// manner, since when dealing with meta-transactions the account sending and
|
|
||||||
/// paying for execution may not be the actual sender (as far as an application
|
|
||||||
/// is concerned).
|
|
||||||
///
|
|
||||||
/// This contract is only required for intermediate, library-like contracts.
|
|
||||||
abstract contract Context {
|
|
||||||
function _msgSender()
|
|
||||||
internal
|
|
||||||
view
|
|
||||||
virtual
|
|
||||||
returns (address)
|
|
||||||
{
|
|
||||||
return msg.sender;
|
|
||||||
}
|
|
||||||
|
|
||||||
function _msgData()
|
|
||||||
internal
|
|
||||||
view
|
|
||||||
virtual
|
|
||||||
returns (bytes calldata)
|
|
||||||
{
|
|
||||||
return msg.data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @author Modified from OpenZeppelin Contracts (last updated v4.7.0) (metatx/ERC2771Context.sol)
|
|
||||||
/// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/metatx/ERC2771Context.sol
|
|
||||||
|
|
||||||
/// @dev Context variant with ERC2771 support.
|
|
||||||
abstract contract ERC2771Context is Context {
|
|
||||||
// address private immutable _trustedForwarder;
|
|
||||||
mapping(address => bool) public isTrustedForwarder;
|
|
||||||
|
|
||||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
|
||||||
// constructor(address trustedForwarder) {
|
|
||||||
// _trustedForwarder = trustedForwarder;
|
|
||||||
// }
|
|
||||||
|
|
||||||
function _msgSender()
|
|
||||||
internal
|
|
||||||
view
|
|
||||||
virtual
|
|
||||||
override
|
|
||||||
returns (address sender)
|
|
||||||
{
|
|
||||||
if (isTrustedForwarder[msg.sender]) {
|
|
||||||
// The assembly code is more direct than the Solidity version using `abi.decode`.
|
|
||||||
/// @solidity memory-safe-assembly
|
|
||||||
assembly {
|
|
||||||
sender := shr(
|
|
||||||
96,
|
|
||||||
calldataload(sub(calldatasize(), 20))
|
|
||||||
)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return super._msgSender();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _isTrustedForwarder()
|
|
||||||
internal
|
|
||||||
view
|
|
||||||
returns (address _sender, uint256 _forwarder)
|
|
||||||
{
|
|
||||||
_sender = _msgSender();
|
|
||||||
_forwarder = (_sender != msg.sender)
|
|
||||||
? uint256(1)
|
|
||||||
: uint256(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
function _msgData()
|
|
||||||
internal
|
|
||||||
view
|
|
||||||
virtual
|
|
||||||
override
|
|
||||||
returns (bytes calldata)
|
|
||||||
{
|
|
||||||
if (isTrustedForwarder[msg.sender]) {
|
|
||||||
return msg.data[:msg.data.length - 20];
|
|
||||||
} else {
|
|
||||||
return super._msgData();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
pragma solidity 0.8.19;
|
pragma solidity 0.8.9;
|
||||||
|
|
||||||
import { ERC20 } from "../tokens/ERC20.sol";
|
import { ERC20 } from "../tokens/ERC20.sol";
|
||||||
|
|
||||||
|
|||||||
@@ -1,78 +0,0 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
|
||||||
pragma solidity >=0.8.4;
|
|
||||||
|
|
||||||
/// @notice Gas optimized ECDSA wrapper.
|
|
||||||
/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ECDSA.sol)
|
|
||||||
/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/ECDSA.sol)
|
|
||||||
/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/ECDSA.sol)
|
|
||||||
library ECDSA {
|
|
||||||
/// @dev The signature is invalid.
|
|
||||||
error InvalidSignature();
|
|
||||||
|
|
||||||
/// @dev The number which `s` must not exceed in order for
|
|
||||||
/// the signature to be non-malleable.
|
|
||||||
bytes32 private constant _MALLEABILITY_THRESHOLD =
|
|
||||||
0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0;
|
|
||||||
|
|
||||||
/// @dev Recovers the signer's address from a message digest `hash`,
|
|
||||||
/// and the signature defined by `v`, `r`, `s`.
|
|
||||||
function recover(
|
|
||||||
bytes32 hash,
|
|
||||||
uint8 v,
|
|
||||||
bytes32 r,
|
|
||||||
bytes32 s
|
|
||||||
) internal view returns (address result) {
|
|
||||||
/// @solidity memory-safe-assembly
|
|
||||||
assembly {
|
|
||||||
// Copy the free memory pointer so that we can restore it later.
|
|
||||||
let m := mload(0x40)
|
|
||||||
mstore(0x00, hash)
|
|
||||||
mstore(0x20, and(v, 0xff))
|
|
||||||
mstore(0x40, r)
|
|
||||||
mstore(0x60, s)
|
|
||||||
pop(
|
|
||||||
staticcall(
|
|
||||||
gas(), // Amount of gas left for the transaction.
|
|
||||||
// If `s` in lower half order, such that the signature is not malleable.
|
|
||||||
lt(s, add(_MALLEABILITY_THRESHOLD, 1)), // Address of `ecrecover`.
|
|
||||||
0x00, // Start of input.
|
|
||||||
0x80, // Size of input.
|
|
||||||
0x00, // Start of output.
|
|
||||||
0x20 // Size of output.
|
|
||||||
)
|
|
||||||
)
|
|
||||||
result := mload(0x00)
|
|
||||||
// `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.
|
|
||||||
if iszero(returndatasize()) {
|
|
||||||
// Store the function selector of `InvalidSignature()`.
|
|
||||||
mstore(0x00, 0x8baa579f)
|
|
||||||
// Revert with (offset, size).
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
// Restore the zero slot.
|
|
||||||
mstore(0x60, 0)
|
|
||||||
// Restore the free memory pointer.
|
|
||||||
mstore(0x40, m)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @dev Returns an Ethereum Signed Message, created from a `hash`.
|
|
||||||
/// This produces a hash corresponding to the one signed with the
|
|
||||||
/// [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)
|
|
||||||
/// JSON-RPC method as part of EIP-191.
|
|
||||||
function toEthSignedMessageHash(
|
|
||||||
bytes32 hash
|
|
||||||
) internal pure returns (bytes32 result) {
|
|
||||||
/// @solidity memory-safe-assembly
|
|
||||||
assembly {
|
|
||||||
// Store into scratch space for keccak256.
|
|
||||||
mstore(0x20, hash)
|
|
||||||
mstore(
|
|
||||||
0x00,
|
|
||||||
"\x00\x00\x00\x00\x19Ethereum Signed Message:\n32"
|
|
||||||
)
|
|
||||||
// 0x40 - 0x04 = 0x3c
|
|
||||||
result := keccak256(0x04, 0x3c)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,140 +4,114 @@ pragma solidity >=0.8.4;
|
|||||||
import { ERC20 } from "../tokens/ERC20.sol";
|
import { ERC20 } from "../tokens/ERC20.sol";
|
||||||
|
|
||||||
/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
|
/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
|
||||||
/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)
|
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)
|
||||||
/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
|
|
||||||
/// @dev Caution! This library won't check that a token has code, responsibility is delegated to the caller.
|
/// @dev Caution! This library won't check that a token has code, responsibility is delegated to the caller.
|
||||||
library SafeTransferLib {
|
library SafeTransferLib {
|
||||||
/*//////////////////////////////////////////////////////////////
|
|
||||||
CUSTOM ERRORS
|
|
||||||
//////////////////////////////////////////////////////////////*/
|
|
||||||
|
|
||||||
/// @dev The ETH transfer has failed.
|
|
||||||
error ETHTransferFailed();
|
|
||||||
/// @dev The ERC20 `transferFrom` has failed.
|
|
||||||
error TransferFromFailed();
|
|
||||||
/// @dev The ERC20 `transfer` has failed.
|
|
||||||
error TransferFailed();
|
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////
|
||||||
ETH OPERATIONS
|
ETH OPERATIONS
|
||||||
//////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
/// @dev Sends `amount` (in wei) ETH to `to`.
|
|
||||||
/// Reverts upon failure.
|
|
||||||
function safeTransferETH(
|
function safeTransferETH(
|
||||||
address to,
|
address to,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
) internal {
|
) internal {
|
||||||
/// @solidity memory-safe-assembly
|
bool success;
|
||||||
|
|
||||||
assembly {
|
assembly {
|
||||||
// Transfer the ETH and check if it succeeded or not.
|
// Transfer the ETH and store if it succeeded or not.
|
||||||
if iszero(call(gas(), to, amount, 0, 0, 0, 0)) {
|
success := call(gas(), to, amount, 0, 0, 0, 0)
|
||||||
// Store the function selector of `ETHTransferFailed()`.
|
|
||||||
mstore(0x00, 0xb12d13eb)
|
|
||||||
// Revert with (offset, size).
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require(success, "ETH_TRANSFER_FAILED");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////
|
||||||
ERC20 OPERATIONS
|
ERC20 OPERATIONS
|
||||||
//////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
/// @dev Sends `amount` of ERC20 `token` from `from` to `to`.
|
|
||||||
/// Reverts upon failure.
|
|
||||||
///
|
|
||||||
/// The `from` account must have at least `amount` approved for
|
|
||||||
/// the current contract to manage.
|
|
||||||
function safeTransferFrom(
|
function safeTransferFrom(
|
||||||
ERC20 token,
|
ERC20 token,
|
||||||
address from,
|
address from,
|
||||||
address to,
|
address to,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
) internal {
|
) internal {
|
||||||
/// @solidity memory-safe-assembly
|
bool success;
|
||||||
|
|
||||||
assembly {
|
assembly {
|
||||||
let m := mload(0x40) // Cache the free memory pointer.
|
// We'll write our calldata to this slot below, but restore it later.
|
||||||
|
let memPointer := mload(0x40)
|
||||||
|
|
||||||
mstore(0x60, amount) // Store the `amount` argument.
|
// Write the abi-encoded calldata into memory, beginning with the function selector.
|
||||||
mstore(0x40, to) // Store the `to` argument.
|
mstore(
|
||||||
mstore(0x2c, shl(96, from)) // Store the `from` argument.
|
0,
|
||||||
// Store the function selector of `transferFrom(address,address,uint256)`.
|
0x23b872dd00000000000000000000000000000000000000000000000000000000
|
||||||
mstore(0x0c, 0x23b872dd000000000000000000000000)
|
)
|
||||||
|
mstore(4, from) // Append the "from" argument.
|
||||||
|
mstore(36, to) // Append the "to" argument.
|
||||||
|
mstore(68, amount) // Append the "amount" argument.
|
||||||
|
|
||||||
if iszero(
|
success := and(
|
||||||
and(
|
// Set success to whether the call reverted, if not we check it either
|
||||||
// The arguments of `and` are evaluated from right to left.
|
// returned exactly 1 (can't just be non-zero data), or had no return data.
|
||||||
// Set success to whether the call reverted, if not we check it either
|
or(
|
||||||
// returned exactly 1 (can't just be non-zero data), or had no return data.
|
and(
|
||||||
or(
|
eq(mload(0), 1),
|
||||||
eq(mload(0x00), 1),
|
gt(returndatasize(), 31)
|
||||||
iszero(returndatasize())
|
|
||||||
),
|
),
|
||||||
call(
|
iszero(returndatasize())
|
||||||
gas(),
|
),
|
||||||
token,
|
// We use 100 because that's the total length of our calldata (4 + 32 * 3)
|
||||||
0,
|
// Counterintuitively, this call() must be positioned after the or() in the
|
||||||
0x1c,
|
// surrounding and() because and() evaluates its arguments from right to left.
|
||||||
0x64,
|
call(gas(), token, 0, 0, 100, 0, 32)
|
||||||
0x00,
|
)
|
||||||
0x20
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
// Store the function selector of `TransferFromFailed()`.
|
|
||||||
mstore(0x00, 0x7939f424)
|
|
||||||
// Revert with (offset, size).
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
|
|
||||||
mstore(0x60, 0) // Restore the zero slot to zero.
|
mstore(0x60, 0) // Restore the zero slot to zero.
|
||||||
mstore(0x40, m) // Restore the free memory pointer.
|
mstore(0x40, memPointer) // Restore the memPointer.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require(success, "TRANSFER_FROM_FAILED");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @dev Sends `amount` of ERC20 `token` from the current contract to `to`.
|
|
||||||
/// Reverts upon failure.
|
|
||||||
function safeTransfer(
|
function safeTransfer(
|
||||||
ERC20 token,
|
ERC20 token,
|
||||||
address to,
|
address to,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
) internal {
|
) internal {
|
||||||
/// @solidity memory-safe-assembly
|
bool success;
|
||||||
assembly {
|
|
||||||
mstore(0x14, to) // Store the `to` argument.
|
|
||||||
mstore(0x34, amount) // Store the `amount` argument.
|
|
||||||
// Store the function selector of `transfer(address,uint256)`.
|
|
||||||
mstore(0x00, 0xa9059cbb000000000000000000000000)
|
|
||||||
|
|
||||||
if iszero(
|
assembly {
|
||||||
and(
|
// We'll write our calldata to this slot below, but restore it later.
|
||||||
// The arguments of `and` are evaluated from right to left.
|
let memPointer := mload(0x40)
|
||||||
// Set success to whether the call reverted, if not we check it either
|
|
||||||
// returned exactly 1 (can't just be non-zero data), or had no return data.
|
// Write the abi-encoded calldata into memory, beginning with the function selector.
|
||||||
or(
|
mstore(
|
||||||
eq(mload(0x00), 1),
|
0,
|
||||||
iszero(returndatasize())
|
0xa9059cbb00000000000000000000000000000000000000000000000000000000
|
||||||
|
)
|
||||||
|
mstore(4, to) // Append the "to" argument.
|
||||||
|
mstore(36, amount) // Append the "amount" argument.
|
||||||
|
|
||||||
|
success := and(
|
||||||
|
// Set success to whether the call reverted, if not we check it either
|
||||||
|
// returned exactly 1 (can't just be non-zero data), or had no return data.
|
||||||
|
or(
|
||||||
|
and(
|
||||||
|
eq(mload(0), 1),
|
||||||
|
gt(returndatasize(), 31)
|
||||||
),
|
),
|
||||||
call(
|
iszero(returndatasize())
|
||||||
gas(),
|
),
|
||||||
token,
|
// We use 68 because that's the total length of our calldata (4 + 32 * 2)
|
||||||
0,
|
// Counterintuitively, this call() must be positioned after the or() in the
|
||||||
0x10,
|
// surrounding and() because and() evaluates its arguments from right to left.
|
||||||
0x44,
|
call(gas(), token, 0, 0, 68, 0, 32)
|
||||||
0x00,
|
)
|
||||||
0x20
|
|
||||||
)
|
mstore(0x60, 0) // Restore the zero slot to zero.
|
||||||
)
|
mstore(0x40, memPointer) // Restore the memPointer.
|
||||||
) {
|
|
||||||
// Store the function selector of `TransferFailed()`.
|
|
||||||
mstore(0x00, 0x90b8ec18)
|
|
||||||
// Revert with (offset, size).
|
|
||||||
revert(0x1c, 0x04)
|
|
||||||
}
|
|
||||||
// Restore the part of the free memory pointer that was overwritten.
|
|
||||||
mstore(0x34, 0)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require(success, "TRANSFER_FAILED");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
pragma solidity 0.8.19;
|
pragma solidity 0.8.9;
|
||||||
|
|
||||||
/// ______ __
|
/// ______ __
|
||||||
/// .-----.|__ |.-----.|__|.--.--.
|
/// .-----.|__ |.-----.|__|.--.--.
|
||||||
@@ -8,12 +8,19 @@ pragma solidity 0.8.19;
|
|||||||
/// |__| |__|
|
/// |__| |__|
|
||||||
///
|
///
|
||||||
|
|
||||||
import { OwnerSettings, ERC20, SafeTransferLib } from "./core/OwnerSettings.sol";
|
import { Owned } from "./lib/auth/Owned.sol";
|
||||||
import { BaseUtils } from "./core/BaseUtils.sol";
|
import { ERC20, SafeTransferLib } from "./lib/utils/SafeTransferLib.sol";
|
||||||
import { DataTypes as DT } from "./core/DataTypes.sol";
|
import { IReputation } from "./lib/interfaces/IReputation.sol";
|
||||||
|
import { MerkleProofLib as Merkle } from "./lib/utils/MerkleProofLib.sol";
|
||||||
|
import { ReentrancyGuard } from "./lib/utils/ReentrancyGuard.sol";
|
||||||
|
import { EventAndErrors } from "./EventAndErrors.sol";
|
||||||
|
import { DataTypes as DT } from "./DataTypes.sol";
|
||||||
|
|
||||||
|
contract P2PIX is
|
||||||
contract P2PIX is BaseUtils {
|
EventAndErrors,
|
||||||
|
Owned(msg.sender),
|
||||||
|
ReentrancyGuard
|
||||||
|
{
|
||||||
// solhint-disable use-forbidden-name
|
// solhint-disable use-forbidden-name
|
||||||
// solhint-disable no-inline-assembly
|
// solhint-disable no-inline-assembly
|
||||||
// solhint-disable no-empty-blocks
|
// solhint-disable no-empty-blocks
|
||||||
@@ -21,32 +28,64 @@ contract P2PIX is BaseUtils {
|
|||||||
using DT for DT.Lock;
|
using DT for DT.Lock;
|
||||||
using DT for DT.LockStatus;
|
using DT for DT.LockStatus;
|
||||||
|
|
||||||
|
/// ███ Constants ██████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
/// @dev The bitmask of `sellerBalance` entry.
|
||||||
|
uint256 private constant BITMASK_SB_ENTRY = (1 << 94) - 1;
|
||||||
|
/// @dev The bit position of `pixTarget` in `sellerBalance`.
|
||||||
|
uint256 private constant BITPOS_PIXTARGET = 95;
|
||||||
|
/// @dev The bit position of `valid` in `sellerBalance`.
|
||||||
|
uint256 private constant BITPOS_VALID = 255;
|
||||||
|
/// @dev The bitmask of all 256 bits of `sellerBalance` except for the last one.
|
||||||
|
uint256 private constant BITMASK_VALID = (1 << 255) - 1;
|
||||||
|
/// @dev The scalar of BRZ token.
|
||||||
|
uint256 public constant WAD = 1e18;
|
||||||
|
|
||||||
/// ███ Storage ████████████████████████████████████████████████████████████
|
/// ███ Storage ████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
IReputation public reputation;
|
||||||
|
|
||||||
|
/// @dev Default blocks that lock will hold tokens.
|
||||||
|
uint256 public defaultLockBlocks;
|
||||||
uint256 public lockCounter;
|
uint256 public lockCounter;
|
||||||
|
|
||||||
/// @dev List of Locks.
|
/// @dev List of Locks.
|
||||||
mapping(uint256 => DT.Lock) public mapLocks;
|
mapping(uint256 => DT.Lock) public mapLocks;
|
||||||
|
/// @dev Seller casted to key => Seller's allowlist merkleroot.
|
||||||
|
mapping(uint256 => bytes32) public sellerAllowList;
|
||||||
/// @dev Stores an relayer's last computed credit.
|
/// @dev Stores an relayer's last computed credit.
|
||||||
mapping(uint256 => uint256) public userRecord;
|
mapping(uint256 => uint256) public userRecord;
|
||||||
|
/// @dev List of valid Bacen signature addresses
|
||||||
|
mapping(uint256 => bool) public validBacenSigners;
|
||||||
|
/// @dev List of Pix transactions already signed.
|
||||||
|
mapping(bytes32 => bool) public usedTransactions;
|
||||||
|
/// @dev Tokens allowed to serve as the underlying amount of a deposit.
|
||||||
|
mapping(ERC20 => bool) public allowedERC20s;
|
||||||
|
|
||||||
|
// BITS LAYOUT
|
||||||
|
// `uint96` [0...94] := balance
|
||||||
|
// `uint160` [95...254] := pixTarget
|
||||||
|
// `bool` [255] := valid
|
||||||
|
|
||||||
|
/// @dev `balance` max. value = 10**26.
|
||||||
|
/// @dev `pixTarget` keys are restricted to 160 bits.
|
||||||
|
mapping(uint256 => mapping(ERC20 => uint256))
|
||||||
|
public sellerBalance;
|
||||||
|
|
||||||
/// ███ Constructor ████████████████████████████████████████████████████████
|
/// ███ Constructor ████████████████████████████████████████████████████████
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
uint256 defaultBlocks,
|
uint256 defaultBlocks,
|
||||||
address[] memory validSigners,
|
address[] memory validSigners,
|
||||||
address _reputation,
|
IReputation _reputation,
|
||||||
ERC20[] memory tokens,
|
address[] memory tokens,
|
||||||
bool[] memory tokenStates
|
bool[] memory tokenStates
|
||||||
)
|
) payable {
|
||||||
OwnerSettings(
|
setDefaultLockBlocks(defaultBlocks);
|
||||||
defaultBlocks,
|
setReputation(_reputation);
|
||||||
validSigners,
|
setValidSigners(validSigners);
|
||||||
_reputation,
|
tokenSettings(tokens, tokenStates);
|
||||||
tokens,
|
}
|
||||||
tokenStates
|
|
||||||
)
|
|
||||||
payable {/* */}
|
|
||||||
|
|
||||||
/// ███ Public FX ██████████████████████████████████████████████████████████
|
/// ███ Public FX ██████████████████████████████████████████████████████████
|
||||||
|
|
||||||
@@ -58,22 +97,21 @@ contract P2PIX is BaseUtils {
|
|||||||
/// as the deposit identifier.
|
/// as the deposit identifier.
|
||||||
/// @dev Function sighash: 0xbfe07da6.
|
/// @dev Function sighash: 0xbfe07da6.
|
||||||
function deposit(
|
function deposit(
|
||||||
ERC20 _token,
|
address _token,
|
||||||
uint96 _amount,
|
uint96 _amount,
|
||||||
string memory _pixTarget,
|
uint160 _pixTarget,
|
||||||
bool _valid,
|
bool _valid,
|
||||||
bytes32 allowlistRoot
|
bytes32 allowlistRoot
|
||||||
) public {
|
) public {
|
||||||
ERC20 t = ERC20(_token);
|
ERC20 t = ERC20(_token);
|
||||||
uint256 k = _castAddrToKey(msg.sender);
|
uint256 k = _castAddrToKey(msg.sender);
|
||||||
|
|
||||||
if (bytes(_pixTarget).length == 0) revert EmptyPixTarget();
|
if (_pixTarget == 0) revert EmptyPixTarget();
|
||||||
if (!allowedERC20s(t)) revert TokenDenied();
|
if (!allowedERC20s[t]) revert TokenDenied();
|
||||||
uint256 _sellerBalance = __sellerBalance(k,t);
|
uint256 _sellerBalance = sellerBalance[k][t];
|
||||||
|
|
||||||
uint256 currBal = _sellerBalance & BITMASK_SB_ENTRY;
|
uint256 currBal = _sellerBalance & BITMASK_SB_ENTRY;
|
||||||
uint256 _newBal = uint256(currBal + _amount);
|
if ((currBal + _amount) > 1e8 ether)
|
||||||
if (_newBal > MAXBALANCE_UPPERBOUND)
|
|
||||||
revert MaxBalExceeded();
|
revert MaxBalExceeded();
|
||||||
|
|
||||||
setReentrancyGuard();
|
setReentrancyGuard();
|
||||||
@@ -82,15 +120,19 @@ contract P2PIX is BaseUtils {
|
|||||||
setRoot(msg.sender, allowlistRoot);
|
setRoot(msg.sender, allowlistRoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes32 pixTargetCasted = getStr(_pixTarget);
|
uint256 amountCasted;
|
||||||
uint256 validCasted = _castBool(_valid);
|
uint256 pixTargetCasted;
|
||||||
|
uint256 validCasted;
|
||||||
|
(
|
||||||
|
amountCasted,
|
||||||
|
pixTargetCasted,
|
||||||
|
validCasted
|
||||||
|
) = _castToUint(_amount, _pixTarget, _valid);
|
||||||
|
|
||||||
_setSellerBalance(
|
sellerBalance[k][t] =
|
||||||
k,
|
(currBal + amountCasted) |
|
||||||
t,
|
(pixTargetCasted << BITPOS_PIXTARGET) |
|
||||||
(_newBal | (validCasted << BITPOS_VALID)),
|
(validCasted << BITPOS_VALID);
|
||||||
pixTargetCasted
|
|
||||||
);
|
|
||||||
|
|
||||||
SafeTransferLib.safeTransferFrom(
|
SafeTransferLib.safeTransferFrom(
|
||||||
t,
|
t,
|
||||||
@@ -110,18 +152,21 @@ contract P2PIX is BaseUtils {
|
|||||||
/// @dev Function sighash: 0x72fada5c.
|
/// @dev Function sighash: 0x72fada5c.
|
||||||
function setValidState(ERC20 token, bool state) public {
|
function setValidState(ERC20 token, bool state) public {
|
||||||
uint256 key = _castAddrToKey(msg.sender);
|
uint256 key = _castAddrToKey(msg.sender);
|
||||||
uint256 _sellerBalance = __sellerBalance(key, token);
|
uint256 _sellerBalance = sellerBalance[key][token];
|
||||||
|
|
||||||
if (_sellerBalance != 0) {
|
if (_sellerBalance != 0) {
|
||||||
uint256 _valid = _castBool(state);
|
uint256 _valid;
|
||||||
|
assembly {
|
||||||
|
_valid := state
|
||||||
|
}
|
||||||
|
|
||||||
_sellerBalance =
|
_sellerBalance =
|
||||||
(_sellerBalance & BITMASK_SB_ENTRY) |
|
(_sellerBalance & BITMASK_VALID) |
|
||||||
(_valid << BITPOS_VALID);
|
(_valid << BITPOS_VALID);
|
||||||
|
|
||||||
_setValidState(key, token, _sellerBalance);
|
sellerBalance[key][token] = _sellerBalance;
|
||||||
|
|
||||||
emit ValidSet(msg.sender, token, state);
|
emit ValidSet(msg.sender, address(token), state);
|
||||||
} else revert NotInitialized();
|
} else revert NotInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,6 +178,9 @@ contract P2PIX is BaseUtils {
|
|||||||
/// @dev There can only exist a lock per each `_amount` partitioned
|
/// @dev There can only exist a lock per each `_amount` partitioned
|
||||||
/// from the total `remaining` value.
|
/// from the total `remaining` value.
|
||||||
/// @dev Locks can only be performed in valid orders.
|
/// @dev Locks can only be performed in valid orders.
|
||||||
|
/// @param _buyerAddress The address of the buyer of a `_depositID`.
|
||||||
|
/// @param _relayerTarget Target address entitled to the `relayerPremium`.
|
||||||
|
/// @param _relayerPremium The refund/premium owed to a relayer.
|
||||||
/// @param _amount The deposit's remaining amount wished to be locked.
|
/// @param _amount The deposit's remaining amount wished to be locked.
|
||||||
/// @param merkleProof This value should be:
|
/// @param merkleProof This value should be:
|
||||||
/// - Provided as a pass if the `msg.sender` is in the seller's allowlist;
|
/// - Provided as a pass if the `msg.sender` is in the seller's allowlist;
|
||||||
@@ -143,14 +191,17 @@ contract P2PIX is BaseUtils {
|
|||||||
/// @dev Function sighash: 0x03aaf306.
|
/// @dev Function sighash: 0x03aaf306.
|
||||||
function lock(
|
function lock(
|
||||||
address _seller,
|
address _seller,
|
||||||
ERC20 _token,
|
address _token,
|
||||||
uint80 _amount,
|
address _buyerAddress,
|
||||||
|
address _relayerTarget,
|
||||||
|
uint256 _relayerPremium,
|
||||||
|
uint256 _amount,
|
||||||
bytes32[] calldata merkleProof,
|
bytes32[] calldata merkleProof,
|
||||||
uint256[] calldata expiredLocks
|
uint256[] calldata expiredLocks
|
||||||
) public nonReentrant returns (uint256 lockID) {
|
) public nonReentrant returns (uint256) {
|
||||||
unlockExpired(expiredLocks);
|
unlockExpired(expiredLocks);
|
||||||
|
|
||||||
ERC20 t = _token;
|
ERC20 t = ERC20(_token);
|
||||||
if (!getValid(_seller, t)) revert InvalidDeposit();
|
if (!getValid(_seller, t)) revert InvalidDeposit();
|
||||||
|
|
||||||
uint256 bal = getBalance(_seller, t);
|
uint256 bal = getBalance(_seller, t);
|
||||||
@@ -164,32 +215,61 @@ contract P2PIX is BaseUtils {
|
|||||||
mapLocks[cCounter].expirationBlock >= block.number
|
mapLocks[cCounter].expirationBlock >= block.number
|
||||||
) revert NotExpired();
|
) revert NotExpired();
|
||||||
|
|
||||||
address sender; uint256 forwarder;
|
|
||||||
(sender, forwarder) = _isTrustedForwarder();
|
|
||||||
|
|
||||||
if (merkleProof.length != 0) {
|
|
||||||
_merkleVerify( merkleProof, sellerAllowList(k), msg.sender);
|
|
||||||
|
|
||||||
} else if (_amount > REPUTATION_LOWERBOUND && forwarder == 0) {
|
|
||||||
|
|
||||||
uint256 userCredit = userRecord[_castAddrToKey(msg.sender)];
|
|
||||||
uint256 spendLimit; (spendLimit) = _limiter(userCredit / WAD);
|
|
||||||
if (
|
|
||||||
_amount > (spendLimit * WAD) || _amount > LOCKAMOUNT_UPPERBOUND
|
|
||||||
) revert AmountNotAllowed();
|
|
||||||
}
|
|
||||||
|
|
||||||
DT.Lock memory l = DT.Lock(
|
DT.Lock memory l = DT.Lock(
|
||||||
k,
|
k,
|
||||||
cCounter,
|
cCounter,
|
||||||
(block.number + defaultLockBlocks),
|
_relayerPremium,
|
||||||
getPixTarget(_seller, t),
|
|
||||||
_amount,
|
_amount,
|
||||||
t,
|
(block.number + defaultLockBlocks),
|
||||||
sender
|
uint160(sellerBalance[k][t] >> BITPOS_PIXTARGET),
|
||||||
|
_buyerAddress,
|
||||||
|
_relayerTarget,
|
||||||
|
msg.sender,
|
||||||
|
address(t)
|
||||||
);
|
);
|
||||||
|
|
||||||
lockID = _addLock(bal, _amount, cCounter, l, t, k);
|
if (merkleProof.length != 0) {
|
||||||
|
merkleVerify(
|
||||||
|
merkleProof,
|
||||||
|
sellerAllowList[k],
|
||||||
|
msg.sender
|
||||||
|
);
|
||||||
|
|
||||||
|
_addLock(bal, _amount, cCounter, l, t, k);
|
||||||
|
|
||||||
|
lockCounter++;
|
||||||
|
|
||||||
|
// Halt execution and output `lockID`.
|
||||||
|
return cCounter;
|
||||||
|
} else {
|
||||||
|
if (l.amount <= 1e2 ether) {
|
||||||
|
_addLock(bal, _amount, cCounter, l, t, k);
|
||||||
|
|
||||||
|
lockCounter++;
|
||||||
|
|
||||||
|
// Halt execution and output `lockID`.
|
||||||
|
return cCounter;
|
||||||
|
} else {
|
||||||
|
uint256 userCredit = userRecord[
|
||||||
|
_castAddrToKey(msg.sender)
|
||||||
|
];
|
||||||
|
|
||||||
|
uint256 spendLimit;
|
||||||
|
(spendLimit) = _limiter(userCredit / WAD);
|
||||||
|
|
||||||
|
if (
|
||||||
|
l.amount > (spendLimit * WAD) ||
|
||||||
|
l.amount > 1e6 ether
|
||||||
|
) revert AmountNotAllowed();
|
||||||
|
|
||||||
|
_addLock(bal, _amount, cCounter, l, t, k);
|
||||||
|
|
||||||
|
lockCounter++;
|
||||||
|
|
||||||
|
// Halt execution and output `lockID`.
|
||||||
|
return cCounter;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @notice Lock release method that liquidate lock
|
/// @notice Lock release method that liquidate lock
|
||||||
@@ -197,15 +277,17 @@ contract P2PIX is BaseUtils {
|
|||||||
/// @dev This method can be called by any public actor
|
/// @dev This method can be called by any public actor
|
||||||
/// as long the signature provided is valid.
|
/// as long the signature provided is valid.
|
||||||
/// @dev `relayerPremium` gets splitted equaly
|
/// @dev `relayerPremium` gets splitted equaly
|
||||||
/// if relayer addresses differ.
|
/// if `relayerTarget` addresses differ.
|
||||||
/// @dev If the `msg.sender` of this method and `l.relayerAddress` are the same,
|
/// @dev If the `msg.sender` of this method and `l.relayerAddress` are the same,
|
||||||
/// `msg.sender` accrues both l.amount and l.relayerPremium as userRecord credit.
|
/// `msg.sender` accrues both l.amount and l.relayerPremium as userRecord credit.
|
||||||
/// In case of they differing:
|
/// In case of they differing:
|
||||||
/// - `lock` caller gets accrued with `l.amount` as userRecord credit;
|
/// - `lock` caller gets accrued with `l.amount` as userRecord credit;
|
||||||
/// - `release` caller gets accrued with `l.relayerPremium` as userRecord credit;
|
/// - `release` caller gets accrued with `l.relayerPremium` as userRecord credit;
|
||||||
|
/// @param _relayerTarget Target address entitled to the `relayerPremium`.
|
||||||
/// @dev Function sighash: 0x4e1389ed.
|
/// @dev Function sighash: 0x4e1389ed.
|
||||||
function release(
|
function release(
|
||||||
uint256 lockID,
|
uint256 lockID,
|
||||||
|
address _relayerTarget,
|
||||||
bytes32 pixTimestamp,
|
bytes32 pixTimestamp,
|
||||||
bytes32 r,
|
bytes32 r,
|
||||||
bytes32 s,
|
bytes32 s,
|
||||||
@@ -224,35 +306,72 @@ contract P2PIX is BaseUtils {
|
|||||||
pixTimestamp
|
pixTimestamp
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
bytes32 messageDigest = keccak256(
|
||||||
|
abi.encodePacked(
|
||||||
|
"\x19Ethereum Signed Message:\n32",
|
||||||
|
message
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
_signerCheck(message, r, s, v);
|
if (usedTransactions[message] == true)
|
||||||
|
revert TxAlreadyUsed();
|
||||||
|
|
||||||
|
uint256 signer = _castAddrToKey(
|
||||||
|
ecrecover(messageDigest, v, r, s)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!validBacenSigners[signer])
|
||||||
|
revert InvalidSigner();
|
||||||
|
|
||||||
ERC20 t = ERC20(l.token);
|
ERC20 t = ERC20(l.token);
|
||||||
|
|
||||||
// We cache lockAmount value before zeroing it out.
|
// We cache values before zeroing them out.
|
||||||
uint256 lockAmount = l.amount;
|
uint256 lockAmount = l.amount;
|
||||||
|
uint256 totalAmount = (lockAmount - l.relayerPremium);
|
||||||
|
|
||||||
l.amount = 0;
|
l.amount = 0;
|
||||||
l.expirationBlock = 0;
|
l.expirationBlock = 0;
|
||||||
_setUsedTransactions(message);
|
usedTransactions[message] = true;
|
||||||
|
|
||||||
address sender; uint256 forwarder;
|
if (msg.sender != l.relayerAddress) {
|
||||||
(sender, forwarder) = _isTrustedForwarder();
|
userRecord[_castAddrToKey(msg.sender)] += l
|
||||||
|
.relayerPremium;
|
||||||
if (forwarder == 0) {
|
userRecord[
|
||||||
if (msg.sender != l.buyerAddress) {
|
_castAddrToKey(l.relayerAddress)
|
||||||
userRecord[_castAddrToKey(msg.sender)] += (lockAmount >> 1);
|
] += lockAmount;
|
||||||
userRecord[_castAddrToKey(l.buyerAddress)] += (lockAmount >> 1);
|
|
||||||
} else {
|
} else {
|
||||||
userRecord[_castAddrToKey(msg.sender)] += lockAmount;
|
userRecord[_castAddrToKey(msg.sender)] += (l
|
||||||
}}
|
.relayerPremium + lockAmount);
|
||||||
|
}
|
||||||
|
|
||||||
SafeTransferLib.safeTransfer(
|
SafeTransferLib.safeTransfer(
|
||||||
t,
|
t,
|
||||||
l.buyerAddress,
|
l.buyerAddress,
|
||||||
lockAmount
|
totalAmount
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Method doesn't check for zero address.
|
||||||
|
if (l.relayerPremium != 0) {
|
||||||
|
if (_relayerTarget != l.relayerTarget) {
|
||||||
|
SafeTransferLib.safeTransfer(
|
||||||
|
t,
|
||||||
|
l.relayerTarget,
|
||||||
|
(l.relayerPremium >> 1)
|
||||||
|
);
|
||||||
|
SafeTransferLib.safeTransfer(
|
||||||
|
t,
|
||||||
|
_relayerTarget,
|
||||||
|
(l.relayerPremium >> 1)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
SafeTransferLib.safeTransfer(
|
||||||
|
t,
|
||||||
|
_relayerTarget,
|
||||||
|
l.relayerPremium
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
emit LockReleased(l.buyerAddress, lockID, lockAmount);
|
emit LockReleased(l.buyerAddress, lockID, lockAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,24 +392,26 @@ contract P2PIX is BaseUtils {
|
|||||||
|
|
||||||
_notExpired(l);
|
_notExpired(l);
|
||||||
|
|
||||||
uint256 _sellerBalance =
|
uint256 _sellerBalance = sellerBalance[
|
||||||
__sellerBalance(l.sellerKey, l.token) & BITMASK_SB_ENTRY;
|
l.sellerKey
|
||||||
|
][ERC20(l.token)] & BITMASK_SB_ENTRY;
|
||||||
|
|
||||||
if ((_sellerBalance + l.amount) > MAXBALANCE_UPPERBOUND)
|
if ((_sellerBalance + l.amount) > 1e8 ether)
|
||||||
revert MaxBalExceeded();
|
revert MaxBalExceeded();
|
||||||
|
|
||||||
_addSellerBalance(l.sellerKey, l.token, l.amount);
|
sellerBalance[l.sellerKey][ERC20(l.token)] += l
|
||||||
|
.amount;
|
||||||
|
|
||||||
l.amount = 0;
|
l.amount = 0;
|
||||||
|
|
||||||
uint256 userKey = _castAddrToKey(
|
uint256 userKey = _castAddrToKey(
|
||||||
l.buyerAddress
|
l.relayerAddress
|
||||||
);
|
);
|
||||||
uint256 _newUserRecord = (userRecord[userKey] >>
|
uint256 _newUserRecord = (userRecord[userKey] >>
|
||||||
1);
|
1);
|
||||||
|
|
||||||
if (_newUserRecord <= REPUTATION_LOWERBOUND) {
|
if (_newUserRecord <= 1e2 ether) {
|
||||||
userRecord[userKey] = REPUTATION_LOWERBOUND;
|
userRecord[userKey] = 1e2 ether;
|
||||||
} else {
|
} else {
|
||||||
userRecord[userKey] = _newUserRecord;
|
userRecord[userKey] = _newUserRecord;
|
||||||
}
|
}
|
||||||
@@ -321,12 +442,13 @@ contract P2PIX is BaseUtils {
|
|||||||
) public nonReentrant {
|
) public nonReentrant {
|
||||||
unlockExpired(expiredLocks);
|
unlockExpired(expiredLocks);
|
||||||
|
|
||||||
if (getValid(msg.sender, token))
|
if (getValid(msg.sender, token) == true) {
|
||||||
setValidState(token, false);
|
setValidState(token, false);
|
||||||
|
}
|
||||||
|
|
||||||
uint256 key = _castAddrToKey(msg.sender);
|
uint256 key = _castAddrToKey(msg.sender);
|
||||||
_decBal(
|
_decBal(
|
||||||
(__sellerBalance(key, token) & BITMASK_SB_ENTRY),
|
(sellerBalance[key][token] & BITMASK_SB_ENTRY),
|
||||||
amount,
|
amount,
|
||||||
token,
|
token,
|
||||||
key
|
key
|
||||||
@@ -341,34 +463,110 @@ contract P2PIX is BaseUtils {
|
|||||||
|
|
||||||
emit DepositWithdrawn(
|
emit DepositWithdrawn(
|
||||||
msg.sender,
|
msg.sender,
|
||||||
token,
|
address(token),
|
||||||
amount
|
amount
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setRoot(address addr, bytes32 merkleroot)
|
function setRoot(address addr, bytes32 merkleroot)
|
||||||
public
|
public
|
||||||
|
{
|
||||||
|
if (addr == msg.sender) {
|
||||||
|
sellerAllowList[
|
||||||
|
_castAddrToKey(addr)
|
||||||
|
] = merkleroot;
|
||||||
|
emit RootUpdated(addr, merkleroot);
|
||||||
|
} else revert OnlySeller();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// ███ Owner Only █████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
/// @dev Contract's underlying balance withdraw method.
|
||||||
|
/// @dev Function sighash: 0x5fd8c710.
|
||||||
|
function withdrawBalance() external onlyOwner {
|
||||||
|
uint256 balance = address(this).balance;
|
||||||
|
SafeTransferLib.safeTransferETH(msg.sender, balance);
|
||||||
|
emit FundsWithdrawn(msg.sender, balance);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setReputation(IReputation _reputation)
|
||||||
|
public
|
||||||
|
onlyOwner
|
||||||
{
|
{
|
||||||
assembly {
|
assembly {
|
||||||
// if (addr != msg.sender)
|
sstore(reputation.slot, _reputation)
|
||||||
if iszero(eq(addr, caller())) {
|
}
|
||||||
// revert OnlySeller()
|
emit ReputationUpdated(address(_reputation));
|
||||||
mstore(0x00, 0x85d1f726)
|
}
|
||||||
|
|
||||||
|
function setDefaultLockBlocks(uint256 _blocks)
|
||||||
|
public
|
||||||
|
onlyOwner
|
||||||
|
{
|
||||||
|
assembly {
|
||||||
|
sstore(defaultLockBlocks.slot, _blocks)
|
||||||
|
}
|
||||||
|
emit LockBlocksUpdated(_blocks);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setValidSigners(address[] memory _validSigners)
|
||||||
|
public
|
||||||
|
onlyOwner
|
||||||
|
{
|
||||||
|
unchecked {
|
||||||
|
uint256 i;
|
||||||
|
uint256 len = _validSigners.length;
|
||||||
|
for (i; i < len; ) {
|
||||||
|
uint256 key = _castAddrToKey(
|
||||||
|
_validSigners[i]
|
||||||
|
);
|
||||||
|
validBacenSigners[key] = true;
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
emit ValidSignersUpdated(_validSigners);
|
||||||
|
}
|
||||||
|
|
||||||
|
function tokenSettings(
|
||||||
|
address[] memory _tokens,
|
||||||
|
bool[] memory _states
|
||||||
|
) public onlyOwner {
|
||||||
|
/* Yul Impl */
|
||||||
|
assembly {
|
||||||
|
// first 32 bytes eq to array's length
|
||||||
|
let tLen := mload(_tokens)
|
||||||
|
// NoTokens()
|
||||||
|
if iszero(tLen) {
|
||||||
|
mstore(0x00, 0xdf957883)
|
||||||
revert(0x1c, 0x04)
|
revert(0x1c, 0x04)
|
||||||
}
|
}
|
||||||
// sets root to SellerAllowlist's storage slot
|
// LengthMismatch()
|
||||||
mstore(0x0c, _SELLER_ALLOWLIST_SLOT_SEED)
|
if iszero(eq(tLen, mload(_states))) {
|
||||||
mstore(0x00, addr)
|
mstore(0x00, 0xff633a38)
|
||||||
sstore(keccak256(0x00, 0x20), merkleroot)
|
revert(0x1c, 0x04)
|
||||||
|
}
|
||||||
// emit RootUpdated(addr, merkleroot);
|
let tLoc := add(_tokens, 0x20)
|
||||||
log3(
|
let sLoc := add(_states, 0x20)
|
||||||
0,
|
for {
|
||||||
0,
|
let end := add(tLoc, shl(5, tLen))
|
||||||
_ROOT_UPDATED_EVENT_SIGNATURE,
|
} iszero(eq(tLoc, end)) {
|
||||||
addr,
|
tLoc := add(tLoc, 0x20)
|
||||||
merkleroot
|
sLoc := add(sLoc, 0x20)
|
||||||
)
|
} {
|
||||||
|
// cache hashmap entry in scratch space
|
||||||
|
mstore(0x00, mload(tLoc))
|
||||||
|
mstore(0x20, allowedERC20s.slot)
|
||||||
|
let mapSlot := keccak256(0x00, 0x40)
|
||||||
|
sstore(mapSlot, mload(sLoc))
|
||||||
|
log3(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
// AllowedERC20Updated(address, bool)
|
||||||
|
0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a,
|
||||||
|
mload(tLoc),
|
||||||
|
mload(sLoc)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -394,12 +592,10 @@ contract P2PIX is BaseUtils {
|
|||||||
DT.Lock memory _l,
|
DT.Lock memory _l,
|
||||||
ERC20 _t,
|
ERC20 _t,
|
||||||
uint256 _k
|
uint256 _k
|
||||||
) internal returns(uint256 counter){
|
) internal {
|
||||||
mapLocks[_lockID] = _l;
|
mapLocks[_lockID] = _l;
|
||||||
|
|
||||||
_decBal(_bal, _amount, _t, _k);
|
_decBal(_bal, _amount, _t, _k);
|
||||||
++lockCounter;
|
|
||||||
counter = _lockID;
|
|
||||||
|
|
||||||
emit LockAdded(
|
emit LockAdded(
|
||||||
_l.buyerAddress,
|
_l.buyerAddress,
|
||||||
@@ -409,6 +605,81 @@ contract P2PIX is BaseUtils {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function merkleVerify(
|
||||||
|
bytes32[] calldata _merkleProof,
|
||||||
|
bytes32 root,
|
||||||
|
address _addr
|
||||||
|
) private pure {
|
||||||
|
if (
|
||||||
|
!Merkle.verify(
|
||||||
|
_merkleProof,
|
||||||
|
root,
|
||||||
|
bytes32(uint256(uint160(_addr)))
|
||||||
|
)
|
||||||
|
) revert AddressDenied();
|
||||||
|
}
|
||||||
|
|
||||||
|
function _limiter(uint256 _userCredit)
|
||||||
|
internal
|
||||||
|
view
|
||||||
|
returns (uint256 _spendLimit)
|
||||||
|
{
|
||||||
|
// enconde the fx sighash and args
|
||||||
|
bytes memory encodedParams = abi.encodeWithSelector(
|
||||||
|
IReputation.limiter.selector,
|
||||||
|
_userCredit
|
||||||
|
);
|
||||||
|
// cast the uninitialized return values to memory
|
||||||
|
bool success;
|
||||||
|
uint256 returnSize;
|
||||||
|
uint256 returnValue;
|
||||||
|
// perform staticcall from the stack w yul
|
||||||
|
assembly {
|
||||||
|
success := staticcall(
|
||||||
|
// gas
|
||||||
|
0x7530,
|
||||||
|
// address
|
||||||
|
sload(reputation.slot),
|
||||||
|
// argsOffset
|
||||||
|
add(encodedParams, 0x20),
|
||||||
|
// argsSize
|
||||||
|
mload(encodedParams),
|
||||||
|
// retOffset
|
||||||
|
0x00,
|
||||||
|
// retSize
|
||||||
|
0x20
|
||||||
|
)
|
||||||
|
returnSize := returndatasize()
|
||||||
|
returnValue := mload(0x00)
|
||||||
|
_spendLimit := returnValue
|
||||||
|
// reverts if call does not succeed.
|
||||||
|
if iszero(success) {
|
||||||
|
mstore(0x00, 0xe10bf1cc)
|
||||||
|
revert(0x1c, 0x04)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _castToUint(
|
||||||
|
uint96 _amount,
|
||||||
|
uint160 _pixTarget,
|
||||||
|
bool _valid
|
||||||
|
)
|
||||||
|
private
|
||||||
|
pure
|
||||||
|
returns (
|
||||||
|
uint256 _amountCasted,
|
||||||
|
uint256 _pixTargetCasted,
|
||||||
|
uint256 _validCasted
|
||||||
|
)
|
||||||
|
{
|
||||||
|
assembly {
|
||||||
|
_amountCasted := _amount
|
||||||
|
_pixTargetCasted := _pixTarget
|
||||||
|
_validCasted := _valid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function _decBal(
|
function _decBal(
|
||||||
uint256 _bal,
|
uint256 _bal,
|
||||||
uint256 _amount,
|
uint256 _amount,
|
||||||
@@ -420,7 +691,7 @@ contract P2PIX is BaseUtils {
|
|||||||
iszero(
|
iszero(
|
||||||
or(
|
or(
|
||||||
iszero(_bal),
|
iszero(_bal),
|
||||||
gt(sub(_bal, _amount), _bal)
|
lt(sub(_bal, _amount), 0x0)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
@@ -431,7 +702,7 @@ contract P2PIX is BaseUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// we can directly dec from packed uint entry value
|
// we can directly dec from packed uint entry value
|
||||||
_decSellerBalance(_k,_t, _amount);
|
sellerBalance[_k][_t] -= _amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBalance(address seller, ERC20 token)
|
function getBalance(address seller, ERC20 token)
|
||||||
@@ -439,18 +710,23 @@ contract P2PIX is BaseUtils {
|
|||||||
view
|
view
|
||||||
returns (uint256 bal)
|
returns (uint256 bal)
|
||||||
{
|
{
|
||||||
|
// bal =
|
||||||
|
// sellerBalance[_castAddrToKey(seller)][token] &
|
||||||
|
// BITMASK_SB_ENTRY;
|
||||||
assembly {
|
assembly {
|
||||||
for {
|
for {
|
||||||
/* */
|
/* */
|
||||||
} iszero(returndatasize()) {
|
} iszero(0x0) {
|
||||||
/* */
|
/* */
|
||||||
} {
|
} {
|
||||||
mstore(0x20, token)
|
mstore(0x00, shl(0xC, seller))
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
mstore(0x20, sellerBalance.slot)
|
||||||
mstore(0x00, seller)
|
let sbkslot := keccak256(0x00, 0x40)
|
||||||
|
mstore(0x00, token)
|
||||||
|
mstore(0x20, sbkslot)
|
||||||
bal := and(
|
bal := and(
|
||||||
BITMASK_SB_ENTRY,
|
BITMASK_SB_ENTRY,
|
||||||
sload(add(keccak256(0x0c, 0x34), 0x01))
|
sload(keccak256(0x00, 0x40))
|
||||||
)
|
)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@@ -462,20 +738,26 @@ contract P2PIX is BaseUtils {
|
|||||||
view
|
view
|
||||||
returns (bool valid)
|
returns (bool valid)
|
||||||
{
|
{
|
||||||
|
// uint256 b = sellerBalance[
|
||||||
|
// _castAddrToKey(seller)
|
||||||
|
// ][token];
|
||||||
|
// ] >> BITPOS_VALID) & BITMASK_SB_ENTRY;
|
||||||
assembly {
|
assembly {
|
||||||
for {
|
for {
|
||||||
/* */
|
/* */
|
||||||
} iszero(returndatasize()) {
|
} iszero(0x0) {
|
||||||
/* */
|
/* */
|
||||||
} {
|
} {
|
||||||
mstore(0x20, token)
|
mstore(0x00, shl(0xC, seller))
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
mstore(0x20, sellerBalance.slot)
|
||||||
mstore(0x00, seller)
|
let sbkslot := keccak256(0x00, 0x40)
|
||||||
|
mstore(0x00, token)
|
||||||
|
mstore(0x20, sbkslot)
|
||||||
valid := and(
|
valid := and(
|
||||||
BITMASK_SB_ENTRY,
|
BITMASK_SB_ENTRY,
|
||||||
shr(
|
shr(
|
||||||
BITPOS_VALID,
|
BITPOS_VALID,
|
||||||
sload(add(keccak256(0x0c, 0x34), 0x01))
|
sload(keccak256(0x00, 0x40))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
break
|
break
|
||||||
@@ -486,28 +768,32 @@ contract P2PIX is BaseUtils {
|
|||||||
function getPixTarget(address seller, ERC20 token)
|
function getPixTarget(address seller, ERC20 token)
|
||||||
public
|
public
|
||||||
view
|
view
|
||||||
returns (bytes32 pixTarget)
|
returns (uint160 pixTarget)
|
||||||
{
|
{
|
||||||
|
// pixTarget = uint160(
|
||||||
|
// sellerBalance[_castAddrToKey(seller)][token] >>
|
||||||
|
// BITPOS_PIXTARGET
|
||||||
|
// );
|
||||||
assembly {
|
assembly {
|
||||||
for {
|
for {
|
||||||
/* */
|
/* */
|
||||||
} iszero(returndatasize()) {
|
} iszero(0) {
|
||||||
/* */
|
/* */
|
||||||
} {
|
} {
|
||||||
mstore(0x20, token)
|
mstore(0, shl(12, seller))
|
||||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
mstore(32, sellerBalance.slot)
|
||||||
mstore(0x00, seller)
|
let sbkslot := keccak256(0, 64)
|
||||||
pixTarget := sload(keccak256(0x0c, 0x34))
|
mstore(0, token)
|
||||||
|
mstore(32, sbkslot)
|
||||||
|
pixTarget := shr(
|
||||||
|
BITPOS_PIXTARGET,
|
||||||
|
sload(keccak256(0, 64))
|
||||||
|
)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPixTargetString(address seller, ERC20 token) public view returns (string memory pixTarget) {
|
|
||||||
bytes32 _pixEnc = getPixTarget(seller, token);
|
|
||||||
pixTarget = string(abi.encodePacked(_pixEnc));
|
|
||||||
}
|
|
||||||
|
|
||||||
function getBalances(
|
function getBalances(
|
||||||
address[] memory sellers,
|
address[] memory sellers,
|
||||||
ERC20 token
|
ERC20 token
|
||||||
@@ -574,4 +860,29 @@ contract P2PIX is BaseUtils {
|
|||||||
}
|
}
|
||||||
return (sortedIDs, status);
|
return (sortedIDs, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @notice Public method that handles `address`
|
||||||
|
/// to `uint256` safe type casting.
|
||||||
|
/// @dev Function sighash: 0x4b2ae980.
|
||||||
|
function _castAddrToKey(address _addr)
|
||||||
|
public
|
||||||
|
pure
|
||||||
|
returns (uint256 _key)
|
||||||
|
{
|
||||||
|
// _key = uint256(uint160(address(_addr))) << 12;
|
||||||
|
assembly {
|
||||||
|
_key := shl(12, _addr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _castKeyToAddr(uint256 _key)
|
||||||
|
public
|
||||||
|
pure
|
||||||
|
returns (address _addr)
|
||||||
|
{
|
||||||
|
// _addr = address(uint160(uint256(_key >> 12)));
|
||||||
|
assembly {
|
||||||
|
_addr := shr(12, _key)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { config as dotenvConfig } from "dotenv";
|
|||||||
import "hardhat-tracer";
|
import "hardhat-tracer";
|
||||||
import { HardhatUserConfig } from "hardhat/config";
|
import { HardhatUserConfig } from "hardhat/config";
|
||||||
import { NetworkUserConfig } from "hardhat/types";
|
import { NetworkUserConfig } from "hardhat/types";
|
||||||
import "hardhat-contract-sizer";
|
|
||||||
import { resolve } from "path";
|
import { resolve } from "path";
|
||||||
|
|
||||||
dotenvConfig({ path: resolve(__dirname, "./.env") });
|
dotenvConfig({ path: resolve(__dirname, "./.env") });
|
||||||
@@ -75,6 +74,17 @@ const config: HardhatUserConfig = {
|
|||||||
goerli: process.env.ETHERSCAN_API_KEY || "",
|
goerli: process.env.ETHERSCAN_API_KEY || "",
|
||||||
polygonMumbai: process.env.POLYGONSCAN_API_KEY || "",
|
polygonMumbai: process.env.POLYGONSCAN_API_KEY || "",
|
||||||
},
|
},
|
||||||
|
// customChains: [
|
||||||
|
// {
|
||||||
|
// // network: {INSERT_NAME},
|
||||||
|
// // chainId: {INSERT_ID},
|
||||||
|
// // urls: {
|
||||||
|
// // apiURL:
|
||||||
|
// // "{INSERT_URL}",
|
||||||
|
// // browserURL: "{INSERT_URL}",
|
||||||
|
// // },
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
},
|
},
|
||||||
gasReporter: {
|
gasReporter: {
|
||||||
enabled: !!(
|
enabled: !!(
|
||||||
@@ -111,24 +121,16 @@ const config: HardhatUserConfig = {
|
|||||||
tests: "./test",
|
tests: "./test",
|
||||||
},
|
},
|
||||||
solidity: {
|
solidity: {
|
||||||
version: "0.8.19",
|
version: "0.8.9",
|
||||||
settings: {
|
settings: {
|
||||||
viaIR: true,
|
// viaIR: true,
|
||||||
evmVersion: "paris",
|
metadata: {
|
||||||
|
bytecodeHash: "none",
|
||||||
|
},
|
||||||
optimizer: {
|
optimizer: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
// max val = 4_294_967_295
|
||||||
runs: 20_000,
|
runs: 20_000,
|
||||||
details: {
|
|
||||||
deduplicate: true,
|
|
||||||
cse: true,
|
|
||||||
constantOptimizer: true,
|
|
||||||
peephole: true,
|
|
||||||
jumpdestRemover: true,
|
|
||||||
yul: true,
|
|
||||||
yulDetails: {
|
|
||||||
stackAllocation: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -63,7 +63,6 @@
|
|||||||
"ethers": "^5.7.2",
|
"ethers": "^5.7.2",
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"hardhat": "^2.12.2",
|
"hardhat": "^2.12.2",
|
||||||
"hardhat-contract-sizer": "^2.8.0",
|
|
||||||
"hardhat-gas-reporter": "^1.0.9",
|
"hardhat-gas-reporter": "^1.0.9",
|
||||||
"hardhat-tracer": "beta",
|
"hardhat-tracer": "beta",
|
||||||
"husky": "^8.0.1",
|
"husky": "^8.0.1",
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
import "@nomiclabs/hardhat-ethers";
|
|
||||||
import "@nomiclabs/hardhat-etherscan";
|
|
||||||
import * as fs from "fs";
|
|
||||||
import { ethers, network } from "hardhat";
|
|
||||||
import { Deploys } from "../test/utils/fixtures";
|
|
||||||
import { P2PIX__factory } from "../src/types";
|
|
||||||
|
|
||||||
let deploysJson: Deploys;
|
|
||||||
|
|
||||||
const main = async () => {
|
|
||||||
try {
|
|
||||||
const data = fs.readFileSync(
|
|
||||||
`./deploys/${network.name}.json`,
|
|
||||||
{ encoding: "utf-8" },
|
|
||||||
);
|
|
||||||
deploysJson = JSON.parse(data);
|
|
||||||
} catch (err) {
|
|
||||||
console.log("Error loading Master address: ", err);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
const [deployer] = await ethers.getSigners();
|
|
||||||
console.log(`Signing transactions with ${deployer.address}`);
|
|
||||||
|
|
||||||
const iface = new ethers.utils.Interface(P2PIX__factory.abi);
|
|
||||||
const calldata = iface.encodeFunctionData("setDefaultLockBlocks", ["10000"]);
|
|
||||||
|
|
||||||
const tx = await deployer.sendTransaction({to:deploysJson.p2pix, data: calldata});
|
|
||||||
const done = await tx.wait();
|
|
||||||
console.log(done.transactionHash);
|
|
||||||
};
|
|
||||||
|
|
||||||
main()
|
|
||||||
.then(() => process.exit(0))
|
|
||||||
.catch(error => {
|
|
||||||
console.log(error);
|
|
||||||
process.exit(1);
|
|
||||||
});
|
|
||||||
@@ -5,7 +5,6 @@ import type {
|
|||||||
BaseContract,
|
BaseContract,
|
||||||
BigNumber,
|
BigNumber,
|
||||||
BigNumberish,
|
BigNumberish,
|
||||||
BytesLike,
|
|
||||||
Signer,
|
Signer,
|
||||||
utils,
|
utils,
|
||||||
} from "ethers";
|
} from "ethers";
|
||||||
@@ -17,7 +16,7 @@ import type {
|
|||||||
TypedListener,
|
TypedListener,
|
||||||
OnEvent,
|
OnEvent,
|
||||||
PromiseOrValue,
|
PromiseOrValue,
|
||||||
} from "../common";
|
} from "./common";
|
||||||
|
|
||||||
export interface EventAndErrorsInterface extends utils.Interface {
|
export interface EventAndErrorsInterface extends utils.Interface {
|
||||||
functions: {};
|
functions: {};
|
||||||
@@ -33,7 +32,6 @@ export interface EventAndErrorsInterface extends utils.Interface {
|
|||||||
"LockReturned(address,uint256)": EventFragment;
|
"LockReturned(address,uint256)": EventFragment;
|
||||||
"ReputationUpdated(address)": EventFragment;
|
"ReputationUpdated(address)": EventFragment;
|
||||||
"RootUpdated(address,bytes32)": EventFragment;
|
"RootUpdated(address,bytes32)": EventFragment;
|
||||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
|
||||||
"ValidSet(address,address,bool)": EventFragment;
|
"ValidSet(address,address,bool)": EventFragment;
|
||||||
"ValidSignersUpdated(address[])": EventFragment;
|
"ValidSignersUpdated(address[])": EventFragment;
|
||||||
};
|
};
|
||||||
@@ -48,7 +46,6 @@ export interface EventAndErrorsInterface extends utils.Interface {
|
|||||||
getEvent(nameOrSignatureOrTopic: "LockReturned"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "LockReturned"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
||||||
}
|
}
|
||||||
@@ -170,18 +167,6 @@ export type RootUpdatedEvent = TypedEvent<
|
|||||||
|
|
||||||
export type RootUpdatedEventFilter = TypedEventFilter<RootUpdatedEvent>;
|
export type RootUpdatedEventFilter = TypedEventFilter<RootUpdatedEvent>;
|
||||||
|
|
||||||
export interface TrustedForwarderUpdatedEventObject {
|
|
||||||
forwarder: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type TrustedForwarderUpdatedEvent = TypedEvent<
|
|
||||||
[string, boolean],
|
|
||||||
TrustedForwarderUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type TrustedForwarderUpdatedEventFilter =
|
|
||||||
TypedEventFilter<TrustedForwarderUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface ValidSetEventObject {
|
export interface ValidSetEventObject {
|
||||||
seller: string;
|
seller: string;
|
||||||
token: string;
|
token: string;
|
||||||
@@ -315,22 +300,10 @@ export interface EventAndErrors extends BaseContract {
|
|||||||
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
||||||
|
|
||||||
"RootUpdated(address,bytes32)"(
|
"RootUpdated(address,bytes32)"(
|
||||||
seller?: PromiseOrValue<string> | null,
|
seller?: null,
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
merkleRoot?: null
|
||||||
): RootUpdatedEventFilter;
|
): RootUpdatedEventFilter;
|
||||||
RootUpdated(
|
RootUpdated(seller?: null, merkleRoot?: null): RootUpdatedEventFilter;
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
|
||||||
): RootUpdatedEventFilter;
|
|
||||||
|
|
||||||
"TrustedForwarderUpdated(address,bool)"(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
TrustedForwarderUpdated(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ValidSet(address,address,bool)"(
|
"ValidSet(address,address,bool)"(
|
||||||
seller?: PromiseOrValue<string> | null,
|
seller?: PromiseOrValue<string> | null,
|
||||||
@@ -7,11 +7,17 @@ import type {
|
|||||||
BigNumberish,
|
BigNumberish,
|
||||||
BytesLike,
|
BytesLike,
|
||||||
CallOverrides,
|
CallOverrides,
|
||||||
|
ContractTransaction,
|
||||||
|
Overrides,
|
||||||
PopulatedTransaction,
|
PopulatedTransaction,
|
||||||
Signer,
|
Signer,
|
||||||
utils,
|
utils,
|
||||||
} from "ethers";
|
} from "ethers";
|
||||||
import type { FunctionFragment, Result } from "@ethersproject/abi";
|
import type {
|
||||||
|
FunctionFragment,
|
||||||
|
Result,
|
||||||
|
EventFragment,
|
||||||
|
} from "@ethersproject/abi";
|
||||||
import type { Listener, Provider } from "@ethersproject/providers";
|
import type { Listener, Provider } from "@ethersproject/providers";
|
||||||
import type {
|
import type {
|
||||||
TypedEventFilter,
|
TypedEventFilter,
|
||||||
@@ -26,10 +32,17 @@ export interface ReputationInterface extends utils.Interface {
|
|||||||
"limiter(uint256)": FunctionFragment;
|
"limiter(uint256)": FunctionFragment;
|
||||||
"magicValue()": FunctionFragment;
|
"magicValue()": FunctionFragment;
|
||||||
"maxLimit()": FunctionFragment;
|
"maxLimit()": FunctionFragment;
|
||||||
|
"owner()": FunctionFragment;
|
||||||
|
"setOwner(address)": FunctionFragment;
|
||||||
};
|
};
|
||||||
|
|
||||||
getFunction(
|
getFunction(
|
||||||
nameOrSignatureOrTopic: "limiter" | "magicValue" | "maxLimit"
|
nameOrSignatureOrTopic:
|
||||||
|
| "limiter"
|
||||||
|
| "magicValue"
|
||||||
|
| "maxLimit"
|
||||||
|
| "owner"
|
||||||
|
| "setOwner"
|
||||||
): FunctionFragment;
|
): FunctionFragment;
|
||||||
|
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
@@ -41,14 +54,36 @@ export interface ReputationInterface extends utils.Interface {
|
|||||||
values?: undefined
|
values?: undefined
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(functionFragment: "maxLimit", values?: undefined): string;
|
encodeFunctionData(functionFragment: "maxLimit", values?: undefined): string;
|
||||||
|
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
||||||
|
encodeFunctionData(
|
||||||
|
functionFragment: "setOwner",
|
||||||
|
values: [PromiseOrValue<string>]
|
||||||
|
): string;
|
||||||
|
|
||||||
decodeFunctionResult(functionFragment: "limiter", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: "limiter", data: BytesLike): Result;
|
||||||
decodeFunctionResult(functionFragment: "magicValue", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: "magicValue", data: BytesLike): Result;
|
||||||
decodeFunctionResult(functionFragment: "maxLimit", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: "maxLimit", data: BytesLike): Result;
|
||||||
|
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
||||||
|
decodeFunctionResult(functionFragment: "setOwner", data: BytesLike): Result;
|
||||||
|
|
||||||
events: {};
|
events: {
|
||||||
|
"OwnerUpdated(address,address)": EventFragment;
|
||||||
|
};
|
||||||
|
|
||||||
|
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface OwnerUpdatedEventObject {
|
||||||
|
user: string;
|
||||||
|
newOwner: string;
|
||||||
|
}
|
||||||
|
export type OwnerUpdatedEvent = TypedEvent<
|
||||||
|
[string, string],
|
||||||
|
OwnerUpdatedEventObject
|
||||||
|
>;
|
||||||
|
|
||||||
|
export type OwnerUpdatedEventFilter = TypedEventFilter<OwnerUpdatedEvent>;
|
||||||
|
|
||||||
export interface Reputation extends BaseContract {
|
export interface Reputation extends BaseContract {
|
||||||
connect(signerOrProvider: Signer | Provider | string): this;
|
connect(signerOrProvider: Signer | Provider | string): this;
|
||||||
attach(addressOrName: string): this;
|
attach(addressOrName: string): this;
|
||||||
@@ -84,6 +119,13 @@ export interface Reputation extends BaseContract {
|
|||||||
magicValue(overrides?: CallOverrides): Promise<[BigNumber]>;
|
magicValue(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||||
|
|
||||||
maxLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
|
maxLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||||
|
|
||||||
|
owner(overrides?: CallOverrides): Promise<[string]>;
|
||||||
|
|
||||||
|
setOwner(
|
||||||
|
newOwner: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<ContractTransaction>;
|
||||||
};
|
};
|
||||||
|
|
||||||
limiter(
|
limiter(
|
||||||
@@ -95,6 +137,13 @@ export interface Reputation extends BaseContract {
|
|||||||
|
|
||||||
maxLimit(overrides?: CallOverrides): Promise<BigNumber>;
|
maxLimit(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
|
owner(overrides?: CallOverrides): Promise<string>;
|
||||||
|
|
||||||
|
setOwner(
|
||||||
|
newOwner: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
callStatic: {
|
callStatic: {
|
||||||
limiter(
|
limiter(
|
||||||
_userCredit: PromiseOrValue<BigNumberish>,
|
_userCredit: PromiseOrValue<BigNumberish>,
|
||||||
@@ -104,9 +153,25 @@ export interface Reputation extends BaseContract {
|
|||||||
magicValue(overrides?: CallOverrides): Promise<BigNumber>;
|
magicValue(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
maxLimit(overrides?: CallOverrides): Promise<BigNumber>;
|
maxLimit(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
|
owner(overrides?: CallOverrides): Promise<string>;
|
||||||
|
|
||||||
|
setOwner(
|
||||||
|
newOwner: PromiseOrValue<string>,
|
||||||
|
overrides?: CallOverrides
|
||||||
|
): Promise<void>;
|
||||||
};
|
};
|
||||||
|
|
||||||
filters: {};
|
filters: {
|
||||||
|
"OwnerUpdated(address,address)"(
|
||||||
|
user?: PromiseOrValue<string> | null,
|
||||||
|
newOwner?: PromiseOrValue<string> | null
|
||||||
|
): OwnerUpdatedEventFilter;
|
||||||
|
OwnerUpdated(
|
||||||
|
user?: PromiseOrValue<string> | null,
|
||||||
|
newOwner?: PromiseOrValue<string> | null
|
||||||
|
): OwnerUpdatedEventFilter;
|
||||||
|
};
|
||||||
|
|
||||||
estimateGas: {
|
estimateGas: {
|
||||||
limiter(
|
limiter(
|
||||||
@@ -117,6 +182,13 @@ export interface Reputation extends BaseContract {
|
|||||||
magicValue(overrides?: CallOverrides): Promise<BigNumber>;
|
magicValue(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
maxLimit(overrides?: CallOverrides): Promise<BigNumber>;
|
maxLimit(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
|
owner(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
|
setOwner(
|
||||||
|
newOwner: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<BigNumber>;
|
||||||
};
|
};
|
||||||
|
|
||||||
populateTransaction: {
|
populateTransaction: {
|
||||||
@@ -128,5 +200,12 @@ export interface Reputation extends BaseContract {
|
|||||||
magicValue(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
magicValue(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
maxLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
maxLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
|
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
|
setOwner(
|
||||||
|
newOwner: PromiseOrValue<string>,
|
||||||
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
|
): Promise<PopulatedTransaction>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,965 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
import type {
|
|
||||||
BaseContract,
|
|
||||||
BigNumber,
|
|
||||||
BigNumberish,
|
|
||||||
BytesLike,
|
|
||||||
CallOverrides,
|
|
||||||
ContractTransaction,
|
|
||||||
Overrides,
|
|
||||||
PopulatedTransaction,
|
|
||||||
Signer,
|
|
||||||
utils,
|
|
||||||
} from "ethers";
|
|
||||||
import type {
|
|
||||||
FunctionFragment,
|
|
||||||
Result,
|
|
||||||
EventFragment,
|
|
||||||
} from "@ethersproject/abi";
|
|
||||||
import type { Listener, Provider } from "@ethersproject/providers";
|
|
||||||
import type {
|
|
||||||
TypedEventFilter,
|
|
||||||
TypedEvent,
|
|
||||||
TypedListener,
|
|
||||||
OnEvent,
|
|
||||||
PromiseOrValue,
|
|
||||||
} from "../common";
|
|
||||||
|
|
||||||
export interface BaseUtilsInterface extends utils.Interface {
|
|
||||||
functions: {
|
|
||||||
"_castAddrToKey(address)": FunctionFragment;
|
|
||||||
"_castKeyToAddr(uint256)": FunctionFragment;
|
|
||||||
"allowedERC20s(address)": FunctionFragment;
|
|
||||||
"defaultLockBlocks()": FunctionFragment;
|
|
||||||
"getStr(string)": FunctionFragment;
|
|
||||||
"isTrustedForwarder(address)": FunctionFragment;
|
|
||||||
"owner()": FunctionFragment;
|
|
||||||
"reputation()": FunctionFragment;
|
|
||||||
"sellerAllowList(uint256)": FunctionFragment;
|
|
||||||
"setDefaultLockBlocks(uint256)": FunctionFragment;
|
|
||||||
"setOwner(address)": FunctionFragment;
|
|
||||||
"setReputation(address)": FunctionFragment;
|
|
||||||
"setTrustedFowarders(address[],bool[])": FunctionFragment;
|
|
||||||
"setValidSigners(address[])": FunctionFragment;
|
|
||||||
"tokenSettings(address[],bool[])": FunctionFragment;
|
|
||||||
"usedTransactions(bytes32)": FunctionFragment;
|
|
||||||
"validBacenSigners(uint256)": FunctionFragment;
|
|
||||||
"withdrawBalance()": FunctionFragment;
|
|
||||||
};
|
|
||||||
|
|
||||||
getFunction(
|
|
||||||
nameOrSignatureOrTopic:
|
|
||||||
| "_castAddrToKey"
|
|
||||||
| "_castKeyToAddr"
|
|
||||||
| "allowedERC20s"
|
|
||||||
| "defaultLockBlocks"
|
|
||||||
| "getStr"
|
|
||||||
| "isTrustedForwarder"
|
|
||||||
| "owner"
|
|
||||||
| "reputation"
|
|
||||||
| "sellerAllowList"
|
|
||||||
| "setDefaultLockBlocks"
|
|
||||||
| "setOwner"
|
|
||||||
| "setReputation"
|
|
||||||
| "setTrustedFowarders"
|
|
||||||
| "setValidSigners"
|
|
||||||
| "tokenSettings"
|
|
||||||
| "usedTransactions"
|
|
||||||
| "validBacenSigners"
|
|
||||||
| "withdrawBalance"
|
|
||||||
): FunctionFragment;
|
|
||||||
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "_castAddrToKey",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "_castKeyToAddr",
|
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "allowedERC20s",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "defaultLockBlocks",
|
|
||||||
values?: undefined
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "getStr",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "reputation",
|
|
||||||
values?: undefined
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "sellerAllowList",
|
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setDefaultLockBlocks",
|
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setOwner",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setReputation",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setTrustedFowarders",
|
|
||||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setValidSigners",
|
|
||||||
values: [PromiseOrValue<string>[]]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "tokenSettings",
|
|
||||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "usedTransactions",
|
|
||||||
values: [PromiseOrValue<BytesLike>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "validBacenSigners",
|
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "withdrawBalance",
|
|
||||||
values?: undefined
|
|
||||||
): string;
|
|
||||||
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "_castAddrToKey",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "_castKeyToAddr",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "allowedERC20s",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "defaultLockBlocks",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "getStr", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "reputation", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "sellerAllowList",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setDefaultLockBlocks",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "setOwner", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setReputation",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setTrustedFowarders",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setValidSigners",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "tokenSettings",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "usedTransactions",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "validBacenSigners",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "withdrawBalance",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
|
|
||||||
events: {
|
|
||||||
"AllowedERC20Updated(address,bool)": EventFragment;
|
|
||||||
"DepositAdded(address,address,uint256)": EventFragment;
|
|
||||||
"DepositWithdrawn(address,address,uint256)": EventFragment;
|
|
||||||
"FundsWithdrawn(address,uint256)": EventFragment;
|
|
||||||
"LockAdded(address,uint256,uint256,uint256)": EventFragment;
|
|
||||||
"LockBlocksUpdated(uint256)": EventFragment;
|
|
||||||
"LockReleased(address,uint256,uint256)": EventFragment;
|
|
||||||
"LockReturned(address,uint256)": EventFragment;
|
|
||||||
"OwnerUpdated(address,address)": EventFragment;
|
|
||||||
"ReputationUpdated(address)": EventFragment;
|
|
||||||
"RootUpdated(address,bytes32)": EventFragment;
|
|
||||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
|
||||||
"ValidSet(address,address,bool)": EventFragment;
|
|
||||||
"ValidSignersUpdated(address[])": EventFragment;
|
|
||||||
};
|
|
||||||
|
|
||||||
getEvent(nameOrSignatureOrTopic: "AllowedERC20Updated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "DepositAdded"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "DepositWithdrawn"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "FundsWithdrawn"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockAdded"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockBlocksUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockReleased"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockReturned"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface AllowedERC20UpdatedEventObject {
|
|
||||||
token: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type AllowedERC20UpdatedEvent = TypedEvent<
|
|
||||||
[string, boolean],
|
|
||||||
AllowedERC20UpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type AllowedERC20UpdatedEventFilter =
|
|
||||||
TypedEventFilter<AllowedERC20UpdatedEvent>;
|
|
||||||
|
|
||||||
export interface DepositAddedEventObject {
|
|
||||||
seller: string;
|
|
||||||
token: string;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type DepositAddedEvent = TypedEvent<
|
|
||||||
[string, string, BigNumber],
|
|
||||||
DepositAddedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type DepositAddedEventFilter = TypedEventFilter<DepositAddedEvent>;
|
|
||||||
|
|
||||||
export interface DepositWithdrawnEventObject {
|
|
||||||
seller: string;
|
|
||||||
token: string;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type DepositWithdrawnEvent = TypedEvent<
|
|
||||||
[string, string, BigNumber],
|
|
||||||
DepositWithdrawnEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type DepositWithdrawnEventFilter =
|
|
||||||
TypedEventFilter<DepositWithdrawnEvent>;
|
|
||||||
|
|
||||||
export interface FundsWithdrawnEventObject {
|
|
||||||
owner: string;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type FundsWithdrawnEvent = TypedEvent<
|
|
||||||
[string, BigNumber],
|
|
||||||
FundsWithdrawnEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type FundsWithdrawnEventFilter = TypedEventFilter<FundsWithdrawnEvent>;
|
|
||||||
|
|
||||||
export interface LockAddedEventObject {
|
|
||||||
buyer: string;
|
|
||||||
lockID: BigNumber;
|
|
||||||
seller: BigNumber;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockAddedEvent = TypedEvent<
|
|
||||||
[string, BigNumber, BigNumber, BigNumber],
|
|
||||||
LockAddedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockAddedEventFilter = TypedEventFilter<LockAddedEvent>;
|
|
||||||
|
|
||||||
export interface LockBlocksUpdatedEventObject {
|
|
||||||
blocks: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockBlocksUpdatedEvent = TypedEvent<
|
|
||||||
[BigNumber],
|
|
||||||
LockBlocksUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockBlocksUpdatedEventFilter =
|
|
||||||
TypedEventFilter<LockBlocksUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface LockReleasedEventObject {
|
|
||||||
buyer: string;
|
|
||||||
lockId: BigNumber;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockReleasedEvent = TypedEvent<
|
|
||||||
[string, BigNumber, BigNumber],
|
|
||||||
LockReleasedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockReleasedEventFilter = TypedEventFilter<LockReleasedEvent>;
|
|
||||||
|
|
||||||
export interface LockReturnedEventObject {
|
|
||||||
buyer: string;
|
|
||||||
lockId: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockReturnedEvent = TypedEvent<
|
|
||||||
[string, BigNumber],
|
|
||||||
LockReturnedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockReturnedEventFilter = TypedEventFilter<LockReturnedEvent>;
|
|
||||||
|
|
||||||
export interface OwnerUpdatedEventObject {
|
|
||||||
user: string;
|
|
||||||
newOwner: string;
|
|
||||||
}
|
|
||||||
export type OwnerUpdatedEvent = TypedEvent<
|
|
||||||
[string, string],
|
|
||||||
OwnerUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type OwnerUpdatedEventFilter = TypedEventFilter<OwnerUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface ReputationUpdatedEventObject {
|
|
||||||
reputation: string;
|
|
||||||
}
|
|
||||||
export type ReputationUpdatedEvent = TypedEvent<
|
|
||||||
[string],
|
|
||||||
ReputationUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type ReputationUpdatedEventFilter =
|
|
||||||
TypedEventFilter<ReputationUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface RootUpdatedEventObject {
|
|
||||||
seller: string;
|
|
||||||
merkleRoot: string;
|
|
||||||
}
|
|
||||||
export type RootUpdatedEvent = TypedEvent<
|
|
||||||
[string, string],
|
|
||||||
RootUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type RootUpdatedEventFilter = TypedEventFilter<RootUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface TrustedForwarderUpdatedEventObject {
|
|
||||||
forwarder: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type TrustedForwarderUpdatedEvent = TypedEvent<
|
|
||||||
[string, boolean],
|
|
||||||
TrustedForwarderUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type TrustedForwarderUpdatedEventFilter =
|
|
||||||
TypedEventFilter<TrustedForwarderUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface ValidSetEventObject {
|
|
||||||
seller: string;
|
|
||||||
token: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type ValidSetEvent = TypedEvent<
|
|
||||||
[string, string, boolean],
|
|
||||||
ValidSetEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type ValidSetEventFilter = TypedEventFilter<ValidSetEvent>;
|
|
||||||
|
|
||||||
export interface ValidSignersUpdatedEventObject {
|
|
||||||
signers: string[];
|
|
||||||
}
|
|
||||||
export type ValidSignersUpdatedEvent = TypedEvent<
|
|
||||||
[string[]],
|
|
||||||
ValidSignersUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type ValidSignersUpdatedEventFilter =
|
|
||||||
TypedEventFilter<ValidSignersUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface BaseUtils extends BaseContract {
|
|
||||||
connect(signerOrProvider: Signer | Provider | string): this;
|
|
||||||
attach(addressOrName: string): this;
|
|
||||||
deployed(): Promise<this>;
|
|
||||||
|
|
||||||
interface: BaseUtilsInterface;
|
|
||||||
|
|
||||||
queryFilter<TEvent extends TypedEvent>(
|
|
||||||
event: TypedEventFilter<TEvent>,
|
|
||||||
fromBlockOrBlockhash?: string | number | undefined,
|
|
||||||
toBlock?: string | number | undefined
|
|
||||||
): Promise<Array<TEvent>>;
|
|
||||||
|
|
||||||
listeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter?: TypedEventFilter<TEvent>
|
|
||||||
): Array<TypedListener<TEvent>>;
|
|
||||||
listeners(eventName?: string): Array<Listener>;
|
|
||||||
removeAllListeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter: TypedEventFilter<TEvent>
|
|
||||||
): this;
|
|
||||||
removeAllListeners(eventName?: string): this;
|
|
||||||
off: OnEvent<this>;
|
|
||||||
on: OnEvent<this>;
|
|
||||||
once: OnEvent<this>;
|
|
||||||
removeListener: OnEvent<this>;
|
|
||||||
|
|
||||||
functions: {
|
|
||||||
_castAddrToKey(
|
|
||||||
_addr: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[BigNumber] & { _key: BigNumber }>;
|
|
||||||
|
|
||||||
_castKeyToAddr(
|
|
||||||
_key: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[string] & { _addr: string }>;
|
|
||||||
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean] & { state: boolean }>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[string] & { strEnc: string }>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean]>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<[string]>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<[string]>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[string] & { root: string }>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
usedTransactions(
|
|
||||||
message: PromiseOrValue<BytesLike>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean] & { used: boolean }>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean] & { valid: boolean }>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
};
|
|
||||||
|
|
||||||
_castAddrToKey(
|
|
||||||
_addr: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
_castKeyToAddr(
|
|
||||||
_key: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
usedTransactions(
|
|
||||||
message: PromiseOrValue<BytesLike>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
callStatic: {
|
|
||||||
_castAddrToKey(
|
|
||||||
_addr: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
_castKeyToAddr(
|
|
||||||
_key: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
usedTransactions(
|
|
||||||
message: PromiseOrValue<BytesLike>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
withdrawBalance(overrides?: CallOverrides): Promise<void>;
|
|
||||||
};
|
|
||||||
|
|
||||||
filters: {
|
|
||||||
"AllowedERC20Updated(address,bool)"(
|
|
||||||
token?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): AllowedERC20UpdatedEventFilter;
|
|
||||||
AllowedERC20Updated(
|
|
||||||
token?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): AllowedERC20UpdatedEventFilter;
|
|
||||||
|
|
||||||
"DepositAdded(address,address,uint256)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositAddedEventFilter;
|
|
||||||
DepositAdded(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositAddedEventFilter;
|
|
||||||
|
|
||||||
"DepositWithdrawn(address,address,uint256)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositWithdrawnEventFilter;
|
|
||||||
DepositWithdrawn(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositWithdrawnEventFilter;
|
|
||||||
|
|
||||||
"FundsWithdrawn(address,uint256)"(
|
|
||||||
owner?: null,
|
|
||||||
amount?: null
|
|
||||||
): FundsWithdrawnEventFilter;
|
|
||||||
FundsWithdrawn(owner?: null, amount?: null): FundsWithdrawnEventFilter;
|
|
||||||
|
|
||||||
"LockAdded(address,uint256,uint256,uint256)"(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockID?: PromiseOrValue<BigNumberish> | null,
|
|
||||||
seller?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockAddedEventFilter;
|
|
||||||
LockAdded(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockID?: PromiseOrValue<BigNumberish> | null,
|
|
||||||
seller?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockAddedEventFilter;
|
|
||||||
|
|
||||||
"LockBlocksUpdated(uint256)"(blocks?: null): LockBlocksUpdatedEventFilter;
|
|
||||||
LockBlocksUpdated(blocks?: null): LockBlocksUpdatedEventFilter;
|
|
||||||
|
|
||||||
"LockReleased(address,uint256,uint256)"(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockReleasedEventFilter;
|
|
||||||
LockReleased(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockReleasedEventFilter;
|
|
||||||
|
|
||||||
"LockReturned(address,uint256)"(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null
|
|
||||||
): LockReturnedEventFilter;
|
|
||||||
LockReturned(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null
|
|
||||||
): LockReturnedEventFilter;
|
|
||||||
|
|
||||||
"OwnerUpdated(address,address)"(
|
|
||||||
user?: PromiseOrValue<string> | null,
|
|
||||||
newOwner?: PromiseOrValue<string> | null
|
|
||||||
): OwnerUpdatedEventFilter;
|
|
||||||
OwnerUpdated(
|
|
||||||
user?: PromiseOrValue<string> | null,
|
|
||||||
newOwner?: PromiseOrValue<string> | null
|
|
||||||
): OwnerUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ReputationUpdated(address)"(
|
|
||||||
reputation?: null
|
|
||||||
): ReputationUpdatedEventFilter;
|
|
||||||
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
|
||||||
|
|
||||||
"RootUpdated(address,bytes32)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
|
||||||
): RootUpdatedEventFilter;
|
|
||||||
RootUpdated(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
|
||||||
): RootUpdatedEventFilter;
|
|
||||||
|
|
||||||
"TrustedForwarderUpdated(address,bool)"(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
TrustedForwarderUpdated(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ValidSet(address,address,bool)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
state?: null
|
|
||||||
): ValidSetEventFilter;
|
|
||||||
ValidSet(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
state?: null
|
|
||||||
): ValidSetEventFilter;
|
|
||||||
|
|
||||||
"ValidSignersUpdated(address[])"(
|
|
||||||
signers?: null
|
|
||||||
): ValidSignersUpdatedEventFilter;
|
|
||||||
ValidSignersUpdated(signers?: null): ValidSignersUpdatedEventFilter;
|
|
||||||
};
|
|
||||||
|
|
||||||
estimateGas: {
|
|
||||||
_castAddrToKey(
|
|
||||||
_addr: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
_castKeyToAddr(
|
|
||||||
_key: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
usedTransactions(
|
|
||||||
message: PromiseOrValue<BytesLike>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
};
|
|
||||||
|
|
||||||
populateTransaction: {
|
|
||||||
_castAddrToKey(
|
|
||||||
_addr: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
_castKeyToAddr(
|
|
||||||
_key: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
usedTransactions(
|
|
||||||
message: PromiseOrValue<BytesLike>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,828 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
import type {
|
|
||||||
BaseContract,
|
|
||||||
BigNumber,
|
|
||||||
BigNumberish,
|
|
||||||
BytesLike,
|
|
||||||
CallOverrides,
|
|
||||||
ContractTransaction,
|
|
||||||
Overrides,
|
|
||||||
PopulatedTransaction,
|
|
||||||
Signer,
|
|
||||||
utils,
|
|
||||||
} from "ethers";
|
|
||||||
import type {
|
|
||||||
FunctionFragment,
|
|
||||||
Result,
|
|
||||||
EventFragment,
|
|
||||||
} from "@ethersproject/abi";
|
|
||||||
import type { Listener, Provider } from "@ethersproject/providers";
|
|
||||||
import type {
|
|
||||||
TypedEventFilter,
|
|
||||||
TypedEvent,
|
|
||||||
TypedListener,
|
|
||||||
OnEvent,
|
|
||||||
PromiseOrValue,
|
|
||||||
} from "../common";
|
|
||||||
|
|
||||||
export interface OwnerSettingsInterface extends utils.Interface {
|
|
||||||
functions: {
|
|
||||||
"allowedERC20s(address)": FunctionFragment;
|
|
||||||
"defaultLockBlocks()": FunctionFragment;
|
|
||||||
"isTrustedForwarder(address)": FunctionFragment;
|
|
||||||
"owner()": FunctionFragment;
|
|
||||||
"reputation()": FunctionFragment;
|
|
||||||
"sellerAllowList(uint256)": FunctionFragment;
|
|
||||||
"setDefaultLockBlocks(uint256)": FunctionFragment;
|
|
||||||
"setOwner(address)": FunctionFragment;
|
|
||||||
"setReputation(address)": FunctionFragment;
|
|
||||||
"setTrustedFowarders(address[],bool[])": FunctionFragment;
|
|
||||||
"setValidSigners(address[])": FunctionFragment;
|
|
||||||
"tokenSettings(address[],bool[])": FunctionFragment;
|
|
||||||
"validBacenSigners(uint256)": FunctionFragment;
|
|
||||||
"withdrawBalance()": FunctionFragment;
|
|
||||||
};
|
|
||||||
|
|
||||||
getFunction(
|
|
||||||
nameOrSignatureOrTopic:
|
|
||||||
| "allowedERC20s"
|
|
||||||
| "defaultLockBlocks"
|
|
||||||
| "isTrustedForwarder"
|
|
||||||
| "owner"
|
|
||||||
| "reputation"
|
|
||||||
| "sellerAllowList"
|
|
||||||
| "setDefaultLockBlocks"
|
|
||||||
| "setOwner"
|
|
||||||
| "setReputation"
|
|
||||||
| "setTrustedFowarders"
|
|
||||||
| "setValidSigners"
|
|
||||||
| "tokenSettings"
|
|
||||||
| "validBacenSigners"
|
|
||||||
| "withdrawBalance"
|
|
||||||
): FunctionFragment;
|
|
||||||
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "allowedERC20s",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "defaultLockBlocks",
|
|
||||||
values?: undefined
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "reputation",
|
|
||||||
values?: undefined
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "sellerAllowList",
|
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setDefaultLockBlocks",
|
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setOwner",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setReputation",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setTrustedFowarders",
|
|
||||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setValidSigners",
|
|
||||||
values: [PromiseOrValue<string>[]]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "tokenSettings",
|
|
||||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "validBacenSigners",
|
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "withdrawBalance",
|
|
||||||
values?: undefined
|
|
||||||
): string;
|
|
||||||
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "allowedERC20s",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "defaultLockBlocks",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "reputation", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "sellerAllowList",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setDefaultLockBlocks",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "setOwner", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setReputation",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setTrustedFowarders",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setValidSigners",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "tokenSettings",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "validBacenSigners",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "withdrawBalance",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
|
|
||||||
events: {
|
|
||||||
"AllowedERC20Updated(address,bool)": EventFragment;
|
|
||||||
"DepositAdded(address,address,uint256)": EventFragment;
|
|
||||||
"DepositWithdrawn(address,address,uint256)": EventFragment;
|
|
||||||
"FundsWithdrawn(address,uint256)": EventFragment;
|
|
||||||
"LockAdded(address,uint256,uint256,uint256)": EventFragment;
|
|
||||||
"LockBlocksUpdated(uint256)": EventFragment;
|
|
||||||
"LockReleased(address,uint256,uint256)": EventFragment;
|
|
||||||
"LockReturned(address,uint256)": EventFragment;
|
|
||||||
"OwnerUpdated(address,address)": EventFragment;
|
|
||||||
"ReputationUpdated(address)": EventFragment;
|
|
||||||
"RootUpdated(address,bytes32)": EventFragment;
|
|
||||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
|
||||||
"ValidSet(address,address,bool)": EventFragment;
|
|
||||||
"ValidSignersUpdated(address[])": EventFragment;
|
|
||||||
};
|
|
||||||
|
|
||||||
getEvent(nameOrSignatureOrTopic: "AllowedERC20Updated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "DepositAdded"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "DepositWithdrawn"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "FundsWithdrawn"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockAdded"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockBlocksUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockReleased"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "LockReturned"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface AllowedERC20UpdatedEventObject {
|
|
||||||
token: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type AllowedERC20UpdatedEvent = TypedEvent<
|
|
||||||
[string, boolean],
|
|
||||||
AllowedERC20UpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type AllowedERC20UpdatedEventFilter =
|
|
||||||
TypedEventFilter<AllowedERC20UpdatedEvent>;
|
|
||||||
|
|
||||||
export interface DepositAddedEventObject {
|
|
||||||
seller: string;
|
|
||||||
token: string;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type DepositAddedEvent = TypedEvent<
|
|
||||||
[string, string, BigNumber],
|
|
||||||
DepositAddedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type DepositAddedEventFilter = TypedEventFilter<DepositAddedEvent>;
|
|
||||||
|
|
||||||
export interface DepositWithdrawnEventObject {
|
|
||||||
seller: string;
|
|
||||||
token: string;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type DepositWithdrawnEvent = TypedEvent<
|
|
||||||
[string, string, BigNumber],
|
|
||||||
DepositWithdrawnEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type DepositWithdrawnEventFilter =
|
|
||||||
TypedEventFilter<DepositWithdrawnEvent>;
|
|
||||||
|
|
||||||
export interface FundsWithdrawnEventObject {
|
|
||||||
owner: string;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type FundsWithdrawnEvent = TypedEvent<
|
|
||||||
[string, BigNumber],
|
|
||||||
FundsWithdrawnEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type FundsWithdrawnEventFilter = TypedEventFilter<FundsWithdrawnEvent>;
|
|
||||||
|
|
||||||
export interface LockAddedEventObject {
|
|
||||||
buyer: string;
|
|
||||||
lockID: BigNumber;
|
|
||||||
seller: BigNumber;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockAddedEvent = TypedEvent<
|
|
||||||
[string, BigNumber, BigNumber, BigNumber],
|
|
||||||
LockAddedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockAddedEventFilter = TypedEventFilter<LockAddedEvent>;
|
|
||||||
|
|
||||||
export interface LockBlocksUpdatedEventObject {
|
|
||||||
blocks: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockBlocksUpdatedEvent = TypedEvent<
|
|
||||||
[BigNumber],
|
|
||||||
LockBlocksUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockBlocksUpdatedEventFilter =
|
|
||||||
TypedEventFilter<LockBlocksUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface LockReleasedEventObject {
|
|
||||||
buyer: string;
|
|
||||||
lockId: BigNumber;
|
|
||||||
amount: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockReleasedEvent = TypedEvent<
|
|
||||||
[string, BigNumber, BigNumber],
|
|
||||||
LockReleasedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockReleasedEventFilter = TypedEventFilter<LockReleasedEvent>;
|
|
||||||
|
|
||||||
export interface LockReturnedEventObject {
|
|
||||||
buyer: string;
|
|
||||||
lockId: BigNumber;
|
|
||||||
}
|
|
||||||
export type LockReturnedEvent = TypedEvent<
|
|
||||||
[string, BigNumber],
|
|
||||||
LockReturnedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type LockReturnedEventFilter = TypedEventFilter<LockReturnedEvent>;
|
|
||||||
|
|
||||||
export interface OwnerUpdatedEventObject {
|
|
||||||
user: string;
|
|
||||||
newOwner: string;
|
|
||||||
}
|
|
||||||
export type OwnerUpdatedEvent = TypedEvent<
|
|
||||||
[string, string],
|
|
||||||
OwnerUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type OwnerUpdatedEventFilter = TypedEventFilter<OwnerUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface ReputationUpdatedEventObject {
|
|
||||||
reputation: string;
|
|
||||||
}
|
|
||||||
export type ReputationUpdatedEvent = TypedEvent<
|
|
||||||
[string],
|
|
||||||
ReputationUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type ReputationUpdatedEventFilter =
|
|
||||||
TypedEventFilter<ReputationUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface RootUpdatedEventObject {
|
|
||||||
seller: string;
|
|
||||||
merkleRoot: string;
|
|
||||||
}
|
|
||||||
export type RootUpdatedEvent = TypedEvent<
|
|
||||||
[string, string],
|
|
||||||
RootUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type RootUpdatedEventFilter = TypedEventFilter<RootUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface TrustedForwarderUpdatedEventObject {
|
|
||||||
forwarder: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type TrustedForwarderUpdatedEvent = TypedEvent<
|
|
||||||
[string, boolean],
|
|
||||||
TrustedForwarderUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type TrustedForwarderUpdatedEventFilter =
|
|
||||||
TypedEventFilter<TrustedForwarderUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface ValidSetEventObject {
|
|
||||||
seller: string;
|
|
||||||
token: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type ValidSetEvent = TypedEvent<
|
|
||||||
[string, string, boolean],
|
|
||||||
ValidSetEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type ValidSetEventFilter = TypedEventFilter<ValidSetEvent>;
|
|
||||||
|
|
||||||
export interface ValidSignersUpdatedEventObject {
|
|
||||||
signers: string[];
|
|
||||||
}
|
|
||||||
export type ValidSignersUpdatedEvent = TypedEvent<
|
|
||||||
[string[]],
|
|
||||||
ValidSignersUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type ValidSignersUpdatedEventFilter =
|
|
||||||
TypedEventFilter<ValidSignersUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface OwnerSettings extends BaseContract {
|
|
||||||
connect(signerOrProvider: Signer | Provider | string): this;
|
|
||||||
attach(addressOrName: string): this;
|
|
||||||
deployed(): Promise<this>;
|
|
||||||
|
|
||||||
interface: OwnerSettingsInterface;
|
|
||||||
|
|
||||||
queryFilter<TEvent extends TypedEvent>(
|
|
||||||
event: TypedEventFilter<TEvent>,
|
|
||||||
fromBlockOrBlockhash?: string | number | undefined,
|
|
||||||
toBlock?: string | number | undefined
|
|
||||||
): Promise<Array<TEvent>>;
|
|
||||||
|
|
||||||
listeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter?: TypedEventFilter<TEvent>
|
|
||||||
): Array<TypedListener<TEvent>>;
|
|
||||||
listeners(eventName?: string): Array<Listener>;
|
|
||||||
removeAllListeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter: TypedEventFilter<TEvent>
|
|
||||||
): this;
|
|
||||||
removeAllListeners(eventName?: string): this;
|
|
||||||
off: OnEvent<this>;
|
|
||||||
on: OnEvent<this>;
|
|
||||||
once: OnEvent<this>;
|
|
||||||
removeListener: OnEvent<this>;
|
|
||||||
|
|
||||||
functions: {
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean] & { state: boolean }>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean]>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<[string]>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<[string]>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[string] & { root: string }>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean] & { valid: boolean }>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
};
|
|
||||||
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
callStatic: {
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
withdrawBalance(overrides?: CallOverrides): Promise<void>;
|
|
||||||
};
|
|
||||||
|
|
||||||
filters: {
|
|
||||||
"AllowedERC20Updated(address,bool)"(
|
|
||||||
token?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): AllowedERC20UpdatedEventFilter;
|
|
||||||
AllowedERC20Updated(
|
|
||||||
token?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): AllowedERC20UpdatedEventFilter;
|
|
||||||
|
|
||||||
"DepositAdded(address,address,uint256)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositAddedEventFilter;
|
|
||||||
DepositAdded(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositAddedEventFilter;
|
|
||||||
|
|
||||||
"DepositWithdrawn(address,address,uint256)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositWithdrawnEventFilter;
|
|
||||||
DepositWithdrawn(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
amount?: null
|
|
||||||
): DepositWithdrawnEventFilter;
|
|
||||||
|
|
||||||
"FundsWithdrawn(address,uint256)"(
|
|
||||||
owner?: null,
|
|
||||||
amount?: null
|
|
||||||
): FundsWithdrawnEventFilter;
|
|
||||||
FundsWithdrawn(owner?: null, amount?: null): FundsWithdrawnEventFilter;
|
|
||||||
|
|
||||||
"LockAdded(address,uint256,uint256,uint256)"(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockID?: PromiseOrValue<BigNumberish> | null,
|
|
||||||
seller?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockAddedEventFilter;
|
|
||||||
LockAdded(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockID?: PromiseOrValue<BigNumberish> | null,
|
|
||||||
seller?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockAddedEventFilter;
|
|
||||||
|
|
||||||
"LockBlocksUpdated(uint256)"(blocks?: null): LockBlocksUpdatedEventFilter;
|
|
||||||
LockBlocksUpdated(blocks?: null): LockBlocksUpdatedEventFilter;
|
|
||||||
|
|
||||||
"LockReleased(address,uint256,uint256)"(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockReleasedEventFilter;
|
|
||||||
LockReleased(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null,
|
|
||||||
amount?: null
|
|
||||||
): LockReleasedEventFilter;
|
|
||||||
|
|
||||||
"LockReturned(address,uint256)"(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null
|
|
||||||
): LockReturnedEventFilter;
|
|
||||||
LockReturned(
|
|
||||||
buyer?: PromiseOrValue<string> | null,
|
|
||||||
lockId?: null
|
|
||||||
): LockReturnedEventFilter;
|
|
||||||
|
|
||||||
"OwnerUpdated(address,address)"(
|
|
||||||
user?: PromiseOrValue<string> | null,
|
|
||||||
newOwner?: PromiseOrValue<string> | null
|
|
||||||
): OwnerUpdatedEventFilter;
|
|
||||||
OwnerUpdated(
|
|
||||||
user?: PromiseOrValue<string> | null,
|
|
||||||
newOwner?: PromiseOrValue<string> | null
|
|
||||||
): OwnerUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ReputationUpdated(address)"(
|
|
||||||
reputation?: null
|
|
||||||
): ReputationUpdatedEventFilter;
|
|
||||||
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
|
||||||
|
|
||||||
"RootUpdated(address,bytes32)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
|
||||||
): RootUpdatedEventFilter;
|
|
||||||
RootUpdated(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
|
||||||
): RootUpdatedEventFilter;
|
|
||||||
|
|
||||||
"TrustedForwarderUpdated(address,bool)"(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
TrustedForwarderUpdated(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ValidSet(address,address,bool)"(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
state?: null
|
|
||||||
): ValidSetEventFilter;
|
|
||||||
ValidSet(
|
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
token?: null,
|
|
||||||
state?: null
|
|
||||||
): ValidSetEventFilter;
|
|
||||||
|
|
||||||
"ValidSignersUpdated(address[])"(
|
|
||||||
signers?: null
|
|
||||||
): ValidSignersUpdatedEventFilter;
|
|
||||||
ValidSignersUpdated(signers?: null): ValidSignersUpdatedEventFilter;
|
|
||||||
};
|
|
||||||
|
|
||||||
estimateGas: {
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<BigNumber>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
};
|
|
||||||
|
|
||||||
populateTransaction: {
|
|
||||||
allowedERC20s(
|
|
||||||
erc20: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
reputation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
sellerAllowList(
|
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setOwner(
|
|
||||||
newOwner: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setReputation(
|
|
||||||
_reputation: PromiseOrValue<string>,
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
|
||||||
_validSigners: PromiseOrValue<string>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
tokenSettings(
|
|
||||||
_tokens: PromiseOrValue<string>[],
|
|
||||||
_states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
validBacenSigners(
|
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
withdrawBalance(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
export type { BaseUtils } from "./BaseUtils";
|
|
||||||
export type { EventAndErrors } from "./EventAndErrors";
|
|
||||||
export type { OwnerSettings } from "./OwnerSettings";
|
|
||||||
@@ -7,7 +7,7 @@ import type { Provider } from "@ethersproject/providers";
|
|||||||
import type {
|
import type {
|
||||||
EventAndErrors,
|
EventAndErrors,
|
||||||
EventAndErrorsInterface,
|
EventAndErrorsInterface,
|
||||||
} from "../../core/EventAndErrors";
|
} from "../EventAndErrors";
|
||||||
|
|
||||||
const _abi = [
|
const _abi = [
|
||||||
{
|
{
|
||||||
@@ -30,6 +30,11 @@ const _abi = [
|
|||||||
name: "DecOverflow",
|
name: "DecOverflow",
|
||||||
type: "error",
|
type: "error",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
inputs: [],
|
||||||
|
name: "DepositAlreadyExists",
|
||||||
|
type: "error",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
inputs: [],
|
inputs: [],
|
||||||
name: "EmptyPixTarget",
|
name: "EmptyPixTarget",
|
||||||
@@ -135,7 +140,7 @@ const _abi = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
indexed: false,
|
indexed: false,
|
||||||
internalType: "contract ERC20",
|
internalType: "address",
|
||||||
name: "token",
|
name: "token",
|
||||||
type: "address",
|
type: "address",
|
||||||
},
|
},
|
||||||
@@ -160,7 +165,7 @@ const _abi = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
indexed: false,
|
indexed: false,
|
||||||
internalType: "contract ERC20",
|
internalType: "address",
|
||||||
name: "token",
|
name: "token",
|
||||||
type: "address",
|
type: "address",
|
||||||
},
|
},
|
||||||
@@ -298,13 +303,13 @@ const _abi = [
|
|||||||
anonymous: false,
|
anonymous: false,
|
||||||
inputs: [
|
inputs: [
|
||||||
{
|
{
|
||||||
indexed: true,
|
indexed: false,
|
||||||
internalType: "address",
|
internalType: "address",
|
||||||
name: "seller",
|
name: "seller",
|
||||||
type: "address",
|
type: "address",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
indexed: true,
|
indexed: false,
|
||||||
internalType: "bytes32",
|
internalType: "bytes32",
|
||||||
name: "merkleRoot",
|
name: "merkleRoot",
|
||||||
type: "bytes32",
|
type: "bytes32",
|
||||||
@@ -313,25 +318,6 @@ const _abi = [
|
|||||||
name: "RootUpdated",
|
name: "RootUpdated",
|
||||||
type: "event",
|
type: "event",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "forwarder",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "TrustedForwarderUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
anonymous: false,
|
anonymous: false,
|
||||||
inputs: [
|
inputs: [
|
||||||
@@ -343,7 +329,7 @@ const _abi = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
indexed: false,
|
indexed: false,
|
||||||
internalType: "contract ERC20",
|
internalType: "address",
|
||||||
name: "token",
|
name: "token",
|
||||||
type: "address",
|
type: "address",
|
||||||
},
|
},
|
||||||
@@ -1,13 +1,7 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import {
|
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
||||||
Signer,
|
|
||||||
utils,
|
|
||||||
Contract,
|
|
||||||
ContractFactory,
|
|
||||||
PayableOverrides,
|
|
||||||
} from "ethers";
|
|
||||||
import type { Provider, TransactionRequest } from "@ethersproject/providers";
|
import type { Provider, TransactionRequest } from "@ethersproject/providers";
|
||||||
import type { PromiseOrValue } from "../common";
|
import type { PromiseOrValue } from "../common";
|
||||||
import type { Reputation, ReputationInterface } from "../Reputation";
|
import type { Reputation, ReputationInterface } from "../Reputation";
|
||||||
@@ -15,9 +9,28 @@ import type { Reputation, ReputationInterface } from "../Reputation";
|
|||||||
const _abi = [
|
const _abi = [
|
||||||
{
|
{
|
||||||
inputs: [],
|
inputs: [],
|
||||||
stateMutability: "payable",
|
stateMutability: "nonpayable",
|
||||||
type: "constructor",
|
type: "constructor",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
anonymous: false,
|
||||||
|
inputs: [
|
||||||
|
{
|
||||||
|
indexed: true,
|
||||||
|
internalType: "address",
|
||||||
|
name: "user",
|
||||||
|
type: "address",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
indexed: true,
|
||||||
|
internalType: "address",
|
||||||
|
name: "newOwner",
|
||||||
|
type: "address",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: "OwnerUpdated",
|
||||||
|
type: "event",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
inputs: [
|
inputs: [
|
||||||
{
|
{
|
||||||
@@ -63,10 +76,36 @@ const _abi = [
|
|||||||
stateMutability: "view",
|
stateMutability: "view",
|
||||||
type: "function",
|
type: "function",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
inputs: [],
|
||||||
|
name: "owner",
|
||||||
|
outputs: [
|
||||||
|
{
|
||||||
|
internalType: "address",
|
||||||
|
name: "",
|
||||||
|
type: "address",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
stateMutability: "view",
|
||||||
|
type: "function",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
inputs: [
|
||||||
|
{
|
||||||
|
internalType: "address",
|
||||||
|
name: "newOwner",
|
||||||
|
type: "address",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: "setOwner",
|
||||||
|
outputs: [],
|
||||||
|
stateMutability: "nonpayable",
|
||||||
|
type: "function",
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const _bytecode =
|
const _bytecode =
|
||||||
"0x6080806040526102c990816100128239f3fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212202029db6a087d223f768aabc1fe8120c7f9d7e525e947a354114a42f80a3955db64736f6c63430008130033";
|
"0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a350610416806100616000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80634d2b1791116100505780634d2b17911461009e5780638da5cb5b146100b1578063a4b34557146100f657600080fd5b806313af40351461006c5780631a861d2614610081575b600080fd5b61007f61007a3660046102f4565b610102565b005b61008b620f424081565b6040519081526020015b60405180910390f35b61008b6100ac366004610331565b6101f7565b6000546100d19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610095565b61008b643a3529440081565b60005473ffffffffffffffffffffffffffffffffffffffff163314610187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b600061021a6102068380610379565b61021590643a352944006103b6565b610242565b61022783620f4240610379565b61023191906103ce565b61023c9060016103b6565b92915050565b60b5817101000000000000000000000000000000000081106102695760409190911b9060801c5b690100000000000000000081106102855760209190911b9060401c5b65010000000000811061029d5760109190911b9060201c5b630100000081106102b35760089190911b9060101c5b62010000010260121c80820401600190811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b60006020828403121561030657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461032a57600080fd5b9392505050565b60006020828403121561034357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156103b1576103b161034a565b500290565b600082198211156103c9576103c961034a565b500190565b600082610404577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea164736f6c6343000809000a";
|
||||||
|
|
||||||
type ReputationConstructorParams =
|
type ReputationConstructorParams =
|
||||||
| [signer?: Signer]
|
| [signer?: Signer]
|
||||||
@@ -86,12 +125,12 @@ export class Reputation__factory extends ContractFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override deploy(
|
override deploy(
|
||||||
overrides?: PayableOverrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<Reputation> {
|
): Promise<Reputation> {
|
||||||
return super.deploy(overrides || {}) as Promise<Reputation>;
|
return super.deploy(overrides || {}) as Promise<Reputation>;
|
||||||
}
|
}
|
||||||
override getDeployTransaction(
|
override getDeployTransaction(
|
||||||
overrides?: PayableOverrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): TransactionRequest {
|
): TransactionRequest {
|
||||||
return super.getDeployTransaction(overrides || {});
|
return super.getDeployTransaction(overrides || {});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,698 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
|
|
||||||
import { Contract, Signer, utils } from "ethers";
|
|
||||||
import type { Provider } from "@ethersproject/providers";
|
|
||||||
import type { BaseUtils, BaseUtilsInterface } from "../../core/BaseUtils";
|
|
||||||
|
|
||||||
const _abi = [
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "AddressDenied",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "AlreadyReleased",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "AmountNotAllowed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "DecOverflow",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "EmptyPixTarget",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "InvalidDeposit",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "InvalidSigner",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "LengthMismatch",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "LockExpired",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "LoopOverflow",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "MaxBalExceeded",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NoTokens",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NotEnoughTokens",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NotExpired",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NotInitialized",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "OnlySeller",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "Reentrancy",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "StaticCallFailed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "TokenDenied",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "TxAlreadyUsed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "Unauthorized",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "AllowedERC20Updated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "DepositAdded",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "DepositWithdrawn",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "address",
|
|
||||||
name: "owner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "FundsWithdrawn",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "buyer",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "lockID",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "seller",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockAdded",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "blocks",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockBlocksUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "buyer",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "lockId",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockReleased",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "buyer",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "lockId",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockReturned",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "user",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "newOwner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "OwnerUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "address",
|
|
||||||
name: "reputation",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ReputationUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "bytes32",
|
|
||||||
name: "merkleRoot",
|
|
||||||
type: "bytes32",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "RootUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "forwarder",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "TrustedForwarderUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ValidSet",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "address[]",
|
|
||||||
name: "signers",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ValidSignersUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "_addr",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "_castAddrToKey",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "_key",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "pure",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "_key",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "_castKeyToAddr",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "_addr",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "pure",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "erc20",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "allowedERC20s",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "defaultLockBlocks",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "str",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "getStr",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bytes32",
|
|
||||||
name: "strEnc",
|
|
||||||
type: "bytes32",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "pure",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "isTrustedForwarder",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "owner",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "reputation",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract IReputation",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "sellerKey",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "sellerAllowList",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bytes32",
|
|
||||||
name: "root",
|
|
||||||
type: "bytes32",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "_blocks",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setDefaultLockBlocks",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "newOwner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setOwner",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract IReputation",
|
|
||||||
name: "_reputation",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setReputation",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address[]",
|
|
||||||
name: "forwarders",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "bool[]",
|
|
||||||
name: "states",
|
|
||||||
type: "bool[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setTrustedFowarders",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address[]",
|
|
||||||
name: "_validSigners",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setValidSigners",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract ERC20[]",
|
|
||||||
name: "_tokens",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "bool[]",
|
|
||||||
name: "_states",
|
|
||||||
type: "bool[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "tokenSettings",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "bytes32",
|
|
||||||
name: "message",
|
|
||||||
type: "bytes32",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "usedTransactions",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "used",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "signer",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "validBacenSigners",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "valid",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "withdrawBalance",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
export class BaseUtils__factory {
|
|
||||||
static readonly abi = _abi;
|
|
||||||
static createInterface(): BaseUtilsInterface {
|
|
||||||
return new utils.Interface(_abi) as BaseUtilsInterface;
|
|
||||||
}
|
|
||||||
static connect(
|
|
||||||
address: string,
|
|
||||||
signerOrProvider: Signer | Provider
|
|
||||||
): BaseUtils {
|
|
||||||
return new Contract(address, _abi, signerOrProvider) as BaseUtils;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,620 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
|
|
||||||
import { Contract, Signer, utils } from "ethers";
|
|
||||||
import type { Provider } from "@ethersproject/providers";
|
|
||||||
import type {
|
|
||||||
OwnerSettings,
|
|
||||||
OwnerSettingsInterface,
|
|
||||||
} from "../../core/OwnerSettings";
|
|
||||||
|
|
||||||
const _abi = [
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "AddressDenied",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "AlreadyReleased",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "AmountNotAllowed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "DecOverflow",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "EmptyPixTarget",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "InvalidDeposit",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "InvalidSigner",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "LengthMismatch",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "LockExpired",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "LoopOverflow",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "MaxBalExceeded",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NoTokens",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NotEnoughTokens",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NotExpired",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "NotInitialized",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "OnlySeller",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "StaticCallFailed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "TokenDenied",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "TxAlreadyUsed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "Unauthorized",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "AllowedERC20Updated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "DepositAdded",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "DepositWithdrawn",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "address",
|
|
||||||
name: "owner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "FundsWithdrawn",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "buyer",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "lockID",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "seller",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockAdded",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "blocks",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockBlocksUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "buyer",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "lockId",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "amount",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockReleased",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "buyer",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "lockId",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "LockReturned",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "user",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "newOwner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "OwnerUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "address",
|
|
||||||
name: "reputation",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ReputationUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "bytes32",
|
|
||||||
name: "merkleRoot",
|
|
||||||
type: "bytes32",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "RootUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "forwarder",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "TrustedForwarderUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "seller",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "token",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ValidSet",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "address[]",
|
|
||||||
name: "signers",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ValidSignersUpdated",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract ERC20",
|
|
||||||
name: "erc20",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "allowedERC20s",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "state",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "defaultLockBlocks",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "isTrustedForwarder",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "owner",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "reputation",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract IReputation",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "sellerKey",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "sellerAllowList",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bytes32",
|
|
||||||
name: "root",
|
|
||||||
type: "bytes32",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "_blocks",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setDefaultLockBlocks",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "newOwner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setOwner",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract IReputation",
|
|
||||||
name: "_reputation",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setReputation",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address[]",
|
|
||||||
name: "forwarders",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "bool[]",
|
|
||||||
name: "states",
|
|
||||||
type: "bool[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setTrustedFowarders",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address[]",
|
|
||||||
name: "_validSigners",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setValidSigners",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "contract ERC20[]",
|
|
||||||
name: "_tokens",
|
|
||||||
type: "address[]",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "bool[]",
|
|
||||||
name: "_states",
|
|
||||||
type: "bool[]",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "tokenSettings",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "signer",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "validBacenSigners",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "valid",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "withdrawBalance",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
export class OwnerSettings__factory {
|
|
||||||
static readonly abi = _abi;
|
|
||||||
static createInterface(): OwnerSettingsInterface {
|
|
||||||
return new utils.Interface(_abi) as OwnerSettingsInterface;
|
|
||||||
}
|
|
||||||
static connect(
|
|
||||||
address: string,
|
|
||||||
signerOrProvider: Signer | Provider
|
|
||||||
): OwnerSettings {
|
|
||||||
return new Contract(address, _abi, signerOrProvider) as OwnerSettings;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
export { BaseUtils__factory } from "./BaseUtils__factory";
|
|
||||||
export { EventAndErrors__factory } from "./EventAndErrors__factory";
|
|
||||||
export { OwnerSettings__factory } from "./OwnerSettings__factory";
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
export * as core from "./core";
|
|
||||||
export * as lib from "./lib";
|
export * as lib from "./lib";
|
||||||
export * as p2PixSol from "./p2pix.sol";
|
export * as p2PixSol from "./p2pix.sol";
|
||||||
|
export { EventAndErrors__factory } from "./EventAndErrors__factory";
|
||||||
export { Reputation__factory } from "./Reputation__factory";
|
export { Reputation__factory } from "./Reputation__factory";
|
||||||
|
|||||||
@@ -7,11 +7,6 @@ import type { Provider } from "@ethersproject/providers";
|
|||||||
import type { Owned, OwnedInterface } from "../../../lib/auth/Owned";
|
import type { Owned, OwnedInterface } from "../../../lib/auth/Owned";
|
||||||
|
|
||||||
const _abi = [
|
const _abi = [
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "Unauthorized",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
anonymous: false,
|
anonymous: false,
|
||||||
inputs: [
|
inputs: [
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
export * as auth from "./auth";
|
export * as auth from "./auth";
|
||||||
export * as interfaces from "./interfaces";
|
export * as interfaces from "./interfaces";
|
||||||
export * as metatx from "./metatx";
|
|
||||||
export * as mock from "./mock";
|
export * as mock from "./mock";
|
||||||
export * as tokens from "./tokens";
|
export * as tokens from "./tokens";
|
||||||
export * as utils from "./utils";
|
export * as utils from "./utils";
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
|
|
||||||
import { Contract, Signer, utils } from "ethers";
|
|
||||||
import type { Provider } from "@ethersproject/providers";
|
|
||||||
import type {
|
|
||||||
ERC2771Context,
|
|
||||||
ERC2771ContextInterface,
|
|
||||||
} from "../../../lib/metatx/ERC2771Context";
|
|
||||||
|
|
||||||
const _abi = [
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "isTrustedForwarder",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
export class ERC2771Context__factory {
|
|
||||||
static readonly abi = _abi;
|
|
||||||
static createInterface(): ERC2771ContextInterface {
|
|
||||||
return new utils.Interface(_abi) as ERC2771ContextInterface;
|
|
||||||
}
|
|
||||||
static connect(
|
|
||||||
address: string,
|
|
||||||
signerOrProvider: Signer | Provider
|
|
||||||
): ERC2771Context {
|
|
||||||
return new Contract(address, _abi, signerOrProvider) as ERC2771Context;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
export { ERC2771Context__factory } from "./ERC2771Context__factory";
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,62 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
|
||||||
import type { Provider, TransactionRequest } from "@ethersproject/providers";
|
|
||||||
import type { PromiseOrValue } from "../../../common";
|
|
||||||
import type { ECDSA, ECDSAInterface } from "../../../lib/utils/ECDSA";
|
|
||||||
|
|
||||||
const _abi = [
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "InvalidSignature",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const _bytecode =
|
|
||||||
"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212201f6fe8a460e1235bb7e19365d8e3cc56b718d44f5db82f5fa3c90d3c7da59ebf64736f6c63430008130033";
|
|
||||||
|
|
||||||
type ECDSAConstructorParams =
|
|
||||||
| [signer?: Signer]
|
|
||||||
| ConstructorParameters<typeof ContractFactory>;
|
|
||||||
|
|
||||||
const isSuperArgs = (
|
|
||||||
xs: ECDSAConstructorParams
|
|
||||||
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
||||||
|
|
||||||
export class ECDSA__factory extends ContractFactory {
|
|
||||||
constructor(...args: ECDSAConstructorParams) {
|
|
||||||
if (isSuperArgs(args)) {
|
|
||||||
super(...args);
|
|
||||||
} else {
|
|
||||||
super(_abi, _bytecode, args[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override deploy(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ECDSA> {
|
|
||||||
return super.deploy(overrides || {}) as Promise<ECDSA>;
|
|
||||||
}
|
|
||||||
override getDeployTransaction(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): TransactionRequest {
|
|
||||||
return super.getDeployTransaction(overrides || {});
|
|
||||||
}
|
|
||||||
override attach(address: string): ECDSA {
|
|
||||||
return super.attach(address) as ECDSA;
|
|
||||||
}
|
|
||||||
override connect(signer: Signer): ECDSA__factory {
|
|
||||||
return super.connect(signer) as ECDSA__factory;
|
|
||||||
}
|
|
||||||
|
|
||||||
static readonly bytecode = _bytecode;
|
|
||||||
static readonly abi = _abi;
|
|
||||||
static createInterface(): ECDSAInterface {
|
|
||||||
return new utils.Interface(_abi) as ECDSAInterface;
|
|
||||||
}
|
|
||||||
static connect(address: string, signerOrProvider: Signer | Provider): ECDSA {
|
|
||||||
return new Contract(address, _abi, signerOrProvider) as ECDSA;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -124,7 +124,7 @@ const _abi = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const _bytecode =
|
const _bytecode =
|
||||||
"0x6080806040526107fb90816100128239f3fe604060808152600436101561001357600080fd5b6000803560e01c9182631b57b72f1461003c5750506386575ee91461003757600080fd5b610362565b3461015e5761004a36610162565b61005e61005982949394610523565b6104df565b928184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061008c83610523565b01855b81811061013e575050845b8281106100b6578351806100b2874380409084610238565b0390f35b806100cd6100c86101399386866105c7565b61060c565b87806100da8488886105c7565b92816100eb6020958681019061062d565b91906100fb8c518094819361067e565b03925af1906101086106c6565b9061011b6101146104ba565b9315158452565b8201526101288288610755565b526101338187610755565b50610769565b61009a565b6020906101496104ba565b8881528260608183015282890101520161008f565b5080fd5b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126101cd5760043567ffffffffffffffff928382116101cd57806023830112156101cd5781600401359384116101cd5760248460051b830101116101cd576024019190565b600080fd5b60005b8381106101e55750506000910152565b81810151838201526020016101d5565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093610231815180928187528780880191016101d2565b0116010190565b9160608301918352602090818401526040926060848201528451809352608081018260808560051b8401019601946000925b85841061027b575050505050505090565b9091929394959685806102ca837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80866001960301885286838d51805115158452015191818582015201906101f5565b99019401940192959493919061026a565b90604082019082526020604081840152835180925260608301928160608460051b8301019501936000915b8483106103165750505050505090565b9091929394958480610352837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa086600196030187528a516101f5565b9801930193019194939290610306565b346101cd5761037036610162565b6103798161053b565b916000805b83811061039457604051806100b28743836102db565b6103a26100c88286866105c7565b82806103bc6103b28589896105c7565b602081019061062d565b82604095926103cf87518094819361067e565b03925af1906103dc6106c6565b918290156103fa575050906103f5916101288288610755565b61037e565b604483929351106104535761042061044f916004809401602480915183010191016106ec565b92519283927fb5e1dc2d0000000000000000000000000000000000000000000000000000000084528301610744565b0390fd5b82517fb5e1dc2d0000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604490fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906040820182811067ffffffffffffffff8211176104da57604052565b61048b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff8211176104da57604052565b67ffffffffffffffff81116104da5760051b60200190565b9061054861005983610523565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06105768294610523565b019060005b82811061058757505050565b80606060208093850101520161057b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156106075760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101cd570190565b610598565b3573ffffffffffffffffffffffffffffffffffffffff811681036101cd5790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101cd570180359067ffffffffffffffff82116101cd576020019181360383136101cd57565b908092918237016000815290565b67ffffffffffffffff81116104da57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156106e7573d906106da6100598361068c565b9182523d6000602084013e565b606090565b6020818303126101cd5780519067ffffffffffffffff82116101cd570181601f820112156101cd5780516107226100598261068c565b92818452602082840101116101cd5761074191602080850191016101d2565b90565b9060206107419281815201906101f5565b80518210156106075760209160051b010190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107965760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212206c86e7cf81738039d37cf5e545b323288faae992e0d08dec8c43f2f2b31f35f664736f6c63430008130033";
|
"0x60806040526108ec806100136000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631b57b72f1461003b57806386575ee914610066575b600080fd5b61004e610049366004610438565b610087565b60405161005d93929190610527565b60405180910390f35b610079610074366004610438565b610227565b60405161005d9291906105cb565b600080606043804085848167ffffffffffffffff8111156100aa576100aa610653565b6040519080825280602002602001820160405280156100f057816020015b6040805180820190915260008152606060208201528152602001906001900390816100c85790505b50905060005b82811015610217576000808b8b8481811061011357610113610682565b905060200281019061012591906106b1565b6101339060208101906106ef565b73ffffffffffffffffffffffffffffffffffffffff168c8c8581811061015b5761015b610682565b905060200281019061016d91906106b1565b61017b90602081019061072c565b604051610189929190610791565b6000604051808303816000865af19150503d80600081146101c6576040519150601f19603f3d011682016040523d82523d6000602084013e6101cb565b606091505b509150915060405180604001604052808315158152602001828152508484815181106101f9576101f9610682565b60200260200101819052508261020e906107a1565b925050506100f6565b5092989197509195509350505050565b600060604383838167ffffffffffffffff81111561024757610247610653565b60405190808252806020026020018201604052801561027a57816020015b60608152602001906001900390816102655790505b50905060005b828110156104285760008089898481811061029d5761029d610682565b90506020028101906102af91906106b1565b6102bd9060208101906106ef565b73ffffffffffffffffffffffffffffffffffffffff168a8a858181106102e5576102e5610682565b90506020028101906102f791906106b1565b61030590602081019061072c565b604051610313929190610791565b6000604051808303816000865af19150503d8060008114610350576040519150601f19603f3d011682016040523d82523d6000602084013e610355565b606091505b5091509150816103f7576044815110156103aa576040517fb5e1dc2d00000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b600481019050808060200190518101906103c49190610801565b6040517fb5e1dc2d0000000000000000000000000000000000000000000000000000000081526004016103a191906108cc565b8084848151811061040a5761040a610682565b60200260200101819052508261041f906107a1565b92505050610280565b50919350909150505b9250929050565b6000806020838503121561044b57600080fd5b823567ffffffffffffffff8082111561046357600080fd5b818501915085601f83011261047757600080fd5b81358181111561048657600080fd5b8660208260051b850101111561049b57600080fd5b60209290920196919550909350505050565b60005b838110156104c85781810151838201526020016104b0565b838111156104d7576000848401525b50505050565b600081518084526104f58160208601602086016104ad565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006060820185835260208581850152604060608186015282865180855260808701915060808160051b880101945083880160005b828110156105bb578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001845281518051151588528601518688018690526105a8868901826104dd565b975050928501929085019060010161055c565b50949a9950505050505050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610645577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526106338683516104dd565b955092840192908401906001016105f9565b509398975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126106e557600080fd5b9190910192915050565b60006020828403121561070157600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461072557600080fd5b9392505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261076157600080fd5b83018035915067ffffffffffffffff82111561077c57600080fd5b60200191503681900382131561043157600080fd5b8183823760009101908152919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156107fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b60006020828403121561081357600080fd5b815167ffffffffffffffff8082111561082b57600080fd5b818401915084601f83011261083f57600080fd5b81518181111561085157610851610653565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561089757610897610653565b816040528281528760208487010111156108b057600080fd5b6108c18360208301602088016104ad565b979650505050505050565b60208152600061072560208301846104dd56fea164736f6c6343000809000a";
|
||||||
|
|
||||||
type MulticallConstructorParams =
|
type MulticallConstructorParams =
|
||||||
| [signer?: Signer]
|
| [signer?: Signer]
|
||||||
|
|||||||
@@ -1,78 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
|
||||||
import type { Provider, TransactionRequest } from "@ethersproject/providers";
|
|
||||||
import type { PromiseOrValue } from "../../../common";
|
|
||||||
import type {
|
|
||||||
SafeTransferLib,
|
|
||||||
SafeTransferLibInterface,
|
|
||||||
} from "../../../lib/utils/SafeTransferLib";
|
|
||||||
|
|
||||||
const _abi = [
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "ETHTransferFailed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "TransferFailed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "TransferFromFailed",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const _bytecode =
|
|
||||||
"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220007e83452e6dfca4997d94ba5608da3c2308815d3239b1810079c74651f15a7464736f6c63430008130033";
|
|
||||||
|
|
||||||
type SafeTransferLibConstructorParams =
|
|
||||||
| [signer?: Signer]
|
|
||||||
| ConstructorParameters<typeof ContractFactory>;
|
|
||||||
|
|
||||||
const isSuperArgs = (
|
|
||||||
xs: SafeTransferLibConstructorParams
|
|
||||||
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
||||||
|
|
||||||
export class SafeTransferLib__factory extends ContractFactory {
|
|
||||||
constructor(...args: SafeTransferLibConstructorParams) {
|
|
||||||
if (isSuperArgs(args)) {
|
|
||||||
super(...args);
|
|
||||||
} else {
|
|
||||||
super(_abi, _bytecode, args[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override deploy(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<SafeTransferLib> {
|
|
||||||
return super.deploy(overrides || {}) as Promise<SafeTransferLib>;
|
|
||||||
}
|
|
||||||
override getDeployTransaction(
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): TransactionRequest {
|
|
||||||
return super.getDeployTransaction(overrides || {});
|
|
||||||
}
|
|
||||||
override attach(address: string): SafeTransferLib {
|
|
||||||
return super.attach(address) as SafeTransferLib;
|
|
||||||
}
|
|
||||||
override connect(signer: Signer): SafeTransferLib__factory {
|
|
||||||
return super.connect(signer) as SafeTransferLib__factory;
|
|
||||||
}
|
|
||||||
|
|
||||||
static readonly bytecode = _bytecode;
|
|
||||||
static readonly abi = _abi;
|
|
||||||
static createInterface(): SafeTransferLibInterface {
|
|
||||||
return new utils.Interface(_abi) as SafeTransferLibInterface;
|
|
||||||
}
|
|
||||||
static connect(
|
|
||||||
address: string,
|
|
||||||
signerOrProvider: Signer | Provider
|
|
||||||
): SafeTransferLib {
|
|
||||||
return new Contract(address, _abi, signerOrProvider) as SafeTransferLib;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
export { ECDSA__factory } from "./ECDSA__factory";
|
|
||||||
export { Multicall__factory } from "./Multicall__factory";
|
export { Multicall__factory } from "./Multicall__factory";
|
||||||
export { ReentrancyGuard__factory } from "./ReentrancyGuard__factory";
|
export { ReentrancyGuard__factory } from "./ReentrancyGuard__factory";
|
||||||
export { SafeTransferLib__factory } from "./SafeTransferLib__factory";
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
45
src/types/hardhat.d.ts
vendored
45
src/types/hardhat.d.ts
vendored
@@ -12,18 +12,10 @@ import * as Contracts from ".";
|
|||||||
|
|
||||||
declare module "hardhat/types/runtime" {
|
declare module "hardhat/types/runtime" {
|
||||||
interface HardhatEthersHelpers extends HardhatEthersHelpersBase {
|
interface HardhatEthersHelpers extends HardhatEthersHelpersBase {
|
||||||
getContractFactory(
|
|
||||||
name: "BaseUtils",
|
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
||||||
): Promise<Contracts.BaseUtils__factory>;
|
|
||||||
getContractFactory(
|
getContractFactory(
|
||||||
name: "EventAndErrors",
|
name: "EventAndErrors",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
): Promise<Contracts.EventAndErrors__factory>;
|
): Promise<Contracts.EventAndErrors__factory>;
|
||||||
getContractFactory(
|
|
||||||
name: "OwnerSettings",
|
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
||||||
): Promise<Contracts.OwnerSettings__factory>;
|
|
||||||
getContractFactory(
|
getContractFactory(
|
||||||
name: "Owned",
|
name: "Owned",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
@@ -32,10 +24,6 @@ declare module "hardhat/types/runtime" {
|
|||||||
name: "IReputation",
|
name: "IReputation",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
): Promise<Contracts.IReputation__factory>;
|
): Promise<Contracts.IReputation__factory>;
|
||||||
getContractFactory(
|
|
||||||
name: "ERC2771Context",
|
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
||||||
): Promise<Contracts.ERC2771Context__factory>;
|
|
||||||
getContractFactory(
|
getContractFactory(
|
||||||
name: "MockToken",
|
name: "MockToken",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
@@ -44,10 +32,6 @@ declare module "hardhat/types/runtime" {
|
|||||||
name: "ERC20",
|
name: "ERC20",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
): Promise<Contracts.ERC20__factory>;
|
): Promise<Contracts.ERC20__factory>;
|
||||||
getContractFactory(
|
|
||||||
name: "ECDSA",
|
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
||||||
): Promise<Contracts.ECDSA__factory>;
|
|
||||||
getContractFactory(
|
getContractFactory(
|
||||||
name: "Multicall",
|
name: "Multicall",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
@@ -56,10 +40,6 @@ declare module "hardhat/types/runtime" {
|
|||||||
name: "ReentrancyGuard",
|
name: "ReentrancyGuard",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
): Promise<Contracts.ReentrancyGuard__factory>;
|
): Promise<Contracts.ReentrancyGuard__factory>;
|
||||||
getContractFactory(
|
|
||||||
name: "SafeTransferLib",
|
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
||||||
): Promise<Contracts.SafeTransferLib__factory>;
|
|
||||||
getContractFactory(
|
getContractFactory(
|
||||||
name: "P2PIX",
|
name: "P2PIX",
|
||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
@@ -69,21 +49,11 @@ declare module "hardhat/types/runtime" {
|
|||||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||||
): Promise<Contracts.Reputation__factory>;
|
): Promise<Contracts.Reputation__factory>;
|
||||||
|
|
||||||
getContractAt(
|
|
||||||
name: "BaseUtils",
|
|
||||||
address: string,
|
|
||||||
signer?: ethers.Signer
|
|
||||||
): Promise<Contracts.BaseUtils>;
|
|
||||||
getContractAt(
|
getContractAt(
|
||||||
name: "EventAndErrors",
|
name: "EventAndErrors",
|
||||||
address: string,
|
address: string,
|
||||||
signer?: ethers.Signer
|
signer?: ethers.Signer
|
||||||
): Promise<Contracts.EventAndErrors>;
|
): Promise<Contracts.EventAndErrors>;
|
||||||
getContractAt(
|
|
||||||
name: "OwnerSettings",
|
|
||||||
address: string,
|
|
||||||
signer?: ethers.Signer
|
|
||||||
): Promise<Contracts.OwnerSettings>;
|
|
||||||
getContractAt(
|
getContractAt(
|
||||||
name: "Owned",
|
name: "Owned",
|
||||||
address: string,
|
address: string,
|
||||||
@@ -94,11 +64,6 @@ declare module "hardhat/types/runtime" {
|
|||||||
address: string,
|
address: string,
|
||||||
signer?: ethers.Signer
|
signer?: ethers.Signer
|
||||||
): Promise<Contracts.IReputation>;
|
): Promise<Contracts.IReputation>;
|
||||||
getContractAt(
|
|
||||||
name: "ERC2771Context",
|
|
||||||
address: string,
|
|
||||||
signer?: ethers.Signer
|
|
||||||
): Promise<Contracts.ERC2771Context>;
|
|
||||||
getContractAt(
|
getContractAt(
|
||||||
name: "MockToken",
|
name: "MockToken",
|
||||||
address: string,
|
address: string,
|
||||||
@@ -109,11 +74,6 @@ declare module "hardhat/types/runtime" {
|
|||||||
address: string,
|
address: string,
|
||||||
signer?: ethers.Signer
|
signer?: ethers.Signer
|
||||||
): Promise<Contracts.ERC20>;
|
): Promise<Contracts.ERC20>;
|
||||||
getContractAt(
|
|
||||||
name: "ECDSA",
|
|
||||||
address: string,
|
|
||||||
signer?: ethers.Signer
|
|
||||||
): Promise<Contracts.ECDSA>;
|
|
||||||
getContractAt(
|
getContractAt(
|
||||||
name: "Multicall",
|
name: "Multicall",
|
||||||
address: string,
|
address: string,
|
||||||
@@ -124,11 +84,6 @@ declare module "hardhat/types/runtime" {
|
|||||||
address: string,
|
address: string,
|
||||||
signer?: ethers.Signer
|
signer?: ethers.Signer
|
||||||
): Promise<Contracts.ReentrancyGuard>;
|
): Promise<Contracts.ReentrancyGuard>;
|
||||||
getContractAt(
|
|
||||||
name: "SafeTransferLib",
|
|
||||||
address: string,
|
|
||||||
signer?: ethers.Signer
|
|
||||||
): Promise<Contracts.SafeTransferLib>;
|
|
||||||
getContractAt(
|
getContractAt(
|
||||||
name: "P2PIX",
|
name: "P2PIX",
|
||||||
address: string,
|
address: string,
|
||||||
|
|||||||
@@ -1,38 +1,26 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import type * as core from "./core";
|
|
||||||
export type { core };
|
|
||||||
import type * as lib from "./lib";
|
import type * as lib from "./lib";
|
||||||
export type { lib };
|
export type { lib };
|
||||||
import type * as p2PixSol from "./p2pix.sol";
|
import type * as p2PixSol from "./p2pix.sol";
|
||||||
export type { p2PixSol };
|
export type { p2PixSol };
|
||||||
|
export type { EventAndErrors } from "./EventAndErrors";
|
||||||
export type { Reputation } from "./Reputation";
|
export type { Reputation } from "./Reputation";
|
||||||
export * as factories from "./factories";
|
export * as factories from "./factories";
|
||||||
export type { BaseUtils } from "./core/BaseUtils";
|
export { EventAndErrors__factory } from "./factories/EventAndErrors__factory";
|
||||||
export { BaseUtils__factory } from "./factories/core/BaseUtils__factory";
|
|
||||||
export type { EventAndErrors } from "./core/EventAndErrors";
|
|
||||||
export { EventAndErrors__factory } from "./factories/core/EventAndErrors__factory";
|
|
||||||
export type { OwnerSettings } from "./core/OwnerSettings";
|
|
||||||
export { OwnerSettings__factory } from "./factories/core/OwnerSettings__factory";
|
|
||||||
export type { Owned } from "./lib/auth/Owned";
|
export type { Owned } from "./lib/auth/Owned";
|
||||||
export { Owned__factory } from "./factories/lib/auth/Owned__factory";
|
export { Owned__factory } from "./factories/lib/auth/Owned__factory";
|
||||||
export type { IReputation } from "./lib/interfaces/IReputation";
|
export type { IReputation } from "./lib/interfaces/IReputation";
|
||||||
export { IReputation__factory } from "./factories/lib/interfaces/IReputation__factory";
|
export { IReputation__factory } from "./factories/lib/interfaces/IReputation__factory";
|
||||||
export type { ERC2771Context } from "./lib/metatx/ERC2771Context";
|
|
||||||
export { ERC2771Context__factory } from "./factories/lib/metatx/ERC2771Context__factory";
|
|
||||||
export type { MockToken } from "./lib/mock/mockToken.sol/MockToken";
|
export type { MockToken } from "./lib/mock/mockToken.sol/MockToken";
|
||||||
export { MockToken__factory } from "./factories/lib/mock/mockToken.sol/MockToken__factory";
|
export { MockToken__factory } from "./factories/lib/mock/mockToken.sol/MockToken__factory";
|
||||||
export type { ERC20 } from "./lib/tokens/ERC20";
|
export type { ERC20 } from "./lib/tokens/ERC20";
|
||||||
export { ERC20__factory } from "./factories/lib/tokens/ERC20__factory";
|
export { ERC20__factory } from "./factories/lib/tokens/ERC20__factory";
|
||||||
export type { ECDSA } from "./lib/utils/ECDSA";
|
|
||||||
export { ECDSA__factory } from "./factories/lib/utils/ECDSA__factory";
|
|
||||||
export type { Multicall } from "./lib/utils/Multicall";
|
export type { Multicall } from "./lib/utils/Multicall";
|
||||||
export { Multicall__factory } from "./factories/lib/utils/Multicall__factory";
|
export { Multicall__factory } from "./factories/lib/utils/Multicall__factory";
|
||||||
export type { ReentrancyGuard } from "./lib/utils/ReentrancyGuard";
|
export type { ReentrancyGuard } from "./lib/utils/ReentrancyGuard";
|
||||||
export { ReentrancyGuard__factory } from "./factories/lib/utils/ReentrancyGuard__factory";
|
export { ReentrancyGuard__factory } from "./factories/lib/utils/ReentrancyGuard__factory";
|
||||||
export type { SafeTransferLib } from "./lib/utils/SafeTransferLib";
|
|
||||||
export { SafeTransferLib__factory } from "./factories/lib/utils/SafeTransferLib__factory";
|
|
||||||
export type { P2PIX } from "./p2pix.sol/P2PIX";
|
export type { P2PIX } from "./p2pix.sol/P2PIX";
|
||||||
export { P2PIX__factory } from "./factories/p2pix.sol/P2PIX__factory";
|
export { P2PIX__factory } from "./factories/p2pix.sol/P2PIX__factory";
|
||||||
export { Reputation__factory } from "./factories/Reputation__factory";
|
export { Reputation__factory } from "./factories/Reputation__factory";
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import type * as auth from "./auth";
|
|||||||
export type { auth };
|
export type { auth };
|
||||||
import type * as interfaces from "./interfaces";
|
import type * as interfaces from "./interfaces";
|
||||||
export type { interfaces };
|
export type { interfaces };
|
||||||
import type * as metatx from "./metatx";
|
|
||||||
export type { metatx };
|
|
||||||
import type * as mock from "./mock";
|
import type * as mock from "./mock";
|
||||||
export type { mock };
|
export type { mock };
|
||||||
import type * as tokens from "./tokens";
|
import type * as tokens from "./tokens";
|
||||||
|
|||||||
@@ -1,103 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
import type {
|
|
||||||
BaseContract,
|
|
||||||
BigNumber,
|
|
||||||
BytesLike,
|
|
||||||
CallOverrides,
|
|
||||||
PopulatedTransaction,
|
|
||||||
Signer,
|
|
||||||
utils,
|
|
||||||
} from "ethers";
|
|
||||||
import type { FunctionFragment, Result } from "@ethersproject/abi";
|
|
||||||
import type { Listener, Provider } from "@ethersproject/providers";
|
|
||||||
import type {
|
|
||||||
TypedEventFilter,
|
|
||||||
TypedEvent,
|
|
||||||
TypedListener,
|
|
||||||
OnEvent,
|
|
||||||
PromiseOrValue,
|
|
||||||
} from "../../common";
|
|
||||||
|
|
||||||
export interface ERC2771ContextInterface extends utils.Interface {
|
|
||||||
functions: {
|
|
||||||
"isTrustedForwarder(address)": FunctionFragment;
|
|
||||||
};
|
|
||||||
|
|
||||||
getFunction(nameOrSignatureOrTopic: "isTrustedForwarder"): FunctionFragment;
|
|
||||||
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
|
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
|
|
||||||
events: {};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ERC2771Context extends BaseContract {
|
|
||||||
connect(signerOrProvider: Signer | Provider | string): this;
|
|
||||||
attach(addressOrName: string): this;
|
|
||||||
deployed(): Promise<this>;
|
|
||||||
|
|
||||||
interface: ERC2771ContextInterface;
|
|
||||||
|
|
||||||
queryFilter<TEvent extends TypedEvent>(
|
|
||||||
event: TypedEventFilter<TEvent>,
|
|
||||||
fromBlockOrBlockhash?: string | number | undefined,
|
|
||||||
toBlock?: string | number | undefined
|
|
||||||
): Promise<Array<TEvent>>;
|
|
||||||
|
|
||||||
listeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter?: TypedEventFilter<TEvent>
|
|
||||||
): Array<TypedListener<TEvent>>;
|
|
||||||
listeners(eventName?: string): Array<Listener>;
|
|
||||||
removeAllListeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter: TypedEventFilter<TEvent>
|
|
||||||
): this;
|
|
||||||
removeAllListeners(eventName?: string): this;
|
|
||||||
off: OnEvent<this>;
|
|
||||||
on: OnEvent<this>;
|
|
||||||
once: OnEvent<this>;
|
|
||||||
removeListener: OnEvent<this>;
|
|
||||||
|
|
||||||
functions: {
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean]>;
|
|
||||||
};
|
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
callStatic: {
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
};
|
|
||||||
|
|
||||||
filters: {};
|
|
||||||
|
|
||||||
estimateGas: {
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
};
|
|
||||||
|
|
||||||
populateTransaction: {
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
export type { ERC2771Context } from "./ERC2771Context";
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
import type { BaseContract, Signer, utils } from "ethers";
|
|
||||||
|
|
||||||
import type { Listener, Provider } from "@ethersproject/providers";
|
|
||||||
import type {
|
|
||||||
TypedEventFilter,
|
|
||||||
TypedEvent,
|
|
||||||
TypedListener,
|
|
||||||
OnEvent,
|
|
||||||
PromiseOrValue,
|
|
||||||
} from "../../common";
|
|
||||||
|
|
||||||
export interface ECDSAInterface extends utils.Interface {
|
|
||||||
functions: {};
|
|
||||||
|
|
||||||
events: {};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ECDSA extends BaseContract {
|
|
||||||
connect(signerOrProvider: Signer | Provider | string): this;
|
|
||||||
attach(addressOrName: string): this;
|
|
||||||
deployed(): Promise<this>;
|
|
||||||
|
|
||||||
interface: ECDSAInterface;
|
|
||||||
|
|
||||||
queryFilter<TEvent extends TypedEvent>(
|
|
||||||
event: TypedEventFilter<TEvent>,
|
|
||||||
fromBlockOrBlockhash?: string | number | undefined,
|
|
||||||
toBlock?: string | number | undefined
|
|
||||||
): Promise<Array<TEvent>>;
|
|
||||||
|
|
||||||
listeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter?: TypedEventFilter<TEvent>
|
|
||||||
): Array<TypedListener<TEvent>>;
|
|
||||||
listeners(eventName?: string): Array<Listener>;
|
|
||||||
removeAllListeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter: TypedEventFilter<TEvent>
|
|
||||||
): this;
|
|
||||||
removeAllListeners(eventName?: string): this;
|
|
||||||
off: OnEvent<this>;
|
|
||||||
on: OnEvent<this>;
|
|
||||||
once: OnEvent<this>;
|
|
||||||
removeListener: OnEvent<this>;
|
|
||||||
|
|
||||||
functions: {};
|
|
||||||
|
|
||||||
callStatic: {};
|
|
||||||
|
|
||||||
filters: {};
|
|
||||||
|
|
||||||
estimateGas: {};
|
|
||||||
|
|
||||||
populateTransaction: {};
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
|
||||||
/* tslint:disable */
|
|
||||||
/* eslint-disable */
|
|
||||||
import type { BaseContract, Signer, utils } from "ethers";
|
|
||||||
|
|
||||||
import type { Listener, Provider } from "@ethersproject/providers";
|
|
||||||
import type {
|
|
||||||
TypedEventFilter,
|
|
||||||
TypedEvent,
|
|
||||||
TypedListener,
|
|
||||||
OnEvent,
|
|
||||||
PromiseOrValue,
|
|
||||||
} from "../../common";
|
|
||||||
|
|
||||||
export interface SafeTransferLibInterface extends utils.Interface {
|
|
||||||
functions: {};
|
|
||||||
|
|
||||||
events: {};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface SafeTransferLib extends BaseContract {
|
|
||||||
connect(signerOrProvider: Signer | Provider | string): this;
|
|
||||||
attach(addressOrName: string): this;
|
|
||||||
deployed(): Promise<this>;
|
|
||||||
|
|
||||||
interface: SafeTransferLibInterface;
|
|
||||||
|
|
||||||
queryFilter<TEvent extends TypedEvent>(
|
|
||||||
event: TypedEventFilter<TEvent>,
|
|
||||||
fromBlockOrBlockhash?: string | number | undefined,
|
|
||||||
toBlock?: string | number | undefined
|
|
||||||
): Promise<Array<TEvent>>;
|
|
||||||
|
|
||||||
listeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter?: TypedEventFilter<TEvent>
|
|
||||||
): Array<TypedListener<TEvent>>;
|
|
||||||
listeners(eventName?: string): Array<Listener>;
|
|
||||||
removeAllListeners<TEvent extends TypedEvent>(
|
|
||||||
eventFilter: TypedEventFilter<TEvent>
|
|
||||||
): this;
|
|
||||||
removeAllListeners(eventName?: string): this;
|
|
||||||
off: OnEvent<this>;
|
|
||||||
on: OnEvent<this>;
|
|
||||||
once: OnEvent<this>;
|
|
||||||
removeListener: OnEvent<this>;
|
|
||||||
|
|
||||||
functions: {};
|
|
||||||
|
|
||||||
callStatic: {};
|
|
||||||
|
|
||||||
filters: {};
|
|
||||||
|
|
||||||
estimateGas: {};
|
|
||||||
|
|
||||||
populateTransaction: {};
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
/* Autogenerated file. Do not edit manually. */
|
/* Autogenerated file. Do not edit manually. */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
export type { ECDSA } from "./ECDSA";
|
|
||||||
export type { Multicall } from "./Multicall";
|
export type { Multicall } from "./Multicall";
|
||||||
export type { ReentrancyGuard } from "./ReentrancyGuard";
|
export type { ReentrancyGuard } from "./ReentrancyGuard";
|
||||||
export type { SafeTransferLib } from "./SafeTransferLib";
|
|
||||||
|
|||||||
@@ -29,31 +29,29 @@ import type {
|
|||||||
|
|
||||||
export interface P2PIXInterface extends utils.Interface {
|
export interface P2PIXInterface extends utils.Interface {
|
||||||
functions: {
|
functions: {
|
||||||
|
"WAD()": FunctionFragment;
|
||||||
"_castAddrToKey(address)": FunctionFragment;
|
"_castAddrToKey(address)": FunctionFragment;
|
||||||
"_castKeyToAddr(uint256)": FunctionFragment;
|
"_castKeyToAddr(uint256)": FunctionFragment;
|
||||||
"allowedERC20s(address)": FunctionFragment;
|
"allowedERC20s(address)": FunctionFragment;
|
||||||
"defaultLockBlocks()": FunctionFragment;
|
"defaultLockBlocks()": FunctionFragment;
|
||||||
"deposit(address,uint96,string,bool,bytes32)": FunctionFragment;
|
"deposit(address,uint96,uint160,bool,bytes32)": FunctionFragment;
|
||||||
"getBalance(address,address)": FunctionFragment;
|
"getBalance(address,address)": FunctionFragment;
|
||||||
"getBalances(address[],address)": FunctionFragment;
|
"getBalances(address[],address)": FunctionFragment;
|
||||||
"getLocksStatus(uint256[])": FunctionFragment;
|
"getLocksStatus(uint256[])": FunctionFragment;
|
||||||
"getPixTarget(address,address)": FunctionFragment;
|
"getPixTarget(address,address)": FunctionFragment;
|
||||||
"getPixTargetString(address,address)": FunctionFragment;
|
|
||||||
"getStr(string)": FunctionFragment;
|
|
||||||
"getValid(address,address)": FunctionFragment;
|
"getValid(address,address)": FunctionFragment;
|
||||||
"isTrustedForwarder(address)": FunctionFragment;
|
"lock(address,address,address,address,uint256,uint256,bytes32[],uint256[])": FunctionFragment;
|
||||||
"lock(address,address,uint80,bytes32[],uint256[])": FunctionFragment;
|
|
||||||
"lockCounter()": FunctionFragment;
|
"lockCounter()": FunctionFragment;
|
||||||
"mapLocks(uint256)": FunctionFragment;
|
"mapLocks(uint256)": FunctionFragment;
|
||||||
"owner()": FunctionFragment;
|
"owner()": FunctionFragment;
|
||||||
"release(uint256,bytes32,bytes32,bytes32,uint8)": FunctionFragment;
|
"release(uint256,address,bytes32,bytes32,bytes32,uint8)": FunctionFragment;
|
||||||
"reputation()": FunctionFragment;
|
"reputation()": FunctionFragment;
|
||||||
"sellerAllowList(uint256)": FunctionFragment;
|
"sellerAllowList(uint256)": FunctionFragment;
|
||||||
|
"sellerBalance(uint256,address)": FunctionFragment;
|
||||||
"setDefaultLockBlocks(uint256)": FunctionFragment;
|
"setDefaultLockBlocks(uint256)": FunctionFragment;
|
||||||
"setOwner(address)": FunctionFragment;
|
"setOwner(address)": FunctionFragment;
|
||||||
"setReputation(address)": FunctionFragment;
|
"setReputation(address)": FunctionFragment;
|
||||||
"setRoot(address,bytes32)": FunctionFragment;
|
"setRoot(address,bytes32)": FunctionFragment;
|
||||||
"setTrustedFowarders(address[],bool[])": FunctionFragment;
|
|
||||||
"setValidSigners(address[])": FunctionFragment;
|
"setValidSigners(address[])": FunctionFragment;
|
||||||
"setValidState(address,bool)": FunctionFragment;
|
"setValidState(address,bool)": FunctionFragment;
|
||||||
"tokenSettings(address[],bool[])": FunctionFragment;
|
"tokenSettings(address[],bool[])": FunctionFragment;
|
||||||
@@ -67,6 +65,7 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
|
|
||||||
getFunction(
|
getFunction(
|
||||||
nameOrSignatureOrTopic:
|
nameOrSignatureOrTopic:
|
||||||
|
| "WAD"
|
||||||
| "_castAddrToKey"
|
| "_castAddrToKey"
|
||||||
| "_castKeyToAddr"
|
| "_castKeyToAddr"
|
||||||
| "allowedERC20s"
|
| "allowedERC20s"
|
||||||
@@ -76,10 +75,7 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
| "getBalances"
|
| "getBalances"
|
||||||
| "getLocksStatus"
|
| "getLocksStatus"
|
||||||
| "getPixTarget"
|
| "getPixTarget"
|
||||||
| "getPixTargetString"
|
|
||||||
| "getStr"
|
|
||||||
| "getValid"
|
| "getValid"
|
||||||
| "isTrustedForwarder"
|
|
||||||
| "lock"
|
| "lock"
|
||||||
| "lockCounter"
|
| "lockCounter"
|
||||||
| "mapLocks"
|
| "mapLocks"
|
||||||
@@ -87,11 +83,11 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
| "release"
|
| "release"
|
||||||
| "reputation"
|
| "reputation"
|
||||||
| "sellerAllowList"
|
| "sellerAllowList"
|
||||||
|
| "sellerBalance"
|
||||||
| "setDefaultLockBlocks"
|
| "setDefaultLockBlocks"
|
||||||
| "setOwner"
|
| "setOwner"
|
||||||
| "setReputation"
|
| "setReputation"
|
||||||
| "setRoot"
|
| "setRoot"
|
||||||
| "setTrustedFowarders"
|
|
||||||
| "setValidSigners"
|
| "setValidSigners"
|
||||||
| "setValidState"
|
| "setValidState"
|
||||||
| "tokenSettings"
|
| "tokenSettings"
|
||||||
@@ -103,6 +99,7 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
| "withdrawBalance"
|
| "withdrawBalance"
|
||||||
): FunctionFragment;
|
): FunctionFragment;
|
||||||
|
|
||||||
|
encodeFunctionData(functionFragment: "WAD", values?: undefined): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "_castAddrToKey",
|
functionFragment: "_castAddrToKey",
|
||||||
values: [PromiseOrValue<string>]
|
values: [PromiseOrValue<string>]
|
||||||
@@ -124,7 +121,7 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
values: [
|
values: [
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<boolean>,
|
PromiseOrValue<boolean>,
|
||||||
PromiseOrValue<BytesLike>
|
PromiseOrValue<BytesLike>
|
||||||
]
|
]
|
||||||
@@ -145,27 +142,18 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
functionFragment: "getPixTarget",
|
functionFragment: "getPixTarget",
|
||||||
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "getPixTargetString",
|
|
||||||
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "getStr",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "getValid",
|
functionFragment: "getValid",
|
||||||
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
values: [PromiseOrValue<string>]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "lock",
|
functionFragment: "lock",
|
||||||
values: [
|
values: [
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
|
PromiseOrValue<string>,
|
||||||
|
PromiseOrValue<string>,
|
||||||
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<BytesLike>[],
|
PromiseOrValue<BytesLike>[],
|
||||||
PromiseOrValue<BigNumberish>[]
|
PromiseOrValue<BigNumberish>[]
|
||||||
@@ -184,6 +172,7 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
functionFragment: "release",
|
functionFragment: "release",
|
||||||
values: [
|
values: [
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<BytesLike>,
|
PromiseOrValue<BytesLike>,
|
||||||
PromiseOrValue<BytesLike>,
|
PromiseOrValue<BytesLike>,
|
||||||
PromiseOrValue<BytesLike>,
|
PromiseOrValue<BytesLike>,
|
||||||
@@ -198,6 +187,10 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
functionFragment: "sellerAllowList",
|
functionFragment: "sellerAllowList",
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
): string;
|
): string;
|
||||||
|
encodeFunctionData(
|
||||||
|
functionFragment: "sellerBalance",
|
||||||
|
values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]
|
||||||
|
): string;
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "setDefaultLockBlocks",
|
functionFragment: "setDefaultLockBlocks",
|
||||||
values: [PromiseOrValue<BigNumberish>]
|
values: [PromiseOrValue<BigNumberish>]
|
||||||
@@ -214,10 +207,6 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
functionFragment: "setRoot",
|
functionFragment: "setRoot",
|
||||||
values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]
|
values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]
|
||||||
): string;
|
): string;
|
||||||
encodeFunctionData(
|
|
||||||
functionFragment: "setTrustedFowarders",
|
|
||||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
|
||||||
): string;
|
|
||||||
encodeFunctionData(
|
encodeFunctionData(
|
||||||
functionFragment: "setValidSigners",
|
functionFragment: "setValidSigners",
|
||||||
values: [PromiseOrValue<string>[]]
|
values: [PromiseOrValue<string>[]]
|
||||||
@@ -259,6 +248,7 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
values?: undefined
|
values?: undefined
|
||||||
): string;
|
): string;
|
||||||
|
|
||||||
|
decodeFunctionResult(functionFragment: "WAD", data: BytesLike): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "_castAddrToKey",
|
functionFragment: "_castAddrToKey",
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
@@ -289,16 +279,7 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
functionFragment: "getPixTarget",
|
functionFragment: "getPixTarget",
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "getPixTargetString",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "getStr", data: BytesLike): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "getValid", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: "getValid", data: BytesLike): Result;
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "isTrustedForwarder",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(functionFragment: "lock", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: "lock", data: BytesLike): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "lockCounter",
|
functionFragment: "lockCounter",
|
||||||
@@ -312,6 +293,10 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
functionFragment: "sellerAllowList",
|
functionFragment: "sellerAllowList",
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
|
decodeFunctionResult(
|
||||||
|
functionFragment: "sellerBalance",
|
||||||
|
data: BytesLike
|
||||||
|
): Result;
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "setDefaultLockBlocks",
|
functionFragment: "setDefaultLockBlocks",
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
@@ -322,10 +307,6 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
data: BytesLike
|
data: BytesLike
|
||||||
): Result;
|
): Result;
|
||||||
decodeFunctionResult(functionFragment: "setRoot", data: BytesLike): Result;
|
decodeFunctionResult(functionFragment: "setRoot", data: BytesLike): Result;
|
||||||
decodeFunctionResult(
|
|
||||||
functionFragment: "setTrustedFowarders",
|
|
||||||
data: BytesLike
|
|
||||||
): Result;
|
|
||||||
decodeFunctionResult(
|
decodeFunctionResult(
|
||||||
functionFragment: "setValidSigners",
|
functionFragment: "setValidSigners",
|
||||||
data: BytesLike
|
data: BytesLike
|
||||||
@@ -369,7 +350,6 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
"OwnerUpdated(address,address)": EventFragment;
|
"OwnerUpdated(address,address)": EventFragment;
|
||||||
"ReputationUpdated(address)": EventFragment;
|
"ReputationUpdated(address)": EventFragment;
|
||||||
"RootUpdated(address,bytes32)": EventFragment;
|
"RootUpdated(address,bytes32)": EventFragment;
|
||||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
|
||||||
"ValidSet(address,address,bool)": EventFragment;
|
"ValidSet(address,address,bool)": EventFragment;
|
||||||
"ValidSignersUpdated(address[])": EventFragment;
|
"ValidSignersUpdated(address[])": EventFragment;
|
||||||
};
|
};
|
||||||
@@ -385,7 +365,6 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
||||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
||||||
}
|
}
|
||||||
@@ -518,18 +497,6 @@ export type RootUpdatedEvent = TypedEvent<
|
|||||||
|
|
||||||
export type RootUpdatedEventFilter = TypedEventFilter<RootUpdatedEvent>;
|
export type RootUpdatedEventFilter = TypedEventFilter<RootUpdatedEvent>;
|
||||||
|
|
||||||
export interface TrustedForwarderUpdatedEventObject {
|
|
||||||
forwarder: string;
|
|
||||||
state: boolean;
|
|
||||||
}
|
|
||||||
export type TrustedForwarderUpdatedEvent = TypedEvent<
|
|
||||||
[string, boolean],
|
|
||||||
TrustedForwarderUpdatedEventObject
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type TrustedForwarderUpdatedEventFilter =
|
|
||||||
TypedEventFilter<TrustedForwarderUpdatedEvent>;
|
|
||||||
|
|
||||||
export interface ValidSetEventObject {
|
export interface ValidSetEventObject {
|
||||||
seller: string;
|
seller: string;
|
||||||
token: string;
|
token: string;
|
||||||
@@ -580,6 +547,8 @@ export interface P2PIX extends BaseContract {
|
|||||||
removeListener: OnEvent<this>;
|
removeListener: OnEvent<this>;
|
||||||
|
|
||||||
functions: {
|
functions: {
|
||||||
|
WAD(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||||
|
|
||||||
_castAddrToKey(
|
_castAddrToKey(
|
||||||
_addr: PromiseOrValue<string>,
|
_addr: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -591,16 +560,16 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<[string] & { _addr: string }>;
|
): Promise<[string] & { _addr: string }>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
erc20: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[boolean] & { state: boolean }>;
|
): Promise<[boolean]>;
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<[BigNumber]>;
|
defaultLockBlocks(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||||
|
|
||||||
deposit(
|
deposit(
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
_pixTarget: PromiseOrValue<string>,
|
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||||
_valid: PromiseOrValue<boolean>,
|
_valid: PromiseOrValue<boolean>,
|
||||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -627,18 +596,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
token: PromiseOrValue<string>,
|
token: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[string] & { pixTarget: string }>;
|
): Promise<[BigNumber] & { pixTarget: BigNumber }>;
|
||||||
|
|
||||||
getPixTargetString(
|
|
||||||
seller: PromiseOrValue<string>,
|
|
||||||
token: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[string] & { pixTarget: string }>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[string] & { strEnc: string }>;
|
|
||||||
|
|
||||||
getValid(
|
getValid(
|
||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
@@ -646,14 +604,12 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[boolean] & { valid: boolean }>;
|
): Promise<[boolean] & { valid: boolean }>;
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<[boolean]>;
|
|
||||||
|
|
||||||
lock(
|
lock(
|
||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
expiredLocks: PromiseOrValue<BigNumberish>[],
|
expiredLocks: PromiseOrValue<BigNumberish>[],
|
||||||
@@ -666,14 +622,28 @@ export interface P2PIX extends BaseContract {
|
|||||||
arg0: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<
|
): Promise<
|
||||||
[BigNumber, BigNumber, BigNumber, string, BigNumber, string, string] & {
|
[
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
string,
|
||||||
|
string,
|
||||||
|
string,
|
||||||
|
string
|
||||||
|
] & {
|
||||||
sellerKey: BigNumber;
|
sellerKey: BigNumber;
|
||||||
counter: BigNumber;
|
counter: BigNumber;
|
||||||
expirationBlock: BigNumber;
|
relayerPremium: BigNumber;
|
||||||
pixTarget: string;
|
|
||||||
amount: BigNumber;
|
amount: BigNumber;
|
||||||
token: string;
|
expirationBlock: BigNumber;
|
||||||
|
pixTarget: BigNumber;
|
||||||
buyerAddress: string;
|
buyerAddress: string;
|
||||||
|
relayerTarget: string;
|
||||||
|
relayerAddress: string;
|
||||||
|
token: string;
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@@ -681,6 +651,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@@ -691,9 +662,15 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<[string]>;
|
reputation(overrides?: CallOverrides): Promise<[string]>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[string] & { root: string }>;
|
): Promise<[string]>;
|
||||||
|
|
||||||
|
sellerBalance(
|
||||||
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
|
arg1: PromiseOrValue<string>,
|
||||||
|
overrides?: CallOverrides
|
||||||
|
): Promise<[BigNumber]>;
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
setDefaultLockBlocks(
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
_blocks: PromiseOrValue<BigNumberish>,
|
||||||
@@ -716,12 +693,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
setValidSigners(
|
||||||
_validSigners: PromiseOrValue<string>[],
|
_validSigners: PromiseOrValue<string>[],
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -745,9 +716,9 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
message: PromiseOrValue<BytesLike>,
|
arg0: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[boolean] & { used: boolean }>;
|
): Promise<[boolean]>;
|
||||||
|
|
||||||
userRecord(
|
userRecord(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
@@ -755,9 +726,9 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<[BigNumber]>;
|
): Promise<[BigNumber]>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[boolean] & { valid: boolean }>;
|
): Promise<[boolean]>;
|
||||||
|
|
||||||
withdraw(
|
withdraw(
|
||||||
token: PromiseOrValue<string>,
|
token: PromiseOrValue<string>,
|
||||||
@@ -771,6 +742,8 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
WAD(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
_castAddrToKey(
|
_castAddrToKey(
|
||||||
_addr: PromiseOrValue<string>,
|
_addr: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -782,7 +755,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
erc20: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@@ -791,7 +764,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
deposit(
|
deposit(
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
_pixTarget: PromiseOrValue<string>,
|
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||||
_valid: PromiseOrValue<boolean>,
|
_valid: PromiseOrValue<boolean>,
|
||||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -818,18 +791,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
token: PromiseOrValue<string>,
|
token: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<string>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
getPixTargetString(
|
|
||||||
seller: PromiseOrValue<string>,
|
|
||||||
token: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
getValid(
|
getValid(
|
||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
@@ -837,14 +799,12 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
lock(
|
lock(
|
||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
expiredLocks: PromiseOrValue<BigNumberish>[],
|
expiredLocks: PromiseOrValue<BigNumberish>[],
|
||||||
@@ -857,14 +817,28 @@ export interface P2PIX extends BaseContract {
|
|||||||
arg0: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<
|
): Promise<
|
||||||
[BigNumber, BigNumber, BigNumber, string, BigNumber, string, string] & {
|
[
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
string,
|
||||||
|
string,
|
||||||
|
string,
|
||||||
|
string
|
||||||
|
] & {
|
||||||
sellerKey: BigNumber;
|
sellerKey: BigNumber;
|
||||||
counter: BigNumber;
|
counter: BigNumber;
|
||||||
expirationBlock: BigNumber;
|
relayerPremium: BigNumber;
|
||||||
pixTarget: string;
|
|
||||||
amount: BigNumber;
|
amount: BigNumber;
|
||||||
token: string;
|
expirationBlock: BigNumber;
|
||||||
|
pixTarget: BigNumber;
|
||||||
buyerAddress: string;
|
buyerAddress: string;
|
||||||
|
relayerTarget: string;
|
||||||
|
relayerAddress: string;
|
||||||
|
token: string;
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@@ -872,6 +846,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@@ -882,10 +857,16 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
reputation(overrides?: CallOverrides): Promise<string>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
|
sellerBalance(
|
||||||
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
|
arg1: PromiseOrValue<string>,
|
||||||
|
overrides?: CallOverrides
|
||||||
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
setDefaultLockBlocks(
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
_blocks: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -907,12 +888,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<ContractTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
setValidSigners(
|
||||||
_validSigners: PromiseOrValue<string>[],
|
_validSigners: PromiseOrValue<string>[],
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -936,7 +911,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
message: PromiseOrValue<BytesLike>,
|
arg0: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@@ -946,7 +921,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@@ -962,6 +937,8 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
callStatic: {
|
callStatic: {
|
||||||
|
WAD(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
_castAddrToKey(
|
_castAddrToKey(
|
||||||
_addr: PromiseOrValue<string>,
|
_addr: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -973,7 +950,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
erc20: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@@ -982,7 +959,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
deposit(
|
deposit(
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
_pixTarget: PromiseOrValue<string>,
|
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||||
_valid: PromiseOrValue<boolean>,
|
_valid: PromiseOrValue<boolean>,
|
||||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -1009,18 +986,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
token: PromiseOrValue<string>,
|
token: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<string>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
getPixTargetString(
|
|
||||||
seller: PromiseOrValue<string>,
|
|
||||||
token: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<string>;
|
|
||||||
|
|
||||||
getValid(
|
getValid(
|
||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
@@ -1028,14 +994,12 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<boolean>;
|
|
||||||
|
|
||||||
lock(
|
lock(
|
||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
expiredLocks: PromiseOrValue<BigNumberish>[],
|
expiredLocks: PromiseOrValue<BigNumberish>[],
|
||||||
@@ -1048,14 +1012,28 @@ export interface P2PIX extends BaseContract {
|
|||||||
arg0: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<
|
): Promise<
|
||||||
[BigNumber, BigNumber, BigNumber, string, BigNumber, string, string] & {
|
[
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
BigNumber,
|
||||||
|
string,
|
||||||
|
string,
|
||||||
|
string,
|
||||||
|
string
|
||||||
|
] & {
|
||||||
sellerKey: BigNumber;
|
sellerKey: BigNumber;
|
||||||
counter: BigNumber;
|
counter: BigNumber;
|
||||||
expirationBlock: BigNumber;
|
relayerPremium: BigNumber;
|
||||||
pixTarget: string;
|
|
||||||
amount: BigNumber;
|
amount: BigNumber;
|
||||||
token: string;
|
expirationBlock: BigNumber;
|
||||||
|
pixTarget: BigNumber;
|
||||||
buyerAddress: string;
|
buyerAddress: string;
|
||||||
|
relayerTarget: string;
|
||||||
|
relayerAddress: string;
|
||||||
|
token: string;
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@@ -1063,6 +1041,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@@ -1073,10 +1052,16 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
reputation(overrides?: CallOverrides): Promise<string>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
|
sellerBalance(
|
||||||
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
|
arg1: PromiseOrValue<string>,
|
||||||
|
overrides?: CallOverrides
|
||||||
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
setDefaultLockBlocks(
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
_blocks: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -1098,12 +1083,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<void>;
|
): Promise<void>;
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<void>;
|
|
||||||
|
|
||||||
setValidSigners(
|
setValidSigners(
|
||||||
_validSigners: PromiseOrValue<string>[],
|
_validSigners: PromiseOrValue<string>[],
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -1127,7 +1106,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<void>;
|
): Promise<void>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
message: PromiseOrValue<BytesLike>,
|
arg0: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@@ -1137,7 +1116,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@@ -1240,22 +1219,10 @@ export interface P2PIX extends BaseContract {
|
|||||||
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
||||||
|
|
||||||
"RootUpdated(address,bytes32)"(
|
"RootUpdated(address,bytes32)"(
|
||||||
seller?: PromiseOrValue<string> | null,
|
seller?: null,
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
merkleRoot?: null
|
||||||
): RootUpdatedEventFilter;
|
): RootUpdatedEventFilter;
|
||||||
RootUpdated(
|
RootUpdated(seller?: null, merkleRoot?: null): RootUpdatedEventFilter;
|
||||||
seller?: PromiseOrValue<string> | null,
|
|
||||||
merkleRoot?: PromiseOrValue<BytesLike> | null
|
|
||||||
): RootUpdatedEventFilter;
|
|
||||||
|
|
||||||
"TrustedForwarderUpdated(address,bool)"(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
TrustedForwarderUpdated(
|
|
||||||
forwarder?: PromiseOrValue<string> | null,
|
|
||||||
state?: PromiseOrValue<boolean> | null
|
|
||||||
): TrustedForwarderUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ValidSet(address,address,bool)"(
|
"ValidSet(address,address,bool)"(
|
||||||
seller?: PromiseOrValue<string> | null,
|
seller?: PromiseOrValue<string> | null,
|
||||||
@@ -1275,6 +1242,8 @@ export interface P2PIX extends BaseContract {
|
|||||||
};
|
};
|
||||||
|
|
||||||
estimateGas: {
|
estimateGas: {
|
||||||
|
WAD(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
_castAddrToKey(
|
_castAddrToKey(
|
||||||
_addr: PromiseOrValue<string>,
|
_addr: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -1286,7 +1255,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
erc20: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@@ -1295,7 +1264,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
deposit(
|
deposit(
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
_pixTarget: PromiseOrValue<string>,
|
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||||
_valid: PromiseOrValue<boolean>,
|
_valid: PromiseOrValue<boolean>,
|
||||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -1324,31 +1293,18 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
getPixTargetString(
|
|
||||||
seller: PromiseOrValue<string>,
|
|
||||||
token: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
getValid(
|
getValid(
|
||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
token: PromiseOrValue<string>,
|
token: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
lock(
|
lock(
|
||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
expiredLocks: PromiseOrValue<BigNumberish>[],
|
expiredLocks: PromiseOrValue<BigNumberish>[],
|
||||||
@@ -1366,6 +1322,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@@ -1376,7 +1333,13 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<BigNumber>;
|
reputation(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
|
overrides?: CallOverrides
|
||||||
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
|
sellerBalance(
|
||||||
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
|
arg1: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@@ -1401,12 +1364,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<BigNumber>;
|
|
||||||
|
|
||||||
setValidSigners(
|
setValidSigners(
|
||||||
_validSigners: PromiseOrValue<string>[],
|
_validSigners: PromiseOrValue<string>[],
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -1430,7 +1387,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
message: PromiseOrValue<BytesLike>,
|
arg0: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@@ -1440,7 +1397,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@@ -1457,6 +1414,8 @@ export interface P2PIX extends BaseContract {
|
|||||||
};
|
};
|
||||||
|
|
||||||
populateTransaction: {
|
populateTransaction: {
|
||||||
|
WAD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
_castAddrToKey(
|
_castAddrToKey(
|
||||||
_addr: PromiseOrValue<string>,
|
_addr: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
@@ -1468,7 +1427,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
erc20: PromiseOrValue<string>,
|
arg0: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
@@ -1477,7 +1436,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
deposit(
|
deposit(
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
_pixTarget: PromiseOrValue<string>,
|
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||||
_valid: PromiseOrValue<boolean>,
|
_valid: PromiseOrValue<boolean>,
|
||||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -1506,31 +1465,18 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
getPixTargetString(
|
|
||||||
seller: PromiseOrValue<string>,
|
|
||||||
token: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
getStr(
|
|
||||||
str: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
getValid(
|
getValid(
|
||||||
seller: PromiseOrValue<string>,
|
seller: PromiseOrValue<string>,
|
||||||
token: PromiseOrValue<string>,
|
token: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
isTrustedForwarder(
|
|
||||||
arg0: PromiseOrValue<string>,
|
|
||||||
overrides?: CallOverrides
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
lock(
|
lock(
|
||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
expiredLocks: PromiseOrValue<BigNumberish>[],
|
expiredLocks: PromiseOrValue<BigNumberish>[],
|
||||||
@@ -1548,6 +1494,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
|
_relayerTarget: PromiseOrValue<string>,
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@@ -1558,7 +1505,13 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
reputation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
sellerKey: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
|
overrides?: CallOverrides
|
||||||
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
|
sellerBalance(
|
||||||
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
|
arg1: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
@@ -1583,12 +1536,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
setTrustedFowarders(
|
|
||||||
forwarders: PromiseOrValue<string>[],
|
|
||||||
states: PromiseOrValue<boolean>[],
|
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
|
||||||
): Promise<PopulatedTransaction>;
|
|
||||||
|
|
||||||
setValidSigners(
|
setValidSigners(
|
||||||
_validSigners: PromiseOrValue<string>[],
|
_validSigners: PromiseOrValue<string>[],
|
||||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||||
@@ -1612,7 +1559,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
message: PromiseOrValue<BytesLike>,
|
arg0: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
@@ -1622,7 +1569,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
signer: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ describe("P2PIX", () => {
|
|||||||
|
|
||||||
await expect(
|
await expect(
|
||||||
p2pix.connect(acc01).withdrawBalance(),
|
p2pix.connect(acc01).withdrawBalance(),
|
||||||
).to.be.revertedWithCustomError(p2pix, P2PixErrors.Unauthorized);
|
).to.be.revertedWith(P2PixErrors.UNAUTHORIZED);
|
||||||
});
|
});
|
||||||
it("should allow owner to change reputation instance", async () => {
|
it("should allow owner to change reputation instance", async () => {
|
||||||
const tx = await p2pix.setReputation(acc03.address);
|
const tx = await p2pix.setReputation(acc03.address);
|
||||||
@@ -193,9 +193,8 @@ describe("P2PIX", () => {
|
|||||||
.to.emit(p2pix, "ReputationUpdated")
|
.to.emit(p2pix, "ReputationUpdated")
|
||||||
.withArgs(acc03.address);
|
.withArgs(acc03.address);
|
||||||
expect(newRep).to.eq(acc03.address);
|
expect(newRep).to.eq(acc03.address);
|
||||||
await expect(fail).to.be.revertedWithCustomError(
|
await expect(fail).to.be.revertedWith(
|
||||||
p2pix,
|
P2PixErrors.UNAUTHORIZED,
|
||||||
P2PixErrors.Unauthorized,
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should allow owner to change defaultLockBlocks ", async () => {
|
it("should allow owner to change defaultLockBlocks ", async () => {
|
||||||
@@ -212,9 +211,8 @@ describe("P2PIX", () => {
|
|||||||
.to.emit(p2pix, "LockBlocksUpdated")
|
.to.emit(p2pix, "LockBlocksUpdated")
|
||||||
.withArgs(magicVal);
|
.withArgs(magicVal);
|
||||||
expect(newVal).to.eq(magicVal);
|
expect(newVal).to.eq(magicVal);
|
||||||
await expect(fail).to.be.revertedWithCustomError(
|
await expect(fail).to.be.revertedWith(
|
||||||
p2pix,
|
P2PixErrors.UNAUTHORIZED,
|
||||||
P2PixErrors.Unauthorized,
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should allow owner to add valid Bacen signers", async () => {
|
it("should allow owner to add valid Bacen signers", async () => {
|
||||||
@@ -238,9 +236,8 @@ describe("P2PIX", () => {
|
|||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "ValidSignersUpdated")
|
.to.emit(p2pix, "ValidSignersUpdated")
|
||||||
.withArgs([bob, alice]);
|
.withArgs([bob, alice]);
|
||||||
await expect(fail).to.be.revertedWithCustomError(
|
await expect(fail).to.be.revertedWith(
|
||||||
p2pix,
|
P2PixErrors.UNAUTHORIZED,
|
||||||
P2PixErrors.Unauthorized,
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should allow owner to adjust tokenSettings", async () => {
|
it("should allow owner to adjust tokenSettings", async () => {
|
||||||
@@ -277,13 +274,11 @@ describe("P2PIX", () => {
|
|||||||
.withArgs(owner.address, true);
|
.withArgs(owner.address, true);
|
||||||
expect(newTokenState1).to.eq(false);
|
expect(newTokenState1).to.eq(false);
|
||||||
expect(newTokenState2).to.eq(true);
|
expect(newTokenState2).to.eq(true);
|
||||||
await expect(fail).to.be.revertedWithCustomError(
|
await expect(fail).to.be.revertedWith(
|
||||||
p2pix,
|
P2PixErrors.UNAUTHORIZED,
|
||||||
P2PixErrors.Unauthorized,
|
|
||||||
);
|
);
|
||||||
await expect(fail).to.be.revertedWithCustomError(
|
await expect(fail).to.be.revertedWith(
|
||||||
p2pix,
|
P2PixErrors.UNAUTHORIZED,
|
||||||
P2PixErrors.Unauthorized,
|
|
||||||
);
|
);
|
||||||
await expect(fail2).to.be.revertedWithCustomError(
|
await expect(fail2).to.be.revertedWithCustomError(
|
||||||
p2pix,
|
p2pix,
|
||||||
@@ -298,11 +293,12 @@ describe("P2PIX", () => {
|
|||||||
multicall,
|
multicall,
|
||||||
P2PixErrors.CallFailed,
|
P2PixErrors.CallFailed,
|
||||||
)
|
)
|
||||||
|
.withArgs(P2PixErrors.UNAUTHORIZED);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe("Deposit", async () => {
|
describe("Deposit", async () => {
|
||||||
it("should revert if ERC20 is not allowed", async () => {
|
it("should revert if ERC20 is not allowed", async () => {
|
||||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
const pTarget = ethers.BigNumber.from(7331);
|
||||||
const root = ethers.utils.keccak256(
|
const root = ethers.utils.keccak256(
|
||||||
ethers.utils.toUtf8Bytes("root"),
|
ethers.utils.toUtf8Bytes("root"),
|
||||||
);
|
);
|
||||||
@@ -326,7 +322,7 @@ describe("P2PIX", () => {
|
|||||||
const tx = p2pix.deposit(
|
const tx = p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
1,
|
1,
|
||||||
"",
|
0,
|
||||||
true,
|
true,
|
||||||
root,
|
root,
|
||||||
);
|
);
|
||||||
@@ -337,7 +333,7 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should revert if amount exceeds the balance limit", async () => {
|
it("should revert if amount exceeds the balance limit", async () => {
|
||||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
const pTarget = ethers.BigNumber.from(7331);
|
||||||
const root = ethers.utils.keccak256(
|
const root = ethers.utils.keccak256(
|
||||||
ethers.utils.toUtf8Bytes("root"),
|
ethers.utils.toUtf8Bytes("root"),
|
||||||
);
|
);
|
||||||
@@ -355,7 +351,7 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should create deposit, update storage and emit event", async () => {
|
it("should create deposit, update storage and emit event", async () => {
|
||||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
const pTarget = ethers.BigNumber.from(7331);
|
||||||
// we use `hashZero` to avoid updating seller's allowlist settings
|
// we use `hashZero` to avoid updating seller's allowlist settings
|
||||||
const root = ethers.constants.HashZero;
|
const root = ethers.constants.HashZero;
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
@@ -387,7 +383,6 @@ describe("P2PIX", () => {
|
|||||||
erc20.address,
|
erc20.address,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
expect(tx).to.be.ok;
|
expect(tx).to.be.ok;
|
||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "DepositAdded")
|
.to.emit(p2pix, "DepositAdded")
|
||||||
@@ -398,7 +393,7 @@ describe("P2PIX", () => {
|
|||||||
["-100000000000000000000", price],
|
["-100000000000000000000", price],
|
||||||
);
|
);
|
||||||
expect(storage).to.eq(price);
|
expect(storage).to.eq(price);
|
||||||
expect(pixTarget).to.eq(await p2pix.callStatic.getStr(pTarget));
|
expect(pixTarget).to.eq(pTarget);
|
||||||
expect(valid).to.eq(true);
|
expect(valid).to.eq(true);
|
||||||
expect(allowList).to.eq(root);
|
expect(allowList).to.eq(root);
|
||||||
expect(balances[0]).to.eq(price);
|
expect(balances[0]).to.eq(price);
|
||||||
@@ -419,9 +414,9 @@ describe("P2PIX", () => {
|
|||||||
acc03.address,
|
acc03.address,
|
||||||
);
|
);
|
||||||
|
|
||||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
const pTarget = ethers.BigNumber.from(7331);
|
||||||
const pTarget2 = "12312333321";
|
const pTarget2 = ethers.BigNumber.from(1337);
|
||||||
const pTarget3 = "43999999999";
|
const pTarget3 = ethers.BigNumber.from(3731);
|
||||||
// we mock the allowlist root here only to test storage update. In depth
|
// we mock the allowlist root here only to test storage update. In depth
|
||||||
// allowlist test coverage in both "Lock" and "Allowlist Settings" unit tests.
|
// allowlist test coverage in both "Lock" and "Allowlist Settings" unit tests.
|
||||||
const root = ethers.utils.keccak256(
|
const root = ethers.utils.keccak256(
|
||||||
@@ -589,29 +584,29 @@ describe("P2PIX", () => {
|
|||||||
expect(prices[3]).to.eq(balances[3]);
|
expect(prices[3]).to.eq(balances[3]);
|
||||||
|
|
||||||
expect(storage1).to.eq(price);
|
expect(storage1).to.eq(price);
|
||||||
expect(pixTarget1).to.eq(await p2pix.callStatic.getStr(pTarget));
|
expect(pixTarget1).to.eq(pTarget);
|
||||||
expect(valid1).to.eq(true);
|
expect(valid1).to.eq(true);
|
||||||
expect(allowList1).to.eq(root);
|
expect(allowList1).to.eq(root);
|
||||||
|
|
||||||
expect(storage2).to.eq(price2);
|
expect(storage2).to.eq(price2);
|
||||||
expect(pixTarget2).to.eq(await p2pix.callStatic.getStr(pTarget2));
|
expect(pixTarget2).to.eq(pTarget2);
|
||||||
expect(valid2).to.eq(false);
|
expect(valid2).to.eq(false);
|
||||||
expect(allowList2).to.eq(nullRoot);
|
expect(allowList2).to.eq(nullRoot);
|
||||||
|
|
||||||
expect(storage3).to.eq(price3);
|
expect(storage3).to.eq(price3);
|
||||||
expect(pixTarget3).to.eq(await p2pix.callStatic.getStr(pTarget3));
|
expect(pixTarget3).to.eq(pTarget3);
|
||||||
expect(valid3).to.eq(true);
|
expect(valid3).to.eq(true);
|
||||||
expect(allowList3).to.eq(root);
|
expect(allowList3).to.eq(root);
|
||||||
|
|
||||||
expect(storage4).to.eq(price4);
|
expect(storage4).to.eq(price4);
|
||||||
expect(pixTarget4).to.eq(await p2pix.callStatic.getStr(pTarget));
|
expect(pixTarget4).to.eq(pTarget);
|
||||||
expect(valid4).to.eq(false);
|
expect(valid4).to.eq(false);
|
||||||
expect(allowList4).to.eq(nullRoot);
|
expect(allowList4).to.eq(nullRoot);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe("Lock", async () => {
|
describe("Lock", async () => {
|
||||||
it("should revert if deposit is invalid", async () => {
|
it("should revert if deposit is invalid", async () => {
|
||||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
const pTarget = ethers.BigNumber.from(7331);
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -626,17 +621,19 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
|
acc02.address,
|
||||||
|
acc03.address,
|
||||||
|
0,
|
||||||
price,
|
price,
|
||||||
// acc02.address,
|
|
||||||
// 0,
|
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
const fail2 = p2pix.lock(
|
const fail2 = p2pix.lock(
|
||||||
zero,
|
zero,
|
||||||
zero,
|
zero,
|
||||||
// zero,
|
zero,
|
||||||
// 0,
|
zero,
|
||||||
|
0,
|
||||||
price,
|
price,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -653,7 +650,7 @@ describe("P2PIX", () => {
|
|||||||
});
|
});
|
||||||
it("should revert if wished amount is greater than balance's remaining amount", async () => {
|
it("should revert if wished amount is greater than balance's remaining amount", async () => {
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
const pTarget = ethers.BigNumber.from(1337);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
price,
|
price,
|
||||||
@@ -666,8 +663,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
price.mul(ethers.BigNumber.from(2)),
|
price.mul(ethers.BigNumber.from(2)),
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -684,7 +682,7 @@ describe("P2PIX", () => {
|
|||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
price,
|
price,
|
||||||
"7ce3339x4133301u8f63pn71a5333118",
|
ethers.BigNumber.from("1337"),
|
||||||
true,
|
true,
|
||||||
merkleRoot,
|
merkleRoot,
|
||||||
);
|
);
|
||||||
@@ -693,8 +691,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
1000,
|
1000,
|
||||||
[
|
[
|
||||||
ethers.utils.keccak256(
|
ethers.utils.keccak256(
|
||||||
@@ -717,7 +716,7 @@ describe("P2PIX", () => {
|
|||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
price.mul(BigNumber.from("3")),
|
price.mul(BigNumber.from("3")),
|
||||||
"1",
|
ethers.BigNumber.from("1"),
|
||||||
true,
|
true,
|
||||||
merkleRoot,
|
merkleRoot,
|
||||||
);
|
);
|
||||||
@@ -726,8 +725,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
price.mul(BigNumber.from("2")),
|
price.mul(BigNumber.from("2")),
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -739,7 +739,7 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should create a lock, update storage and emit events via the allowlist path", async () => {
|
it("should create a lock, update storage and emit events via the allowlist path", async () => {
|
||||||
const target = "333";
|
const target = ethers.BigNumber.from(101);
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -753,8 +753,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
price,
|
price,
|
||||||
proof,
|
proof,
|
||||||
[],
|
[],
|
||||||
@@ -772,7 +773,7 @@ describe("P2PIX", () => {
|
|||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "LockAdded")
|
.to.emit(p2pix, "LockAdded")
|
||||||
.withArgs(
|
.withArgs(
|
||||||
acc01.address,
|
acc02.address,
|
||||||
ethers.constants.One,
|
ethers.constants.One,
|
||||||
key,
|
key,
|
||||||
price,
|
price,
|
||||||
@@ -780,19 +781,20 @@ describe("P2PIX", () => {
|
|||||||
expect(tx).to.be.ok;
|
expect(tx).to.be.ok;
|
||||||
expect(storage.sellerKey).to.eq(key);
|
expect(storage.sellerKey).to.eq(key);
|
||||||
expect(storage.counter).to.eq(1);
|
expect(storage.counter).to.eq(1);
|
||||||
// expect(storage.relayerPremium).to.eq(
|
expect(storage.relayerPremium).to.eq(
|
||||||
// ethers.constants.Zero,
|
ethers.constants.Zero,
|
||||||
// );
|
);
|
||||||
expect(storage.amount).to.eq(price);
|
expect(storage.amount).to.eq(price);
|
||||||
expect(storage.expirationBlock).to.eq(expiration);
|
expect(storage.expirationBlock).to.eq(expiration);
|
||||||
expect(storage.pixTarget).to.eq(await p2pix.callStatic.getStr(target));
|
expect(storage.pixTarget).to.eq(target);
|
||||||
expect(storage.buyerAddress).to.eq(acc01.address);
|
expect(storage.buyerAddress).to.eq(acc02.address);
|
||||||
// expect(storage.relayerAddress).to.eq(acc01.address);
|
expect(storage.relayerTarget).to.eq(acc03.address);
|
||||||
|
expect(storage.relayerAddress).to.eq(acc01.address);
|
||||||
expect(storage.token).to.eq(erc20.address);
|
expect(storage.token).to.eq(erc20.address);
|
||||||
});
|
});
|
||||||
it("should create a lock, update storage and emit events via the reputation path 1", async () => {
|
it("should create a lock, update storage and emit events via the reputation path 1", async () => {
|
||||||
const root = ethers.constants.HashZero;
|
const root = ethers.constants.HashZero;
|
||||||
const target = "101";
|
const target = ethers.BigNumber.from(101);
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -806,8 +808,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
price,
|
price,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -829,19 +832,20 @@ describe("P2PIX", () => {
|
|||||||
expect(castBack).to.eq(owner.address);
|
expect(castBack).to.eq(owner.address);
|
||||||
expect(storage.sellerKey).to.eq(key);
|
expect(storage.sellerKey).to.eq(key);
|
||||||
expect(storage.counter).to.eq(1);
|
expect(storage.counter).to.eq(1);
|
||||||
// expect(storage.relayerPremium).to.eq(
|
expect(storage.relayerPremium).to.eq(
|
||||||
// ethers.constants.Zero,
|
ethers.constants.Zero,
|
||||||
// );
|
);
|
||||||
expect(storage.amount).to.eq(price);
|
expect(storage.amount).to.eq(price);
|
||||||
expect(storage.expirationBlock).to.eq(expiration);
|
expect(storage.expirationBlock).to.eq(expiration);
|
||||||
expect(storage.pixTarget).to.eq(await p2pix.callStatic.getStr(target));
|
expect(storage.pixTarget).to.eq(target);
|
||||||
expect(storage.buyerAddress).to.eq(acc01.address);
|
expect(storage.buyerAddress).to.eq(acc02.address);
|
||||||
// expect(storage.relayerAddress).to.eq(acc01.address);
|
expect(storage.relayerTarget).to.eq(acc03.address);
|
||||||
|
expect(storage.relayerAddress).to.eq(acc01.address);
|
||||||
expect(storage.token).to.eq(erc20.address);
|
expect(storage.token).to.eq(erc20.address);
|
||||||
|
|
||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "LockAdded")
|
.to.emit(p2pix, "LockAdded")
|
||||||
.withArgs(acc01.address, 1, key, storage.amount);
|
.withArgs(acc02.address, 1, key, storage.amount);
|
||||||
});
|
});
|
||||||
it("should create a lock, update storage and emit events via the reputation path 2", async () => {
|
it("should create a lock, update storage and emit events via the reputation path 2", async () => {
|
||||||
const root = ethers.constants.HashZero;
|
const root = ethers.constants.HashZero;
|
||||||
@@ -849,10 +853,10 @@ describe("P2PIX", () => {
|
|||||||
.mul(ethers.constants.Two)
|
.mul(ethers.constants.Two)
|
||||||
.add(ethers.constants.One);
|
.add(ethers.constants.One);
|
||||||
const endtoendID = ethers.constants.HashZero;
|
const endtoendID = ethers.constants.HashZero;
|
||||||
const target = "101";
|
const target = ethers.BigNumber.from(101);
|
||||||
const messageToSign = ethers.utils.solidityKeccak256(
|
const messageToSign = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(target), price, endtoendID],
|
[target, price, endtoendID],
|
||||||
);
|
);
|
||||||
const messageHashBytes =
|
const messageHashBytes =
|
||||||
ethers.utils.arrayify(messageToSign);
|
ethers.utils.arrayify(messageToSign);
|
||||||
@@ -873,8 +877,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// price,
|
acc03.address,
|
||||||
|
price,
|
||||||
price,
|
price,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -883,6 +888,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
|
acc02.address,
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -893,8 +899,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
price.add(ethers.constants.One),
|
price.add(ethers.constants.One),
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -916,26 +923,27 @@ describe("P2PIX", () => {
|
|||||||
expect(castBack).to.eq(owner.address);
|
expect(castBack).to.eq(owner.address);
|
||||||
expect(storage.sellerKey).to.eq(key);
|
expect(storage.sellerKey).to.eq(key);
|
||||||
expect(storage.counter).to.eq(2);
|
expect(storage.counter).to.eq(2);
|
||||||
// expect(storage.relayerPremium).to.eq(
|
expect(storage.relayerPremium).to.eq(
|
||||||
// ethers.constants.Zero,
|
ethers.constants.Zero,
|
||||||
// );
|
);
|
||||||
expect(storage.amount).to.eq(
|
expect(storage.amount).to.eq(
|
||||||
price.add(ethers.constants.One),
|
price.add(ethers.constants.One),
|
||||||
);
|
);
|
||||||
expect(storage.expirationBlock).to.eq(expiration);
|
expect(storage.expirationBlock).to.eq(expiration);
|
||||||
expect(storage.pixTarget).to.eq(await p2pix.callStatic.getStr(target));
|
expect(storage.pixTarget).to.eq(target);
|
||||||
expect(storage.buyerAddress).to.eq(acc01.address);
|
expect(storage.buyerAddress).to.eq(acc02.address);
|
||||||
// expect(storage.relayerAddress).to.eq(acc01.address);
|
expect(storage.relayerTarget).to.eq(acc03.address);
|
||||||
|
expect(storage.relayerAddress).to.eq(acc01.address);
|
||||||
expect(storage.token).to.eq(erc20.address);
|
expect(storage.token).to.eq(erc20.address);
|
||||||
|
|
||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "LockAdded")
|
.to.emit(p2pix, "LockAdded")
|
||||||
.withArgs(acc01.address, 2, key, storage.amount);
|
.withArgs(acc02.address, 2, key, storage.amount);
|
||||||
});
|
});
|
||||||
// edge case test
|
// edge case test
|
||||||
it("should create multiple locks", async () => {
|
it("should create multiple locks", async () => {
|
||||||
const newPrice = price.div(ethers.BigNumber.from(2));
|
const newPrice = price.div(ethers.BigNumber.from(2));
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -949,8 +957,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
newPrice,
|
newPrice,
|
||||||
proof,
|
proof,
|
||||||
[],
|
[],
|
||||||
@@ -967,8 +976,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -985,8 +995,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc03.address,
|
acc03.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1075,10 +1086,10 @@ describe("P2PIX", () => {
|
|||||||
expect(storage2.counter).to.eq(2);
|
expect(storage2.counter).to.eq(2);
|
||||||
expect(storage3.counter).to.eq(3);
|
expect(storage3.counter).to.eq(3);
|
||||||
|
|
||||||
// expect(ethers.constants.Zero)
|
expect(ethers.constants.Zero)
|
||||||
// .to.eq(storage1.relayerPremium)
|
.to.eq(storage1.relayerPremium)
|
||||||
// .and.to.eq(storage2.relayerPremium)
|
.and.to.eq(storage2.relayerPremium)
|
||||||
// .and.to.eq(storage3.relayerPremium);
|
.and.to.eq(storage3.relayerPremium);
|
||||||
|
|
||||||
expect(storage1.amount).to.eq(newPrice);
|
expect(storage1.amount).to.eq(newPrice);
|
||||||
expect(ethers.BigNumber.from(100))
|
expect(ethers.BigNumber.from(100))
|
||||||
@@ -1089,25 +1100,25 @@ describe("P2PIX", () => {
|
|||||||
expect(storage2.expirationBlock).to.eq(expiration2);
|
expect(storage2.expirationBlock).to.eq(expiration2);
|
||||||
expect(storage3.expirationBlock).to.eq(expiration3);
|
expect(storage3.expirationBlock).to.eq(expiration3);
|
||||||
|
|
||||||
expect(await p2pix.callStatic.getStr(target))
|
expect(target)
|
||||||
.to.eq(storage1.pixTarget)
|
.to.eq(storage1.pixTarget)
|
||||||
.and.to.eq(storage2.pixTarget)
|
.and.to.eq(storage2.pixTarget)
|
||||||
.and.to.eq(storage3.pixTarget);
|
.and.to.eq(storage3.pixTarget);
|
||||||
|
|
||||||
expect(acc01.address)
|
expect(acc02.address)
|
||||||
.to.eq(storage1.buyerAddress)
|
.to.eq(storage1.buyerAddress)
|
||||||
.and.to.eq(storage2.buyerAddress);
|
.and.to.eq(storage2.buyerAddress);
|
||||||
expect(storage3.buyerAddress).to.eq(acc03.address);
|
expect(storage3.buyerAddress).to.eq(acc03.address);
|
||||||
|
|
||||||
// expect(acc03.address)
|
expect(acc03.address)
|
||||||
// .to.eq(storage1.relayerTarget)
|
.to.eq(storage1.relayerTarget)
|
||||||
// .and.to.eq(storage2.relayerTarget)
|
.and.to.eq(storage2.relayerTarget)
|
||||||
// .and.to.eq(storage3.relayerTarget);
|
.and.to.eq(storage3.relayerTarget);
|
||||||
|
|
||||||
// expect(acc01.address)
|
expect(acc01.address)
|
||||||
// .to.eq(storage1.relayerAddress)
|
.to.eq(storage1.relayerAddress)
|
||||||
// .and.to.eq(storage2.relayerAddress);
|
.and.to.eq(storage2.relayerAddress);
|
||||||
// expect(storage3.relayerAddress).to.eq(acc03.address);
|
expect(storage3.relayerAddress).to.eq(acc03.address);
|
||||||
|
|
||||||
expect(erc20.address)
|
expect(erc20.address)
|
||||||
.to.eq(storage1.token)
|
.to.eq(storage1.token)
|
||||||
@@ -1116,10 +1127,10 @@ describe("P2PIX", () => {
|
|||||||
|
|
||||||
await expect(tx1)
|
await expect(tx1)
|
||||||
.to.emit(p2pix, "LockAdded")
|
.to.emit(p2pix, "LockAdded")
|
||||||
.withArgs(acc01.address, 1, key, storage1.amount);
|
.withArgs(acc02.address, 1, key, storage1.amount);
|
||||||
await expect(tx2)
|
await expect(tx2)
|
||||||
.to.emit(p2pix, "LockAdded")
|
.to.emit(p2pix, "LockAdded")
|
||||||
.withArgs(acc01.address, 2, key, storage2.amount);
|
.withArgs(acc02.address, 2, key, storage2.amount);
|
||||||
await expect(tx3)
|
await expect(tx3)
|
||||||
.to.emit(p2pix, "LockAdded")
|
.to.emit(p2pix, "LockAdded")
|
||||||
.withArgs(acc03.address, 3, key, storage3.amount);
|
.withArgs(acc03.address, 3, key, storage3.amount);
|
||||||
@@ -1139,7 +1150,7 @@ describe("P2PIX", () => {
|
|||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
price,
|
price,
|
||||||
ethers.BigNumber.from(10101).toString(),
|
ethers.BigNumber.from(10101),
|
||||||
true,
|
true,
|
||||||
merkleRoot,
|
merkleRoot,
|
||||||
);
|
);
|
||||||
@@ -1166,7 +1177,7 @@ describe("P2PIX", () => {
|
|||||||
it("should cancel multiple balances", async () => {
|
it("should cancel multiple balances", async () => {
|
||||||
const hashZero = ethers.constants.HashZero;
|
const hashZero = ethers.constants.HashZero;
|
||||||
await erc20.mint([acc01.address, acc02.address], price);
|
await erc20.mint([acc01.address, acc02.address], price);
|
||||||
const target = ethers.BigNumber.from("1").toString();
|
const target = ethers.BigNumber.from("1");
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -1256,9 +1267,9 @@ describe("P2PIX", () => {
|
|||||||
});
|
});
|
||||||
describe("Release", async () => {
|
describe("Release", async () => {
|
||||||
it("should revert if lock has expired", async () => {
|
it("should revert if lock has expired", async () => {
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
const messageToSign = ethers.utils.solidityKeccak256(
|
const messageToSign = ethers.utils.solidityKeccak256(
|
||||||
["uint160", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[target, 100, ethers.constants.HashZero],
|
[target, 100, ethers.constants.HashZero],
|
||||||
);
|
);
|
||||||
const flatSig = await acc01.signMessage(
|
const flatSig = await acc01.signMessage(
|
||||||
@@ -1278,8 +1289,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 6,
|
acc03.address,
|
||||||
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1288,6 +1300,7 @@ describe("P2PIX", () => {
|
|||||||
await mine(13);
|
await mine(13);
|
||||||
const fail = p2pix.release(
|
const fail = p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
|
acc03.address,
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1300,11 +1313,11 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should revert if lock has already been released", async () => {
|
it("should revert if lock has already been released", async () => {
|
||||||
const target = ethers.BigNumber.from("1").toString();
|
const target = ethers.BigNumber.from("1");
|
||||||
const hashZero = ethers.constants.HashZero;
|
const hashZero = ethers.constants.HashZero;
|
||||||
const messageToSign = ethers.utils.solidityKeccak256(
|
const messageToSign = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(target), 100, hashZero],
|
[target, 100, hashZero],
|
||||||
);
|
);
|
||||||
const flatSig = await acc01.signMessage(
|
const flatSig = await acc01.signMessage(
|
||||||
ethers.utils.arrayify(messageToSign),
|
ethers.utils.arrayify(messageToSign),
|
||||||
@@ -1323,8 +1336,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 6,
|
acc03.address,
|
||||||
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1332,6 +1346,7 @@ describe("P2PIX", () => {
|
|||||||
const lockID = ethers.constants.One;
|
const lockID = ethers.constants.One;
|
||||||
await p2pix.release(
|
await p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
|
acc03.address,
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1339,6 +1354,7 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
const fail = p2pix.release(
|
const fail = p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
|
acc03.address,
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1351,10 +1367,10 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should revert if signed message has already been used", async () => {
|
it("should revert if signed message has already been used", async () => {
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
const messageToSign = ethers.utils.solidityKeccak256(
|
const messageToSign = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(target), 100, ethers.constants.HashZero],
|
[target, 100, ethers.constants.HashZero],
|
||||||
);
|
);
|
||||||
const flatSig = await owner.signMessage(
|
const flatSig = await owner.signMessage(
|
||||||
ethers.utils.arrayify(messageToSign),
|
ethers.utils.arrayify(messageToSign),
|
||||||
@@ -1373,8 +1389,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 6,
|
acc03.address,
|
||||||
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1384,6 +1401,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
|
acc02.address,
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1394,8 +1412,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 6,
|
acc03.address,
|
||||||
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1404,6 +1423,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
2,
|
2,
|
||||||
|
acc02.address,
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1416,10 +1436,10 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should revert if ecrecovered signer is invalid", async () => {
|
it("should revert if ecrecovered signer is invalid", async () => {
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
const messageToSign = ethers.utils.solidityKeccak256(
|
const messageToSign = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(target), 100, ethers.constants.HashZero],
|
[target, 100, ethers.constants.HashZero],
|
||||||
);
|
);
|
||||||
const flatSig = await acc03.signMessage(
|
const flatSig = await acc03.signMessage(
|
||||||
ethers.utils.arrayify(messageToSign),
|
ethers.utils.arrayify(messageToSign),
|
||||||
@@ -1439,8 +1459,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 6,
|
acc03.address,
|
||||||
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1449,6 +1470,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
|
acc02.address,
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1463,10 +1485,10 @@ describe("P2PIX", () => {
|
|||||||
it("should release lock, update storage and emit events", async () => {
|
it("should release lock, update storage and emit events", async () => {
|
||||||
const zero = ethers.constants.Zero;
|
const zero = ethers.constants.Zero;
|
||||||
const endtoendID = ethers.constants.HashZero;
|
const endtoendID = ethers.constants.HashZero;
|
||||||
const pixTarget = ethers.BigNumber.from(101).toString();
|
const pixTarget = ethers.BigNumber.from(101);
|
||||||
const messageToSign = ethers.utils.solidityKeccak256(
|
const messageToSign = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(pixTarget), 100, endtoendID],
|
[pixTarget, 100, endtoendID],
|
||||||
);
|
);
|
||||||
// Note: messageToSign is a string, that is 66-bytes long, to sign the
|
// Note: messageToSign is a string, that is 66-bytes long, to sign the
|
||||||
// binary value, we must convert it to the 32 byte Array that
|
// binary value, we must convert it to the 32 byte Array that
|
||||||
@@ -1499,8 +1521,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 6,
|
acc03.address,
|
||||||
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1524,6 +1547,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
|
acc02.address,
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1577,7 +1601,7 @@ describe("P2PIX", () => {
|
|||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "LockReleased")
|
.to.emit(p2pix, "LockReleased")
|
||||||
.withArgs(
|
.withArgs(
|
||||||
acc03.address,
|
acc02.address,
|
||||||
ethers.constants.One,
|
ethers.constants.One,
|
||||||
storage1.amount,
|
storage1.amount,
|
||||||
);
|
);
|
||||||
@@ -1605,18 +1629,20 @@ describe("P2PIX", () => {
|
|||||||
expect(used).to.eq(true);
|
expect(used).to.eq(true);
|
||||||
expect(userRecordA).to.eq(zero);
|
expect(userRecordA).to.eq(zero);
|
||||||
expect(userRecord1).to.eq(zero);
|
expect(userRecord1).to.eq(zero);
|
||||||
expect(userRecordB).to.eq(ethers.BigNumber.from(50));
|
expect(userRecordB).to.eq(ethers.BigNumber.from(6));
|
||||||
expect(userRecord2).to.eq(ethers.BigNumber.from(50));
|
expect(userRecord2).to.eq(ethers.BigNumber.from(100));
|
||||||
await expect(tx).to.changeTokenBalances(
|
await expect(tx).to.changeTokenBalances(
|
||||||
erc20,
|
erc20,
|
||||||
[acc03.address, acc01.address, acc02.address ],
|
[acc03.address, acc02.address],
|
||||||
[100, 0, 0],
|
[3, 97],
|
||||||
|
// acc02 is acting both as buyer and relayerTarget
|
||||||
|
// (i.e., 94 + 3 = 97)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
// edge case test
|
// edge case test
|
||||||
it("should release multiple locks", async () => {
|
it("should release multiple locks", async () => {
|
||||||
const endtoendID = ethers.constants.HashZero;
|
const endtoendID = ethers.constants.HashZero;
|
||||||
const pixTarget = ethers.BigNumber.from(101).toString();
|
const pixTarget = ethers.BigNumber.from(101);
|
||||||
const root = ethers.constants.HashZero;
|
const root = ethers.constants.HashZero;
|
||||||
const acc01Key = await p2pix.callStatic._castAddrToKey(
|
const acc01Key = await p2pix.callStatic._castAddrToKey(
|
||||||
acc01.address,
|
acc01.address,
|
||||||
@@ -1631,24 +1657,24 @@ describe("P2PIX", () => {
|
|||||||
acc03Key,
|
acc03Key,
|
||||||
);
|
);
|
||||||
const messageToSign1 = ethers.utils.solidityKeccak256(
|
const messageToSign1 = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(pixTarget), 100, endtoendID],
|
[pixTarget, 100, endtoendID],
|
||||||
);
|
);
|
||||||
const flatSig1 = await owner.signMessage(
|
const flatSig1 = await owner.signMessage(
|
||||||
ethers.utils.arrayify(messageToSign1),
|
ethers.utils.arrayify(messageToSign1),
|
||||||
);
|
);
|
||||||
const sig1 = ethers.utils.splitSignature(flatSig1);
|
const sig1 = ethers.utils.splitSignature(flatSig1);
|
||||||
const messageToSign2 = ethers.utils.solidityKeccak256(
|
const messageToSign2 = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(pixTarget), 50, endtoendID],
|
[pixTarget, 50, endtoendID],
|
||||||
);
|
);
|
||||||
const flatSig2 = await owner.signMessage(
|
const flatSig2 = await owner.signMessage(
|
||||||
ethers.utils.arrayify(messageToSign2),
|
ethers.utils.arrayify(messageToSign2),
|
||||||
);
|
);
|
||||||
const sig2 = ethers.utils.splitSignature(flatSig2);
|
const sig2 = ethers.utils.splitSignature(flatSig2);
|
||||||
const messageToSign3 = ethers.utils.solidityKeccak256(
|
const messageToSign3 = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(pixTarget), 25, endtoendID],
|
[pixTarget, 25, endtoendID],
|
||||||
);
|
);
|
||||||
const flatSig3 = await owner.signMessage(
|
const flatSig3 = await owner.signMessage(
|
||||||
ethers.utils.arrayify(messageToSign3),
|
ethers.utils.arrayify(messageToSign3),
|
||||||
@@ -1667,8 +1693,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1678,8 +1705,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 6,
|
acc03.address,
|
||||||
|
6,
|
||||||
50,
|
50,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1689,8 +1717,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 10,
|
acc03.address,
|
||||||
|
10,
|
||||||
25,
|
25,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1725,6 +1754,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
lockID,
|
lockID,
|
||||||
|
acc02.address,
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig1.r,
|
sig1.r,
|
||||||
sig1.s,
|
sig1.s,
|
||||||
@@ -1736,6 +1766,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
lockID2,
|
lockID2,
|
||||||
|
acc02.address,
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig2.r,
|
sig2.r,
|
||||||
sig2.s,
|
sig2.s,
|
||||||
@@ -1747,6 +1778,7 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc03)
|
.connect(acc03)
|
||||||
.release(
|
.release(
|
||||||
lockID3,
|
lockID3,
|
||||||
|
acc02.address,
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig3.r,
|
sig3.r,
|
||||||
sig3.s,
|
sig3.s,
|
||||||
@@ -1794,19 +1826,19 @@ describe("P2PIX", () => {
|
|||||||
expect(tx2).to.be.ok;
|
expect(tx2).to.be.ok;
|
||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "LockReleased")
|
.to.emit(p2pix, "LockReleased")
|
||||||
.withArgs(acc03.address, lockID, storage1.amount);
|
.withArgs(acc02.address, lockID, storage1.amount);
|
||||||
await expect(tx1)
|
await expect(tx1)
|
||||||
.to.emit(p2pix, "LockReleased")
|
.to.emit(p2pix, "LockReleased")
|
||||||
.withArgs(acc03.address, lockID2, storage2.amount);
|
.withArgs(acc02.address, lockID2, storage2.amount);
|
||||||
await expect(tx2)
|
await expect(tx2)
|
||||||
.to.emit(p2pix, "LockReleased")
|
.to.emit(p2pix, "LockReleased")
|
||||||
.withArgs(acc03.address, lockID3, storage3.amount);
|
.withArgs(acc02.address, lockID3, storage3.amount);
|
||||||
expect(used1).to.eq(true);
|
expect(used1).to.eq(true);
|
||||||
expect(used2).to.eq(true);
|
expect(used2).to.eq(true);
|
||||||
expect(used3).to.eq(true);
|
expect(used3).to.eq(true);
|
||||||
expect(0).to.eq(acc01Record1).and.to.eq(acc03Record1);
|
expect(0).to.eq(acc01Record1).and.to.eq(acc03Record1);
|
||||||
expect(acc01Record2).to.eq(75); // 50 + 25 + 0
|
expect(acc01Record2).to.eq(6); // 0 + 6
|
||||||
expect(acc03Record2).to.eq(100); // 50 + 25 + 25
|
expect(acc03Record2).to.eq(185); // 100 + 50 + 25 + 10
|
||||||
|
|
||||||
const addresses = [
|
const addresses = [
|
||||||
acc01.address,
|
acc01.address,
|
||||||
@@ -1816,9 +1848,9 @@ describe("P2PIX", () => {
|
|||||||
];
|
];
|
||||||
|
|
||||||
const balances = [
|
const balances = [
|
||||||
[0, 0, 100, "-100"],
|
[0, 100, 0, "-100"],
|
||||||
[0, 0, 50, "-50"],
|
[0, 47, 3, "-50"],
|
||||||
[0, 0, 25, "-25"],
|
[0, 20, 5, "-25"],
|
||||||
];
|
];
|
||||||
|
|
||||||
for (let i = 0; i < 3; i++) {
|
for (let i = 0; i < 3; i++) {
|
||||||
@@ -1852,7 +1884,7 @@ describe("P2PIX", () => {
|
|||||||
});
|
});
|
||||||
describe("Unexpire Locks", async () => {
|
describe("Unexpire Locks", async () => {
|
||||||
it("should revert if lock isn't expired", async () => {
|
it("should revert if lock isn't expired", async () => {
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -1866,8 +1898,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
1,
|
1,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1882,10 +1915,10 @@ describe("P2PIX", () => {
|
|||||||
});
|
});
|
||||||
it("should revert if lock has already been released", async () => {
|
it("should revert if lock has already been released", async () => {
|
||||||
const endtoendID = ethers.constants.HashZero;
|
const endtoendID = ethers.constants.HashZero;
|
||||||
const pixTarget = ethers.BigNumber.from(101).toString();
|
const pixTarget = ethers.BigNumber.from(101);
|
||||||
const messageToSign = ethers.utils.solidityKeccak256(
|
const messageToSign = ethers.utils.solidityKeccak256(
|
||||||
["bytes32", "uint80", "bytes32"],
|
["uint160", "uint256", "bytes32"],
|
||||||
[await p2pix.callStatic.getStr(pixTarget), 1, endtoendID],
|
[pixTarget, 1, endtoendID],
|
||||||
);
|
);
|
||||||
const messageHashBytes =
|
const messageHashBytes =
|
||||||
ethers.utils.arrayify(messageToSign);
|
ethers.utils.arrayify(messageToSign);
|
||||||
@@ -1906,8 +1939,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
1,
|
1,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1916,6 +1950,7 @@ describe("P2PIX", () => {
|
|||||||
// await mine(10);
|
// await mine(10);
|
||||||
await p2pix.release(
|
await p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
|
acc03.address,
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@@ -1929,7 +1964,7 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should unlock expired locks, update storage and emit events", async () => {
|
it("should unlock expired locks, update storage and emit events", async () => {
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -1943,8 +1978,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
1,
|
1,
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
@@ -1993,7 +2029,7 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should unlock expired through lock function", async () => {
|
it("should unlock expired through lock function", async () => {
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
// test method through lock fx
|
// test method through lock fx
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
@@ -2008,8 +2044,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
price,
|
price,
|
||||||
proof,
|
proof,
|
||||||
[],
|
[],
|
||||||
@@ -2049,8 +2086,9 @@ describe("P2PIX", () => {
|
|||||||
const tx1 = await p2pix.lock(
|
const tx1 = await p2pix.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
[lockID],
|
[lockID],
|
||||||
@@ -2063,13 +2101,13 @@ describe("P2PIX", () => {
|
|||||||
expect(tx1).to.be.ok;
|
expect(tx1).to.be.ok;
|
||||||
await expect(tx1)
|
await expect(tx1)
|
||||||
.to.emit(p2pix, "LockReturned")
|
.to.emit(p2pix, "LockReturned")
|
||||||
.withArgs(acc01.address, lockID);
|
.withArgs(acc02.address, lockID);
|
||||||
expect(remaining).to.eq(
|
expect(remaining).to.eq(
|
||||||
price.sub(ethers.BigNumber.from(100)),
|
price.sub(ethers.BigNumber.from(100)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it("should unlock expired through withdraw function", async () => {
|
it("should unlock expired through withdraw function", async () => {
|
||||||
const target = ethers.constants.One.toString();
|
const target = ethers.constants.One;
|
||||||
// test method through withdraw fx
|
// test method through withdraw fx
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
@@ -2084,8 +2122,9 @@ describe("P2PIX", () => {
|
|||||||
.lock(
|
.lock(
|
||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
// acc02.address,
|
acc02.address,
|
||||||
// 0,
|
acc03.address,
|
||||||
|
0,
|
||||||
price,
|
price,
|
||||||
proof,
|
proof,
|
||||||
[],
|
[],
|
||||||
@@ -2104,14 +2143,14 @@ describe("P2PIX", () => {
|
|||||||
expect(tx).to.be.ok;
|
expect(tx).to.be.ok;
|
||||||
await expect(tx)
|
await expect(tx)
|
||||||
.to.emit(p2pix, "LockReturned")
|
.to.emit(p2pix, "LockReturned")
|
||||||
.withArgs(acc01.address, lockID);
|
.withArgs(acc02.address, lockID);
|
||||||
expect(remaining).to.eq(0);
|
expect(remaining).to.eq(0);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Seller Withdraw", async () => {
|
describe("Seller Withdraw", async () => {
|
||||||
it("should revert if the wished amount is invalid", async () => {
|
it("should revert if the wished amount is invalid", async () => {
|
||||||
const target = ethers.BigNumber.from(101).toString();
|
const target = ethers.BigNumber.from(101);
|
||||||
await erc20.approve(p2pix.address, price);
|
await erc20.approve(p2pix.address, price);
|
||||||
await p2pix.deposit(
|
await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
@@ -2139,7 +2178,7 @@ describe("P2PIX", () => {
|
|||||||
const dep = await p2pix.deposit(
|
const dep = await p2pix.deposit(
|
||||||
erc20.address,
|
erc20.address,
|
||||||
price,
|
price,
|
||||||
ethers.BigNumber.from(101).toString(),
|
ethers.BigNumber.from(101),
|
||||||
true,
|
true,
|
||||||
merkleRoot,
|
merkleRoot,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
export enum P2PixErrors {
|
export enum P2PixErrors {
|
||||||
|
DepositAlreadyExists = "DepositAlreadyExists",
|
||||||
OnlySeller = "OnlySeller",
|
OnlySeller = "OnlySeller",
|
||||||
NotExpired = "NotExpired",
|
NotExpired = "NotExpired",
|
||||||
LoopOverflow = "LoopOverflow",
|
LoopOverflow = "LoopOverflow",
|
||||||
@@ -7,7 +8,7 @@ export enum P2PixErrors {
|
|||||||
AlreadyReleased = "AlreadyReleased",
|
AlreadyReleased = "AlreadyReleased",
|
||||||
TxAlreadyUsed = "TxAlreadyUsed",
|
TxAlreadyUsed = "TxAlreadyUsed",
|
||||||
InvalidSigner = "InvalidSigner",
|
InvalidSigner = "InvalidSigner",
|
||||||
Unauthorized = "Unauthorized",
|
UNAUTHORIZED = "UNAUTHORIZED",
|
||||||
TokenDenied = "TokenDenied",
|
TokenDenied = "TokenDenied",
|
||||||
NoTokens = "NoTokens",
|
NoTokens = "NoTokens",
|
||||||
LengthMismatch = "LengthMismatch",
|
LengthMismatch = "LengthMismatch",
|
||||||
|
|||||||
@@ -22,11 +22,14 @@ export interface Deploys {
|
|||||||
export interface Lock {
|
export interface Lock {
|
||||||
sellerKey: BigNumber;
|
sellerKey: BigNumber;
|
||||||
counter: BigNumber;
|
counter: BigNumber;
|
||||||
expirationBlock: BigNumber;
|
relayerPremium: BigNumber;
|
||||||
pixTarget: string;
|
|
||||||
token: string;
|
|
||||||
buyerAddress: string;
|
|
||||||
amount: BigNumber;
|
amount: BigNumber;
|
||||||
|
expirationBlock: BigNumber;
|
||||||
|
pixTarget: BigNumber;
|
||||||
|
buyerAddress: string;
|
||||||
|
relayerTarget: string;
|
||||||
|
relayerAddress: string;
|
||||||
|
token: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Call {
|
export interface Call {
|
||||||
|
|||||||
34
yarn.lock
34
yarn.lock
@@ -409,13 +409,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@colors/colors@npm:1.5.0":
|
|
||||||
version: 1.5.0
|
|
||||||
resolution: "@colors/colors@npm:1.5.0"
|
|
||||||
checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@commitlint/cli@npm:^17.2.0":
|
"@commitlint/cli@npm:^17.2.0":
|
||||||
version: 17.2.0
|
version: 17.2.0
|
||||||
resolution: "@commitlint/cli@npm:17.2.0"
|
resolution: "@commitlint/cli@npm:17.2.0"
|
||||||
@@ -3695,19 +3688,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"cli-table3@npm:^0.6.0":
|
|
||||||
version: 0.6.3
|
|
||||||
resolution: "cli-table3@npm:0.6.3"
|
|
||||||
dependencies:
|
|
||||||
"@colors/colors": 1.5.0
|
|
||||||
string-width: ^4.2.0
|
|
||||||
dependenciesMeta:
|
|
||||||
"@colors/colors":
|
|
||||||
optional: true
|
|
||||||
checksum: 09897f68467973f827c04e7eaadf13b55f8aec49ecd6647cc276386ea660059322e2dd8020a8b6b84d422dbdd619597046fa89cbbbdc95b2cea149a2df7c096c
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"cli-truncate@npm:^2.1.0":
|
"cli-truncate@npm:^2.1.0":
|
||||||
version: 2.1.0
|
version: 2.1.0
|
||||||
resolution: "cli-truncate@npm:2.1.0"
|
resolution: "cli-truncate@npm:2.1.0"
|
||||||
@@ -6056,19 +6036,6 @@ fsevents@~2.1.1:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"hardhat-contract-sizer@npm:^2.8.0":
|
|
||||||
version: 2.8.0
|
|
||||||
resolution: "hardhat-contract-sizer@npm:2.8.0"
|
|
||||||
dependencies:
|
|
||||||
chalk: ^4.0.0
|
|
||||||
cli-table3: ^0.6.0
|
|
||||||
strip-ansi: ^6.0.0
|
|
||||||
peerDependencies:
|
|
||||||
hardhat: ^2.0.0
|
|
||||||
checksum: 6f1f4aca16a8ceeb9b3ce8ec89075c2fb292a3c82941ae826a9d503e077fda58e1d62b5c561252385c320a978d65399a2e829cec7c643250eaca163546831cbb
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"hardhat-gas-reporter@npm:^1.0.9":
|
"hardhat-gas-reporter@npm:^1.0.9":
|
||||||
version: 1.0.9
|
version: 1.0.9
|
||||||
resolution: "hardhat-gas-reporter@npm:1.0.9"
|
resolution: "hardhat-gas-reporter@npm:1.0.9"
|
||||||
@@ -8492,7 +8459,6 @@ fsevents@~2.1.1:
|
|||||||
ethers: ^5.7.2
|
ethers: ^5.7.2
|
||||||
fs-extra: ^10.1.0
|
fs-extra: ^10.1.0
|
||||||
hardhat: ^2.12.2
|
hardhat: ^2.12.2
|
||||||
hardhat-contract-sizer: ^2.8.0
|
|
||||||
hardhat-gas-reporter: ^1.0.9
|
hardhat-gas-reporter: ^1.0.9
|
||||||
hardhat-tracer: beta
|
hardhat-tracer: beta
|
||||||
husky: ^8.0.1
|
husky: ^8.0.1
|
||||||
|
|||||||
Reference in New Issue
Block a user