✨ Added ERC2771 support & Increased pixTarget max size
This commit is contained in:
parent
2129566a27
commit
32469e2480
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
"abi": [
|
||||
{
|
||||
"inputs": [],
|
||||
"stateMutability": "nonpayable",
|
||||
"stateMutability": "payable",
|
||||
"type": "constructor"
|
||||
},
|
||||
{
|
||||
@ -54,8 +54,8 @@
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"bytecode": "0x60808060405234610016576102c9908161001c8239f35b600080fdfe6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212201f57ae0c5884bdde41f85c3510ca33502ea7408e92d2669d2cb4da374119f5e064736f6c63430008130033",
|
||||
"deployedBytecode": "0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212201f57ae0c5884bdde41f85c3510ca33502ea7408e92d2669d2cb4da374119f5e064736f6c63430008130033",
|
||||
"bytecode": "0x6080806040526102c990816100128239f3fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212202029db6a087d223f768aabc1fe8120c7f9d7e525e947a354114a42f80a3955db64736f6c63430008130033",
|
||||
"deployedBytecode": "0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212202029db6a087d223f768aabc1fe8120c7f9d7e525e947a354114a42f80a3955db64736f6c63430008130033",
|
||||
"linkReferences": {},
|
||||
"deployedLinkReferences": {}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -83,6 +83,11 @@
|
||||
"name": "OnlySeller",
|
||||
"type": "error"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "Reentrancy",
|
||||
"type": "error"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "StaticCallFailed",
|
||||
@ -330,6 +335,25 @@
|
||||
"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": [
|
||||
@ -438,6 +462,44 @@
|
||||
"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",
|
||||
@ -522,6 +584,24 @@
|
||||
"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": [
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../build-info/c96aab92784d63ce08c6b112913f46c8.json"
|
||||
"buildInfo": "../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -3,8 +3,8 @@
|
||||
"contractName": "DataTypes",
|
||||
"sourceName": "contracts/core/DataTypes.sol",
|
||||
"abi": [],
|
||||
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ed19291aba408239fe7ce17eba420cb350ea83c88994bb2b37733371feac745f64736f6c63430008130033",
|
||||
"deployedBytecode": "0x600080fdfea2646970667358221220ed19291aba408239fe7ce17eba420cb350ea83c88994bb2b37733371feac745f64736f6c63430008130033",
|
||||
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a40e6f94f4c0b9a9cdd9ac64f98613aece8f5a3f084ee1eca35eba466df9810964736f6c63430008130033",
|
||||
"deployedBytecode": "0x600080fdfea2646970667358221220a40e6f94f4c0b9a9cdd9ac64f98613aece8f5a3f084ee1eca35eba466df9810964736f6c63430008130033",
|
||||
"linkReferences": {},
|
||||
"deployedLinkReferences": {}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -306,6 +306,25 @@
|
||||
"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": [
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -330,6 +330,25 @@
|
||||
"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": [
|
||||
@ -400,6 +419,25 @@
|
||||
"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",
|
||||
@ -484,6 +522,24 @@
|
||||
"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": [
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -0,0 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"_format": "hh-sol-artifact-1",
|
||||
"contractName": "Context",
|
||||
"sourceName": "contracts/lib/metatx/ERC2771Context.sol",
|
||||
"abi": [],
|
||||
"bytecode": "0x",
|
||||
"deployedBytecode": "0x",
|
||||
"linkReferences": {},
|
||||
"deployedLinkReferences": {}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
{
|
||||
"_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",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../../../build-info/e227c161b97af39988677e65180082ec.json"
|
||||
"buildInfo": "../../../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"_format": "hh-sol-dbg-1",
|
||||
"buildInfo": "../../build-info/2fbad03752b21beeabf4fed16acdbf91.json"
|
||||
"buildInfo": "../../build-info/291bd612212fb4c1e87cae2657c915eb.json"
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -12,7 +12,7 @@ contract Reputation is IReputation {
|
||||
// prettier-ignore
|
||||
// solhint-disable no-inline-assembly
|
||||
// solhint-disable-next-line no-empty-blocks
|
||||
constructor(/* */) {/* */}
|
||||
constructor(/* */) payable {/* */}
|
||||
|
||||
function limiter(
|
||||
uint256 _userCredit
|
||||
|
@ -2,10 +2,15 @@
|
||||
pragma solidity 0.8.19;
|
||||
|
||||
import { 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 {
|
||||
abstract contract BaseUtils is
|
||||
OwnerSettings,
|
||||
ReentrancyGuard
|
||||
{
|
||||
/// ███ Storage ████████████████████████████████████████████████████████████
|
||||
|
||||
/// @dev List of Pix transactions already signed.
|
||||
@ -67,26 +72,26 @@ abstract contract BaseUtils is OwnerSettings {
|
||||
) revert AddressDenied();
|
||||
}
|
||||
|
||||
function _castToUint(
|
||||
uint96 _amount,
|
||||
uint160 _pixTarget,
|
||||
function _castBool(
|
||||
bool _valid
|
||||
)
|
||||
internal
|
||||
pure
|
||||
returns (
|
||||
uint256 _amountCasted,
|
||||
uint256 _pixTargetCasted,
|
||||
uint256 _validCasted
|
||||
)
|
||||
{
|
||||
) internal pure returns (uint256 _validCasted) {
|
||||
assembly {
|
||||
_amountCasted := _amount
|
||||
_pixTargetCasted := _pixTarget
|
||||
_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))
|
||||
}
|
||||
}
|
||||
|
||||
/// @notice Public method that handles `address`
|
||||
/// to `uint256` safe type casting.
|
||||
/// @dev Function sighash: 0x4b2ae980.
|
||||
|
@ -8,6 +8,8 @@ abstract contract Constants {
|
||||
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;
|
||||
@ -18,12 +20,12 @@ abstract contract Constants {
|
||||
|
||||
/// @dev `balance` max. value = 10**26.
|
||||
/// @dev `pixTarget` keys are restricted to 160 bits.
|
||||
/// mapping(uint256 => mapping(ERC20 => uint256)) public sellerBalance;
|
||||
/// mapping(uint256 => mapping(ERC20 => { `uint256`, `uint96` } )) public sellerBalance;
|
||||
|
||||
/// @dev Bits layout:
|
||||
/// `bytes32` [0...255] := pixTarget
|
||||
/// `uint96` [0...94] := balance
|
||||
/// `uint160` [95...254] := pixTarget
|
||||
/// `bool` [255] := valid
|
||||
/// `bool` [95] := valid
|
||||
|
||||
/// @dev Value in custom storage slot given by:
|
||||
/// mstore(0x20, token)
|
||||
@ -34,12 +36,10 @@ abstract contract Constants {
|
||||
|
||||
/// @dev The bitmask of `sellerBalance` entry.
|
||||
uint256 constant BITMASK_SB_ENTRY = (1 << 94) - 1;
|
||||
/// @dev The bit position of `pixTarget` in `sellerBalance`.
|
||||
uint256 constant BITPOS_PIXTARGET = 95;
|
||||
/// @dev The bit position of `valid` in `sellerBalance`.
|
||||
uint256 constant BITPOS_VALID = 255;
|
||||
uint256 constant BITPOS_VALID = 95;
|
||||
/// @dev The bitmask of all 256 bits of `sellerBalance` except for the last one.
|
||||
uint256 constant BITMASK_VALID = (1 << 255) - 1;
|
||||
// uint256 constant BITMASK_VALID = (1 << 255) - 1;
|
||||
|
||||
/// @dev The scalar of BRZ token.
|
||||
uint256 constant WAD = 1e18;
|
||||
|
@ -3,15 +3,13 @@ pragma solidity 0.8.19;
|
||||
|
||||
library DataTypes {
|
||||
struct Lock {
|
||||
uint80 amount;
|
||||
uint160 pixTarget;
|
||||
address token;
|
||||
/// @dev Amount to be tranfered via PIX.
|
||||
address buyerAddress;
|
||||
uint256 sellerKey;
|
||||
uint256 counter;
|
||||
/// @dev If not paid at this block will be expired.
|
||||
uint256 expirationBlock;
|
||||
bytes32 pixTarget;
|
||||
uint80 amount;
|
||||
address token;
|
||||
address buyerAddress;
|
||||
}
|
||||
|
||||
// prettier-ignore
|
||||
|
@ -57,6 +57,11 @@ interface EventAndErrors {
|
||||
address indexed token,
|
||||
bool indexed state
|
||||
);
|
||||
/// @dev 0xbee55516e29d3969d3cb8eb01351eb3c52d06f9e2435bd5a8bfe3647e185df92
|
||||
event TrustedForwarderUpdated(
|
||||
address indexed forwarder,
|
||||
bool indexed state
|
||||
);
|
||||
/// @dev 0xe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f
|
||||
event ReputationUpdated(address reputation);
|
||||
/// @dev 0x70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511
|
||||
@ -64,6 +69,7 @@ interface EventAndErrors {
|
||||
/// @dev 0x14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d7
|
||||
event ValidSignersUpdated(address[] signers);
|
||||
|
||||
|
||||
/// ███ Errors ████████████████████████████████████████████████████████████
|
||||
|
||||
/// @dev Only seller could call this function.
|
||||
|
@ -1,6 +1,7 @@
|
||||
// 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";
|
||||
@ -10,7 +11,8 @@ import { Owned } from "../lib/auth/Owned.sol";
|
||||
abstract contract OwnerSettings is
|
||||
Constants,
|
||||
EventAndErrors,
|
||||
Owned(msg.sender)
|
||||
Owned(msg.sender),
|
||||
ERC2771
|
||||
{
|
||||
/// ███ Storage ████████████████████████████████████████████████████████████
|
||||
|
||||
@ -40,6 +42,48 @@ abstract contract OwnerSettings is
|
||||
|
||||
/// ███ 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 {
|
||||
|
94
contracts/lib/metatx/ERC2771Context.sol
Normal file
94
contracts/lib/metatx/ERC2771Context.sol
Normal file
@ -0,0 +1,94 @@
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
}
|
@ -11,11 +11,11 @@ pragma solidity 0.8.19;
|
||||
|
||||
import { OwnerSettings, ERC20, SafeTransferLib } from "./core/OwnerSettings.sol";
|
||||
import { BaseUtils } from "./core/BaseUtils.sol";
|
||||
import { ReentrancyGuard } from "./lib/utils/ReentrancyGuard.sol";
|
||||
import { DataTypes as DT } from "./core/DataTypes.sol";
|
||||
|
||||
|
||||
contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
|
||||
contract P2PIX is BaseUtils {
|
||||
// solhint-disable use-forbidden-name
|
||||
// solhint-disable no-inline-assembly
|
||||
// solhint-disable no-empty-blocks
|
||||
@ -62,19 +62,20 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
function deposit(
|
||||
address _token,
|
||||
uint96 _amount,
|
||||
uint160 _pixTarget,
|
||||
string memory _pixTarget,
|
||||
bool _valid,
|
||||
bytes32 allowlistRoot
|
||||
) public {
|
||||
ERC20 t = ERC20(_token);
|
||||
uint256 k = _castAddrToKey(msg.sender);
|
||||
|
||||
if (_pixTarget == 0) revert EmptyPixTarget();
|
||||
if (bytes(_pixTarget).length == 0) revert EmptyPixTarget();
|
||||
if (!allowedERC20s(t)) revert TokenDenied();
|
||||
uint256 _sellerBalance = sellerBalance(k,t);
|
||||
uint256 _sellerBalance = __sellerBalance(k,t);
|
||||
|
||||
uint256 currBal = _sellerBalance & BITMASK_SB_ENTRY;
|
||||
if ((currBal + _amount) > MAXBALANCE_UPPERBOUND)
|
||||
uint256 _newBal = uint256(currBal + _amount);
|
||||
if (_newBal > MAXBALANCE_UPPERBOUND)
|
||||
revert MaxBalExceeded();
|
||||
|
||||
setReentrancyGuard();
|
||||
@ -83,21 +84,14 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
setRoot(msg.sender, allowlistRoot);
|
||||
}
|
||||
|
||||
uint256 amountCasted;
|
||||
uint256 pixTargetCasted;
|
||||
uint256 validCasted;
|
||||
(
|
||||
amountCasted,
|
||||
pixTargetCasted,
|
||||
validCasted
|
||||
) = _castToUint(_amount, _pixTarget, _valid);
|
||||
bytes32 pixTargetCasted = getStr(_pixTarget);
|
||||
uint256 validCasted = _castBool(_valid);
|
||||
|
||||
_setSellerBalance(
|
||||
k,
|
||||
t,
|
||||
((currBal + amountCasted) |
|
||||
(pixTargetCasted << BITPOS_PIXTARGET) |
|
||||
(validCasted << BITPOS_VALID))
|
||||
(_newBal | (validCasted << BITPOS_VALID)),
|
||||
pixTargetCasted
|
||||
);
|
||||
|
||||
SafeTransferLib.safeTransferFrom(
|
||||
@ -118,19 +112,16 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
/// @dev Function sighash: 0x72fada5c.
|
||||
function setValidState(ERC20 token, bool state) public {
|
||||
uint256 key = _castAddrToKey(msg.sender);
|
||||
uint256 _sellerBalance = sellerBalance(key, token);
|
||||
uint256 _sellerBalance = __sellerBalance(key, token);
|
||||
|
||||
if (_sellerBalance != 0) {
|
||||
uint256 _valid;
|
||||
assembly {
|
||||
_valid := state
|
||||
}
|
||||
uint256 _valid = _castBool(state);
|
||||
|
||||
_sellerBalance =
|
||||
(_sellerBalance & BITMASK_VALID) |
|
||||
(_sellerBalance & BITMASK_SB_ENTRY) |
|
||||
(_valid << BITPOS_VALID);
|
||||
|
||||
_setSellerBalance(key, token, _sellerBalance);
|
||||
_setValidState(key, token, _sellerBalance);
|
||||
|
||||
emit ValidSet(msg.sender, address(token), state);
|
||||
} else revert NotInitialized();
|
||||
@ -175,33 +166,43 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
mapLocks[cCounter].expirationBlock >= block.number
|
||||
) revert NotExpired();
|
||||
|
||||
address sender; uint256 forwarder;
|
||||
(sender, forwarder) = _isTrustedForwarder();
|
||||
|
||||
DT.Lock memory l = DT.Lock(
|
||||
_amount,
|
||||
uint160(sellerBalance(k, t) >> BITPOS_PIXTARGET),
|
||||
address(t),
|
||||
msg.sender,
|
||||
k,
|
||||
cCounter,
|
||||
(block.number + defaultLockBlocks)
|
||||
(block.number + defaultLockBlocks),
|
||||
getPixTarget(_seller, t),
|
||||
_amount,
|
||||
address(t),
|
||||
sender
|
||||
);
|
||||
|
||||
// transaction forwarding must leave `merkleProof` empty;
|
||||
// otherwise, the trustedForwarder must be previously added
|
||||
// to a seller whitelist.
|
||||
if (merkleProof.length != 0) {
|
||||
_merkleVerify(merkleProof, sellerAllowList(k), msg.sender);
|
||||
_merkleVerify(merkleProof, sellerAllowList(k), sender);
|
||||
lockID = _addLock(bal, _amount, cCounter, l, t, k);
|
||||
|
||||
} else {
|
||||
if (l.amount <= REPUTATION_LOWERBOUND) {
|
||||
lockID = _addLock(bal, _amount, cCounter, l, t, k);
|
||||
|
||||
} else {
|
||||
if (forwarder != 0) {
|
||||
lockID = _addLock(bal, _amount, cCounter, l, t, k);
|
||||
} else {
|
||||
uint256 userCredit = userRecord[_castAddrToKey(msg.sender)];
|
||||
uint256 spendLimit; (spendLimit) = _limiter(userCredit / WAD);
|
||||
if (
|
||||
l.amount > (spendLimit * WAD) || l.amount > LOCKAMOUNT_UPPERBOUND
|
||||
l.amount > (spendLimit * WAD) ||
|
||||
l.amount > LOCKAMOUNT_UPPERBOUND
|
||||
) revert AmountNotAllowed();
|
||||
lockID = _addLock(bal, _amount, cCounter, l, t, k);
|
||||
|
||||
/* */}/* */}
|
||||
/* */}/* */}/* */}
|
||||
}
|
||||
|
||||
/// @notice Lock release method that liquidate lock
|
||||
@ -241,20 +242,23 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
|
||||
ERC20 t = ERC20(l.token);
|
||||
|
||||
// We cache values before zeroing them out.
|
||||
// We cache lockAmount value before zeroing it out.
|
||||
uint256 lockAmount = l.amount;
|
||||
// uint256 totalAmount = (lockAmount - l.relayerPremium);
|
||||
|
||||
l.amount = 0;
|
||||
l.expirationBlock = 0;
|
||||
_setUsedTransactions(message);
|
||||
|
||||
address sender; uint256 forwarder;
|
||||
(sender, forwarder) = _isTrustedForwarder();
|
||||
|
||||
if (forwarder == 0) {
|
||||
if (msg.sender != l.buyerAddress) {
|
||||
userRecord[_castAddrToKey(msg.sender)] += (lockAmount >> 1);
|
||||
userRecord[_castAddrToKey(l.buyerAddress)] += (lockAmount >> 1);
|
||||
} else {
|
||||
userRecord[_castAddrToKey(msg.sender)] += lockAmount;
|
||||
}
|
||||
}}
|
||||
|
||||
SafeTransferLib.safeTransfer(
|
||||
t,
|
||||
@ -283,7 +287,7 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
_notExpired(l);
|
||||
|
||||
uint256 _sellerBalance =
|
||||
sellerBalance(l.sellerKey, ERC20(l.token)) & BITMASK_SB_ENTRY;
|
||||
__sellerBalance(l.sellerKey, ERC20(l.token)) & BITMASK_SB_ENTRY;
|
||||
|
||||
if ((_sellerBalance + l.amount) > MAXBALANCE_UPPERBOUND)
|
||||
revert MaxBalExceeded();
|
||||
@ -335,7 +339,7 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
|
||||
uint256 key = _castAddrToKey(msg.sender);
|
||||
_decBal(
|
||||
(sellerBalance(key, token) & BITMASK_SB_ENTRY),
|
||||
(__sellerBalance(key, token) & BITMASK_SB_ENTRY),
|
||||
amount,
|
||||
token,
|
||||
key
|
||||
@ -407,7 +411,7 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
mapLocks[_lockID] = _l;
|
||||
|
||||
_decBal(_bal, _amount, _t, _k);
|
||||
lockCounter++;
|
||||
++lockCounter;
|
||||
counter = _lockID;
|
||||
|
||||
emit LockAdded(
|
||||
@ -448,9 +452,6 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
view
|
||||
returns (uint256 bal)
|
||||
{
|
||||
// bal =
|
||||
// sellerBalance[_castAddrToKey(seller)][token] &
|
||||
// BITMASK_SB_ENTRY;
|
||||
assembly {
|
||||
for {
|
||||
/* */
|
||||
@ -462,7 +463,7 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
mstore(0x00, seller)
|
||||
bal := and(
|
||||
BITMASK_SB_ENTRY,
|
||||
sload(keccak256(0x0c, 0x34))
|
||||
sload(add(keccak256(0x0c, 0x34), 0x01))
|
||||
)
|
||||
break
|
||||
}
|
||||
@ -474,10 +475,6 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
view
|
||||
returns (bool valid)
|
||||
{
|
||||
// uint256 b = sellerBalance[
|
||||
// _castAddrToKey(seller)
|
||||
// ][token];
|
||||
// ] >> BITPOS_VALID) & BITMASK_SB_ENTRY;
|
||||
assembly {
|
||||
for {
|
||||
/* */
|
||||
@ -491,7 +488,7 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
BITMASK_SB_ENTRY,
|
||||
shr(
|
||||
BITPOS_VALID,
|
||||
sload(keccak256(0x0c, 0x34))
|
||||
sload(add(keccak256(0x0c, 0x34), 0x01))
|
||||
)
|
||||
)
|
||||
break
|
||||
@ -502,12 +499,8 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
function getPixTarget(address seller, ERC20 token)
|
||||
public
|
||||
view
|
||||
returns (uint160 pixTarget)
|
||||
returns (bytes32 pixTarget)
|
||||
{
|
||||
// pixTarget = uint160(
|
||||
// sellerBalance[_castAddrToKey(seller)][token] >>
|
||||
// BITPOS_PIXTARGET
|
||||
// );
|
||||
assembly {
|
||||
for {
|
||||
/* */
|
||||
@ -517,15 +510,17 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
mstore(0x20, token)
|
||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||
mstore(0x00, seller)
|
||||
pixTarget := shr(
|
||||
BITPOS_PIXTARGET,
|
||||
sload(keccak256(0x0c, 0x34))
|
||||
)
|
||||
pixTarget := sload(keccak256(0x0c, 0x34))
|
||||
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(
|
||||
address[] memory sellers,
|
||||
ERC20 token
|
||||
@ -593,42 +588,53 @@ contract P2PIX is BaseUtils, ReentrancyGuard {
|
||||
return (sortedIDs, status);
|
||||
}
|
||||
|
||||
function _setSellerBalance(uint256 sellerKey, ERC20 erc20, uint256 packed) private {
|
||||
function _setSellerBalance(uint256 _sellerKey, ERC20 _erc20, uint256 _packed, bytes32 _pixTarget) private {
|
||||
assembly {
|
||||
mstore(0x20, erc20)
|
||||
mstore(0x20, _erc20)
|
||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||
mstore(0x00, shr(12, sellerKey))
|
||||
sstore(keccak256(0x0c, 0x34), packed)
|
||||
mstore(0x00, shr(12, _sellerKey))
|
||||
let _loc := keccak256(0x0c, 0x34)
|
||||
sstore(add(_loc, 0x01), _packed)
|
||||
sstore(_loc, _pixTarget)
|
||||
}
|
||||
}
|
||||
|
||||
function _addSellerBalance(uint256 sellerKey, ERC20 erc20, uint256 amount) private {
|
||||
function _setValidState(uint256 _sellerKey, ERC20 _erc20, uint256 _packed) private {
|
||||
assembly {
|
||||
mstore(0x20, erc20)
|
||||
mstore(0x20, _erc20)
|
||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||
mstore(0x00, shr(12, sellerKey))
|
||||
let slot := keccak256(0x0c, 0x34)
|
||||
sstore(slot, add(sload(slot), amount))
|
||||
mstore(0x00, shr(12, _sellerKey))
|
||||
let _loc := keccak256(0x0c, 0x34)
|
||||
sstore(add(_loc, 0x01), _packed)
|
||||
}
|
||||
}
|
||||
|
||||
function _decSellerBalance(uint256 sellerKey, ERC20 erc20, uint256 amount) private {
|
||||
function _addSellerBalance(uint256 _sellerKey, ERC20 _erc20, uint256 _amount) private {
|
||||
assembly {
|
||||
mstore(0x20, erc20)
|
||||
mstore(0x20, _erc20)
|
||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||
mstore(0x00, shr(12, sellerKey))
|
||||
let slot := keccak256(0x0c, 0x34)
|
||||
sstore(slot, sub(sload(slot), amount))
|
||||
mstore(0x00, shr(12, _sellerKey))
|
||||
let _loc := add(keccak256(0x0c, 0x34), 0x01)
|
||||
sstore(_loc, add(sload(_loc), _amount))
|
||||
}
|
||||
}
|
||||
|
||||
function sellerBalance(uint256 sellerKey, ERC20 erc20) public view returns(uint256 packed) {
|
||||
function _decSellerBalance(uint256 _sellerKey, ERC20 _erc20, uint256 _amount) private {
|
||||
assembly {
|
||||
mstore(0x20, erc20)
|
||||
mstore(0x20, _erc20)
|
||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||
mstore(0x00, shr(12, sellerKey))
|
||||
packed := sload(keccak256(0x0c, 0x34))
|
||||
mstore(0x00, shr(12, _sellerKey))
|
||||
let _loc := add(keccak256(0x0c, 0x34), 0x01)
|
||||
sstore(_loc, sub(sload(_loc), _amount))
|
||||
}
|
||||
}
|
||||
|
||||
function __sellerBalance(uint256 _sellerKey, ERC20 _erc20) private view returns(uint256 _packed) {
|
||||
assembly {
|
||||
mstore(0x20, _erc20)
|
||||
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||
mstore(0x00, shr(12, _sellerKey))
|
||||
_packed := sload(add(keccak256(0x0c, 0x34), 0x01))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,12 +33,15 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
"_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;
|
||||
@ -52,12 +55,15 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
| "_castKeyToAddr"
|
||||
| "allowedERC20s"
|
||||
| "defaultLockBlocks"
|
||||
| "getStr"
|
||||
| "isTrustedForwarder"
|
||||
| "owner"
|
||||
| "reputation"
|
||||
| "sellerAllowList"
|
||||
| "setDefaultLockBlocks"
|
||||
| "setOwner"
|
||||
| "setReputation"
|
||||
| "setTrustedFowarders"
|
||||
| "setValidSigners"
|
||||
| "tokenSettings"
|
||||
| "usedTransactions"
|
||||
@ -81,6 +87,14 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
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",
|
||||
@ -102,6 +116,10 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
functionFragment: "setReputation",
|
||||
values: [PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "setTrustedFowarders",
|
||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "setValidSigners",
|
||||
values: [PromiseOrValue<string>[]]
|
||||
@ -139,6 +157,11 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
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(
|
||||
@ -154,6 +177,10 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
functionFragment: "setReputation",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "setTrustedFowarders",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "setValidSigners",
|
||||
data: BytesLike
|
||||
@ -187,6 +214,7 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
"OwnerUpdated(address,address)": EventFragment;
|
||||
"ReputationUpdated(address)": EventFragment;
|
||||
"RootUpdated(address,bytes32)": EventFragment;
|
||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
||||
"ValidSet(address,address,bool)": EventFragment;
|
||||
"ValidSignersUpdated(address[])": EventFragment;
|
||||
};
|
||||
@ -202,6 +230,7 @@ export interface BaseUtilsInterface extends utils.Interface {
|
||||
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
||||
}
|
||||
@ -334,6 +363,18 @@ export type RootUpdatedEvent = TypedEvent<
|
||||
|
||||
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;
|
||||
@ -401,6 +442,16 @@ export interface BaseUtils extends BaseContract {
|
||||
|
||||
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]>;
|
||||
@ -425,6 +476,12 @@ export interface BaseUtils extends BaseContract {
|
||||
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> }
|
||||
@ -468,6 +525,16 @@ export interface BaseUtils extends BaseContract {
|
||||
|
||||
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>;
|
||||
@ -492,6 +559,12 @@ export interface BaseUtils extends BaseContract {
|
||||
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> }
|
||||
@ -535,6 +608,16 @@ export interface BaseUtils extends BaseContract {
|
||||
|
||||
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>;
|
||||
@ -559,6 +642,12 @@ export interface BaseUtils extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
setTrustedFowarders(
|
||||
forwarders: PromiseOrValue<string>[],
|
||||
states: PromiseOrValue<boolean>[],
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
setValidSigners(
|
||||
_validSigners: PromiseOrValue<string>[],
|
||||
overrides?: CallOverrides
|
||||
@ -680,6 +769,15 @@ export interface BaseUtils extends BaseContract {
|
||||
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,
|
||||
@ -715,6 +813,16 @@ export interface BaseUtils extends BaseContract {
|
||||
|
||||
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>;
|
||||
@ -739,6 +847,12 @@ export interface BaseUtils extends BaseContract {
|
||||
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> }
|
||||
@ -783,6 +897,16 @@ export interface BaseUtils extends BaseContract {
|
||||
|
||||
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>;
|
||||
@ -807,6 +931,12 @@ export interface BaseUtils extends BaseContract {
|
||||
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> }
|
||||
|
@ -33,6 +33,7 @@ export interface EventAndErrorsInterface extends utils.Interface {
|
||||
"LockReturned(address,uint256)": EventFragment;
|
||||
"ReputationUpdated(address)": EventFragment;
|
||||
"RootUpdated(address,bytes32)": EventFragment;
|
||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
||||
"ValidSet(address,address,bool)": EventFragment;
|
||||
"ValidSignersUpdated(address[])": EventFragment;
|
||||
};
|
||||
@ -47,6 +48,7 @@ export interface EventAndErrorsInterface extends utils.Interface {
|
||||
getEvent(nameOrSignatureOrTopic: "LockReturned"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
||||
}
|
||||
@ -168,6 +170,18 @@ export type RootUpdatedEvent = TypedEvent<
|
||||
|
||||
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;
|
||||
@ -309,6 +323,15 @@ export interface EventAndErrors extends BaseContract {
|
||||
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,
|
||||
|
@ -31,12 +31,14 @@ 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;
|
||||
@ -47,12 +49,14 @@ export interface OwnerSettingsInterface extends utils.Interface {
|
||||
nameOrSignatureOrTopic:
|
||||
| "allowedERC20s"
|
||||
| "defaultLockBlocks"
|
||||
| "isTrustedForwarder"
|
||||
| "owner"
|
||||
| "reputation"
|
||||
| "sellerAllowList"
|
||||
| "setDefaultLockBlocks"
|
||||
| "setOwner"
|
||||
| "setReputation"
|
||||
| "setTrustedFowarders"
|
||||
| "setValidSigners"
|
||||
| "tokenSettings"
|
||||
| "validBacenSigners"
|
||||
@ -67,6 +71,10 @@ export interface OwnerSettingsInterface extends utils.Interface {
|
||||
functionFragment: "defaultLockBlocks",
|
||||
values?: undefined
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "isTrustedForwarder",
|
||||
values: [PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "reputation",
|
||||
@ -88,6 +96,10 @@ export interface OwnerSettingsInterface extends utils.Interface {
|
||||
functionFragment: "setReputation",
|
||||
values: [PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "setTrustedFowarders",
|
||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "setValidSigners",
|
||||
values: [PromiseOrValue<string>[]]
|
||||
@ -113,6 +125,10 @@ export interface OwnerSettingsInterface extends utils.Interface {
|
||||
functionFragment: "defaultLockBlocks",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "isTrustedForwarder",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "reputation", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
@ -128,6 +144,10 @@ export interface OwnerSettingsInterface extends utils.Interface {
|
||||
functionFragment: "setReputation",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "setTrustedFowarders",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "setValidSigners",
|
||||
data: BytesLike
|
||||
@ -157,6 +177,7 @@ export interface OwnerSettingsInterface extends utils.Interface {
|
||||
"OwnerUpdated(address,address)": EventFragment;
|
||||
"ReputationUpdated(address)": EventFragment;
|
||||
"RootUpdated(address,bytes32)": EventFragment;
|
||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
||||
"ValidSet(address,address,bool)": EventFragment;
|
||||
"ValidSignersUpdated(address[])": EventFragment;
|
||||
};
|
||||
@ -172,6 +193,7 @@ export interface OwnerSettingsInterface extends utils.Interface {
|
||||
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
||||
}
|
||||
@ -304,6 +326,18 @@ export type RootUpdatedEvent = TypedEvent<
|
||||
|
||||
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;
|
||||
@ -361,6 +395,11 @@ export interface OwnerSettings extends BaseContract {
|
||||
|
||||
defaultLockBlocks(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[boolean]>;
|
||||
|
||||
owner(overrides?: CallOverrides): Promise<[string]>;
|
||||
|
||||
reputation(overrides?: CallOverrides): Promise<[string]>;
|
||||
@ -385,6 +424,12 @@ export interface OwnerSettings extends BaseContract {
|
||||
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> }
|
||||
@ -413,6 +458,11 @@ export interface OwnerSettings extends BaseContract {
|
||||
|
||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
owner(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
reputation(overrides?: CallOverrides): Promise<string>;
|
||||
@ -437,6 +487,12 @@ export interface OwnerSettings extends BaseContract {
|
||||
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> }
|
||||
@ -465,6 +521,11 @@ export interface OwnerSettings extends BaseContract {
|
||||
|
||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
owner(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
reputation(overrides?: CallOverrides): Promise<string>;
|
||||
@ -489,6 +550,12 @@ export interface OwnerSettings extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
setTrustedFowarders(
|
||||
forwarders: PromiseOrValue<string>[],
|
||||
states: PromiseOrValue<boolean>[],
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
setValidSigners(
|
||||
_validSigners: PromiseOrValue<string>[],
|
||||
overrides?: CallOverrides
|
||||
@ -605,6 +672,15 @@ export interface OwnerSettings extends BaseContract {
|
||||
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,
|
||||
@ -630,6 +706,11 @@ export interface OwnerSettings extends BaseContract {
|
||||
|
||||
defaultLockBlocks(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
owner(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
reputation(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
@ -654,6 +735,12 @@ export interface OwnerSettings extends BaseContract {
|
||||
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> }
|
||||
@ -683,6 +770,11 @@ export interface OwnerSettings extends BaseContract {
|
||||
|
||||
defaultLockBlocks(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
reputation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
@ -707,6 +799,12 @@ export interface OwnerSettings extends BaseContract {
|
||||
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> }
|
||||
|
@ -1,7 +1,13 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
||||
import {
|
||||
Signer,
|
||||
utils,
|
||||
Contract,
|
||||
ContractFactory,
|
||||
PayableOverrides,
|
||||
} from "ethers";
|
||||
import type { Provider, TransactionRequest } from "@ethersproject/providers";
|
||||
import type { PromiseOrValue } from "../common";
|
||||
import type { Reputation, ReputationInterface } from "../Reputation";
|
||||
@ -9,7 +15,7 @@ import type { Reputation, ReputationInterface } from "../Reputation";
|
||||
const _abi = [
|
||||
{
|
||||
inputs: [],
|
||||
stateMutability: "nonpayable",
|
||||
stateMutability: "payable",
|
||||
type: "constructor",
|
||||
},
|
||||
{
|
||||
@ -60,7 +66,7 @@ const _abi = [
|
||||
];
|
||||
|
||||
const _bytecode =
|
||||
"0x60808060405234610016576102c9908161001c8239f35b600080fdfe6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212201f57ae0c5884bdde41f85c3510ca33502ea7408e92d2669d2cb4da374119f5e064736f6c63430008130033";
|
||||
"0x6080806040526102c990816100128239f3fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631a861d2614610254575081634d2b179114610085575063a4b345571461004557600080fd5b3461008257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610082576020604051643a352944008152f35b80fd5b82346100825760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008257813591620f42408381029081048403610228578380029380850481149015171561022857643a352944009384018094116102285760b58471010000000000000000000000000000000000811015610211575b80690100000000000000000062010000921015610204575b650100000000008110156101f7575b63010000008110156101ea575b010260121c9360019480820401851c80820401851c80820401851c80820401851c80820401851c80820401851c80820401851c8080920410908181146101be57039004830180931161019257602083604051908152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024856012867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60101c9160081b9161013b565b60201c9160101b9161012e565b60401c9160201b9161011f565b5068b500000000000000009050608085901c610107565b6024836011847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b83903461028f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028f5780620f424060209252f35b5080fdfea26469706673582212202029db6a087d223f768aabc1fe8120c7f9d7e525e947a354114a42f80a3955db64736f6c63430008130033";
|
||||
|
||||
type ReputationConstructorParams =
|
||||
| [signer?: Signer]
|
||||
@ -80,12 +86,12 @@ export class Reputation__factory extends ContractFactory {
|
||||
}
|
||||
|
||||
override deploy(
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
overrides?: PayableOverrides & { from?: PromiseOrValue<string> }
|
||||
): Promise<Reputation> {
|
||||
return super.deploy(overrides || {}) as Promise<Reputation>;
|
||||
}
|
||||
override getDeployTransaction(
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
overrides?: PayableOverrides & { from?: PromiseOrValue<string> }
|
||||
): TransactionRequest {
|
||||
return super.getDeployTransaction(overrides || {});
|
||||
}
|
||||
|
@ -87,6 +87,11 @@ const _abi = [
|
||||
name: "OnlySeller",
|
||||
type: "error",
|
||||
},
|
||||
{
|
||||
inputs: [],
|
||||
name: "Reentrancy",
|
||||
type: "error",
|
||||
},
|
||||
{
|
||||
inputs: [],
|
||||
name: "StaticCallFailed",
|
||||
@ -334,6 +339,25 @@ const _abi = [
|
||||
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: [
|
||||
@ -442,6 +466,44 @@ const _abi = [
|
||||
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",
|
||||
@ -526,6 +588,24 @@ const _abi = [
|
||||
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: [
|
||||
{
|
||||
|
@ -313,6 +313,25 @@ const _abi = [
|
||||
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: [
|
||||
|
@ -337,6 +337,25 @@ const _abi = [
|
||||
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: [
|
||||
@ -407,6 +426,25 @@ const _abi = [
|
||||
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",
|
||||
@ -491,6 +529,24 @@ const _abi = [
|
||||
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: [
|
||||
{
|
||||
|
@ -3,6 +3,7 @@
|
||||
/* eslint-disable */
|
||||
export * as auth from "./auth";
|
||||
export * as interfaces from "./interfaces";
|
||||
export * as metatx from "./metatx";
|
||||
export * as mock from "./mock";
|
||||
export * as tokens from "./tokens";
|
||||
export * as utils from "./utils";
|
||||
|
45
src/types/factories/lib/metatx/ERC2771Context__factory.ts
Normal file
45
src/types/factories/lib/metatx/ERC2771Context__factory.ts
Normal file
@ -0,0 +1,45 @@
|
||||
/* 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;
|
||||
}
|
||||
}
|
4
src/types/factories/lib/metatx/index.ts
Normal file
4
src/types/factories/lib/metatx/index.ts
Normal file
@ -0,0 +1,4 @@
|
||||
/* 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
9
src/types/hardhat.d.ts
vendored
9
src/types/hardhat.d.ts
vendored
@ -32,6 +32,10 @@ declare module "hardhat/types/runtime" {
|
||||
name: "IReputation",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.IReputation__factory>;
|
||||
getContractFactory(
|
||||
name: "ERC2771Context",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.ERC2771Context__factory>;
|
||||
getContractFactory(
|
||||
name: "MockToken",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
@ -90,6 +94,11 @@ declare module "hardhat/types/runtime" {
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.IReputation>;
|
||||
getContractAt(
|
||||
name: "ERC2771Context",
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.ERC2771Context>;
|
||||
getContractAt(
|
||||
name: "MockToken",
|
||||
address: string,
|
||||
|
@ -19,6 +19,8 @@ export type { Owned } from "./lib/auth/Owned";
|
||||
export { Owned__factory } from "./factories/lib/auth/Owned__factory";
|
||||
export type { IReputation } from "./lib/interfaces/IReputation";
|
||||
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 { MockToken__factory } from "./factories/lib/mock/mockToken.sol/MockToken__factory";
|
||||
export type { ERC20 } from "./lib/tokens/ERC20";
|
||||
|
@ -5,6 +5,8 @@ import type * as auth from "./auth";
|
||||
export type { auth };
|
||||
import type * as interfaces from "./interfaces";
|
||||
export type { interfaces };
|
||||
import type * as metatx from "./metatx";
|
||||
export type { metatx };
|
||||
import type * as mock from "./mock";
|
||||
export type { mock };
|
||||
import type * as tokens from "./tokens";
|
||||
|
103
src/types/lib/metatx/ERC2771Context.ts
Normal file
103
src/types/lib/metatx/ERC2771Context.ts
Normal file
@ -0,0 +1,103 @@
|
||||
/* 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>;
|
||||
};
|
||||
}
|
4
src/types/lib/metatx/index.ts
Normal file
4
src/types/lib/metatx/index.ts
Normal file
@ -0,0 +1,4 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
export type { ERC2771Context } from "./ERC2771Context";
|
@ -33,12 +33,15 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
"_castKeyToAddr(uint256)": FunctionFragment;
|
||||
"allowedERC20s(address)": FunctionFragment;
|
||||
"defaultLockBlocks()": FunctionFragment;
|
||||
"deposit(address,uint96,uint160,bool,bytes32)": FunctionFragment;
|
||||
"deposit(address,uint96,string,bool,bytes32)": FunctionFragment;
|
||||
"getBalance(address,address)": FunctionFragment;
|
||||
"getBalances(address[],address)": FunctionFragment;
|
||||
"getLocksStatus(uint256[])": FunctionFragment;
|
||||
"getPixTarget(address,address)": FunctionFragment;
|
||||
"getPixTargetString(address,address)": FunctionFragment;
|
||||
"getStr(string)": FunctionFragment;
|
||||
"getValid(address,address)": FunctionFragment;
|
||||
"isTrustedForwarder(address)": FunctionFragment;
|
||||
"lock(address,address,uint80,bytes32[],uint256[])": FunctionFragment;
|
||||
"lockCounter()": FunctionFragment;
|
||||
"mapLocks(uint256)": FunctionFragment;
|
||||
@ -46,11 +49,11 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
"release(uint256,bytes32,bytes32,bytes32,uint8)": FunctionFragment;
|
||||
"reputation()": FunctionFragment;
|
||||
"sellerAllowList(uint256)": FunctionFragment;
|
||||
"sellerBalance(uint256,address)": FunctionFragment;
|
||||
"setDefaultLockBlocks(uint256)": FunctionFragment;
|
||||
"setOwner(address)": FunctionFragment;
|
||||
"setReputation(address)": FunctionFragment;
|
||||
"setRoot(address,bytes32)": FunctionFragment;
|
||||
"setTrustedFowarders(address[],bool[])": FunctionFragment;
|
||||
"setValidSigners(address[])": FunctionFragment;
|
||||
"setValidState(address,bool)": FunctionFragment;
|
||||
"tokenSettings(address[],bool[])": FunctionFragment;
|
||||
@ -73,7 +76,10 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
| "getBalances"
|
||||
| "getLocksStatus"
|
||||
| "getPixTarget"
|
||||
| "getPixTargetString"
|
||||
| "getStr"
|
||||
| "getValid"
|
||||
| "isTrustedForwarder"
|
||||
| "lock"
|
||||
| "lockCounter"
|
||||
| "mapLocks"
|
||||
@ -81,11 +87,11 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
| "release"
|
||||
| "reputation"
|
||||
| "sellerAllowList"
|
||||
| "sellerBalance"
|
||||
| "setDefaultLockBlocks"
|
||||
| "setOwner"
|
||||
| "setReputation"
|
||||
| "setRoot"
|
||||
| "setTrustedFowarders"
|
||||
| "setValidSigners"
|
||||
| "setValidState"
|
||||
| "tokenSettings"
|
||||
@ -118,7 +124,7 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
values: [
|
||||
PromiseOrValue<string>,
|
||||
PromiseOrValue<BigNumberish>,
|
||||
PromiseOrValue<BigNumberish>,
|
||||
PromiseOrValue<string>,
|
||||
PromiseOrValue<boolean>,
|
||||
PromiseOrValue<BytesLike>
|
||||
]
|
||||
@ -139,10 +145,22 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
functionFragment: "getPixTarget",
|
||||
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "getPixTargetString",
|
||||
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "getStr",
|
||||
values: [PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "getValid",
|
||||
values: [PromiseOrValue<string>, PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "isTrustedForwarder",
|
||||
values: [PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "lock",
|
||||
values: [
|
||||
@ -180,10 +198,6 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
functionFragment: "sellerAllowList",
|
||||
values: [PromiseOrValue<BigNumberish>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "sellerBalance",
|
||||
values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "setDefaultLockBlocks",
|
||||
values: [PromiseOrValue<BigNumberish>]
|
||||
@ -200,6 +214,10 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
functionFragment: "setRoot",
|
||||
values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "setTrustedFowarders",
|
||||
values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "setValidSigners",
|
||||
values: [PromiseOrValue<string>[]]
|
||||
@ -271,7 +289,16 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
functionFragment: "getPixTarget",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "getPixTargetString",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "getStr", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "getValid", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "isTrustedForwarder",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "lock", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "lockCounter",
|
||||
@ -285,10 +312,6 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
functionFragment: "sellerAllowList",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "sellerBalance",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "setDefaultLockBlocks",
|
||||
data: BytesLike
|
||||
@ -299,6 +322,10 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "setRoot", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "setTrustedFowarders",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "setValidSigners",
|
||||
data: BytesLike
|
||||
@ -342,6 +369,7 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
"OwnerUpdated(address,address)": EventFragment;
|
||||
"ReputationUpdated(address)": EventFragment;
|
||||
"RootUpdated(address,bytes32)": EventFragment;
|
||||
"TrustedForwarderUpdated(address,bool)": EventFragment;
|
||||
"ValidSet(address,address,bool)": EventFragment;
|
||||
"ValidSignersUpdated(address[])": EventFragment;
|
||||
};
|
||||
@ -357,6 +385,7 @@ export interface P2PIXInterface extends utils.Interface {
|
||||
getEvent(nameOrSignatureOrTopic: "OwnerUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ReputationUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "RootUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "TrustedForwarderUpdated"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSet"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "ValidSignersUpdated"): EventFragment;
|
||||
}
|
||||
@ -489,6 +518,18 @@ export type RootUpdatedEvent = TypedEvent<
|
||||
|
||||
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;
|
||||
@ -559,7 +600,7 @@ export interface P2PIX extends BaseContract {
|
||||
deposit(
|
||||
_token: PromiseOrValue<string>,
|
||||
_amount: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<string>,
|
||||
_valid: PromiseOrValue<boolean>,
|
||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -586,7 +627,18 @@ export interface P2PIX extends BaseContract {
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[BigNumber] & { pixTarget: BigNumber }>;
|
||||
): Promise<[string] & { pixTarget: string }>;
|
||||
|
||||
getPixTargetString(
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[string] & { pixTarget: string }>;
|
||||
|
||||
getStr(
|
||||
str: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[string] & { strEnc: string }>;
|
||||
|
||||
getValid(
|
||||
seller: PromiseOrValue<string>,
|
||||
@ -594,6 +646,11 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<[boolean] & { valid: boolean }>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[boolean]>;
|
||||
|
||||
lock(
|
||||
_seller: PromiseOrValue<string>,
|
||||
_token: PromiseOrValue<string>,
|
||||
@ -609,22 +666,14 @@ export interface P2PIX extends BaseContract {
|
||||
arg0: PromiseOrValue<BigNumberish>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<
|
||||
[
|
||||
BigNumber,
|
||||
BigNumber,
|
||||
string,
|
||||
string,
|
||||
BigNumber,
|
||||
BigNumber,
|
||||
BigNumber
|
||||
] & {
|
||||
amount: BigNumber;
|
||||
pixTarget: BigNumber;
|
||||
token: string;
|
||||
buyerAddress: string;
|
||||
[BigNumber, BigNumber, BigNumber, string, BigNumber, string, string] & {
|
||||
sellerKey: BigNumber;
|
||||
counter: BigNumber;
|
||||
expirationBlock: BigNumber;
|
||||
pixTarget: string;
|
||||
amount: BigNumber;
|
||||
token: string;
|
||||
buyerAddress: string;
|
||||
}
|
||||
>;
|
||||
|
||||
@ -646,12 +695,6 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<[string] & { root: string }>;
|
||||
|
||||
sellerBalance(
|
||||
sellerKey: PromiseOrValue<BigNumberish>,
|
||||
erc20: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[BigNumber] & { packed: BigNumber }>;
|
||||
|
||||
setDefaultLockBlocks(
|
||||
_blocks: PromiseOrValue<BigNumberish>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -673,6 +716,12 @@ export interface P2PIX extends BaseContract {
|
||||
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> }
|
||||
@ -742,7 +791,7 @@ export interface P2PIX extends BaseContract {
|
||||
deposit(
|
||||
_token: PromiseOrValue<string>,
|
||||
_amount: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<string>,
|
||||
_valid: PromiseOrValue<boolean>,
|
||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -769,7 +818,18 @@ export interface P2PIX extends BaseContract {
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
): Promise<string>;
|
||||
|
||||
getPixTargetString(
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<string>;
|
||||
|
||||
getStr(
|
||||
str: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<string>;
|
||||
|
||||
getValid(
|
||||
seller: PromiseOrValue<string>,
|
||||
@ -777,6 +837,11 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
lock(
|
||||
_seller: PromiseOrValue<string>,
|
||||
_token: PromiseOrValue<string>,
|
||||
@ -792,14 +857,14 @@ export interface P2PIX extends BaseContract {
|
||||
arg0: PromiseOrValue<BigNumberish>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<
|
||||
[BigNumber, BigNumber, string, string, BigNumber, BigNumber, BigNumber] & {
|
||||
amount: BigNumber;
|
||||
pixTarget: BigNumber;
|
||||
token: string;
|
||||
buyerAddress: string;
|
||||
[BigNumber, BigNumber, BigNumber, string, BigNumber, string, string] & {
|
||||
sellerKey: BigNumber;
|
||||
counter: BigNumber;
|
||||
expirationBlock: BigNumber;
|
||||
pixTarget: string;
|
||||
amount: BigNumber;
|
||||
token: string;
|
||||
buyerAddress: string;
|
||||
}
|
||||
>;
|
||||
|
||||
@ -821,12 +886,6 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<string>;
|
||||
|
||||
sellerBalance(
|
||||
sellerKey: PromiseOrValue<BigNumberish>,
|
||||
erc20: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
setDefaultLockBlocks(
|
||||
_blocks: PromiseOrValue<BigNumberish>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -848,6 +907,12 @@ export interface P2PIX extends BaseContract {
|
||||
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> }
|
||||
@ -917,7 +982,7 @@ export interface P2PIX extends BaseContract {
|
||||
deposit(
|
||||
_token: PromiseOrValue<string>,
|
||||
_amount: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<string>,
|
||||
_valid: PromiseOrValue<boolean>,
|
||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||
overrides?: CallOverrides
|
||||
@ -944,7 +1009,18 @@ export interface P2PIX extends BaseContract {
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
): Promise<string>;
|
||||
|
||||
getPixTargetString(
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<string>;
|
||||
|
||||
getStr(
|
||||
str: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<string>;
|
||||
|
||||
getValid(
|
||||
seller: PromiseOrValue<string>,
|
||||
@ -952,6 +1028,11 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
lock(
|
||||
_seller: PromiseOrValue<string>,
|
||||
_token: PromiseOrValue<string>,
|
||||
@ -967,22 +1048,14 @@ export interface P2PIX extends BaseContract {
|
||||
arg0: PromiseOrValue<BigNumberish>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<
|
||||
[
|
||||
BigNumber,
|
||||
BigNumber,
|
||||
string,
|
||||
string,
|
||||
BigNumber,
|
||||
BigNumber,
|
||||
BigNumber
|
||||
] & {
|
||||
amount: BigNumber;
|
||||
pixTarget: BigNumber;
|
||||
token: string;
|
||||
buyerAddress: string;
|
||||
[BigNumber, BigNumber, BigNumber, string, BigNumber, string, string] & {
|
||||
sellerKey: BigNumber;
|
||||
counter: BigNumber;
|
||||
expirationBlock: BigNumber;
|
||||
pixTarget: string;
|
||||
amount: BigNumber;
|
||||
token: string;
|
||||
buyerAddress: string;
|
||||
}
|
||||
>;
|
||||
|
||||
@ -1004,12 +1077,6 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<string>;
|
||||
|
||||
sellerBalance(
|
||||
sellerKey: PromiseOrValue<BigNumberish>,
|
||||
erc20: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
setDefaultLockBlocks(
|
||||
_blocks: PromiseOrValue<BigNumberish>,
|
||||
overrides?: CallOverrides
|
||||
@ -1031,6 +1098,12 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
setTrustedFowarders(
|
||||
forwarders: PromiseOrValue<string>[],
|
||||
states: PromiseOrValue<boolean>[],
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
setValidSigners(
|
||||
_validSigners: PromiseOrValue<string>[],
|
||||
overrides?: CallOverrides
|
||||
@ -1175,6 +1248,15 @@ export interface P2PIX extends BaseContract {
|
||||
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,
|
||||
@ -1213,7 +1295,7 @@ export interface P2PIX extends BaseContract {
|
||||
deposit(
|
||||
_token: PromiseOrValue<string>,
|
||||
_amount: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<string>,
|
||||
_valid: PromiseOrValue<boolean>,
|
||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -1242,12 +1324,28 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
getPixTargetString(
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
getStr(
|
||||
str: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
getValid(
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
lock(
|
||||
_seller: PromiseOrValue<string>,
|
||||
_token: PromiseOrValue<string>,
|
||||
@ -1282,12 +1380,6 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
sellerBalance(
|
||||
sellerKey: PromiseOrValue<BigNumberish>,
|
||||
erc20: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
setDefaultLockBlocks(
|
||||
_blocks: PromiseOrValue<BigNumberish>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -1309,6 +1401,12 @@ export interface P2PIX extends BaseContract {
|
||||
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> }
|
||||
@ -1379,7 +1477,7 @@ export interface P2PIX extends BaseContract {
|
||||
deposit(
|
||||
_token: PromiseOrValue<string>,
|
||||
_amount: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<BigNumberish>,
|
||||
_pixTarget: PromiseOrValue<string>,
|
||||
_valid: PromiseOrValue<boolean>,
|
||||
allowlistRoot: PromiseOrValue<BytesLike>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -1408,12 +1506,28 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
getPixTargetString(
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
getStr(
|
||||
str: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
getValid(
|
||||
seller: PromiseOrValue<string>,
|
||||
token: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
isTrustedForwarder(
|
||||
arg0: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
lock(
|
||||
_seller: PromiseOrValue<string>,
|
||||
_token: PromiseOrValue<string>,
|
||||
@ -1448,12 +1562,6 @@ export interface P2PIX extends BaseContract {
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
sellerBalance(
|
||||
sellerKey: PromiseOrValue<BigNumberish>,
|
||||
erc20: PromiseOrValue<string>,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
setDefaultLockBlocks(
|
||||
_blocks: PromiseOrValue<BigNumberish>,
|
||||
overrides?: Overrides & { from?: PromiseOrValue<string> }
|
||||
@ -1475,6 +1583,12 @@ export interface P2PIX extends BaseContract {
|
||||
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> }
|
||||
|
@ -302,7 +302,7 @@ describe("P2PIX", () => {
|
||||
});
|
||||
describe("Deposit", async () => {
|
||||
it("should revert if ERC20 is not allowed", async () => {
|
||||
const pTarget = ethers.BigNumber.from(7331);
|
||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
||||
const root = ethers.utils.keccak256(
|
||||
ethers.utils.toUtf8Bytes("root"),
|
||||
);
|
||||
@ -326,7 +326,7 @@ describe("P2PIX", () => {
|
||||
const tx = p2pix.deposit(
|
||||
erc20.address,
|
||||
1,
|
||||
0,
|
||||
"",
|
||||
true,
|
||||
root,
|
||||
);
|
||||
@ -337,7 +337,7 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should revert if amount exceeds the balance limit", async () => {
|
||||
const pTarget = ethers.BigNumber.from(7331);
|
||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
||||
const root = ethers.utils.keccak256(
|
||||
ethers.utils.toUtf8Bytes("root"),
|
||||
);
|
||||
@ -355,7 +355,7 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should create deposit, update storage and emit event", async () => {
|
||||
const pTarget = ethers.BigNumber.from(7331);
|
||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
||||
// we use `hashZero` to avoid updating seller's allowlist settings
|
||||
const root = ethers.constants.HashZero;
|
||||
await erc20.approve(p2pix.address, price);
|
||||
@ -387,6 +387,7 @@ describe("P2PIX", () => {
|
||||
erc20.address,
|
||||
);
|
||||
|
||||
|
||||
expect(tx).to.be.ok;
|
||||
await expect(tx)
|
||||
.to.emit(p2pix, "DepositAdded")
|
||||
@ -397,7 +398,7 @@ describe("P2PIX", () => {
|
||||
["-100000000000000000000", price],
|
||||
);
|
||||
expect(storage).to.eq(price);
|
||||
expect(pixTarget).to.eq(pTarget);
|
||||
expect(pixTarget).to.eq(await p2pix.callStatic.getStr(pTarget));
|
||||
expect(valid).to.eq(true);
|
||||
expect(allowList).to.eq(root);
|
||||
expect(balances[0]).to.eq(price);
|
||||
@ -418,9 +419,9 @@ describe("P2PIX", () => {
|
||||
acc03.address,
|
||||
);
|
||||
|
||||
const pTarget = ethers.BigNumber.from(7331);
|
||||
const pTarget2 = ethers.BigNumber.from(1337);
|
||||
const pTarget3 = ethers.BigNumber.from(3731);
|
||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
||||
const pTarget2 = "12312333321";
|
||||
const pTarget3 = "43999999999";
|
||||
// we mock the allowlist root here only to test storage update. In depth
|
||||
// allowlist test coverage in both "Lock" and "Allowlist Settings" unit tests.
|
||||
const root = ethers.utils.keccak256(
|
||||
@ -588,29 +589,29 @@ describe("P2PIX", () => {
|
||||
expect(prices[3]).to.eq(balances[3]);
|
||||
|
||||
expect(storage1).to.eq(price);
|
||||
expect(pixTarget1).to.eq(pTarget);
|
||||
expect(pixTarget1).to.eq(await p2pix.callStatic.getStr(pTarget));
|
||||
expect(valid1).to.eq(true);
|
||||
expect(allowList1).to.eq(root);
|
||||
|
||||
expect(storage2).to.eq(price2);
|
||||
expect(pixTarget2).to.eq(pTarget2);
|
||||
expect(pixTarget2).to.eq(await p2pix.callStatic.getStr(pTarget2));
|
||||
expect(valid2).to.eq(false);
|
||||
expect(allowList2).to.eq(nullRoot);
|
||||
|
||||
expect(storage3).to.eq(price3);
|
||||
expect(pixTarget3).to.eq(pTarget3);
|
||||
expect(pixTarget3).to.eq(await p2pix.callStatic.getStr(pTarget3));
|
||||
expect(valid3).to.eq(true);
|
||||
expect(allowList3).to.eq(root);
|
||||
|
||||
expect(storage4).to.eq(price4);
|
||||
expect(pixTarget4).to.eq(pTarget);
|
||||
expect(pixTarget4).to.eq(await p2pix.callStatic.getStr(pTarget));
|
||||
expect(valid4).to.eq(false);
|
||||
expect(allowList4).to.eq(nullRoot);
|
||||
});
|
||||
});
|
||||
describe("Lock", async () => {
|
||||
it("should revert if deposit is invalid", async () => {
|
||||
const pTarget = ethers.BigNumber.from(7331);
|
||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -652,7 +653,7 @@ describe("P2PIX", () => {
|
||||
});
|
||||
it("should revert if wished amount is greater than balance's remaining amount", async () => {
|
||||
await erc20.approve(p2pix.address, price);
|
||||
const pTarget = ethers.BigNumber.from(1337);
|
||||
const pTarget = "7ce3339x4133301u8f63pn71a5333118";
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
price,
|
||||
@ -683,7 +684,7 @@ describe("P2PIX", () => {
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
price,
|
||||
ethers.BigNumber.from("1337"),
|
||||
"7ce3339x4133301u8f63pn71a5333118",
|
||||
true,
|
||||
merkleRoot,
|
||||
);
|
||||
@ -716,7 +717,7 @@ describe("P2PIX", () => {
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
price.mul(BigNumber.from("3")),
|
||||
ethers.BigNumber.from("1"),
|
||||
"1",
|
||||
true,
|
||||
merkleRoot,
|
||||
);
|
||||
@ -738,7 +739,7 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should create a lock, update storage and emit events via the allowlist path", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = "333";
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -784,14 +785,14 @@ describe("P2PIX", () => {
|
||||
// );
|
||||
expect(storage.amount).to.eq(price);
|
||||
expect(storage.expirationBlock).to.eq(expiration);
|
||||
expect(storage.pixTarget).to.eq(target);
|
||||
expect(storage.pixTarget).to.eq(await p2pix.callStatic.getStr(target));
|
||||
expect(storage.buyerAddress).to.eq(acc01.address);
|
||||
// expect(storage.relayerAddress).to.eq(acc01.address);
|
||||
expect(storage.token).to.eq(erc20.address);
|
||||
});
|
||||
it("should create a lock, update storage and emit events via the reputation path 1", async () => {
|
||||
const root = ethers.constants.HashZero;
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = "101";
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -833,7 +834,7 @@ describe("P2PIX", () => {
|
||||
// );
|
||||
expect(storage.amount).to.eq(price);
|
||||
expect(storage.expirationBlock).to.eq(expiration);
|
||||
expect(storage.pixTarget).to.eq(target);
|
||||
expect(storage.pixTarget).to.eq(await p2pix.callStatic.getStr(target));
|
||||
expect(storage.buyerAddress).to.eq(acc01.address);
|
||||
// expect(storage.relayerAddress).to.eq(acc01.address);
|
||||
expect(storage.token).to.eq(erc20.address);
|
||||
@ -848,10 +849,10 @@ describe("P2PIX", () => {
|
||||
.mul(ethers.constants.Two)
|
||||
.add(ethers.constants.One);
|
||||
const endtoendID = ethers.constants.HashZero;
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = "101";
|
||||
const messageToSign = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[target, price, endtoendID],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(target), price, endtoendID],
|
||||
);
|
||||
const messageHashBytes =
|
||||
ethers.utils.arrayify(messageToSign);
|
||||
@ -922,7 +923,7 @@ describe("P2PIX", () => {
|
||||
price.add(ethers.constants.One),
|
||||
);
|
||||
expect(storage.expirationBlock).to.eq(expiration);
|
||||
expect(storage.pixTarget).to.eq(target);
|
||||
expect(storage.pixTarget).to.eq(await p2pix.callStatic.getStr(target));
|
||||
expect(storage.buyerAddress).to.eq(acc01.address);
|
||||
// expect(storage.relayerAddress).to.eq(acc01.address);
|
||||
expect(storage.token).to.eq(erc20.address);
|
||||
@ -934,7 +935,7 @@ describe("P2PIX", () => {
|
||||
// edge case test
|
||||
it("should create multiple locks", async () => {
|
||||
const newPrice = price.div(ethers.BigNumber.from(2));
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -1088,7 +1089,7 @@ describe("P2PIX", () => {
|
||||
expect(storage2.expirationBlock).to.eq(expiration2);
|
||||
expect(storage3.expirationBlock).to.eq(expiration3);
|
||||
|
||||
expect(target)
|
||||
expect(await p2pix.callStatic.getStr(target))
|
||||
.to.eq(storage1.pixTarget)
|
||||
.and.to.eq(storage2.pixTarget)
|
||||
.and.to.eq(storage3.pixTarget);
|
||||
@ -1138,7 +1139,7 @@ describe("P2PIX", () => {
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
price,
|
||||
ethers.BigNumber.from(10101),
|
||||
ethers.BigNumber.from(10101).toString(),
|
||||
true,
|
||||
merkleRoot,
|
||||
);
|
||||
@ -1165,7 +1166,7 @@ describe("P2PIX", () => {
|
||||
it("should cancel multiple balances", async () => {
|
||||
const hashZero = ethers.constants.HashZero;
|
||||
await erc20.mint([acc01.address, acc02.address], price);
|
||||
const target = ethers.BigNumber.from("1");
|
||||
const target = ethers.BigNumber.from("1").toString();
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -1255,7 +1256,7 @@ describe("P2PIX", () => {
|
||||
});
|
||||
describe("Release", async () => {
|
||||
it("should revert if lock has expired", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
const messageToSign = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[target, 100, ethers.constants.HashZero],
|
||||
@ -1299,11 +1300,11 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should revert if lock has already been released", async () => {
|
||||
const target = ethers.BigNumber.from("1");
|
||||
const target = ethers.BigNumber.from("1").toString();
|
||||
const hashZero = ethers.constants.HashZero;
|
||||
const messageToSign = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[target, 100, hashZero],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(target), 100, hashZero],
|
||||
);
|
||||
const flatSig = await acc01.signMessage(
|
||||
ethers.utils.arrayify(messageToSign),
|
||||
@ -1350,10 +1351,10 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should revert if signed message has already been used", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
const messageToSign = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[target, 100, ethers.constants.HashZero],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(target), 100, ethers.constants.HashZero],
|
||||
);
|
||||
const flatSig = await owner.signMessage(
|
||||
ethers.utils.arrayify(messageToSign),
|
||||
@ -1415,10 +1416,10 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should revert if ecrecovered signer is invalid", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
const messageToSign = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[target, 100, ethers.constants.HashZero],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(target), 100, ethers.constants.HashZero],
|
||||
);
|
||||
const flatSig = await acc03.signMessage(
|
||||
ethers.utils.arrayify(messageToSign),
|
||||
@ -1462,10 +1463,10 @@ describe("P2PIX", () => {
|
||||
it("should release lock, update storage and emit events", async () => {
|
||||
const zero = ethers.constants.Zero;
|
||||
const endtoendID = ethers.constants.HashZero;
|
||||
const pixTarget = ethers.BigNumber.from(101);
|
||||
const pixTarget = ethers.BigNumber.from(101).toString();
|
||||
const messageToSign = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[pixTarget, 100, endtoendID],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(pixTarget), 100, endtoendID],
|
||||
);
|
||||
// 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
|
||||
@ -1615,7 +1616,7 @@ describe("P2PIX", () => {
|
||||
// edge case test
|
||||
it("should release multiple locks", async () => {
|
||||
const endtoendID = ethers.constants.HashZero;
|
||||
const pixTarget = ethers.BigNumber.from(101);
|
||||
const pixTarget = ethers.BigNumber.from(101).toString();
|
||||
const root = ethers.constants.HashZero;
|
||||
const acc01Key = await p2pix.callStatic._castAddrToKey(
|
||||
acc01.address,
|
||||
@ -1630,24 +1631,24 @@ describe("P2PIX", () => {
|
||||
acc03Key,
|
||||
);
|
||||
const messageToSign1 = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[pixTarget, 100, endtoendID],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(pixTarget), 100, endtoendID],
|
||||
);
|
||||
const flatSig1 = await owner.signMessage(
|
||||
ethers.utils.arrayify(messageToSign1),
|
||||
);
|
||||
const sig1 = ethers.utils.splitSignature(flatSig1);
|
||||
const messageToSign2 = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[pixTarget, 50, endtoendID],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(pixTarget), 50, endtoendID],
|
||||
);
|
||||
const flatSig2 = await owner.signMessage(
|
||||
ethers.utils.arrayify(messageToSign2),
|
||||
);
|
||||
const sig2 = ethers.utils.splitSignature(flatSig2);
|
||||
const messageToSign3 = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[pixTarget, 25, endtoendID],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(pixTarget), 25, endtoendID],
|
||||
);
|
||||
const flatSig3 = await owner.signMessage(
|
||||
ethers.utils.arrayify(messageToSign3),
|
||||
@ -1851,7 +1852,7 @@ describe("P2PIX", () => {
|
||||
});
|
||||
describe("Unexpire Locks", async () => {
|
||||
it("should revert if lock isn't expired", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -1881,10 +1882,10 @@ describe("P2PIX", () => {
|
||||
});
|
||||
it("should revert if lock has already been released", async () => {
|
||||
const endtoendID = ethers.constants.HashZero;
|
||||
const pixTarget = ethers.BigNumber.from(101);
|
||||
const pixTarget = ethers.BigNumber.from(101).toString();
|
||||
const messageToSign = ethers.utils.solidityKeccak256(
|
||||
["uint160", "uint80", "bytes32"],
|
||||
[pixTarget, 1, endtoendID],
|
||||
["bytes32", "uint80", "bytes32"],
|
||||
[await p2pix.callStatic.getStr(pixTarget), 1, endtoendID],
|
||||
);
|
||||
const messageHashBytes =
|
||||
ethers.utils.arrayify(messageToSign);
|
||||
@ -1928,7 +1929,7 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should unlock expired locks, update storage and emit events", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -1992,7 +1993,7 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should unlock expired through lock function", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
// test method through lock fx
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
@ -2068,7 +2069,7 @@ describe("P2PIX", () => {
|
||||
);
|
||||
});
|
||||
it("should unlock expired through withdraw function", async () => {
|
||||
const target = ethers.constants.One;
|
||||
const target = ethers.constants.One.toString();
|
||||
// test method through withdraw fx
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
@ -2110,7 +2111,7 @@ describe("P2PIX", () => {
|
||||
|
||||
describe("Seller Withdraw", async () => {
|
||||
it("should revert if the wished amount is invalid", async () => {
|
||||
const target = ethers.BigNumber.from(101);
|
||||
const target = ethers.BigNumber.from(101).toString();
|
||||
await erc20.approve(p2pix.address, price);
|
||||
await p2pix.deposit(
|
||||
erc20.address,
|
||||
@ -2138,7 +2139,7 @@ describe("P2PIX", () => {
|
||||
const dep = await p2pix.deposit(
|
||||
erc20.address,
|
||||
price,
|
||||
ethers.BigNumber.from(101),
|
||||
ethers.BigNumber.from(101).toString(),
|
||||
true,
|
||||
merkleRoot,
|
||||
);
|
||||
|
@ -23,7 +23,7 @@ export interface Lock {
|
||||
sellerKey: BigNumber;
|
||||
counter: BigNumber;
|
||||
expirationBlock: BigNumber;
|
||||
pixTarget: BigNumber;
|
||||
pixTarget: string;
|
||||
token: string;
|
||||
buyerAddress: string;
|
||||
amount: BigNumber;
|
||||
|
Loading…
x
Reference in New Issue
Block a user