impermax-sdk 2.1.32 → 2.1.34

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.
@@ -3,3 +3,4 @@ export declare const NOT_SYNCED = false;
3
3
  export declare const DEADLINE: BigNumber;
4
4
  export declare const ZERO: BigNumber;
5
5
  export declare const APPROVE_AMOUNT: BigNumber;
6
+ export declare const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.APPROVE_AMOUNT = exports.ZERO = exports.DEADLINE = exports.NOT_SYNCED = void 0;
3
+ exports.PERMIT2_ADDRESS = exports.APPROVE_AMOUNT = exports.ZERO = exports.DEADLINE = exports.NOT_SYNCED = void 0;
4
4
  const ethers_1 = require("ethers");
5
5
  exports.NOT_SYNCED = false;
6
6
  exports.DEADLINE = ethers_1.BigNumber.from(Math.floor(Date.now() / 1000) + 3600 * 24 * 365); //1 year deadline
7
7
  exports.ZERO = ethers_1.ethers.constants.Zero;
8
8
  exports.APPROVE_AMOUNT = ethers_1.ethers.constants.MaxUint256;
9
+ exports.PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
@@ -20,9 +20,13 @@ export default abstract class OnchainInteractionsPoolToken {
20
20
  isWETH(): Promise<boolean>;
21
21
  getPoolTokenAllowance(): Promise<ethers.BigNumber>;
22
22
  getUnderlyingAllowance(): Promise<ethers.BigNumber>;
23
+ getPermit2Allowance(): Promise<ethers.BigNumber>;
23
24
  approvePoolToken(amount: BigNumber, onTransactionHash: Function): Promise<any>;
24
25
  permitPoolToken(amount: BigNumber): Promise<Permit>;
25
26
  approveUnderlying(amount: BigNumber, onTransactionHash: Function): Promise<any>;
27
+ approvePermit2(amount: BigNumber, onTransactionHash: Function): Promise<any>;
28
+ permitUnderlying(amount: BigNumber): Promise<Permit>;
29
+ permit2Underlying(amount: BigNumber): Promise<Permit>;
26
30
  protected getSendData(permits: Permits): Promise<{
27
31
  router: any;
28
32
  ptAddress: any;
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const ethers_1 = require("ethers");
13
13
  const weths_1 = require("../../config/contracts/weths");
14
+ const general_1 = require("../../config/general");
14
15
  const MAX_UINT256 = ethers_1.ethers.constants.MaxUint256;
15
16
  const EIP712DOMAIN = [
16
17
  { name: "name", type: "string" },
@@ -72,6 +73,16 @@ class OnchainInteractionsPoolToken {
72
73
  return ethers_1.BigNumber.from(allowance);
73
74
  });
74
75
  }
76
+ getPermit2Allowance() {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ if (yield this.isWETH())
79
+ return MAX_UINT256;
80
+ const token = yield this.poolToken.getToken();
81
+ const { owner } = this.getOwnerSpender();
82
+ const allowance = yield token.methods.allowance(owner, general_1.PERMIT2_ADDRESS).call();
83
+ return ethers_1.BigNumber.from(allowance);
84
+ });
85
+ }
75
86
  approvePoolToken(amount, onTransactionHash) {
76
87
  return __awaiter(this, void 0, void 0, function* () {
77
88
  const { spender } = this.getOwnerSpender();
@@ -93,6 +104,28 @@ class OnchainInteractionsPoolToken {
93
104
  return this.send(token.methods.approve(spender, amount), onTransactionHash);
94
105
  });
95
106
  }
107
+ approvePermit2(amount, onTransactionHash) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ const token = yield this.poolToken.getToken();
110
+ return this.send(token.methods.approve(general_1.PERMIT2_ADDRESS, amount), onTransactionHash);
111
+ });
112
+ }
113
+ permitUnderlying(amount) {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ const { owner, spender } = this.getOwnerSpender();
116
+ const token = yield this.poolToken.getToken();
117
+ // experimental feature: check if the token supports permit by getting the DOMAIN_SEPARATOR
118
+ yield token.methods.DOMAIN_SEPARATOR();
119
+ return this.getPermitHelper().getTokenPermit(token, owner, spender, amount);
120
+ });
121
+ }
122
+ permit2Underlying(amount) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const { owner, spender } = this.getOwnerSpender();
125
+ const token = yield this.poolToken.getToken();
126
+ return this.getPermitHelper().getPermit2Single(token, owner, spender, amount);
127
+ });
128
+ }
96
129
  getSendData(permits) {
97
130
  return __awaiter(this, void 0, void 0, function* () {
98
131
  return {
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const onchainTypes_1 = require("./onchainTypes");
13
13
  const ethers_1 = require("ethers");
14
14
  const general_1 = require("../config/general");
15
- const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
16
15
  const EIP712_DOMAIN = [
17
16
  { name: "name", type: "string" },
18
17
  { name: "version", type: "string" },
@@ -83,7 +82,7 @@ class OnchainPermitHelper {
83
82
  verifyingContract: this.permit2._address,
84
83
  });
85
84
  this.onchain = onchain;
86
- this.permit2 = onchain.getContractHelper().newPermit2(PERMIT2_ADDRESS);
85
+ this.permit2 = onchain.getContractHelper().newPermit2(general_1.PERMIT2_ADDRESS);
87
86
  }
88
87
  encodePermits(permits) {
89
88
  if (permits.length == 0 || !permits[0].signature)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impermax-sdk",
3
- "version": "2.1.32",
3
+ "version": "2.1.34",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib/index.js",