Rearchitected storage 🗃️
This commit is contained in:
parent
6a3bea432c
commit
9d14f053d5
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../build-info/e4fd58ee172659ae7bbfbfbb00ad761b.json"
|
"buildInfo": "../../build-info/577d08e3f9a8a685ac15a7ca46572ea5.json"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../build-info/e4fd58ee172659ae7bbfbfbb00ad761b.json"
|
"buildInfo": "../../build-info/e522f455f7b0dc000985ae9761f3041a.json"
|
||||||
}
|
}
|
||||||
|
@ -291,13 +291,13 @@
|
|||||||
"anonymous": false,
|
"anonymous": false,
|
||||||
"inputs": [
|
"inputs": [
|
||||||
{
|
{
|
||||||
"indexed": false,
|
"indexed": true,
|
||||||
"internalType": "address",
|
"internalType": "address",
|
||||||
"name": "seller",
|
"name": "seller",
|
||||||
"type": "address"
|
"type": "address"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"indexed": false,
|
"indexed": true,
|
||||||
"internalType": "bytes32",
|
"internalType": "bytes32",
|
||||||
"name": "merkleRoot",
|
"name": "merkleRoot",
|
||||||
"type": "bytes32"
|
"type": "bytes32"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"_format": "hh-sol-dbg-1",
|
"_format": "hh-sol-dbg-1",
|
||||||
"buildInfo": "../../build-info/e4fd58ee172659ae7bbfbfbb00ad761b.json"
|
"buildInfo": "../../build-info/577d08e3f9a8a685ac15a7ca46572ea5.json"
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -14,9 +14,8 @@ library DataTypes {
|
|||||||
uint160 pixTarget;
|
uint160 pixTarget;
|
||||||
/// @dev Where the tokens are sent the when order gets validated.
|
/// @dev Where the tokens are sent the when order gets validated.
|
||||||
address buyerAddress;
|
address buyerAddress;
|
||||||
/// @dev Relayer's target address that receives `relayerPremium` funds.
|
|
||||||
address relayerTarget;
|
|
||||||
/// @dev Relayer address (msg.sender) that facilitated this transaction.
|
/// @dev Relayer address (msg.sender) that facilitated this transaction.
|
||||||
|
/// @dev Relayer's target address that receives `relayerPremium` funds.
|
||||||
/// @dev Reputation points accruer.
|
/// @dev Reputation points accruer.
|
||||||
address relayerAddress;
|
address relayerAddress;
|
||||||
address token;
|
address token;
|
||||||
|
@ -5,51 +5,63 @@ pragma solidity 0.8.9;
|
|||||||
interface EventAndErrors {
|
interface EventAndErrors {
|
||||||
/// ███ Events ████████████████████████████████████████████████████████████
|
/// ███ Events ████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
/// @dev 0x63d8d7d5e63e9840ec91a12a160d27b7cfab294f6ba070b7359692acfe6b03bf
|
||||||
event DepositAdded(
|
event DepositAdded(
|
||||||
address indexed seller,
|
address indexed seller,
|
||||||
// uint256 depositID,
|
// uint256 depositID,
|
||||||
address token,
|
address token,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
|
/// @dev 0xca585721b6b442dc9183932f7c84dc2880efb67c4da52cc06873e78971105d49
|
||||||
event ValidSet(
|
event ValidSet(
|
||||||
address indexed seller,
|
address indexed seller,
|
||||||
address token,
|
address token,
|
||||||
bool state
|
bool state
|
||||||
);
|
);
|
||||||
|
/// @dev 0x2cd6435b1b961c13f55202979edd0765a809f69a539d8a477436c94c1211e43e
|
||||||
event DepositWithdrawn(
|
event DepositWithdrawn(
|
||||||
address indexed seller,
|
address indexed seller,
|
||||||
address token,
|
address token,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
|
/// @dev 0x8fb3989f70bd172a37d15b41b015e48ea09d59329638377304a4198cd0c4ea65
|
||||||
event LockAdded(
|
event LockAdded(
|
||||||
address indexed buyer,
|
address indexed buyer,
|
||||||
uint256 indexed lockID,
|
uint256 indexed lockID,
|
||||||
uint256 seller,
|
uint256 seller,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
|
/// @dev 0x364537f14276f2a0ce9905588413f96454cbb8fb2e4f5308389307c1098bede8
|
||||||
event LockReleased(
|
event LockReleased(
|
||||||
address indexed buyer,
|
address indexed buyer,
|
||||||
uint256 lockId,
|
uint256 lockId,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
|
/// @dev 0x830501e61b8b075e170b22a430e39454bdb12ed3e9620e586430b6ac00079da5
|
||||||
event LockReturned(
|
event LockReturned(
|
||||||
address indexed buyer,
|
address indexed buyer,
|
||||||
uint256 lockId
|
uint256 lockId
|
||||||
);
|
);
|
||||||
|
/// @dev 0xeaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d
|
||||||
event FundsWithdrawn(
|
event FundsWithdrawn(
|
||||||
address owner,
|
address owner,
|
||||||
uint256 amount
|
uint256 amount
|
||||||
);
|
);
|
||||||
|
/// @dev 0x0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632
|
||||||
event RootUpdated(
|
event RootUpdated(
|
||||||
address seller,
|
address indexed seller,
|
||||||
bytes32 merkleRoot
|
bytes32 indexed merkleRoot
|
||||||
);
|
);
|
||||||
|
/// @dev 0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a
|
||||||
event AllowedERC20Updated(
|
event AllowedERC20Updated(
|
||||||
address indexed token,
|
address indexed token,
|
||||||
bool indexed state
|
bool indexed state
|
||||||
);
|
);
|
||||||
|
/// @dev 0xe127cf589a3879da0156d4a24f43b44f65cfa3570de594806b0bfa2fcf06884f
|
||||||
event ReputationUpdated(address reputation);
|
event ReputationUpdated(address reputation);
|
||||||
|
/// @dev 0x70fa43ca70216ad905ade86b9e650a691b2ce5a01980d0a81bdd8324141b8511
|
||||||
event LockBlocksUpdated(uint256 blocks);
|
event LockBlocksUpdated(uint256 blocks);
|
||||||
|
/// @dev 0x14a422d2412784a5749d03da98921fe468c98577b767851389a9f58ea5a363d7
|
||||||
event ValidSignersUpdated(address[] signers);
|
event ValidSignersUpdated(address[] signers);
|
||||||
|
|
||||||
/// ███ Errors ████████████████████████████████████████████████████████████
|
/// ███ Errors ████████████████████████████████████████████████████████████
|
||||||
|
@ -30,6 +30,28 @@ contract P2PIX is
|
|||||||
|
|
||||||
/// ███ Constants ██████████████████████████████████████████████████████████
|
/// ███ Constants ██████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
uint256 private constant _ROOT_UPDATED_EVENT_SIGNATURE =
|
||||||
|
0x0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632;
|
||||||
|
uint256 private constant _ALLOWED_ERC20_UPDATED_EVENT_SIGNATURE =
|
||||||
|
0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a;
|
||||||
|
|
||||||
|
/// @dev Seller casted to key => Seller's allowlist merkleroot.
|
||||||
|
/// mapping(uint256 => bytes32) public sellerAllowList;
|
||||||
|
uint256 private constant _SELLER_ALLOWLIST_SLOT_SEED = 0x74dfee70;
|
||||||
|
/// @dev Tokens allowed to serve as the underlying amount of a deposit.
|
||||||
|
/// mapping(ERC20 => bool) public allowedERC20s;
|
||||||
|
uint256 private constant _ALLOWED_ERC20_SLOT_SEED = 0xcbc9d1c4;
|
||||||
|
|
||||||
|
// BITS LAYOUT
|
||||||
|
// `uint96` [0...94] := balance
|
||||||
|
// `uint160` [95...254] := pixTarget
|
||||||
|
// `bool` [255] := valid
|
||||||
|
|
||||||
|
/// @dev `balance` max. value = 10**26.
|
||||||
|
/// @dev `pixTarget` keys are restricted to 160 bits.
|
||||||
|
// mapping(uint256 => mapping(ERC20 => uint256)) public sellerBalance;
|
||||||
|
uint256 private constant _SELLER_BALANCE_SLOT_SEED = 0x739094b1;
|
||||||
|
|
||||||
/// @dev The bitmask of `sellerBalance` entry.
|
/// @dev The bitmask of `sellerBalance` entry.
|
||||||
uint256 private constant BITMASK_SB_ENTRY = (1 << 94) - 1;
|
uint256 private constant BITMASK_SB_ENTRY = (1 << 94) - 1;
|
||||||
/// @dev The bit position of `pixTarget` in `sellerBalance`.
|
/// @dev The bit position of `pixTarget` in `sellerBalance`.
|
||||||
@ -38,11 +60,22 @@ contract P2PIX is
|
|||||||
uint256 private constant BITPOS_VALID = 255;
|
uint256 private constant BITPOS_VALID = 255;
|
||||||
/// @dev The bitmask of all 256 bits of `sellerBalance` except for the last one.
|
/// @dev The bitmask of all 256 bits of `sellerBalance` except for the last one.
|
||||||
uint256 private constant BITMASK_VALID = (1 << 255) - 1;
|
uint256 private constant BITMASK_VALID = (1 << 255) - 1;
|
||||||
|
|
||||||
/// @dev The scalar of BRZ token.
|
/// @dev The scalar of BRZ token.
|
||||||
uint256 public constant WAD = 1e18;
|
uint256 public constant WAD = 1e18;
|
||||||
|
|
||||||
/// ███ Storage ████████████████████████████████████████████████████████████
|
/// ███ Storage ████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
/// @dev List of valid Bacen signature addresses
|
||||||
|
/// @dev Value in custom storage slot given by:
|
||||||
|
/// let slot := sload(shl(12, address)).
|
||||||
|
// mapping(uint256 => bool) public validBacenSigners;
|
||||||
|
|
||||||
|
/// @dev List of Pix transactions already signed.
|
||||||
|
/// @dev Value in custom storage slot given by:
|
||||||
|
/// let slot := sload(bytes32).
|
||||||
|
// mapping(bytes32 => bool) public usedTransactions;
|
||||||
|
|
||||||
IReputation public reputation;
|
IReputation public reputation;
|
||||||
|
|
||||||
/// @dev Default blocks that lock will hold tokens.
|
/// @dev Default blocks that lock will hold tokens.
|
||||||
@ -51,26 +84,8 @@ contract P2PIX is
|
|||||||
|
|
||||||
/// @dev List of Locks.
|
/// @dev List of Locks.
|
||||||
mapping(uint256 => DT.Lock) public mapLocks;
|
mapping(uint256 => DT.Lock) public mapLocks;
|
||||||
/// @dev Seller casted to key => Seller's allowlist merkleroot.
|
|
||||||
mapping(uint256 => bytes32) public sellerAllowList;
|
|
||||||
/// @dev Stores an relayer's last computed credit.
|
/// @dev Stores an relayer's last computed credit.
|
||||||
mapping(uint256 => uint256) public userRecord;
|
mapping(uint256 => uint256) public userRecord;
|
||||||
/// @dev List of valid Bacen signature addresses
|
|
||||||
mapping(uint256 => bool) public validBacenSigners;
|
|
||||||
/// @dev List of Pix transactions already signed.
|
|
||||||
mapping(bytes32 => bool) public usedTransactions;
|
|
||||||
/// @dev Tokens allowed to serve as the underlying amount of a deposit.
|
|
||||||
mapping(ERC20 => bool) public allowedERC20s;
|
|
||||||
|
|
||||||
// BITS LAYOUT
|
|
||||||
// `uint96` [0...94] := balance
|
|
||||||
// `uint160` [95...254] := pixTarget
|
|
||||||
// `bool` [255] := valid
|
|
||||||
|
|
||||||
/// @dev `balance` max. value = 10**26.
|
|
||||||
/// @dev `pixTarget` keys are restricted to 160 bits.
|
|
||||||
mapping(uint256 => mapping(ERC20 => uint256))
|
|
||||||
public sellerBalance;
|
|
||||||
|
|
||||||
/// ███ Constructor ████████████████████████████████████████████████████████
|
/// ███ Constructor ████████████████████████████████████████████████████████
|
||||||
|
|
||||||
@ -107,8 +122,8 @@ contract P2PIX is
|
|||||||
uint256 k = _castAddrToKey(msg.sender);
|
uint256 k = _castAddrToKey(msg.sender);
|
||||||
|
|
||||||
if (_pixTarget == 0) revert EmptyPixTarget();
|
if (_pixTarget == 0) revert EmptyPixTarget();
|
||||||
if (!allowedERC20s[t]) revert TokenDenied();
|
if (!allowedERC20s(t)) revert TokenDenied();
|
||||||
uint256 _sellerBalance = sellerBalance[k][t];
|
uint256 _sellerBalance = sellerBalance(k,t);
|
||||||
|
|
||||||
uint256 currBal = _sellerBalance & BITMASK_SB_ENTRY;
|
uint256 currBal = _sellerBalance & BITMASK_SB_ENTRY;
|
||||||
if ((currBal + _amount) > 1e8 ether)
|
if ((currBal + _amount) > 1e8 ether)
|
||||||
@ -129,10 +144,13 @@ contract P2PIX is
|
|||||||
validCasted
|
validCasted
|
||||||
) = _castToUint(_amount, _pixTarget, _valid);
|
) = _castToUint(_amount, _pixTarget, _valid);
|
||||||
|
|
||||||
sellerBalance[k][t] =
|
_setSellerBalance(
|
||||||
(currBal + amountCasted) |
|
k,
|
||||||
|
t,
|
||||||
|
((currBal + amountCasted) |
|
||||||
(pixTargetCasted << BITPOS_PIXTARGET) |
|
(pixTargetCasted << BITPOS_PIXTARGET) |
|
||||||
(validCasted << BITPOS_VALID);
|
(validCasted << BITPOS_VALID))
|
||||||
|
);
|
||||||
|
|
||||||
SafeTransferLib.safeTransferFrom(
|
SafeTransferLib.safeTransferFrom(
|
||||||
t,
|
t,
|
||||||
@ -152,7 +170,7 @@ contract P2PIX is
|
|||||||
/// @dev Function sighash: 0x72fada5c.
|
/// @dev Function sighash: 0x72fada5c.
|
||||||
function setValidState(ERC20 token, bool state) public {
|
function setValidState(ERC20 token, bool state) public {
|
||||||
uint256 key = _castAddrToKey(msg.sender);
|
uint256 key = _castAddrToKey(msg.sender);
|
||||||
uint256 _sellerBalance = sellerBalance[key][token];
|
uint256 _sellerBalance = sellerBalance(key, token);
|
||||||
|
|
||||||
if (_sellerBalance != 0) {
|
if (_sellerBalance != 0) {
|
||||||
uint256 _valid;
|
uint256 _valid;
|
||||||
@ -164,7 +182,7 @@ contract P2PIX is
|
|||||||
(_sellerBalance & BITMASK_VALID) |
|
(_sellerBalance & BITMASK_VALID) |
|
||||||
(_valid << BITPOS_VALID);
|
(_valid << BITPOS_VALID);
|
||||||
|
|
||||||
sellerBalance[key][token] = _sellerBalance;
|
_setSellerBalance(key, token, _sellerBalance);
|
||||||
|
|
||||||
emit ValidSet(msg.sender, address(token), state);
|
emit ValidSet(msg.sender, address(token), state);
|
||||||
} else revert NotInitialized();
|
} else revert NotInitialized();
|
||||||
@ -179,7 +197,6 @@ contract P2PIX is
|
|||||||
/// from the total `remaining` value.
|
/// from the total `remaining` value.
|
||||||
/// @dev Locks can only be performed in valid orders.
|
/// @dev Locks can only be performed in valid orders.
|
||||||
/// @param _buyerAddress The address of the buyer of a `_depositID`.
|
/// @param _buyerAddress The address of the buyer of a `_depositID`.
|
||||||
/// @param _relayerTarget Target address entitled to the `relayerPremium`.
|
|
||||||
/// @param _relayerPremium The refund/premium owed to a relayer.
|
/// @param _relayerPremium The refund/premium owed to a relayer.
|
||||||
/// @param _amount The deposit's remaining amount wished to be locked.
|
/// @param _amount The deposit's remaining amount wished to be locked.
|
||||||
/// @param merkleProof This value should be:
|
/// @param merkleProof This value should be:
|
||||||
@ -193,7 +210,7 @@ contract P2PIX is
|
|||||||
address _seller,
|
address _seller,
|
||||||
address _token,
|
address _token,
|
||||||
address _buyerAddress,
|
address _buyerAddress,
|
||||||
address _relayerTarget,
|
// address _relayerTarget,
|
||||||
uint256 _relayerPremium,
|
uint256 _relayerPremium,
|
||||||
uint256 _amount,
|
uint256 _amount,
|
||||||
bytes32[] calldata merkleProof,
|
bytes32[] calldata merkleProof,
|
||||||
@ -221,17 +238,17 @@ contract P2PIX is
|
|||||||
_relayerPremium,
|
_relayerPremium,
|
||||||
_amount,
|
_amount,
|
||||||
(block.number + defaultLockBlocks),
|
(block.number + defaultLockBlocks),
|
||||||
uint160(sellerBalance[k][t] >> BITPOS_PIXTARGET),
|
uint160(sellerBalance(k, t) >> BITPOS_PIXTARGET),
|
||||||
_buyerAddress,
|
_buyerAddress,
|
||||||
_relayerTarget,
|
// _relayerTarget,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
address(t)
|
address(t)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (merkleProof.length != 0) {
|
if (merkleProof.length != 0) {
|
||||||
merkleVerify(
|
_merkleVerify(
|
||||||
merkleProof,
|
merkleProof,
|
||||||
sellerAllowList[k],
|
sellerAllowList(k),
|
||||||
msg.sender
|
msg.sender
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -283,11 +300,10 @@ contract P2PIX is
|
|||||||
/// In case of they differing:
|
/// In case of they differing:
|
||||||
/// - `lock` caller gets accrued with `l.amount` as userRecord credit;
|
/// - `lock` caller gets accrued with `l.amount` as userRecord credit;
|
||||||
/// - `release` caller gets accrued with `l.relayerPremium` as userRecord credit;
|
/// - `release` caller gets accrued with `l.relayerPremium` as userRecord credit;
|
||||||
/// @param _relayerTarget Target address entitled to the `relayerPremium`.
|
|
||||||
/// @dev Function sighash: 0x4e1389ed.
|
/// @dev Function sighash: 0x4e1389ed.
|
||||||
function release(
|
function release(
|
||||||
uint256 lockID,
|
uint256 lockID,
|
||||||
address _relayerTarget,
|
// address _relayerTarget,
|
||||||
bytes32 pixTimestamp,
|
bytes32 pixTimestamp,
|
||||||
bytes32 r,
|
bytes32 r,
|
||||||
bytes32 s,
|
bytes32 s,
|
||||||
@ -313,14 +329,14 @@ contract P2PIX is
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (usedTransactions[message] == true)
|
if (usedTransactions(message) == true)
|
||||||
revert TxAlreadyUsed();
|
revert TxAlreadyUsed();
|
||||||
|
|
||||||
uint256 signer = _castAddrToKey(
|
uint256 signer = _castAddrToKey(
|
||||||
ecrecover(messageDigest, v, r, s)
|
ecrecover(messageDigest, v, r, s)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!validBacenSigners[signer])
|
if (!validBacenSigners(signer))
|
||||||
revert InvalidSigner();
|
revert InvalidSigner();
|
||||||
|
|
||||||
ERC20 t = ERC20(l.token);
|
ERC20 t = ERC20(l.token);
|
||||||
@ -331,7 +347,7 @@ contract P2PIX is
|
|||||||
|
|
||||||
l.amount = 0;
|
l.amount = 0;
|
||||||
l.expirationBlock = 0;
|
l.expirationBlock = 0;
|
||||||
usedTransactions[message] = true;
|
_setUsedTransactions(message);
|
||||||
|
|
||||||
if (msg.sender != l.relayerAddress) {
|
if (msg.sender != l.relayerAddress) {
|
||||||
userRecord[_castAddrToKey(msg.sender)] += l
|
userRecord[_castAddrToKey(msg.sender)] += l
|
||||||
@ -352,21 +368,21 @@ contract P2PIX is
|
|||||||
|
|
||||||
// Method doesn't check for zero address.
|
// Method doesn't check for zero address.
|
||||||
if (l.relayerPremium != 0) {
|
if (l.relayerPremium != 0) {
|
||||||
if (_relayerTarget != l.relayerTarget) {
|
if (msg.sender != l.relayerAddress) {
|
||||||
SafeTransferLib.safeTransfer(
|
SafeTransferLib.safeTransfer(
|
||||||
t,
|
t,
|
||||||
l.relayerTarget,
|
l.relayerAddress,
|
||||||
(l.relayerPremium >> 1)
|
(l.relayerPremium >> 1)
|
||||||
);
|
);
|
||||||
SafeTransferLib.safeTransfer(
|
SafeTransferLib.safeTransfer(
|
||||||
t,
|
t,
|
||||||
_relayerTarget,
|
msg.sender,
|
||||||
(l.relayerPremium >> 1)
|
(l.relayerPremium >> 1)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
SafeTransferLib.safeTransfer(
|
SafeTransferLib.safeTransfer(
|
||||||
t,
|
t,
|
||||||
_relayerTarget,
|
msg.sender,
|
||||||
l.relayerPremium
|
l.relayerPremium
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -392,15 +408,12 @@ contract P2PIX is
|
|||||||
|
|
||||||
_notExpired(l);
|
_notExpired(l);
|
||||||
|
|
||||||
uint256 _sellerBalance = sellerBalance[
|
uint256 _sellerBalance = sellerBalance(l.sellerKey, ERC20(l.token)) & BITMASK_SB_ENTRY;
|
||||||
l.sellerKey
|
|
||||||
][ERC20(l.token)] & BITMASK_SB_ENTRY;
|
|
||||||
|
|
||||||
if ((_sellerBalance + l.amount) > 1e8 ether)
|
if ((_sellerBalance + l.amount) > 1e8 ether)
|
||||||
revert MaxBalExceeded();
|
revert MaxBalExceeded();
|
||||||
|
|
||||||
sellerBalance[l.sellerKey][ERC20(l.token)] += l
|
_addSellerBalance(l.sellerKey, ERC20(l.token), l.amount);
|
||||||
.amount;
|
|
||||||
|
|
||||||
l.amount = 0;
|
l.amount = 0;
|
||||||
|
|
||||||
@ -448,7 +461,7 @@ contract P2PIX is
|
|||||||
|
|
||||||
uint256 key = _castAddrToKey(msg.sender);
|
uint256 key = _castAddrToKey(msg.sender);
|
||||||
_decBal(
|
_decBal(
|
||||||
(sellerBalance[key][token] & BITMASK_SB_ENTRY),
|
(sellerBalance(key, token) & BITMASK_SB_ENTRY),
|
||||||
amount,
|
amount,
|
||||||
token,
|
token,
|
||||||
key
|
key
|
||||||
@ -471,14 +484,30 @@ contract P2PIX is
|
|||||||
function setRoot(address addr, bytes32 merkleroot)
|
function setRoot(address addr, bytes32 merkleroot)
|
||||||
public
|
public
|
||||||
{
|
{
|
||||||
if (addr == msg.sender) {
|
assembly {
|
||||||
sellerAllowList[
|
// if (addr != msg.sender)
|
||||||
_castAddrToKey(addr)
|
if iszero(eq(addr, caller())) {
|
||||||
] = merkleroot;
|
// revert OnlySeller()
|
||||||
emit RootUpdated(addr, merkleroot);
|
mstore(0x00, 0x85d1f726)
|
||||||
} else revert OnlySeller();
|
revert(0x1c, 0x04)
|
||||||
|
}
|
||||||
|
// sets root to SellerAllowlist's storage slot
|
||||||
|
mstore(0x0c, _SELLER_ALLOWLIST_SLOT_SEED)
|
||||||
|
mstore(0x00, addr)
|
||||||
|
sstore(keccak256(0x00, 0x20), merkleroot)
|
||||||
|
|
||||||
|
// emit RootUpdated(addr, merkleroot);
|
||||||
|
log3(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
_ROOT_UPDATED_EVENT_SIGNATURE,
|
||||||
|
addr,
|
||||||
|
merkleroot
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// ███ Owner Only █████████████████████████████████████████████████████████
|
/// ███ Owner Only █████████████████████████████████████████████████████████
|
||||||
|
|
||||||
/// @dev Contract's underlying balance withdraw method.
|
/// @dev Contract's underlying balance withdraw method.
|
||||||
@ -513,15 +542,16 @@ contract P2PIX is
|
|||||||
public
|
public
|
||||||
onlyOwner
|
onlyOwner
|
||||||
{
|
{
|
||||||
unchecked {
|
assembly {
|
||||||
uint256 i;
|
let i := add(_validSigners, 0x20)
|
||||||
uint256 len = _validSigners.length;
|
let end := add(i, shl(0x05, mload(_validSigners)))
|
||||||
for (i; i < len; ) {
|
for {/* */} iszero(returndatasize()) {/* */} {
|
||||||
uint256 key = _castAddrToKey(
|
sstore(shl(12, mload(i)), true)
|
||||||
_validSigners[i]
|
i := add(i, 0x20)
|
||||||
);
|
|
||||||
validBacenSigners[key] = true;
|
if iszero(lt(i, end)) {
|
||||||
++i;
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
emit ValidSignersUpdated(_validSigners);
|
emit ValidSignersUpdated(_validSigners);
|
||||||
@ -554,15 +584,16 @@ contract P2PIX is
|
|||||||
sLoc := add(sLoc, 0x20)
|
sLoc := add(sLoc, 0x20)
|
||||||
} {
|
} {
|
||||||
// cache hashmap entry in scratch space
|
// cache hashmap entry in scratch space
|
||||||
|
mstore(0x0c, _ALLOWED_ERC20_SLOT_SEED)
|
||||||
mstore(0x00, mload(tLoc))
|
mstore(0x00, mload(tLoc))
|
||||||
mstore(0x20, allowedERC20s.slot)
|
// let mapSlot := keccak256(0x0c, 0x20)
|
||||||
let mapSlot := keccak256(0x00, 0x40)
|
sstore(keccak256(0x0c, 0x20), mload(sLoc))
|
||||||
sstore(mapSlot, mload(sLoc))
|
|
||||||
|
// emit AllowedERC20Updated(address, bool)
|
||||||
log3(
|
log3(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
// AllowedERC20Updated(address, bool)
|
_ALLOWED_ERC20_UPDATED_EVENT_SIGNATURE,
|
||||||
0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a,
|
|
||||||
mload(tLoc),
|
mload(tLoc),
|
||||||
mload(sLoc)
|
mload(sLoc)
|
||||||
)
|
)
|
||||||
@ -605,7 +636,7 @@ contract P2PIX is
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function merkleVerify(
|
function _merkleVerify(
|
||||||
bytes32[] calldata _merkleProof,
|
bytes32[] calldata _merkleProof,
|
||||||
bytes32 root,
|
bytes32 root,
|
||||||
address _addr
|
address _addr
|
||||||
@ -631,8 +662,8 @@ contract P2PIX is
|
|||||||
);
|
);
|
||||||
// cast the uninitialized return values to memory
|
// cast the uninitialized return values to memory
|
||||||
bool success;
|
bool success;
|
||||||
uint256 returnSize;
|
// uint256 returnSize;
|
||||||
uint256 returnValue;
|
// uint256 returnValue;
|
||||||
// perform staticcall from the stack w yul
|
// perform staticcall from the stack w yul
|
||||||
assembly {
|
assembly {
|
||||||
success := staticcall(
|
success := staticcall(
|
||||||
@ -649,9 +680,10 @@ contract P2PIX is
|
|||||||
// retSize
|
// retSize
|
||||||
0x20
|
0x20
|
||||||
)
|
)
|
||||||
returnSize := returndatasize()
|
// returnSize := returndatasize()
|
||||||
returnValue := mload(0x00)
|
// returnValue := mload(0x00)
|
||||||
_spendLimit := returnValue
|
// _spendLimit := returnValue
|
||||||
|
_spendLimit := mload(0x00)
|
||||||
// reverts if call does not succeed.
|
// reverts if call does not succeed.
|
||||||
if iszero(success) {
|
if iszero(success) {
|
||||||
// StaticCallFailed()
|
// StaticCallFailed()
|
||||||
@ -692,7 +724,7 @@ contract P2PIX is
|
|||||||
iszero(
|
iszero(
|
||||||
or(
|
or(
|
||||||
iszero(_bal),
|
iszero(_bal),
|
||||||
lt(sub(_bal, _amount), 0x0)
|
gt(sub(_bal, _amount), _bal)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
@ -703,7 +735,7 @@ contract P2PIX is
|
|||||||
}
|
}
|
||||||
|
|
||||||
// we can directly dec from packed uint entry value
|
// we can directly dec from packed uint entry value
|
||||||
sellerBalance[_k][_t] -= _amount;
|
_decSellerBalance(_k,_t, _amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBalance(address seller, ERC20 token)
|
function getBalance(address seller, ERC20 token)
|
||||||
@ -717,17 +749,15 @@ contract P2PIX is
|
|||||||
assembly {
|
assembly {
|
||||||
for {
|
for {
|
||||||
/* */
|
/* */
|
||||||
} iszero(0x0) {
|
} iszero(returndatasize()) {
|
||||||
/* */
|
/* */
|
||||||
} {
|
} {
|
||||||
mstore(0x00, shl(0xC, seller))
|
mstore(0x20, token)
|
||||||
mstore(0x20, sellerBalance.slot)
|
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||||
let sbkslot := keccak256(0x00, 0x40)
|
mstore(0x00, seller)
|
||||||
mstore(0x00, token)
|
|
||||||
mstore(0x20, sbkslot)
|
|
||||||
bal := and(
|
bal := and(
|
||||||
BITMASK_SB_ENTRY,
|
BITMASK_SB_ENTRY,
|
||||||
sload(keccak256(0x00, 0x40))
|
sload(keccak256(0x0c, 0x34))
|
||||||
)
|
)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -746,19 +776,17 @@ contract P2PIX is
|
|||||||
assembly {
|
assembly {
|
||||||
for {
|
for {
|
||||||
/* */
|
/* */
|
||||||
} iszero(0x0) {
|
} iszero(returndatasize()) {
|
||||||
/* */
|
/* */
|
||||||
} {
|
} {
|
||||||
mstore(0x00, shl(0xC, seller))
|
mstore(0x20, token)
|
||||||
mstore(0x20, sellerBalance.slot)
|
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||||
let sbkslot := keccak256(0x00, 0x40)
|
mstore(0x00, seller)
|
||||||
mstore(0x00, token)
|
|
||||||
mstore(0x20, sbkslot)
|
|
||||||
valid := and(
|
valid := and(
|
||||||
BITMASK_SB_ENTRY,
|
BITMASK_SB_ENTRY,
|
||||||
shr(
|
shr(
|
||||||
BITPOS_VALID,
|
BITPOS_VALID,
|
||||||
sload(keccak256(0x00, 0x40))
|
sload(keccak256(0x0c, 0x34))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
break
|
break
|
||||||
@ -778,17 +806,15 @@ contract P2PIX is
|
|||||||
assembly {
|
assembly {
|
||||||
for {
|
for {
|
||||||
/* */
|
/* */
|
||||||
} iszero(0) {
|
} iszero(returndatasize()) {
|
||||||
/* */
|
/* */
|
||||||
} {
|
} {
|
||||||
mstore(0, shl(12, seller))
|
mstore(0x20, token)
|
||||||
mstore(32, sellerBalance.slot)
|
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||||
let sbkslot := keccak256(0, 64)
|
mstore(0x00, seller)
|
||||||
mstore(0, token)
|
|
||||||
mstore(32, sbkslot)
|
|
||||||
pixTarget := shr(
|
pixTarget := shr(
|
||||||
BITPOS_PIXTARGET,
|
BITPOS_PIXTARGET,
|
||||||
sload(keccak256(0, 64))
|
sload(keccak256(0x0c, 0x34))
|
||||||
)
|
)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -862,6 +888,79 @@ contract P2PIX is
|
|||||||
return (sortedIDs, status);
|
return (sortedIDs, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function allowedERC20s(ERC20 erc20) public view returns (bool state) {
|
||||||
|
assembly {
|
||||||
|
mstore(0x0c, _ALLOWED_ERC20_SLOT_SEED)
|
||||||
|
mstore(0x00, erc20)
|
||||||
|
state := sload(keccak256(0x0c, 0x20))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _setUsedTransactions(bytes32 message) private {
|
||||||
|
assembly {
|
||||||
|
sstore(message, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function usedTransactions(bytes32 message) public view returns(bool used) {
|
||||||
|
assembly {
|
||||||
|
used := sload(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function validBacenSigners(uint256 signer) public view returns(bool valid) {
|
||||||
|
assembly {
|
||||||
|
valid := sload(signer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function sellerAllowList(uint256 sellerKey) public view returns(bytes32 root) {
|
||||||
|
assembly {
|
||||||
|
mstore(0x0c, _SELLER_ALLOWLIST_SLOT_SEED)
|
||||||
|
mstore(0x00, shr(12, sellerKey))
|
||||||
|
root := sload(keccak256(0x00, 0x20))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _setSellerBalance(uint256 sellerKey, ERC20 erc20, uint256 packed) private {
|
||||||
|
assembly {
|
||||||
|
mstore(0x20, erc20)
|
||||||
|
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||||
|
mstore(0x00, shr(12, sellerKey))
|
||||||
|
sstore(keccak256(0x0c, 0x34), packed)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _addSellerBalance(uint256 sellerKey, ERC20 erc20, uint256 amount) private {
|
||||||
|
assembly {
|
||||||
|
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))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _decSellerBalance(uint256 sellerKey, ERC20 erc20, uint256 amount) private {
|
||||||
|
assembly {
|
||||||
|
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))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function sellerBalance(uint256 sellerKey, ERC20 erc20) public view returns(uint256 packed) {
|
||||||
|
assembly {
|
||||||
|
mstore(0x20, erc20)
|
||||||
|
mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
|
||||||
|
mstore(0x00, shr(12, sellerKey))
|
||||||
|
packed := sload(keccak256(0x0c, 0x34))
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// @notice Public method that handles `address`
|
/// @notice Public method that handles `address`
|
||||||
/// to `uint256` safe type casting.
|
/// to `uint256` safe type casting.
|
||||||
/// @dev Function sighash: 0x4b2ae980.
|
/// @dev Function sighash: 0x4b2ae980.
|
||||||
|
@ -5,6 +5,7 @@ import type {
|
|||||||
BaseContract,
|
BaseContract,
|
||||||
BigNumber,
|
BigNumber,
|
||||||
BigNumberish,
|
BigNumberish,
|
||||||
|
BytesLike,
|
||||||
Signer,
|
Signer,
|
||||||
utils,
|
utils,
|
||||||
} from "ethers";
|
} from "ethers";
|
||||||
@ -300,10 +301,13 @@ export interface EventAndErrors extends BaseContract {
|
|||||||
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
||||||
|
|
||||||
"RootUpdated(address,bytes32)"(
|
"RootUpdated(address,bytes32)"(
|
||||||
seller?: null,
|
seller?: PromiseOrValue<string> | null,
|
||||||
merkleRoot?: null
|
merkleRoot?: PromiseOrValue<BytesLike> | null
|
||||||
|
): RootUpdatedEventFilter;
|
||||||
|
RootUpdated(
|
||||||
|
seller?: PromiseOrValue<string> | null,
|
||||||
|
merkleRoot?: PromiseOrValue<BytesLike> | null
|
||||||
): RootUpdatedEventFilter;
|
): RootUpdatedEventFilter;
|
||||||
RootUpdated(seller?: null, merkleRoot?: null): RootUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ValidSet(address,address,bool)"(
|
"ValidSet(address,address,bool)"(
|
||||||
seller?: PromiseOrValue<string> | null,
|
seller?: PromiseOrValue<string> | null,
|
||||||
|
@ -298,13 +298,13 @@ const _abi = [
|
|||||||
anonymous: false,
|
anonymous: false,
|
||||||
inputs: [
|
inputs: [
|
||||||
{
|
{
|
||||||
indexed: false,
|
indexed: true,
|
||||||
internalType: "address",
|
internalType: "address",
|
||||||
name: "seller",
|
name: "seller",
|
||||||
type: "address",
|
type: "address",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
indexed: false,
|
indexed: true,
|
||||||
internalType: "bytes32",
|
internalType: "bytes32",
|
||||||
name: "merkleRoot",
|
name: "merkleRoot",
|
||||||
type: "bytes32",
|
type: "bytes32",
|
||||||
|
File diff suppressed because one or more lines are too long
@ -40,11 +40,11 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
"getLocksStatus(uint256[])": FunctionFragment;
|
"getLocksStatus(uint256[])": FunctionFragment;
|
||||||
"getPixTarget(address,address)": FunctionFragment;
|
"getPixTarget(address,address)": FunctionFragment;
|
||||||
"getValid(address,address)": FunctionFragment;
|
"getValid(address,address)": FunctionFragment;
|
||||||
"lock(address,address,address,address,uint256,uint256,bytes32[],uint256[])": FunctionFragment;
|
"lock(address,address,address,uint256,uint256,bytes32[],uint256[])": FunctionFragment;
|
||||||
"lockCounter()": FunctionFragment;
|
"lockCounter()": FunctionFragment;
|
||||||
"mapLocks(uint256)": FunctionFragment;
|
"mapLocks(uint256)": FunctionFragment;
|
||||||
"owner()": FunctionFragment;
|
"owner()": FunctionFragment;
|
||||||
"release(uint256,address,bytes32,bytes32,bytes32,uint8)": FunctionFragment;
|
"release(uint256,bytes32,bytes32,bytes32,uint8)": FunctionFragment;
|
||||||
"reputation()": FunctionFragment;
|
"reputation()": FunctionFragment;
|
||||||
"sellerAllowList(uint256)": FunctionFragment;
|
"sellerAllowList(uint256)": FunctionFragment;
|
||||||
"sellerBalance(uint256,address)": FunctionFragment;
|
"sellerBalance(uint256,address)": FunctionFragment;
|
||||||
@ -152,7 +152,6 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<string>,
|
PromiseOrValue<string>,
|
||||||
PromiseOrValue<string>,
|
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<BytesLike>[],
|
PromiseOrValue<BytesLike>[],
|
||||||
@ -172,7 +171,6 @@ export interface P2PIXInterface extends utils.Interface {
|
|||||||
functionFragment: "release",
|
functionFragment: "release",
|
||||||
values: [
|
values: [
|
||||||
PromiseOrValue<BigNumberish>,
|
PromiseOrValue<BigNumberish>,
|
||||||
PromiseOrValue<string>,
|
|
||||||
PromiseOrValue<BytesLike>,
|
PromiseOrValue<BytesLike>,
|
||||||
PromiseOrValue<BytesLike>,
|
PromiseOrValue<BytesLike>,
|
||||||
PromiseOrValue<BytesLike>,
|
PromiseOrValue<BytesLike>,
|
||||||
@ -560,9 +558,9 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<[string] & { _addr: string }>;
|
): Promise<[string] & { _addr: string }>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
arg0: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[boolean]>;
|
): Promise<[boolean] & { state: boolean }>;
|
||||||
|
|
||||||
defaultLockBlocks(overrides?: CallOverrides): Promise<[BigNumber]>;
|
defaultLockBlocks(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||||
|
|
||||||
@ -608,7 +606,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_buyerAddress: PromiseOrValue<string>,
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
_relayerPremium: PromiseOrValue<BigNumberish>,
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
@ -631,7 +628,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
BigNumber,
|
BigNumber,
|
||||||
string,
|
string,
|
||||||
string,
|
string,
|
||||||
string,
|
|
||||||
string
|
string
|
||||||
] & {
|
] & {
|
||||||
sellerKey: BigNumber;
|
sellerKey: BigNumber;
|
||||||
@ -641,7 +637,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
expirationBlock: BigNumber;
|
expirationBlock: BigNumber;
|
||||||
pixTarget: BigNumber;
|
pixTarget: BigNumber;
|
||||||
buyerAddress: string;
|
buyerAddress: string;
|
||||||
relayerTarget: string;
|
|
||||||
relayerAddress: string;
|
relayerAddress: string;
|
||||||
token: string;
|
token: string;
|
||||||
}
|
}
|
||||||
@ -651,7 +646,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@ -662,15 +656,15 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<[string]>;
|
reputation(overrides?: CallOverrides): Promise<[string]>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[string]>;
|
): Promise<[string] & { root: string }>;
|
||||||
|
|
||||||
sellerBalance(
|
sellerBalance(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
arg1: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[BigNumber]>;
|
): Promise<[BigNumber] & { packed: BigNumber }>;
|
||||||
|
|
||||||
setDefaultLockBlocks(
|
setDefaultLockBlocks(
|
||||||
_blocks: PromiseOrValue<BigNumberish>,
|
_blocks: PromiseOrValue<BigNumberish>,
|
||||||
@ -716,9 +710,9 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
arg0: PromiseOrValue<BytesLike>,
|
message: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[boolean]>;
|
): Promise<[boolean] & { used: boolean }>;
|
||||||
|
|
||||||
userRecord(
|
userRecord(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
arg0: PromiseOrValue<BigNumberish>,
|
||||||
@ -726,9 +720,9 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<[BigNumber]>;
|
): Promise<[BigNumber]>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
signer: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<[boolean]>;
|
): Promise<[boolean] & { valid: boolean }>;
|
||||||
|
|
||||||
withdraw(
|
withdraw(
|
||||||
token: PromiseOrValue<string>,
|
token: PromiseOrValue<string>,
|
||||||
@ -755,7 +749,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
arg0: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@ -803,7 +797,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_buyerAddress: PromiseOrValue<string>,
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
_relayerPremium: PromiseOrValue<BigNumberish>,
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
@ -826,7 +819,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
BigNumber,
|
BigNumber,
|
||||||
string,
|
string,
|
||||||
string,
|
string,
|
||||||
string,
|
|
||||||
string
|
string
|
||||||
] & {
|
] & {
|
||||||
sellerKey: BigNumber;
|
sellerKey: BigNumber;
|
||||||
@ -836,7 +828,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
expirationBlock: BigNumber;
|
expirationBlock: BigNumber;
|
||||||
pixTarget: BigNumber;
|
pixTarget: BigNumber;
|
||||||
buyerAddress: string;
|
buyerAddress: string;
|
||||||
relayerTarget: string;
|
|
||||||
relayerAddress: string;
|
relayerAddress: string;
|
||||||
token: string;
|
token: string;
|
||||||
}
|
}
|
||||||
@ -846,7 +837,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@ -857,13 +847,13 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
reputation(overrides?: CallOverrides): Promise<string>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
sellerBalance(
|
sellerBalance(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
arg1: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@ -911,7 +901,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<ContractTransaction>;
|
): Promise<ContractTransaction>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
arg0: PromiseOrValue<BytesLike>,
|
message: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@ -921,7 +911,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
signer: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@ -950,7 +940,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
arg0: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@ -998,7 +988,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_buyerAddress: PromiseOrValue<string>,
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
_relayerPremium: PromiseOrValue<BigNumberish>,
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
@ -1021,7 +1010,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
BigNumber,
|
BigNumber,
|
||||||
string,
|
string,
|
||||||
string,
|
string,
|
||||||
string,
|
|
||||||
string
|
string
|
||||||
] & {
|
] & {
|
||||||
sellerKey: BigNumber;
|
sellerKey: BigNumber;
|
||||||
@ -1031,7 +1019,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
expirationBlock: BigNumber;
|
expirationBlock: BigNumber;
|
||||||
pixTarget: BigNumber;
|
pixTarget: BigNumber;
|
||||||
buyerAddress: string;
|
buyerAddress: string;
|
||||||
relayerTarget: string;
|
|
||||||
relayerAddress: string;
|
relayerAddress: string;
|
||||||
token: string;
|
token: string;
|
||||||
}
|
}
|
||||||
@ -1041,7 +1028,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@ -1052,13 +1038,13 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<string>;
|
reputation(overrides?: CallOverrides): Promise<string>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
|
|
||||||
sellerBalance(
|
sellerBalance(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
arg1: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@ -1106,7 +1092,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<void>;
|
): Promise<void>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
arg0: PromiseOrValue<BytesLike>,
|
message: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@ -1116,7 +1102,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
signer: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<boolean>;
|
): Promise<boolean>;
|
||||||
|
|
||||||
@ -1219,10 +1205,13 @@ export interface P2PIX extends BaseContract {
|
|||||||
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
ReputationUpdated(reputation?: null): ReputationUpdatedEventFilter;
|
||||||
|
|
||||||
"RootUpdated(address,bytes32)"(
|
"RootUpdated(address,bytes32)"(
|
||||||
seller?: null,
|
seller?: PromiseOrValue<string> | null,
|
||||||
merkleRoot?: null
|
merkleRoot?: PromiseOrValue<BytesLike> | null
|
||||||
|
): RootUpdatedEventFilter;
|
||||||
|
RootUpdated(
|
||||||
|
seller?: PromiseOrValue<string> | null,
|
||||||
|
merkleRoot?: PromiseOrValue<BytesLike> | null
|
||||||
): RootUpdatedEventFilter;
|
): RootUpdatedEventFilter;
|
||||||
RootUpdated(seller?: null, merkleRoot?: null): RootUpdatedEventFilter;
|
|
||||||
|
|
||||||
"ValidSet(address,address,bool)"(
|
"ValidSet(address,address,bool)"(
|
||||||
seller?: PromiseOrValue<string> | null,
|
seller?: PromiseOrValue<string> | null,
|
||||||
@ -1255,7 +1244,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
arg0: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@ -1303,7 +1292,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_buyerAddress: PromiseOrValue<string>,
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
_relayerPremium: PromiseOrValue<BigNumberish>,
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
@ -1322,7 +1310,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@ -1333,13 +1320,13 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<BigNumber>;
|
reputation(overrides?: CallOverrides): Promise<BigNumber>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
sellerBalance(
|
sellerBalance(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
arg1: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@ -1387,7 +1374,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
arg0: PromiseOrValue<BytesLike>,
|
message: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@ -1397,7 +1384,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
signer: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<BigNumber>;
|
): Promise<BigNumber>;
|
||||||
|
|
||||||
@ -1427,7 +1414,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
allowedERC20s(
|
allowedERC20s(
|
||||||
arg0: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
@ -1475,7 +1462,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
_seller: PromiseOrValue<string>,
|
_seller: PromiseOrValue<string>,
|
||||||
_token: PromiseOrValue<string>,
|
_token: PromiseOrValue<string>,
|
||||||
_buyerAddress: PromiseOrValue<string>,
|
_buyerAddress: PromiseOrValue<string>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
_relayerPremium: PromiseOrValue<BigNumberish>,
|
_relayerPremium: PromiseOrValue<BigNumberish>,
|
||||||
_amount: PromiseOrValue<BigNumberish>,
|
_amount: PromiseOrValue<BigNumberish>,
|
||||||
merkleProof: PromiseOrValue<BytesLike>[],
|
merkleProof: PromiseOrValue<BytesLike>[],
|
||||||
@ -1494,7 +1480,6 @@ export interface P2PIX extends BaseContract {
|
|||||||
|
|
||||||
release(
|
release(
|
||||||
lockID: PromiseOrValue<BigNumberish>,
|
lockID: PromiseOrValue<BigNumberish>,
|
||||||
_relayerTarget: PromiseOrValue<string>,
|
|
||||||
pixTimestamp: PromiseOrValue<BytesLike>,
|
pixTimestamp: PromiseOrValue<BytesLike>,
|
||||||
r: PromiseOrValue<BytesLike>,
|
r: PromiseOrValue<BytesLike>,
|
||||||
s: PromiseOrValue<BytesLike>,
|
s: PromiseOrValue<BytesLike>,
|
||||||
@ -1505,13 +1490,13 @@ export interface P2PIX extends BaseContract {
|
|||||||
reputation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
reputation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
sellerAllowList(
|
sellerAllowList(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
sellerBalance(
|
sellerBalance(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
sellerKey: PromiseOrValue<BigNumberish>,
|
||||||
arg1: PromiseOrValue<string>,
|
erc20: PromiseOrValue<string>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
@ -1559,7 +1544,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
usedTransactions(
|
usedTransactions(
|
||||||
arg0: PromiseOrValue<BytesLike>,
|
message: PromiseOrValue<BytesLike>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
@ -1569,7 +1554,7 @@ export interface P2PIX extends BaseContract {
|
|||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
validBacenSigners(
|
validBacenSigners(
|
||||||
arg0: PromiseOrValue<BigNumberish>,
|
signer: PromiseOrValue<BigNumberish>,
|
||||||
overrides?: CallOverrides
|
overrides?: CallOverrides
|
||||||
): Promise<PopulatedTransaction>;
|
): Promise<PopulatedTransaction>;
|
||||||
|
|
||||||
|
@ -622,7 +622,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price,
|
price,
|
||||||
[],
|
[],
|
||||||
@ -632,7 +631,6 @@ describe("P2PIX", () => {
|
|||||||
zero,
|
zero,
|
||||||
zero,
|
zero,
|
||||||
zero,
|
zero,
|
||||||
zero,
|
|
||||||
0,
|
0,
|
||||||
price,
|
price,
|
||||||
[],
|
[],
|
||||||
@ -664,7 +662,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price.mul(ethers.BigNumber.from(2)),
|
price.mul(ethers.BigNumber.from(2)),
|
||||||
[],
|
[],
|
||||||
@ -692,7 +689,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
1000,
|
1000,
|
||||||
[
|
[
|
||||||
@ -726,7 +722,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price.mul(BigNumber.from("2")),
|
price.mul(BigNumber.from("2")),
|
||||||
[],
|
[],
|
||||||
@ -754,7 +749,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price,
|
price,
|
||||||
proof,
|
proof,
|
||||||
@ -788,7 +782,6 @@ describe("P2PIX", () => {
|
|||||||
expect(storage.expirationBlock).to.eq(expiration);
|
expect(storage.expirationBlock).to.eq(expiration);
|
||||||
expect(storage.pixTarget).to.eq(target);
|
expect(storage.pixTarget).to.eq(target);
|
||||||
expect(storage.buyerAddress).to.eq(acc02.address);
|
expect(storage.buyerAddress).to.eq(acc02.address);
|
||||||
expect(storage.relayerTarget).to.eq(acc03.address);
|
|
||||||
expect(storage.relayerAddress).to.eq(acc01.address);
|
expect(storage.relayerAddress).to.eq(acc01.address);
|
||||||
expect(storage.token).to.eq(erc20.address);
|
expect(storage.token).to.eq(erc20.address);
|
||||||
});
|
});
|
||||||
@ -809,7 +802,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price,
|
price,
|
||||||
[],
|
[],
|
||||||
@ -839,7 +831,6 @@ describe("P2PIX", () => {
|
|||||||
expect(storage.expirationBlock).to.eq(expiration);
|
expect(storage.expirationBlock).to.eq(expiration);
|
||||||
expect(storage.pixTarget).to.eq(target);
|
expect(storage.pixTarget).to.eq(target);
|
||||||
expect(storage.buyerAddress).to.eq(acc02.address);
|
expect(storage.buyerAddress).to.eq(acc02.address);
|
||||||
expect(storage.relayerTarget).to.eq(acc03.address);
|
|
||||||
expect(storage.relayerAddress).to.eq(acc01.address);
|
expect(storage.relayerAddress).to.eq(acc01.address);
|
||||||
expect(storage.token).to.eq(erc20.address);
|
expect(storage.token).to.eq(erc20.address);
|
||||||
|
|
||||||
@ -878,7 +869,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
price,
|
price,
|
||||||
price,
|
price,
|
||||||
[],
|
[],
|
||||||
@ -888,7 +878,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
acc02.address,
|
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -900,7 +889,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price.add(ethers.constants.One),
|
price.add(ethers.constants.One),
|
||||||
[],
|
[],
|
||||||
@ -932,7 +920,6 @@ describe("P2PIX", () => {
|
|||||||
expect(storage.expirationBlock).to.eq(expiration);
|
expect(storage.expirationBlock).to.eq(expiration);
|
||||||
expect(storage.pixTarget).to.eq(target);
|
expect(storage.pixTarget).to.eq(target);
|
||||||
expect(storage.buyerAddress).to.eq(acc02.address);
|
expect(storage.buyerAddress).to.eq(acc02.address);
|
||||||
expect(storage.relayerTarget).to.eq(acc03.address);
|
|
||||||
expect(storage.relayerAddress).to.eq(acc01.address);
|
expect(storage.relayerAddress).to.eq(acc01.address);
|
||||||
expect(storage.token).to.eq(erc20.address);
|
expect(storage.token).to.eq(erc20.address);
|
||||||
|
|
||||||
@ -958,7 +945,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
newPrice,
|
newPrice,
|
||||||
proof,
|
proof,
|
||||||
@ -977,7 +963,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -996,7 +981,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc03.address,
|
acc03.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1110,10 +1094,10 @@ describe("P2PIX", () => {
|
|||||||
.and.to.eq(storage2.buyerAddress);
|
.and.to.eq(storage2.buyerAddress);
|
||||||
expect(storage3.buyerAddress).to.eq(acc03.address);
|
expect(storage3.buyerAddress).to.eq(acc03.address);
|
||||||
|
|
||||||
expect(acc03.address)
|
// expect(acc03.address)
|
||||||
.to.eq(storage1.relayerTarget)
|
// .to.eq(storage1.relayerTarget)
|
||||||
.and.to.eq(storage2.relayerTarget)
|
// .and.to.eq(storage2.relayerTarget)
|
||||||
.and.to.eq(storage3.relayerTarget);
|
// .and.to.eq(storage3.relayerTarget);
|
||||||
|
|
||||||
expect(acc01.address)
|
expect(acc01.address)
|
||||||
.to.eq(storage1.relayerAddress)
|
.to.eq(storage1.relayerAddress)
|
||||||
@ -1290,7 +1274,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
6,
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1300,7 +1283,6 @@ describe("P2PIX", () => {
|
|||||||
await mine(13);
|
await mine(13);
|
||||||
const fail = p2pix.release(
|
const fail = p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
acc03.address,
|
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1337,7 +1319,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
6,
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1346,7 +1327,6 @@ describe("P2PIX", () => {
|
|||||||
const lockID = ethers.constants.One;
|
const lockID = ethers.constants.One;
|
||||||
await p2pix.release(
|
await p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
acc03.address,
|
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1354,7 +1334,6 @@ describe("P2PIX", () => {
|
|||||||
);
|
);
|
||||||
const fail = p2pix.release(
|
const fail = p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
acc03.address,
|
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1390,7 +1369,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
6,
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1401,7 +1379,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
acc02.address,
|
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1413,7 +1390,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
6,
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1423,7 +1399,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
2,
|
2,
|
||||||
acc02.address,
|
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1460,7 +1435,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
6,
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1470,7 +1444,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
acc02.address,
|
|
||||||
ethers.constants.HashZero,
|
ethers.constants.HashZero,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1522,7 +1495,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
6,
|
6,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1547,7 +1519,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
1,
|
1,
|
||||||
acc02.address,
|
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1633,8 +1604,8 @@ describe("P2PIX", () => {
|
|||||||
expect(userRecord2).to.eq(ethers.BigNumber.from(100));
|
expect(userRecord2).to.eq(ethers.BigNumber.from(100));
|
||||||
await expect(tx).to.changeTokenBalances(
|
await expect(tx).to.changeTokenBalances(
|
||||||
erc20,
|
erc20,
|
||||||
[acc03.address, acc02.address],
|
[acc03.address, acc01.address, acc02.address ],
|
||||||
[3, 97],
|
[3, 3, 94],
|
||||||
// acc02 is acting both as buyer and relayerTarget
|
// acc02 is acting both as buyer and relayerTarget
|
||||||
// (i.e., 94 + 3 = 97)
|
// (i.e., 94 + 3 = 97)
|
||||||
);
|
);
|
||||||
@ -1694,7 +1665,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -1706,7 +1676,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
6,
|
6,
|
||||||
50,
|
50,
|
||||||
[],
|
[],
|
||||||
@ -1718,7 +1687,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
10,
|
10,
|
||||||
25,
|
25,
|
||||||
[],
|
[],
|
||||||
@ -1754,7 +1722,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
lockID,
|
lockID,
|
||||||
acc02.address,
|
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig1.r,
|
sig1.r,
|
||||||
sig1.s,
|
sig1.s,
|
||||||
@ -1766,7 +1733,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc01)
|
.connect(acc01)
|
||||||
.release(
|
.release(
|
||||||
lockID2,
|
lockID2,
|
||||||
acc02.address,
|
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig2.r,
|
sig2.r,
|
||||||
sig2.s,
|
sig2.s,
|
||||||
@ -1778,7 +1744,6 @@ describe("P2PIX", () => {
|
|||||||
.connect(acc03)
|
.connect(acc03)
|
||||||
.release(
|
.release(
|
||||||
lockID3,
|
lockID3,
|
||||||
acc02.address,
|
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig3.r,
|
sig3.r,
|
||||||
sig3.s,
|
sig3.s,
|
||||||
@ -1849,8 +1814,8 @@ describe("P2PIX", () => {
|
|||||||
|
|
||||||
const balances = [
|
const balances = [
|
||||||
[0, 100, 0, "-100"],
|
[0, 100, 0, "-100"],
|
||||||
[0, 47, 3, "-50"],
|
[3, 44, 3, "-50"],
|
||||||
[0, 20, 5, "-25"],
|
[0, 15, 10, "-25"],
|
||||||
];
|
];
|
||||||
|
|
||||||
for (let i = 0; i < 3; i++) {
|
for (let i = 0; i < 3; i++) {
|
||||||
@ -1899,7 +1864,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
[],
|
[],
|
||||||
@ -1940,7 +1904,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
[],
|
[],
|
||||||
@ -1950,7 +1913,6 @@ describe("P2PIX", () => {
|
|||||||
// await mine(10);
|
// await mine(10);
|
||||||
await p2pix.release(
|
await p2pix.release(
|
||||||
lockID,
|
lockID,
|
||||||
acc03.address,
|
|
||||||
endtoendID,
|
endtoendID,
|
||||||
sig.r,
|
sig.r,
|
||||||
sig.s,
|
sig.s,
|
||||||
@ -1979,7 +1941,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
[],
|
[],
|
||||||
@ -2045,7 +2006,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price,
|
price,
|
||||||
proof,
|
proof,
|
||||||
@ -2087,7 +2047,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
100,
|
100,
|
||||||
[],
|
[],
|
||||||
@ -2123,7 +2082,6 @@ describe("P2PIX", () => {
|
|||||||
owner.address,
|
owner.address,
|
||||||
erc20.address,
|
erc20.address,
|
||||||
acc02.address,
|
acc02.address,
|
||||||
acc03.address,
|
|
||||||
0,
|
0,
|
||||||
price,
|
price,
|
||||||
proof,
|
proof,
|
||||||
|
@ -27,7 +27,6 @@ export interface Lock {
|
|||||||
expirationBlock: BigNumber;
|
expirationBlock: BigNumber;
|
||||||
pixTarget: BigNumber;
|
pixTarget: BigNumber;
|
||||||
buyerAddress: string;
|
buyerAddress: string;
|
||||||
relayerTarget: string;
|
|
||||||
relayerAddress: string;
|
relayerAddress: string;
|
||||||
token: string;
|
token: string;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user