aftermath-ts-sdk 1.2.51-temp.0 → 1.2.52-perps.3

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 (216) hide show
  1. package/README.md +61 -27
  2. package/dist/general/apiHelpers/eventsApiHelpers.d.ts +1 -1
  3. package/dist/general/apiHelpers/eventsApiHelpers.d.ts.map +1 -1
  4. package/dist/general/apiHelpers/eventsApiHelpers.js +4 -1
  5. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts +6 -0
  6. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts.map +1 -1
  7. package/dist/general/apiHelpers/transactionsApiHelpers.js +46 -0
  8. package/dist/general/dynamicGas/dynamicGas.d.ts +34 -0
  9. package/dist/general/dynamicGas/dynamicGas.d.ts.map +1 -1
  10. package/dist/general/dynamicGas/dynamicGas.js +34 -0
  11. package/dist/general/dynamicGas/dynamicGasTypes.d.ts +25 -0
  12. package/dist/general/dynamicGas/dynamicGasTypes.d.ts.map +1 -1
  13. package/dist/general/prices/coinGeckoTypes.d.ts +2 -0
  14. package/dist/general/prices/coinGeckoTypes.d.ts.map +1 -1
  15. package/dist/general/prices/prices.d.ts +73 -0
  16. package/dist/general/prices/prices.d.ts.map +1 -1
  17. package/dist/general/prices/prices.js +73 -0
  18. package/dist/general/providers/aftermath.d.ts +107 -27
  19. package/dist/general/providers/aftermath.d.ts.map +1 -1
  20. package/dist/general/providers/aftermath.js +110 -30
  21. package/dist/general/providers/aftermathApi.d.ts +128 -10
  22. package/dist/general/providers/aftermathApi.d.ts.map +1 -1
  23. package/dist/general/providers/aftermathApi.js +133 -14
  24. package/dist/general/types/castingTypes.d.ts +15 -7
  25. package/dist/general/types/castingTypes.d.ts.map +1 -1
  26. package/dist/general/types/castingTypes.js +6 -0
  27. package/dist/general/types/configTypes.d.ts +14 -9
  28. package/dist/general/types/configTypes.d.ts.map +1 -1
  29. package/dist/general/types/generalTypes.d.ts +229 -7
  30. package/dist/general/types/generalTypes.d.ts.map +1 -1
  31. package/dist/general/types/moveErrorsInterface.d.ts +1 -1
  32. package/dist/general/types/moveErrorsInterface.d.ts.map +1 -1
  33. package/dist/general/types/suiTypes.d.ts +0 -16
  34. package/dist/general/types/suiTypes.d.ts.map +1 -1
  35. package/dist/general/types/suiTypes.js +3 -25
  36. package/dist/general/utils/caller.d.ts +5 -2
  37. package/dist/general/utils/caller.d.ts.map +1 -1
  38. package/dist/general/utils/caller.js +9 -1
  39. package/dist/general/utils/casting.d.ts +156 -7
  40. package/dist/general/utils/casting.d.ts.map +1 -1
  41. package/dist/general/utils/casting.js +159 -20
  42. package/dist/general/utils/fixedUtils.d.ts +89 -2
  43. package/dist/general/utils/fixedUtils.d.ts.map +1 -1
  44. package/dist/general/utils/fixedUtils.js +81 -4
  45. package/dist/general/utils/helpers.d.ts +327 -10
  46. package/dist/general/utils/helpers.d.ts.map +1 -1
  47. package/dist/general/utils/helpers.js +409 -91
  48. package/dist/general/utils/iFixedUtils.d.ts +64 -0
  49. package/dist/general/utils/iFixedUtils.d.ts.map +1 -1
  50. package/dist/general/utils/iFixedUtils.js +64 -0
  51. package/dist/general/wallet/wallet.d.ts +76 -1
  52. package/dist/general/wallet/wallet.d.ts.map +1 -1
  53. package/dist/general/wallet/wallet.js +75 -5
  54. package/dist/packages/auth/auth.d.ts +113 -4
  55. package/dist/packages/auth/auth.d.ts.map +1 -1
  56. package/dist/packages/auth/auth.js +190 -59
  57. package/dist/packages/auth/authTypes.d.ts +66 -0
  58. package/dist/packages/auth/authTypes.d.ts.map +1 -1
  59. package/dist/packages/coin/api/coinApi.d.ts.map +1 -1
  60. package/dist/packages/coin/api/coinApi.js +29 -20
  61. package/dist/packages/coin/coin.d.ts +256 -1
  62. package/dist/packages/coin/coin.d.ts.map +1 -1
  63. package/dist/packages/coin/coin.js +246 -15
  64. package/dist/packages/coin/coinTypes.d.ts +95 -0
  65. package/dist/packages/coin/coinTypes.d.ts.map +1 -1
  66. package/dist/packages/dca/api/dcaApi.d.ts +2 -0
  67. package/dist/packages/dca/api/dcaApi.d.ts.map +1 -1
  68. package/dist/packages/dca/api/dcaApi.js +6 -3
  69. package/dist/packages/dca/dca.d.ts +125 -35
  70. package/dist/packages/dca/dca.d.ts.map +1 -1
  71. package/dist/packages/dca/dca.js +135 -43
  72. package/dist/packages/dca/dcaTypes.d.ts +217 -42
  73. package/dist/packages/dca/dcaTypes.d.ts.map +1 -1
  74. package/dist/packages/farms/api/farmsApi.d.ts +725 -58
  75. package/dist/packages/farms/api/farmsApi.d.ts.map +1 -1
  76. package/dist/packages/farms/api/farmsApi.js +1149 -153
  77. package/dist/packages/farms/api/farmsApiCasting.d.ts +34 -18
  78. package/dist/packages/farms/api/farmsApiCasting.d.ts.map +1 -1
  79. package/dist/packages/farms/api/farmsApiCasting.js +218 -17
  80. package/dist/packages/farms/api/farmsApiCastingTypes.d.ts +117 -21
  81. package/dist/packages/farms/api/farmsApiCastingTypes.d.ts.map +1 -1
  82. package/dist/packages/farms/farms.d.ts +188 -3
  83. package/dist/packages/farms/farms.d.ts.map +1 -1
  84. package/dist/packages/farms/farms.js +192 -12
  85. package/dist/packages/farms/farmsStakedPosition.d.ts +143 -8
  86. package/dist/packages/farms/farmsStakedPosition.d.ts.map +1 -1
  87. package/dist/packages/farms/farmsStakedPosition.js +243 -137
  88. package/dist/packages/farms/farmsStakingPool.d.ts +169 -3
  89. package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
  90. package/dist/packages/farms/farmsStakingPool.js +212 -70
  91. package/dist/packages/farms/farmsTypes.d.ts +302 -2
  92. package/dist/packages/farms/farmsTypes.d.ts.map +1 -1
  93. package/dist/packages/farms/farmsTypes.js +18 -0
  94. package/dist/packages/faucet/api/faucetApi.d.ts +9 -17
  95. package/dist/packages/faucet/api/faucetApi.d.ts.map +1 -1
  96. package/dist/packages/faucet/api/faucetApi.js +44 -49
  97. package/dist/packages/faucet/api/faucetApiCasting.d.ts.map +1 -1
  98. package/dist/packages/faucet/api/faucetApiCasting.js +8 -5
  99. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts +1 -4
  100. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts.map +1 -1
  101. package/dist/packages/faucet/faucet.d.ts +1 -1
  102. package/dist/packages/faucet/faucet.d.ts.map +1 -1
  103. package/dist/packages/faucet/faucet.js +1 -1
  104. package/dist/packages/faucet/faucetTypes.d.ts +2 -3
  105. package/dist/packages/faucet/faucetTypes.d.ts.map +1 -1
  106. package/dist/packages/limitOrders/api/limitOrdersApi.d.ts +12 -0
  107. package/dist/packages/limitOrders/api/limitOrdersApi.d.ts.map +1 -0
  108. package/dist/packages/limitOrders/api/limitOrdersApi.js +25 -0
  109. package/dist/packages/limitOrders/index.d.ts +2 -0
  110. package/dist/packages/limitOrders/index.d.ts.map +1 -0
  111. package/dist/packages/limitOrders/index.js +17 -0
  112. package/dist/packages/limitOrders/limitOrders.d.ts +143 -0
  113. package/dist/packages/limitOrders/limitOrders.d.ts.map +1 -0
  114. package/dist/packages/limitOrders/limitOrders.js +190 -0
  115. package/dist/packages/limitOrders/limitOrdersTypes.d.ts +211 -0
  116. package/dist/packages/limitOrders/limitOrdersTypes.d.ts.map +1 -0
  117. package/dist/packages/multisig/multisig.d.ts +34 -5
  118. package/dist/packages/multisig/multisig.d.ts.map +1 -1
  119. package/dist/packages/multisig/multisig.js +33 -4
  120. package/dist/packages/multisig/multisigTypes.d.ts +17 -0
  121. package/dist/packages/multisig/multisigTypes.d.ts.map +1 -1
  122. package/dist/packages/nftAmm/nftAmm.d.ts +1 -1
  123. package/dist/packages/nftAmm/nftAmm.d.ts.map +1 -1
  124. package/dist/packages/perpetuals/api/perpetualsApi.d.ts +7 -16
  125. package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
  126. package/dist/packages/perpetuals/api/perpetualsApi.js +318 -276
  127. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +7 -7
  128. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
  129. package/dist/packages/perpetuals/api/perpetualsApiCasting.js +71 -84
  130. package/dist/packages/perpetuals/perpetuals.d.ts +33 -4
  131. package/dist/packages/perpetuals/perpetuals.d.ts.map +1 -1
  132. package/dist/packages/perpetuals/perpetuals.js +105 -18
  133. package/dist/packages/perpetuals/perpetualsAccount.d.ts +87 -52
  134. package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
  135. package/dist/packages/perpetuals/perpetualsAccount.js +544 -91
  136. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +55 -26
  137. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
  138. package/dist/packages/perpetuals/perpetualsMarket.d.ts +28 -4
  139. package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
  140. package/dist/packages/perpetuals/perpetualsMarket.js +75 -13
  141. package/dist/packages/perpetuals/perpetualsTypes.d.ts +263 -213
  142. package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
  143. package/dist/packages/perpetuals/perpetualsTypes.js +24 -77
  144. package/dist/packages/pools/pool.d.ts +328 -86
  145. package/dist/packages/pools/pool.d.ts.map +1 -1
  146. package/dist/packages/pools/pool.js +333 -91
  147. package/dist/packages/pools/pools.d.ts +300 -38
  148. package/dist/packages/pools/pools.d.ts.map +1 -1
  149. package/dist/packages/pools/pools.js +306 -52
  150. package/dist/packages/pools/poolsTypes.d.ts +267 -2
  151. package/dist/packages/pools/poolsTypes.d.ts.map +1 -1
  152. package/dist/packages/referralVault/referralVault.d.ts +38 -1
  153. package/dist/packages/referralVault/referralVault.d.ts.map +1 -1
  154. package/dist/packages/referralVault/referralVault.js +37 -0
  155. package/dist/packages/router/router.d.ts +213 -17
  156. package/dist/packages/router/router.d.ts.map +1 -1
  157. package/dist/packages/router/router.js +214 -18
  158. package/dist/packages/router/routerTypes.d.ts +199 -15
  159. package/dist/packages/router/routerTypes.d.ts.map +1 -1
  160. package/dist/packages/staking/staking.d.ts +302 -44
  161. package/dist/packages/staking/staking.d.ts.map +1 -1
  162. package/dist/packages/staking/staking.js +308 -51
  163. package/dist/packages/staking/stakingTypes.d.ts +426 -6
  164. package/dist/packages/staking/stakingTypes.d.ts.map +1 -1
  165. package/dist/packages/staking/stakingTypes.js +19 -0
  166. package/dist/packages/sui/sui.d.ts +40 -1
  167. package/dist/packages/sui/sui.d.ts.map +1 -1
  168. package/dist/packages/sui/sui.js +39 -0
  169. package/dist/packages/suiFrens/stakedSuiFren.d.ts +1 -1
  170. package/dist/packages/suiFrens/stakedSuiFren.d.ts.map +1 -1
  171. package/dist/packages/suiFrens/suiFren.d.ts +1 -1
  172. package/dist/packages/suiFrens/suiFren.d.ts.map +1 -1
  173. package/dist/packages/suiFrens/suiFrens.d.ts +1 -1
  174. package/dist/packages/suiFrens/suiFrens.d.ts.map +1 -1
  175. package/dist/packages/userData/api/userDataApi.d.ts +6 -0
  176. package/dist/packages/userData/api/userDataApi.d.ts.map +1 -0
  177. package/dist/packages/userData/api/userDataApi.js +12 -0
  178. package/dist/packages/userData/index.d.ts +2 -0
  179. package/dist/packages/userData/index.d.ts.map +1 -0
  180. package/dist/packages/userData/index.js +17 -0
  181. package/dist/packages/userData/userData.d.ts +89 -0
  182. package/dist/packages/userData/userData.d.ts.map +1 -0
  183. package/dist/packages/userData/userData.js +119 -0
  184. package/dist/packages/userData/userDataTypes.d.ts +29 -0
  185. package/dist/packages/userData/userDataTypes.d.ts.map +1 -0
  186. package/dist/types.d.ts +0 -1
  187. package/dist/types.d.ts.map +1 -1
  188. package/dist/types.js +0 -2
  189. package/package.json +1 -1
  190. package/dist/general/historicalData/historicalData.d.ts +0 -15
  191. package/dist/general/historicalData/historicalData.d.ts.map +0 -1
  192. package/dist/general/historicalData/historicalData.js +0 -45
  193. package/dist/general/historicalData/historicalDataTypes.d.ts +0 -10
  194. package/dist/general/historicalData/historicalDataTypes.d.ts.map +0 -1
  195. package/dist/packages/dca/api/dcaApiCasting.d.ts +0 -11
  196. package/dist/packages/dca/api/dcaApiCasting.d.ts.map +0 -1
  197. package/dist/packages/dca/api/dcaApiCasting.js +0 -186
  198. package/dist/packages/dca/api/dcaApiCastingTypes.d.ts +0 -142
  199. package/dist/packages/dca/api/dcaApiCastingTypes.d.ts.map +0 -1
  200. package/dist/packages/oracle/api/oracleApi.d.ts +0 -21
  201. package/dist/packages/oracle/api/oracleApi.d.ts.map +0 -1
  202. package/dist/packages/oracle/api/oracleApi.js +0 -76
  203. package/dist/packages/oracle/api/oracleApiCasting.d.ts +0 -6
  204. package/dist/packages/oracle/api/oracleApiCasting.d.ts.map +0 -1
  205. package/dist/packages/oracle/api/oracleApiCasting.js +0 -25
  206. package/dist/packages/oracle/oracle.d.ts +0 -15
  207. package/dist/packages/oracle/oracle.d.ts.map +0 -1
  208. package/dist/packages/oracle/oracle.js +0 -46
  209. package/dist/packages/oracle/oracleCastingTypes.d.ts +0 -11
  210. package/dist/packages/oracle/oracleCastingTypes.d.ts.map +0 -1
  211. package/dist/packages/oracle/oracleCastingTypes.js +0 -2
  212. package/dist/packages/oracle/oracleTypes.d.ts +0 -10
  213. package/dist/packages/oracle/oracleTypes.d.ts.map +0 -1
  214. package/dist/packages/oracle/oracleTypes.js +0 -2
  215. /package/dist/{general/historicalData/historicalDataTypes.js → packages/limitOrders/limitOrdersTypes.js} +0 -0
  216. /package/dist/packages/{dca/api/dcaApiCastingTypes.js → userData/userDataTypes.js} +0 -0
@@ -12,42 +12,95 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Auth = void 0;
13
13
  const caller_1 = require("../../general/utils/caller");
14
14
  const utils_1 = require("../../general/utils");
15
+ /**
16
+ * The `Auth` class manages creation and refreshing of access tokens
17
+ * to obtain higher rate limits on the Aftermath API. It includes methods
18
+ * to initialize authorization either by a direct callback-based approach
19
+ * or by importing a local Sui keystore. Optionally, administrative functions
20
+ * are provided for creating specialized auth accounts.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const auth = new Auth();
25
+ * const stopAuth = await auth.init({
26
+ * walletAddress: "0x<address>",
27
+ * signMessageCallback: async ({ message }) => {
28
+ * // sign message
29
+ * },
30
+ * });
31
+ * // ... make authenticated requests ...
32
+ * stopAuth(); // stop auto refresh
33
+ * ```
34
+ */
15
35
  class Auth extends caller_1.Caller {
16
36
  // =========================================================================
17
37
  // Constructor
18
38
  // =========================================================================
39
+ /**
40
+ * Creates a new `Auth` instance for token-based rate limit increases.
41
+ *
42
+ * @param config - Optional caller configuration, including network and access token.
43
+ */
19
44
  constructor(config) {
20
45
  super(config, "auth");
21
46
  // =========================================================================
22
47
  // Private Class Members
23
48
  // =========================================================================
49
+ /**
50
+ * Holds the timer reference for scheduled token refreshes.
51
+ */
24
52
  this.refreshTimer = null;
53
+ /**
54
+ * Indicates whether the user has canceled auto token refresh.
55
+ */
25
56
  this.isCanceled = false;
26
57
  }
27
58
  // =========================================================================
28
59
  // User-Facing
29
60
  // =========================================================================
61
+ /**
62
+ * Initializes the auth system by fetching an access token for the provided wallet address.
63
+ * After obtaining the token, it automatically schedules periodic refresh calls until stopped.
64
+ *
65
+ * @param inputs - An object containing the user's `walletAddress` and a `signMessageCallback` function
66
+ * for cryptographically signing messages.
67
+ *
68
+ * @returns A function that, when called, cancels further token refresh attempts.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const auth = new Auth();
73
+ * const stopAuth = await auth.init({
74
+ * walletAddress: "0x<address>",
75
+ * signMessageCallback: async ({ message }) => {
76
+ * // sign the message with your private key / keypair
77
+ * },
78
+ * });
79
+ *
80
+ * // ... make authorized calls ...
81
+ *
82
+ * stopAuth(); // Cancel further token refreshes
83
+ * ```
84
+ */
30
85
  init(inputs) {
31
86
  return __awaiter(this, void 0, void 0, function* () {
32
- // Step 1: Mark as "not canceled" before the new run
33
- this.isCanceled = false;
34
- // Step 2: Define a function that does the “work” + schedules next call
87
+ this.isCanceled = false; // Mark as active
35
88
  const startRefresh = () => __awaiter(this, void 0, void 0, function* () {
36
- // If canceled at the time we enter, don’t do anything
37
89
  if (this.isCanceled)
38
- return;
90
+ return; // No-op if canceled
39
91
  const { accessToken, expirationTimestamp } = yield this.getAccessToken(inputs);
40
92
  this.setAccessToken(accessToken);
41
93
  if (this.isCanceled)
42
- return; // double-check before scheduling next timer
94
+ return; // Double-check after token fetch
95
+ // Provide a margin by refreshing before actual expiration
43
96
  const TIMEOUT_REDUCTION_RATIO = 0.9;
44
97
  const interval = (expirationTimestamp - Date.now()) * TIMEOUT_REDUCTION_RATIO;
45
- // Store the timer so we can cancel it later
98
+ // Schedule next refresh
46
99
  this.refreshTimer = setTimeout(startRefresh, interval);
47
100
  });
48
- // Step 3: Kick off the first refresh
101
+ // Kick off first refresh
49
102
  yield startRefresh();
50
- // Step 4: Return a function that cancels further refreshes
103
+ // Return cancellation function
51
104
  return () => {
52
105
  this.isCanceled = true;
53
106
  if (this.refreshTimer) {
@@ -56,60 +109,115 @@ class Auth extends caller_1.Caller {
56
109
  };
57
110
  });
58
111
  }
59
- initFromSuiKeystore(inputs) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- const { walletAddress, path: pathStr } = inputs;
62
- if (typeof window === "undefined") {
63
- const fs = require("fs");
64
- const path = require("path");
65
- const os = require("os");
66
- const keystorePath = pathStr
67
- ? path.join(pathStr)
68
- : (() => {
69
- // Locate the user’s home directory
70
- const homeDir = os.homedir();
71
- if (!homeDir) {
72
- throw new Error("cannot obtain home directory path");
73
- }
74
- // Construct the path: ~/.sui/sui_config/sui.keystore
75
- return path.join(homeDir, ".sui", "sui_config", "sui.keystore");
76
- })();
77
- // Read the JSON file from `keystorePath`
78
- let privateKeys;
79
- try {
80
- const fileContent = fs.readFileSync(keystorePath, "utf-8");
81
- privateKeys = JSON.parse(fileContent);
82
- if (!Array.isArray(privateKeys)) {
83
- throw new Error("Invalid keystore format: Expected an array of private keys");
84
- }
85
- }
86
- catch (error) {
87
- throw new Error(`Failed to read keystore file: ${error}`);
88
- }
89
- if (privateKeys.length <= 0) {
90
- throw new Error(`Empty keystore file`);
91
- }
92
- const foundKeypair = privateKeys
93
- .map((privateKey) => utils_1.Helpers.keypairFromPrivateKey(privateKey))
94
- .find((keypair) => utils_1.Helpers.addLeadingZeroesToType(keypair.toSuiAddress()) === utils_1.Helpers.addLeadingZeroesToType(walletAddress));
95
- if (!foundKeypair) {
96
- throw new Error(`No private key found in keystore file for ${walletAddress}`);
97
- }
98
- return this.init({
99
- walletAddress,
100
- signMessageCallback: ({ message }) => __awaiter(this, void 0, void 0, function* () { return foundKeypair.signPersonalMessage(message); }),
101
- });
102
- }
103
- throw new Error("`initFromSuiKeystore` must be called on server-side");
104
- });
105
- }
112
+ /**
113
+ * Initializes the auth system by reading a local Sui keystore file (on the server side),
114
+ * using the private keys matching a provided address to sign messages for token creation.
115
+ * After the token is obtained, it automatically schedules periodic refresh calls until stopped.
116
+ *
117
+ * @param inputs - An object containing the target `walletAddress` and an optional path to the `.keystore`.
118
+ * If `path` is not provided, it defaults to `~/.sui/sui_config/sui.keystore`.
119
+ * @returns A function that, when called, cancels further token refresh attempts.
120
+ *
121
+ * @throws If this method is called in a browser environment (client-side).
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * // On server:
126
+ * const stopAuth = await auth.initFromSuiKeystore({
127
+ * walletAddress: "0x<address>",
128
+ * path: "/custom/path/to/keystore.json",
129
+ * });
130
+ * // authorized calls...
131
+ * stopAuth();
132
+ * ```
133
+ */
134
+ // public async initFromSuiKeystore(inputs: {
135
+ // walletAddress: SuiAddress;
136
+ // path?: string;
137
+ // }): Promise<() => void> {
138
+ // const { walletAddress, path: pathStr } = inputs;
139
+ // if (typeof window === "undefined") {
140
+ // // Node environment, proceed with reading a keystore
141
+ // const fs = require("fs");
142
+ // const path = require("path");
143
+ // const os = require("os");
144
+ // const keystorePath = pathStr
145
+ // ? path.join(pathStr)
146
+ // : (() => {
147
+ // // Default to ~/.sui/sui_config/sui.keystore
148
+ // const homeDir = os.homedir();
149
+ // if (!homeDir) {
150
+ // throw new Error(
151
+ // "cannot obtain home directory path"
152
+ // );
153
+ // }
154
+ // return path.join(
155
+ // homeDir,
156
+ // ".sui",
157
+ // "sui_config",
158
+ // "sui.keystore"
159
+ // );
160
+ // })();
161
+ // // Read JSON with an array of private keys
162
+ // let privateKeys: string[];
163
+ // try {
164
+ // const fileContent = fs.readFileSync(keystorePath, "utf-8");
165
+ // privateKeys = JSON.parse(fileContent);
166
+ // if (!Array.isArray(privateKeys)) {
167
+ // throw new Error(
168
+ // "Invalid keystore format: Expected an array of private keys"
169
+ // );
170
+ // }
171
+ // } catch (error) {
172
+ // throw new Error(`Failed to read keystore file: ${error}`);
173
+ // }
174
+ // if (privateKeys.length <= 0) {
175
+ // throw new Error(`Empty keystore file`);
176
+ // }
177
+ // // Find the matching key for the requested walletAddress
178
+ // const foundKeypair = privateKeys
179
+ // .map((privateKey) => Helpers.keypairFromPrivateKey(privateKey))
180
+ // .find(
181
+ // (keypair) =>
182
+ // Helpers.addLeadingZeroesToType(
183
+ // keypair.toSuiAddress()
184
+ // ) === Helpers.addLeadingZeroesToType(walletAddress)
185
+ // );
186
+ // if (!foundKeypair) {
187
+ // throw new Error(
188
+ // `No private key found in keystore file for ${walletAddress}`
189
+ // );
190
+ // }
191
+ // // Initialize with sign callback
192
+ // return this.init({
193
+ // walletAddress,
194
+ // signMessageCallback: async ({ message }) =>
195
+ // foundKeypair.signPersonalMessage(message),
196
+ // });
197
+ // }
198
+ // throw new Error("`initFromSuiKeystore` must be called on server-side");
199
+ // }
106
200
  // =========================================================================
107
201
  // Admin
108
202
  // =========================================================================
109
- // NOTE: admin only (should add docs)
203
+ /**
204
+ * **Admin-only**: Creates a new auth account with specific rate limits for a given
205
+ * `accountWalletAddress`. The `walletAddress` performing this action must have
206
+ * admin privileges, or the call will fail. Use this to create custom sub-accounts
207
+ * with limited scope or usage rates.
208
+ *
209
+ * @param inputs - Contains:
210
+ * - `walletAddress`: The admin's wallet address
211
+ * - `signMessageCallback`: The admin's signing callback
212
+ * - `accountName`: A short name or identifier for the account
213
+ * - `accountWalletAddress`: The Sui address representing this sub-account
214
+ * - `rateLimits`: An array specifying the rate limits (method-based) for the sub-account
215
+ * @returns A promise resolving to `true` if successful, otherwise throws or returns `false`.
216
+ */
110
217
  adminCreateAuthAccount(inputs) {
111
218
  return __awaiter(this, void 0, void 0, function* () {
112
219
  const { walletAddress, signMessageCallback, accountName, accountWalletAddress, rateLimits, } = inputs;
220
+ // Prepare the data to sign
113
221
  const serializedJson = Auth.createSerializedJson("AccountCreate", {
114
222
  sub: accountName,
115
223
  wallet_address: utils_1.Helpers.addLeadingZeroesToType(accountWalletAddress),
@@ -127,9 +235,17 @@ class Auth extends caller_1.Caller {
127
235
  // =========================================================================
128
236
  // Private
129
237
  // =========================================================================
238
+ /**
239
+ * Requests a new access token from the API by sending a signed message
240
+ * indicating the user wants a token.
241
+ *
242
+ * @param inputs - Contains the user's `walletAddress` and `signMessageCallback`.
243
+ * @returns A response object that includes the `accessToken` and an `expirationTimestamp`.
244
+ */
130
245
  getAccessToken(inputs) {
131
246
  return __awaiter(this, void 0, void 0, function* () {
132
247
  const { walletAddress, signMessageCallback } = inputs;
248
+ // Prepare signable data
133
249
  const serializedJson = Auth.createSerializedJson("GetAccessToken", {});
134
250
  const message = new TextEncoder().encode(serializedJson);
135
251
  const { signature } = yield signMessageCallback({ message });
@@ -143,14 +259,29 @@ class Auth extends caller_1.Caller {
143
259
  // =========================================================================
144
260
  // Private Static
145
261
  // =========================================================================
262
+ /**
263
+ * Creates a JSON string with a standard format:
264
+ * ```json
265
+ * {
266
+ * "date": <epoch-seconds>,
267
+ * "nonce": <random_number>,
268
+ * "method": <method_string>,
269
+ * "value": <passed_value>
270
+ * }
271
+ * ```
272
+ *
273
+ * @param method - A short method name describing the action ("GetAccessToken", "AccountCreate", etc.).
274
+ * @param value - The data object to embed under the `value` field.
275
+ * @returns A JSON-serialized string for signing.
276
+ */
146
277
  static createSerializedJson(method, value) {
147
278
  const timestampSeconds = Math.floor(Date.now() / 1000);
148
279
  const random = Math.floor(Math.random() * 1024 * 1024);
149
280
  const data = {
150
281
  date: timestampSeconds,
151
282
  nonce: random,
152
- method: method,
153
- value: value,
283
+ method,
284
+ value,
154
285
  };
155
286
  return JSON.stringify(data);
156
287
  }
@@ -1,6 +1,23 @@
1
1
  import { SuiAddress, Timestamp } from "../../types";
2
+ /**
3
+ * Interface specifying allowable rate limits for an auth account.
4
+ * The `p` field indicates the path or endpoint (e.g., "/pools"),
5
+ * while `m` indicates the method-based limits (GET or POST, or both).
6
+ */
2
7
  export interface RateLimit {
8
+ /**
9
+ * The path or endpoint to be rate-limited, e.g. "/pools" or "/router/trade".
10
+ */
3
11
  p: string;
12
+ /**
13
+ * The method-based limit specification.
14
+ * For example:
15
+ * ```
16
+ * { GET: { l: 100 } }
17
+ * { POST: { l: 50 } }
18
+ * { GET: { l: 100 }, POST: { l: 100 } }
19
+ * ```
20
+ */
4
21
  m: {
5
22
  GET: {
6
23
  l: number;
@@ -18,19 +35,68 @@ export interface RateLimit {
18
35
  };
19
36
  };
20
37
  }
38
+ /**
39
+ * The request body for creating a new auth account, typically
40
+ * reserved for admin usage. The admin signs a JSON containing
41
+ * an "AccountCreate" `method` plus desired sub-account data.
42
+ */
21
43
  export interface ApiCreateAuthAccountBody {
44
+ /**
45
+ * The admin's Sui address, zero-padded if necessary.
46
+ */
22
47
  walletAddress: SuiAddress;
48
+ /**
49
+ * The signature of the serialized JSON data, from the admin's private key.
50
+ */
23
51
  signature: string;
52
+ /**
53
+ * The JSON string that was signed, containing the method and sub-account details.
54
+ */
24
55
  serializedJson: string;
25
56
  }
57
+ /**
58
+ * The request body for obtaining or refreshing an access token. The user signs
59
+ * a "GetAccessToken" method message plus any relevant fields.
60
+ */
26
61
  export interface ApiGetAccessTokenBody {
62
+ /**
63
+ * The user's Sui address, zero-padded if needed.
64
+ */
27
65
  walletAddress: SuiAddress;
66
+ /**
67
+ * The signature over the JSON-serialized request data (nonce, date, etc.).
68
+ */
28
69
  signature: string;
70
+ /**
71
+ * The actual JSON string that was signed, e.g.:
72
+ * ```
73
+ * {
74
+ * "date": 1234567890,
75
+ * "nonce": 512,
76
+ * "method": "GetAccessToken",
77
+ * "value": {}
78
+ * }
79
+ * ```
80
+ */
29
81
  serializedJson: string;
30
82
  }
83
+ /**
84
+ * The response returned when a user obtains or refreshes an access token,
85
+ * containing the token string, the HTTP header name (usually "Authorization"),
86
+ * and the token's expiration timestamp in milliseconds.
87
+ */
31
88
  export interface ApiGetAccessTokenResponse {
89
+ /**
90
+ * The newly issued access token to be used in `Authorization` headers.
91
+ */
32
92
  accessToken: string;
93
+ /**
94
+ * The header key that should contain `accessToken` (e.g., "Authorization").
95
+ */
33
96
  header: string;
97
+ /**
98
+ * The UNIX timestamp (milliseconds) after which the token is invalid.
99
+ */
34
100
  expirationTimestamp: Timestamp;
35
101
  }
36
102
  //# sourceMappingURL=authTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authTypes.d.ts","sourceRoot":"","sources":["../../../src/packages/auth/authTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUpD,MAAM,WAAW,SAAS;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EACE;QAAE,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACtB;QAAE,IAAI,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACvB;QAAE,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC/C;AAMD,MAAM,WAAW,wBAAwB;IACxC,aAAa,EAAE,UAAU,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACrC,aAAa,EAAE,UAAU,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,yBAAyB;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,SAAS,CAAC;CAC/B"}
1
+ {"version":3,"file":"authTypes.d.ts","sourceRoot":"","sources":["../../../src/packages/auth/authTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;;;;;;;OAQG;IACH,CAAC,EACE;QAAE,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACtB;QAAE,IAAI,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACvB;QAAE,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE;YAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC/C;AAMD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACxC;;OAEG;IACH,aAAa,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,aAAa,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;OAUG;IACH,cAAc,EAAE,MAAM,CAAC;CACvB;AAMD;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,SAAS,CAAC;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"coinApi.d.ts","sourceRoot":"","sources":["../../../../src/packages/coin/api/coinApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,yBAAyB,EACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,qBAAa,OAAO;IAKP,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAM5C,qBAAqB,WAAkB;QAC7C,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAAC;QACnC,aAAa,EAAE,UAAU,CAAC;QAC1B,QAAQ,EAAE,QAAQ,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,CAAC,CAcpC;IAEK,sBAAsB,WAAkB;QAC9C,EAAE,EAAE,WAAW,CAAC;QAChB,aAAa,EAAE,UAAU,CAAC;QAC1B,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,WAAW,EAAE,OAAO,EAAE,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,EAAE,CAAC,CA8BtC;IAGK,aAAa,WAAkB;QACrC,aAAa,EAAE,UAAU,CAAC;QAC1B,QAAQ,EAAE,QAAQ,CAAC;KAEnB,KAAG,QAAQ,UAAU,EAAE,CAAC,CAiCvB;IAMF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAyE7B;CACF"}
1
+ {"version":3,"file":"coinApi.d.ts","sourceRoot":"","sources":["../../../../src/packages/coin/api/coinApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,yBAAyB,EACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,qBAAa,OAAO;IAKP,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAM5C,qBAAqB,WAAkB;QAC7C,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAAC;QACnC,aAAa,EAAE,UAAU,CAAC;QAC1B,QAAQ,EAAE,QAAQ,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,CAAC,CAcpC;IAEK,sBAAsB,WAAkB;QAC9C,EAAE,EAAE,WAAW,CAAC;QAChB,aAAa,EAAE,UAAU,CAAC;QAC1B,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,WAAW,EAAE,OAAO,EAAE,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,EAAE,CAAC,CA8BtC;IAGK,aAAa,WAAkB;QACrC,aAAa,EAAE,UAAU,CAAC;QAC1B,QAAQ,EAAE,QAAQ,CAAC;KAEnB,KAAG,QAAQ,UAAU,EAAE,CAAC,CAiCvB;IAMF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CA+E7B;CACF"}
@@ -13,6 +13,7 @@ exports.CoinApi = void 0;
13
13
  const coin_1 = require("../coin");
14
14
  const helpers_1 = require("../../../general/utils/helpers");
15
15
  const transactionsApiHelpers_1 = require("../../../general/apiHelpers/transactionsApiHelpers");
16
+ // import { ethers, Networkish } from "ethers";
16
17
  class CoinApi {
17
18
  // =========================================================================
18
19
  // Constructor
@@ -106,31 +107,39 @@ CoinApi.coinWithAmountTx = (inputs) => {
106
107
  const coinObjectIds = coinData.map((data) => data.coinObjectId);
107
108
  const mergedCoinObjectId = coinObjectIds[0];
108
109
  if (coinObjectIds.length > 1) {
109
- // tx.mergeCoins(tx.object(mergedCoinObjectId), [
110
- // ...coinObjectIds.slice(1).map((coinId) => tx.object(coinId)),
111
- // ]);
112
110
  // TODO: fix this (v1)
113
- tx.add({
114
- $kind: "MergeCoins",
115
- MergeCoins: {
116
- destination: tx.object(mergedCoinObjectId),
117
- sources: [
118
- ...coinObjectIds
119
- .slice(1)
120
- .map((coinId) => tx.object(coinId)),
121
- ],
122
- },
123
- });
111
+ if (isSponsoredTx) {
112
+ tx.add({
113
+ $kind: "MergeCoins",
114
+ MergeCoins: {
115
+ destination: tx.object(mergedCoinObjectId),
116
+ sources: [
117
+ ...coinObjectIds
118
+ .slice(1)
119
+ .map((coinId) => tx.object(coinId)),
120
+ ],
121
+ },
122
+ });
123
+ }
124
+ else {
125
+ tx.mergeCoins(tx.object(mergedCoinObjectId), [
126
+ ...coinObjectIds
127
+ .slice(1)
128
+ .map((coinId) => tx.object(coinId)),
129
+ ]);
130
+ }
124
131
  }
125
132
  // return tx.add({
126
133
  // kind: "SplitCoins",
127
134
  // coin: tx.object(mergedCoinObjectId),
128
135
  // amounts: [tx.pure(coinAmount)],
129
136
  // });
130
- return transactionsApiHelpers_1.TransactionsApiHelpers.splitCoinTx({
131
- tx,
132
- coinId: mergedCoinObjectId,
133
- amount: coinAmount,
134
- coinType,
135
- });
137
+ return isSponsoredTx
138
+ ? transactionsApiHelpers_1.TransactionsApiHelpers.splitCoinTx({
139
+ tx,
140
+ coinId: mergedCoinObjectId,
141
+ amount: coinAmount,
142
+ coinType,
143
+ })
144
+ : tx.splitCoins(mergedCoinObjectId, [coinAmount]);
136
145
  };