@elmntl/vaults-v2 1.0.6 → 1.0.7
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/accounts/pool.d.ts +7 -1
- package/dist/accounts/pool.d.ts.map +1 -1
- package/dist/accounts/pool.js +38 -17
- package/dist/accounts/pool.js.map +1 -1
- package/dist/accounts/position.js +14 -14
- package/dist/accounts/position.js.map +1 -1
- package/dist/programs/elemental.d.ts.map +1 -1
- package/dist/programs/elemental.js +28 -2
- package/dist/programs/elemental.js.map +1 -1
- package/package.json +1 -1
- package/src/accounts/pool.ts +40 -17
- package/src/accounts/position.ts +14 -14
- package/src/programs/elemental.ts +31 -4
package/dist/accounts/pool.d.ts
CHANGED
|
@@ -3,8 +3,14 @@ import { PoolData, SwapAdapter } from "../types";
|
|
|
3
3
|
export declare class Pool {
|
|
4
4
|
readonly address: PublicKey;
|
|
5
5
|
private _data?;
|
|
6
|
-
|
|
6
|
+
private _depositDecimals;
|
|
7
|
+
private _vaultDecimals;
|
|
8
|
+
constructor(address: PublicKey, data?: PoolData, depositDecimals?: number, vaultDecimals?: number);
|
|
7
9
|
get data(): PoolData;
|
|
10
|
+
get depositDecimals(): number;
|
|
11
|
+
get vaultDecimals(): number;
|
|
12
|
+
get depositMultiplier(): number;
|
|
13
|
+
get vaultMultiplier(): number;
|
|
8
14
|
get authorityAddress(): PublicKey;
|
|
9
15
|
get adminAddress(): PublicKey;
|
|
10
16
|
get pendingAdminAddress(): PublicKey | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/accounts/pool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAiC,MAAM,UAAU,CAAC;AAGhF,qBAAa,IAAI;IACf,SAAgB,OAAO,EAAE,SAAS,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,CAAW;
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/accounts/pool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAiC,MAAM,UAAU,CAAC;AAGhF,qBAAa,IAAI;IACf,SAAgB,OAAO,EAAE,SAAS,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,CAAW;IACzB,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,cAAc,CAAa;gBAEvB,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAOjG,IAAI,IAAI,IAAI,QAAQ,CAGnB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAGD,IAAI,gBAAgB,IAAI,SAAS,CAKhC;IAED,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,IAAI,mBAAmB,IAAI,SAAS,GAAG,IAAI,CAE1C;IAGD,IAAI,kBAAkB,IAAI,SAAS,CAElC;IAED,IAAI,gBAAgB,IAAI,SAAS,CAEhC;IAED,IAAI,sBAAsB,IAAI,SAAS,CAEtC;IAGD,IAAI,sBAAsB,IAAI,SAAS,CAOtC;IAGD,IAAI,WAAW,IAAI,WAAW,CAO7B;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAGD,IAAI,gBAAgB,IAAI,SAAS,GAAG,IAAI,CAIvC;IAID,IAAI,SAAS,IAAI,MAAM,CAItB;IAED,IAAI,aAAa,IAAI,MAAM,CAI1B;IAED,IAAI,UAAU,IAAI,MAAM,CAIvB;IAGD,IAAI,gBAAgB,IAAI,MAAM,CAI7B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAI7B;IAGD,IAAI,GAAG,IAAI,MAAM,CAIhB;IAGD,IAAI,UAAU,IAAI,MAAM,CAKvB;IAGD,IAAI,oBAAoB,IAAI,MAAM,CAIjC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAI7B;IAED,IAAI,oBAAoB,IAAI,MAAM,CAIjC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAI7B;IAED,IAAI,aAAa,IAAI,MAAM,CAI1B;IAGD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,cAAc,IAAI,IAAI,CAEzB;IAED,IAAI,aAAa,IAAI,IAAI,CAWxB;IAED,IAAI,qBAAqB,IAAI,MAAM,CAIlC;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAGK,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzD,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzD,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAatE"}
|
package/dist/accounts/pool.js
CHANGED
|
@@ -10,15 +10,33 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
10
10
|
const types_1 = require("../types");
|
|
11
11
|
const programs_1 = require("../programs");
|
|
12
12
|
class Pool {
|
|
13
|
-
constructor(address, data) {
|
|
13
|
+
constructor(address, data, depositDecimals, vaultDecimals) {
|
|
14
|
+
this._depositDecimals = 6; // Default to USDC-like
|
|
15
|
+
this._vaultDecimals = 9; // Default to ONYC-like
|
|
14
16
|
this.address = address;
|
|
15
17
|
this._data = data;
|
|
18
|
+
if (depositDecimals !== undefined)
|
|
19
|
+
this._depositDecimals = depositDecimals;
|
|
20
|
+
if (vaultDecimals !== undefined)
|
|
21
|
+
this._vaultDecimals = vaultDecimals;
|
|
16
22
|
}
|
|
17
23
|
get data() {
|
|
18
24
|
if (!this._data)
|
|
19
25
|
throw new Error("Pool account is not loaded");
|
|
20
26
|
return this._data;
|
|
21
27
|
}
|
|
28
|
+
get depositDecimals() {
|
|
29
|
+
return this._depositDecimals;
|
|
30
|
+
}
|
|
31
|
+
get vaultDecimals() {
|
|
32
|
+
return this._vaultDecimals;
|
|
33
|
+
}
|
|
34
|
+
get depositMultiplier() {
|
|
35
|
+
return Math.pow(10, this._depositDecimals);
|
|
36
|
+
}
|
|
37
|
+
get vaultMultiplier() {
|
|
38
|
+
return Math.pow(10, this._vaultDecimals);
|
|
39
|
+
}
|
|
22
40
|
// PDA for pool authority
|
|
23
41
|
get authorityAddress() {
|
|
24
42
|
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("pool_authority"), this.address.toBuffer()], programs_1.VAULT_PROGRAM_ID)[0];
|
|
@@ -72,29 +90,31 @@ class Pool {
|
|
|
72
90
|
return new web3_js_1.PublicKey(Buffer.from(data));
|
|
73
91
|
}
|
|
74
92
|
// Amounts (human-readable)
|
|
93
|
+
// Supply amounts are in vault_mint terms
|
|
75
94
|
get maxSupply() {
|
|
76
95
|
return new decimal_js_1.default(this.data.maxSupply.toString())
|
|
77
|
-
.div(
|
|
96
|
+
.div(this.vaultMultiplier)
|
|
78
97
|
.toFixed();
|
|
79
98
|
}
|
|
80
99
|
get currentSupply() {
|
|
81
100
|
return new decimal_js_1.default(this.data.currentSupply.toString())
|
|
82
|
-
.div(
|
|
101
|
+
.div(this.vaultMultiplier)
|
|
83
102
|
.toFixed();
|
|
84
103
|
}
|
|
85
104
|
get nextSupply() {
|
|
86
105
|
return new decimal_js_1.default(this.data.nextSupply.toString())
|
|
87
|
-
.div(
|
|
106
|
+
.div(this.vaultMultiplier)
|
|
88
107
|
.toFixed();
|
|
89
108
|
}
|
|
109
|
+
// Deposit amounts are in deposit_mint terms
|
|
90
110
|
get maxDepositAmount() {
|
|
91
111
|
return new decimal_js_1.default(this.data.maxDepositAmount.toString())
|
|
92
|
-
.div(
|
|
112
|
+
.div(this.depositMultiplier)
|
|
93
113
|
.toFixed();
|
|
94
114
|
}
|
|
95
115
|
get minDepositAmount() {
|
|
96
116
|
return new decimal_js_1.default(this.data.minDepositAmount.toString())
|
|
97
|
-
.div(
|
|
117
|
+
.div(this.depositMultiplier)
|
|
98
118
|
.toFixed();
|
|
99
119
|
}
|
|
100
120
|
// APR as decimal string (e.g., "0.10" for 10%)
|
|
@@ -110,29 +130,30 @@ class Pool {
|
|
|
110
130
|
.mul(100)
|
|
111
131
|
.toFixed(2);
|
|
112
132
|
}
|
|
133
|
+
// These amounts are in vault_mint terms (tracked after swap)
|
|
113
134
|
get deactivatingAmountN0() {
|
|
114
135
|
return new decimal_js_1.default(this.data.deactivatingAmountN0.toString())
|
|
115
|
-
.div(
|
|
136
|
+
.div(this.vaultMultiplier)
|
|
116
137
|
.toFixed();
|
|
117
138
|
}
|
|
118
139
|
get claimingAmountN0() {
|
|
119
140
|
return new decimal_js_1.default(this.data.claimingAmountN0.toString())
|
|
120
|
-
.div(
|
|
141
|
+
.div(this.vaultMultiplier)
|
|
121
142
|
.toFixed();
|
|
122
143
|
}
|
|
123
144
|
get deactivatingAmountN1() {
|
|
124
145
|
return new decimal_js_1.default(this.data.deactivatingAmountN1.toString())
|
|
125
|
-
.div(
|
|
146
|
+
.div(this.vaultMultiplier)
|
|
126
147
|
.toFixed();
|
|
127
148
|
}
|
|
128
149
|
get claimingAmountN1() {
|
|
129
150
|
return new decimal_js_1.default(this.data.claimingAmountN1.toString())
|
|
130
|
-
.div(
|
|
151
|
+
.div(this.vaultMultiplier)
|
|
131
152
|
.toFixed();
|
|
132
153
|
}
|
|
133
154
|
get pendingAmount() {
|
|
134
155
|
return new decimal_js_1.default(this.data.pendingAmount.toString())
|
|
135
|
-
.div(
|
|
156
|
+
.div(this.vaultMultiplier)
|
|
136
157
|
.toFixed();
|
|
137
158
|
}
|
|
138
159
|
// Epoch info
|
|
@@ -166,31 +187,31 @@ class Pool {
|
|
|
166
187
|
get isEpochReady() {
|
|
167
188
|
return this.secondsUntilNextEpoch === 0;
|
|
168
189
|
}
|
|
169
|
-
// Get faucet balance (for withdrawals)
|
|
190
|
+
// Get faucet balance (for withdrawals) - in vault_mint terms
|
|
170
191
|
async getFaucetBalance(connection) {
|
|
171
192
|
try {
|
|
172
193
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
173
194
|
return new decimal_js_1.default(balance.value.amount)
|
|
174
|
-
.div(
|
|
195
|
+
.div(this.vaultMultiplier)
|
|
175
196
|
.toFixed();
|
|
176
197
|
}
|
|
177
198
|
catch {
|
|
178
199
|
return "0";
|
|
179
200
|
}
|
|
180
201
|
}
|
|
181
|
-
// Get holder balance (deposits accumulate here)
|
|
202
|
+
// Get holder balance (deposits accumulate here) - in vault_mint terms
|
|
182
203
|
async getHolderBalance(connection) {
|
|
183
204
|
try {
|
|
184
205
|
const balance = await connection.getTokenAccountBalance(this.liquidityHolderAddress);
|
|
185
206
|
return new decimal_js_1.default(balance.value.amount)
|
|
186
|
-
.div(
|
|
207
|
+
.div(this.vaultMultiplier)
|
|
187
208
|
.toFixed();
|
|
188
209
|
}
|
|
189
210
|
catch {
|
|
190
211
|
return "0";
|
|
191
212
|
}
|
|
192
213
|
}
|
|
193
|
-
// Calculate pending faucet amount needed
|
|
214
|
+
// Calculate pending faucet amount needed - in vault_mint terms
|
|
194
215
|
async getPendingFaucetAmount(connection) {
|
|
195
216
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
196
217
|
const pendingTotal = this.data.pendingAmount
|
|
@@ -200,7 +221,7 @@ class Pool {
|
|
|
200
221
|
if (shortage.lten(0))
|
|
201
222
|
return "0";
|
|
202
223
|
return new decimal_js_1.default(shortage.toString())
|
|
203
|
-
.div(
|
|
224
|
+
.div(this.vaultMultiplier)
|
|
204
225
|
.toFixed();
|
|
205
226
|
}
|
|
206
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/accounts/pool.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAiC;AACjC,kDAAuB;AACvB,6CAAwD;AAExD,oCAAgF;AAChF,0CAA+C;AAE/C,MAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/accounts/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,26 +15,26 @@ class Position {
|
|
|
15
15
|
get owner() {
|
|
16
16
|
return this.data.owner;
|
|
17
17
|
}
|
|
18
|
-
// Amount currently farming (human-readable)
|
|
18
|
+
// Amount currently farming (human-readable) - in vault_mint terms
|
|
19
19
|
get amount() {
|
|
20
20
|
return new decimal_js_1.default(this.data.amount.toString())
|
|
21
|
-
.div(
|
|
21
|
+
.div(this.pool.vaultMultiplier)
|
|
22
22
|
.toFixed();
|
|
23
23
|
}
|
|
24
24
|
// Amount in units (multiples of minDepositAmount)
|
|
25
25
|
get units() {
|
|
26
26
|
return this.data.amount.div(this.pool.data.minDepositAmount).toNumber();
|
|
27
27
|
}
|
|
28
|
-
// Max additional deposit allowed
|
|
28
|
+
// Max additional deposit allowed - in deposit_mint terms
|
|
29
29
|
get maxDepositAmount() {
|
|
30
30
|
const remaining = this.pool.data.maxDepositAmount.sub(this.data.amount);
|
|
31
31
|
if (remaining.lten(0))
|
|
32
32
|
return "0";
|
|
33
33
|
return new decimal_js_1.default(remaining.toString())
|
|
34
|
-
.div(
|
|
34
|
+
.div(this.pool.depositMultiplier)
|
|
35
35
|
.toFixed();
|
|
36
36
|
}
|
|
37
|
-
// Claimable rewards (human-readable)
|
|
37
|
+
// Claimable rewards (human-readable) - in vault_mint terms
|
|
38
38
|
get claimableAmount() {
|
|
39
39
|
// reward_per_token * amount / FIXED_ONE - reward_before_deposit + reward_earned - reward_claimed
|
|
40
40
|
const currentReward = this.data.amount
|
|
@@ -47,39 +47,39 @@ class Position {
|
|
|
47
47
|
if (claimable.lten(0))
|
|
48
48
|
return "0";
|
|
49
49
|
return new decimal_js_1.default(claimable.toString())
|
|
50
|
-
.div(
|
|
50
|
+
.div(this.pool.vaultMultiplier)
|
|
51
51
|
.toFixed();
|
|
52
52
|
}
|
|
53
|
-
// Already claimed rewards
|
|
53
|
+
// Already claimed rewards - in vault_mint terms
|
|
54
54
|
get claimedAmount() {
|
|
55
55
|
return new decimal_js_1.default(this.data.rewardClaimed.toString())
|
|
56
|
-
.div(
|
|
56
|
+
.div(this.pool.vaultMultiplier)
|
|
57
57
|
.toFixed();
|
|
58
58
|
}
|
|
59
|
-
// Amount ready to withdraw (after cooldown)
|
|
59
|
+
// Amount ready to withdraw (after cooldown) - in vault_mint terms
|
|
60
60
|
get withdrawableAmount() {
|
|
61
61
|
if (this.data.lastUpdatedEpochIndex + 1 < this.pool.epochIndex) {
|
|
62
62
|
const total = this.data.deactivatingAmount.add(this.data.claimingAmount);
|
|
63
63
|
return new decimal_js_1.default(total.toString())
|
|
64
|
-
.div(
|
|
64
|
+
.div(this.pool.vaultMultiplier)
|
|
65
65
|
.toFixed();
|
|
66
66
|
}
|
|
67
67
|
return "0";
|
|
68
68
|
}
|
|
69
|
-
// Amount in the process of unstaking (not yet withdrawable)
|
|
69
|
+
// Amount in the process of unstaking (not yet withdrawable) - in vault_mint terms
|
|
70
70
|
get unstakingAmount() {
|
|
71
71
|
return new decimal_js_1.default(this.data.deactivatingAmount.add(this.data.claimingAmount).toString())
|
|
72
|
-
.div(
|
|
72
|
+
.div(this.pool.vaultMultiplier)
|
|
73
73
|
.toFixed();
|
|
74
74
|
}
|
|
75
75
|
get deactivatingAmount() {
|
|
76
76
|
return new decimal_js_1.default(this.data.deactivatingAmount.toString())
|
|
77
|
-
.div(
|
|
77
|
+
.div(this.pool.vaultMultiplier)
|
|
78
78
|
.toFixed();
|
|
79
79
|
}
|
|
80
80
|
get claimingAmount() {
|
|
81
81
|
return new decimal_js_1.default(this.data.claimingAmount.toString())
|
|
82
|
-
.div(
|
|
82
|
+
.div(this.pool.vaultMultiplier)
|
|
83
83
|
.toFixed();
|
|
84
84
|
}
|
|
85
85
|
get lastUpdatedEpochIndex() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/accounts/position.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAiC;AAGjC,oCAAmE;AAGnE,MAAa,QAAQ;IAKnB,YAAY,IAAU,EAAE,OAAkB,EAAE,IAAkB;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/accounts/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elemental.d.ts","sourceRoot":"","sources":["../../src/programs/elemental.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAO,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,SAAS,EACT,OAAO,EAEP,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,QAAQ,EACR,YAAY,EAKb,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,qBAAa,kBAAkB;IAC7B,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,SAAS,CAAgB;gBAErB,QAAQ,EAAE,cAAc;IAKpC,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,aAAa,IAAI,SAAS,CAE7B;IAMD,iBAAiB,CAAC,WAAW,EAAE,SAAS,GAAG,SAAS;IAOpD,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,SAAS,GAAG,SAAS;IAe1E,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"elemental.d.ts","sourceRoot":"","sources":["../../src/programs/elemental.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,11 +43,37 @@ class ElementalV2Context {
|
|
|
43
43
|
// ============================================================================
|
|
44
44
|
async loadPool(address) {
|
|
45
45
|
const data = await this.program.account.pool.fetch(address);
|
|
46
|
-
|
|
46
|
+
const poolData = data;
|
|
47
|
+
// Fetch mint decimals
|
|
48
|
+
const [depositMintInfo, vaultMintInfo] = await Promise.all([
|
|
49
|
+
this.connection.getParsedAccountInfo(poolData.depositMint),
|
|
50
|
+
this.connection.getParsedAccountInfo(poolData.vaultMint),
|
|
51
|
+
]);
|
|
52
|
+
const depositDecimals = depositMintInfo.value?.data?.parsed?.info?.decimals ?? 6;
|
|
53
|
+
const vaultDecimals = vaultMintInfo.value?.data?.parsed?.info?.decimals ?? 9;
|
|
54
|
+
return new accounts_1.Pool(address, poolData, depositDecimals, vaultDecimals);
|
|
47
55
|
}
|
|
48
56
|
async loadPools(addresses) {
|
|
49
57
|
const accounts = await this.program.account.pool.fetchMultiple(addresses);
|
|
50
|
-
|
|
58
|
+
// For multiple pools, we'd need to batch fetch all mints
|
|
59
|
+
// For now, load each pool individually to get correct decimals
|
|
60
|
+
const pools = [];
|
|
61
|
+
for (let i = 0; i < addresses.length; i++) {
|
|
62
|
+
const data = accounts[i];
|
|
63
|
+
if (data) {
|
|
64
|
+
const [depositMintInfo, vaultMintInfo] = await Promise.all([
|
|
65
|
+
this.connection.getParsedAccountInfo(data.depositMint),
|
|
66
|
+
this.connection.getParsedAccountInfo(data.vaultMint),
|
|
67
|
+
]);
|
|
68
|
+
const depositDecimals = depositMintInfo.value?.data?.parsed?.info?.decimals ?? 6;
|
|
69
|
+
const vaultDecimals = vaultMintInfo.value?.data?.parsed?.info?.decimals ?? 9;
|
|
70
|
+
pools.push(new accounts_1.Pool(addresses[i], data, depositDecimals, vaultDecimals));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
pools.push(new accounts_1.Pool(addresses[i], undefined));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return pools;
|
|
51
77
|
}
|
|
52
78
|
async getTotalPositionsByPool(poolAddress) {
|
|
53
79
|
const positions = await this.program.account.position.all([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elemental.js","sourceRoot":"","sources":["../../src/programs/elemental.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elemental.js","sourceRoot":"","sources":["../../src/programs/elemental.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/accounts/pool.ts
CHANGED
|
@@ -8,10 +8,14 @@ import { VAULT_PROGRAM_ID } from "../programs";
|
|
|
8
8
|
export class Pool {
|
|
9
9
|
public readonly address: PublicKey;
|
|
10
10
|
private _data?: PoolData;
|
|
11
|
+
private _depositDecimals: number = 6; // Default to USDC-like
|
|
12
|
+
private _vaultDecimals: number = 9; // Default to ONYC-like
|
|
11
13
|
|
|
12
|
-
constructor(address: PublicKey, data?: PoolData) {
|
|
14
|
+
constructor(address: PublicKey, data?: PoolData, depositDecimals?: number, vaultDecimals?: number) {
|
|
13
15
|
this.address = address;
|
|
14
16
|
this._data = data;
|
|
17
|
+
if (depositDecimals !== undefined) this._depositDecimals = depositDecimals;
|
|
18
|
+
if (vaultDecimals !== undefined) this._vaultDecimals = vaultDecimals;
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
get data(): PoolData {
|
|
@@ -19,6 +23,22 @@ export class Pool {
|
|
|
19
23
|
return this._data;
|
|
20
24
|
}
|
|
21
25
|
|
|
26
|
+
get depositDecimals(): number {
|
|
27
|
+
return this._depositDecimals;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get vaultDecimals(): number {
|
|
31
|
+
return this._vaultDecimals;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
get depositMultiplier(): number {
|
|
35
|
+
return Math.pow(10, this._depositDecimals);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get vaultMultiplier(): number {
|
|
39
|
+
return Math.pow(10, this._vaultDecimals);
|
|
40
|
+
}
|
|
41
|
+
|
|
22
42
|
// PDA for pool authority
|
|
23
43
|
get authorityAddress(): PublicKey {
|
|
24
44
|
return PublicKey.findProgramAddressSync(
|
|
@@ -80,33 +100,35 @@ export class Pool {
|
|
|
80
100
|
}
|
|
81
101
|
|
|
82
102
|
// Amounts (human-readable)
|
|
103
|
+
// Supply amounts are in vault_mint terms
|
|
83
104
|
get maxSupply(): string {
|
|
84
105
|
return new Decimal(this.data.maxSupply.toString())
|
|
85
|
-
.div(
|
|
106
|
+
.div(this.vaultMultiplier)
|
|
86
107
|
.toFixed();
|
|
87
108
|
}
|
|
88
109
|
|
|
89
110
|
get currentSupply(): string {
|
|
90
111
|
return new Decimal(this.data.currentSupply.toString())
|
|
91
|
-
.div(
|
|
112
|
+
.div(this.vaultMultiplier)
|
|
92
113
|
.toFixed();
|
|
93
114
|
}
|
|
94
115
|
|
|
95
116
|
get nextSupply(): string {
|
|
96
117
|
return new Decimal(this.data.nextSupply.toString())
|
|
97
|
-
.div(
|
|
118
|
+
.div(this.vaultMultiplier)
|
|
98
119
|
.toFixed();
|
|
99
120
|
}
|
|
100
121
|
|
|
122
|
+
// Deposit amounts are in deposit_mint terms
|
|
101
123
|
get maxDepositAmount(): string {
|
|
102
124
|
return new Decimal(this.data.maxDepositAmount.toString())
|
|
103
|
-
.div(
|
|
125
|
+
.div(this.depositMultiplier)
|
|
104
126
|
.toFixed();
|
|
105
127
|
}
|
|
106
128
|
|
|
107
129
|
get minDepositAmount(): string {
|
|
108
130
|
return new Decimal(this.data.minDepositAmount.toString())
|
|
109
|
-
.div(
|
|
131
|
+
.div(this.depositMultiplier)
|
|
110
132
|
.toFixed();
|
|
111
133
|
}
|
|
112
134
|
|
|
@@ -125,33 +147,34 @@ export class Pool {
|
|
|
125
147
|
.toFixed(2);
|
|
126
148
|
}
|
|
127
149
|
|
|
150
|
+
// These amounts are in vault_mint terms (tracked after swap)
|
|
128
151
|
get deactivatingAmountN0(): string {
|
|
129
152
|
return new Decimal(this.data.deactivatingAmountN0.toString())
|
|
130
|
-
.div(
|
|
153
|
+
.div(this.vaultMultiplier)
|
|
131
154
|
.toFixed();
|
|
132
155
|
}
|
|
133
156
|
|
|
134
157
|
get claimingAmountN0(): string {
|
|
135
158
|
return new Decimal(this.data.claimingAmountN0.toString())
|
|
136
|
-
.div(
|
|
159
|
+
.div(this.vaultMultiplier)
|
|
137
160
|
.toFixed();
|
|
138
161
|
}
|
|
139
162
|
|
|
140
163
|
get deactivatingAmountN1(): string {
|
|
141
164
|
return new Decimal(this.data.deactivatingAmountN1.toString())
|
|
142
|
-
.div(
|
|
165
|
+
.div(this.vaultMultiplier)
|
|
143
166
|
.toFixed();
|
|
144
167
|
}
|
|
145
168
|
|
|
146
169
|
get claimingAmountN1(): string {
|
|
147
170
|
return new Decimal(this.data.claimingAmountN1.toString())
|
|
148
|
-
.div(
|
|
171
|
+
.div(this.vaultMultiplier)
|
|
149
172
|
.toFixed();
|
|
150
173
|
}
|
|
151
174
|
|
|
152
175
|
get pendingAmount(): string {
|
|
153
176
|
return new Decimal(this.data.pendingAmount.toString())
|
|
154
|
-
.div(
|
|
177
|
+
.div(this.vaultMultiplier)
|
|
155
178
|
.toFixed();
|
|
156
179
|
}
|
|
157
180
|
|
|
@@ -195,31 +218,31 @@ export class Pool {
|
|
|
195
218
|
return this.secondsUntilNextEpoch === 0;
|
|
196
219
|
}
|
|
197
220
|
|
|
198
|
-
// Get faucet balance (for withdrawals)
|
|
221
|
+
// Get faucet balance (for withdrawals) - in vault_mint terms
|
|
199
222
|
async getFaucetBalance(connection: Connection): Promise<string> {
|
|
200
223
|
try {
|
|
201
224
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
202
225
|
return new Decimal(balance.value.amount)
|
|
203
|
-
.div(
|
|
226
|
+
.div(this.vaultMultiplier)
|
|
204
227
|
.toFixed();
|
|
205
228
|
} catch {
|
|
206
229
|
return "0";
|
|
207
230
|
}
|
|
208
231
|
}
|
|
209
232
|
|
|
210
|
-
// Get holder balance (deposits accumulate here)
|
|
233
|
+
// Get holder balance (deposits accumulate here) - in vault_mint terms
|
|
211
234
|
async getHolderBalance(connection: Connection): Promise<string> {
|
|
212
235
|
try {
|
|
213
236
|
const balance = await connection.getTokenAccountBalance(this.liquidityHolderAddress);
|
|
214
237
|
return new Decimal(balance.value.amount)
|
|
215
|
-
.div(
|
|
238
|
+
.div(this.vaultMultiplier)
|
|
216
239
|
.toFixed();
|
|
217
240
|
} catch {
|
|
218
241
|
return "0";
|
|
219
242
|
}
|
|
220
243
|
}
|
|
221
244
|
|
|
222
|
-
// Calculate pending faucet amount needed
|
|
245
|
+
// Calculate pending faucet amount needed - in vault_mint terms
|
|
223
246
|
async getPendingFaucetAmount(connection: Connection): Promise<string> {
|
|
224
247
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
225
248
|
const pendingTotal = this.data.pendingAmount
|
|
@@ -230,7 +253,7 @@ export class Pool {
|
|
|
230
253
|
if (shortage.lten(0)) return "0";
|
|
231
254
|
|
|
232
255
|
return new Decimal(shortage.toString())
|
|
233
|
-
.div(
|
|
256
|
+
.div(this.vaultMultiplier)
|
|
234
257
|
.toFixed();
|
|
235
258
|
}
|
|
236
259
|
}
|
package/src/accounts/position.ts
CHANGED
|
@@ -19,10 +19,10 @@ export class Position {
|
|
|
19
19
|
return this.data.owner;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
// Amount currently farming (human-readable)
|
|
22
|
+
// Amount currently farming (human-readable) - in vault_mint terms
|
|
23
23
|
get amount(): string {
|
|
24
24
|
return new Decimal(this.data.amount.toString())
|
|
25
|
-
.div(
|
|
25
|
+
.div(this.pool.vaultMultiplier)
|
|
26
26
|
.toFixed();
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -31,16 +31,16 @@ export class Position {
|
|
|
31
31
|
return this.data.amount.div(this.pool.data.minDepositAmount).toNumber();
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
// Max additional deposit allowed
|
|
34
|
+
// Max additional deposit allowed - in deposit_mint terms
|
|
35
35
|
get maxDepositAmount(): string {
|
|
36
36
|
const remaining = this.pool.data.maxDepositAmount.sub(this.data.amount);
|
|
37
37
|
if (remaining.lten(0)) return "0";
|
|
38
38
|
return new Decimal(remaining.toString())
|
|
39
|
-
.div(
|
|
39
|
+
.div(this.pool.depositMultiplier)
|
|
40
40
|
.toFixed();
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
// Claimable rewards (human-readable)
|
|
43
|
+
// Claimable rewards (human-readable) - in vault_mint terms
|
|
44
44
|
get claimableAmount(): string {
|
|
45
45
|
// reward_per_token * amount / FIXED_ONE - reward_before_deposit + reward_earned - reward_claimed
|
|
46
46
|
const currentReward = this.data.amount
|
|
@@ -54,46 +54,46 @@ export class Position {
|
|
|
54
54
|
if (claimable.lten(0)) return "0";
|
|
55
55
|
|
|
56
56
|
return new Decimal(claimable.toString())
|
|
57
|
-
.div(
|
|
57
|
+
.div(this.pool.vaultMultiplier)
|
|
58
58
|
.toFixed();
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
// Already claimed rewards
|
|
61
|
+
// Already claimed rewards - in vault_mint terms
|
|
62
62
|
get claimedAmount(): string {
|
|
63
63
|
return new Decimal(this.data.rewardClaimed.toString())
|
|
64
|
-
.div(
|
|
64
|
+
.div(this.pool.vaultMultiplier)
|
|
65
65
|
.toFixed();
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
// Amount ready to withdraw (after cooldown)
|
|
68
|
+
// Amount ready to withdraw (after cooldown) - in vault_mint terms
|
|
69
69
|
get withdrawableAmount(): string {
|
|
70
70
|
if (this.data.lastUpdatedEpochIndex + 1 < this.pool.epochIndex) {
|
|
71
71
|
const total = this.data.deactivatingAmount.add(this.data.claimingAmount);
|
|
72
72
|
return new Decimal(total.toString())
|
|
73
|
-
.div(
|
|
73
|
+
.div(this.pool.vaultMultiplier)
|
|
74
74
|
.toFixed();
|
|
75
75
|
}
|
|
76
76
|
return "0";
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
// Amount in the process of unstaking (not yet withdrawable)
|
|
79
|
+
// Amount in the process of unstaking (not yet withdrawable) - in vault_mint terms
|
|
80
80
|
get unstakingAmount(): string {
|
|
81
81
|
return new Decimal(
|
|
82
82
|
this.data.deactivatingAmount.add(this.data.claimingAmount).toString()
|
|
83
83
|
)
|
|
84
|
-
.div(
|
|
84
|
+
.div(this.pool.vaultMultiplier)
|
|
85
85
|
.toFixed();
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
get deactivatingAmount(): string {
|
|
89
89
|
return new Decimal(this.data.deactivatingAmount.toString())
|
|
90
|
-
.div(
|
|
90
|
+
.div(this.pool.vaultMultiplier)
|
|
91
91
|
.toFixed();
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
get claimingAmount(): string {
|
|
95
95
|
return new Decimal(this.data.claimingAmount.toString())
|
|
96
|
-
.div(
|
|
96
|
+
.div(this.pool.vaultMultiplier)
|
|
97
97
|
.toFixed();
|
|
98
98
|
}
|
|
99
99
|
|
|
@@ -82,14 +82,41 @@ export class ElementalV2Context {
|
|
|
82
82
|
|
|
83
83
|
async loadPool(address: PublicKey): Promise<Pool> {
|
|
84
84
|
const data = await (this.program.account as any).pool.fetch(address);
|
|
85
|
-
|
|
85
|
+
const poolData = data as PoolData;
|
|
86
|
+
|
|
87
|
+
// Fetch mint decimals
|
|
88
|
+
const [depositMintInfo, vaultMintInfo] = await Promise.all([
|
|
89
|
+
this.connection.getParsedAccountInfo(poolData.depositMint),
|
|
90
|
+
this.connection.getParsedAccountInfo(poolData.vaultMint),
|
|
91
|
+
]);
|
|
92
|
+
|
|
93
|
+
const depositDecimals = (depositMintInfo.value?.data as any)?.parsed?.info?.decimals ?? 6;
|
|
94
|
+
const vaultDecimals = (vaultMintInfo.value?.data as any)?.parsed?.info?.decimals ?? 9;
|
|
95
|
+
|
|
96
|
+
return new Pool(address, poolData, depositDecimals, vaultDecimals);
|
|
86
97
|
}
|
|
87
98
|
|
|
88
99
|
async loadPools(addresses: PublicKey[]): Promise<Pool[]> {
|
|
89
100
|
const accounts = await (this.program.account as any).pool.fetchMultiple(addresses);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
101
|
+
|
|
102
|
+
// For multiple pools, we'd need to batch fetch all mints
|
|
103
|
+
// For now, load each pool individually to get correct decimals
|
|
104
|
+
const pools: Pool[] = [];
|
|
105
|
+
for (let i = 0; i < addresses.length; i++) {
|
|
106
|
+
const data = accounts[i] as PoolData | null;
|
|
107
|
+
if (data) {
|
|
108
|
+
const [depositMintInfo, vaultMintInfo] = await Promise.all([
|
|
109
|
+
this.connection.getParsedAccountInfo(data.depositMint),
|
|
110
|
+
this.connection.getParsedAccountInfo(data.vaultMint),
|
|
111
|
+
]);
|
|
112
|
+
const depositDecimals = (depositMintInfo.value?.data as any)?.parsed?.info?.decimals ?? 6;
|
|
113
|
+
const vaultDecimals = (vaultMintInfo.value?.data as any)?.parsed?.info?.decimals ?? 9;
|
|
114
|
+
pools.push(new Pool(addresses[i], data, depositDecimals, vaultDecimals));
|
|
115
|
+
} else {
|
|
116
|
+
pools.push(new Pool(addresses[i], undefined));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return pools;
|
|
93
120
|
}
|
|
94
121
|
|
|
95
122
|
async getTotalPositionsByPool(poolAddress: PublicKey): Promise<number> {
|