Compare commits

...

2 Commits

Author SHA1 Message Date
hueso
9f28da6052 use ERC20 datatype 2023-05-22 08:46:55 -03:00
hueso
6f873785aa revamped lock() conditionals 2023-05-22 08:44:33 -03:00
8 changed files with 51 additions and 53 deletions

View File

@ -31,7 +31,7 @@ library DataTypes {
uint256 expirationBlock;
bytes32 pixTarget;
uint80 amount;
address token;
ERC20 token;
address buyerAddress;
address seller;
}

View File

@ -1,6 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import { ERC20 } from "../lib/tokens/ERC20.sol";
// prettier-ignore
interface EventAndErrors {
/// Events
@ -9,19 +11,19 @@ interface EventAndErrors {
event DepositAdded(
address indexed seller,
// uint256 depositID,
address token,
ERC20 token,
uint256 amount
);
/// @dev 0xca585721b6b442dc9183932f7c84dc2880efb67c4da52cc06873e78971105d49
event ValidSet(
address indexed seller,
address token,
ERC20 token,
bool state
);
/// @dev 0x2cd6435b1b961c13f55202979edd0765a809f69a539d8a477436c94c1211e43e
event DepositWithdrawn(
address indexed seller,
address token,
ERC20 token,
uint256 amount
);
/// @dev 0x8fb3989f70bd172a37d15b41b015e48ea09d59329638377304a4198cd0c4ea65

View File

@ -31,7 +31,7 @@ abstract contract OwnerSettings is
uint256 defaultBlocks,
address[] memory validSigners,
address _reputation,
address[] memory tokens,
ERC20[] memory tokens,
bool[] memory tokenStates
) {
setDefaultLockBlocks(defaultBlocks);
@ -133,7 +133,7 @@ abstract contract OwnerSettings is
}
function tokenSettings(
address[] memory _tokens,
ERC20[] memory _tokens,
bool[] memory _states
) public onlyOwner {
/* Yul Impl */

View File

@ -39,7 +39,7 @@ contract P2PIX is BaseUtils {
uint256 defaultBlocks,
address[] memory validSigners,
address _reputation,
address[] memory tokens,
ERC20[] memory tokens,
bool[] memory tokenStates
)
OwnerSettings(
@ -98,7 +98,7 @@ contract P2PIX is BaseUtils {
clearReentrancyGuard();
emit DepositAdded(msg.sender, address(args.token), args.amount);
emit DepositAdded(msg.sender, args.token, args.amount);
}
/// @notice Enables seller to invalidate future
@ -117,7 +117,7 @@ contract P2PIX is BaseUtils {
_setValidState(msg.sender, token, _sellerBalance);
emit ValidSet(msg.sender, address(token), state);
emit ValidSet(msg.sender, token, state);
} else revert NotInitialized();
}
@ -160,38 +160,34 @@ contract P2PIX is BaseUtils {
(sender, forwarder) = _isTrustedForwarder();
bytes32 _pixTarget = getPixTarget(args.seller, args.token);
// transaction forwarding must leave `merkleProof` empty;
// otherwise, the trustedForwarder must be previously added
// to a seller whitelist.
if (args.merkleProof.length != 0) {
_merkleVerify( args.merkleProof, sellerAllowList(args.seller), sender);
} else if (args.amount > REPUTATION_LOWERBOUND && forwarder == 0) {
uint256 spendLimit; uint256 userCredit =
userRecord[_castAddrToKey(msg.sender)];
(spendLimit) = _limiter(userCredit / WAD);
if (
args.amount > (spendLimit * WAD) ||
args.amount > LOCKAMOUNT_UPPERBOUND
) revert AmountNotAllowed();
}
DT.Lock memory l = DT.Lock(
c,
(block.number + defaultLockBlocks),
_pixTarget,
args.amount,
address(args.token),
args.token,
sender,
args.seller
);
if (args.merkleProof.length != 0) {
_merkleVerify(args.merkleProof, sellerAllowList(args.seller), sender);
lockID = _addLock(bal, l);
} else {
if (l.amount <= REPUTATION_LOWERBOUND) {
lockID = _addLock(bal, l);
} else {
if (forwarder != 0) {
lockID = _addLock(bal, l);
} else {
uint256 spendLimit; uint256 userCredit =
userRecord[_castAddrToKey(msg.sender)];
(spendLimit) = _limiter(userCredit / WAD);
if (
l.amount > (spendLimit * WAD) ||
l.amount > LOCKAMOUNT_UPPERBOUND
) revert AmountNotAllowed();
lockID = _addLock(bal, l);
/* */}/* */}/* */}
}
/// @notice Lock release method that liquidate lock
@ -272,12 +268,12 @@ contract P2PIX is BaseUtils {
_notExpired(l);
uint256 _sellerBalance =
__sellerBalance(l.seller, ERC20(l.token)) & BITMASK_SB_ENTRY;
__sellerBalance(l.seller, l.token) & BITMASK_SB_ENTRY;
if ((_sellerBalance + l.amount) > MAXBALANCE_UPPERBOUND)
revert MaxBalExceeded();
_addSellerBalance(l.seller, ERC20(l.token), l.amount);
_addSellerBalance(l.seller, l.token, l.amount);
l.amount = 0;
@ -338,7 +334,7 @@ contract P2PIX is BaseUtils {
emit DepositWithdrawn(
msg.sender,
address(token),
token,
amount
);
}

View File

@ -142,7 +142,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -167,7 +167,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -369,7 +369,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -622,7 +622,7 @@ const _abi = [
{
inputs: [
{
internalType: "address[]",
internalType: "contract ERC20[]",
name: "_tokens",
type: "address[]",
},

View File

@ -135,7 +135,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -160,7 +160,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -343,7 +343,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},

View File

@ -140,7 +140,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -165,7 +165,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -367,7 +367,7 @@ const _abi = [
},
{
indexed: false,
internalType: "address",
internalType: "contract ERC20",
name: "token",
type: "address",
},
@ -563,7 +563,7 @@ const _abi = [
{
inputs: [
{
internalType: "address[]",
internalType: "contract ERC20[]",
name: "_tokens",
type: "address[]",
},

File diff suppressed because one or more lines are too long