@wildcatfi/wildcat-sdk 1.0.3 → 1.0.5
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 +76 -0
- package/dist/account.d.ts.map +1 -0
- package/dist/account.js +155 -0
- package/dist/account.js.map +1 -0
- package/dist/constants.d.ts +12 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/controller.d.ts +14 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +33 -0
- package/dist/controller.js.map +1 -0
- package/dist/factory.d.ts +27 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +42 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/misc.d.ts +7 -0
- package/dist/misc.d.ts.map +1 -0
- package/dist/misc.js +15 -0
- package/dist/misc.js.map +1 -0
- package/dist/token.d.ts +39 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +105 -0
- package/dist/token.js.map +1 -0
- package/dist/typechain/DebtTokenBase.d.ts +508 -0
- package/dist/typechain/DebtTokenBase.d.ts.map +1 -0
- package/dist/typechain/DebtTokenBase.js +3 -0
- package/dist/typechain/DebtTokenBase.js.map +1 -0
- package/dist/typechain/IERC20.d.ts +175 -0
- package/dist/typechain/IERC20.d.ts.map +1 -0
- package/dist/typechain/IERC20.js +3 -0
- package/dist/typechain/IERC20.js.map +1 -0
- package/dist/typechain/VaultLens.d.ts +207 -0
- package/dist/typechain/VaultLens.d.ts.map +1 -0
- package/dist/typechain/VaultLens.js +3 -0
- package/dist/typechain/VaultLens.js.map +1 -0
- package/dist/typechain/WildcatVaultController.d.ts +331 -0
- package/dist/typechain/WildcatVaultController.d.ts.map +1 -0
- package/dist/typechain/WildcatVaultController.js +3 -0
- package/dist/typechain/WildcatVaultController.js.map +1 -0
- package/dist/typechain/WildcatVaultFactory.d.ts +137 -0
- package/dist/typechain/WildcatVaultFactory.d.ts.map +1 -0
- package/dist/typechain/WildcatVaultFactory.js +3 -0
- package/dist/typechain/WildcatVaultFactory.js.map +1 -0
- package/dist/typechain/WildcatVaultToken.d.ts +556 -0
- package/dist/typechain/WildcatVaultToken.d.ts.map +1 -0
- package/dist/typechain/WildcatVaultToken.js +3 -0
- package/dist/typechain/WildcatVaultToken.js.map +1 -0
- package/dist/typechain/common.d.ts +23 -0
- package/dist/typechain/common.d.ts.map +1 -0
- package/dist/typechain/common.js +3 -0
- package/dist/typechain/common.js.map +1 -0
- package/dist/typechain/factories/DebtTokenBase__factory.d.ts +660 -0
- package/dist/typechain/factories/DebtTokenBase__factory.d.ts.map +1 -0
- package/dist/typechain/factories/DebtTokenBase__factory.js +867 -0
- package/dist/typechain/factories/DebtTokenBase__factory.js.map +1 -0
- package/dist/typechain/factories/IERC20__factory.d.ts +185 -0
- package/dist/typechain/factories/IERC20__factory.d.ts.map +1 -0
- package/dist/typechain/factories/IERC20__factory.js +251 -0
- package/dist/typechain/factories/IERC20__factory.js.map +1 -0
- package/dist/typechain/factories/VaultLens__factory.d.ts +405 -0
- package/dist/typechain/factories/VaultLens__factory.d.ts.map +1 -0
- package/dist/typechain/factories/VaultLens__factory.js +536 -0
- package/dist/typechain/factories/VaultLens__factory.js.map +1 -0
- package/dist/typechain/factories/WildcatVaultController__factory.d.ts +465 -0
- package/dist/typechain/factories/WildcatVaultController__factory.d.ts.map +1 -0
- package/dist/typechain/factories/WildcatVaultController__factory.js +612 -0
- package/dist/typechain/factories/WildcatVaultController__factory.js.map +1 -0
- package/dist/typechain/factories/WildcatVaultFactory__factory.d.ts +196 -0
- package/dist/typechain/factories/WildcatVaultFactory__factory.d.ts.map +1 -0
- package/dist/typechain/factories/WildcatVaultFactory__factory.js +266 -0
- package/dist/typechain/factories/WildcatVaultFactory__factory.js.map +1 -0
- package/dist/typechain/factories/WildcatVaultToken__factory.d.ts +678 -0
- package/dist/typechain/factories/WildcatVaultToken__factory.d.ts.map +1 -0
- package/dist/typechain/factories/WildcatVaultToken__factory.js +889 -0
- package/dist/typechain/factories/WildcatVaultToken__factory.js.map +1 -0
- package/dist/typechain/factories/index.d.ts +7 -0
- package/dist/typechain/factories/index.d.ts.map +1 -0
- package/dist/typechain/factories/index.js +16 -0
- package/dist/typechain/factories/index.js.map +1 -0
- package/dist/typechain/index.d.ts +8 -0
- package/dist/typechain/index.d.ts.map +1 -0
- package/dist/typechain/index.js +18 -0
- package/dist/typechain/index.js.map +1 -0
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +40 -0
- package/dist/types.js.map +1 -0
- package/dist/vault.d.ts +73 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/vault.js +173 -0
- package/dist/vault.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BigNumber, ContractTransaction } from "ethers";
|
|
2
|
+
import { TokenAmount } from "./token";
|
|
3
|
+
import { Vault } from "./vault";
|
|
4
|
+
import { AccountVaultInfoStructOutput } from "./typechain";
|
|
5
|
+
export type DepositStatus = {
|
|
6
|
+
status: "InsufficientBalance";
|
|
7
|
+
} | {
|
|
8
|
+
status: "ExceedsMaximumDeposit";
|
|
9
|
+
} | {
|
|
10
|
+
status: "InsufficientAllowance";
|
|
11
|
+
remainder: TokenAmount;
|
|
12
|
+
} | {
|
|
13
|
+
status: "Ready";
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Class to provide information about a vault user's account
|
|
17
|
+
* and to wrap interactions.
|
|
18
|
+
*
|
|
19
|
+
* Use `update()` to update the account's state.
|
|
20
|
+
*
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
export declare class VaultAccount {
|
|
24
|
+
account: string;
|
|
25
|
+
vaultBalance: TokenAmount;
|
|
26
|
+
underlyingBalance: TokenAmount;
|
|
27
|
+
underlyingApproval: BigNumber;
|
|
28
|
+
vault: Vault;
|
|
29
|
+
constructor(account: string, vaultBalance: TokenAmount, underlyingBalance: TokenAmount, underlyingApproval: BigNumber, vault: Vault);
|
|
30
|
+
static readonly UpdatableKeys: Array<keyof VaultAccount>;
|
|
31
|
+
get userHasBalance(): boolean;
|
|
32
|
+
get userHasUnderlyingBalance(): boolean;
|
|
33
|
+
isBorrower(): boolean;
|
|
34
|
+
setAPR(newAprBips: number): Promise<ContractTransaction>;
|
|
35
|
+
approveAllowanceRemainder(amount: TokenAmount): Promise<ContractTransaction>;
|
|
36
|
+
deposit(amount: TokenAmount): Promise<ContractTransaction>;
|
|
37
|
+
withdraw(amount: TokenAmount): Promise<ContractTransaction>;
|
|
38
|
+
/**
|
|
39
|
+
* @returns Amount of underlying token borrower can borrow
|
|
40
|
+
*/
|
|
41
|
+
getBorrowableAmount(amount: TokenAmount): TokenAmount;
|
|
42
|
+
update(): Promise<void>;
|
|
43
|
+
applyUpdate(info: AccountVaultInfoStructOutput): void;
|
|
44
|
+
/**
|
|
45
|
+
* @returns Maximum amount of underlying token user can deposit
|
|
46
|
+
* given their underlying balance and the vault's max supply
|
|
47
|
+
*/
|
|
48
|
+
get maximumDeposit(): TokenAmount;
|
|
49
|
+
/**
|
|
50
|
+
* @returns Amount of underlying token user can withdraw
|
|
51
|
+
* given their vault balance and the vault's assets.
|
|
52
|
+
*/
|
|
53
|
+
get maximumWithdrawal(): TokenAmount;
|
|
54
|
+
/**
|
|
55
|
+
* @returns Amount of underlying token user can actually deposit
|
|
56
|
+
* given a target amount.
|
|
57
|
+
*/
|
|
58
|
+
getDepositAmount(amount: TokenAmount): TokenAmount;
|
|
59
|
+
/**
|
|
60
|
+
* @returns Amount of underlying token user can actually withdraw
|
|
61
|
+
* given a target amount.
|
|
62
|
+
*/
|
|
63
|
+
getWithdrawalAmount(amount: TokenAmount): TokenAmount;
|
|
64
|
+
isApprovedFor(amount: TokenAmount): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* @returns Remaining amount of underlying token user must approve
|
|
67
|
+
* vault to spend to make a deposit.
|
|
68
|
+
*/
|
|
69
|
+
getAllowanceRemainder(amount: TokenAmount): TokenAmount;
|
|
70
|
+
/**
|
|
71
|
+
* @returns Status for deposit
|
|
72
|
+
*/
|
|
73
|
+
checkDepositStep(amount: TokenAmount): DepositStatus;
|
|
74
|
+
static fromAccountVaultInfoStruct(account: string, info: AccountVaultInfoStructOutput, vault: Vault): VaultAccount;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +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,MAAM,aAAa,CAAC;AAI3D,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;AAEN;;;;;;;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;IAIf,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBxD,yBAAyB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAW5E,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAW1D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQjE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAI/C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B,WAAW,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI;IAKrD;;;OAGG;IACH,IAAI,cAAc,IAAI,WAAW,CAEhC;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,WAAW,CAEnC;IAED;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAIlD;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAIrD,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI3C;;;OAGG;IACH,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAIvD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa;IAgBpD,MAAM,CAAC,0BAA0B,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,4BAA4B,EAClC,KAAK,EAAE,KAAK,GACX,YAAY;CAShB"}
|
package/dist/account.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VaultAccount = void 0;
|
|
4
|
+
const token_1 = require("./token");
|
|
5
|
+
const misc_1 = require("./misc");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
/**
|
|
8
|
+
* Class to provide information about a vault user's account
|
|
9
|
+
* and to wrap interactions.
|
|
10
|
+
*
|
|
11
|
+
* Use `update()` to update the account's state.
|
|
12
|
+
*
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
class VaultAccount {
|
|
16
|
+
constructor(account, vaultBalance, underlyingBalance, underlyingApproval, vault) {
|
|
17
|
+
this.account = account;
|
|
18
|
+
this.vaultBalance = vaultBalance;
|
|
19
|
+
this.underlyingBalance = underlyingBalance;
|
|
20
|
+
this.underlyingApproval = underlyingApproval;
|
|
21
|
+
this.vault = vault;
|
|
22
|
+
}
|
|
23
|
+
get userHasBalance() {
|
|
24
|
+
return this.vaultBalance.gt(0);
|
|
25
|
+
}
|
|
26
|
+
get userHasUnderlyingBalance() {
|
|
27
|
+
return this.underlyingBalance.gt(0);
|
|
28
|
+
}
|
|
29
|
+
isBorrower() {
|
|
30
|
+
return this.vault.borrower.toLowerCase() === this.account.toLowerCase();
|
|
31
|
+
}
|
|
32
|
+
async setAPR(newAprBips) {
|
|
33
|
+
if (!this.isBorrower) {
|
|
34
|
+
throw Error("Only borrower can set APR");
|
|
35
|
+
}
|
|
36
|
+
if (newAprBips > 10000) {
|
|
37
|
+
throw Error("APR must be less than 100% (10000 BIPS)");
|
|
38
|
+
}
|
|
39
|
+
if (!this.vault.canChangeAPR) {
|
|
40
|
+
throw Error("APR cannot be changed - change in progress");
|
|
41
|
+
}
|
|
42
|
+
const controller = (0, constants_1.getControllerContract)(this.vault.provider);
|
|
43
|
+
if (this.vault.controller !== controller.address) {
|
|
44
|
+
throw Error(`Unexpected controller address: ${this.vault.controller}`);
|
|
45
|
+
}
|
|
46
|
+
return controller.reduceInterestRate(this.vault.address, newAprBips);
|
|
47
|
+
}
|
|
48
|
+
async approveAllowanceRemainder(amount) {
|
|
49
|
+
const token = this.vault.underlyingToken;
|
|
50
|
+
const signer = await token.signer.getAddress();
|
|
51
|
+
if (signer !== this.account) {
|
|
52
|
+
throw Error(`VaultAccount signer ${signer} does not match ${this.account}`);
|
|
53
|
+
}
|
|
54
|
+
amount = this.getAllowanceRemainder(amount);
|
|
55
|
+
return token.contract.approve(this.vault.address, amount.raw);
|
|
56
|
+
}
|
|
57
|
+
// TODO: Add support for depositUpTo
|
|
58
|
+
async deposit(amount) {
|
|
59
|
+
const signer = await this.vault.signer.getAddress();
|
|
60
|
+
if (signer !== this.account) {
|
|
61
|
+
throw Error(`VaultAccount signer ${signer} does not match ${this.account}`);
|
|
62
|
+
}
|
|
63
|
+
if (amount.gt(this.underlyingBalance)) {
|
|
64
|
+
throw Error("Insufficient balance");
|
|
65
|
+
}
|
|
66
|
+
return this.vault.contract.deposit(amount.raw, this.account);
|
|
67
|
+
}
|
|
68
|
+
async withdraw(amount) {
|
|
69
|
+
const signer = await this.vault.signer.getAddress();
|
|
70
|
+
if (signer !== this.account) {
|
|
71
|
+
throw Error(`VaultAccount signer ${signer} does not match ${this.account}`);
|
|
72
|
+
}
|
|
73
|
+
return this.vault.contract.withdraw(amount.raw, this.account);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @returns Amount of underlying token borrower can borrow
|
|
77
|
+
*/
|
|
78
|
+
getBorrowableAmount(amount) {
|
|
79
|
+
return (0, token_1.minTokenAmount)(amount, this.vault.borrowableAssets);
|
|
80
|
+
}
|
|
81
|
+
async update() {
|
|
82
|
+
const acccountVaultInfo = await this.vault.getAccountInfo();
|
|
83
|
+
(0, misc_1.updateObject)(this, acccountVaultInfo, VaultAccount.UpdatableKeys);
|
|
84
|
+
}
|
|
85
|
+
applyUpdate(info) {
|
|
86
|
+
const account = VaultAccount.fromAccountVaultInfoStruct(this.account, info, this.vault);
|
|
87
|
+
(0, misc_1.updateObject)(this, account, VaultAccount.UpdatableKeys);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* @returns Maximum amount of underlying token user can deposit
|
|
91
|
+
* given their underlying balance and the vault's max supply
|
|
92
|
+
*/
|
|
93
|
+
get maximumDeposit() {
|
|
94
|
+
return (0, token_1.minTokenAmount)(this.vault.maximumDeposit, this.underlyingBalance);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @returns Amount of underlying token user can withdraw
|
|
98
|
+
* given their vault balance and the vault's assets.
|
|
99
|
+
*/
|
|
100
|
+
get maximumWithdrawal() {
|
|
101
|
+
return (0, token_1.minTokenAmount)(this.vault.totalAssets, this.vaultBalance);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @returns Amount of underlying token user can actually deposit
|
|
105
|
+
* given a target amount.
|
|
106
|
+
*/
|
|
107
|
+
getDepositAmount(amount) {
|
|
108
|
+
return (0, token_1.minTokenAmount)(amount, this.maximumDeposit);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* @returns Amount of underlying token user can actually withdraw
|
|
112
|
+
* given a target amount.
|
|
113
|
+
*/
|
|
114
|
+
getWithdrawalAmount(amount) {
|
|
115
|
+
return (0, token_1.minTokenAmount)(amount, this.maximumWithdrawal);
|
|
116
|
+
}
|
|
117
|
+
isApprovedFor(amount) {
|
|
118
|
+
return this.underlyingApproval.gte(amount.raw);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* @returns Remaining amount of underlying token user must approve
|
|
122
|
+
* vault to spend to make a deposit.
|
|
123
|
+
*/
|
|
124
|
+
getAllowanceRemainder(amount) {
|
|
125
|
+
return amount.satsub(this.underlyingApproval);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* @returns Status for deposit
|
|
129
|
+
*/
|
|
130
|
+
checkDepositStep(amount) {
|
|
131
|
+
if (amount.gt(this.vault.maximumDeposit)) {
|
|
132
|
+
return { status: "ExceedsMaximumDeposit" };
|
|
133
|
+
}
|
|
134
|
+
if (amount.gt(this.underlyingBalance)) {
|
|
135
|
+
return { status: "InsufficientBalance" };
|
|
136
|
+
}
|
|
137
|
+
if (!this.isApprovedFor(amount)) {
|
|
138
|
+
return {
|
|
139
|
+
status: "InsufficientAllowance",
|
|
140
|
+
remainder: this.getAllowanceRemainder(amount)
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
return { status: "Ready" };
|
|
144
|
+
}
|
|
145
|
+
static fromAccountVaultInfoStruct(account, info, vault) {
|
|
146
|
+
return new VaultAccount(account, vault.vaultToken.getAmount(info.normalizedBalance), vault.underlyingToken.getAmount(info.underlyingBalance), info.underlyingApproval, vault);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
VaultAccount.UpdatableKeys = [
|
|
150
|
+
"vaultBalance",
|
|
151
|
+
"underlyingBalance",
|
|
152
|
+
"underlyingApproval"
|
|
153
|
+
];
|
|
154
|
+
exports.VaultAccount = VaultAccount;
|
|
155
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BigNumber } from "ethers";
|
|
2
|
+
import { VaultLens, WildcatVaultController, WildcatVaultFactory } from "./typechain";
|
|
3
|
+
import { SignerOrProvider } from "./types";
|
|
4
|
+
export declare const LensAddress = "0xDdcBBC4510156441F88D23A6ab4c64eed1775C16";
|
|
5
|
+
export declare const FactoryAddress = "0x2050084919527BDE33Ff2dc9ef3768B2E335AC71";
|
|
6
|
+
export declare const ControllerAddress = "0x41176b30395e1eea87dd6deb6d796c56097f6fa0";
|
|
7
|
+
export declare const getControllerContract: (provider: SignerOrProvider) => WildcatVaultController;
|
|
8
|
+
export declare const getFactoryContract: (provider: SignerOrProvider) => WildcatVaultFactory;
|
|
9
|
+
export declare const getLensContract: (provider: SignerOrProvider) => VaultLens;
|
|
10
|
+
export declare const RAY: BigNumber;
|
|
11
|
+
export declare const WAD: BigNumber;
|
|
12
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EACL,SAAS,EAET,sBAAsB,EAEtB,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW,+CAA+C,CAAC;AACxE,eAAO,MAAM,cAAc,+CAA+C,CAAC;AAC3E,eAAO,MAAM,iBAAiB,+CAA+C,CAAC;AAE9E,eAAO,MAAM,qBAAqB,aAAc,gBAAgB,KAAG,sBAElE,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAc,gBAAgB,KAAG,mBAE/D,CAAC;AAEF,eAAO,MAAM,eAAe,aAAc,gBAAgB,KAAG,SAE5D,CAAC;AAEF,eAAO,MAAM,GAAG,WAA6B,CAAC;AAC9C,eAAO,MAAM,GAAG,WAA6B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WAD = exports.RAY = exports.getLensContract = exports.getFactoryContract = exports.getControllerContract = exports.ControllerAddress = exports.FactoryAddress = exports.LensAddress = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const typechain_1 = require("./typechain");
|
|
6
|
+
exports.LensAddress = "0xDdcBBC4510156441F88D23A6ab4c64eed1775C16";
|
|
7
|
+
exports.FactoryAddress = "0x2050084919527BDE33Ff2dc9ef3768B2E335AC71";
|
|
8
|
+
exports.ControllerAddress = "0x41176b30395e1eea87dd6deb6d796c56097f6fa0";
|
|
9
|
+
const getControllerContract = (provider) => {
|
|
10
|
+
return typechain_1.WildcatVaultController__factory.connect(exports.ControllerAddress, provider);
|
|
11
|
+
};
|
|
12
|
+
exports.getControllerContract = getControllerContract;
|
|
13
|
+
const getFactoryContract = (provider) => {
|
|
14
|
+
return typechain_1.WildcatVaultFactory__factory.connect(exports.FactoryAddress, provider);
|
|
15
|
+
};
|
|
16
|
+
exports.getFactoryContract = getFactoryContract;
|
|
17
|
+
const getLensContract = (provider) => {
|
|
18
|
+
return typechain_1.VaultLens__factory.connect(exports.LensAddress, provider);
|
|
19
|
+
};
|
|
20
|
+
exports.getLensContract = getLensContract;
|
|
21
|
+
exports.RAY = ethers_1.BigNumber.from(10).pow(27);
|
|
22
|
+
exports.WAD = ethers_1.BigNumber.from(10).pow(18);
|
|
23
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,2CAOqB;AAGR,QAAA,WAAW,GAAG,4CAA4C,CAAC;AAC3D,QAAA,cAAc,GAAG,4CAA4C,CAAC;AAC9D,QAAA,iBAAiB,GAAG,4CAA4C,CAAC;AAEvE,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAA0B,EAAE;IAC1F,OAAO,2CAA+B,CAAC,OAAO,CAAC,yBAAiB,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,kBAAkB,GAAG,CAAC,QAA0B,EAAuB,EAAE;IACpF,OAAO,wCAA4B,CAAC,OAAO,CAAC,sBAAc,EAAE,QAAQ,CAAC,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEK,MAAM,eAAe,GAAG,CAAC,QAA0B,EAAa,EAAE;IACvE,OAAO,8BAAkB,CAAC,OAAO,CAAC,mBAAW,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEW,QAAA,GAAG,GAAG,kBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjC,QAAA,GAAG,GAAG,kBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { WildcatVaultController, WildcatVaultController__factory } from "./typechain";
|
|
2
|
+
import { ContractWrapper, SignerOrProvider } from "./types";
|
|
3
|
+
import { Vault } from "./vault";
|
|
4
|
+
import { VaultParameters } from "./factory";
|
|
5
|
+
export declare class VaultController extends ContractWrapper<WildcatVaultController> {
|
|
6
|
+
address: string;
|
|
7
|
+
readonly contractFactory: typeof WildcatVaultController__factory;
|
|
8
|
+
constructor(address: string, provider: SignerOrProvider);
|
|
9
|
+
isKnownVault(vault: string): Promise<boolean>;
|
|
10
|
+
getAllVaults(provider: SignerOrProvider): Promise<Vault[]>;
|
|
11
|
+
static getController(provider: SignerOrProvider): Promise<VaultController>;
|
|
12
|
+
deployVault(params: Omit<VaultParameters, "controller">): Promise<Vault>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAgB,eAAe,EAAE,MAAM,WAAW,CAAC;AAE1D,qBAAa,eAAgB,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IAGvD,OAAO,EAAE,MAAM;IAFlC,QAAQ,CAAC,eAAe,yCAAmC;gBAExC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;IAIxD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;WAUnD,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI1E,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;CAG/E"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VaultController = void 0;
|
|
4
|
+
const typechain_1 = require("./typechain");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
const vault_1 = require("./vault");
|
|
8
|
+
const factory_1 = require("./factory");
|
|
9
|
+
class VaultController extends types_1.ContractWrapper {
|
|
10
|
+
constructor(address, provider) {
|
|
11
|
+
super(provider);
|
|
12
|
+
this.address = address;
|
|
13
|
+
this.contractFactory = typechain_1.WildcatVaultController__factory;
|
|
14
|
+
}
|
|
15
|
+
async isKnownVault(vault) {
|
|
16
|
+
return await this.contract.vaults(vault);
|
|
17
|
+
}
|
|
18
|
+
async getAllVaults(provider) {
|
|
19
|
+
const factory = (0, constants_1.getFactoryContract)(provider);
|
|
20
|
+
const vaults = (await this.contract.queryFilter(factory.filters.VaultDeployed(constants_1.ControllerAddress), 3399789)).map(({ args: { vault } }) => vault);
|
|
21
|
+
console.log("vaults", vaults);
|
|
22
|
+
const metadatas = await (0, constants_1.getLensContract)(provider).getVaultsMetadata(vaults);
|
|
23
|
+
return metadatas.map((x) => vault_1.Vault.fromVaultMetadataStruct(x, provider));
|
|
24
|
+
}
|
|
25
|
+
static async getController(provider) {
|
|
26
|
+
return new VaultController(constants_1.ControllerAddress, provider);
|
|
27
|
+
}
|
|
28
|
+
async deployVault(params) {
|
|
29
|
+
return factory_1.VaultFactory.deployVault({ ...params, controller: this.address }, this.provider);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.VaultController = VaultController;
|
|
33
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":";;;AAAA,2CAAsF;AACtF,2CAAqF;AACrF,mCAA4D;AAC5D,mCAAgC;AAChC,uCAA0D;AAE1D,MAAa,eAAgB,SAAQ,uBAAuC;IAG1E,YAAmB,OAAe,EAAE,QAA0B;QAC5D,KAAK,CAAC,QAAQ,CAAC,CAAC;QADC,YAAO,GAAP,OAAO,CAAQ;QAFzB,oBAAe,GAAG,2CAA+B,CAAC;IAI3D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAA0B;QAC3C,MAAM,OAAO,GAAG,IAAA,8BAAkB,EAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,CACb,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,6BAAiB,CAAC,EAAE,OAAO,CAAC,CAC3F,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5E,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,QAA0B;QACnD,OAAO,IAAI,eAAe,CAAC,6BAAiB,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAA2C;QAC3D,OAAO,sBAAY,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1F,CAAC;CACF;AA5BD,0CA4BC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Token, TokenAmount } from "./token";
|
|
2
|
+
import { WildcatVaultFactory, WildcatVaultFactory__factory } from "./typechain";
|
|
3
|
+
import { ContractWrapper, SignerOrProvider } from "./types";
|
|
4
|
+
import { Vault } from "./vault";
|
|
5
|
+
export type VaultParameters = {
|
|
6
|
+
asset: Token;
|
|
7
|
+
namePrefix: string;
|
|
8
|
+
symbolPrefix: string;
|
|
9
|
+
borrower: string;
|
|
10
|
+
controller: string;
|
|
11
|
+
maxTotalSupply: TokenAmount;
|
|
12
|
+
annualInterestBips: number;
|
|
13
|
+
penaltyFeeBips: number;
|
|
14
|
+
gracePeriod: number;
|
|
15
|
+
liquidityCoverageRatio: number;
|
|
16
|
+
interestFeeBips: number;
|
|
17
|
+
feeRecipient: string;
|
|
18
|
+
};
|
|
19
|
+
export declare class VaultFactory extends ContractWrapper<WildcatVaultFactory> {
|
|
20
|
+
address: string;
|
|
21
|
+
readonly contractFactory: typeof WildcatVaultFactory__factory;
|
|
22
|
+
constructor(address: string, provider: SignerOrProvider);
|
|
23
|
+
static getFactory(provider: SignerOrProvider): VaultFactory;
|
|
24
|
+
deployVault(params: VaultParameters): Promise<Vault>;
|
|
25
|
+
static deployVault(params: VaultParameters, provider: SignerOrProvider): Promise<Vault>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,WAAW,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,qBAAa,YAAa,SAAQ,eAAe,CAAC,mBAAmB,CAAC;IAGjD,OAAO,EAAE,MAAM;IAFlC,QAAQ,CAAC,eAAe,sCAAgC;gBAErC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;IAI9D,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,YAAY;IAIrD,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;WAyB7C,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;CAI9F"}
|
package/dist/factory.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VaultFactory = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
const typechain_1 = require("./typechain");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
const vault_1 = require("./vault");
|
|
8
|
+
class VaultFactory extends types_1.ContractWrapper {
|
|
9
|
+
constructor(address, provider) {
|
|
10
|
+
super(provider);
|
|
11
|
+
this.address = address;
|
|
12
|
+
this.contractFactory = typechain_1.WildcatVaultFactory__factory;
|
|
13
|
+
}
|
|
14
|
+
static getFactory(provider) {
|
|
15
|
+
return new VaultFactory(constants_1.FactoryAddress, provider);
|
|
16
|
+
}
|
|
17
|
+
async deployVault(params) {
|
|
18
|
+
const tx = await this.contract.deployVault({
|
|
19
|
+
asset: params.asset.address,
|
|
20
|
+
namePrefix: params.namePrefix,
|
|
21
|
+
symbolPrefix: params.symbolPrefix,
|
|
22
|
+
borrower: params.borrower,
|
|
23
|
+
controller: params.controller,
|
|
24
|
+
maxTotalSupply: params.maxTotalSupply.raw.toString(),
|
|
25
|
+
annualInterestBips: params.annualInterestBips,
|
|
26
|
+
penaltyFeeBips: params.penaltyFeeBips,
|
|
27
|
+
gracePeriod: params.gracePeriod,
|
|
28
|
+
liquidityCoverageRatio: params.liquidityCoverageRatio,
|
|
29
|
+
interestFeeBips: params.interestFeeBips,
|
|
30
|
+
feeRecipient: params.feeRecipient
|
|
31
|
+
});
|
|
32
|
+
await tx.wait();
|
|
33
|
+
const address = await this.contract.computeVaultAddress(params.controller, await this.signer.getAddress(), params.asset.address);
|
|
34
|
+
return vault_1.Vault.getVault(address, this.provider);
|
|
35
|
+
}
|
|
36
|
+
static async deployVault(params, provider) {
|
|
37
|
+
const factory = VaultFactory.getFactory(provider);
|
|
38
|
+
return factory.deployVault(params);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.VaultFactory = VaultFactory;
|
|
42
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAE7C,2CAAgF;AAChF,mCAA4D;AAC5D,mCAAgC;AAiBhC,MAAa,YAAa,SAAQ,uBAAoC;IAGpE,YAAmB,OAAe,EAAE,QAA0B;QAC5D,KAAK,CAAC,QAAQ,CAAC,CAAC;QADC,YAAO,GAAP,OAAO,CAAQ;QAFzB,oBAAe,GAAG,wCAA4B,CAAC;IAIxD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAA0B;QAC1C,OAAO,IAAI,YAAY,CAAC,0BAAc,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAuB;QACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE;YACpD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CACrD,MAAM,CAAC,UAAU,EACjB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CACrB,CAAC;QACF,OAAO,aAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAuB,EAAE,QAA0B;QAC1E,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;CACF;AAxCD,oCAwCC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { VaultAccount } from "./account";
|
|
2
|
+
import { VaultFactory } from "./factory";
|
|
3
|
+
import { Signer, SignerOrProvider } from "./types";
|
|
4
|
+
import { Vault } from "./vault";
|
|
5
|
+
export * from "./vault";
|
|
6
|
+
export { Signer, Provider, SignerOrProvider } from "./types";
|
|
7
|
+
export * from "./account";
|
|
8
|
+
export * from "./controller";
|
|
9
|
+
export * from "./token";
|
|
10
|
+
export * from "./factory";
|
|
11
|
+
export declare const getFactory: typeof VaultFactory.getFactory;
|
|
12
|
+
export declare function getAllVaults(provider: SignerOrProvider): Promise<Vault[]>;
|
|
13
|
+
export declare function getAllVaultAccountsForUser(provider: Signer): Promise<VaultAccount[]>;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAY,MAAM,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAE1B,eAAO,MAAM,UAAU,gCAA0B,CAAC;AAElD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAkB/E;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAS1F"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.getAllVaultAccountsForUser = exports.getAllVaults = exports.getFactory = exports.Provider = exports.Signer = void 0;
|
|
18
|
+
const constants_1 = require("./constants");
|
|
19
|
+
const factory_1 = require("./factory");
|
|
20
|
+
const types_1 = require("./types");
|
|
21
|
+
const vault_1 = require("./vault");
|
|
22
|
+
__exportStar(require("./vault"), exports);
|
|
23
|
+
var types_2 = require("./types");
|
|
24
|
+
Object.defineProperty(exports, "Signer", { enumerable: true, get: function () { return types_2.Signer; } });
|
|
25
|
+
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return types_2.Provider; } });
|
|
26
|
+
__exportStar(require("./account"), exports);
|
|
27
|
+
__exportStar(require("./controller"), exports);
|
|
28
|
+
__exportStar(require("./token"), exports);
|
|
29
|
+
__exportStar(require("./factory"), exports);
|
|
30
|
+
exports.getFactory = factory_1.VaultFactory.getFactory;
|
|
31
|
+
async function getAllVaults(provider) {
|
|
32
|
+
const factory = (0, constants_1.getFactoryContract)(provider);
|
|
33
|
+
const currentBlock = await (provider instanceof types_1.Provider
|
|
34
|
+
? provider
|
|
35
|
+
: provider.provider).getBlockNumber();
|
|
36
|
+
const vaults = [];
|
|
37
|
+
for (let block = 3399789; block < currentBlock; block += 5000) {
|
|
38
|
+
const from = block;
|
|
39
|
+
const to = Math.min(block + 5000, currentBlock);
|
|
40
|
+
const newVaults = (await factory.queryFilter(factory.filters.VaultDeployed(), from, to)).map(({ args: { vault } }) => vault);
|
|
41
|
+
vaults.push(...newVaults);
|
|
42
|
+
}
|
|
43
|
+
const metadatas = await (0, constants_1.getLensContract)(provider).getVaultsMetadata(vaults);
|
|
44
|
+
return metadatas.map((x) => vault_1.Vault.fromVaultMetadataStruct(x, provider));
|
|
45
|
+
}
|
|
46
|
+
exports.getAllVaults = getAllVaults;
|
|
47
|
+
async function getAllVaultAccountsForUser(provider) {
|
|
48
|
+
const account = await provider.getAddress();
|
|
49
|
+
const vaults = await getAllVaults(provider);
|
|
50
|
+
const accounts = (await Promise.all(vaults.map((vault) => vault.getAccountInfo(account)))).filter((acct) => {
|
|
51
|
+
return acct.userHasBalance || acct.userHasUnderlyingBalance || acct.isBorrower;
|
|
52
|
+
});
|
|
53
|
+
return accounts;
|
|
54
|
+
}
|
|
55
|
+
exports.getAllVaultAccountsForUser = getAllVaultAccountsForUser;
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2CAAkE;AAClE,uCAAyC;AACzC,mCAA6D;AAC7D,mCAAgC;AAChC,0CAAwB;AACxB,iCAA6D;AAApD,+FAAA,MAAM,OAAA;AAAE,iGAAA,QAAQ,OAAA;AACzB,4CAA0B;AAC1B,+CAA6B;AAC7B,0CAAwB;AACxB,4CAA0B;AAEb,QAAA,UAAU,GAAG,sBAAY,CAAC,UAAU,CAAC;AAE3C,KAAK,UAAU,YAAY,CAAC,QAA0B;IAC3D,MAAM,OAAO,GAAG,IAAA,8BAAkB,EAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,YAAY,gBAAQ;QACtD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC,QAAS,CACrB,CAAC,cAAc,EAAE,CAAC;IACnB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,IAAI,EAAE;QAC7D,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAC1F,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAC/B,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;KAC3B;IACD,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1E,CAAC;AAlBD,oCAkBC;AAEM,KAAK,UAAU,0BAA0B,CAAC,QAAgB;IAC/D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAC/F,CAAC,IAAI,EAAE,EAAE;QACP,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,UAAU,CAAC;IACjF,CAAC,CACF,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AATD,gEASC"}
|
package/dist/misc.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type OnlyValueFields<C> = {
|
|
2
|
+
[K in ValueFields<C, keyof C>]: C[K];
|
|
3
|
+
};
|
|
4
|
+
export type ValueFields<C, K extends keyof C> = K extends string ? K extends keyof C ? C[K] extends (...args: any[]) => any ? never : K : never : never;
|
|
5
|
+
export declare function updateValue<O, K extends keyof O>(obj: O, otherObj: O, key: K): void;
|
|
6
|
+
export declare function updateObject<O>(obj: O, otherObj: O, keys: Array<keyof O>): void;
|
|
7
|
+
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/misc.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateObject = exports.updateValue = void 0;
|
|
4
|
+
// type Keys<C> = keyof OnlyValueFields<C> & string;
|
|
5
|
+
function updateValue(obj, otherObj, key) {
|
|
6
|
+
obj[key] = otherObj[key];
|
|
7
|
+
}
|
|
8
|
+
exports.updateValue = updateValue;
|
|
9
|
+
function updateObject(obj, otherObj, keys) {
|
|
10
|
+
for (const key of keys) {
|
|
11
|
+
updateValue(obj, otherObj, key);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.updateObject = updateObject;
|
|
15
|
+
//# sourceMappingURL=misc.js.map
|
package/dist/misc.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":";;;AAYA,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"}
|
package/dist/token.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BigNumber, BigNumberish } from "ethers";
|
|
2
|
+
import { TokenMetadataStructOutput } from "./typechain";
|
|
3
|
+
import { ContractWrapper, SignerOrProvider } from "./types";
|
|
4
|
+
import { IERC20, IERC20__factory } from "./typechain";
|
|
5
|
+
type RhsAmount = BigNumberish | TokenAmount;
|
|
6
|
+
export declare const maxTokenAmount: (...amounts: TokenAmount[]) => TokenAmount;
|
|
7
|
+
export declare const minTokenAmount: (...amounts: TokenAmount[]) => TokenAmount;
|
|
8
|
+
export declare class TokenAmount {
|
|
9
|
+
raw: BigNumber;
|
|
10
|
+
token: Token;
|
|
11
|
+
constructor(raw: BigNumber, token: Token);
|
|
12
|
+
get name(): string;
|
|
13
|
+
get symbol(): string;
|
|
14
|
+
get decimals(): number;
|
|
15
|
+
toFixed(digits?: number): number;
|
|
16
|
+
format(digits?: number, withSymbol?: boolean): string;
|
|
17
|
+
gt(amount: RhsAmount): boolean;
|
|
18
|
+
lt(amount: RhsAmount): boolean;
|
|
19
|
+
lte(amount: RhsAmount): boolean;
|
|
20
|
+
gte(amount: RhsAmount): boolean;
|
|
21
|
+
eq(amount: RhsAmount): boolean;
|
|
22
|
+
add(amount: RhsAmount): TokenAmount;
|
|
23
|
+
sub(amount: RhsAmount): TokenAmount;
|
|
24
|
+
satsub(amount: RhsAmount): TokenAmount;
|
|
25
|
+
}
|
|
26
|
+
export declare class Token extends ContractWrapper<IERC20> {
|
|
27
|
+
address: string;
|
|
28
|
+
name: string;
|
|
29
|
+
symbol: string;
|
|
30
|
+
decimals: number;
|
|
31
|
+
readonly contractFactory: typeof IERC20__factory;
|
|
32
|
+
constructor(address: string, name: string, symbol: string, decimals: number, provider: SignerOrProvider);
|
|
33
|
+
getAmount(amount: RhsAmount): TokenAmount;
|
|
34
|
+
parseAmount(amount: number | string): TokenAmount;
|
|
35
|
+
static fromTokenMetadataStruct(metadata: TokenMetadataStructOutput, provider: SignerOrProvider): Token;
|
|
36
|
+
static getTokenInfo(token: string, provider: SignerOrProvider): Promise<Token>;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtD,KAAK,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;AAQ5C,eAAO,MAAM,cAAc,eAAgB,WAAW,EAAE,KAAG,WACtB,CAAC;AAEtC,eAAO,MAAM,cAAc,eAAgB,WAAW,EAAE,KAAG,WACtB,CAAC;AAEtC,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;IAKvC,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;IANzB,QAAQ,CAAC,eAAe,yBAAmB;gBAGlC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EACvB,QAAQ,EAAE,gBAAgB;IAK5B,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;WAUK,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;CAKrF"}
|