@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.
- package/README.md +1 -1
- package/dist/src/iota.d.ts +134 -23
- package/dist/src/iota.d.ts.map +1 -1
- package/dist/src/iota.js +286 -46
- package/dist/src/lib/constants.d.ts +59 -6
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +76 -8
- package/dist/src/lib/iface.d.ts +174 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +1 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +4 -2
- package/dist/src/lib/keyPair.d.ts +100 -6
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +103 -10
- package/dist/src/lib/transaction.d.ts +175 -5
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +390 -6
- package/dist/src/lib/transactionBuilder.d.ts +109 -9
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +200 -14
- package/dist/src/lib/transactionBuilderFactory.d.ts +98 -2
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +132 -5
- package/dist/src/lib/transferBuilder.d.ts +52 -2
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +86 -3
- package/dist/src/lib/transferTransaction.d.ts +124 -0
- package/dist/src/lib/transferTransaction.d.ts.map +1 -0
- package/dist/src/lib/transferTransaction.js +341 -0
- package/dist/src/lib/utils.d.ts +108 -7
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +146 -11
- package/dist/test/resources/iota.d.ts +35 -0
- package/dist/test/resources/iota.d.ts.map +1 -0
- package/dist/test/resources/iota.js +93 -0
- package/dist/test/unit/helpers/testHelpers.d.ts +57 -0
- package/dist/test/unit/helpers/testHelpers.d.ts.map +1 -0
- package/dist/test/unit/helpers/testHelpers.js +176 -0
- package/dist/test/unit/index.d.ts +2 -0
- package/dist/test/unit/index.d.ts.map +1 -0
- package/dist/test/unit/index.js +16 -0
- package/dist/test/unit/iota.d.ts +2 -0
- package/dist/test/unit/iota.d.ts.map +1 -0
- package/dist/test/unit/iota.js +501 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +108 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +188 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +178 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +438 -0
- package/dist/test/unit/transferTransaction.d.ts +2 -0
- package/dist/test/unit/transferTransaction.d.ts.map +1 -0
- package/dist/test/unit/transferTransaction.js +218 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +252 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +17 -11
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- 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.
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.
|
|
10
|
-
|
|
11
|
-
|
|
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
|
package/dist/src/lib/iface.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
|
|
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
|
|
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"}
|
package/dist/src/lib/iface.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyBhcyBCYXNlUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUgYXMgQml0R29UcmFuc2FjdGlvblR5cGUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG4vKipcbiAqIEV4dGVuZGVkIHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uIGZvciBJT1RBIHRyYW5zYWN0aW9ucy5cbiAqIEluY2x1ZGVzIElPVEEtc3BlY2lmaWMgZmllbGRzIGxpa2Ugc2VuZGVyIGFuZCBvcHRpb25hbCBzcG9uc29yLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHBsYW5hdGlvbjogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAqICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gKiAgIHNlbmRlcjogJzB4MTIzNC4uLicsXG4gKiAgIHNwb25zb3I6ICcweDU2NzguLi4nLCAvLyBPcHRpb25hbCBnYXMgc3BvbnNvclxuICogICBvdXRwdXRBbW91bnQ6ICcxMDAwMDAwJyxcbiAqICAgb3V0cHV0czogWy4uLl0sXG4gKiAgIGZlZTogeyBmZWU6ICc1MDAwJyB9XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgLyoqIFRoZSB0eXBlIG9mIHRyYW5zYWN0aW9uIChlLmcuLCBTZW5kLCBSZWNlaXZlKSAqL1xuICB0eXBlOiBCaXRHb1RyYW5zYWN0aW9uVHlwZTtcblxuICAvKiogVGhlIGFkZHJlc3MgaW5pdGlhdGluZyB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgc2VuZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGdhcyBzcG9uc29yIGFkZHJlc3MuXG4gICAqIFdoZW4gcHJlc2VudCwgdGhpcyBhZGRyZXNzIHBheXMgZm9yIHRoZSB0cmFuc2FjdGlvbidzIGdhcyBmZWVzXG4gICAqIGluc3RlYWQgb2YgdGhlIHNlbmRlci5cbiAgICovXG4gIHNwb25zb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJT1RBIG9iamVjdCAoY29pbiBvciBORlQpIHVzZWQgYXMgdHJhbnNhY3Rpb24gaW5wdXQuXG4gKiBPYmplY3RzIGluIElPVEEgYXJlIHZlcnNpb25lZCBhbmQgY29udGVudC1hZGRyZXNzYWJsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY29pbk9iamVjdDogVHJhbnNhY3Rpb25PYmplY3RJbnB1dCA9IHtcbiAqICAgb2JqZWN0SWQ6ICcweDEyMzQuLi4nLCAvLyBVbmlxdWUgb2JqZWN0IGlkZW50aWZpZXJcbiAqICAgdmVyc2lvbjogJzQyJywgICAgICAgICAvLyBPYmplY3QgdmVyc2lvbiBudW1iZXJcbiAqICAgZGlnZXN0OiAnQUJDMTIzLi4uJyAgICAvLyBDb250ZW50IGhhc2hcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25PYmplY3RJbnB1dCA9IHtcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgb2JqZWN0ICg2NC1jaGFyYWN0ZXIgaGV4IHN0cmluZykgKi9cbiAgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvKiogVmVyc2lvbiBudW1iZXIgb2YgdGhlIG9iamVjdCAoYXMgc3RyaW5nKSAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqIEJhc2U1OC1lbmNvZGVkIGRpZ2VzdCBvZiB0aGUgb2JqZWN0J3MgY29udGVudCAqL1xuICBkaWdlc3Q6IHN0cmluZztcbn07XG5cbi8qKlxuICogR2FzIGNvbmZpZ3VyYXRpb24gZm9yIElPVEEgdHJhbnNhY3Rpb25zLlxuICogQWxsIGZpZWxkcyBhcmUgb3B0aW9uYWwgdG8gc3VwcG9ydCBib3RoIHNpbXVsYXRpb24gYW5kIHJlYWwgdHJhbnNhY3Rpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBnYXNEYXRhOiBHYXNEYXRhID0ge1xuICogICBnYXNCdWRnZXQ6IDUwMDAwMDAsICAvLyBNYXhpbXVtIGdhcyB1bml0cyB0byBzcGVuZFxuICogICBnYXNQcmljZTogMTAwMCwgICAgICAvLyBQcmljZSBwZXIgZ2FzIHVuaXRcbiAqICAgZ2FzUGF5bWVudE9iamVjdHM6IFtjb2luT2JqZWN0MSwgY29pbk9iamVjdDJdICAvLyBDb2lucyB0byBwYXkgZ2FzXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCB0eXBlIEdhc0RhdGEgPSB7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGFtb3VudCBvZiBnYXMgdW5pdHMgdGhpcyB0cmFuc2FjdGlvbiBjYW4gY29uc3VtZS5cbiAgICogTWVhc3VyZWQgaW4gZ2FzIHVuaXRzLlxuICAgKi9cbiAgZ2FzQnVkZ2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQcmljZSBwZXIgZ2FzIHVuaXQgaW4gTUlTVCAoc21hbGxlc3QgSU9UQSB1bml0KS5cbiAgICogVG90YWwgZmVlID0gZ2FzQnVkZ2V0ICogZ2FzUHJpY2VcbiAgICovXG4gIGdhc1ByaWNlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBjb2luIG9iamVjdHMgdXNlZCB0byBwYXkgZm9yIGdhcy5cbiAgICogVGhlc2Ugb2JqZWN0cyB3aWxsIGJlIGNvbnN1bWVkIHRvIGNvdmVyIHRoZSB0cmFuc2FjdGlvbiBmZWUuXG4gICAqL1xuICBnYXNQYXltZW50T2JqZWN0cz86IFRyYW5zYWN0aW9uT2JqZWN0SW5wdXRbXTtcbn07XG5cbi8qKlxuICogQmFzZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uLlxuICogQ29udGFpbnMgY29tbW9uIGZpZWxkcyBwcmVzZW50IGluIGFsbCBJT1RBIHRyYW5zYWN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdHhEYXRhOiBUeERhdGEgPSB7XG4gKiAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICogICBzZW5kZXI6ICcweDEyMzQuLi4nLFxuICogICBnYXNCdWRnZXQ6IDUwMDAwMDAsXG4gKiAgIGdhc1ByaWNlOiAxMDAwLFxuICogICBnYXNQYXltZW50T2JqZWN0czogWy4uLl0sXG4gKiAgIGdhc1Nwb25zb3I6ICcweDU2NzguLi4nICAvLyBPcHRpb25hbFxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIC8qKiBUcmFuc2FjdGlvbiBJRCAoZGlnZXN0KSwgYXZhaWxhYmxlIGFmdGVyIHRyYW5zYWN0aW9uIGlzIGJ1aWx0ICovXG4gIGlkPzogc3RyaW5nO1xuXG4gIC8qKiBBZGRyZXNzIG9mIHRoZSB0cmFuc2FjdGlvbiBzZW5kZXIgKi9cbiAgc2VuZGVyOiBzdHJpbmc7XG5cbiAgLyoqIE1heGltdW0gZ2FzIHVuaXRzIGFsbG9jYXRlZCBmb3IgdGhpcyB0cmFuc2FjdGlvbiAqL1xuICBnYXNCdWRnZXQ/OiBudW1iZXI7XG5cbiAgLyoqIFByaWNlIHBlciBnYXMgdW5pdCBpbiBNSVNUICovXG4gIGdhc1ByaWNlPzogbnVtYmVyO1xuXG4gIC8qKiBDb2luIG9iamVjdHMgdXNlZCB0byBwYXkgZm9yIGdhcyAqL1xuICBnYXNQYXltZW50T2JqZWN0cz86IFRyYW5zYWN0aW9uT2JqZWN0SW5wdXRbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYWRkcmVzcyB0aGF0IHNwb25zb3JzIChwYXlzIGZvcikgdGhlIGdhcy5cbiAgICogSWYgbm90IHByb3ZpZGVkLCB0aGUgc2VuZGVyIHBheXMgZm9yIGdhcy5cbiAgICovXG4gIGdhc1Nwb25zb3I/OiBzdHJpbmc7XG5cbiAgLyoqIFR5cGUgb2YgdGhlIHRyYW5zYWN0aW9uICovXG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbn1cblxuLyoqXG4gKiBUcmFuc2ZlciB0cmFuc2FjdGlvbiBkYXRhIHdpdGggcmVjaXBpZW50IGluZm9ybWF0aW9uLlxuICogRXh0ZW5kcyBUeERhdGEgd2l0aCB0cmFuc2Zlci1zcGVjaWZpYyBmaWVsZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRyYW5zZmVyRGF0YTogVHJhbnNmZXJUeERhdGEgPSB7XG4gKiAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICogICBzZW5kZXI6ICcweDEyMzQuLi4nLFxuICogICByZWNpcGllbnRzOiBbXG4gKiAgICAgeyBhZGRyZXNzOiAnMHhhYmNkLi4uJywgYW1vdW50OiAnMTAwMDAwMCcgfSxcbiAqICAgICB7IGFkZHJlc3M6ICcweGVmMDEuLi4nLCBhbW91bnQ6ICcyMDAwMDAwJyB9XG4gKiAgIF0sXG4gKiAgIHBheW1lbnRPYmplY3RzOiBbY29pbk9iamVjdF0sXG4gKiAgIGdhc0J1ZGdldDogNTAwMDAwMCxcbiAqICAgZ2FzUHJpY2U6IDEwMDAsXG4gKiAgIGdhc1BheW1lbnRPYmplY3RzOiBbZ2FzT2JqZWN0XVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZmVyVHhEYXRhIGV4dGVuZHMgVHhEYXRhIHtcbiAgLyoqXG4gICAqIEFycmF5IG9mIHJlY2lwaWVudHMgYW5kIHRoZSBhbW91bnRzIHRoZXkgcmVjZWl2ZS5cbiAgICogRWFjaCByZWNpcGllbnQgbXVzdCBoYXZlIGEgdmFsaWQgSU9UQSBhZGRyZXNzIGFuZCBhbW91bnQuXG4gICAqL1xuICByZWNpcGllbnRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb2luIG9iamVjdHMgdXNlZCBhcyBwYXltZW50IHNvdXJjZXMuXG4gICAqIFRoZXNlIGFyZSBzcGxpdCBhbmQgdHJhbnNmZXJyZWQgdG8gcmVjaXBpZW50cy5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBnYXMgb2JqZWN0cyBhcmUgdXNlZCBmb3IgcGF5bWVudC5cbiAgICovXG4gIHBheW1lbnRPYmplY3RzPzogVHJhbnNhY3Rpb25PYmplY3RJbnB1dFtdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGV4cGxhaW5pbmcgYW4gSU9UQSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXhwbGFuYXRpb24gPSBhd2FpdCBpb3RhLmV4cGxhaW5UcmFuc2FjdGlvbih7XG4gKiAgIHR4SGV4OiAnMHgxMjM0Li4uJyAgLy8gUmF3IHRyYW5zYWN0aW9uIGhleFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgLyoqIFJhdyB0cmFuc2FjdGlvbiBkYXRhIGluIGhleGFkZWNpbWFsIGZvcm1hdCAqL1xuICB0eEhleDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHBhcnNpbmcgYW4gSU9UQSB0cmFuc2FjdGlvbi5cbiAqIEV4dGVuZHMgYmFzZSBwYXJzaW5nIG9wdGlvbnMgd2l0aCBJT1RBLXNwZWNpZmljIHJlcXVpcmVtZW50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGFyc2VkID0gYXdhaXQgaW90YS5wYXJzZVRyYW5zYWN0aW9uKHtcbiAqICAgdHhIZXg6ICcweDEyMzQuLi4nICAvLyBSYXcgdHJhbnNhY3Rpb24gaGV4XG4gKiB9KTtcbiAqIC8vIFJldHVybnM6IHsgaW5wdXRzOiBbLi4uXSwgb3V0cHV0czogWy4uLl0sIGZlZTogQmlnTnVtYmVyIH1cbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElvdGFQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIEJhc2VQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIC8qKiBSYXcgdHJhbnNhY3Rpb24gZGF0YSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQgKi9cbiAgdHhIZXg6IHN0cmluZztcbn1cbiJdfQ==
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/src/lib/index.js
CHANGED
|
@@ -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,
|
|
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
|
-
*
|
|
26
|
+
* Creates a new IOTA key pair.
|
|
5
27
|
*
|
|
6
|
-
* @param
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
|
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"}
|
package/dist/src/lib/keyPair.js
CHANGED
|
@@ -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
|
-
*
|
|
33
|
+
* Creates a new IOTA key pair.
|
|
12
34
|
*
|
|
13
|
-
* @param
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBbUY7QUFDbkYsb0RBQTRCO0FBRTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFhLE9BQVEsU0FBUSx5QkFBYztJQUN6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ0gsWUFBWSxNQUF1QjtRQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxPQUFPO1FBQ0wsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILHdDQUF3QyxDQUFDLEdBQVc7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILHVDQUF1QyxDQUFDLEdBQVc7UUFDakQsSUFBSSxDQUFDLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sZUFBSyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBOUdELDBCQThHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmF1bHRLZXlzLCBFZDI1NTE5S2V5UGFpciwgS2V5UGFpck9wdGlvbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogSU9UQSBLZXlQYWlyIGltcGxlbWVudGF0aW9uIHVzaW5nIEVkMjU1MTkgY3J5cHRvZ3JhcGh5LlxuICpcbiAqIFRoaXMgY2xhc3MgZXh0ZW5kcyB0aGUgRWQyNTUxOUtleVBhaXIgYmFzZSBjbGFzcyBhbmQgcHJvdmlkZXMgSU9UQS1zcGVjaWZpY1xuICoga2V5IHBhaXIgZnVuY3Rpb25hbGl0eS4gSXQncyBwcmltYXJpbHkgdXNlZCBmb3IgVFNTIChUaHJlc2hvbGQgU2lnbmF0dXJlIFNjaGVtZSlcbiAqIG9wZXJhdGlvbnMgd2hlcmUgcHJpdmF0ZSBrZXlzIGFyZSBtYW5hZ2VkIHRocm91Z2ggbXVsdGktcGFydHkgY29tcHV0YXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEdlbmVyYXRlIGEgcmFuZG9tIGtleSBwYWlyXG4gKiBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAqXG4gKiAvLyBHZW5lcmF0ZSBmcm9tIGEgc2VlZFxuICogY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgc2VlZDogQnVmZmVyLmZyb20oJy4uLicpIH0pO1xuICpcbiAqIC8vIEdlbmVyYXRlIGZyb20gYSBwdWJsaWMga2V5XG4gKiBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6ICc4YzI2ZTU0ZTM2YzkwMmM1Li4uJyB9KTtcbiAqXG4gKiAvLyBHZXQgdGhlIElPVEEgYWRkcmVzc1xuICogY29uc3QgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgRWQyNTUxOUtleVBhaXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBJT1RBIGtleSBwYWlyLlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3Iga2V5IHBhaXIgZ2VuZXJhdGlvbjpcbiAgICogICAtIHNlZWQ6IEJ1ZmZlciAtIEdlbmVyYXRlIGRldGVybWluaXN0aWMga2V5IHBhaXIgZnJvbSBzZWVkXG4gICAqICAgLSBwcnY6IHN0cmluZyAtIEltcG9ydCBmcm9tIHByaXZhdGUga2V5IChub3QgdXNlZCBmb3IgVFNTKVxuICAgKiAgIC0gcHViOiBzdHJpbmcgLSBJbXBvcnQgZnJvbSBwdWJsaWMga2V5IG9ubHlcbiAgICogICAtIElmIG9taXR0ZWQsIGdlbmVyYXRlcyBhIHJhbmRvbSBrZXkgcGFpclxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIFJhbmRvbSBrZXkgcGFpclxuICAgKiBjb25zdCByYW5kb21LZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICpcbiAgICogLy8gRnJvbSBzZWVkIChkZXRlcm1pbmlzdGljKVxuICAgKiBjb25zdCBkZXRlcm1pbmlzdGljS2V5UGFpciA9IG5ldyBLZXlQYWlyKHtcbiAgICogICBzZWVkOiBCdWZmZXIuZnJvbSgnbXktc2VlZC1waHJhc2UnKVxuICAgKiB9KTtcbiAgICpcbiAgICogLy8gRnJvbSBwdWJsaWMga2V5IG9ubHkgKGZvciB2ZXJpZmljYXRpb24pXG4gICAqIGNvbnN0IHZlcmlmaWNhdGlvbktleVBhaXIgPSBuZXcgS2V5UGFpcih7XG4gICAqICAgcHViOiAnOGMyNmU1NGUzNmM5MDJjNTQ1MmU4YjQ0ZTI4YWJjNWFhYTZjM2ZhYWYxMmI0YzBlOGEzOGI0YzlkYTBjMGE2YSdcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGtleSBwYWlyIGFzIGEgRGVmYXVsdEtleXMgb2JqZWN0LlxuICAgKiBBbHdheXMgaW5jbHVkZXMgdGhlIHB1YmxpYyBrZXksIGFuZCBpbmNsdWRlcyB0aGUgcHJpdmF0ZSBrZXkgaWYgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyBwdWIgKGFsd2F5cykgYW5kIHBydiAoaWYgYXZhaWxhYmxlKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuICAgKiBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAqIGNvbnNvbGUubG9nKGtleXMucHViKTsgLy8gJzhjMjZlNTRlLi4uJ1xuICAgKiBjb25zb2xlLmxvZyhrZXlzLnBydik7IC8vICcxYTJiM2MuLi4nIG9yIHVuZGVmaW5lZFxuICAgKiBgYGBcbiAgICovXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHJlc3VsdDogRGVmYXVsdEtleXMgPSB7IHB1YjogdGhpcy5rZXlQYWlyLnB1YiB9O1xuXG4gICAgaWYgKHRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIHJlc3VsdC5wcnYgPSB0aGlzLmtleVBhaXIucHJ2O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkcyBrZXlzIGZyb20gYSBwcml2YXRlIGtleSBpbiBwcm90b2NvbCBmb3JtYXQuXG4gICAqXG4gICAqICoqTm90IGltcGxlbWVudGVkIGZvciBJT1RBLioqXG4gICAqXG4gICAqIElPVEEgdXNlcyBUU1MgKFRocmVzaG9sZCBTaWduYXR1cmUgU2NoZW1lKSB3aGVyZSBwcml2YXRlIGtleXMgYXJlIG5ldmVyXG4gICAqIHJlY29uc3RydWN0ZWQgaW4gZnVsbC4gSW5zdGVhZCwga2V5IHNoYXJlcyBhcmUgZGlzdHJpYnV0ZWQgYWNyb3NzIG11bHRpcGxlXG4gICAqIHBhcnRpZXMgYW5kIHNpZ25pbmcgaXMgcGVyZm9ybWVkIHRocm91Z2ggbXVsdGktcGFydHkgY29tcHV0YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwcnYgLSBUaGUgcHJpdmF0ZSBrZXkgKHVudXNlZClcbiAgICogQHRocm93cyBFcnJvciBhbHdheXMgLSBtZXRob2Qgbm90IHN1cHBvcnRlZCBmb3IgVFNTLWJhc2VkIHNpZ25pbmdcbiAgICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLiBJT1RBIHVzZXMgVFNTIGFuZCBkb2VzIG5vdCByZWNvbnN0cnVjdCBwcml2YXRlIGtleXMuJyk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkcyBrZXlzIGZyb20gYSBwdWJsaWMga2V5IGluIHByb3RvY29sIGZvcm1hdC5cbiAgICogVmFsaWRhdGVzIHRoZSBwdWJsaWMga2V5IGFuZCByZXR1cm5zIGl0IGluIHRoZSBEZWZhdWx0S2V5cyBmb3JtYXQuXG4gICAqXG4gICAqIEBwYXJhbSBwdWIgLSBUaGUgRWQyNTUxOSBwdWJsaWMga2V5IChoZXggc3RyaW5nKVxuICAgKiBAcmV0dXJucyBEZWZhdWx0S2V5cyBvYmplY3QgY29udGFpbmluZyBvbmx5IHRoZSBwdWJsaWMga2V5XG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHB1YmxpYyBrZXkgaXMgaW52YWxpZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGtleXMgPSBrZXlQYWlyLnJlY29yZEtleXNGcm9tUHVibGljS2V5SW5Qcm90b2NvbEZvcm1hdChcbiAgICogICAnOGMyNmU1NGUzNmM5MDJjNTQ1MmU4YjQ0ZTI4YWJjNWFhYTZjM2ZhYWYxMmI0YzBlOGEzOGI0YzlkYTBjMGE2YSdcbiAgICogKTtcbiAgICogY29uc29sZS5sb2coa2V5cy5wdWIpOyAvLyAnOGMyNmU1NGUuLi4nXG4gICAqIGNvbnNvbGUubG9nKGtleXMucHJ2KTsgLy8gdW5kZWZpbmVkXG4gICAqIGBgYFxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUHVibGljIEtleTogJHtwdWJ9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IHB1YiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlcml2ZXMgdGhlIElPVEEgYWRkcmVzcyBmcm9tIHRoaXMga2V5IHBhaXIncyBwdWJsaWMga2V5LlxuICAgKiBVc2VzIHRoZSBJT1RBLXNwZWNpZmljIGFkZHJlc3MgZGVyaXZhdGlvbiBhbGdvcml0aG0uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBJT1RBIGFkZHJlc3MgKDY0LWNoYXJhY3RlciBoZXggc3RyaW5nIHdpdGggMHggcHJlZml4KVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuICAgKiBjb25zdCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gICAqIGNvbnNvbGUubG9nKGFkZHJlc3MpOyAvLyAnMHg5ODgyMTg4YmEzZTgwNzBhOWJiMDZhZTk0NDZjZjYwNzkxNGVlOGVlLi4uJ1xuICAgKiBgYGBcbiAgICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkodGhpcy5rZXlQYWlyLnB1Yik7XG4gIH1cbn1cbiJdfQ==
|