@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, add(4, permit.length), 0, 0)
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, add(4, permit.length), 0, 0)
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, 356, 0, 0)
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, 356, 0, 0)
236
+ success := call(gas(), _PERMIT2, 0, ptr, 0x164, 0, 0)
235
237
  }
236
238
  default {
237
239
  mstore(ptr, _PERMIT_LENGHT_ERROR)
@@ -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;
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1inch/solidity-utils",
3
- "version": "2.2.22",
3
+ "version": "2.2.24",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "repository": {