@decibeltrade/sdk 0.3.0 → 0.4.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.
Files changed (138) hide show
  1. package/dist/abi/json/netna.json +795 -280
  2. package/dist/abi/json/testnet.json +734 -507
  3. package/dist/admin.d.ts +43 -5
  4. package/dist/admin.d.ts.map +1 -1
  5. package/dist/admin.js +114 -11
  6. package/dist/base.d.ts +1 -6
  7. package/dist/base.d.ts.map +1 -1
  8. package/dist/base.js +13 -23
  9. package/dist/constants.d.ts +12 -4
  10. package/dist/constants.d.ts.map +1 -1
  11. package/dist/constants.js +40 -7
  12. package/dist/fee-pay.d.ts +3 -3
  13. package/dist/fee-pay.d.ts.map +1 -1
  14. package/dist/fee-pay.js +26 -49
  15. package/dist/gas/gas-price-manager.d.ts.map +1 -1
  16. package/dist/gas/gas-price-manager.js +3 -1
  17. package/dist/read/account-overview/account-overview.reader.d.ts +2 -0
  18. package/dist/read/account-overview/account-overview.reader.d.ts.map +1 -1
  19. package/dist/read/account-overview/account-overview.types.d.ts +4 -0
  20. package/dist/read/account-overview/account-overview.types.d.ts.map +1 -1
  21. package/dist/read/account-overview/account-overview.types.js +5 -0
  22. package/dist/read/action-utils.d.ts +12 -0
  23. package/dist/read/action-utils.d.ts.map +1 -0
  24. package/dist/read/action-utils.js +13 -0
  25. package/dist/read/base-reader.d.ts +1 -0
  26. package/dist/read/base-reader.d.ts.map +1 -1
  27. package/dist/read/base-reader.js +15 -0
  28. package/dist/read/base-reader.test.d.ts +2 -0
  29. package/dist/read/base-reader.test.d.ts.map +1 -0
  30. package/dist/read/base-reader.test.js +68 -0
  31. package/dist/read/global-points-stats/global-points-stats.reader.d.ts +9 -0
  32. package/dist/read/global-points-stats/global-points-stats.reader.d.ts.map +1 -0
  33. package/dist/read/global-points-stats/global-points-stats.reader.js +12 -0
  34. package/dist/read/global-points-stats/global-points-stats.types.d.ts +9 -0
  35. package/dist/read/global-points-stats/global-points-stats.types.d.ts.map +1 -0
  36. package/dist/read/global-points-stats/global-points-stats.types.js +5 -0
  37. package/dist/read/index.d.ts +15 -0
  38. package/dist/read/index.d.ts.map +1 -1
  39. package/dist/read/index.js +27 -3
  40. package/dist/read/market-depth/market-depth.reader.d.ts +1 -17
  41. package/dist/read/market-depth/market-depth.reader.d.ts.map +1 -1
  42. package/dist/read/market-depth/market-depth.reader.js +18 -20
  43. package/dist/read/market-depth/market-depth.types.d.ts +5 -2
  44. package/dist/read/market-depth/market-depth.types.d.ts.map +1 -1
  45. package/dist/read/market-depth/market-depth.types.js +4 -1
  46. package/dist/read/market-trades/market-trades.reader.d.ts +0 -1
  47. package/dist/read/market-trades/market-trades.reader.d.ts.map +1 -1
  48. package/dist/read/market-trades/market-trades.types.d.ts +0 -3
  49. package/dist/read/market-trades/market-trades.types.d.ts.map +1 -1
  50. package/dist/read/market-trades/market-trades.types.js +0 -1
  51. package/dist/read/points-leaderboard/points-leaderboard.reader.d.ts +21 -0
  52. package/dist/read/points-leaderboard/points-leaderboard.reader.d.ts.map +1 -0
  53. package/dist/read/points-leaderboard/points-leaderboard.reader.js +23 -0
  54. package/dist/read/points-leaderboard/points-leaderboard.types.d.ts +30 -0
  55. package/dist/read/points-leaderboard/points-leaderboard.types.d.ts.map +1 -0
  56. package/dist/read/points-leaderboard/points-leaderboard.types.js +11 -0
  57. package/dist/read/portfolio-chart/portfolio-chart.types.d.ts +1 -1
  58. package/dist/read/portfolio-chart/portfolio-chart.types.d.ts.map +1 -1
  59. package/dist/read/referrals/referrals.reader.d.ts +98 -0
  60. package/dist/read/referrals/referrals.reader.d.ts.map +1 -0
  61. package/dist/read/referrals/referrals.reader.js +92 -0
  62. package/dist/read/referrals/referrals.types.d.ts +136 -0
  63. package/dist/read/referrals/referrals.types.d.ts.map +1 -0
  64. package/dist/read/referrals/referrals.types.js +85 -0
  65. package/dist/read/streaks/streaks.reader.d.ts +19 -0
  66. package/dist/read/streaks/streaks.reader.d.ts.map +1 -0
  67. package/dist/read/streaks/streaks.reader.js +19 -0
  68. package/dist/read/streaks/streaks.types.d.ts +17 -0
  69. package/dist/read/streaks/streaks.types.d.ts.map +1 -0
  70. package/dist/read/streaks/streaks.types.js +10 -0
  71. package/dist/read/tier/tier.reader.d.ts +21 -0
  72. package/dist/read/tier/tier.reader.d.ts.map +1 -0
  73. package/dist/read/tier/tier.reader.js +19 -0
  74. package/dist/read/tier/tier.types.d.ts +25 -0
  75. package/dist/read/tier/tier.types.d.ts.map +1 -0
  76. package/dist/read/tier/tier.types.js +13 -0
  77. package/dist/read/trading-amps/trading-amps.reader.d.ts +18 -0
  78. package/dist/read/trading-amps/trading-amps.reader.d.ts.map +1 -0
  79. package/dist/read/trading-amps/trading-amps.reader.js +23 -0
  80. package/dist/read/trading-amps/trading-amps.types.d.ts +25 -0
  81. package/dist/read/trading-amps/trading-amps.types.d.ts.map +1 -0
  82. package/dist/read/trading-amps/trading-amps.types.js +10 -0
  83. package/dist/read/trading-points/trading-points.reader.d.ts +18 -0
  84. package/dist/read/trading-points/trading-points.reader.d.ts.map +1 -0
  85. package/dist/read/trading-points/trading-points.reader.js +19 -0
  86. package/dist/read/trading-points/trading-points.types.d.ts +21 -0
  87. package/dist/read/trading-points/trading-points.types.d.ts.map +1 -0
  88. package/dist/read/trading-points/trading-points.types.js +10 -0
  89. package/dist/read/types.d.ts +7 -0
  90. package/dist/read/types.d.ts.map +1 -1
  91. package/dist/read/types.js +7 -0
  92. package/dist/read/user-funding-history/user-funding-history.reader.d.ts +1 -2
  93. package/dist/read/user-funding-history/user-funding-history.reader.d.ts.map +1 -1
  94. package/dist/read/user-funding-history/user-funding-history.types.d.ts +8 -4
  95. package/dist/read/user-funding-history/user-funding-history.types.d.ts.map +1 -1
  96. package/dist/read/user-funding-history/user-funding-history.types.js +1 -2
  97. package/dist/read/user-notifications/user-notifications.types.d.ts +1 -2
  98. package/dist/read/user-notifications/user-notifications.types.d.ts.map +1 -1
  99. package/dist/read/user-open-orders/user-open-orders.reader.d.ts +1 -2
  100. package/dist/read/user-open-orders/user-open-orders.reader.d.ts.map +1 -1
  101. package/dist/read/user-open-orders/user-open-orders.reader.js +1 -1
  102. package/dist/read/user-open-orders/user-open-orders.types.d.ts +3 -6
  103. package/dist/read/user-open-orders/user-open-orders.types.d.ts.map +1 -1
  104. package/dist/read/user-open-orders/user-open-orders.types.js +1 -2
  105. package/dist/read/user-order-history/user-order-history.reader.d.ts +1 -2
  106. package/dist/read/user-order-history/user-order-history.reader.d.ts.map +1 -1
  107. package/dist/read/user-order-history/user-order-history.reader.js +1 -1
  108. package/dist/read/user-order-history/user-order-history.types.d.ts +3 -6
  109. package/dist/read/user-order-history/user-order-history.types.d.ts.map +1 -1
  110. package/dist/read/user-order-history/user-order-history.types.js +1 -2
  111. package/dist/read/user-positions/user-positions.reader.d.ts +1 -0
  112. package/dist/read/user-positions/user-positions.reader.d.ts.map +1 -1
  113. package/dist/read/user-positions/user-positions.types.d.ts +220 -10
  114. package/dist/read/user-positions/user-positions.types.d.ts.map +1 -1
  115. package/dist/read/user-positions/user-positions.types.js +1 -0
  116. package/dist/read/user-trade-history/user-trade-history.reader.d.ts +5 -2
  117. package/dist/read/user-trade-history/user-trade-history.reader.d.ts.map +1 -1
  118. package/dist/read/user-trade-history/user-trade-history.types.d.ts +36 -9
  119. package/dist/read/user-trade-history/user-trade-history.types.d.ts.map +1 -1
  120. package/dist/read/user-trade-history/user-trade-history.types.js +4 -1
  121. package/dist/read/vaults/vaults.reader.d.ts +6 -4
  122. package/dist/read/vaults/vaults.reader.d.ts.map +1 -1
  123. package/dist/read/vaults/vaults.reader.js +4 -0
  124. package/dist/read/vaults/vaults.types.d.ts +30 -12
  125. package/dist/read/vaults/vaults.types.d.ts.map +1 -1
  126. package/dist/read/vaults/vaults.types.js +20 -3
  127. package/dist/read/ws-subscription.d.ts +1 -1
  128. package/dist/read/ws-subscription.d.ts.map +1 -1
  129. package/dist/read/ws-subscription.js +9 -1
  130. package/dist/release-config.d.ts +5 -2
  131. package/dist/release-config.d.ts.map +1 -1
  132. package/dist/release-config.js +15 -5
  133. package/dist/tsconfig.tsbuildinfo +1 -1
  134. package/dist/write.d.ts +12 -0
  135. package/dist/write.d.ts.map +1 -1
  136. package/dist/write.js +24 -7
  137. package/package.json +1 -1
  138. package/readme.md +7 -48
package/dist/write.js CHANGED
@@ -103,7 +103,7 @@ export class DecibelWriteDex extends BaseSDK {
103
103
  */
104
104
  async withdraw(amount, subaccountAddr) {
105
105
  return await this.sendSubaccountTx((subaccountAddr) => this.sendTx({
106
- function: `${this.config.deployment.package}::dex_accounts_entry::withdraw_from_subaccount`,
106
+ function: `${this.config.deployment.package}::dex_accounts_entry::withdraw_from_cross_collateral`,
107
107
  typeArguments: [],
108
108
  functionArguments: [subaccountAddr, this.config.deployment.usdc, amount],
109
109
  }), subaccountAddr);
@@ -172,7 +172,7 @@ export class DecibelWriteDex extends BaseSDK {
172
172
  }
173
173
  async triggerMatching({ marketAddr, maxWorkUnit }) {
174
174
  const txResponse = await this.sendTx({
175
- function: `${this.config.deployment.package}::public_apis::trigger_matching`,
175
+ function: `${this.config.deployment.package}::public_apis::process_perp_market_pending_requests`,
176
176
  typeArguments: [],
177
177
  functionArguments: [marketAddr, maxWorkUnit],
178
178
  });
@@ -233,6 +233,16 @@ export class DecibelWriteDex extends BaseSDK {
233
233
  functionArguments: [subaccountAddr, clientOrderId, marketAddr.toString()],
234
234
  }, accountOverride), subaccountAddr);
235
235
  }
236
+ async cancelBulkOrder({ subaccountAddr, accountOverride, ...args }) {
237
+ const marketAddr = "marketName" in args
238
+ ? getMarketAddr(args.marketName, this.config.deployment.perpEngineGlobal)
239
+ : args.marketAddr;
240
+ return await this.sendSubaccountTx((subaccountAddr) => this.sendTx({
241
+ function: `${this.config.deployment.package}::dex_accounts_entry::cancel_bulk_order_to_subaccount`,
242
+ typeArguments: [],
243
+ functionArguments: [subaccountAddr, marketAddr.toString()],
244
+ }, accountOverride), subaccountAddr);
245
+ }
236
246
  async delegateTradingToForSubaccount({ subaccountAddr, accountToDelegateTo, expirationTimestampSecs, }) {
237
247
  return await this.sendSubaccountTx((subaccountAddr) => this.sendTx({
238
248
  function: `${this.config.deployment.package}::dex_accounts_entry::delegate_trading_to_for_subaccount`,
@@ -345,11 +355,12 @@ export class DecibelWriteDex extends BaseSDK {
345
355
  * Create a new vault with optional initial funding
346
356
  */
347
357
  async buildCreateVaultTx({ contributionAssetType, vaultName, vaultShareSymbol, vaultShareIconUri = "", vaultShareProjectUri = "", feeBps, feeIntervalS, contributionLockupDurationS, initialFunding = 0, acceptsContributions = false, delegateToCreator = false, signerAddress, vaultDescription, vaultSocialLinks, }) {
358
+ const signerPrimarySubaccount = this.getPrimarySubaccountAddress(signerAddress);
348
359
  const transaction = await this.buildTx({
349
360
  function: `${this.config.deployment.package}::vault_api::create_and_fund_vault`,
350
361
  typeArguments: [],
351
362
  functionArguments: [
352
- null,
363
+ signerPrimarySubaccount,
353
364
  contributionAssetType,
354
365
  vaultName,
355
366
  vaultDescription,
@@ -372,7 +383,8 @@ export class DecibelWriteDex extends BaseSDK {
372
383
  function: `${this.config.deployment.package}::vault_api::create_and_fund_vault`,
373
384
  typeArguments: [],
374
385
  functionArguments: [
375
- args.subaccountAddr ?? null,
386
+ args.subaccountAddr ??
387
+ this.getPrimarySubaccountAddress((args.accountOverride ?? this.account).accountAddress),
376
388
  args.contributionAssetType,
377
389
  args.vaultName,
378
390
  args.vaultDescription,
@@ -405,9 +417,14 @@ export class DecibelWriteDex extends BaseSDK {
405
417
  */
406
418
  async buildDepositToVaultTx({ vaultAddress, amount, signerAddress, }) {
407
419
  return await this.buildTx({
408
- function: `${this.config.deployment.package}::vault_api::contribute`,
420
+ function: `${this.config.deployment.package}::dex_accounts_entry::contribute_to_vault`,
409
421
  typeArguments: [],
410
- functionArguments: [vaultAddress, amount],
422
+ functionArguments: [
423
+ this.getPrimarySubaccountAddress(signerAddress), // todo - select correct subaccount
424
+ vaultAddress,
425
+ this.config.deployment.usdc,
426
+ amount,
427
+ ],
411
428
  }, signerAddress);
412
429
  }
413
430
  async depositToVault(args) {
@@ -446,7 +463,7 @@ export class DecibelWriteDex extends BaseSDK {
446
463
  */
447
464
  async buildDelegateDexActionsToTx({ vaultAddress, accountToDelegateTo, signerAddress, expirationTimestampSecs, }) {
448
465
  return await this.buildTx({
449
- function: `${this.config.deployment.package}::vault::delegate_dex_actions_to`,
466
+ function: `${this.config.deployment.package}::vault_admin_api::delegate_dex_actions_to`,
450
467
  typeArguments: [],
451
468
  functionArguments: [vaultAddress, accountToDelegateTo, expirationTimestampSecs],
452
469
  }, signerAddress);
package/package.json CHANGED
@@ -50,5 +50,5 @@
50
50
  },
51
51
  "type": "module",
52
52
  "types": "dist/index.d.ts",
53
- "version": "0.3.0"
53
+ "version": "0.4.0"
54
54
  }
package/readme.md CHANGED
@@ -143,7 +143,8 @@ const customConfig: DecibelConfig = {
143
143
  fullnodeUrl: "https://api.testnet.aptoslabs.com/v1",
144
144
  tradingHttpUrl: "https://api.testnet.aptoslabs.com/decibel",
145
145
  tradingWsUrl: "wss://api.testnet.aptoslabs.com/decibel/ws",
146
- gasStationUrl: "https://your-fee-payer.com",
146
+ gasStationUrl: "https://api.testnet.aptoslabs.com/gs/v1", // optional: enables gas sponsorship
147
+ gasStationApiKey: "your-gas-station-api-key", // optional: enables gas sponsorship
147
148
  deployment: {
148
149
  package: "0x...",
149
150
  usdc: "0x...",
@@ -904,20 +905,17 @@ class DecibelTransactionManager {
904
905
  private aptos: Aptos;
905
906
  private config: DecibelConfig;
906
907
  private skipSimulate: boolean;
907
- private noFeePayer: boolean;
908
908
 
909
909
  constructor(
910
910
  config: DecibelConfig,
911
911
  private account: Account,
912
912
  options?: {
913
913
  skipSimulate?: boolean;
914
- noFeePayer?: boolean;
915
914
  nodeApiKey?: string;
916
915
  },
917
916
  ) {
918
917
  this.config = config;
919
918
  this.skipSimulate = options?.skipSimulate ?? false;
920
- this.noFeePayer = options?.noFeePayer ?? false;
921
919
 
922
920
  const aptosConfig = new AptosConfig({
923
921
  network: config.network,
@@ -958,45 +956,6 @@ class DecibelTransactionManager {
958
956
  });
959
957
  }
960
958
 
961
- private async submitTransaction(
962
- transaction: SimpleTransaction,
963
- senderAuthenticator: AccountAuthenticator,
964
- ): Promise<PendingTransactionResponse> {
965
- if (this.noFeePayer) {
966
- return await this.aptos.transaction.submit.simple({
967
- transaction,
968
- senderAuthenticator,
969
- });
970
- } else {
971
- return await this.submitFeePaidTransaction(transaction, senderAuthenticator);
972
- }
973
- }
974
-
975
- private async submitFeePaidTransaction(
976
- transaction: SimpleTransaction,
977
- senderAuthenticator: AccountAuthenticator,
978
- ): Promise<PendingTransactionResponse> {
979
- const signatureBcs = Array.from(senderAuthenticator.bcsToBytes());
980
- const transactionBcs = Array.from(transaction.rawTransaction.bcsToBytes());
981
-
982
- const response = await fetch(this.config.gasStationUrl + "/transactions", {
983
- method: "POST",
984
- headers: {
985
- "Content-Type": "application/json",
986
- },
987
- body: JSON.stringify({
988
- signature: signatureBcs,
989
- transaction: transactionBcs,
990
- }),
991
- });
992
-
993
- if (!response.ok) {
994
- throw new Error(`Fee payer service error: ${response.status}`);
995
- }
996
-
997
- return (await response.json()) as PendingTransactionResponse;
998
- }
999
-
1000
959
  async sendTransaction(
1001
960
  payload: InputGenerateTransactionPayloadData,
1002
961
  accountOverride?: Account,
@@ -1009,11 +968,9 @@ class DecibelTransactionManager {
1009
968
  if (!this.skipSimulate) {
1010
969
  transaction = await this.getSimulatedTransaction(payload, sender);
1011
970
  } else {
1012
- const withFeePayer = !this.noFeePayer;
1013
971
  transaction = await this.aptos.transaction.build.simple({
1014
972
  sender,
1015
973
  data: payload,
1016
- withFeePayer,
1017
974
  });
1018
975
  }
1019
976
 
@@ -1022,7 +979,10 @@ class DecibelTransactionManager {
1022
979
  transaction,
1023
980
  });
1024
981
 
1025
- const pendingTransaction = await this.submitTransaction(transaction, senderAuthenticator);
982
+ const pendingTransaction = await this.aptos.transaction.submit.simple({
983
+ transaction,
984
+ senderAuthenticator,
985
+ });
1026
986
  return await this.aptos.waitForTransaction({
1027
987
  transactionHash: pendingTransaction.hash,
1028
988
  });
@@ -1123,7 +1083,7 @@ async function withdrawCollateral(
1123
1083
  subaccountAddr ?? getPrimarySubaccountAddress(transactionManager.account.accountAddress);
1124
1084
 
1125
1085
  return await transactionManager.sendTransaction({
1126
- function: `${config.deployment.package}::dex_accounts::withdraw_from_subaccount`,
1086
+ function: `${config.deployment.package}::dex_accounts::withdraw_from_cross_collateral`,
1127
1087
  typeArguments: [],
1128
1088
  functionArguments: [subaccount, config.deployment.usdc, amount],
1129
1089
  });
@@ -1408,7 +1368,6 @@ async function basicTradingExample() {
1408
1368
  const account = Account.fromPrivateKey({ privateKey });
1409
1369
  const transactionManager = new DecibelTransactionManager(NETNA_CONFIG, account, {
1410
1370
  skipSimulate: false,
1411
- noFeePayer: false,
1412
1371
  });
1413
1372
 
1414
1373
  try {