@elmntl/vaults-v2 1.0.5 → 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 +49 -21
- 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 +53 -21
- 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
|
|
@@ -149,41 +170,48 @@ class Pool {
|
|
|
149
170
|
return new Date(this.data.epochStartTime * 1000);
|
|
150
171
|
}
|
|
151
172
|
get nextEpochDate() {
|
|
152
|
-
|
|
173
|
+
const now = Date.now();
|
|
174
|
+
const epochStartTimeMs = this.data.epochStartTime * 1000;
|
|
175
|
+
const epochDurationMs = this.epochDuration; // already in ms
|
|
176
|
+
// Calculate how many full epochs have passed since epochStartTime
|
|
177
|
+
const elapsedMs = now - epochStartTimeMs;
|
|
178
|
+
const epochsPassed = Math.floor(elapsedMs / epochDurationMs);
|
|
179
|
+
// The next epoch boundary is (epochsPassed + 1) * epochDurationMs after epochStartTime
|
|
180
|
+
return new Date(epochStartTimeMs + (epochsPassed + 1) * epochDurationMs);
|
|
153
181
|
}
|
|
154
182
|
get secondsUntilNextEpoch() {
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
-
return Math.max(0,
|
|
183
|
+
const nextEpochMs = this.nextEpochDate.getTime();
|
|
184
|
+
const nowMs = Date.now();
|
|
185
|
+
return Math.max(0, Math.floor((nextEpochMs - nowMs) / 1000));
|
|
158
186
|
}
|
|
159
187
|
get isEpochReady() {
|
|
160
188
|
return this.secondsUntilNextEpoch === 0;
|
|
161
189
|
}
|
|
162
|
-
// Get faucet balance (for withdrawals)
|
|
190
|
+
// Get faucet balance (for withdrawals) - in vault_mint terms
|
|
163
191
|
async getFaucetBalance(connection) {
|
|
164
192
|
try {
|
|
165
193
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
166
194
|
return new decimal_js_1.default(balance.value.amount)
|
|
167
|
-
.div(
|
|
195
|
+
.div(this.vaultMultiplier)
|
|
168
196
|
.toFixed();
|
|
169
197
|
}
|
|
170
198
|
catch {
|
|
171
199
|
return "0";
|
|
172
200
|
}
|
|
173
201
|
}
|
|
174
|
-
// Get holder balance (deposits accumulate here)
|
|
202
|
+
// Get holder balance (deposits accumulate here) - in vault_mint terms
|
|
175
203
|
async getHolderBalance(connection) {
|
|
176
204
|
try {
|
|
177
205
|
const balance = await connection.getTokenAccountBalance(this.liquidityHolderAddress);
|
|
178
206
|
return new decimal_js_1.default(balance.value.amount)
|
|
179
|
-
.div(
|
|
207
|
+
.div(this.vaultMultiplier)
|
|
180
208
|
.toFixed();
|
|
181
209
|
}
|
|
182
210
|
catch {
|
|
183
211
|
return "0";
|
|
184
212
|
}
|
|
185
213
|
}
|
|
186
|
-
// Calculate pending faucet amount needed
|
|
214
|
+
// Calculate pending faucet amount needed - in vault_mint terms
|
|
187
215
|
async getPendingFaucetAmount(connection) {
|
|
188
216
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
189
217
|
const pendingTotal = this.data.pendingAmount
|
|
@@ -193,7 +221,7 @@ class Pool {
|
|
|
193
221
|
if (shortage.lten(0))
|
|
194
222
|
return "0";
|
|
195
223
|
return new decimal_js_1.default(shortage.toString())
|
|
196
|
-
.div(
|
|
224
|
+
.div(this.vaultMultiplier)
|
|
197
225
|
.toFixed();
|
|
198
226
|
}
|
|
199
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
|
|
|
@@ -173,44 +196,53 @@ export class Pool {
|
|
|
173
196
|
}
|
|
174
197
|
|
|
175
198
|
get nextEpochDate(): Date {
|
|
176
|
-
|
|
199
|
+
const now = Date.now();
|
|
200
|
+
const epochStartTimeMs = this.data.epochStartTime * 1000;
|
|
201
|
+
const epochDurationMs = this.epochDuration; // already in ms
|
|
202
|
+
|
|
203
|
+
// Calculate how many full epochs have passed since epochStartTime
|
|
204
|
+
const elapsedMs = now - epochStartTimeMs;
|
|
205
|
+
const epochsPassed = Math.floor(elapsedMs / epochDurationMs);
|
|
206
|
+
|
|
207
|
+
// The next epoch boundary is (epochsPassed + 1) * epochDurationMs after epochStartTime
|
|
208
|
+
return new Date(epochStartTimeMs + (epochsPassed + 1) * epochDurationMs);
|
|
177
209
|
}
|
|
178
210
|
|
|
179
211
|
get secondsUntilNextEpoch(): number {
|
|
180
|
-
const
|
|
181
|
-
const
|
|
182
|
-
return Math.max(0,
|
|
212
|
+
const nextEpochMs = this.nextEpochDate.getTime();
|
|
213
|
+
const nowMs = Date.now();
|
|
214
|
+
return Math.max(0, Math.floor((nextEpochMs - nowMs) / 1000));
|
|
183
215
|
}
|
|
184
216
|
|
|
185
217
|
get isEpochReady(): boolean {
|
|
186
218
|
return this.secondsUntilNextEpoch === 0;
|
|
187
219
|
}
|
|
188
220
|
|
|
189
|
-
// Get faucet balance (for withdrawals)
|
|
221
|
+
// Get faucet balance (for withdrawals) - in vault_mint terms
|
|
190
222
|
async getFaucetBalance(connection: Connection): Promise<string> {
|
|
191
223
|
try {
|
|
192
224
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
193
225
|
return new Decimal(balance.value.amount)
|
|
194
|
-
.div(
|
|
226
|
+
.div(this.vaultMultiplier)
|
|
195
227
|
.toFixed();
|
|
196
228
|
} catch {
|
|
197
229
|
return "0";
|
|
198
230
|
}
|
|
199
231
|
}
|
|
200
232
|
|
|
201
|
-
// Get holder balance (deposits accumulate here)
|
|
233
|
+
// Get holder balance (deposits accumulate here) - in vault_mint terms
|
|
202
234
|
async getHolderBalance(connection: Connection): Promise<string> {
|
|
203
235
|
try {
|
|
204
236
|
const balance = await connection.getTokenAccountBalance(this.liquidityHolderAddress);
|
|
205
237
|
return new Decimal(balance.value.amount)
|
|
206
|
-
.div(
|
|
238
|
+
.div(this.vaultMultiplier)
|
|
207
239
|
.toFixed();
|
|
208
240
|
} catch {
|
|
209
241
|
return "0";
|
|
210
242
|
}
|
|
211
243
|
}
|
|
212
244
|
|
|
213
|
-
// Calculate pending faucet amount needed
|
|
245
|
+
// Calculate pending faucet amount needed - in vault_mint terms
|
|
214
246
|
async getPendingFaucetAmount(connection: Connection): Promise<string> {
|
|
215
247
|
const balance = await connection.getTokenAccountBalance(this.liquidityFaucetAddress);
|
|
216
248
|
const pendingTotal = this.data.pendingAmount
|
|
@@ -221,7 +253,7 @@ export class Pool {
|
|
|
221
253
|
if (shortage.lten(0)) return "0";
|
|
222
254
|
|
|
223
255
|
return new Decimal(shortage.toString())
|
|
224
|
-
.div(
|
|
256
|
+
.div(this.vaultMultiplier)
|
|
225
257
|
.toFixed();
|
|
226
258
|
}
|
|
227
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> {
|