@wildcatfi/wildcat-sdk 1.0.9 → 1.0.11
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.
- package/dist/account.d.ts +44 -21
- package/dist/account.d.ts.map +1 -1
- package/dist/account.js +108 -57
- package/dist/account.js.map +1 -1
- package/dist/misc.d.ts +3 -0
- package/dist/misc.d.ts.map +1 -1
- package/dist/misc.js +12 -1
- package/dist/misc.js.map +1 -1
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +18 -8
- package/dist/token.js.map +1 -1
- package/package.json +1 -1
package/dist/account.d.ts
CHANGED
|
@@ -13,6 +13,16 @@ export type DepositStatus = {
|
|
|
13
13
|
} | {
|
|
14
14
|
status: "Ready";
|
|
15
15
|
};
|
|
16
|
+
export type RepayStatus = {
|
|
17
|
+
status: "InsufficientBalance";
|
|
18
|
+
} | {
|
|
19
|
+
status: "ExceedsOutstandingDebt";
|
|
20
|
+
} | {
|
|
21
|
+
status: "InsufficientAllowance";
|
|
22
|
+
remainder: TokenAmount;
|
|
23
|
+
} | {
|
|
24
|
+
status: "Ready";
|
|
25
|
+
};
|
|
16
26
|
/**
|
|
17
27
|
* Class to provide information about a vault user's account
|
|
18
28
|
* and to wrap interactions.
|
|
@@ -31,50 +41,63 @@ export declare class VaultAccount {
|
|
|
31
41
|
static readonly UpdatableKeys: Array<keyof VaultAccount>;
|
|
32
42
|
get userHasBalance(): boolean;
|
|
33
43
|
get userHasUnderlyingBalance(): boolean;
|
|
34
|
-
isBorrower(): boolean;
|
|
44
|
+
get isBorrower(): boolean;
|
|
35
45
|
setAPR(newAprBips: number): Promise<ContractTransaction>;
|
|
36
|
-
|
|
37
|
-
deposit(amount: TokenAmount): Promise<ContractTransaction>;
|
|
38
|
-
withdraw(amount: TokenAmount): Promise<ContractTransaction>;
|
|
39
|
-
repay(amount: BigNumber): Promise<ContractTransaction>;
|
|
40
|
-
repayOutstandingDebt(): Promise<ContractTransaction>;
|
|
41
|
-
repayDelinquentDebt(): Promise<ContractTransaction>;
|
|
46
|
+
isApprovedFor(amount: TokenAmount): boolean;
|
|
42
47
|
/**
|
|
43
|
-
* @returns
|
|
48
|
+
* @returns Remaining amount of underlying token user must approve
|
|
49
|
+
* vault to spend to make a deposit.
|
|
44
50
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
applyUpdate(info: AccountVaultInfoStructOutput): void;
|
|
51
|
+
getAllowanceRemainder(amount: TokenAmount): TokenAmount;
|
|
52
|
+
approveAllowanceRemainder(amount: TokenAmount): Promise<ContractTransaction>;
|
|
48
53
|
/**
|
|
49
54
|
* @returns Maximum amount of underlying token user can deposit
|
|
50
55
|
* given their underlying balance and the vault's max supply
|
|
51
56
|
*/
|
|
52
57
|
get maximumDeposit(): TokenAmount;
|
|
53
|
-
/**
|
|
54
|
-
* @returns Amount of underlying token user can withdraw
|
|
55
|
-
* given their vault balance and the vault's assets.
|
|
56
|
-
*/
|
|
57
|
-
get maximumWithdrawal(): TokenAmount;
|
|
58
58
|
/**
|
|
59
59
|
* @returns Amount of underlying token user can actually deposit
|
|
60
60
|
* given a target amount.
|
|
61
61
|
*/
|
|
62
62
|
getDepositAmount(amount: TokenAmount): TokenAmount;
|
|
63
|
+
/**
|
|
64
|
+
* @returns Status for deposit
|
|
65
|
+
*/
|
|
66
|
+
checkDepositStep(amount: TokenAmount): DepositStatus;
|
|
67
|
+
deposit(amount: TokenAmount): Promise<ContractTransaction>;
|
|
68
|
+
/**
|
|
69
|
+
* @returns Amount of underlying token user can withdraw
|
|
70
|
+
* given their vault balance and the vault's assets.
|
|
71
|
+
*/
|
|
72
|
+
get maximumWithdrawal(): TokenAmount;
|
|
63
73
|
/**
|
|
64
74
|
* @returns Amount of underlying token user can actually withdraw
|
|
65
75
|
* given a target amount.
|
|
66
76
|
*/
|
|
67
77
|
getWithdrawalAmount(amount: TokenAmount): TokenAmount;
|
|
68
|
-
|
|
78
|
+
withdraw(amount: TokenAmount): Promise<ContractTransaction>;
|
|
79
|
+
get maximumRepay(): TokenAmount;
|
|
80
|
+
get canRepayDelinquent(): boolean;
|
|
81
|
+
get canRepayOutstanding(): boolean;
|
|
69
82
|
/**
|
|
70
|
-
* @returns
|
|
71
|
-
*
|
|
83
|
+
* @returns Amount of underlying token user can actually repay
|
|
84
|
+
* given a target amount.
|
|
72
85
|
*/
|
|
73
|
-
|
|
86
|
+
getRepayAmount(amount: TokenAmount): TokenAmount;
|
|
74
87
|
/**
|
|
75
88
|
* @returns Status for deposit
|
|
76
89
|
*/
|
|
77
|
-
|
|
90
|
+
checkRepayStep(amount: TokenAmount): RepayStatus;
|
|
91
|
+
repay(amount: BigNumber): Promise<ContractTransaction>;
|
|
92
|
+
repayOutstandingDebt(): Promise<ContractTransaction>;
|
|
93
|
+
repayDelinquentDebt(): Promise<ContractTransaction>;
|
|
94
|
+
/**
|
|
95
|
+
* @returns Amount of underlying token borrower can borrow
|
|
96
|
+
*/
|
|
97
|
+
getBorrowableAmount(amount: TokenAmount): TokenAmount;
|
|
98
|
+
borrow(amount: TokenAmount): Promise<ContractTransaction>;
|
|
99
|
+
update(): Promise<void>;
|
|
100
|
+
applyUpdate(info: AccountVaultInfoStructOutput): void;
|
|
78
101
|
static fromAccountVaultInfoStruct(account: string, info: AccountVaultInfoStructOutput, vault: Vault): VaultAccount;
|
|
79
102
|
static fromVaultDataWithAccountStruct(provider: SignerOrProvider, account: string, info: VaultDataWithAccountStructOutput): VaultAccount;
|
|
80
103
|
/**
|
package/dist/account.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAG7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,aAAa,GACrB;IACE,MAAM,EAAE,qBAAqB,CAAC;CAC/B,GACD;IACE,MAAM,EAAE,uBAAuB,CAAC;CACjC,GACD;IACE,MAAM,EAAE,uBAAuB,CAAC;IAChC,SAAS,EAAE,WAAW,CAAC;CACxB,GACD;IACE,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAMN;;;;;;;GAOG;AACH,qBAAa,YAAY;IAEd,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,WAAW;IACzB,iBAAiB,EAAE,WAAW;IAC9B,kBAAkB,EAAE,SAAS;IAC7B,KAAK,EAAE,KAAK;gBAJZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,WAAW,EACzB,iBAAiB,EAAE,WAAW,EAC9B,kBAAkB,EAAE,SAAS,EAC7B,KAAK,EAAE,KAAK;IAGrB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,YAAY,CAAC,CAItD;IAEF,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,wBAAwB,IAAI,OAAO,CAEtC;IAED,UAAU,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
|
package/dist/account.js
CHANGED
|
@@ -30,7 +30,7 @@ class VaultAccount {
|
|
|
30
30
|
get userHasUnderlyingBalance() {
|
|
31
31
|
return this.underlyingBalance.gt(0);
|
|
32
32
|
}
|
|
33
|
-
isBorrower() {
|
|
33
|
+
get isBorrower() {
|
|
34
34
|
return this.vault.borrower.toLowerCase() === this.account.toLowerCase();
|
|
35
35
|
}
|
|
36
36
|
async setAPR(newAprBips) {
|
|
@@ -49,6 +49,17 @@ class VaultAccount {
|
|
|
49
49
|
}
|
|
50
50
|
return controller.setAnnualInterestBips(this.vault.address, newAprBips);
|
|
51
51
|
}
|
|
52
|
+
/* ------ Approval ------ */
|
|
53
|
+
isApprovedFor(amount) {
|
|
54
|
+
return this.underlyingApproval.gte(amount.raw);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @returns Remaining amount of underlying token user must approve
|
|
58
|
+
* vault to spend to make a deposit.
|
|
59
|
+
*/
|
|
60
|
+
getAllowanceRemainder(amount) {
|
|
61
|
+
return amount.satsub(this.underlyingApproval);
|
|
62
|
+
}
|
|
52
63
|
async approveAllowanceRemainder(amount) {
|
|
53
64
|
const token = this.vault.underlyingToken;
|
|
54
65
|
const signer = await token.signer.getAddress();
|
|
@@ -58,6 +69,39 @@ class VaultAccount {
|
|
|
58
69
|
amount = this.getAllowanceRemainder(amount);
|
|
59
70
|
return token.contract.approve(this.vault.address, amount.raw);
|
|
60
71
|
}
|
|
72
|
+
/* ------ Deposits ------ */
|
|
73
|
+
/**
|
|
74
|
+
* @returns Maximum amount of underlying token user can deposit
|
|
75
|
+
* given their underlying balance and the vault's max supply
|
|
76
|
+
*/
|
|
77
|
+
get maximumDeposit() {
|
|
78
|
+
return (0, token_1.minTokenAmount)(this.vault.maximumDeposit, this.underlyingBalance);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @returns Amount of underlying token user can actually deposit
|
|
82
|
+
* given a target amount.
|
|
83
|
+
*/
|
|
84
|
+
getDepositAmount(amount) {
|
|
85
|
+
return (0, token_1.minTokenAmount)(amount, this.maximumDeposit);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @returns Status for deposit
|
|
89
|
+
*/
|
|
90
|
+
checkDepositStep(amount) {
|
|
91
|
+
if (amount.gt(this.vault.maximumDeposit)) {
|
|
92
|
+
return { status: "ExceedsMaximumDeposit" };
|
|
93
|
+
}
|
|
94
|
+
if (amount.gt(this.underlyingBalance)) {
|
|
95
|
+
return { status: "InsufficientBalance" };
|
|
96
|
+
}
|
|
97
|
+
if (!this.isApprovedFor(amount)) {
|
|
98
|
+
return {
|
|
99
|
+
status: "InsufficientAllowance",
|
|
100
|
+
remainder: this.getAllowanceRemainder(amount)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return { status: "Ready" };
|
|
104
|
+
}
|
|
61
105
|
// TODO: Add support for depositUpTo
|
|
62
106
|
async deposit(amount) {
|
|
63
107
|
const signer = await this.vault.signer.getAddress();
|
|
@@ -69,6 +113,21 @@ class VaultAccount {
|
|
|
69
113
|
}
|
|
70
114
|
return this.vault.contract.deposit(amount.raw, this.account);
|
|
71
115
|
}
|
|
116
|
+
/* ------ Withdrawals ------ */
|
|
117
|
+
/**
|
|
118
|
+
* @returns Amount of underlying token user can withdraw
|
|
119
|
+
* given their vault balance and the vault's assets.
|
|
120
|
+
*/
|
|
121
|
+
get maximumWithdrawal() {
|
|
122
|
+
return (0, token_1.minTokenAmount)(this.vault.totalAssets, this.vaultBalance);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @returns Amount of underlying token user can actually withdraw
|
|
126
|
+
* given a target amount.
|
|
127
|
+
*/
|
|
128
|
+
getWithdrawalAmount(amount) {
|
|
129
|
+
return (0, token_1.minTokenAmount)(amount, this.maximumWithdrawal);
|
|
130
|
+
}
|
|
72
131
|
async withdraw(amount) {
|
|
73
132
|
const signer = await this.vault.signer.getAddress();
|
|
74
133
|
if (signer !== this.account) {
|
|
@@ -76,6 +135,38 @@ class VaultAccount {
|
|
|
76
135
|
}
|
|
77
136
|
return this.vault.contract.withdraw(amount.raw, this.account);
|
|
78
137
|
}
|
|
138
|
+
/* ------ Repaying ------ */
|
|
139
|
+
get maximumRepay() {
|
|
140
|
+
return (0, token_1.minTokenAmount)(this.vault.outstandingDebt, this.underlyingBalance);
|
|
141
|
+
}
|
|
142
|
+
get canRepayDelinquent() {
|
|
143
|
+
return this.vault.delinquentDebt.lt(this.maximumRepay) && this.isBorrower;
|
|
144
|
+
}
|
|
145
|
+
get canRepayOutstanding() {
|
|
146
|
+
return this.vault.outstandingDebt.lt(this.maximumRepay) && this.isBorrower;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @returns Amount of underlying token user can actually repay
|
|
150
|
+
* given a target amount.
|
|
151
|
+
*/
|
|
152
|
+
getRepayAmount(amount) {
|
|
153
|
+
return (0, token_1.minTokenAmount)(amount, this.maximumRepay);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* @returns Status for deposit
|
|
157
|
+
*/
|
|
158
|
+
checkRepayStep(amount) {
|
|
159
|
+
if (amount.gt(this.underlyingBalance)) {
|
|
160
|
+
return { status: "InsufficientBalance" };
|
|
161
|
+
}
|
|
162
|
+
if (!this.isApprovedFor(amount)) {
|
|
163
|
+
return {
|
|
164
|
+
status: "InsufficientAllowance",
|
|
165
|
+
remainder: this.getAllowanceRemainder(amount)
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return { status: "Ready" };
|
|
169
|
+
}
|
|
79
170
|
async repay(amount) {
|
|
80
171
|
const signer = await this.vault.signer.getAddress();
|
|
81
172
|
if (signer !== this.account) {
|
|
@@ -106,12 +197,27 @@ class VaultAccount {
|
|
|
106
197
|
}
|
|
107
198
|
return this.vault.contract.repayDelinquentDebt();
|
|
108
199
|
}
|
|
200
|
+
/* ------ Borrowing ------ */
|
|
109
201
|
/**
|
|
110
202
|
* @returns Amount of underlying token borrower can borrow
|
|
111
203
|
*/
|
|
112
204
|
getBorrowableAmount(amount) {
|
|
113
205
|
return (0, token_1.minTokenAmount)(amount, this.vault.borrowableAssets);
|
|
114
206
|
}
|
|
207
|
+
async borrow(amount) {
|
|
208
|
+
const signer = await this.vault.signer.getAddress();
|
|
209
|
+
if (signer !== this.account) {
|
|
210
|
+
throw Error(`VaultAccount signer ${signer} does not match ${this.account}`);
|
|
211
|
+
}
|
|
212
|
+
if (!this.isBorrower) {
|
|
213
|
+
throw Error("Only borrower can borrow");
|
|
214
|
+
}
|
|
215
|
+
if (amount.gt(this.vault.borrowableAssets)) {
|
|
216
|
+
throw Error("Insufficient borrowable assets");
|
|
217
|
+
}
|
|
218
|
+
return this.vault.contract.borrow(amount.raw);
|
|
219
|
+
}
|
|
220
|
+
/* ------ Updates ------ */
|
|
115
221
|
async update() {
|
|
116
222
|
const acccountVaultInfo = await this.vault.getAccountInfo();
|
|
117
223
|
(0, misc_1.updateObject)(this, acccountVaultInfo, VaultAccount.UpdatableKeys);
|
|
@@ -120,62 +226,7 @@ class VaultAccount {
|
|
|
120
226
|
const account = VaultAccount.fromAccountVaultInfoStruct(this.account, info, this.vault);
|
|
121
227
|
(0, misc_1.updateObject)(this, account, VaultAccount.UpdatableKeys);
|
|
122
228
|
}
|
|
123
|
-
|
|
124
|
-
* @returns Maximum amount of underlying token user can deposit
|
|
125
|
-
* given their underlying balance and the vault's max supply
|
|
126
|
-
*/
|
|
127
|
-
get maximumDeposit() {
|
|
128
|
-
return (0, token_1.minTokenAmount)(this.vault.maximumDeposit, this.underlyingBalance);
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* @returns Amount of underlying token user can withdraw
|
|
132
|
-
* given their vault balance and the vault's assets.
|
|
133
|
-
*/
|
|
134
|
-
get maximumWithdrawal() {
|
|
135
|
-
return (0, token_1.minTokenAmount)(this.vault.totalAssets, this.vaultBalance);
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* @returns Amount of underlying token user can actually deposit
|
|
139
|
-
* given a target amount.
|
|
140
|
-
*/
|
|
141
|
-
getDepositAmount(amount) {
|
|
142
|
-
return (0, token_1.minTokenAmount)(amount, this.maximumDeposit);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* @returns Amount of underlying token user can actually withdraw
|
|
146
|
-
* given a target amount.
|
|
147
|
-
*/
|
|
148
|
-
getWithdrawalAmount(amount) {
|
|
149
|
-
return (0, token_1.minTokenAmount)(amount, this.maximumWithdrawal);
|
|
150
|
-
}
|
|
151
|
-
isApprovedFor(amount) {
|
|
152
|
-
return this.underlyingApproval.gte(amount.raw);
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* @returns Remaining amount of underlying token user must approve
|
|
156
|
-
* vault to spend to make a deposit.
|
|
157
|
-
*/
|
|
158
|
-
getAllowanceRemainder(amount) {
|
|
159
|
-
return amount.satsub(this.underlyingApproval);
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* @returns Status for deposit
|
|
163
|
-
*/
|
|
164
|
-
checkDepositStep(amount) {
|
|
165
|
-
if (amount.gt(this.vault.maximumDeposit)) {
|
|
166
|
-
return { status: "ExceedsMaximumDeposit" };
|
|
167
|
-
}
|
|
168
|
-
if (amount.gt(this.underlyingBalance)) {
|
|
169
|
-
return { status: "InsufficientBalance" };
|
|
170
|
-
}
|
|
171
|
-
if (!this.isApprovedFor(amount)) {
|
|
172
|
-
return {
|
|
173
|
-
status: "InsufficientAllowance",
|
|
174
|
-
remainder: this.getAllowanceRemainder(amount)
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
return { status: "Ready" };
|
|
178
|
-
}
|
|
229
|
+
/* ------ Builders / Getters ------ */
|
|
179
230
|
static fromAccountVaultInfoStruct(account, info, vault) {
|
|
180
231
|
return new VaultAccount(account, vault.vaultToken.getAmount(info.normalizedBalance), vault.underlyingToken.getAmount(info.underlyingBalance), info.underlyingApproval, vault);
|
|
181
232
|
}
|
package/dist/account.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":";;;AACA,mCAAsD;AACtD,mCAAgC;AAEhC,iCAAsC;AACtC,2CAAqE;
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
|
package/dist/misc.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BigNumber } from "ethers";
|
|
1
2
|
export type OnlyValueFields<C> = {
|
|
2
3
|
[K in ValueFields<C, keyof C>]: C[K];
|
|
3
4
|
};
|
|
@@ -5,4 +6,6 @@ export type ValueFields<C, K extends keyof C> = K extends string ? K extends key
|
|
|
5
6
|
export declare function updateValue<O, K extends keyof O>(obj: O, otherObj: O, key: K): void;
|
|
6
7
|
export declare function updateObject<O>(obj: O, otherObj: O, keys: Array<keyof O>): void;
|
|
7
8
|
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
9
|
+
export declare const stripTrailingZeroes: (str: string) => string;
|
|
10
|
+
export declare const formatBnFixed: (bn: BigNumber, decimals?: number, precision?: number) => string;
|
|
8
11
|
//# sourceMappingURL=misc.d.ts.map
|
package/dist/misc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5D,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,KAAK,GACL,CAAC,GACH,KAAK,GACP,KAAK,CAAC;AAIV,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAEnF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAI/E;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5D,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,KAAK,GACL,CAAC,GACH,KAAK,GACP,KAAK,CAAC;AAIV,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAEnF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAI/E;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAElF,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,MAAiD,CAAC;AAEpG,eAAO,MAAM,aAAa,OAAQ,SAAS,4CAAwC,MAMlF,CAAC"}
|
package/dist/misc.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateObject = exports.updateValue = void 0;
|
|
3
|
+
exports.formatBnFixed = exports.stripTrailingZeroes = exports.updateObject = exports.updateValue = void 0;
|
|
4
|
+
const utils_1 = require("ethers/lib/utils");
|
|
4
5
|
// type Keys<C> = keyof OnlyValueFields<C> & string;
|
|
5
6
|
function updateValue(obj, otherObj, key) {
|
|
6
7
|
obj[key] = otherObj[key];
|
|
@@ -12,4 +13,14 @@ function updateObject(obj, otherObj, keys) {
|
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
exports.updateObject = updateObject;
|
|
16
|
+
const stripTrailingZeroes = (str) => str.replace(/((?<=\.\d+)|(\.))0+$/, "");
|
|
17
|
+
exports.stripTrailingZeroes = stripTrailingZeroes;
|
|
18
|
+
const formatBnFixed = (bn, decimals = 18, precision = decimals) => {
|
|
19
|
+
let str = (0, utils_1.formatUnits)(bn, decimals);
|
|
20
|
+
if (str.includes(".") && precision !== decimals) {
|
|
21
|
+
str = str.slice(0, str.indexOf(".") + precision + 1);
|
|
22
|
+
}
|
|
23
|
+
return (0, exports.stripTrailingZeroes)(str);
|
|
24
|
+
};
|
|
25
|
+
exports.formatBnFixed = formatBnFixed;
|
|
15
26
|
//# sourceMappingURL=misc.js.map
|
package/dist/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":";;;AACA,4CAA+C;AAc/C,oDAAoD;AAEpD,SAAgB,WAAW,CAAuB,GAAM,EAAE,QAAW,EAAE,GAAM;IAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAFD,kCAEC;AAED,SAAgB,YAAY,CAAI,GAAM,EAAE,QAAW,EAAE,IAAoB;IACvE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;KACjC;AACH,CAAC;AAJD,oCAIC;AAIM,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;AAAvF,QAAA,mBAAmB,uBAAoE;AAE7F,MAAM,aAAa,GAAG,CAAC,EAAa,EAAE,QAAQ,GAAG,EAAE,EAAE,SAAS,GAAG,QAAQ,EAAU,EAAE;IAC1F,IAAI,GAAG,GAAG,IAAA,mBAAW,EAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC/C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;KACtD;IACD,OAAO,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
package/dist/token.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEtE,OAAO,EAAsB,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEtE,OAAO,EAAsB,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGtD,KAAK,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;AAQ5C,eAAO,MAAM,cAAc,eAAgB,WAAW,EAAE,KAAG,WAM1D,CAAC;AAEF,eAAO,MAAM,cAAc,eAAgB,WAAW,EAAE,KAAG,WAM1D,CAAC;AAEF,qBAAa,WAAW;IACH,GAAG,EAAE,SAAS;IAAS,KAAK,EAAE,KAAK;gBAAnC,GAAG,EAAE,SAAS,EAAS,KAAK,EAAE,KAAK;IAEtD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,OAAO,CAAC,MAAM,SAAgB,GAAG,MAAM;IAIvC,MAAM,CAAC,MAAM,SAAgB,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM;IAI5D,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK9B,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK9B,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK/B,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK/B,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK9B,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW;IAKnC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW;IAKnC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW;CASvC;AAED,qBAAa,KAAM,SAAQ,eAAe,CAAC,MAAM,CAAC;IAIvC,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,OAAO;IAPxB,QAAQ,CAAC,eAAe,yBAAmB;gBAGlC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACtB,QAAQ,EAAE,gBAAgB;IAKtB,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAO5C,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW;IAIzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW;IAKjD,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,gBAAgB,GACzB,KAAK;WAWK,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;WAMvE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAM3F"}
|
package/dist/token.js
CHANGED
|
@@ -7,17 +7,31 @@ const typechain_1 = require("./typechain");
|
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const constants_1 = require("./constants");
|
|
9
9
|
const typechain_2 = require("./typechain");
|
|
10
|
+
const misc_1 = require("./misc");
|
|
10
11
|
const toBn = (amount) => {
|
|
11
12
|
if (amount instanceof TokenAmount) {
|
|
12
13
|
return amount.raw;
|
|
13
14
|
}
|
|
14
15
|
return ethers_1.BigNumber.from(amount);
|
|
15
16
|
};
|
|
16
|
-
const maxTokenAmount = (...amounts) =>
|
|
17
|
+
const maxTokenAmount = (...amounts) => {
|
|
18
|
+
let max = amounts[0];
|
|
19
|
+
for (let i = 1; i < amounts.length; i++) {
|
|
20
|
+
if (amounts[i].gt(max))
|
|
21
|
+
max = amounts[i];
|
|
22
|
+
}
|
|
23
|
+
return max;
|
|
24
|
+
};
|
|
17
25
|
exports.maxTokenAmount = maxTokenAmount;
|
|
18
|
-
const minTokenAmount = (...amounts) =>
|
|
26
|
+
const minTokenAmount = (...amounts) => {
|
|
27
|
+
let min = amounts[0];
|
|
28
|
+
for (let i = 1; i < amounts.length; i++) {
|
|
29
|
+
if (amounts[i].lt(min))
|
|
30
|
+
min = amounts[i];
|
|
31
|
+
}
|
|
32
|
+
return min;
|
|
33
|
+
};
|
|
19
34
|
exports.minTokenAmount = minTokenAmount;
|
|
20
|
-
const stripTrailingZeroes = (str) => str.replace(/(?<=\.\d+)0+$/, "");
|
|
21
35
|
class TokenAmount {
|
|
22
36
|
constructor(raw, token) {
|
|
23
37
|
this.raw = raw;
|
|
@@ -33,11 +47,7 @@ class TokenAmount {
|
|
|
33
47
|
return this.token.decimals;
|
|
34
48
|
}
|
|
35
49
|
toFixed(digits = this.decimals) {
|
|
36
|
-
|
|
37
|
-
if (str.includes(".") && digits !== this.decimals) {
|
|
38
|
-
str = str.slice(0, str.indexOf(".") + digits + 1);
|
|
39
|
-
}
|
|
40
|
-
return stripTrailingZeroes(str);
|
|
50
|
+
return (0, misc_1.formatBnFixed)(this.raw, this.decimals, digits);
|
|
41
51
|
}
|
|
42
52
|
format(digits = this.decimals, withSymbol) {
|
|
43
53
|
return `${this.toFixed(digits)}${withSymbol ? " " + this.symbol : ""}`;
|
package/dist/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":";;;AAAA,mCAAsE;AACtE,4CAA2D;AAC3D,2CAA4E;AAC5E,mCAA4D;AAC5D,2CAA8C;AAC9C,2CAAsD;
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
|