@bitgo-beta/sdk-coin-iota 1.0.1-beta.44 → 1.0.1-beta.441

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 +134 -23
  3. package/dist/src/iota.d.ts.map +1 -1
  4. package/dist/src/iota.js +286 -46
  5. package/dist/src/lib/constants.d.ts +59 -6
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +76 -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 +108 -7
  33. package/dist/src/lib/utils.d.ts.map +1 -1
  34. package/dist/src/lib/utils.js +146 -11
  35. package/dist/test/resources/iota.d.ts +35 -0
  36. package/dist/test/resources/iota.d.ts.map +1 -0
  37. package/dist/test/resources/iota.js +93 -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 +501 -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 +17 -11
  67. package/.eslintignore +0 -5
  68. package/.mocharc.yml +0 -8
  69. package/CHANGELOG.md +0 -28
@@ -1,11 +1,79 @@
1
1
  "use strict";
2
+ // ========================================
3
+ // Address and Digest Length Constants
4
+ // ========================================
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SECONDS_PER_WEEK = exports.AMOUNT_BYTES_LENGTH = exports.ADDRESS_BYTES_LENGTH = exports.IOTA_SIGNATURE_LENGTH = exports.IOTA_BLOCK_ID_LENGTH = exports.IOTA_TRANSACTION_ID_LENGTH = exports.IOTA_ADDRESS_LENGTH = void 0;
6
+ exports.TRANSFER_TRANSACTION_COMMANDS = exports.MAX_GAS_PRICE = exports.MAX_GAS_BUDGET = exports.MAX_RECIPIENTS = exports.MAX_GAS_PAYMENT_OBJECTS = exports.MAX_INPUT_OBJECTS = exports.IOTA_KEY_BYTES_LENGTH = exports.IOTA_SIGNATURE_LENGTH = exports.IOTA_BLOCK_DIGEST_LENGTH = exports.IOTA_TRANSACTION_DIGEST_LENGTH = exports.IOTA_ADDRESS_LENGTH = void 0;
7
+ /**
8
+ * Length of IOTA addresses in characters (excluding 0x prefix).
9
+ * IOTA uses 64-character hexadecimal addresses.
10
+ */
4
11
  exports.IOTA_ADDRESS_LENGTH = 64;
5
- exports.IOTA_TRANSACTION_ID_LENGTH = 64;
6
- exports.IOTA_BLOCK_ID_LENGTH = 64;
7
- exports.IOTA_SIGNATURE_LENGTH = 128;
8
- exports.ADDRESS_BYTES_LENGTH = 32;
9
- exports.AMOUNT_BYTES_LENGTH = 8;
10
- exports.SECONDS_PER_WEEK = 7 * 24 * 60 * 60; // 1 week in seconds
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFDekIsUUFBQSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDaEMsUUFBQSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDMUIsUUFBQSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDNUIsUUFBQSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDMUIsUUFBQSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDeEIsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSU9UQV9BRERSRVNTX0xFTkdUSCA9IDY0O1xuZXhwb3J0IGNvbnN0IElPVEFfVFJBTlNBQ1RJT05fSURfTEVOR1RIID0gNjQ7XG5leHBvcnQgY29uc3QgSU9UQV9CTE9DS19JRF9MRU5HVEggPSA2NDtcbmV4cG9ydCBjb25zdCBJT1RBX1NJR05BVFVSRV9MRU5HVEggPSAxMjg7XG5leHBvcnQgY29uc3QgQUREUkVTU19CWVRFU19MRU5HVEggPSAzMjtcbmV4cG9ydCBjb25zdCBBTU9VTlRfQllURVNfTEVOR1RIID0gODtcbmV4cG9ydCBjb25zdCBTRUNPTkRTX1BFUl9XRUVLID0gNyAqIDI0ICogNjAgKiA2MDsgLy8gMSB3ZWVrIGluIHNlY29uZHNcbiJdfQ==
12
+ /**
13
+ * Length of transaction digest in bytes.
14
+ * Used for transaction IDs and hashes.
15
+ */
16
+ exports.IOTA_TRANSACTION_DIGEST_LENGTH = 32;
17
+ /**
18
+ * Length of block digest in bytes.
19
+ * Used for block IDs and references.
20
+ */
21
+ exports.IOTA_BLOCK_DIGEST_LENGTH = 32;
22
+ // ========================================
23
+ // Cryptographic Constants
24
+ // ========================================
25
+ /**
26
+ * Length of Ed25519 signatures in bytes.
27
+ * IOTA uses Ed25519 for transaction signing.
28
+ */
29
+ exports.IOTA_SIGNATURE_LENGTH = 64;
30
+ /**
31
+ * Length of Ed25519 public keys in bytes.
32
+ * Standard Ed25519 key size.
33
+ */
34
+ exports.IOTA_KEY_BYTES_LENGTH = 32;
35
+ // ========================================
36
+ // Transaction Object Limits
37
+ // ========================================
38
+ /**
39
+ * Maximum number of input objects allowed in a single transaction.
40
+ * This limit ensures transactions can be processed efficiently by the network.
41
+ */
42
+ exports.MAX_INPUT_OBJECTS = 2048;
43
+ /**
44
+ * Maximum number of gas payment objects allowed per transaction.
45
+ * When exceeded, objects must be merged before the transaction can be built.
46
+ * This prevents transaction size from becoming too large.
47
+ */
48
+ exports.MAX_GAS_PAYMENT_OBJECTS = 256;
49
+ /**
50
+ * Maximum number of recipients in a transfer transaction.
51
+ * Limits the number of outputs to keep transaction size manageable.
52
+ */
53
+ exports.MAX_RECIPIENTS = 256;
54
+ // ========================================
55
+ // Gas Configuration Limits
56
+ // ========================================
57
+ /**
58
+ * Maximum gas budget allowed for a transaction.
59
+ * Used for dry-run simulations to estimate gas costs.
60
+ * Set to a very high value (50 billion) to ensure simulation completes.
61
+ */
62
+ exports.MAX_GAS_BUDGET = 50000000000;
63
+ /**
64
+ * Maximum gas price for simulated transactions.
65
+ * Used when building dry-run transactions for gas estimation.
66
+ */
67
+ exports.MAX_GAS_PRICE = 100000;
68
+ // ========================================
69
+ // Transaction Command Types
70
+ // ========================================
71
+ /**
72
+ * Valid command types for transfer transactions.
73
+ * Transfer transactions can only contain these three command types:
74
+ * - SplitCoins: Split a coin into multiple coins with specified amounts
75
+ * - MergeCoins: Merge multiple coins into a single coin
76
+ * - TransferObjects: Transfer coins/objects to recipients
77
+ */
78
+ exports.TRANSFER_TRANSACTION_COMMANDS = ['SplitCoins', 'MergeCoins', 'TransferObjects'];
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEyQztBQUMzQyxzQ0FBc0M7QUFDdEMsMkNBQTJDOzs7QUFFM0M7OztHQUdHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFdEM7OztHQUdHO0FBQ1UsUUFBQSw4QkFBOEIsR0FBRyxFQUFFLENBQUM7QUFFakQ7OztHQUdHO0FBQ1UsUUFBQSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFFM0MsMkNBQTJDO0FBQzNDLDBCQUEwQjtBQUMxQiwyQ0FBMkM7QUFFM0M7OztHQUdHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFFeEM7OztHQUdHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFFeEMsMkNBQTJDO0FBQzNDLDRCQUE0QjtBQUM1QiwyQ0FBMkM7QUFFM0M7OztHQUdHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFFdEM7Ozs7R0FJRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBRTNDOzs7R0FHRztBQUNVLFFBQUEsY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUVsQywyQ0FBMkM7QUFDM0MsMkJBQTJCO0FBQzNCLDJDQUEyQztBQUUzQzs7OztHQUlHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBRTFDOzs7R0FHRztBQUNVLFFBQUEsYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUVwQywyQ0FBMkM7QUFDM0MsNEJBQTRCO0FBQzVCLDJDQUEyQztBQUUzQzs7Ozs7O0dBTUc7QUFDVSxRQUFBLDZCQUE2QixHQUFHLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQWRkcmVzcyBhbmQgRGlnZXN0IExlbmd0aCBDb25zdGFudHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBMZW5ndGggb2YgSU9UQSBhZGRyZXNzZXMgaW4gY2hhcmFjdGVycyAoZXhjbHVkaW5nIDB4IHByZWZpeCkuXG4gKiBJT1RBIHVzZXMgNjQtY2hhcmFjdGVyIGhleGFkZWNpbWFsIGFkZHJlc3Nlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IElPVEFfQUREUkVTU19MRU5HVEggPSA2NDtcblxuLyoqXG4gKiBMZW5ndGggb2YgdHJhbnNhY3Rpb24gZGlnZXN0IGluIGJ5dGVzLlxuICogVXNlZCBmb3IgdHJhbnNhY3Rpb24gSURzIGFuZCBoYXNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBJT1RBX1RSQU5TQUNUSU9OX0RJR0VTVF9MRU5HVEggPSAzMjtcblxuLyoqXG4gKiBMZW5ndGggb2YgYmxvY2sgZGlnZXN0IGluIGJ5dGVzLlxuICogVXNlZCBmb3IgYmxvY2sgSURzIGFuZCByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgY29uc3QgSU9UQV9CTE9DS19ESUdFU1RfTEVOR1RIID0gMzI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENyeXB0b2dyYXBoaWMgQ29uc3RhbnRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTGVuZ3RoIG9mIEVkMjU1MTkgc2lnbmF0dXJlcyBpbiBieXRlcy5cbiAqIElPVEEgdXNlcyBFZDI1NTE5IGZvciB0cmFuc2FjdGlvbiBzaWduaW5nLlxuICovXG5leHBvcnQgY29uc3QgSU9UQV9TSUdOQVRVUkVfTEVOR1RIID0gNjQ7XG5cbi8qKlxuICogTGVuZ3RoIG9mIEVkMjU1MTkgcHVibGljIGtleXMgaW4gYnl0ZXMuXG4gKiBTdGFuZGFyZCBFZDI1NTE5IGtleSBzaXplLlxuICovXG5leHBvcnQgY29uc3QgSU9UQV9LRVlfQllURVNfTEVOR1RIID0gMzI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRyYW5zYWN0aW9uIE9iamVjdCBMaW1pdHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBNYXhpbXVtIG51bWJlciBvZiBpbnB1dCBvYmplY3RzIGFsbG93ZWQgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24uXG4gKiBUaGlzIGxpbWl0IGVuc3VyZXMgdHJhbnNhY3Rpb25zIGNhbiBiZSBwcm9jZXNzZWQgZWZmaWNpZW50bHkgYnkgdGhlIG5ldHdvcmsuXG4gKi9cbmV4cG9ydCBjb25zdCBNQVhfSU5QVVRfT0JKRUNUUyA9IDIwNDg7XG5cbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2YgZ2FzIHBheW1lbnQgb2JqZWN0cyBhbGxvd2VkIHBlciB0cmFuc2FjdGlvbi5cbiAqIFdoZW4gZXhjZWVkZWQsIG9iamVjdHMgbXVzdCBiZSBtZXJnZWQgYmVmb3JlIHRoZSB0cmFuc2FjdGlvbiBjYW4gYmUgYnVpbHQuXG4gKiBUaGlzIHByZXZlbnRzIHRyYW5zYWN0aW9uIHNpemUgZnJvbSBiZWNvbWluZyB0b28gbGFyZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBNQVhfR0FTX1BBWU1FTlRfT0JKRUNUUyA9IDI1NjtcblxuLyoqXG4gKiBNYXhpbXVtIG51bWJlciBvZiByZWNpcGllbnRzIGluIGEgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gKiBMaW1pdHMgdGhlIG51bWJlciBvZiBvdXRwdXRzIHRvIGtlZXAgdHJhbnNhY3Rpb24gc2l6ZSBtYW5hZ2VhYmxlLlxuICovXG5leHBvcnQgY29uc3QgTUFYX1JFQ0lQSUVOVFMgPSAyNTY7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdhcyBDb25maWd1cmF0aW9uIExpbWl0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIE1heGltdW0gZ2FzIGJ1ZGdldCBhbGxvd2VkIGZvciBhIHRyYW5zYWN0aW9uLlxuICogVXNlZCBmb3IgZHJ5LXJ1biBzaW11bGF0aW9ucyB0byBlc3RpbWF0ZSBnYXMgY29zdHMuXG4gKiBTZXQgdG8gYSB2ZXJ5IGhpZ2ggdmFsdWUgKDUwIGJpbGxpb24pIHRvIGVuc3VyZSBzaW11bGF0aW9uIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9HQVNfQlVER0VUID0gNTAwMDAwMDAwMDA7XG5cbi8qKlxuICogTWF4aW11bSBnYXMgcHJpY2UgZm9yIHNpbXVsYXRlZCB0cmFuc2FjdGlvbnMuXG4gKiBVc2VkIHdoZW4gYnVpbGRpbmcgZHJ5LXJ1biB0cmFuc2FjdGlvbnMgZm9yIGdhcyBlc3RpbWF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgTUFYX0dBU19QUklDRSA9IDEwMDAwMDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJhbnNhY3Rpb24gQ29tbWFuZCBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFZhbGlkIGNvbW1hbmQgdHlwZXMgZm9yIHRyYW5zZmVyIHRyYW5zYWN0aW9ucy5cbiAqIFRyYW5zZmVyIHRyYW5zYWN0aW9ucyBjYW4gb25seSBjb250YWluIHRoZXNlIHRocmVlIGNvbW1hbmQgdHlwZXM6XG4gKiAtIFNwbGl0Q29pbnM6IFNwbGl0IGEgY29pbiBpbnRvIG11bHRpcGxlIGNvaW5zIHdpdGggc3BlY2lmaWVkIGFtb3VudHNcbiAqIC0gTWVyZ2VDb2luczogTWVyZ2UgbXVsdGlwbGUgY29pbnMgaW50byBhIHNpbmdsZSBjb2luXG4gKiAtIFRyYW5zZmVyT2JqZWN0czogVHJhbnNmZXIgY29pbnMvb2JqZWN0cyB0byByZWNpcGllbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBUUkFOU0ZFUl9UUkFOU0FDVElPTl9DT01NQU5EUyA9IFsnU3BsaXRDb2lucycsICdNZXJnZUNvaW5zJywgJ1RyYW5zZmVyT2JqZWN0cyddO1xuIl19
@@ -1,7 +1,179 @@
1
+ import { ParseTransactionOptions as BaseParseTransactionOptions, TransactionExplanation as BaseTransactionExplanation, TransactionRecipient, TransactionType as BitGoTransactionType, TransactionType } from '@bitgo-beta/sdk-core';
1
2
  /**
2
- * The transaction data returned from the toJson() function of a transaction
3
+ * Extended transaction explanation for IOTA transactions.
4
+ * Includes IOTA-specific fields like sender and optional sponsor.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const explanation: TransactionExplanation = {
9
+ * type: TransactionType.Send,
10
+ * sender: '0x1234...',
11
+ * sponsor: '0x5678...', // Optional gas sponsor
12
+ * outputAmount: '1000000',
13
+ * outputs: [...],
14
+ * fee: { fee: '5000' }
15
+ * };
16
+ * ```
17
+ */
18
+ export interface TransactionExplanation extends BaseTransactionExplanation {
19
+ /** The type of transaction (e.g., Send, Receive) */
20
+ type: BitGoTransactionType;
21
+ /** The address initiating the transaction */
22
+ sender: string;
23
+ /**
24
+ * Optional gas sponsor address.
25
+ * When present, this address pays for the transaction's gas fees
26
+ * instead of the sender.
27
+ */
28
+ sponsor?: string;
29
+ }
30
+ /**
31
+ * Represents an IOTA object (coin or NFT) used as transaction input.
32
+ * Objects in IOTA are versioned and content-addressable.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const coinObject: TransactionObjectInput = {
37
+ * objectId: '0x1234...', // Unique object identifier
38
+ * version: '42', // Object version number
39
+ * digest: 'ABC123...' // Content hash
40
+ * };
41
+ * ```
42
+ */
43
+ export type TransactionObjectInput = {
44
+ /** Unique identifier for the object (64-character hex string) */
45
+ objectId: string;
46
+ /** Version number of the object (as string) */
47
+ version: string;
48
+ /** Base58-encoded digest of the object's content */
49
+ digest: string;
50
+ };
51
+ /**
52
+ * Gas configuration for IOTA transactions.
53
+ * All fields are optional to support both simulation and real transactions.
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const gasData: GasData = {
58
+ * gasBudget: 5000000, // Maximum gas units to spend
59
+ * gasPrice: 1000, // Price per gas unit
60
+ * gasPaymentObjects: [coinObject1, coinObject2] // Coins to pay gas
61
+ * };
62
+ * ```
63
+ */
64
+ export type GasData = {
65
+ /**
66
+ * Maximum amount of gas units this transaction can consume.
67
+ * Measured in gas units.
68
+ */
69
+ gasBudget?: number;
70
+ /**
71
+ * Price per gas unit in MIST (smallest IOTA unit).
72
+ * Total fee = gasBudget * gasPrice
73
+ */
74
+ gasPrice?: number;
75
+ /**
76
+ * Array of coin objects used to pay for gas.
77
+ * These objects will be consumed to cover the transaction fee.
78
+ */
79
+ gasPaymentObjects?: TransactionObjectInput[];
80
+ };
81
+ /**
82
+ * Base transaction data returned from the toJson() function.
83
+ * Contains common fields present in all IOTA transactions.
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * const txData: TxData = {
88
+ * type: TransactionType.Send,
89
+ * sender: '0x1234...',
90
+ * gasBudget: 5000000,
91
+ * gasPrice: 1000,
92
+ * gasPaymentObjects: [...],
93
+ * gasSponsor: '0x5678...' // Optional
94
+ * };
95
+ * ```
3
96
  */
4
97
  export interface TxData {
5
- id: string;
98
+ /** Transaction ID (digest), available after transaction is built */
99
+ id?: string;
100
+ /** Address of the transaction sender */
101
+ sender: string;
102
+ /** Maximum gas units allocated for this transaction */
103
+ gasBudget?: number;
104
+ /** Price per gas unit in MIST */
105
+ gasPrice?: number;
106
+ /** Coin objects used to pay for gas */
107
+ gasPaymentObjects?: TransactionObjectInput[];
108
+ /**
109
+ * Optional address that sponsors (pays for) the gas.
110
+ * If not provided, the sender pays for gas.
111
+ */
112
+ gasSponsor?: string;
113
+ /** Type of the transaction */
114
+ type: TransactionType;
115
+ }
116
+ /**
117
+ * Transfer transaction data with recipient information.
118
+ * Extends TxData with transfer-specific fields.
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const transferData: TransferTxData = {
123
+ * type: TransactionType.Send,
124
+ * sender: '0x1234...',
125
+ * recipients: [
126
+ * { address: '0xabcd...', amount: '1000000' },
127
+ * { address: '0xef01...', amount: '2000000' }
128
+ * ],
129
+ * paymentObjects: [coinObject],
130
+ * gasBudget: 5000000,
131
+ * gasPrice: 1000,
132
+ * gasPaymentObjects: [gasObject]
133
+ * };
134
+ * ```
135
+ */
136
+ export interface TransferTxData extends TxData {
137
+ /**
138
+ * Array of recipients and the amounts they receive.
139
+ * Each recipient must have a valid IOTA address and amount.
140
+ */
141
+ recipients: TransactionRecipient[];
142
+ /**
143
+ * Optional coin objects used as payment sources.
144
+ * These are split and transferred to recipients.
145
+ * If not provided, gas objects are used for payment.
146
+ */
147
+ paymentObjects?: TransactionObjectInput[];
148
+ }
149
+ /**
150
+ * Options for explaining an IOTA transaction.
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * const explanation = await iota.explainTransaction({
155
+ * txHex: '0x1234...' // Raw transaction hex
156
+ * });
157
+ * ```
158
+ */
159
+ export interface ExplainTransactionOptions {
160
+ /** Raw transaction data in hexadecimal format */
161
+ txHex: string;
162
+ }
163
+ /**
164
+ * Options for parsing an IOTA transaction.
165
+ * Extends base parsing options with IOTA-specific requirements.
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const parsed = await iota.parseTransaction({
170
+ * txHex: '0x1234...' // Raw transaction hex
171
+ * });
172
+ * // Returns: { inputs: [...], outputs: [...], fee: BigNumber }
173
+ * ```
174
+ */
175
+ export interface IotaParseTransactionOptions extends BaseParseTransactionOptions {
176
+ /** Raw transaction data in hexadecimal format */
177
+ txHex: string;
6
178
  }
7
179
  //# sourceMappingURL=iface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;CACZ"}
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,IAAI,2BAA2B,EACtD,sBAAsB,IAAI,0BAA0B,EACpD,oBAAoB,EACpB,eAAe,IAAI,oBAAoB,EACvC,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,oDAAoD;IACpD,IAAI,EAAE,oBAAoB,CAAC;IAE3B,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAEhB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAC9C,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,MAAM;IACrB,oEAAoE;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAE7C;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C;;;OAGG;IACH,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAEnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAC3C;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,yBAAyB;IACxC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;IAC9E,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyBhcyBCYXNlUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUgYXMgQml0R29UcmFuc2FjdGlvblR5cGUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG4vKipcbiAqIEV4dGVuZGVkIHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uIGZvciBJT1RBIHRyYW5zYWN0aW9ucy5cbiAqIEluY2x1ZGVzIElPVEEtc3BlY2lmaWMgZmllbGRzIGxpa2Ugc2VuZGVyIGFuZCBvcHRpb25hbCBzcG9uc29yLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHBsYW5hdGlvbjogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAqICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gKiAgIHNlbmRlcjogJzB4MTIzNC4uLicsXG4gKiAgIHNwb25zb3I6ICcweDU2NzguLi4nLCAvLyBPcHRpb25hbCBnYXMgc3BvbnNvclxuICogICBvdXRwdXRBbW91bnQ6ICcxMDAwMDAwJyxcbiAqICAgb3V0cHV0czogWy4uLl0sXG4gKiAgIGZlZTogeyBmZWU6ICc1MDAwJyB9XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgLyoqIFRoZSB0eXBlIG9mIHRyYW5zYWN0aW9uIChlLmcuLCBTZW5kLCBSZWNlaXZlKSAqL1xuICB0eXBlOiBCaXRHb1RyYW5zYWN0aW9uVHlwZTtcblxuICAvKiogVGhlIGFkZHJlc3MgaW5pdGlhdGluZyB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgc2VuZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGdhcyBzcG9uc29yIGFkZHJlc3MuXG4gICAqIFdoZW4gcHJlc2VudCwgdGhpcyBhZGRyZXNzIHBheXMgZm9yIHRoZSB0cmFuc2FjdGlvbidzIGdhcyBmZWVzXG4gICAqIGluc3RlYWQgb2YgdGhlIHNlbmRlci5cbiAgICovXG4gIHNwb25zb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJT1RBIG9iamVjdCAoY29pbiBvciBORlQpIHVzZWQgYXMgdHJhbnNhY3Rpb24gaW5wdXQuXG4gKiBPYmplY3RzIGluIElPVEEgYXJlIHZlcnNpb25lZCBhbmQgY29udGVudC1hZGRyZXNzYWJsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY29pbk9iamVjdDogVHJhbnNhY3Rpb25PYmplY3RJbnB1dCA9IHtcbiAqICAgb2JqZWN0SWQ6ICcweDEyMzQuLi4nLCAvLyBVbmlxdWUgb2JqZWN0IGlkZW50aWZpZXJcbiAqICAgdmVyc2lvbjogJzQyJywgICAgICAgICAvLyBPYmplY3QgdmVyc2lvbiBudW1iZXJcbiAqICAgZGlnZXN0OiAnQUJDMTIzLi4uJyAgICAvLyBDb250ZW50IGhhc2hcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25PYmplY3RJbnB1dCA9IHtcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgb2JqZWN0ICg2NC1jaGFyYWN0ZXIgaGV4IHN0cmluZykgKi9cbiAgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvKiogVmVyc2lvbiBudW1iZXIgb2YgdGhlIG9iamVjdCAoYXMgc3RyaW5nKSAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqIEJhc2U1OC1lbmNvZGVkIGRpZ2VzdCBvZiB0aGUgb2JqZWN0J3MgY29udGVudCAqL1xuICBkaWdlc3Q6IHN0cmluZztcbn07XG5cbi8qKlxuICogR2FzIGNvbmZpZ3VyYXRpb24gZm9yIElPVEEgdHJhbnNhY3Rpb25zLlxuICogQWxsIGZpZWxkcyBhcmUgb3B0aW9uYWwgdG8gc3VwcG9ydCBib3RoIHNpbXVsYXRpb24gYW5kIHJlYWwgdHJhbnNhY3Rpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBnYXNEYXRhOiBHYXNEYXRhID0ge1xuICogICBnYXNCdWRnZXQ6IDUwMDAwMDAsICAvLyBNYXhpbXVtIGdhcyB1bml0cyB0byBzcGVuZFxuICogICBnYXNQcmljZTogMTAwMCwgICAgICAvLyBQcmljZSBwZXIgZ2FzIHVuaXRcbiAqICAgZ2FzUGF5bWVudE9iamVjdHM6IFtjb2luT2JqZWN0MSwgY29pbk9iamVjdDJdICAvLyBDb2lucyB0byBwYXkgZ2FzXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCB0eXBlIEdhc0RhdGEgPSB7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGFtb3VudCBvZiBnYXMgdW5pdHMgdGhpcyB0cmFuc2FjdGlvbiBjYW4gY29uc3VtZS5cbiAgICogTWVhc3VyZWQgaW4gZ2FzIHVuaXRzLlxuICAgKi9cbiAgZ2FzQnVkZ2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQcmljZSBwZXIgZ2FzIHVuaXQgaW4gTUlTVCAoc21hbGxlc3QgSU9UQSB1bml0KS5cbiAgICogVG90YWwgZmVlID0gZ2FzQnVkZ2V0ICogZ2FzUHJpY2VcbiAgICovXG4gIGdhc1ByaWNlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBjb2luIG9iamVjdHMgdXNlZCB0byBwYXkgZm9yIGdhcy5cbiAgICogVGhlc2Ugb2JqZWN0cyB3aWxsIGJlIGNvbnN1bWVkIHRvIGNvdmVyIHRoZSB0cmFuc2FjdGlvbiBmZWUuXG4gICAqL1xuICBnYXNQYXltZW50T2JqZWN0cz86IFRyYW5zYWN0aW9uT2JqZWN0SW5wdXRbXTtcbn07XG5cbi8qKlxuICogQmFzZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uLlxuICogQ29udGFpbnMgY29tbW9uIGZpZWxkcyBwcmVzZW50IGluIGFsbCBJT1RBIHRyYW5zYWN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdHhEYXRhOiBUeERhdGEgPSB7XG4gKiAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICogICBzZW5kZXI6ICcweDEyMzQuLi4nLFxuICogICBnYXNCdWRnZXQ6IDUwMDAwMDAsXG4gKiAgIGdhc1ByaWNlOiAxMDAwLFxuICogICBnYXNQYXltZW50T2JqZWN0czogWy4uLl0sXG4gKiAgIGdhc1Nwb25zb3I6ICcweDU2NzguLi4nICAvLyBPcHRpb25hbFxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIC8qKiBUcmFuc2FjdGlvbiBJRCAoZGlnZXN0KSwgYXZhaWxhYmxlIGFmdGVyIHRyYW5zYWN0aW9uIGlzIGJ1aWx0ICovXG4gIGlkPzogc3RyaW5nO1xuXG4gIC8qKiBBZGRyZXNzIG9mIHRoZSB0cmFuc2FjdGlvbiBzZW5kZXIgKi9cbiAgc2VuZGVyOiBzdHJpbmc7XG5cbiAgLyoqIE1heGltdW0gZ2FzIHVuaXRzIGFsbG9jYXRlZCBmb3IgdGhpcyB0cmFuc2FjdGlvbiAqL1xuICBnYXNCdWRnZXQ/OiBudW1iZXI7XG5cbiAgLyoqIFByaWNlIHBlciBnYXMgdW5pdCBpbiBNSVNUICovXG4gIGdhc1ByaWNlPzogbnVtYmVyO1xuXG4gIC8qKiBDb2luIG9iamVjdHMgdXNlZCB0byBwYXkgZm9yIGdhcyAqL1xuICBnYXNQYXltZW50T2JqZWN0cz86IFRyYW5zYWN0aW9uT2JqZWN0SW5wdXRbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYWRkcmVzcyB0aGF0IHNwb25zb3JzIChwYXlzIGZvcikgdGhlIGdhcy5cbiAgICogSWYgbm90IHByb3ZpZGVkLCB0aGUgc2VuZGVyIHBheXMgZm9yIGdhcy5cbiAgICovXG4gIGdhc1Nwb25zb3I/OiBzdHJpbmc7XG5cbiAgLyoqIFR5cGUgb2YgdGhlIHRyYW5zYWN0aW9uICovXG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbn1cblxuLyoqXG4gKiBUcmFuc2ZlciB0cmFuc2FjdGlvbiBkYXRhIHdpdGggcmVjaXBpZW50IGluZm9ybWF0aW9uLlxuICogRXh0ZW5kcyBUeERhdGEgd2l0aCB0cmFuc2Zlci1zcGVjaWZpYyBmaWVsZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRyYW5zZmVyRGF0YTogVHJhbnNmZXJUeERhdGEgPSB7XG4gKiAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICogICBzZW5kZXI6ICcweDEyMzQuLi4nLFxuICogICByZWNpcGllbnRzOiBbXG4gKiAgICAgeyBhZGRyZXNzOiAnMHhhYmNkLi4uJywgYW1vdW50OiAnMTAwMDAwMCcgfSxcbiAqICAgICB7IGFkZHJlc3M6ICcweGVmMDEuLi4nLCBhbW91bnQ6ICcyMDAwMDAwJyB9XG4gKiAgIF0sXG4gKiAgIHBheW1lbnRPYmplY3RzOiBbY29pbk9iamVjdF0sXG4gKiAgIGdhc0J1ZGdldDogNTAwMDAwMCxcbiAqICAgZ2FzUHJpY2U6IDEwMDAsXG4gKiAgIGdhc1BheW1lbnRPYmplY3RzOiBbZ2FzT2JqZWN0XVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZmVyVHhEYXRhIGV4dGVuZHMgVHhEYXRhIHtcbiAgLyoqXG4gICAqIEFycmF5IG9mIHJlY2lwaWVudHMgYW5kIHRoZSBhbW91bnRzIHRoZXkgcmVjZWl2ZS5cbiAgICogRWFjaCByZWNpcGllbnQgbXVzdCBoYXZlIGEgdmFsaWQgSU9UQSBhZGRyZXNzIGFuZCBhbW91bnQuXG4gICAqL1xuICByZWNpcGllbnRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb2luIG9iamVjdHMgdXNlZCBhcyBwYXltZW50IHNvdXJjZXMuXG4gICAqIFRoZXNlIGFyZSBzcGxpdCBhbmQgdHJhbnNmZXJyZWQgdG8gcmVjaXBpZW50cy5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBnYXMgb2JqZWN0cyBhcmUgdXNlZCBmb3IgcGF5bWVudC5cbiAgICovXG4gIHBheW1lbnRPYmplY3RzPzogVHJhbnNhY3Rpb25PYmplY3RJbnB1dFtdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGV4cGxhaW5pbmcgYW4gSU9UQSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXhwbGFuYXRpb24gPSBhd2FpdCBpb3RhLmV4cGxhaW5UcmFuc2FjdGlvbih7XG4gKiAgIHR4SGV4OiAnMHgxMjM0Li4uJyAgLy8gUmF3IHRyYW5zYWN0aW9uIGhleFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgLyoqIFJhdyB0cmFuc2FjdGlvbiBkYXRhIGluIGhleGFkZWNpbWFsIGZvcm1hdCAqL1xuICB0eEhleDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHBhcnNpbmcgYW4gSU9UQSB0cmFuc2FjdGlvbi5cbiAqIEV4dGVuZHMgYmFzZSBwYXJzaW5nIG9wdGlvbnMgd2l0aCBJT1RBLXNwZWNpZmljIHJlcXVpcmVtZW50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGFyc2VkID0gYXdhaXQgaW90YS5wYXJzZVRyYW5zYWN0aW9uKHtcbiAqICAgdHhIZXg6ICcweDEyMzQuLi4nICAvLyBSYXcgdHJhbnNhY3Rpb24gaGV4XG4gKiB9KTtcbiAqIC8vIFJldHVybnM6IHsgaW5wdXRzOiBbLi4uXSwgb3V0cHV0czogWy4uLl0sIGZlZTogQmlnTnVtYmVyIH1cbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElvdGFQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIEJhc2VQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIC8qKiBSYXcgdHJhbnNhY3Rpb24gZGF0YSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQgKi9cbiAgdHhIZXg6IHN0cmluZztcbn1cbiJdfQ==
@@ -4,6 +4,7 @@ export { KeyPair } from './keyPair';
4
4
  export { Transaction } from './transaction';
5
5
  export { TransactionBuilder } from './transactionBuilder';
6
6
  export { TransferBuilder } from './transferBuilder';
7
+ export { TransferTransaction } from './transferTransaction';
7
8
  export { TransactionBuilderFactory } from './transactionBuilderFactory';
8
9
  export { Interface, Utils };
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Utils = exports.Interface = exports.TransactionBuilderFactory = exports.TransferBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
36
+ exports.Utils = exports.Interface = exports.TransactionBuilderFactory = exports.TransferTransaction = exports.TransferBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
37
37
  const Utils = __importStar(require("./utils"));
38
38
  exports.Utils = Utils;
39
39
  const Interface = __importStar(require("./iface"));
@@ -46,6 +46,8 @@ var transactionBuilder_1 = require("./transactionBuilder");
46
46
  Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
47
47
  var transferBuilder_1 = require("./transferBuilder");
48
48
  Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
49
+ var transferTransaction_1 = require("./transferTransaction");
50
+ Object.defineProperty(exports, "TransferTransaction", { enumerable: true, get: function () { return transferTransaction_1.TransferTransaction; } });
49
51
  var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
50
52
  Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQVFiLHNCQUFLO0FBUHpCLG1EQUFxQztBQU81Qiw4QkFBUztBQUxsQixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgKiBhcyBJbnRlcmZhY2UgZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgSW50ZXJmYWNlLCBVdGlscyB9O1xuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQVNiLHNCQUFLO0FBUnpCLG1EQUFxQztBQVE1Qiw4QkFBUztBQU5sQixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIsNkRBQTREO0FBQW5ELDBIQUFBLG1CQUFtQixPQUFBO0FBQzVCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgSW50ZXJmYWNlIGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2ZlclRyYW5zYWN0aW9uJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgSW50ZXJmYWNlLCBVdGlscyB9O1xuIl19
@@ -1,18 +1,112 @@
1
1
  import { DefaultKeys, Ed25519KeyPair, KeyPairOptions } from '@bitgo-beta/sdk-core';
2
+ /**
3
+ * IOTA KeyPair implementation using Ed25519 cryptography.
4
+ *
5
+ * This class extends the Ed25519KeyPair base class and provides IOTA-specific
6
+ * key pair functionality. It's primarily used for TSS (Threshold Signature Scheme)
7
+ * operations where private keys are managed through multi-party computation.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Generate a random key pair
12
+ * const keyPair = new KeyPair();
13
+ *
14
+ * // Generate from a seed
15
+ * const keyPair = new KeyPair({ seed: Buffer.from('...') });
16
+ *
17
+ * // Generate from a public key
18
+ * const keyPair = new KeyPair({ pub: '8c26e54e36c902c5...' });
19
+ *
20
+ * // Get the IOTA address
21
+ * const address = keyPair.getAddress();
22
+ * ```
23
+ */
2
24
  export declare class KeyPair extends Ed25519KeyPair {
3
25
  /**
4
- * Public constructor. By default, creates a key pair with a random master seed.
26
+ * Creates a new IOTA key pair.
5
27
  *
6
- * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
28
+ * @param source - Optional configuration for key pair generation:
29
+ * - seed: Buffer - Generate deterministic key pair from seed
30
+ * - prv: string - Import from private key (not used for TSS)
31
+ * - pub: string - Import from public key only
32
+ * - If omitted, generates a random key pair
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // Random key pair
37
+ * const randomKeyPair = new KeyPair();
38
+ *
39
+ * // From seed (deterministic)
40
+ * const deterministicKeyPair = new KeyPair({
41
+ * seed: Buffer.from('my-seed-phrase')
42
+ * });
43
+ *
44
+ * // From public key only (for verification)
45
+ * const verificationKeyPair = new KeyPair({
46
+ * pub: '8c26e54e36c902c5452e8b44e28abc5aaa6c3faaf12b4c0e8a38b4c9da0c0a6a'
47
+ * });
48
+ * ```
7
49
  */
8
50
  constructor(source?: KeyPairOptions);
9
- /** @inheritdoc */
51
+ /**
52
+ * Returns the key pair as a DefaultKeys object.
53
+ * Always includes the public key, and includes the private key if available.
54
+ *
55
+ * @returns Object containing pub (always) and prv (if available)
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const keyPair = new KeyPair();
60
+ * const keys = keyPair.getKeys();
61
+ * console.log(keys.pub); // '8c26e54e...'
62
+ * console.log(keys.prv); // '1a2b3c...' or undefined
63
+ * ```
64
+ */
10
65
  getKeys(): DefaultKeys;
11
- /** @inheritdoc */
66
+ /**
67
+ * Records keys from a private key in protocol format.
68
+ *
69
+ * **Not implemented for IOTA.**
70
+ *
71
+ * IOTA uses TSS (Threshold Signature Scheme) where private keys are never
72
+ * reconstructed in full. Instead, key shares are distributed across multiple
73
+ * parties and signing is performed through multi-party computation.
74
+ *
75
+ * @param prv - The private key (unused)
76
+ * @throws Error always - method not supported for TSS-based signing
77
+ */
12
78
  recordKeysFromPrivateKeyInProtocolFormat(prv: string): DefaultKeys;
13
- /** @inheritdoc */
79
+ /**
80
+ * Records keys from a public key in protocol format.
81
+ * Validates the public key and returns it in the DefaultKeys format.
82
+ *
83
+ * @param pub - The Ed25519 public key (hex string)
84
+ * @returns DefaultKeys object containing only the public key
85
+ * @throws Error if the public key is invalid
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const keys = keyPair.recordKeysFromPublicKeyInProtocolFormat(
90
+ * '8c26e54e36c902c5452e8b44e28abc5aaa6c3faaf12b4c0e8a38b4c9da0c0a6a'
91
+ * );
92
+ * console.log(keys.pub); // '8c26e54e...'
93
+ * console.log(keys.prv); // undefined
94
+ * ```
95
+ */
14
96
  recordKeysFromPublicKeyInProtocolFormat(pub: string): DefaultKeys;
15
- /** @inheritdoc */
97
+ /**
98
+ * Derives the IOTA address from this key pair's public key.
99
+ * Uses the IOTA-specific address derivation algorithm.
100
+ *
101
+ * @returns The IOTA address (64-character hex string with 0x prefix)
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * const keyPair = new KeyPair();
106
+ * const address = keyPair.getAddress();
107
+ * console.log(address); // '0x9882188ba3e8070a9bb06ae9446cf607914ee8ee...'
108
+ * ```
109
+ */
16
110
  getAddress(): string;
17
111
  }
18
112
  //# sourceMappingURL=keyPair.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGnF,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAQtB,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAKlE,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAOjE,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGnF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC;;;;;;;;;;;;;OAaG;IACH,OAAO,IAAI,WAAW;IAUtB;;;;;;;;;;;OAWG;IACH,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIlE;;;;;;;;;;;;;;;;OAgBG;IACH,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAOjE;;;;;;;;;;;;OAYG;IACH,UAAU,IAAI,MAAM;CAGrB"}
@@ -6,16 +6,71 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.KeyPair = void 0;
7
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
8
  const utils_1 = __importDefault(require("./utils"));
9
+ /**
10
+ * IOTA KeyPair implementation using Ed25519 cryptography.
11
+ *
12
+ * This class extends the Ed25519KeyPair base class and provides IOTA-specific
13
+ * key pair functionality. It's primarily used for TSS (Threshold Signature Scheme)
14
+ * operations where private keys are managed through multi-party computation.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Generate a random key pair
19
+ * const keyPair = new KeyPair();
20
+ *
21
+ * // Generate from a seed
22
+ * const keyPair = new KeyPair({ seed: Buffer.from('...') });
23
+ *
24
+ * // Generate from a public key
25
+ * const keyPair = new KeyPair({ pub: '8c26e54e36c902c5...' });
26
+ *
27
+ * // Get the IOTA address
28
+ * const address = keyPair.getAddress();
29
+ * ```
30
+ */
9
31
  class KeyPair extends sdk_core_1.Ed25519KeyPair {
10
32
  /**
11
- * Public constructor. By default, creates a key pair with a random master seed.
33
+ * Creates a new IOTA key pair.
12
34
  *
13
- * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
35
+ * @param source - Optional configuration for key pair generation:
36
+ * - seed: Buffer - Generate deterministic key pair from seed
37
+ * - prv: string - Import from private key (not used for TSS)
38
+ * - pub: string - Import from public key only
39
+ * - If omitted, generates a random key pair
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Random key pair
44
+ * const randomKeyPair = new KeyPair();
45
+ *
46
+ * // From seed (deterministic)
47
+ * const deterministicKeyPair = new KeyPair({
48
+ * seed: Buffer.from('my-seed-phrase')
49
+ * });
50
+ *
51
+ * // From public key only (for verification)
52
+ * const verificationKeyPair = new KeyPair({
53
+ * pub: '8c26e54e36c902c5452e8b44e28abc5aaa6c3faaf12b4c0e8a38b4c9da0c0a6a'
54
+ * });
55
+ * ```
14
56
  */
15
57
  constructor(source) {
16
58
  super(source);
17
59
  }
18
- /** @inheritdoc */
60
+ /**
61
+ * Returns the key pair as a DefaultKeys object.
62
+ * Always includes the public key, and includes the private key if available.
63
+ *
64
+ * @returns Object containing pub (always) and prv (if available)
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const keyPair = new KeyPair();
69
+ * const keys = keyPair.getKeys();
70
+ * console.log(keys.pub); // '8c26e54e...'
71
+ * console.log(keys.prv); // '1a2b3c...' or undefined
72
+ * ```
73
+ */
19
74
  getKeys() {
20
75
  const result = { pub: this.keyPair.pub };
21
76
  if (this.keyPair.prv) {
@@ -23,22 +78,60 @@ class KeyPair extends sdk_core_1.Ed25519KeyPair {
23
78
  }
24
79
  return result;
25
80
  }
26
- /** @inheritdoc */
81
+ /**
82
+ * Records keys from a private key in protocol format.
83
+ *
84
+ * **Not implemented for IOTA.**
85
+ *
86
+ * IOTA uses TSS (Threshold Signature Scheme) where private keys are never
87
+ * reconstructed in full. Instead, key shares are distributed across multiple
88
+ * parties and signing is performed through multi-party computation.
89
+ *
90
+ * @param prv - The private key (unused)
91
+ * @throws Error always - method not supported for TSS-based signing
92
+ */
27
93
  recordKeysFromPrivateKeyInProtocolFormat(prv) {
28
- // We don't use private keys for IOTA since it's implemented for TSS.
29
- throw new Error('Method not implemented.');
94
+ throw new Error('Method not implemented. IOTA uses TSS and does not reconstruct private keys.');
30
95
  }
31
- /** @inheritdoc */
96
+ /**
97
+ * Records keys from a public key in protocol format.
98
+ * Validates the public key and returns it in the DefaultKeys format.
99
+ *
100
+ * @param pub - The Ed25519 public key (hex string)
101
+ * @returns DefaultKeys object containing only the public key
102
+ * @throws Error if the public key is invalid
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const keys = keyPair.recordKeysFromPublicKeyInProtocolFormat(
107
+ * '8c26e54e36c902c5452e8b44e28abc5aaa6c3faaf12b4c0e8a38b4c9da0c0a6a'
108
+ * );
109
+ * console.log(keys.pub); // '8c26e54e...'
110
+ * console.log(keys.prv); // undefined
111
+ * ```
112
+ */
32
113
  recordKeysFromPublicKeyInProtocolFormat(pub) {
33
114
  if (!utils_1.default.isValidPublicKey(pub)) {
34
- throw new Error(`Invalid Public Key ${pub}`);
115
+ throw new Error(`Invalid Public Key: ${pub}`);
35
116
  }
36
117
  return { pub };
37
118
  }
38
- /** @inheritdoc */
119
+ /**
120
+ * Derives the IOTA address from this key pair's public key.
121
+ * Uses the IOTA-specific address derivation algorithm.
122
+ *
123
+ * @returns The IOTA address (64-character hex string with 0x prefix)
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const keyPair = new KeyPair();
128
+ * const address = keyPair.getAddress();
129
+ * console.log(address); // '0x9882188ba3e8070a9bb06ae9446cf607914ee8ee...'
130
+ * ```
131
+ */
39
132
  getAddress() {
40
133
  return utils_1.default.getAddressFromPublicKey(this.keyPair.pub);
41
134
  }
42
135
  }
43
136
  exports.KeyPair = KeyPair;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBbUY7QUFDbkYsb0RBQTRCO0FBRTVCLE1BQWEsT0FBUSxTQUFRLHlCQUFjO0lBQ3pDOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU87UUFDTCxNQUFNLE1BQU0sR0FBZ0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix3Q0FBd0MsQ0FBQyxHQUFXO1FBQ2xELHFFQUFxRTtRQUNyRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELElBQUksQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVO1FBQ1IsT0FBTyxlQUFLLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFyQ0QsMEJBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVmYXVsdEtleXMsIEVkMjU1MTlLZXlQYWlyLCBLZXlQYWlyT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBFZDI1NTE5S2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgY29uc3QgcmVzdWx0OiBEZWZhdWx0S2V5cyA9IHsgcHViOiB0aGlzLmtleVBhaXIucHViIH07XG4gICAgaWYgKHRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIHJlc3VsdC5wcnYgPSB0aGlzLmtleVBhaXIucHJ2O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgLy8gV2UgZG9uJ3QgdXNlIHByaXZhdGUga2V5cyBmb3IgSU9UQSBzaW5jZSBpdCdzIGltcGxlbWVudGVkIGZvciBUU1MuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHVibGljS2V5SW5Qcm90b2NvbEZvcm1hdChwdWI6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFB1YmxpYyBLZXkgJHtwdWJ9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IHB1YiB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkodGhpcy5rZXlQYWlyLnB1Yik7XG4gIH1cbn1cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBbUY7QUFDbkYsb0RBQTRCO0FBRTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFhLE9BQVEsU0FBUSx5QkFBYztJQUN6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ0gsWUFBWSxNQUF1QjtRQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxPQUFPO1FBQ0wsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILHdDQUF3QyxDQUFDLEdBQVc7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILHVDQUF1QyxDQUFDLEdBQVc7UUFDakQsSUFBSSxDQUFDLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sZUFBSyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBOUdELDBCQThHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmF1bHRLZXlzLCBFZDI1NTE5S2V5UGFpciwgS2V5UGFpck9wdGlvbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogSU9UQSBLZXlQYWlyIGltcGxlbWVudGF0aW9uIHVzaW5nIEVkMjU1MTkgY3J5cHRvZ3JhcGh5LlxuICpcbiAqIFRoaXMgY2xhc3MgZXh0ZW5kcyB0aGUgRWQyNTUxOUtleVBhaXIgYmFzZSBjbGFzcyBhbmQgcHJvdmlkZXMgSU9UQS1zcGVjaWZpY1xuICoga2V5IHBhaXIgZnVuY3Rpb25hbGl0eS4gSXQncyBwcmltYXJpbHkgdXNlZCBmb3IgVFNTIChUaHJlc2hvbGQgU2lnbmF0dXJlIFNjaGVtZSlcbiAqIG9wZXJhdGlvbnMgd2hlcmUgcHJpdmF0ZSBrZXlzIGFyZSBtYW5hZ2VkIHRocm91Z2ggbXVsdGktcGFydHkgY29tcHV0YXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEdlbmVyYXRlIGEgcmFuZG9tIGtleSBwYWlyXG4gKiBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAqXG4gKiAvLyBHZW5lcmF0ZSBmcm9tIGEgc2VlZFxuICogY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgc2VlZDogQnVmZmVyLmZyb20oJy4uLicpIH0pO1xuICpcbiAqIC8vIEdlbmVyYXRlIGZyb20gYSBwdWJsaWMga2V5XG4gKiBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6ICc4YzI2ZTU0ZTM2YzkwMmM1Li4uJyB9KTtcbiAqXG4gKiAvLyBHZXQgdGhlIElPVEEgYWRkcmVzc1xuICogY29uc3QgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgRWQyNTUxOUtleVBhaXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBJT1RBIGtleSBwYWlyLlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3Iga2V5IHBhaXIgZ2VuZXJhdGlvbjpcbiAgICogICAtIHNlZWQ6IEJ1ZmZlciAtIEdlbmVyYXRlIGRldGVybWluaXN0aWMga2V5IHBhaXIgZnJvbSBzZWVkXG4gICAqICAgLSBwcnY6IHN0cmluZyAtIEltcG9ydCBmcm9tIHByaXZhdGUga2V5IChub3QgdXNlZCBmb3IgVFNTKVxuICAgKiAgIC0gcHViOiBzdHJpbmcgLSBJbXBvcnQgZnJvbSBwdWJsaWMga2V5IG9ubHlcbiAgICogICAtIElmIG9taXR0ZWQsIGdlbmVyYXRlcyBhIHJhbmRvbSBrZXkgcGFpclxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIFJhbmRvbSBrZXkgcGFpclxuICAgKiBjb25zdCByYW5kb21LZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICpcbiAgICogLy8gRnJvbSBzZWVkIChkZXRlcm1pbmlzdGljKVxuICAgKiBjb25zdCBkZXRlcm1pbmlzdGljS2V5UGFpciA9IG5ldyBLZXlQYWlyKHtcbiAgICogICBzZWVkOiBCdWZmZXIuZnJvbSgnbXktc2VlZC1waHJhc2UnKVxuICAgKiB9KTtcbiAgICpcbiAgICogLy8gRnJvbSBwdWJsaWMga2V5IG9ubHkgKGZvciB2ZXJpZmljYXRpb24pXG4gICAqIGNvbnN0IHZlcmlmaWNhdGlvbktleVBhaXIgPSBuZXcgS2V5UGFpcih7XG4gICAqICAgcHViOiAnOGMyNmU1NGUzNmM5MDJjNTQ1MmU4YjQ0ZTI4YWJjNWFhYTZjM2ZhYWYxMmI0YzBlOGEzOGI0YzlkYTBjMGE2YSdcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGtleSBwYWlyIGFzIGEgRGVmYXVsdEtleXMgb2JqZWN0LlxuICAgKiBBbHdheXMgaW5jbHVkZXMgdGhlIHB1YmxpYyBrZXksIGFuZCBpbmNsdWRlcyB0aGUgcHJpdmF0ZSBrZXkgaWYgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyBwdWIgKGFsd2F5cykgYW5kIHBydiAoaWYgYXZhaWxhYmxlKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuICAgKiBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAqIGNvbnNvbGUubG9nKGtleXMucHViKTsgLy8gJzhjMjZlNTRlLi4uJ1xuICAgKiBjb25zb2xlLmxvZyhrZXlzLnBydik7IC8vICcxYTJiM2MuLi4nIG9yIHVuZGVmaW5lZFxuICAgKiBgYGBcbiAgICovXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHJlc3VsdDogRGVmYXVsdEtleXMgPSB7IHB1YjogdGhpcy5rZXlQYWlyLnB1YiB9O1xuXG4gICAgaWYgKHRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIHJlc3VsdC5wcnYgPSB0aGlzLmtleVBhaXIucHJ2O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkcyBrZXlzIGZyb20gYSBwcml2YXRlIGtleSBpbiBwcm90b2NvbCBmb3JtYXQuXG4gICAqXG4gICAqICoqTm90IGltcGxlbWVudGVkIGZvciBJT1RBLioqXG4gICAqXG4gICAqIElPVEEgdXNlcyBUU1MgKFRocmVzaG9sZCBTaWduYXR1cmUgU2NoZW1lKSB3aGVyZSBwcml2YXRlIGtleXMgYXJlIG5ldmVyXG4gICAqIHJlY29uc3RydWN0ZWQgaW4gZnVsbC4gSW5zdGVhZCwga2V5IHNoYXJlcyBhcmUgZGlzdHJpYnV0ZWQgYWNyb3NzIG11bHRpcGxlXG4gICAqIHBhcnRpZXMgYW5kIHNpZ25pbmcgaXMgcGVyZm9ybWVkIHRocm91Z2ggbXVsdGktcGFydHkgY29tcHV0YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwcnYgLSBUaGUgcHJpdmF0ZSBrZXkgKHVudXNlZClcbiAgICogQHRocm93cyBFcnJvciBhbHdheXMgLSBtZXRob2Qgbm90IHN1cHBvcnRlZCBmb3IgVFNTLWJhc2VkIHNpZ25pbmdcbiAgICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLiBJT1RBIHVzZXMgVFNTIGFuZCBkb2VzIG5vdCByZWNvbnN0cnVjdCBwcml2YXRlIGtleXMuJyk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkcyBrZXlzIGZyb20gYSBwdWJsaWMga2V5IGluIHByb3RvY29sIGZvcm1hdC5cbiAgICogVmFsaWRhdGVzIHRoZSBwdWJsaWMga2V5IGFuZCByZXR1cm5zIGl0IGluIHRoZSBEZWZhdWx0S2V5cyBmb3JtYXQuXG4gICAqXG4gICAqIEBwYXJhbSBwdWIgLSBUaGUgRWQyNTUxOSBwdWJsaWMga2V5IChoZXggc3RyaW5nKVxuICAgKiBAcmV0dXJucyBEZWZhdWx0S2V5cyBvYmplY3QgY29udGFpbmluZyBvbmx5IHRoZSBwdWJsaWMga2V5XG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHB1YmxpYyBrZXkgaXMgaW52YWxpZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGtleXMgPSBrZXlQYWlyLnJlY29yZEtleXNGcm9tUHVibGljS2V5SW5Qcm90b2NvbEZvcm1hdChcbiAgICogICAnOGMyNmU1NGUzNmM5MDJjNTQ1MmU4YjQ0ZTI4YWJjNWFhYTZjM2ZhYWYxMmI0YzBlOGEzOGI0YzlkYTBjMGE2YSdcbiAgICogKTtcbiAgICogY29uc29sZS5sb2coa2V5cy5wdWIpOyAvLyAnOGMyNmU1NGUuLi4nXG4gICAqIGNvbnNvbGUubG9nKGtleXMucHJ2KTsgLy8gdW5kZWZpbmVkXG4gICAqIGBgYFxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUHVibGljIEtleTogJHtwdWJ9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IHB1YiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlcml2ZXMgdGhlIElPVEEgYWRkcmVzcyBmcm9tIHRoaXMga2V5IHBhaXIncyBwdWJsaWMga2V5LlxuICAgKiBVc2VzIHRoZSBJT1RBLXNwZWNpZmljIGFkZHJlc3MgZGVyaXZhdGlvbiBhbGdvcml0aG0uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBJT1RBIGFkZHJlc3MgKDY0LWNoYXJhY3RlciBoZXggc3RyaW5nIHdpdGggMHggcHJlZml4KVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuICAgKiBjb25zdCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gICAqIGNvbnNvbGUubG9nKGFkZHJlc3MpOyAvLyAnMHg5ODgyMTg4YmEzZTgwNzBhOWJiMDZhZTk0NDZjZjYwNzkxNGVlOGVlLi4uJ1xuICAgKiBgYGBcbiAgICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkodGhpcy5rZXlQYWlyLnB1Yik7XG4gIH1cbn1cbiJdfQ==