Skip to content

Commit

Permalink
matic deploy, fix deployments
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielZlotin committed Jan 21, 2024
1 parent fe7cd6f commit 3dbe405
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 57 deletions.
4 changes: 2 additions & 2 deletions script/input/137/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"executor": "0x1a08D64Fb4a7D0b6DA5606A1e4619c147C3fB95e",
"feeRecipient": "0xbd098dB9AD3dbaF2bDAF581340B2662d9A3CA8D2",
"reactor": "0x21Da9737764527e75C17F1AB26Cb668b66dEE0a0",
"reactorPartial": "",
"repermit": "",
"reactorPartial": "0x0B94c1A3E11F8aaA25D27cAf8DD05818e6f2Ad97",
"repermit": "0x4d415B58EA43988FfF7f50A3475718b0858fE0f1",
"treasury": "0x7ae466596C57241459eBaE32D2E64F51Da68F3B8",
"weth": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"
}
18 changes: 9 additions & 9 deletions src/PartialOrderLib.sol
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,20 @@ library PartialOrderLib {
address recipient;
}

string public constant PARTIAL_INPUT_TYPE = "PartialInput(address token,uint256 amount)";
bytes32 public constant PARTIAL_INPUT_TYPE_HASH = keccak256(bytes(PARTIAL_INPUT_TYPE));
string internal constant PARTIAL_INPUT_TYPE = "PartialInput(address token,uint256 amount)";
bytes32 internal constant PARTIAL_INPUT_TYPE_HASH = keccak256(bytes(PARTIAL_INPUT_TYPE));

string public constant PARTIAL_OUTPUT_TYPE = "PartialOutput(address token,uint256 amount,address recipient)";
bytes32 public constant PARTIAL_OUTPUT_TYPE_HASH = keccak256(bytes(PARTIAL_OUTPUT_TYPE));
string internal constant PARTIAL_OUTPUT_TYPE = "PartialOutput(address token,uint256 amount,address recipient)";
bytes32 internal constant PARTIAL_OUTPUT_TYPE_HASH = keccak256(bytes(PARTIAL_OUTPUT_TYPE));

string public constant PARTIAL_ORDER_TYPE =
string internal constant PARTIAL_ORDER_TYPE =
"PartialOrder(OrderInfo info,address exclusiveFiller,uint256 exclusivityOverrideBps,PartialInput input,PartialOutput[] outputs)";

bytes32 public constant PARTIAL_ORDER_TYPE_HASH = keccak256(
bytes32 internal constant PARTIAL_ORDER_TYPE_HASH = keccak256(
abi.encodePacked(PARTIAL_ORDER_TYPE, OrderInfoLib.ORDER_INFO_TYPE, PARTIAL_INPUT_TYPE, PARTIAL_OUTPUT_TYPE)
);

string public constant WITNESS_TYPE = string(
string internal constant WITNESS_TYPE = string(
abi.encodePacked(
"PartialOrder witness)",
OrderInfoLib.ORDER_INFO_TYPE,
Expand All @@ -48,7 +48,7 @@ library PartialOrderLib {
)
);

function hash(PartialOrder memory order) public pure returns (bytes32) {
function hash(PartialOrder memory order) internal pure returns (bytes32) {
return keccak256(
abi.encode(
PARTIAL_ORDER_TYPE_HASH,
Expand All @@ -61,7 +61,7 @@ library PartialOrderLib {
);
}

function hash(PartialOutput[] memory outputs) public pure returns (bytes32) {
function hash(PartialOutput[] memory outputs) internal pure returns (bytes32) {
unchecked {
bytes memory packedHashes = new bytes(32 * outputs.length);
for (uint256 i = 0; i < outputs.length; i++) {
Expand Down
1 change: 0 additions & 1 deletion src/PartialOrderReactor.sol
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import {ExclusivityOverrideLib} from "uniswapx/src/lib/ExclusivityOverrideLib.so
import {Consts} from "./Consts.sol";
import {IMulticall, Call} from "./IMulticall.sol";
import {RePermit, RePermitLib} from "./RePermit.sol";

import {PartialOrderLib} from "./PartialOrderLib.sol";

contract PartialOrderReactor is BaseReactor {
Expand Down
46 changes: 1 addition & 45 deletions src/RePermit.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,51 +7,7 @@ import {SafeERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeE
import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";
import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";

library RePermitLib {
struct RePermitTransferFrom {
TokenPermissions permitted;
uint256 nonce;
uint256 deadline;
}

struct TokenPermissions {
address token;
uint256 amount;
}

struct TransferRequest {
address to;
uint256 amount;
}

string public constant REPERMIT_WITNESS_TRANSFER_FROM_TYPE =
"RePermitWitnessTransferFrom(TokenPermissions permitted,address spender,uint256 nonce,uint256 deadline,";
string public constant TOKEN_PERMISSIONS_TYPE = "TokenPermissions(address token,uint256 amount)";
bytes32 public constant TOKEN_PERMISSIONS_TYPE_HASH = keccak256(bytes(TOKEN_PERMISSIONS_TYPE));

function hashWithWitness(
RePermitTransferFrom memory permit,
bytes32 witness,
string memory witnessTypeString,
address spender
) internal pure returns (bytes32) {
bytes32 typehash = keccak256(abi.encodePacked(REPERMIT_WITNESS_TRANSFER_FROM_TYPE, witnessTypeString));
return keccak256(
abi.encode(
typehash,
keccak256(abi.encode(TOKEN_PERMISSIONS_TYPE_HASH, permit.permitted)),
spender,
permit.nonce,
permit.deadline,
witness
)
);
}
}

interface IEIP712 {
function DOMAIN_SEPARATOR() external view returns (bytes32);
}
import {RePermitLib, IEIP712} from "./RePermitLib.sol";

contract RePermit is EIP712, IEIP712 {
using SafeERC20 for IERC20;
Expand Down
54 changes: 54 additions & 0 deletions src/RePermitLib.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.x;

import {Address} from "@openzeppelin/contracts/utils/Address.sol";
import {SafeERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";

import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";
import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";

library RePermitLib {
struct RePermitTransferFrom {
TokenPermissions permitted;
uint256 nonce;
uint256 deadline;
}

struct TokenPermissions {
address token;
uint256 amount;
}

struct TransferRequest {
address to;
uint256 amount;
}

string internal constant REPERMIT_WITNESS_TRANSFER_FROM_TYPE =
"RePermitWitnessTransferFrom(TokenPermissions permitted,address spender,uint256 nonce,uint256 deadline,";
string internal constant TOKEN_PERMISSIONS_TYPE = "TokenPermissions(address token,uint256 amount)";
bytes32 internal constant TOKEN_PERMISSIONS_TYPE_HASH = keccak256(bytes(TOKEN_PERMISSIONS_TYPE));

function hashWithWitness(
RePermitTransferFrom memory permit,
bytes32 witness,
string memory witnessTypeString,
address spender
) internal pure returns (bytes32) {
bytes32 typehash = keccak256(abi.encodePacked(REPERMIT_WITNESS_TRANSFER_FROM_TYPE, witnessTypeString));
return keccak256(
abi.encode(
typehash,
keccak256(abi.encode(TOKEN_PERMISSIONS_TYPE_HASH, permit.permitted)),
spender,
permit.nonce,
permit.deadline,
witness
)
);
}
}

interface IEIP712 {
function DOMAIN_SEPARATOR() external view returns (bytes32);
}

0 comments on commit 3dbe405

Please sign in to comment.