stable-layer-sdk 2.0.0 → 3.1.0
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/README.md +39 -24
- package/dist/cjs/index.cjs +669 -367
- package/dist/cjs/index.cjs.map +4 -4
- package/dist/esm/index.mjs +654 -369
- package/dist/esm/index.mjs.map +4 -4
- package/dist/types/index.d.ts +16 -2
- package/dist/types/interface.d.ts +29 -1
- package/dist/types/libs/constants.d.ts +31 -12
- package/dist/types/libs/constants.mainnet.d.ts +20 -0
- package/dist/types/libs/constants.testnet.d.ts +22 -0
- package/package.json +15 -8
package/dist/esm/index.mjs
CHANGED
|
@@ -1,24 +1,9 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
} from "@mysten/sui/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var STABLE_VAULT = "0x65f38160110cd6859d05f338ff54b4f462883bb6f87c667a65c0fb0e537410a7";
|
|
8
|
-
var USDC_TYPE = "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
|
|
9
|
-
var STABLE_LP_TYPE = "0xb75744fadcbfc174627567ca29645d0af8f6e6fd01b6f57c75a08cd3fb97c567::lake_usdc::LakeUSDC";
|
|
10
|
-
var YUSDB_TYPE = "0xac718b4b672d7f461fe7e86847166ff9c23cadba217397f0848a95bdea1f1051::yesusdb::YesUSDB";
|
|
11
|
-
var STABLE_LAYER_PACKAGE_ID = "0xa4a78d8d3d1df62fb81d10068142e79b0d30ad4e3f578060487e36ed9ea764da";
|
|
12
|
-
var STABLE_VAULT_FARM_PACKAGE_ID = "0x00d31ddaa73a56abcc3e2d885ac1e1d90f9ae0e38bbef2ba2923550c8250de4d";
|
|
13
|
-
var SAVING_TYPE = "0x38f61c75fa8407140294c84167dd57684580b55c3066883b48dedc344b1cde1e::susdb::SUSDB";
|
|
14
|
-
var YIELD_VAULT = "0x0a7f6325253157cd437812fea0ceee9a6b96f2ec5eac410da6df39558ff3a4d1";
|
|
15
|
-
var STABLE_REGISTRY = "0x213f4d584c0770f455bb98c94a4ee5ea9ddbc3d4ebb98a0ad6d093eb6da41642";
|
|
16
|
-
var STABLE_VAULT_FARM_ENTITY_TYPE = `0xc1025fe014b03d33b207b5afb0ba04293be87fab438c1418a26a75c2fe05c223::stable_vault_farm::StableVaultFarmEntity<${STABLE_LP_TYPE}, ${USDC_TYPE}>`;
|
|
17
|
-
var STABLE_VAULT_FARM = "0xe958b7d102b33bf3c09addb0e2cdff102ff2c93afe407ec5c2a541e8959a650c";
|
|
18
|
-
var YIELD_USDB_PACKAGE_ID = "0x3dcbf82f7e3b80ed65cee596612602a6c7e78c71fd40f6455b40ad033ed04786";
|
|
19
|
-
|
|
20
|
-
// src/index.ts
|
|
21
|
-
import { getFullnodeUrl, SuiClient } from "@mysten/sui/client";
|
|
2
|
+
import { BucketClient } from "@bucket-protocol/sdk";
|
|
3
|
+
import { bcs as bcs24 } from "@mysten/sui/bcs";
|
|
4
|
+
import { SuiGrpcClient } from "@mysten/sui/grpc";
|
|
5
|
+
import { coinWithBalance, Transaction } from "@mysten/sui/transactions";
|
|
6
|
+
import { normalizeStructTag, SUI_CLOCK_OBJECT_ID } from "@mysten/sui/utils";
|
|
22
7
|
|
|
23
8
|
// src/generated/utils/index.ts
|
|
24
9
|
import { bcs, TypeTagSerializer, BcsStruct, BcsEnum, BcsTuple } from "@mysten/sui/bcs";
|
|
@@ -141,133 +126,13 @@ function stringify(val) {
|
|
|
141
126
|
return val;
|
|
142
127
|
}
|
|
143
128
|
|
|
144
|
-
// src/generated/yield_usdb/yield_usdb.ts
|
|
145
|
-
import { bcs as bcs8 } from "@mysten/sui/bcs";
|
|
146
|
-
|
|
147
|
-
// src/generated/yield_usdb/deps/sui/object.ts
|
|
148
|
-
import { bcs as bcs2 } from "@mysten/sui/bcs";
|
|
149
|
-
var $moduleName = "0x2::object";
|
|
150
|
-
var UID = new MoveStruct({ name: `${$moduleName}::UID`, fields: {
|
|
151
|
-
id: bcs2.Address
|
|
152
|
-
} });
|
|
153
|
-
|
|
154
|
-
// src/generated/yield_usdb/deps/sui/balance.ts
|
|
155
|
-
import { bcs as bcs3 } from "@mysten/sui/bcs";
|
|
156
|
-
var $moduleName2 = "0x2::balance";
|
|
157
|
-
var Balance = new MoveStruct({ name: `${$moduleName2}::Balance`, fields: {
|
|
158
|
-
value: bcs3.u64()
|
|
159
|
-
} });
|
|
160
|
-
var Supply = new MoveStruct({ name: `${$moduleName2}::Supply`, fields: {
|
|
161
|
-
value: bcs3.u64()
|
|
162
|
-
} });
|
|
163
|
-
|
|
164
|
-
// src/generated/yield_usdb/deps/sui/coin.ts
|
|
165
|
-
var $moduleName3 = "0x2::coin";
|
|
166
|
-
var TreasuryCap = new MoveStruct({ name: `${$moduleName3}::TreasuryCap`, fields: {
|
|
167
|
-
id: UID,
|
|
168
|
-
total_supply: Supply
|
|
169
|
-
} });
|
|
170
|
-
|
|
171
|
-
// src/generated/yield_usdb/deps/bucket_v2_framework/account.ts
|
|
172
|
-
import { bcs as bcs4 } from "@mysten/sui/bcs";
|
|
173
|
-
var $moduleName4 = "bucket_v2_framework::account";
|
|
174
|
-
var Account = new MoveStruct({ name: `${$moduleName4}::Account`, fields: {
|
|
175
|
-
id: UID,
|
|
176
|
-
alias: bcs4.option(bcs4.string())
|
|
177
|
-
} });
|
|
178
|
-
|
|
179
|
-
// src/generated/yield_usdb/buffer.ts
|
|
180
|
-
import { bcs as bcs6 } from "@mysten/sui/bcs";
|
|
181
|
-
|
|
182
|
-
// src/generated/yield_usdb/deps/bucket_v2_framework/double.ts
|
|
183
|
-
import { bcs as bcs5 } from "@mysten/sui/bcs";
|
|
184
|
-
var $moduleName5 = "bucket_v2_framework::double";
|
|
185
|
-
var Double = new MoveStruct({ name: `${$moduleName5}::Double`, fields: {
|
|
186
|
-
value: bcs5.u256()
|
|
187
|
-
} });
|
|
188
|
-
|
|
189
|
-
// src/generated/yield_usdb/buffer.ts
|
|
190
|
-
var $moduleName6 = "@local-pkg/yield_usdb.move::buffer";
|
|
191
|
-
var Buffer = new MoveStruct({ name: `${$moduleName6}::Buffer`, fields: {
|
|
192
|
-
balance: Balance,
|
|
193
|
-
flow_rate: Double,
|
|
194
|
-
timestamp: bcs6.u64()
|
|
195
|
-
} });
|
|
196
|
-
|
|
197
|
-
// src/generated/yield_usdb/deps/sui/vec_set.ts
|
|
198
|
-
import { bcs as bcs7 } from "@mysten/sui/bcs";
|
|
199
|
-
var $moduleName7 = "0x2::vec_set";
|
|
200
|
-
function VecSet(...typeParameters) {
|
|
201
|
-
return new MoveStruct({ name: `${$moduleName7}::VecSet<${typeParameters[0].name}>`, fields: {
|
|
202
|
-
contents: bcs7.vector(typeParameters[0])
|
|
203
|
-
} });
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// src/generated/yield_usdb/yield_usdb.ts
|
|
207
|
-
var $moduleName8 = "@local-pkg/yield_usdb.move::yield_usdb";
|
|
208
|
-
var Created = new MoveStruct({ name: `${$moduleName8}::Created`, fields: {
|
|
209
|
-
vault_id: bcs8.Address,
|
|
210
|
-
max_lp_supply: bcs8.u64(),
|
|
211
|
-
abstract_address: bcs8.Address
|
|
212
|
-
} });
|
|
213
|
-
var MaxSupplyUpdated = new MoveStruct({ name: `${$moduleName8}::MaxSupplyUpdated`, fields: {
|
|
214
|
-
vault_id: bcs8.Address,
|
|
215
|
-
previous_max_lp_supply: bcs8.u64(),
|
|
216
|
-
current_max_lp_supply: bcs8.u64()
|
|
217
|
-
} });
|
|
218
|
-
var Minted = new MoveStruct({ name: `${$moduleName8}::Minted`, fields: {
|
|
219
|
-
vault_id: bcs8.Address,
|
|
220
|
-
usdb_amount: bcs8.u64(),
|
|
221
|
-
lp_amount: bcs8.u64()
|
|
222
|
-
} });
|
|
223
|
-
var Burned = new MoveStruct({ name: `${$moduleName8}::Burned`, fields: {
|
|
224
|
-
vault_id: bcs8.Address,
|
|
225
|
-
lp_amount: bcs8.u64(),
|
|
226
|
-
usdb_amount: bcs8.u64()
|
|
227
|
-
} });
|
|
228
|
-
var Claimed = new MoveStruct({ name: `${$moduleName8}::Claimed`, fields: {
|
|
229
|
-
vault_id: bcs8.Address,
|
|
230
|
-
reward_type: bcs8.string(),
|
|
231
|
-
reward_amount: bcs8.u64()
|
|
232
|
-
} });
|
|
233
|
-
var Collected = new MoveStruct({ name: `${$moduleName8}::Collected`, fields: {
|
|
234
|
-
vault_id: bcs8.Address,
|
|
235
|
-
usdb_amount: bcs8.u64()
|
|
236
|
-
} });
|
|
237
|
-
var YieldVault = new MoveStruct({ name: `${$moduleName8}::YieldVault`, fields: {
|
|
238
|
-
id: UID,
|
|
239
|
-
max_lp_supply: bcs8.u64(),
|
|
240
|
-
lp_treasury_cap: TreasuryCap,
|
|
241
|
-
abstract_account: Account,
|
|
242
|
-
buffer: Buffer,
|
|
243
|
-
managers: VecSet(bcs8.Address),
|
|
244
|
-
versions: VecSet(bcs8.u16())
|
|
245
|
-
} });
|
|
246
|
-
function release(options) {
|
|
247
|
-
const packageAddress = options.package ?? "@local-pkg/yield_usdb.move";
|
|
248
|
-
const argumentsTypes = [
|
|
249
|
-
`${packageAddress}::yield_usdb::YieldVault<${options.typeArguments[0]}, ${options.typeArguments[1]}>`,
|
|
250
|
-
`${packageAddress}::usdb::Treasury`,
|
|
251
|
-
`${packageAddress}::saving::SavingPool<${options.typeArguments[1]}>`,
|
|
252
|
-
"0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock"
|
|
253
|
-
];
|
|
254
|
-
const parameterNames = ["vault", "treasury", "savingPool"];
|
|
255
|
-
return (tx) => tx.moveCall({
|
|
256
|
-
package: packageAddress,
|
|
257
|
-
module: "yield_usdb",
|
|
258
|
-
function: "release",
|
|
259
|
-
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
260
|
-
typeArguments: options.typeArguments
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
|
|
264
129
|
// src/generated/stable_layer/stable_layer.ts
|
|
265
|
-
import { bcs as
|
|
130
|
+
import { bcs as bcs8 } from "@mysten/sui/bcs";
|
|
266
131
|
|
|
267
132
|
// src/generated/stable_layer/deps/std/type_name.ts
|
|
268
|
-
import { bcs as
|
|
269
|
-
var $
|
|
270
|
-
var TypeName = new MoveStruct({ name: `${$
|
|
133
|
+
import { bcs as bcs2 } from "@mysten/sui/bcs";
|
|
134
|
+
var $moduleName = "std::type_name";
|
|
135
|
+
var TypeName = new MoveStruct({ name: `${$moduleName}::TypeName`, fields: {
|
|
271
136
|
/**
|
|
272
137
|
* String representation of the type. All types are represented using their source
|
|
273
138
|
* syntax: "u8", "u64", "bool", "address", "vector", and so on for primitive types.
|
|
@@ -277,116 +142,132 @@ var TypeName = new MoveStruct({ name: `${$moduleName9}::TypeName`, fields: {
|
|
|
277
142
|
* Addresses are hex-encoded lowercase values of length ADDRESS_LENGTH (16, 20, or
|
|
278
143
|
* 32 depending on the Move platform)
|
|
279
144
|
*/
|
|
280
|
-
name:
|
|
145
|
+
name: bcs2.string()
|
|
281
146
|
} });
|
|
282
147
|
|
|
283
148
|
// src/generated/stable_layer/deps/sui/vec_map.ts
|
|
284
|
-
import { bcs as
|
|
285
|
-
var $
|
|
149
|
+
import { bcs as bcs3 } from "@mysten/sui/bcs";
|
|
150
|
+
var $moduleName2 = "0x2::vec_map";
|
|
286
151
|
function Entry(...typeParameters) {
|
|
287
|
-
return new MoveStruct({ name: `${$
|
|
152
|
+
return new MoveStruct({ name: `${$moduleName2}::Entry<${typeParameters[0].name}, ${typeParameters[1].name}>`, fields: {
|
|
288
153
|
key: typeParameters[0],
|
|
289
154
|
value: typeParameters[1]
|
|
290
155
|
} });
|
|
291
156
|
}
|
|
292
157
|
function VecMap(...typeParameters) {
|
|
293
|
-
return new MoveStruct({ name: `${$
|
|
294
|
-
contents:
|
|
158
|
+
return new MoveStruct({ name: `${$moduleName2}::VecMap<${typeParameters[0].name}, ${typeParameters[1].name}>`, fields: {
|
|
159
|
+
contents: bcs3.vector(Entry(typeParameters[0], typeParameters[1]))
|
|
295
160
|
} });
|
|
296
161
|
}
|
|
297
162
|
|
|
298
163
|
// src/generated/stable_layer/deps/bucket_v2_framework/liability.ts
|
|
299
|
-
import { bcs as
|
|
300
|
-
var $
|
|
301
|
-
var Credit = new MoveStruct({ name: `${$
|
|
302
|
-
value:
|
|
164
|
+
import { bcs as bcs4 } from "@mysten/sui/bcs";
|
|
165
|
+
var $moduleName3 = "bucket_v2_framework::liability";
|
|
166
|
+
var Credit = new MoveStruct({ name: `${$moduleName3}::Credit`, fields: {
|
|
167
|
+
value: bcs4.u64()
|
|
303
168
|
} });
|
|
304
|
-
var Debt = new MoveStruct({ name: `${$
|
|
305
|
-
value:
|
|
169
|
+
var Debt = new MoveStruct({ name: `${$moduleName3}::Debt`, fields: {
|
|
170
|
+
value: bcs4.u64()
|
|
306
171
|
} });
|
|
307
172
|
|
|
308
173
|
// src/generated/stable_layer/deps/sui/vec_set.ts
|
|
309
|
-
import { bcs as
|
|
310
|
-
var $
|
|
311
|
-
function
|
|
312
|
-
return new MoveStruct({ name: `${$
|
|
313
|
-
contents:
|
|
174
|
+
import { bcs as bcs5 } from "@mysten/sui/bcs";
|
|
175
|
+
var $moduleName4 = "0x2::vec_set";
|
|
176
|
+
function VecSet(...typeParameters) {
|
|
177
|
+
return new MoveStruct({ name: `${$moduleName4}::VecSet<${typeParameters[0].name}>`, fields: {
|
|
178
|
+
contents: bcs5.vector(typeParameters[0])
|
|
314
179
|
} });
|
|
315
180
|
}
|
|
316
181
|
|
|
317
182
|
// src/generated/stable_layer/deps/bucket_v2_framework/sheet.ts
|
|
318
|
-
var $
|
|
319
|
-
var Entity = new MoveTuple({ name: `${$
|
|
320
|
-
var Sheet = new MoveStruct({ name: `${$
|
|
183
|
+
var $moduleName5 = "bucket_v2_framework::sheet";
|
|
184
|
+
var Entity = new MoveTuple({ name: `${$moduleName5}::Entity`, fields: [TypeName] });
|
|
185
|
+
var Sheet = new MoveStruct({ name: `${$moduleName5}::Sheet`, fields: {
|
|
321
186
|
credits: VecMap(Entity, Credit),
|
|
322
187
|
debts: VecMap(Entity, Debt),
|
|
323
|
-
blacklist:
|
|
188
|
+
blacklist: VecSet(Entity)
|
|
324
189
|
} });
|
|
325
190
|
|
|
326
191
|
// src/generated/stable_layer/deps/sui/object.ts
|
|
327
|
-
import { bcs as
|
|
328
|
-
var $
|
|
329
|
-
var
|
|
330
|
-
id:
|
|
192
|
+
import { bcs as bcs6 } from "@mysten/sui/bcs";
|
|
193
|
+
var $moduleName6 = "0x2::object";
|
|
194
|
+
var UID = new MoveStruct({ name: `${$moduleName6}::UID`, fields: {
|
|
195
|
+
id: bcs6.Address
|
|
331
196
|
} });
|
|
332
197
|
|
|
333
198
|
// src/generated/stable_layer/deps/sui/balance.ts
|
|
334
|
-
import { bcs as
|
|
335
|
-
var $
|
|
336
|
-
var
|
|
337
|
-
value:
|
|
199
|
+
import { bcs as bcs7 } from "@mysten/sui/bcs";
|
|
200
|
+
var $moduleName7 = "0x2::balance";
|
|
201
|
+
var Supply = new MoveStruct({ name: `${$moduleName7}::Supply`, fields: {
|
|
202
|
+
value: bcs7.u64()
|
|
338
203
|
} });
|
|
339
204
|
|
|
340
205
|
// src/generated/stable_layer/deps/sui/coin.ts
|
|
341
|
-
var $
|
|
342
|
-
var
|
|
343
|
-
id:
|
|
344
|
-
total_supply:
|
|
206
|
+
var $moduleName8 = "0x2::coin";
|
|
207
|
+
var TreasuryCap = new MoveStruct({ name: `${$moduleName8}::TreasuryCap`, fields: {
|
|
208
|
+
id: UID,
|
|
209
|
+
total_supply: Supply
|
|
345
210
|
} });
|
|
346
211
|
|
|
347
212
|
// src/generated/stable_layer/stable_layer.ts
|
|
348
|
-
var $
|
|
349
|
-
var NewStable = new MoveStruct({ name: `${$
|
|
350
|
-
u_type:
|
|
351
|
-
stable_type:
|
|
352
|
-
factory_id:
|
|
353
|
-
factory_cap_id:
|
|
354
|
-
} });
|
|
355
|
-
var Mint = new MoveStruct({ name: `${$moduleName17}::Mint`, fields: {
|
|
356
|
-
u_type: bcs15.string(),
|
|
357
|
-
stable_type: bcs15.string(),
|
|
358
|
-
mint_amount: bcs15.u64(),
|
|
359
|
-
farm_type: bcs15.string()
|
|
360
|
-
} });
|
|
361
|
-
var Burn = new MoveStruct({ name: `${$moduleName17}::Burn`, fields: {
|
|
362
|
-
u_type: bcs15.string(),
|
|
363
|
-
stable_type: bcs15.string(),
|
|
364
|
-
burn_amount: bcs15.u64(),
|
|
365
|
-
farm_types: bcs15.vector(Entity),
|
|
366
|
-
repayment_amounts: bcs15.vector(bcs15.u64())
|
|
367
|
-
} });
|
|
368
|
-
var StableFactoryEntity = new MoveStruct({ name: `${$moduleName17}::StableFactoryEntity`, fields: {
|
|
369
|
-
dummy_field: bcs15.bool()
|
|
370
|
-
} });
|
|
371
|
-
var StableRegistry = new MoveStruct({ name: `${$moduleName17}::StableRegistry`, fields: {
|
|
372
|
-
id: UID2,
|
|
373
|
-
versions: VecSet2(bcs15.u16()),
|
|
374
|
-
total_supply: bcs15.u64()
|
|
213
|
+
var $moduleName9 = "@local-pkg/stable_factory.move::stable_layer";
|
|
214
|
+
var NewStable = new MoveStruct({ name: `${$moduleName9}::NewStable`, fields: {
|
|
215
|
+
u_type: bcs8.string(),
|
|
216
|
+
stable_type: bcs8.string(),
|
|
217
|
+
factory_id: bcs8.Address,
|
|
218
|
+
factory_cap_id: bcs8.Address
|
|
375
219
|
} });
|
|
376
|
-
var
|
|
377
|
-
|
|
220
|
+
var Mint = new MoveStruct({ name: `${$moduleName9}::Mint`, fields: {
|
|
221
|
+
u_type: bcs8.string(),
|
|
222
|
+
stable_type: bcs8.string(),
|
|
223
|
+
mint_amount: bcs8.u64(),
|
|
224
|
+
farm_type: bcs8.string()
|
|
378
225
|
} });
|
|
379
|
-
var
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
226
|
+
var Burn = new MoveStruct({ name: `${$moduleName9}::Burn`, fields: {
|
|
227
|
+
u_type: bcs8.string(),
|
|
228
|
+
stable_type: bcs8.string(),
|
|
229
|
+
burn_amount: bcs8.u64(),
|
|
230
|
+
farm_types: bcs8.vector(Entity),
|
|
231
|
+
repayment_amounts: bcs8.vector(bcs8.u64())
|
|
232
|
+
} });
|
|
233
|
+
var StableFactoryEntity = new MoveStruct({ name: `${$moduleName9}::StableFactoryEntity`, fields: {
|
|
234
|
+
dummy_field: bcs8.bool()
|
|
235
|
+
} });
|
|
236
|
+
var StableRegistry = new MoveStruct({ name: `${$moduleName9}::StableRegistry`, fields: {
|
|
237
|
+
id: UID,
|
|
238
|
+
versions: VecSet(bcs8.u16()),
|
|
239
|
+
total_supply: bcs8.u64()
|
|
240
|
+
} });
|
|
241
|
+
var AdminCap = new MoveStruct({ name: `${$moduleName9}::AdminCap`, fields: {
|
|
242
|
+
id: UID
|
|
243
|
+
} });
|
|
244
|
+
var StableFactory = new MoveStruct({ name: `${$moduleName9}::StableFactory`, fields: {
|
|
245
|
+
id: UID,
|
|
246
|
+
treasury_cap: TreasuryCap,
|
|
247
|
+
max_supply: bcs8.u64(),
|
|
383
248
|
sheet: Sheet,
|
|
384
|
-
managers:
|
|
249
|
+
managers: VecSet(bcs8.Address)
|
|
385
250
|
} });
|
|
386
|
-
var FactoryCap = new MoveStruct({ name: `${$
|
|
387
|
-
id:
|
|
388
|
-
factory_id:
|
|
251
|
+
var FactoryCap = new MoveStruct({ name: `${$moduleName9}::FactoryCap`, fields: {
|
|
252
|
+
id: UID,
|
|
253
|
+
factory_id: bcs8.Address
|
|
389
254
|
} });
|
|
255
|
+
function setMaxSupply(options) {
|
|
256
|
+
const packageAddress = options.package ?? "@local-pkg/stable_factory.move";
|
|
257
|
+
const argumentsTypes = [
|
|
258
|
+
`${packageAddress}::stable_layer::StableRegistry`,
|
|
259
|
+
`${packageAddress}::stable_layer::FactoryCap<${options.typeArguments[0]}, ${options.typeArguments[1]}>`,
|
|
260
|
+
"u64"
|
|
261
|
+
];
|
|
262
|
+
const parameterNames = ["registry", "FactoryCap", "maxSupply"];
|
|
263
|
+
return (tx) => tx.moveCall({
|
|
264
|
+
package: packageAddress,
|
|
265
|
+
module: "stable_layer",
|
|
266
|
+
function: "set_max_supply",
|
|
267
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
268
|
+
typeArguments: options.typeArguments
|
|
269
|
+
});
|
|
270
|
+
}
|
|
390
271
|
function mint(options) {
|
|
391
272
|
const packageAddress = options.package ?? "@local-pkg/stable_factory.move";
|
|
392
273
|
const argumentsTypes = [
|
|
@@ -434,19 +315,19 @@ function fulfillBurn(options) {
|
|
|
434
315
|
}
|
|
435
316
|
|
|
436
317
|
// src/generated/stable_vault_farm/stable_vault_farm.ts
|
|
437
|
-
import { bcs as
|
|
318
|
+
import { bcs as bcs16 } from "@mysten/sui/bcs";
|
|
438
319
|
|
|
439
320
|
// src/generated/stable_vault_farm/deps/sui/object.ts
|
|
440
|
-
import { bcs as
|
|
441
|
-
var $
|
|
442
|
-
var
|
|
443
|
-
id:
|
|
321
|
+
import { bcs as bcs9 } from "@mysten/sui/bcs";
|
|
322
|
+
var $moduleName10 = "0x2::object";
|
|
323
|
+
var UID2 = new MoveStruct({ name: `${$moduleName10}::UID`, fields: {
|
|
324
|
+
id: bcs9.Address
|
|
444
325
|
} });
|
|
445
326
|
|
|
446
327
|
// src/generated/stable_vault_farm/deps/std/type_name.ts
|
|
447
|
-
import { bcs as
|
|
448
|
-
var $
|
|
449
|
-
var TypeName2 = new MoveStruct({ name: `${$
|
|
328
|
+
import { bcs as bcs10 } from "@mysten/sui/bcs";
|
|
329
|
+
var $moduleName11 = "std::type_name";
|
|
330
|
+
var TypeName2 = new MoveStruct({ name: `${$moduleName11}::TypeName`, fields: {
|
|
450
331
|
/**
|
|
451
332
|
* String representation of the type. All types are represented using their source
|
|
452
333
|
* syntax: "u8", "u64", "bool", "address", "vector", and so on for primitive types.
|
|
@@ -456,90 +337,90 @@ var TypeName2 = new MoveStruct({ name: `${$moduleName19}::TypeName`, fields: {
|
|
|
456
337
|
* Addresses are hex-encoded lowercase values of length ADDRESS_LENGTH (16, 20, or
|
|
457
338
|
* 32 depending on the Move platform)
|
|
458
339
|
*/
|
|
459
|
-
name:
|
|
340
|
+
name: bcs10.string()
|
|
460
341
|
} });
|
|
461
342
|
|
|
462
343
|
// src/generated/stable_vault_farm/deps/sui/vec_map.ts
|
|
463
|
-
import { bcs as
|
|
464
|
-
var $
|
|
344
|
+
import { bcs as bcs11 } from "@mysten/sui/bcs";
|
|
345
|
+
var $moduleName12 = "0x2::vec_map";
|
|
465
346
|
function Entry2(...typeParameters) {
|
|
466
|
-
return new MoveStruct({ name: `${$
|
|
347
|
+
return new MoveStruct({ name: `${$moduleName12}::Entry<${typeParameters[0].name}, ${typeParameters[1].name}>`, fields: {
|
|
467
348
|
key: typeParameters[0],
|
|
468
349
|
value: typeParameters[1]
|
|
469
350
|
} });
|
|
470
351
|
}
|
|
471
352
|
function VecMap2(...typeParameters) {
|
|
472
|
-
return new MoveStruct({ name: `${$
|
|
473
|
-
contents:
|
|
353
|
+
return new MoveStruct({ name: `${$moduleName12}::VecMap<${typeParameters[0].name}, ${typeParameters[1].name}>`, fields: {
|
|
354
|
+
contents: bcs11.vector(Entry2(typeParameters[0], typeParameters[1]))
|
|
474
355
|
} });
|
|
475
356
|
}
|
|
476
357
|
|
|
477
358
|
// src/generated/stable_vault_farm/deps/bucket_v2_framework/liability.ts
|
|
478
|
-
import { bcs as
|
|
479
|
-
var $
|
|
480
|
-
var Credit2 = new MoveStruct({ name: `${$
|
|
481
|
-
value:
|
|
359
|
+
import { bcs as bcs12 } from "@mysten/sui/bcs";
|
|
360
|
+
var $moduleName13 = "bucket_v2_framework::liability";
|
|
361
|
+
var Credit2 = new MoveStruct({ name: `${$moduleName13}::Credit`, fields: {
|
|
362
|
+
value: bcs12.u64()
|
|
482
363
|
} });
|
|
483
|
-
var Debt2 = new MoveStruct({ name: `${$
|
|
484
|
-
value:
|
|
364
|
+
var Debt2 = new MoveStruct({ name: `${$moduleName13}::Debt`, fields: {
|
|
365
|
+
value: bcs12.u64()
|
|
485
366
|
} });
|
|
486
367
|
|
|
487
368
|
// src/generated/stable_vault_farm/deps/sui/vec_set.ts
|
|
488
|
-
import { bcs as
|
|
489
|
-
var $
|
|
490
|
-
function
|
|
491
|
-
return new MoveStruct({ name: `${$
|
|
492
|
-
contents:
|
|
369
|
+
import { bcs as bcs13 } from "@mysten/sui/bcs";
|
|
370
|
+
var $moduleName14 = "0x2::vec_set";
|
|
371
|
+
function VecSet2(...typeParameters) {
|
|
372
|
+
return new MoveStruct({ name: `${$moduleName14}::VecSet<${typeParameters[0].name}>`, fields: {
|
|
373
|
+
contents: bcs13.vector(typeParameters[0])
|
|
493
374
|
} });
|
|
494
375
|
}
|
|
495
376
|
|
|
496
377
|
// src/generated/stable_vault_farm/deps/bucket_v2_framework/sheet.ts
|
|
497
|
-
var $
|
|
498
|
-
var Entity2 = new MoveTuple({ name: `${$
|
|
499
|
-
var Sheet2 = new MoveStruct({ name: `${$
|
|
378
|
+
var $moduleName15 = "bucket_v2_framework::sheet";
|
|
379
|
+
var Entity2 = new MoveTuple({ name: `${$moduleName15}::Entity`, fields: [TypeName2] });
|
|
380
|
+
var Sheet2 = new MoveStruct({ name: `${$moduleName15}::Sheet`, fields: {
|
|
500
381
|
credits: VecMap2(Entity2, Credit2),
|
|
501
382
|
debts: VecMap2(Entity2, Debt2),
|
|
502
|
-
blacklist:
|
|
383
|
+
blacklist: VecSet2(Entity2)
|
|
503
384
|
} });
|
|
504
385
|
|
|
505
386
|
// src/generated/stable_vault_farm/deps/sui/table.ts
|
|
506
|
-
import { bcs as
|
|
507
|
-
var $
|
|
508
|
-
var Table = new MoveStruct({ name: `${$
|
|
387
|
+
import { bcs as bcs14 } from "@mysten/sui/bcs";
|
|
388
|
+
var $moduleName16 = "0x2::table";
|
|
389
|
+
var Table = new MoveStruct({ name: `${$moduleName16}::Table`, fields: {
|
|
509
390
|
/** the ID of this table */
|
|
510
|
-
id:
|
|
391
|
+
id: UID2,
|
|
511
392
|
/** the number of key-value pairs in the table */
|
|
512
|
-
size:
|
|
393
|
+
size: bcs14.u64()
|
|
513
394
|
} });
|
|
514
395
|
|
|
515
396
|
// src/generated/stable_vault_farm/deps/sui/balance.ts
|
|
516
|
-
import { bcs as
|
|
517
|
-
var $
|
|
518
|
-
var
|
|
519
|
-
value:
|
|
397
|
+
import { bcs as bcs15 } from "@mysten/sui/bcs";
|
|
398
|
+
var $moduleName17 = "0x2::balance";
|
|
399
|
+
var Balance = new MoveStruct({ name: `${$moduleName17}::Balance`, fields: {
|
|
400
|
+
value: bcs15.u64()
|
|
520
401
|
} });
|
|
521
402
|
|
|
522
403
|
// src/generated/stable_vault_farm/stable_vault_farm.ts
|
|
523
|
-
var $
|
|
524
|
-
var Claim = new MoveStruct({ name: `${$
|
|
525
|
-
reward_type:
|
|
526
|
-
amount:
|
|
527
|
-
claimer:
|
|
404
|
+
var $moduleName18 = "@local-pkg/stable_vault_farm.move::stable_vault_farm";
|
|
405
|
+
var Claim = new MoveStruct({ name: `${$moduleName18}::Claim`, fields: {
|
|
406
|
+
reward_type: bcs16.string(),
|
|
407
|
+
amount: bcs16.u64(),
|
|
408
|
+
claimer: bcs16.Address
|
|
528
409
|
} });
|
|
529
|
-
var StableVaultFarmEntity = new MoveStruct({ name: `${$
|
|
530
|
-
dummy_field:
|
|
410
|
+
var StableVaultFarmEntity = new MoveStruct({ name: `${$moduleName18}::StableVaultFarmEntity`, fields: {
|
|
411
|
+
dummy_field: bcs16.bool()
|
|
531
412
|
} });
|
|
532
|
-
var StableVaultFarmWitness = new MoveStruct({ name: `${$
|
|
533
|
-
dummy_field:
|
|
413
|
+
var StableVaultFarmWitness = new MoveStruct({ name: `${$moduleName18}::StableVaultFarmWitness`, fields: {
|
|
414
|
+
dummy_field: bcs16.bool()
|
|
534
415
|
} });
|
|
535
|
-
var StableVaultFarm = new MoveStruct({ name: `${$
|
|
536
|
-
id:
|
|
416
|
+
var StableVaultFarm = new MoveStruct({ name: `${$moduleName18}::StableVaultFarm`, fields: {
|
|
417
|
+
id: UID2,
|
|
537
418
|
sheet: Sheet2,
|
|
538
419
|
yield_table: Table,
|
|
539
|
-
u_surplus:
|
|
420
|
+
u_surplus: Balance
|
|
540
421
|
} });
|
|
541
|
-
var AdminCap2 = new MoveStruct({ name: `${$
|
|
542
|
-
id:
|
|
422
|
+
var AdminCap2 = new MoveStruct({ name: `${$moduleName18}::AdminCap`, fields: {
|
|
423
|
+
id: UID2
|
|
543
424
|
} });
|
|
544
425
|
function receive(options) {
|
|
545
426
|
const packageAddress = options.package ?? "@local-pkg/stable_vault_farm.move";
|
|
@@ -606,13 +487,248 @@ function claim(options) {
|
|
|
606
487
|
});
|
|
607
488
|
}
|
|
608
489
|
|
|
490
|
+
// src/generated/yield_usdb/yield_usdb.ts
|
|
491
|
+
import { bcs as bcs23 } from "@mysten/sui/bcs";
|
|
492
|
+
|
|
493
|
+
// src/generated/yield_usdb/deps/sui/object.ts
|
|
494
|
+
import { bcs as bcs17 } from "@mysten/sui/bcs";
|
|
495
|
+
var $moduleName19 = "0x2::object";
|
|
496
|
+
var UID3 = new MoveStruct({ name: `${$moduleName19}::UID`, fields: {
|
|
497
|
+
id: bcs17.Address
|
|
498
|
+
} });
|
|
499
|
+
|
|
500
|
+
// src/generated/yield_usdb/deps/sui/balance.ts
|
|
501
|
+
import { bcs as bcs18 } from "@mysten/sui/bcs";
|
|
502
|
+
var $moduleName20 = "0x2::balance";
|
|
503
|
+
var Balance2 = new MoveStruct({ name: `${$moduleName20}::Balance`, fields: {
|
|
504
|
+
value: bcs18.u64()
|
|
505
|
+
} });
|
|
506
|
+
var Supply2 = new MoveStruct({ name: `${$moduleName20}::Supply`, fields: {
|
|
507
|
+
value: bcs18.u64()
|
|
508
|
+
} });
|
|
509
|
+
|
|
510
|
+
// src/generated/yield_usdb/deps/sui/coin.ts
|
|
511
|
+
var $moduleName21 = "0x2::coin";
|
|
512
|
+
var TreasuryCap2 = new MoveStruct({ name: `${$moduleName21}::TreasuryCap`, fields: {
|
|
513
|
+
id: UID3,
|
|
514
|
+
total_supply: Supply2
|
|
515
|
+
} });
|
|
516
|
+
|
|
517
|
+
// src/generated/yield_usdb/deps/bucket_v2_framework/account.ts
|
|
518
|
+
import { bcs as bcs19 } from "@mysten/sui/bcs";
|
|
519
|
+
var $moduleName22 = "bucket_v2_framework::account";
|
|
520
|
+
var Account = new MoveStruct({ name: `${$moduleName22}::Account`, fields: {
|
|
521
|
+
id: UID3,
|
|
522
|
+
alias: bcs19.option(bcs19.string())
|
|
523
|
+
} });
|
|
524
|
+
|
|
525
|
+
// src/generated/yield_usdb/buffer.ts
|
|
526
|
+
import { bcs as bcs21 } from "@mysten/sui/bcs";
|
|
527
|
+
|
|
528
|
+
// src/generated/yield_usdb/deps/bucket_v2_framework/double.ts
|
|
529
|
+
import { bcs as bcs20 } from "@mysten/sui/bcs";
|
|
530
|
+
var $moduleName23 = "bucket_v2_framework::double";
|
|
531
|
+
var Double = new MoveStruct({ name: `${$moduleName23}::Double`, fields: {
|
|
532
|
+
value: bcs20.u256()
|
|
533
|
+
} });
|
|
534
|
+
|
|
535
|
+
// src/generated/yield_usdb/buffer.ts
|
|
536
|
+
var $moduleName24 = "@local-pkg/yield_usdb.move::buffer";
|
|
537
|
+
var Buffer = new MoveStruct({ name: `${$moduleName24}::Buffer`, fields: {
|
|
538
|
+
balance: Balance2,
|
|
539
|
+
flow_rate: Double,
|
|
540
|
+
timestamp: bcs21.u64()
|
|
541
|
+
} });
|
|
542
|
+
|
|
543
|
+
// src/generated/yield_usdb/deps/sui/vec_set.ts
|
|
544
|
+
import { bcs as bcs22 } from "@mysten/sui/bcs";
|
|
545
|
+
var $moduleName25 = "0x2::vec_set";
|
|
546
|
+
function VecSet3(...typeParameters) {
|
|
547
|
+
return new MoveStruct({ name: `${$moduleName25}::VecSet<${typeParameters[0].name}>`, fields: {
|
|
548
|
+
contents: bcs22.vector(typeParameters[0])
|
|
549
|
+
} });
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
// src/generated/yield_usdb/yield_usdb.ts
|
|
553
|
+
var $moduleName26 = "@local-pkg/yield_usdb.move::yield_usdb";
|
|
554
|
+
var Created = new MoveStruct({ name: `${$moduleName26}::Created`, fields: {
|
|
555
|
+
vault_id: bcs23.Address,
|
|
556
|
+
max_lp_supply: bcs23.u64(),
|
|
557
|
+
abstract_address: bcs23.Address
|
|
558
|
+
} });
|
|
559
|
+
var MaxSupplyUpdated = new MoveStruct({ name: `${$moduleName26}::MaxSupplyUpdated`, fields: {
|
|
560
|
+
vault_id: bcs23.Address,
|
|
561
|
+
previous_max_lp_supply: bcs23.u64(),
|
|
562
|
+
current_max_lp_supply: bcs23.u64()
|
|
563
|
+
} });
|
|
564
|
+
var Minted = new MoveStruct({ name: `${$moduleName26}::Minted`, fields: {
|
|
565
|
+
vault_id: bcs23.Address,
|
|
566
|
+
usdb_amount: bcs23.u64(),
|
|
567
|
+
lp_amount: bcs23.u64()
|
|
568
|
+
} });
|
|
569
|
+
var Burned = new MoveStruct({ name: `${$moduleName26}::Burned`, fields: {
|
|
570
|
+
vault_id: bcs23.Address,
|
|
571
|
+
lp_amount: bcs23.u64(),
|
|
572
|
+
usdb_amount: bcs23.u64()
|
|
573
|
+
} });
|
|
574
|
+
var Claimed = new MoveStruct({ name: `${$moduleName26}::Claimed`, fields: {
|
|
575
|
+
vault_id: bcs23.Address,
|
|
576
|
+
reward_type: bcs23.string(),
|
|
577
|
+
reward_amount: bcs23.u64()
|
|
578
|
+
} });
|
|
579
|
+
var Collected = new MoveStruct({ name: `${$moduleName26}::Collected`, fields: {
|
|
580
|
+
vault_id: bcs23.Address,
|
|
581
|
+
usdb_amount: bcs23.u64()
|
|
582
|
+
} });
|
|
583
|
+
var YieldVault = new MoveStruct({ name: `${$moduleName26}::YieldVault`, fields: {
|
|
584
|
+
id: UID3,
|
|
585
|
+
max_lp_supply: bcs23.u64(),
|
|
586
|
+
lp_treasury_cap: TreasuryCap2,
|
|
587
|
+
abstract_account: Account,
|
|
588
|
+
buffer: Buffer,
|
|
589
|
+
managers: VecSet3(bcs23.Address),
|
|
590
|
+
versions: VecSet3(bcs23.u16())
|
|
591
|
+
} });
|
|
592
|
+
function release(options) {
|
|
593
|
+
const packageAddress = options.package ?? "@local-pkg/yield_usdb.move";
|
|
594
|
+
const argumentsTypes = [
|
|
595
|
+
`${packageAddress}::yield_usdb::YieldVault<${options.typeArguments[0]}, ${options.typeArguments[1]}>`,
|
|
596
|
+
`${packageAddress}::usdb::Treasury`,
|
|
597
|
+
`${packageAddress}::saving::SavingPool<${options.typeArguments[1]}>`,
|
|
598
|
+
"0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock"
|
|
599
|
+
];
|
|
600
|
+
const parameterNames = ["vault", "treasury", "savingPool"];
|
|
601
|
+
return (tx) => tx.moveCall({
|
|
602
|
+
package: packageAddress,
|
|
603
|
+
module: "yield_usdb",
|
|
604
|
+
function: "release",
|
|
605
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
606
|
+
typeArguments: options.typeArguments
|
|
607
|
+
});
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
// src/libs/constants.mainnet.ts
|
|
611
|
+
var STABLE_REGISTRY_MAINNET_ALT = "0x213f4d584c0770f455bb98c94a4ee5ea9ddbc3d4ebb98a0ad6d093eb6da41642";
|
|
612
|
+
var STABLE_LAYER_PACKAGE_MAINNET_ALT = "0x41e25d09e20cf3bc43fe321e51ef178fac419ae47b783a7161982158fc9f17d6";
|
|
613
|
+
var MAINNET = {
|
|
614
|
+
STABLE_VAULT: "0x65f38160110cd6859d05f338ff54b4f462883bb6f87c667a65c0fb0e537410a7",
|
|
615
|
+
USDC_TYPE: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
|
|
616
|
+
STABLE_LP_TYPE: "0xb75744fadcbfc174627567ca29645d0af8f6e6fd01b6f57c75a08cd3fb97c567::lake_usdc::LakeUSDC",
|
|
617
|
+
YUSDB_TYPE: "0xac718b4b672d7f461fe7e86847166ff9c23cadba217397f0848a95bdea1f1051::yesusdb::YesUSDB",
|
|
618
|
+
STABLE_LAYER_PACKAGE_ID: "0xa4a78d8d3d1df62fb81d10068142e79b0d30ad4e3f578060487e36ed9ea764da",
|
|
619
|
+
STABLE_REGISTRY_MAINNET_ALT,
|
|
620
|
+
STABLE_LAYER_PACKAGE_MAINNET_ALT,
|
|
621
|
+
STABLE_VAULT_FARM_PACKAGE_ID: "0x00d31ddaa73a56abcc3e2d885ac1e1d90f9ae0e38bbef2ba2923550c8250de4d",
|
|
622
|
+
SAVING_TYPE: "0x38f61c75fa8407140294c84167dd57684580b55c3066883b48dedc344b1cde1e::susdb::SUSDB",
|
|
623
|
+
YIELD_VAULT: "0x0a7f6325253157cd437812fea0ceee9a6b96f2ec5eac410da6df39558ff3a4d1",
|
|
624
|
+
STABLE_REGISTRY: "0x213f4d584c0770f455bb98c94a4ee5ea9ddbc3d4ebb98a0ad6d093eb6da41642",
|
|
625
|
+
STABLE_VAULT_FARM: "0xe958b7d102b33bf3c09addb0e2cdff102ff2c93afe407ec5c2a541e8959a650c",
|
|
626
|
+
YIELD_USDB_PACKAGE_ID: "0x3dcbf82f7e3b80ed65cee596612602a6c7e78c71fd40f6455b40ad033ed04786"
|
|
627
|
+
};
|
|
628
|
+
var STABLE_VAULT_FARM_ENTITY_TYPE_MAINNET = `0xc1025fe014b03d33b207b5afb0ba04293be87fab438c1418a26a75c2fe05c223::stable_vault_farm::StableVaultFarmEntity<${MAINNET.STABLE_LP_TYPE}, ${MAINNET.USDC_TYPE}>`;
|
|
629
|
+
|
|
630
|
+
// src/libs/constants.testnet.ts
|
|
631
|
+
var TESTNET_USDC = "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC";
|
|
632
|
+
var MOCK_FARM_PACKAGE_ID_TESTNET = "0x3a55ec8fabe5f3e982908ed3a7c3065f26e83ab226eb8d3450177dbaac25878b";
|
|
633
|
+
var MOCK_FARM_ORIGINAL_PACKAGE_ID_TESTNET = "0x673d4118c17de717b0b90c326f8f52f87b5fff8678f513edd2ae575a55175954";
|
|
634
|
+
var MOCK_FARM_REGISTRY_TESTNET = "0xc3e8d2e33e36f6a4b5c199fe2dde3ba6dc29e7af8dd045c86e62d7c21f374d02";
|
|
635
|
+
var MOCK_USDB_TYPE_TESTNET = `${MOCK_FARM_ORIGINAL_PACKAGE_ID_TESTNET}::usdb::USDB`;
|
|
636
|
+
var TESTNET = {
|
|
637
|
+
STABLE_LAYER_PACKAGE_ID: "0x9c248c80c3a757167780f17e0c00a4d293280be7276f1b81a153f6e47d2567c9",
|
|
638
|
+
STABLE_REGISTRY: "0xfa0fd96e0fbc07dc6bdc23cc1ac5b4c0056f4b469b9db0a70b6ea01c14a4c7b5",
|
|
639
|
+
USDC_TYPE: TESTNET_USDC,
|
|
640
|
+
STABLE_VAULT_FARM_ENTITY_TYPE: `${MOCK_FARM_ORIGINAL_PACKAGE_ID_TESTNET}::farm::MockFarmEntity`,
|
|
641
|
+
MOCK_FARM_PACKAGE_ID: MOCK_FARM_PACKAGE_ID_TESTNET,
|
|
642
|
+
MOCK_FARM_REGISTRY: MOCK_FARM_REGISTRY_TESTNET,
|
|
643
|
+
MOCK_USDB_TYPE: MOCK_USDB_TYPE_TESTNET,
|
|
644
|
+
STABLE_VAULT: "",
|
|
645
|
+
STABLE_LP_TYPE: "",
|
|
646
|
+
YUSDB_TYPE: "",
|
|
647
|
+
STABLE_VAULT_FARM_PACKAGE_ID: "",
|
|
648
|
+
SAVING_TYPE: "",
|
|
649
|
+
YIELD_VAULT: "",
|
|
650
|
+
STABLE_VAULT_FARM: "",
|
|
651
|
+
YIELD_USDB_PACKAGE_ID: ""
|
|
652
|
+
};
|
|
653
|
+
var STABLE_VAULT_FARM_ENTITY_TYPE_TESTNET = TESTNET.STABLE_VAULT_FARM_ENTITY_TYPE;
|
|
654
|
+
|
|
655
|
+
// src/libs/constants.ts
|
|
656
|
+
function getMainnetConstants() {
|
|
657
|
+
return {
|
|
658
|
+
...MAINNET,
|
|
659
|
+
STABLE_VAULT_FARM_ENTITY_TYPE: STABLE_VAULT_FARM_ENTITY_TYPE_MAINNET,
|
|
660
|
+
MOCK_FARM_PACKAGE_ID: "",
|
|
661
|
+
MOCK_FARM_REGISTRY: "",
|
|
662
|
+
MOCK_USDB_TYPE: ""
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
function getTestnetConstants() {
|
|
666
|
+
return {
|
|
667
|
+
...TESTNET,
|
|
668
|
+
STABLE_VAULT_FARM_ENTITY_TYPE: STABLE_VAULT_FARM_ENTITY_TYPE_TESTNET
|
|
669
|
+
};
|
|
670
|
+
}
|
|
671
|
+
function getConstants(network) {
|
|
672
|
+
return network === "testnet" ? getTestnetConstants() : getMainnetConstants();
|
|
673
|
+
}
|
|
674
|
+
var STABLE_VAULT = MAINNET.STABLE_VAULT;
|
|
675
|
+
var USDC_TYPE = MAINNET.USDC_TYPE;
|
|
676
|
+
var STABLE_LP_TYPE = MAINNET.STABLE_LP_TYPE;
|
|
677
|
+
var YUSDB_TYPE = MAINNET.YUSDB_TYPE;
|
|
678
|
+
var STABLE_LAYER_PACKAGE_ID = MAINNET.STABLE_LAYER_PACKAGE_ID;
|
|
679
|
+
var STABLE_VAULT_FARM_PACKAGE_ID = MAINNET.STABLE_VAULT_FARM_PACKAGE_ID;
|
|
680
|
+
var SAVING_TYPE = MAINNET.SAVING_TYPE;
|
|
681
|
+
var YIELD_VAULT = MAINNET.YIELD_VAULT;
|
|
682
|
+
var STABLE_REGISTRY = MAINNET.STABLE_REGISTRY;
|
|
683
|
+
var STABLE_VAULT_FARM = MAINNET.STABLE_VAULT_FARM;
|
|
684
|
+
var YIELD_USDB_PACKAGE_ID = MAINNET.YIELD_USDB_PACKAGE_ID;
|
|
685
|
+
var STABLE_VAULT_FARM_ENTITY_TYPE = STABLE_VAULT_FARM_ENTITY_TYPE_MAINNET;
|
|
686
|
+
|
|
609
687
|
// src/index.ts
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
688
|
+
var StableLayerClient = class _StableLayerClient {
|
|
689
|
+
static getConstants(network) {
|
|
690
|
+
return getConstants(network);
|
|
691
|
+
}
|
|
692
|
+
getConstants() {
|
|
693
|
+
return getConstants(this.network);
|
|
694
|
+
}
|
|
695
|
+
static async initialize(config) {
|
|
696
|
+
const defaultBaseUrl = `https://fullnode.${config.network}.sui.io:443`;
|
|
697
|
+
const baseUrl = config.baseUrl ?? process.env.SUI_GRPC_URL ?? defaultBaseUrl;
|
|
698
|
+
const suiClient = config.suiClient ?? new SuiGrpcClient({
|
|
699
|
+
network: config.network,
|
|
700
|
+
baseUrl
|
|
701
|
+
});
|
|
702
|
+
const bucketClient = await BucketClient.initialize({
|
|
703
|
+
network: config.network,
|
|
704
|
+
suiClient,
|
|
705
|
+
configObjectId: config.configObjectId,
|
|
706
|
+
configOverrides: config.configOverrides
|
|
707
|
+
});
|
|
708
|
+
return new _StableLayerClient(config, bucketClient, suiClient);
|
|
709
|
+
}
|
|
710
|
+
constructor(config, bucketClient, suiClient) {
|
|
711
|
+
this.bucketClient = bucketClient;
|
|
712
|
+
this.suiClient = suiClient;
|
|
615
713
|
this.sender = config.sender;
|
|
714
|
+
this.network = config.network;
|
|
715
|
+
this.mockFarmRegistryId = config.mockFarmRegistryId;
|
|
716
|
+
this.mockFarmPackageId = config.mockFarmPackageId;
|
|
717
|
+
this.mockUsdbCoinType = config.mockUsdbCoinType;
|
|
718
|
+
}
|
|
719
|
+
getMockFarmPackageId() {
|
|
720
|
+
const c = this.getConstants();
|
|
721
|
+
const id = (this.mockFarmPackageId ?? c.MOCK_FARM_PACKAGE_ID)?.trim();
|
|
722
|
+
if (!id) {
|
|
723
|
+
throw new Error(
|
|
724
|
+
"StableLayerClient: missing mock farm package (set mockFarmPackageId or MOCK_FARM_PACKAGE_ID in testnet constants)."
|
|
725
|
+
);
|
|
726
|
+
}
|
|
727
|
+
return id;
|
|
728
|
+
}
|
|
729
|
+
getMockFarmEntityType() {
|
|
730
|
+
const c = this.getConstants();
|
|
731
|
+
return c.STABLE_VAULT_FARM_ENTITY_TYPE || `${this.getMockFarmPackageId()}::farm::MockFarmEntity`;
|
|
616
732
|
}
|
|
617
733
|
async buildMintTx({
|
|
618
734
|
tx,
|
|
@@ -622,42 +738,69 @@ var StableLayerClient = class {
|
|
|
622
738
|
autoTransfer = true
|
|
623
739
|
}) {
|
|
624
740
|
tx.setSender(sender ?? this.sender);
|
|
741
|
+
const constants = this.getConstants();
|
|
742
|
+
if (this.network === "testnet") {
|
|
743
|
+
const farmRegistry = this.mockFarmRegistryId ?? constants.MOCK_FARM_REGISTRY;
|
|
744
|
+
const pkg = this.getMockFarmPackageId();
|
|
745
|
+
if (!farmRegistry) {
|
|
746
|
+
throw new Error(
|
|
747
|
+
"buildMintTx (testnet): missing mock farm registry (mockFarmRegistryId or MOCK_FARM_REGISTRY)."
|
|
748
|
+
);
|
|
749
|
+
}
|
|
750
|
+
const stableTag = normalizeStructTag(stableCoinType);
|
|
751
|
+
const usdTag = normalizeStructTag(constants.USDC_TYPE);
|
|
752
|
+
const farmEntityTag = normalizeStructTag(this.getMockFarmEntityType());
|
|
753
|
+
const [stableCoin2, loan2] = mint({
|
|
754
|
+
package: constants.STABLE_LAYER_PACKAGE_ID,
|
|
755
|
+
arguments: {
|
|
756
|
+
registry: constants.STABLE_REGISTRY,
|
|
757
|
+
uCoin: usdcCoin
|
|
758
|
+
},
|
|
759
|
+
typeArguments: [stableTag, usdTag, farmEntityTag]
|
|
760
|
+
})(tx);
|
|
761
|
+
tx.moveCall({
|
|
762
|
+
target: `${pkg}::farm::receive`,
|
|
763
|
+
typeArguments: [stableTag, usdTag],
|
|
764
|
+
arguments: [tx.object(farmRegistry), loan2, tx.object(SUI_CLOCK_OBJECT_ID)]
|
|
765
|
+
});
|
|
766
|
+
if (autoTransfer) {
|
|
767
|
+
tx.transferObjects([stableCoin2], sender ?? this.sender);
|
|
768
|
+
return;
|
|
769
|
+
}
|
|
770
|
+
return stableCoin2;
|
|
771
|
+
}
|
|
625
772
|
const [stableCoin, loan] = mint({
|
|
626
|
-
package: STABLE_LAYER_PACKAGE_ID,
|
|
773
|
+
package: constants.STABLE_LAYER_PACKAGE_ID,
|
|
627
774
|
arguments: {
|
|
628
|
-
registry: STABLE_REGISTRY,
|
|
775
|
+
registry: constants.STABLE_REGISTRY,
|
|
629
776
|
uCoin: usdcCoin
|
|
630
777
|
},
|
|
631
|
-
typeArguments: [
|
|
632
|
-
stableCoinType,
|
|
633
|
-
USDC_TYPE,
|
|
634
|
-
STABLE_VAULT_FARM_ENTITY_TYPE
|
|
635
|
-
]
|
|
778
|
+
typeArguments: [stableCoinType, constants.USDC_TYPE, constants.STABLE_VAULT_FARM_ENTITY_TYPE]
|
|
636
779
|
})(tx);
|
|
637
780
|
const [uPrice] = await this.bucketClient.aggregatePrices(tx, {
|
|
638
|
-
coinTypes: [USDC_TYPE]
|
|
781
|
+
coinTypes: [constants.USDC_TYPE]
|
|
639
782
|
});
|
|
640
783
|
const depositResponse = receive({
|
|
641
|
-
package: STABLE_VAULT_FARM_PACKAGE_ID,
|
|
784
|
+
package: constants.STABLE_VAULT_FARM_PACKAGE_ID,
|
|
642
785
|
typeArguments: [
|
|
643
|
-
STABLE_LP_TYPE,
|
|
644
|
-
USDC_TYPE,
|
|
786
|
+
constants.STABLE_LP_TYPE,
|
|
787
|
+
constants.USDC_TYPE,
|
|
645
788
|
stableCoinType,
|
|
646
|
-
YUSDB_TYPE,
|
|
647
|
-
SAVING_TYPE
|
|
789
|
+
constants.YUSDB_TYPE,
|
|
790
|
+
constants.SAVING_TYPE
|
|
648
791
|
],
|
|
649
792
|
arguments: {
|
|
650
|
-
farm: STABLE_VAULT_FARM,
|
|
793
|
+
farm: constants.STABLE_VAULT_FARM,
|
|
651
794
|
loan,
|
|
652
|
-
stableVault: STABLE_VAULT,
|
|
653
|
-
usdbTreasury: this.bucketClient.treasury(tx),
|
|
654
|
-
psmPool: this.getBucketPSMPool(tx),
|
|
655
|
-
savingPool: this.getBucketSavingPool(tx),
|
|
656
|
-
yieldVault: YIELD_VAULT,
|
|
795
|
+
stableVault: constants.STABLE_VAULT,
|
|
796
|
+
usdbTreasury: await Promise.resolve(this.bucketClient.treasury(tx)),
|
|
797
|
+
psmPool: await this.getBucketPSMPool(tx),
|
|
798
|
+
savingPool: await this.getBucketSavingPool(tx),
|
|
799
|
+
yieldVault: constants.YIELD_VAULT,
|
|
657
800
|
uPrice
|
|
658
801
|
}
|
|
659
802
|
})(tx);
|
|
660
|
-
this.checkResponse({ tx, response: depositResponse, type: "deposit" });
|
|
803
|
+
await this.checkResponse({ tx, response: depositResponse, type: "deposit" });
|
|
661
804
|
if (autoTransfer) {
|
|
662
805
|
tx.transferObjects([stableCoin], sender ?? this.sender);
|
|
663
806
|
return;
|
|
@@ -682,50 +825,88 @@ var StableLayerClient = class {
|
|
|
682
825
|
(await this.suiClient.getBalance({
|
|
683
826
|
owner: sender ?? this.sender,
|
|
684
827
|
coinType: stableCoinType
|
|
685
|
-
})).
|
|
828
|
+
})).balance.balance
|
|
686
829
|
) : amount,
|
|
687
830
|
type: stableCoinType
|
|
688
831
|
});
|
|
689
|
-
this.
|
|
832
|
+
const constants = this.getConstants();
|
|
833
|
+
if (this.network === "testnet") {
|
|
834
|
+
const farmRegistry = this.mockFarmRegistryId ?? constants.MOCK_FARM_REGISTRY;
|
|
835
|
+
const pkg = this.getMockFarmPackageId();
|
|
836
|
+
if (!farmRegistry) {
|
|
837
|
+
throw new Error(
|
|
838
|
+
"buildBurnTx (testnet): missing mock farm registry (mockFarmRegistryId or MOCK_FARM_REGISTRY)."
|
|
839
|
+
);
|
|
840
|
+
}
|
|
841
|
+
const stableTag = normalizeStructTag(stableCoinType);
|
|
842
|
+
const usdTag = normalizeStructTag(constants.USDC_TYPE);
|
|
843
|
+
const burnRequest2 = requestBurn({
|
|
844
|
+
package: constants.STABLE_LAYER_PACKAGE_ID,
|
|
845
|
+
arguments: {
|
|
846
|
+
registry: constants.STABLE_REGISTRY,
|
|
847
|
+
stableCoin: btcUsdCoin
|
|
848
|
+
},
|
|
849
|
+
typeArguments: [stableTag, usdTag]
|
|
850
|
+
})(tx);
|
|
851
|
+
tx.moveCall({
|
|
852
|
+
target: `${pkg}::farm::pay`,
|
|
853
|
+
typeArguments: [stableTag, usdTag],
|
|
854
|
+
arguments: [tx.object(farmRegistry), tx.object(SUI_CLOCK_OBJECT_ID), burnRequest2]
|
|
855
|
+
});
|
|
856
|
+
const usdcCoin2 = fulfillBurn({
|
|
857
|
+
package: constants.STABLE_LAYER_PACKAGE_ID,
|
|
858
|
+
arguments: {
|
|
859
|
+
registry: constants.STABLE_REGISTRY,
|
|
860
|
+
burnRequest: burnRequest2
|
|
861
|
+
},
|
|
862
|
+
typeArguments: [stableTag, usdTag]
|
|
863
|
+
})(tx);
|
|
864
|
+
if (autoTransfer) {
|
|
865
|
+
tx.transferObjects([usdcCoin2], sender ?? this.sender);
|
|
866
|
+
return;
|
|
867
|
+
}
|
|
868
|
+
return usdcCoin2;
|
|
869
|
+
}
|
|
870
|
+
await this.releaseRewards(tx);
|
|
690
871
|
const burnRequest = requestBurn({
|
|
691
|
-
package: STABLE_LAYER_PACKAGE_ID,
|
|
872
|
+
package: constants.STABLE_LAYER_PACKAGE_ID,
|
|
692
873
|
arguments: {
|
|
693
|
-
registry: STABLE_REGISTRY,
|
|
874
|
+
registry: constants.STABLE_REGISTRY,
|
|
694
875
|
stableCoin: btcUsdCoin
|
|
695
876
|
},
|
|
696
|
-
typeArguments: [stableCoinType, USDC_TYPE]
|
|
877
|
+
typeArguments: [stableCoinType, constants.USDC_TYPE]
|
|
697
878
|
})(tx);
|
|
698
879
|
const [uPrice] = await this.bucketClient.aggregatePrices(tx, {
|
|
699
|
-
coinTypes: [USDC_TYPE]
|
|
880
|
+
coinTypes: [constants.USDC_TYPE]
|
|
700
881
|
});
|
|
701
882
|
const withdrawResponse = pay({
|
|
702
|
-
package: STABLE_VAULT_FARM_PACKAGE_ID,
|
|
883
|
+
package: constants.STABLE_VAULT_FARM_PACKAGE_ID,
|
|
703
884
|
arguments: {
|
|
704
|
-
farm: STABLE_VAULT_FARM,
|
|
885
|
+
farm: constants.STABLE_VAULT_FARM,
|
|
705
886
|
request: burnRequest,
|
|
706
|
-
stableVault: STABLE_VAULT,
|
|
707
|
-
usdbTreasury: this.bucketClient.treasury(tx),
|
|
708
|
-
psmPool: this.getBucketPSMPool(tx),
|
|
709
|
-
savingPool: this.getBucketSavingPool(tx),
|
|
710
|
-
yieldVault: YIELD_VAULT,
|
|
887
|
+
stableVault: constants.STABLE_VAULT,
|
|
888
|
+
usdbTreasury: await Promise.resolve(this.bucketClient.treasury(tx)),
|
|
889
|
+
psmPool: await this.getBucketPSMPool(tx),
|
|
890
|
+
savingPool: await this.getBucketSavingPool(tx),
|
|
891
|
+
yieldVault: constants.YIELD_VAULT,
|
|
711
892
|
uPrice
|
|
712
893
|
},
|
|
713
894
|
typeArguments: [
|
|
714
|
-
STABLE_LP_TYPE,
|
|
715
|
-
USDC_TYPE,
|
|
895
|
+
constants.STABLE_LP_TYPE,
|
|
896
|
+
constants.USDC_TYPE,
|
|
716
897
|
stableCoinType,
|
|
717
|
-
YUSDB_TYPE,
|
|
718
|
-
SAVING_TYPE
|
|
898
|
+
constants.YUSDB_TYPE,
|
|
899
|
+
constants.SAVING_TYPE
|
|
719
900
|
]
|
|
720
901
|
})(tx);
|
|
721
|
-
this.checkResponse({ tx, response: withdrawResponse, type: "withdraw" });
|
|
902
|
+
await this.checkResponse({ tx, response: withdrawResponse, type: "withdraw" });
|
|
722
903
|
const usdcCoin = fulfillBurn({
|
|
723
|
-
package: STABLE_LAYER_PACKAGE_ID,
|
|
904
|
+
package: constants.STABLE_LAYER_PACKAGE_ID,
|
|
724
905
|
arguments: {
|
|
725
|
-
registry: STABLE_REGISTRY,
|
|
906
|
+
registry: constants.STABLE_REGISTRY,
|
|
726
907
|
burnRequest
|
|
727
908
|
},
|
|
728
|
-
typeArguments: [stableCoinType, USDC_TYPE]
|
|
909
|
+
typeArguments: [stableCoinType, constants.USDC_TYPE]
|
|
729
910
|
})(tx);
|
|
730
911
|
if (autoTransfer) {
|
|
731
912
|
tx.transferObjects([usdcCoin], sender ?? this.sender);
|
|
@@ -741,26 +922,53 @@ var StableLayerClient = class {
|
|
|
741
922
|
autoTransfer = true
|
|
742
923
|
}) {
|
|
743
924
|
tx.setSender(sender ?? this.sender);
|
|
744
|
-
this.
|
|
925
|
+
if (this.network === "testnet") {
|
|
926
|
+
const constants2 = this.getConstants();
|
|
927
|
+
const farmRegistry = this.mockFarmRegistryId ?? constants2.MOCK_FARM_REGISTRY;
|
|
928
|
+
const pkg = this.getMockFarmPackageId();
|
|
929
|
+
if (!farmRegistry) {
|
|
930
|
+
throw new Error(
|
|
931
|
+
"buildClaimTx (testnet): missing mock farm registry (mockFarmRegistryId or MOCK_FARM_REGISTRY)."
|
|
932
|
+
);
|
|
933
|
+
}
|
|
934
|
+
const stableTag = normalizeStructTag(stableCoinType);
|
|
935
|
+
const usdTag = normalizeStructTag(constants2.USDC_TYPE);
|
|
936
|
+
const rewardCoin2 = tx.moveCall({
|
|
937
|
+
target: `${pkg}::farm::claim`,
|
|
938
|
+
typeArguments: [stableTag, usdTag],
|
|
939
|
+
arguments: [
|
|
940
|
+
tx.object(farmRegistry),
|
|
941
|
+
tx.object(constants2.STABLE_REGISTRY),
|
|
942
|
+
tx.object(SUI_CLOCK_OBJECT_ID)
|
|
943
|
+
]
|
|
944
|
+
});
|
|
945
|
+
if (autoTransfer) {
|
|
946
|
+
tx.transferObjects([rewardCoin2], sender ?? this.sender);
|
|
947
|
+
return;
|
|
948
|
+
}
|
|
949
|
+
return rewardCoin2;
|
|
950
|
+
}
|
|
951
|
+
await this.releaseRewards(tx);
|
|
952
|
+
const constants = this.getConstants();
|
|
745
953
|
const [rewardCoin, withdrawResponse] = claim({
|
|
746
|
-
package: STABLE_VAULT_FARM_PACKAGE_ID,
|
|
954
|
+
package: constants.STABLE_VAULT_FARM_PACKAGE_ID,
|
|
747
955
|
arguments: {
|
|
748
|
-
stableRegistry: STABLE_REGISTRY,
|
|
749
|
-
farm: STABLE_VAULT_FARM,
|
|
750
|
-
stableVault: STABLE_VAULT,
|
|
751
|
-
usdbTreasury: this.bucketClient.treasury(tx),
|
|
752
|
-
savingPool: this.getBucketSavingPool(tx),
|
|
753
|
-
yieldVault: YIELD_VAULT
|
|
956
|
+
stableRegistry: constants.STABLE_REGISTRY,
|
|
957
|
+
farm: constants.STABLE_VAULT_FARM,
|
|
958
|
+
stableVault: constants.STABLE_VAULT,
|
|
959
|
+
usdbTreasury: await Promise.resolve(this.bucketClient.treasury(tx)),
|
|
960
|
+
savingPool: await this.getBucketSavingPool(tx),
|
|
961
|
+
yieldVault: constants.YIELD_VAULT
|
|
754
962
|
},
|
|
755
963
|
typeArguments: [
|
|
756
|
-
STABLE_LP_TYPE,
|
|
757
|
-
USDC_TYPE,
|
|
964
|
+
constants.STABLE_LP_TYPE,
|
|
965
|
+
constants.USDC_TYPE,
|
|
758
966
|
stableCoinType,
|
|
759
|
-
YUSDB_TYPE,
|
|
760
|
-
SAVING_TYPE
|
|
967
|
+
constants.YUSDB_TYPE,
|
|
968
|
+
constants.SAVING_TYPE
|
|
761
969
|
]
|
|
762
970
|
})(tx);
|
|
763
|
-
this.checkResponse({ tx, response: withdrawResponse, type: "withdraw" });
|
|
971
|
+
await this.checkResponse({ tx, response: withdrawResponse, type: "withdraw" });
|
|
764
972
|
if (autoTransfer) {
|
|
765
973
|
tx.transferObjects([rewardCoin], sender ?? this.sender);
|
|
766
974
|
return;
|
|
@@ -768,75 +976,152 @@ var StableLayerClient = class {
|
|
|
768
976
|
return rewardCoin;
|
|
769
977
|
}
|
|
770
978
|
}
|
|
979
|
+
async getClaimRewardUsdbAmount({
|
|
980
|
+
stableCoinType,
|
|
981
|
+
sender
|
|
982
|
+
}) {
|
|
983
|
+
const tx = new Transaction();
|
|
984
|
+
await this.buildClaimTx({
|
|
985
|
+
tx,
|
|
986
|
+
stableCoinType,
|
|
987
|
+
sender,
|
|
988
|
+
autoTransfer: true
|
|
989
|
+
});
|
|
990
|
+
const usdbType = this.network === "testnet" ? normalizeStructTag(this.mockUsdbCoinType ?? (this.getConstants().MOCK_USDB_TYPE || `${this.getMockFarmPackageId()}::usdb::USDB`)) : normalizeStructTag(await this.bucketClient.getUsdbCoinType());
|
|
991
|
+
const res = await this.suiClient.simulateTransaction({
|
|
992
|
+
transaction: tx,
|
|
993
|
+
include: { balanceChanges: true }
|
|
994
|
+
});
|
|
995
|
+
if (res.$kind !== "Transaction") {
|
|
996
|
+
throw new Error(
|
|
997
|
+
"StableLayerClient.getClaimRewardUsdbAmount: dry-run did not succeed; cannot infer claimable USDB."
|
|
998
|
+
);
|
|
999
|
+
}
|
|
1000
|
+
const changes = res.Transaction?.balanceChanges ?? [];
|
|
1001
|
+
const addr = sender.toLowerCase();
|
|
1002
|
+
let sum = 0n;
|
|
1003
|
+
for (const bc of changes) {
|
|
1004
|
+
if (bc.address.toLowerCase() !== addr) continue;
|
|
1005
|
+
if (normalizeStructTag(bc.coinType) !== usdbType) continue;
|
|
1006
|
+
const amt = BigInt(bc.amount);
|
|
1007
|
+
if (amt > 0n) sum += amt;
|
|
1008
|
+
}
|
|
1009
|
+
return sum;
|
|
1010
|
+
}
|
|
1011
|
+
buildSetMaxSupplyTx({
|
|
1012
|
+
tx,
|
|
1013
|
+
registry,
|
|
1014
|
+
factoryCapId,
|
|
1015
|
+
maxSupply,
|
|
1016
|
+
stableCoinType,
|
|
1017
|
+
usdCoinType,
|
|
1018
|
+
sender
|
|
1019
|
+
}) {
|
|
1020
|
+
tx.setSender(sender ?? this.sender);
|
|
1021
|
+
const constants = this.getConstants();
|
|
1022
|
+
setMaxSupply({
|
|
1023
|
+
package: constants.STABLE_LAYER_PACKAGE_ID,
|
|
1024
|
+
arguments: {
|
|
1025
|
+
registry,
|
|
1026
|
+
FactoryCap: factoryCapId,
|
|
1027
|
+
maxSupply
|
|
1028
|
+
},
|
|
1029
|
+
typeArguments: [stableCoinType, usdCoinType]
|
|
1030
|
+
})(tx);
|
|
1031
|
+
}
|
|
771
1032
|
async getTotalSupply() {
|
|
1033
|
+
const constants = this.getConstants();
|
|
772
1034
|
const result = await this.suiClient.getObject({
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
showContent: true
|
|
776
|
-
}
|
|
1035
|
+
objectId: constants.STABLE_REGISTRY,
|
|
1036
|
+
include: { json: true }
|
|
777
1037
|
});
|
|
778
|
-
const
|
|
779
|
-
return
|
|
1038
|
+
const json = result.object?.json;
|
|
1039
|
+
return json?.total_supply ?? void 0;
|
|
780
1040
|
}
|
|
781
1041
|
async getTotalSupplyByCoinType(stableCoinType) {
|
|
782
|
-
const
|
|
783
|
-
|
|
1042
|
+
const TypeName3 = bcs24.struct("TypeName", { name: bcs24.string() });
|
|
1043
|
+
const nameBcs = TypeName3.serialize({ name: stableCoinType.slice(2) }).toBytes();
|
|
1044
|
+
const constants = this.getConstants();
|
|
1045
|
+
const result = await this.suiClient.core.getDynamicObjectField({
|
|
1046
|
+
parentId: constants.STABLE_REGISTRY,
|
|
784
1047
|
name: {
|
|
785
1048
|
type: "0x1::type_name::TypeName",
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
}
|
|
1049
|
+
bcs: nameBcs
|
|
1050
|
+
},
|
|
1051
|
+
include: { json: true }
|
|
790
1052
|
});
|
|
791
|
-
const
|
|
792
|
-
return
|
|
1053
|
+
const json = result.object?.json;
|
|
1054
|
+
return json?.treasury_cap?.total_supply?.value ?? void 0;
|
|
793
1055
|
}
|
|
794
|
-
getBucketSavingPool(tx) {
|
|
795
|
-
return
|
|
796
|
-
lpType: SAVING_TYPE
|
|
797
|
-
|
|
1056
|
+
async getBucketSavingPool(tx) {
|
|
1057
|
+
return Promise.resolve(
|
|
1058
|
+
this.bucketClient.savingPoolObj(tx, { lpType: this.getConstants().SAVING_TYPE })
|
|
1059
|
+
);
|
|
798
1060
|
}
|
|
799
|
-
getBucketPSMPool(tx) {
|
|
800
|
-
return
|
|
801
|
-
coinType: USDC_TYPE
|
|
802
|
-
|
|
1061
|
+
async getBucketPSMPool(tx) {
|
|
1062
|
+
return Promise.resolve(
|
|
1063
|
+
this.bucketClient.psmPoolObj(tx, { coinType: this.getConstants().USDC_TYPE })
|
|
1064
|
+
);
|
|
803
1065
|
}
|
|
804
|
-
checkResponse({
|
|
1066
|
+
async checkResponse({
|
|
805
1067
|
tx,
|
|
806
1068
|
response,
|
|
807
1069
|
type
|
|
808
1070
|
}) {
|
|
1071
|
+
const lpType = this.getConstants().SAVING_TYPE;
|
|
809
1072
|
if (type === "deposit") {
|
|
810
|
-
return
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
1073
|
+
return Promise.resolve(
|
|
1074
|
+
this.bucketClient.checkDepositResponse(tx, {
|
|
1075
|
+
lpType,
|
|
1076
|
+
depositResponse: response
|
|
1077
|
+
})
|
|
1078
|
+
);
|
|
814
1079
|
} else {
|
|
815
|
-
return
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
1080
|
+
return Promise.resolve(
|
|
1081
|
+
this.bucketClient.checkWithdrawResponse(tx, {
|
|
1082
|
+
lpType,
|
|
1083
|
+
withdrawResponse: response
|
|
1084
|
+
})
|
|
1085
|
+
);
|
|
819
1086
|
}
|
|
820
1087
|
}
|
|
821
|
-
releaseRewards(tx) {
|
|
1088
|
+
async releaseRewards(tx) {
|
|
1089
|
+
const constants = this.getConstants();
|
|
822
1090
|
const depositResponse = release({
|
|
823
|
-
package: YIELD_USDB_PACKAGE_ID,
|
|
1091
|
+
package: constants.YIELD_USDB_PACKAGE_ID,
|
|
824
1092
|
arguments: {
|
|
825
|
-
vault: YIELD_VAULT,
|
|
826
|
-
treasury: this.bucketClient.treasury(tx),
|
|
827
|
-
savingPool:
|
|
828
|
-
lpType: SAVING_TYPE
|
|
829
|
-
|
|
1093
|
+
vault: constants.YIELD_VAULT,
|
|
1094
|
+
treasury: await Promise.resolve(this.bucketClient.treasury(tx)),
|
|
1095
|
+
savingPool: await Promise.resolve(
|
|
1096
|
+
this.bucketClient.savingPoolObj(tx, { lpType: constants.SAVING_TYPE })
|
|
1097
|
+
)
|
|
830
1098
|
},
|
|
831
|
-
typeArguments: [YUSDB_TYPE, SAVING_TYPE]
|
|
1099
|
+
typeArguments: [constants.YUSDB_TYPE, constants.SAVING_TYPE]
|
|
832
1100
|
})(tx);
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
1101
|
+
await Promise.resolve(
|
|
1102
|
+
this.bucketClient.checkDepositResponse(tx, {
|
|
1103
|
+
depositResponse,
|
|
1104
|
+
lpType: constants.SAVING_TYPE
|
|
1105
|
+
})
|
|
1106
|
+
);
|
|
837
1107
|
}
|
|
838
1108
|
};
|
|
839
1109
|
export {
|
|
840
|
-
|
|
1110
|
+
SAVING_TYPE,
|
|
1111
|
+
STABLE_LAYER_PACKAGE_ID,
|
|
1112
|
+
STABLE_LAYER_PACKAGE_MAINNET_ALT,
|
|
1113
|
+
STABLE_LP_TYPE,
|
|
1114
|
+
STABLE_REGISTRY,
|
|
1115
|
+
STABLE_REGISTRY_MAINNET_ALT,
|
|
1116
|
+
STABLE_VAULT,
|
|
1117
|
+
STABLE_VAULT_FARM,
|
|
1118
|
+
STABLE_VAULT_FARM_ENTITY_TYPE,
|
|
1119
|
+
STABLE_VAULT_FARM_PACKAGE_ID,
|
|
1120
|
+
StableLayerClient,
|
|
1121
|
+
USDC_TYPE,
|
|
1122
|
+
YIELD_USDB_PACKAGE_ID,
|
|
1123
|
+
YIELD_VAULT,
|
|
1124
|
+
YUSDB_TYPE,
|
|
1125
|
+
getConstants
|
|
841
1126
|
};
|
|
842
1127
|
//# sourceMappingURL=index.mjs.map
|