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