@1inch/solidity-utils 2.2.22 → 2.2.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -17,6 +17,7 @@ library SafeERC20 {
|
|
|
17
17
|
error SafeIncreaseAllowanceFailed();
|
|
18
18
|
error SafeDecreaseAllowanceFailed();
|
|
19
19
|
error SafePermitBadLength();
|
|
20
|
+
error Permit2TransferAmountTooHigh();
|
|
20
21
|
|
|
21
22
|
address private constant _PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3;
|
|
22
23
|
bytes4 private constant _PERMIT_LENGHT_ERROR = 0x68275857; // SafePermitBadLength.selector
|
|
@@ -30,6 +31,7 @@ library SafeERC20 {
|
|
|
30
31
|
bool permit2
|
|
31
32
|
) internal {
|
|
32
33
|
if (permit2) {
|
|
34
|
+
if (amount > type(uint160).max) revert Permit2TransferAmountTooHigh();
|
|
33
35
|
safeTransferFromPermit2(token, from, to, uint160(amount));
|
|
34
36
|
} else {
|
|
35
37
|
safeTransferFrom(token, from, to, amount);
|
|
@@ -202,13 +204,13 @@ library SafeERC20 {
|
|
|
202
204
|
mstore(ptr, permitSelector)
|
|
203
205
|
calldatacopy(add(ptr, 0x04), permit.offset, permit.length)
|
|
204
206
|
// IERC20Permit.permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
|
|
205
|
-
success := call(gas(), token, 0, ptr,
|
|
207
|
+
success := call(gas(), token, 0, ptr, 0xe4, 0, 0)
|
|
206
208
|
}
|
|
207
209
|
case 256 {
|
|
208
210
|
mstore(ptr, daiPermitSelector)
|
|
209
211
|
calldatacopy(add(ptr, 0x04), permit.offset, permit.length)
|
|
210
212
|
// IDaiLikePermit.permit(address holder, address spender, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s)
|
|
211
|
-
success := call(gas(), token, 0, ptr,
|
|
213
|
+
success := call(gas(), token, 0, ptr, 0x104, 0, 0)
|
|
212
214
|
}
|
|
213
215
|
case 96 {
|
|
214
216
|
// Compact IPermit2.permit(uint160 amount, uint32 expiration, uint32 nonce, uint32 sigDeadline, uint256 r, uint256 vs)
|
|
@@ -225,13 +227,13 @@ library SafeERC20 {
|
|
|
225
227
|
calldatacopy(add(ptr, 0x124), add(permit.offset, 0x20), 0x20) // r
|
|
226
228
|
calldatacopy(add(ptr, 0x144), add(permit.offset, 0x40), 0x20) // vs
|
|
227
229
|
// IPermit2.permit(address owner, PermitSingle calldata permitSingle, bytes calldata signature)
|
|
228
|
-
success := call(gas(), _PERMIT2, 0, ptr,
|
|
230
|
+
success := call(gas(), _PERMIT2, 0, ptr, 0x164, 0, 0)
|
|
229
231
|
}
|
|
230
232
|
case 352 {
|
|
231
233
|
mstore(ptr, permit2Selector)
|
|
232
234
|
calldatacopy(add(ptr, 0x04), permit.offset, permit.length)
|
|
233
235
|
// IPermit2.permit(address owner, PermitSingle calldata permitSingle, bytes calldata signature)
|
|
234
|
-
success := call(gas(), _PERMIT2, 0, ptr,
|
|
236
|
+
success := call(gas(), _PERMIT2, 0, ptr, 0x164, 0, 0)
|
|
235
237
|
}
|
|
236
238
|
default {
|
|
237
239
|
mstore(ptr, _PERMIT_LENGHT_ERROR)
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { constants } from './prelude';
|
|
2
|
-
import { providers, Wallet, Contract, Bytes, ContractTransaction } from 'ethers';
|
|
2
|
+
import { providers, Wallet, Contract, Bytes, ContractTransaction, BigNumberish } from 'ethers';
|
|
3
3
|
export declare function timeIncreaseTo(seconds: number | string): Promise<void>;
|
|
4
|
+
export declare function deployContract(name: string, parameters?: Array<BigNumberish>): Promise<Contract>;
|
|
4
5
|
export declare function trackReceivedTokenAndTx<T extends unknown[]>(provider: providers.JsonRpcProvider, token: Contract | {
|
|
5
6
|
address: typeof constants.ZERO_ADDRESS;
|
|
6
7
|
} | {
|
package/dist/src/utils.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.countInstructions = exports.signMessage = exports.fixSignature = exports.trackReceivedTokenAndTx = exports.timeIncreaseTo = void 0;
|
|
3
|
+
exports.countInstructions = exports.signMessage = exports.fixSignature = exports.trackReceivedTokenAndTx = exports.deployContract = exports.timeIncreaseTo = void 0;
|
|
4
4
|
const prelude_1 = require("./prelude");
|
|
5
|
+
const hardhat_1 = require("hardhat");
|
|
5
6
|
const hardhat_network_helpers_1 = require("@nomicfoundation/hardhat-network-helpers");
|
|
6
7
|
async function timeIncreaseTo(seconds) {
|
|
7
8
|
const delay = 1000 - new Date().getMilliseconds();
|
|
@@ -9,6 +10,13 @@ async function timeIncreaseTo(seconds) {
|
|
|
9
10
|
await hardhat_network_helpers_1.time.increaseTo(seconds);
|
|
10
11
|
}
|
|
11
12
|
exports.timeIncreaseTo = timeIncreaseTo;
|
|
13
|
+
async function deployContract(name, parameters = []) {
|
|
14
|
+
const ContractFactory = await hardhat_1.ethers.getContractFactory(name);
|
|
15
|
+
const instance = await ContractFactory.deploy(...parameters);
|
|
16
|
+
await instance.deployed();
|
|
17
|
+
return instance;
|
|
18
|
+
}
|
|
19
|
+
exports.deployContract = deployContract;
|
|
12
20
|
async function trackReceivedTokenAndTx(provider, token, wallet, txPromise, ...args) {
|
|
13
21
|
const isETH = token.address === prelude_1.constants.ZERO_ADDRESS || token.address === prelude_1.constants.EEE_ADDRESS;
|
|
14
22
|
const getBalance = 'balanceOf' in token ? token.balanceOf : provider.getBalance;
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|