@bitgo-beta/sdk-coin-iota 1.0.1-beta.91 → 1.0.1-beta.910

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 (69) hide show
  1. package/README.md +1 -1
  2. package/dist/src/iota.d.ts +249 -23
  3. package/dist/src/iota.d.ts.map +1 -1
  4. package/dist/src/iota.js +813 -46
  5. package/dist/src/lib/constants.d.ts +76 -6
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +93 -8
  8. package/dist/src/lib/iface.d.ts +174 -2
  9. package/dist/src/lib/iface.d.ts.map +1 -1
  10. package/dist/src/lib/iface.js +1 -1
  11. package/dist/src/lib/index.d.ts +1 -0
  12. package/dist/src/lib/index.d.ts.map +1 -1
  13. package/dist/src/lib/index.js +4 -2
  14. package/dist/src/lib/keyPair.d.ts +100 -6
  15. package/dist/src/lib/keyPair.d.ts.map +1 -1
  16. package/dist/src/lib/keyPair.js +103 -10
  17. package/dist/src/lib/transaction.d.ts +175 -5
  18. package/dist/src/lib/transaction.d.ts.map +1 -1
  19. package/dist/src/lib/transaction.js +390 -6
  20. package/dist/src/lib/transactionBuilder.d.ts +109 -9
  21. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  22. package/dist/src/lib/transactionBuilder.js +200 -14
  23. package/dist/src/lib/transactionBuilderFactory.d.ts +98 -2
  24. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  25. package/dist/src/lib/transactionBuilderFactory.js +132 -5
  26. package/dist/src/lib/transferBuilder.d.ts +52 -2
  27. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  28. package/dist/src/lib/transferBuilder.js +86 -3
  29. package/dist/src/lib/transferTransaction.d.ts +124 -0
  30. package/dist/src/lib/transferTransaction.d.ts.map +1 -0
  31. package/dist/src/lib/transferTransaction.js +341 -0
  32. package/dist/src/lib/utils.d.ts +109 -7
  33. package/dist/src/lib/utils.d.ts.map +1 -1
  34. package/dist/src/lib/utils.js +165 -11
  35. package/dist/test/resources/iota.d.ts +42 -0
  36. package/dist/test/resources/iota.d.ts.map +1 -0
  37. package/dist/test/resources/iota.js +136 -0
  38. package/dist/test/unit/helpers/testHelpers.d.ts +57 -0
  39. package/dist/test/unit/helpers/testHelpers.d.ts.map +1 -0
  40. package/dist/test/unit/helpers/testHelpers.js +176 -0
  41. package/dist/test/unit/index.d.ts +2 -0
  42. package/dist/test/unit/index.d.ts.map +1 -0
  43. package/dist/test/unit/index.js +16 -0
  44. package/dist/test/unit/iota.d.ts +2 -0
  45. package/dist/test/unit/iota.d.ts.map +1 -0
  46. package/dist/test/unit/iota.js +1411 -0
  47. package/dist/test/unit/keyPair.d.ts +2 -0
  48. package/dist/test/unit/keyPair.d.ts.map +1 -0
  49. package/dist/test/unit/keyPair.js +108 -0
  50. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  51. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  52. package/dist/test/unit/transactionBuilder/transactionBuilder.js +188 -0
  53. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  54. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  55. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +178 -0
  56. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  57. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  58. package/dist/test/unit/transactionBuilder/transferBuilder.js +438 -0
  59. package/dist/test/unit/transferTransaction.d.ts +2 -0
  60. package/dist/test/unit/transferTransaction.d.ts.map +1 -0
  61. package/dist/test/unit/transferTransaction.js +218 -0
  62. package/dist/test/unit/utils.d.ts +2 -0
  63. package/dist/test/unit/utils.d.ts.map +1 -0
  64. package/dist/test/unit/utils.js +252 -0
  65. package/dist/tsconfig.tsbuildinfo +1 -0
  66. package/package.json +19 -12
  67. package/.eslintignore +0 -5
  68. package/.mocharc.yml +0 -8
  69. package/CHANGELOG.md +0 -28
package/README.md CHANGED
@@ -36,4 +36,4 @@ const iota = sdk.coin('iota');
36
36
 
37
37
  ## Documentation
38
38
 
39
- For detailed API documentation, see the [BitGo API reference](https://app.bitgo.com/docs/).
39
+ For detailed API documentation, view the BitGo [Developer Portal](https://developers.bitgo.com/reference/overview#/).
@@ -1,58 +1,284 @@
1
- import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, KeyPair, ParseTransactionOptions, ParsedTransaction, SignTransactionOptions, SignedTransaction, VerifyTransactionOptions, MultisigType, MPCAlgorithm, TssVerifyAddressOptions } from '@bitgo-beta/sdk-core';
1
+ import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, EddsaSigningMaterial, KeyPair, MPCAlgorithm, MPCConsolidationRecoveryOptions, MPCRecoveryOptions, MPCSweepTxs, MPCTxs, MultisigType, ParsedTransaction, PopulatedIntent, PrebuildTransactionWithIntentOptions, signEddsaMpcV2RecoveryTx, SignedTransaction, SignTransactionOptions, TssVerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
2
2
  import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo-beta/statics';
3
+ import { ExplainTransactionOptions, IotaParseTransactionOptions, TransactionExplanation } from './lib/iface';
4
+ export interface IotaRecoveryOptions extends MPCRecoveryOptions {
5
+ fullnodeRpcUrl?: string;
6
+ }
7
+ /**
8
+ * IOTA coin implementation.
9
+ * Supports TSS (Threshold Signature Scheme) with EDDSA algorithm.
10
+ */
3
11
  export declare class Iota extends BaseCoin {
4
12
  protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
5
13
  protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
14
+ /**
15
+ * Factory method to create an IOTA coin instance.
16
+ */
6
17
  static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
7
18
  getBaseFactor(): string | number;
8
19
  getChain(): string;
9
20
  getFamily(): CoinFamily;
10
21
  getFullName(): string;
11
- /** @inheritDoc */
12
22
  supportsTss(): boolean;
13
- /** inherited doc */
14
23
  getDefaultMultisigType(): MultisigType;
15
24
  getMPCAlgorithm(): MPCAlgorithm;
16
25
  /**
17
- * Check if an address is valid
18
- * @param address the address to be validated
26
+ * Validates an IOTA address.
27
+ * @param address - The address to validate (64-character hex string)
19
28
  * @returns true if the address is valid
20
29
  */
21
30
  isValidAddress(address: string): boolean;
22
31
  /**
23
- * Verifies that a transaction prebuild complies with the original intention
24
- * @param params
32
+ * Validates a public key.
33
+ * @param pub - The public key to validate
34
+ * @returns true if the public key is valid
25
35
  */
26
- verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
36
+ isValidPub(pub: string): boolean;
27
37
  /**
28
- * Check if an address belongs to a wallet
29
- * @param params
38
+ * Verifies if an address belongs to a TSS wallet.
39
+ * @param params - Verification parameters including wallet address and user/backup public keys
40
+ * @returns true if the address belongs to the wallet
30
41
  */
31
42
  isWalletAddress(params: TssVerifyAddressOptions): Promise<boolean>;
32
43
  /**
33
- * Parse a transaction
34
- * @param params
44
+ * Explains a transaction by parsing its hex representation.
45
+ * @param params - Parameters containing the transaction hex
46
+ * @returns Detailed explanation of the transaction
47
+ * @throws Error if txHex is missing or transaction cannot be explained
35
48
  */
36
- parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
49
+ explainTransaction(params: ExplainTransactionOptions): Promise<TransactionExplanation>;
37
50
  /**
38
- * Generate a key pair
39
- * @param seed Optional seed to generate key pair from
51
+ * Verifies that a transaction prebuild matches the original transaction parameters.
52
+ * Ensures recipients and amounts align with the intended transaction.
53
+ *
54
+ * @param params - Verification parameters containing prebuild and original params
55
+ * @returns true if verification succeeds
56
+ * @throws Error if verification fails
40
57
  */
41
- generateKeyPair(seed?: Buffer): KeyPair;
58
+ verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
42
59
  /**
43
- * Check if a public key is valid
44
- * @param pub Public key to check
60
+ * Parses a transaction and extracts inputs, outputs, and fees.
61
+ * @param params - Parameters containing the transaction hex
62
+ * @returns Parsed transaction with inputs, outputs, and fee information
45
63
  */
46
- isValidPub(pub: string): boolean;
64
+ parseTransaction(params: IotaParseTransactionOptions): Promise<ParsedTransaction>;
47
65
  /**
48
- * Sign a transaction
49
- * @param params
66
+ * Generates a key pair for IOTA transactions.
67
+ * @param seed - Optional seed to generate deterministic key pair
68
+ * @returns Key pair with public and private keys
69
+ * @throws Error if private key generation fails
70
+ */
71
+ generateKeyPair(seed?: Buffer): KeyPair;
72
+ /**
73
+ * Signs a transaction (not implemented for IOTA).
74
+ * IOTA transactions are signed externally using TSS.
50
75
  */
51
76
  signTransaction(params: SignTransactionOptions): Promise<SignedTransaction>;
52
77
  /**
53
- * Audit a decrypted private key to ensure it's valid
54
- * @param params
78
+ * Audits a decrypted private key to ensure it's valid for the given public key.
79
+ * @param params - Parameters containing multiSigType, private key, and public key
80
+ * @throws Error if multiSigType is not TSS or if key validation fails
55
81
  */
56
82
  auditDecryptedKey({ multiSigType, prv, publicKey }: AuditDecryptedKeyParams): void;
83
+ /**
84
+ * Extracts the signable payload from a serialized transaction.
85
+ * @param serializedTx - The serialized transaction hex
86
+ * @returns Buffer containing the signable payload
87
+ */
88
+ getSignablePayload(serializedTx: string): Promise<Buffer>;
89
+ /**
90
+ * @inheritDoc
91
+ */
92
+ allowsAccountConsolidations(): boolean;
93
+ /**
94
+ * Sets coin-specific fields in the transaction intent.
95
+ * @param intent - The populated intent object to modify
96
+ * @param params - Parameters containing unspents data
97
+ */
98
+ setCoinSpecificFieldsInIntent(intent: PopulatedIntent, params: PrebuildTransactionWithIntentOptions): void;
99
+ /**
100
+ * Builds funds recovery transaction(s) without BitGo
101
+ *
102
+ * @param {IotaRecoveryOptions} params parameters needed to construct and
103
+ * (maybe) sign the transaction
104
+ * @param {EddsaSigningMaterial} [precomputedMaterial] signing material detected once by the
105
+ * caller (e.g. recoverConsolidations) to avoid re-decrypting the keycard on every loop iteration
106
+ *
107
+ * @returns {MPCTx | MPCSweepTxs} array of the serialized transaction hex strings and indices
108
+ * of the addresses being swept
109
+ */
110
+ recover(params: IotaRecoveryOptions, precomputedMaterial?: EddsaSigningMaterial): Promise<MPCTxs | MPCSweepTxs>;
111
+ /**
112
+ * Checks whether the address holds a positive balance of the specified token.
113
+ */
114
+ private hasTokenBalance;
115
+ /**
116
+ * Consolidates funds from multiple receive addresses to the base address (index 0).
117
+ * If walletPassphrase is not provided, returns unsigned transactions for offline signing
118
+ * (cold/custody wallet recovery). Otherwise, returns signed transactions.
119
+ *
120
+ * @param params - Consolidation recovery parameters
121
+ * @param params.bitgoKey - The commonKeychain (combined TSS public key)
122
+ * @param params.startingScanIndex - Starting address index to scan (default: 1)
123
+ * @param params.endingScanIndex - Ending address index to scan (default: startingScanIndex + 20)
124
+ * @param params.walletPassphrase - Optional passphrase for signing (omit for unsigned transactions)
125
+ * @returns MPCTxs (signed) or MPCSweepTxs (unsigned) containing all consolidation transactions
126
+ * @throws Error if no addresses with funds are found in the scan range
127
+ */
128
+ recoverConsolidations(params: MPCConsolidationRecoveryOptions): Promise<MPCTxs | MPCSweepTxs>;
129
+ /**
130
+ * Gets the total coin balance for an address.
131
+ *
132
+ * @param address - IOTA address to query
133
+ * @param rpcUrl - Optional RPC URL override
134
+ * @param coinType - Optional coin type (defaults to native IOTA)
135
+ * @returns Total balance as a bigint
136
+ */
137
+ private getBalance;
138
+ /**
139
+ * Fetches owned objects for an address via fullnode RPC.
140
+ * Handles pagination to retrieve all objects.
141
+ *
142
+ * @param address - IOTA address to query
143
+ * @param rpcUrl - Optional RPC URL override
144
+ * @param coinType - Optional coin type to filter objects (defaults to native IOTA)
145
+ * @returns Array of owned objects with balance information
146
+ */
147
+ private fetchOwnedObjects;
148
+ /**
149
+ * Makes JSON-RPC call to IOTA fullnode.
150
+ *
151
+ * @param url - Fullnode RPC URL
152
+ * @param method - RPC method name
153
+ * @param params - RPC parameters
154
+ * @returns RPC result
155
+ * @throws Error if RPC call fails
156
+ */
157
+ private makeRpcCall;
158
+ /**
159
+ * Gets the public node RPC URL from the centralized environment configuration.
160
+ *
161
+ * @returns RPC URL for the current BitGo environment
162
+ */
163
+ protected getPublicNodeUrl(): string;
164
+ /**
165
+ * Gets the native coin type identifier for filtering owned objects.
166
+ *
167
+ * @returns Native coin type string
168
+ */
169
+ private getNativeCoinType;
170
+ /**
171
+ * Prepares gas configuration for a recovery transaction.
172
+ *
173
+ * Gas estimation is done via a dry-run of a temporary transaction, then
174
+ * multiplied by DEFAULT_GAS_OVERHEAD (1.1x) as a safety buffer.
175
+ *
176
+ * @param ownedObjects - Native IOTA coin objects to use as gas payment
177
+ * @param senderAddress - Sender address for the transaction
178
+ * @param params - Recovery parameters (includes recoveryDestination, rpcUrl)
179
+ * @param paymentObjects - Optional token objects for token recovery
180
+ * @returns Gas budget, gas price, gas objects array, and total native balance
181
+ */
182
+ private prepareGasAndObjects;
183
+ private recoverIotaToken;
184
+ /**
185
+ * Detects MPCv1 vs MPCv2 keycard format and returns typed signing material.
186
+ * Wrapped as a protected method so sinon can stub it in tests (matching DOT/SUI).
187
+ */
188
+ protected getEddsaSigningMaterial(userKey: string, walletPassphrase: string): Promise<EddsaSigningMaterial>;
189
+ /**
190
+ * Runs the MPCv2 (MPS) recovery signing flow and returns the raw 64-byte Ed25519 signature.
191
+ * Wrapped as a protected method so sinon can stub it in tests (matching DOT/SUI).
192
+ */
193
+ protected signIotaMpcV2Recovery(params: Parameters<typeof signEddsaMpcV2RecoveryTx>[0]): Promise<Buffer>;
194
+ private signRecoveryTransaction;
195
+ /**
196
+ * Fetches current reference gas price from fullnode.
197
+ *
198
+ * @param rpcUrl - Optional RPC URL override
199
+ * @returns Current gas price
200
+ */
201
+ private fetchGasPrice;
202
+ /**
203
+ * Estimates gas for a transaction via dry run.
204
+ *
205
+ * @param txBase64 - Transaction in base64 format
206
+ * @param rpcUrl - Optional RPC URL override
207
+ * @returns Estimated gas cost
208
+ */
209
+ private estimateGas;
210
+ private buildUnsignedSweepTransaction;
211
+ /**
212
+ * Validates and extracts transaction hex from parameters.
213
+ * @param txHex - The transaction hex to validate
214
+ * @param operation - The operation being performed (for error messages)
215
+ * @returns The validated transaction hex
216
+ * @throws Error if txHex is missing
217
+ */
218
+ private validateAndExtractTxHex;
219
+ /**
220
+ * Validates that the transaction is a TransferTransaction.
221
+ * @param transaction - The transaction to validate
222
+ * @throws Error if transaction is not a TransferTransaction
223
+ */
224
+ private validateTransactionType;
225
+ /**
226
+ * Verifies that transaction recipients match the expected recipients.
227
+ * @param transaction - The transfer transaction to verify
228
+ * @param expectedRecipients - The expected recipients from transaction params
229
+ * @throws Error if recipients don't match
230
+ */
231
+ private verifyTransactionRecipients;
232
+ /**
233
+ * Normalizes recipients by extracting only relevant fields.
234
+ * @param recipients - Recipients to normalize
235
+ * @returns Normalized recipients with address, amount, and tokenName only
236
+ */
237
+ private normalizeRecipients;
238
+ /**
239
+ * Checks if expected recipients match actual recipients.
240
+ * @param expected - Expected recipients
241
+ * @param actual - Actual recipients from transaction
242
+ * @returns true if all expected recipients are found in actual recipients
243
+ */
244
+ private recipientsMatch;
245
+ /**
246
+ * Creates an empty parsed transaction result.
247
+ * Used when transaction has no outputs.
248
+ */
249
+ private createEmptyParsedTransaction;
250
+ /**
251
+ * Calculates the transaction fee from the explanation.
252
+ * @param explanation - The transaction explanation
253
+ * @returns The fee as a BigNumber
254
+ */
255
+ private calculateTransactionFee;
256
+ /**
257
+ * Builds the inputs array for a parsed transaction.
258
+ * Includes sender input and optionally sponsor input if present.
259
+ *
260
+ * @param explanation - The transaction explanation
261
+ * @param fee - The calculated transaction fee
262
+ * @returns Array of transaction inputs
263
+ */
264
+ private buildTransactionInputs;
265
+ /**
266
+ * Builds the outputs array for a parsed transaction.
267
+ * @param explanation - The transaction explanation
268
+ * @returns Array of transaction outputs
269
+ */
270
+ private buildTransactionOutputs;
271
+ /**
272
+ * Creates a transaction builder factory instance.
273
+ * @returns TransactionBuilderFactory for this coin
274
+ */
275
+ private getTxBuilderFactory;
276
+ /**
277
+ * Rebuilds a transaction from its hex representation.
278
+ * @param txHex - The transaction hex to rebuild
279
+ * @returns The rebuilt transaction
280
+ * @throws Error if transaction cannot be rebuilt
281
+ */
282
+ private rebuildTransaction;
57
283
  }
58
284
  //# sourceMappingURL=iota.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iota.d.ts","sourceRoot":"","sources":["../../src/iota.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EAEZ,YAAY,EAGZ,uBAAuB,EAExB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAK9E,qBAAa,IAAK,SAAQ,QAAQ;IAChC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,aAAa,IAAI,MAAM,GAAG,MAAM;IAIhC,QAAQ;IAIR,SAAS,IAAI,UAAU;IAIvB,WAAW;IAIX,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKxC;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BxE;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKnF;;;OAGG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAYvC;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIjF;;;OAGG;IACH,iBAAiB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,uBAAuB,GAAG,IAAI;CAMnF"}
1
+ {"version":3,"file":"iota.d.ts","sourceRoot":"","sources":["../../src/iota.ts"],"names":[],"mappings":"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"}