Compare commits
3 Commits
main
...
3b6dd8ba9b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b6dd8ba9b | ||
|
|
e412897f11 | ||
|
|
a0e39bafab |
@@ -1,6 +1,8 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity 0.8.9;
|
||||
|
||||
import { ERC20 } from "./lib/tokens/ERC20.sol";
|
||||
|
||||
library DataTypes {
|
||||
struct Lock {
|
||||
uint256 sellerKey;
|
||||
@@ -19,7 +21,7 @@ library DataTypes {
|
||||
/// @dev Relayer address (msg.sender) that facilitated this transaction.
|
||||
/// @dev Reputation points accruer.
|
||||
address relayerAddress;
|
||||
address token;
|
||||
ERC20 token;
|
||||
}
|
||||
|
||||
// prettier-ignore
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity 0.8.9;
|
||||
|
||||
import { ERC20 } from "./lib/tokens/ERC20.sol";
|
||||
|
||||
// prettier-ignore
|
||||
interface EventAndErrors {
|
||||
/// ███ Events ████████████████████████████████████████████████████████████
|
||||
@@ -8,17 +10,17 @@ interface EventAndErrors {
|
||||
event DepositAdded(
|
||||
address indexed seller,
|
||||
// uint256 depositID,
|
||||
address token,
|
||||
ERC20 token,
|
||||
uint256 amount
|
||||
);
|
||||
event ValidSet(
|
||||
address indexed seller,
|
||||
address token,
|
||||
ERC20 token,
|
||||
bool state
|
||||
);
|
||||
event DepositWithdrawn(
|
||||
address indexed seller,
|
||||
address token,
|
||||
ERC20 token,
|
||||
uint256 amount
|
||||
);
|
||||
event LockAdded(
|
||||
|
||||
@@ -78,7 +78,7 @@ contract P2PIX is
|
||||
uint256 defaultBlocks,
|
||||
address[] memory validSigners,
|
||||
IReputation _reputation,
|
||||
address[] memory tokens,
|
||||
ERC20[] memory tokens,
|
||||
bool[] memory tokenStates
|
||||
) payable {
|
||||
setDefaultLockBlocks(defaultBlocks);
|
||||
@@ -97,7 +97,7 @@ contract P2PIX is
|
||||
/// as the deposit identifier.
|
||||
/// @dev Function sighash: 0xbfe07da6.
|
||||
function deposit(
|
||||
address _token,
|
||||
ERC20 _token,
|
||||
uint96 _amount,
|
||||
uint160 _pixTarget,
|
||||
bool _valid,
|
||||
@@ -166,7 +166,7 @@ contract P2PIX is
|
||||
|
||||
sellerBalance[key][token] = _sellerBalance;
|
||||
|
||||
emit ValidSet(msg.sender, address(token), state);
|
||||
emit ValidSet(msg.sender, token, state);
|
||||
} else revert NotInitialized();
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ contract P2PIX is
|
||||
/// @dev Function sighash: 0x03aaf306.
|
||||
function lock(
|
||||
address _seller,
|
||||
address _token,
|
||||
ERC20 _token,
|
||||
address _buyerAddress,
|
||||
address _relayerTarget,
|
||||
uint256 _relayerPremium,
|
||||
@@ -201,7 +201,7 @@ contract P2PIX is
|
||||
) public nonReentrant returns (uint256) {
|
||||
unlockExpired(expiredLocks);
|
||||
|
||||
ERC20 t = ERC20(_token);
|
||||
ERC20 t = _token;
|
||||
if (!getValid(_seller, t)) revert InvalidDeposit();
|
||||
|
||||
uint256 bal = getBalance(_seller, t);
|
||||
@@ -225,7 +225,7 @@ contract P2PIX is
|
||||
_buyerAddress,
|
||||
_relayerTarget,
|
||||
msg.sender,
|
||||
address(t)
|
||||
t
|
||||
);
|
||||
|
||||
if (merkleProof.length != 0) {
|
||||
@@ -234,42 +234,27 @@ contract P2PIX is
|
||||
sellerAllowList[k],
|
||||
msg.sender
|
||||
);
|
||||
} else if (l.amount > 1e2 ether) {
|
||||
|
||||
uint256 userCredit = userRecord[
|
||||
_castAddrToKey(msg.sender)
|
||||
];
|
||||
|
||||
_addLock(bal, _amount, cCounter, l, t, k);
|
||||
uint256 spendLimit;
|
||||
(spendLimit) = _limiter(userCredit / WAD);
|
||||
|
||||
lockCounter++;
|
||||
|
||||
// Halt execution and output `lockID`.
|
||||
return cCounter;
|
||||
} else {
|
||||
if (l.amount <= 1e2 ether) {
|
||||
_addLock(bal, _amount, cCounter, l, t, k);
|
||||
|
||||
lockCounter++;
|
||||
|
||||
// Halt execution and output `lockID`.
|
||||
return cCounter;
|
||||
} else {
|
||||
uint256 userCredit = userRecord[
|
||||
_castAddrToKey(msg.sender)
|
||||
];
|
||||
|
||||
uint256 spendLimit;
|
||||
(spendLimit) = _limiter(userCredit / WAD);
|
||||
|
||||
if (
|
||||
l.amount > (spendLimit * WAD) ||
|
||||
l.amount > 1e6 ether
|
||||
) revert AmountNotAllowed();
|
||||
|
||||
_addLock(bal, _amount, cCounter, l, t, k);
|
||||
|
||||
lockCounter++;
|
||||
|
||||
// Halt execution and output `lockID`.
|
||||
return cCounter;
|
||||
}
|
||||
if (
|
||||
l.amount > (spendLimit * WAD) ||
|
||||
l.amount > 1e6 ether
|
||||
) revert AmountNotAllowed();
|
||||
}
|
||||
|
||||
_addLock(bal, _amount, cCounter, l, t, k);
|
||||
|
||||
lockCounter++;
|
||||
|
||||
// Halt execution and output `lockID`.
|
||||
return cCounter;
|
||||
}
|
||||
|
||||
/// @notice Lock release method that liquidate lock
|
||||
@@ -394,12 +379,12 @@ contract P2PIX is
|
||||
|
||||
uint256 _sellerBalance = sellerBalance[
|
||||
l.sellerKey
|
||||
][ERC20(l.token)] & BITMASK_SB_ENTRY;
|
||||
][l.token] & BITMASK_SB_ENTRY;
|
||||
|
||||
if ((_sellerBalance + l.amount) > 1e8 ether)
|
||||
revert MaxBalExceeded();
|
||||
|
||||
sellerBalance[l.sellerKey][ERC20(l.token)] += l
|
||||
sellerBalance[l.sellerKey][l.token] += l
|
||||
.amount;
|
||||
|
||||
l.amount = 0;
|
||||
@@ -463,7 +448,7 @@ contract P2PIX is
|
||||
|
||||
emit DepositWithdrawn(
|
||||
msg.sender,
|
||||
address(token),
|
||||
token,
|
||||
amount
|
||||
);
|
||||
}
|
||||
@@ -528,7 +513,7 @@ contract P2PIX is
|
||||
}
|
||||
|
||||
function tokenSettings(
|
||||
address[] memory _tokens,
|
||||
ERC20[] memory _tokens,
|
||||
bool[] memory _states
|
||||
) public onlyOwner {
|
||||
/* Yul Impl */
|
||||
|
||||
38
scripts/setDefaultBlocks.ts
Normal file
38
scripts/setDefaultBlocks.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import "@nomiclabs/hardhat-ethers";
|
||||
import "@nomiclabs/hardhat-etherscan";
|
||||
import * as fs from "fs";
|
||||
import { ethers, network } from "hardhat";
|
||||
import { Deploys } from "../test/utils/fixtures";
|
||||
import { P2PIX__factory } from "../src/types";
|
||||
|
||||
let deploysJson: Deploys;
|
||||
|
||||
const main = async () => {
|
||||
try {
|
||||
const data = fs.readFileSync(
|
||||
`./deploys/${network.name}.json`,
|
||||
{ encoding: "utf-8" },
|
||||
);
|
||||
deploysJson = JSON.parse(data);
|
||||
} catch (err) {
|
||||
console.log("Error loading Master address: ", err);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const [deployer] = await ethers.getSigners();
|
||||
console.log(`Signing transactions with ${deployer.address}`);
|
||||
|
||||
const iface = new ethers.utils.Interface(P2PIX__factory.abi);
|
||||
const calldata = iface.encodeFunctionData("setDefaultLockBlocks", ["10000"]);
|
||||
|
||||
const tx = await deployer.sendTransaction({to:deploysJson.p2pix, data: calldata});
|
||||
const done = await tx.wait();
|
||||
console.log(done.transactionHash);
|
||||
};
|
||||
|
||||
main()
|
||||
.then(() => process.exit(0))
|
||||
.catch(error => {
|
||||
console.log(error);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user