@bitgo-beta/sdk-coin-iota 1.0.1-beta.4 → 1.0.1-beta.400
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 +139 -23
- package/dist/src/iota.d.ts.map +1 -1
- package/dist/src/iota.js +308 -38
- package/dist/src/lib/constants.d.ts +59 -8
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +76 -11
- 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 +105 -5
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +122 -9
- 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 +110 -7
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +160 -14
- 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 +18 -10
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -0
package/dist/src/lib/utils.js
CHANGED
|
@@ -1,33 +1,179 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Utils = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
const ed25519_1 = require("@iota/iota-sdk/keypairs/ed25519");
|
|
7
|
+
const transactions_1 = require("@iota/iota-sdk/transactions");
|
|
8
|
+
const utils_1 = require("@iota/iota-sdk/utils");
|
|
9
|
+
/**
|
|
10
|
+
* Utility class for IOTA-specific validation and conversion operations.
|
|
11
|
+
* Implements the BaseUtils interface and provides methods for validating
|
|
12
|
+
* addresses, keys, signatures, and transaction data.
|
|
13
|
+
*/
|
|
4
14
|
class Utils {
|
|
5
|
-
|
|
15
|
+
// ========================================
|
|
16
|
+
// Address and ID Validation
|
|
17
|
+
// ========================================
|
|
18
|
+
/**
|
|
19
|
+
* Validates an IOTA address format.
|
|
20
|
+
* IOTA addresses are 64-character hex strings prefixed with '0x'.
|
|
21
|
+
*
|
|
22
|
+
* @param address - The address to validate
|
|
23
|
+
* @returns true if the address is valid
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* utils.isValidAddress('0x1234...') // true
|
|
28
|
+
* utils.isValidAddress('invalid') // false
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
6
31
|
isValidAddress(address) {
|
|
7
|
-
|
|
32
|
+
return this.isValidHex(address, constants_1.IOTA_ADDRESS_LENGTH);
|
|
8
33
|
}
|
|
9
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Validates an IOTA block ID (digest).
|
|
36
|
+
* Block IDs are 32-byte base58-encoded strings.
|
|
37
|
+
*
|
|
38
|
+
* @param hash - The block ID to validate
|
|
39
|
+
* @returns true if the block ID is valid
|
|
40
|
+
*/
|
|
10
41
|
isValidBlockId(hash) {
|
|
11
|
-
|
|
42
|
+
return (0, sdk_core_1.isBase58)(hash, constants_1.IOTA_BLOCK_DIGEST_LENGTH);
|
|
12
43
|
}
|
|
13
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Validates an IOTA transaction ID (digest).
|
|
46
|
+
* Transaction IDs are 32-byte base58-encoded strings.
|
|
47
|
+
*
|
|
48
|
+
* @param txId - The transaction ID to validate
|
|
49
|
+
* @returns true if the transaction ID is valid
|
|
50
|
+
*/
|
|
51
|
+
isValidTransactionId(txId) {
|
|
52
|
+
return (0, sdk_core_1.isBase58)(txId, constants_1.IOTA_TRANSACTION_DIGEST_LENGTH);
|
|
53
|
+
}
|
|
54
|
+
// ========================================
|
|
55
|
+
// Key Validation
|
|
56
|
+
// ========================================
|
|
57
|
+
/**
|
|
58
|
+
* Validates an Ed25519 private key format.
|
|
59
|
+
*
|
|
60
|
+
* @param key - The private key to validate (hex string)
|
|
61
|
+
* @returns true if the private key is valid
|
|
62
|
+
*/
|
|
14
63
|
isValidPrivateKey(key) {
|
|
15
|
-
|
|
64
|
+
return (0, sdk_core_1.isValidEd25519SecretKey)(key);
|
|
16
65
|
}
|
|
17
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* Validates an Ed25519 public key format.
|
|
68
|
+
*
|
|
69
|
+
* @param key - The public key to validate (hex string)
|
|
70
|
+
* @returns true if the public key is valid
|
|
71
|
+
*/
|
|
18
72
|
isValidPublicKey(key) {
|
|
19
|
-
|
|
73
|
+
return (0, sdk_core_1.isValidEd25519PublicKey)(key);
|
|
20
74
|
}
|
|
21
|
-
|
|
75
|
+
// ========================================
|
|
76
|
+
// Signature and Transaction Validation
|
|
77
|
+
// ========================================
|
|
78
|
+
/**
|
|
79
|
+
* Validates an IOTA signature format.
|
|
80
|
+
* Signatures must be base64-encoded and exactly 64 bytes when decoded.
|
|
81
|
+
*
|
|
82
|
+
* @param signature - The base64-encoded signature to validate
|
|
83
|
+
* @returns true if the signature is valid
|
|
84
|
+
*/
|
|
22
85
|
isValidSignature(signature) {
|
|
23
|
-
|
|
86
|
+
try {
|
|
87
|
+
const decodedSignature = (0, utils_1.fromBase64)(signature);
|
|
88
|
+
return decodedSignature.length === constants_1.IOTA_SIGNATURE_LENGTH;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
// Invalid base64 or decoding error
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
24
94
|
}
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Validates a raw IOTA transaction format.
|
|
97
|
+
* Attempts to parse the transaction using the IOTA SDK.
|
|
98
|
+
*
|
|
99
|
+
* @param rawTransaction - The raw transaction (base64 string or Uint8Array)
|
|
100
|
+
* @returns true if the transaction can be parsed
|
|
101
|
+
*/
|
|
102
|
+
isValidRawTransaction(rawTransaction) {
|
|
103
|
+
try {
|
|
104
|
+
transactions_1.Transaction.from(rawTransaction);
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// ========================================
|
|
112
|
+
// Conversion and Utility Methods
|
|
113
|
+
// ========================================
|
|
114
|
+
/**
|
|
115
|
+
* Validates a hex string with a specific length requirement.
|
|
116
|
+
* Checks for '0x' or '0X' prefix followed by the specified number of hex characters.
|
|
117
|
+
*
|
|
118
|
+
* @param value - The hex string to validate
|
|
119
|
+
* @param length - The required length (number of hex characters, excluding prefix)
|
|
120
|
+
* @returns true if the hex string matches the format and length
|
|
121
|
+
*/
|
|
122
|
+
isValidHex(value, length) {
|
|
123
|
+
const regex = new RegExp(`^(0x|0X)[a-fA-F0-9]{${length}}$`);
|
|
124
|
+
return regex.test(value);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Converts a value to a base64-encoded string.
|
|
128
|
+
* Handles both Uint8Array and hex string inputs.
|
|
129
|
+
*
|
|
130
|
+
* @param value - The value to encode (Uint8Array or hex string)
|
|
131
|
+
* @returns Base64-encoded string
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* utils.getBase64String(new Uint8Array([1, 2, 3]))
|
|
136
|
+
* utils.getBase64String('0x010203')
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
getBase64String(value) {
|
|
140
|
+
if (value instanceof Uint8Array) {
|
|
141
|
+
return (0, utils_1.toBase64)(value);
|
|
142
|
+
}
|
|
143
|
+
return (0, utils_1.toBase64)(Buffer.from(value, 'hex'));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Derives an IOTA address from an Ed25519 public key.
|
|
147
|
+
* Uses the IOTA SDK's address derivation algorithm.
|
|
148
|
+
*
|
|
149
|
+
* @param publicKey - The Ed25519 public key (hex string)
|
|
150
|
+
* @returns The derived IOTA address
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* const address = utils.getAddressFromPublicKey('8c26e54e36c902c5...')
|
|
155
|
+
* // Returns: '0x9882188ba3e8070a...'
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
getAddressFromPublicKey(publicKey) {
|
|
159
|
+
const iotaPublicKey = new ed25519_1.Ed25519PublicKey(Buffer.from(publicKey, 'hex'));
|
|
160
|
+
return iotaPublicKey.toIotaAddress();
|
|
28
161
|
}
|
|
29
162
|
}
|
|
30
163
|
exports.Utils = Utils;
|
|
164
|
+
/**
|
|
165
|
+
* Singleton instance of the Utils class.
|
|
166
|
+
* Use this for all IOTA utility operations throughout the SDK.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* import utils from './utils';
|
|
171
|
+
*
|
|
172
|
+
* if (utils.isValidAddress(address)) {
|
|
173
|
+
* // Process valid address
|
|
174
|
+
* }
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
31
177
|
const utils = new Utils();
|
|
32
178
|
exports.default = utils;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsS0FBSztJQUNoQixrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLElBQVk7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsR0FBVztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG9CQUFvQixDQUFDLElBQVk7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQTlCRCxzQkE4QkM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VVdGlscyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUE2RztBQUM3RywyQ0FLcUI7QUFDckIsNkRBQW1FO0FBQ25FLDhEQUE2RTtBQUM3RSxnREFBNEQ7QUFFNUQ7Ozs7R0FJRztBQUNILE1BQWEsS0FBSztJQUNoQiwyQ0FBMkM7SUFDM0MsNEJBQTRCO0lBQzVCLDJDQUEyQztJQUUzQzs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxjQUFjLENBQUMsT0FBZTtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLCtCQUFtQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBQSxtQkFBUSxFQUFDLElBQUksRUFBRSxvQ0FBd0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBQSxtQkFBUSxFQUFDLElBQUksRUFBRSwwQ0FBOEIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsaUJBQWlCO0lBQ2pCLDJDQUEyQztJQUUzQzs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsT0FBTyxJQUFBLGtDQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLEdBQVc7UUFDMUIsT0FBTyxJQUFBLGtDQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsdUNBQXVDO0lBQ3ZDLDJDQUEyQztJQUUzQzs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxJQUFJLENBQUM7WUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUEsa0JBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQztZQUMvQyxPQUFPLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxpQ0FBcUIsQ0FBQztRQUMzRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLG1DQUFtQztZQUNuQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUMsY0FBbUM7UUFDdkQsSUFBSSxDQUFDO1lBQ0gsMEJBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsaUNBQWlDO0lBQ2pDLDJDQUEyQztJQUUzQzs7Ozs7OztPQU9HO0lBQ0gsVUFBVSxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLHVCQUF1QixNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsZUFBZSxDQUFDLEtBQTBCO1FBQ3hDLElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLElBQUEsZ0JBQVEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCx1QkFBdUIsQ0FBQyxTQUFpQjtRQUN2QyxNQUFNLGFBQWEsR0FBRyxJQUFJLDBCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBL0pELHNCQStKQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVV0aWxzLCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSwgaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXksIGlzQmFzZTU4IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgSU9UQV9BRERSRVNTX0xFTkdUSCxcbiAgSU9UQV9CTE9DS19ESUdFU1RfTEVOR1RILFxuICBJT1RBX1NJR05BVFVSRV9MRU5HVEgsXG4gIElPVEFfVFJBTlNBQ1RJT05fRElHRVNUX0xFTkdUSCxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRWQyNTUxOVB1YmxpY0tleSB9IGZyb20gJ0Bpb3RhL2lvdGEtc2RrL2tleXBhaXJzL2VkMjU1MTknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgSW90YVRyYW5zYWN0aW9uIH0gZnJvbSAnQGlvdGEvaW90YS1zZGsvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IHRvQmFzZTY0LCBmcm9tQmFzZTY0IH0gZnJvbSAnQGlvdGEvaW90YS1zZGsvdXRpbHMnO1xuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIElPVEEtc3BlY2lmaWMgdmFsaWRhdGlvbiBhbmQgY29udmVyc2lvbiBvcGVyYXRpb25zLlxuICogSW1wbGVtZW50cyB0aGUgQmFzZVV0aWxzIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgdmFsaWRhdGluZ1xuICogYWRkcmVzc2VzLCBrZXlzLCBzaWduYXR1cmVzLCBhbmQgdHJhbnNhY3Rpb24gZGF0YS5cbiAqL1xuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBBZGRyZXNzIGFuZCBJRCBWYWxpZGF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFuIElPVEEgYWRkcmVzcyBmb3JtYXQuXG4gICAqIElPVEEgYWRkcmVzc2VzIGFyZSA2NC1jaGFyYWN0ZXIgaGV4IHN0cmluZ3MgcHJlZml4ZWQgd2l0aCAnMHgnLlxuICAgKlxuICAgKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGFkZHJlc3MgaXMgdmFsaWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB1dGlscy5pc1ZhbGlkQWRkcmVzcygnMHgxMjM0Li4uJykgLy8gdHJ1ZVxuICAgKiB1dGlscy5pc1ZhbGlkQWRkcmVzcygnaW52YWxpZCcpIC8vIGZhbHNlXG4gICAqIGBgYFxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleChhZGRyZXNzLCBJT1RBX0FERFJFU1NfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW4gSU9UQSBibG9jayBJRCAoZGlnZXN0KS5cbiAgICogQmxvY2sgSURzIGFyZSAzMi1ieXRlIGJhc2U1OC1lbmNvZGVkIHN0cmluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBoYXNoIC0gVGhlIGJsb2NrIElEIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGJsb2NrIElEIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNCYXNlNTgoaGFzaCwgSU9UQV9CTE9DS19ESUdFU1RfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW4gSU9UQSB0cmFuc2FjdGlvbiBJRCAoZGlnZXN0KS5cbiAgICogVHJhbnNhY3Rpb24gSURzIGFyZSAzMi1ieXRlIGJhc2U1OC1lbmNvZGVkIHN0cmluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSB0eElkIC0gVGhlIHRyYW5zYWN0aW9uIElEIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIElEIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNCYXNlNTgodHhJZCwgSU9UQV9UUkFOU0FDVElPTl9ESUdFU1RfTEVOR1RIKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gS2V5IFZhbGlkYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW4gRWQyNTUxOSBwcml2YXRlIGtleSBmb3JtYXQuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgcHJpdmF0ZSBrZXkgdG8gdmFsaWRhdGUgKGhleCBzdHJpbmcpXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHByaXZhdGUga2V5IGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVNlY3JldEtleShrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbiBFZDI1NTE5IHB1YmxpYyBrZXkgZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHB1YmxpYyBrZXkgdG8gdmFsaWRhdGUgKGhleCBzdHJpbmcpXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHB1YmxpYyBrZXkgaXMgdmFsaWRcbiAgICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2lnbmF0dXJlIGFuZCBUcmFuc2FjdGlvbiBWYWxpZGF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFuIElPVEEgc2lnbmF0dXJlIGZvcm1hdC5cbiAgICogU2lnbmF0dXJlcyBtdXN0IGJlIGJhc2U2NC1lbmNvZGVkIGFuZCBleGFjdGx5IDY0IGJ5dGVzIHdoZW4gZGVjb2RlZC5cbiAgICpcbiAgICogQHBhcmFtIHNpZ25hdHVyZSAtIFRoZSBiYXNlNjQtZW5jb2RlZCBzaWduYXR1cmUgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgc2lnbmF0dXJlIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWRTaWduYXR1cmUgPSBmcm9tQmFzZTY0KHNpZ25hdHVyZSk7XG4gICAgICByZXR1cm4gZGVjb2RlZFNpZ25hdHVyZS5sZW5ndGggPT09IElPVEFfU0lHTkFUVVJFX0xFTkdUSDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSW52YWxpZCBiYXNlNjQgb3IgZGVjb2RpbmcgZXJyb3JcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGEgcmF3IElPVEEgdHJhbnNhY3Rpb24gZm9ybWF0LlxuICAgKiBBdHRlbXB0cyB0byBwYXJzZSB0aGUgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIElPVEEgU0RLLlxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb24gLSBUaGUgcmF3IHRyYW5zYWN0aW9uIChiYXNlNjQgc3RyaW5nIG9yIFVpbnQ4QXJyYXkpXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBwYXJzZWRcbiAgICovXG4gIGlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nIHwgVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBJb3RhVHJhbnNhY3Rpb24uZnJvbShyYXdUcmFuc2FjdGlvbik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ29udmVyc2lvbiBhbmQgVXRpbGl0eSBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGEgaGV4IHN0cmluZyB3aXRoIGEgc3BlY2lmaWMgbGVuZ3RoIHJlcXVpcmVtZW50LlxuICAgKiBDaGVja3MgZm9yICcweCcgb3IgJzBYJyBwcmVmaXggZm9sbG93ZWQgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgaGV4IGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBoZXggc3RyaW5nIHRvIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBsZW5ndGggLSBUaGUgcmVxdWlyZWQgbGVuZ3RoIChudW1iZXIgb2YgaGV4IGNoYXJhY3RlcnMsIGV4Y2x1ZGluZyBwcmVmaXgpXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGhleCBzdHJpbmcgbWF0Y2hlcyB0aGUgZm9ybWF0IGFuZCBsZW5ndGhcbiAgICovXG4gIGlzVmFsaWRIZXgodmFsdWU6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4oMHh8MFgpW2EtZkEtRjAtOV17JHtsZW5ndGh9fSRgKTtcbiAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSB2YWx1ZSB0byBhIGJhc2U2NC1lbmNvZGVkIHN0cmluZy5cbiAgICogSGFuZGxlcyBib3RoIFVpbnQ4QXJyYXkgYW5kIGhleCBzdHJpbmcgaW5wdXRzLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZW5jb2RlIChVaW50OEFycmF5IG9yIGhleCBzdHJpbmcpXG4gICAqIEByZXR1cm5zIEJhc2U2NC1lbmNvZGVkIHN0cmluZ1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIHV0aWxzLmdldEJhc2U2NFN0cmluZyhuZXcgVWludDhBcnJheShbMSwgMiwgM10pKVxuICAgKiB1dGlscy5nZXRCYXNlNjRTdHJpbmcoJzB4MDEwMjAzJylcbiAgICogYGBgXG4gICAqL1xuICBnZXRCYXNlNjRTdHJpbmcodmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgIHJldHVybiB0b0Jhc2U2NCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0b0Jhc2U2NChCdWZmZXIuZnJvbSh2YWx1ZSwgJ2hleCcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXJpdmVzIGFuIElPVEEgYWRkcmVzcyBmcm9tIGFuIEVkMjU1MTkgcHVibGljIGtleS5cbiAgICogVXNlcyB0aGUgSU9UQSBTREsncyBhZGRyZXNzIGRlcml2YXRpb24gYWxnb3JpdGhtLlxuICAgKlxuICAgKiBAcGFyYW0gcHVibGljS2V5IC0gVGhlIEVkMjU1MTkgcHVibGljIGtleSAoaGV4IHN0cmluZylcbiAgICogQHJldHVybnMgVGhlIGRlcml2ZWQgSU9UQSBhZGRyZXNzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYWRkcmVzcyA9IHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KCc4YzI2ZTU0ZTM2YzkwMmM1Li4uJylcbiAgICogLy8gUmV0dXJuczogJzB4OTg4MjE4OGJhM2U4MDcwYS4uLidcbiAgICogYGBgXG4gICAqL1xuICBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleShwdWJsaWNLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgaW90YVB1YmxpY0tleSA9IG5ldyBFZDI1NTE5UHVibGljS2V5KEJ1ZmZlci5mcm9tKHB1YmxpY0tleSwgJ2hleCcpKTtcbiAgICByZXR1cm4gaW90YVB1YmxpY0tleS50b0lvdGFBZGRyZXNzKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIFV0aWxzIGNsYXNzLlxuICogVXNlIHRoaXMgZm9yIGFsbCBJT1RBIHV0aWxpdHkgb3BlcmF0aW9ucyB0aHJvdWdob3V0IHRoZSBTREsuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbiAqXG4gKiBpZiAodXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAqICAgLy8gUHJvY2VzcyB2YWxpZCBhZGRyZXNzXG4gKiB9XG4gKiBgYGBcbiAqL1xuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TransactionRecipient } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { GasData, TransactionObjectInput } from '../../src/lib/iface';
|
|
3
|
+
export declare const AMOUNT = 1000;
|
|
4
|
+
export declare const GAS_BUDGET = 5000000;
|
|
5
|
+
export declare const GAS_PRICE = 1000;
|
|
6
|
+
export declare const addresses: {
|
|
7
|
+
validAddresses: string[];
|
|
8
|
+
invalidAddresses: string[];
|
|
9
|
+
};
|
|
10
|
+
export declare const sender: {
|
|
11
|
+
address: string;
|
|
12
|
+
publicKey: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const gasSponsor: {
|
|
15
|
+
address: string;
|
|
16
|
+
publicKey: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const recipients: TransactionRecipient[];
|
|
19
|
+
export declare const gasPaymentObjects: TransactionObjectInput[];
|
|
20
|
+
export declare const paymentObjects: TransactionObjectInput[];
|
|
21
|
+
export declare const gasData: GasData;
|
|
22
|
+
export declare const generateObjects: (count: number) => TransactionObjectInput[];
|
|
23
|
+
export declare const testSignature: {
|
|
24
|
+
signature: Buffer<ArrayBuffer>;
|
|
25
|
+
publicKey: {
|
|
26
|
+
pub: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare const testGasSponsorSignature: {
|
|
30
|
+
signature: Buffer<ArrayBuffer>;
|
|
31
|
+
publicKey: {
|
|
32
|
+
pub: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=iota.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iota.d.ts","sourceRoot":"","sources":["../../../test/resources/iota.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEtE,eAAO,MAAM,MAAM,OAAO,CAAC;AAC3B,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,SAAS,OAAO,CAAC;AAE9B,eAAO,MAAM,SAAS;;;CAWrB,CAAC;AAEF,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,UAAU;;;CAGtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,oBAAoB,EAS5C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,sBAAsB,EAWrD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,sBAAsB,EAWlD,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,sBAAsB,EAMrE,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;CAWzB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;CAWnC,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testGasSponsorSignature = exports.testSignature = exports.generateObjects = exports.gasData = exports.paymentObjects = exports.gasPaymentObjects = exports.recipients = exports.gasSponsor = exports.sender = exports.addresses = exports.GAS_PRICE = exports.GAS_BUDGET = exports.AMOUNT = void 0;
|
|
4
|
+
exports.AMOUNT = 1000;
|
|
5
|
+
exports.GAS_BUDGET = 5000000;
|
|
6
|
+
exports.GAS_PRICE = 1000;
|
|
7
|
+
exports.addresses = {
|
|
8
|
+
validAddresses: [
|
|
9
|
+
'0xda97e166d40fa6a0c949b6aeb862e391c29139b563ae0430b2419c589a02a6e0',
|
|
10
|
+
'0x0502b39ec0b82c10c64a07e969ee1140e67d8e0c0fc0c0f6319fe7e47dbb0ab5',
|
|
11
|
+
'0xf941ae3cbe5645dccc15da8346b533f7f91f202089a5521653c062b2ff10b304',
|
|
12
|
+
],
|
|
13
|
+
invalidAddresses: [
|
|
14
|
+
'randomString',
|
|
15
|
+
'0xc4173a804406a365e69dfb297ddfgsdcvf',
|
|
16
|
+
'5ne7phA48Jrvpn39AtupB8ZkCCAy8gLTfpGihZPuDqen',
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
exports.sender = {
|
|
20
|
+
address: '0x9882188ba3e8070a9bb06ae9446cf607914ee8ee58ed8306a3e3afff5a1bbb71',
|
|
21
|
+
publicKey: '8c26e54e36c902c5452e8b44e28abc5aaa6c3faaf12b4c0e8a38b4c9da0c0a6a',
|
|
22
|
+
};
|
|
23
|
+
exports.gasSponsor = {
|
|
24
|
+
address: '0x77291376d885efa752ed921b48d1aa1a65a389bf214ec0eab8b31970c9ab3618',
|
|
25
|
+
publicKey: '4c13f955cee8f80d5d95577b07f624b42322d8ae1fadfc6a1b916828095247a2',
|
|
26
|
+
};
|
|
27
|
+
exports.recipients = [
|
|
28
|
+
{
|
|
29
|
+
address: exports.addresses.validAddresses[0],
|
|
30
|
+
amount: exports.AMOUNT.toString(),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
address: exports.addresses.validAddresses[1],
|
|
34
|
+
amount: (exports.AMOUNT * 2).toString(),
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
exports.gasPaymentObjects = [
|
|
38
|
+
{
|
|
39
|
+
objectId: '0x09c40522aed54bcecfa483605c5da5821b171ac1aa1b615971fb8dfe27ed13fd',
|
|
40
|
+
version: '1105',
|
|
41
|
+
digest: 'DGVhYjk6YHwdPdZBgBN8czavy8LvbrshkbxF963EW7mB',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
objectId: '0x27dd00e7fccdc87b4d95b6384b739119b91f2a81a16baedea7f4e0068e529437',
|
|
45
|
+
version: '217',
|
|
46
|
+
digest: 'DoJwXuz9oU5Y5v5vBRiTgisVTQuZQLmHZWeqJzzD5QUE',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
exports.paymentObjects = [
|
|
50
|
+
{
|
|
51
|
+
objectId: '0x57bedec931e87beebebd5a375fae5e969965dba710e3c8652814ab1750b9e301',
|
|
52
|
+
version: '32',
|
|
53
|
+
digest: '82LZWnJwxRpZPLyFvPdLWBTyEu9J5aEZQFrTva9QPLzJ',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
objectId: '0xa90fdca6a9b7e8363d5825fb41c0456fc85ab3f47ddf5bbc19f320c82acbc62a',
|
|
57
|
+
version: '33',
|
|
58
|
+
digest: 'EFcXPoBtcHKZK3NhBHULZASAu61aZb5ab9JCXKEb5eMC',
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
exports.gasData = {
|
|
62
|
+
gasBudget: exports.GAS_BUDGET,
|
|
63
|
+
gasPrice: exports.GAS_PRICE,
|
|
64
|
+
gasPaymentObjects: exports.gasPaymentObjects,
|
|
65
|
+
};
|
|
66
|
+
const generateObjects = (count) => {
|
|
67
|
+
return Array.from({ length: count }, (_, i) => ({
|
|
68
|
+
objectId: `0x${i.toString(16).padStart(64, '0')}`,
|
|
69
|
+
version: (i + 1).toString(),
|
|
70
|
+
digest: `digest${i}`,
|
|
71
|
+
}));
|
|
72
|
+
};
|
|
73
|
+
exports.generateObjects = generateObjects;
|
|
74
|
+
// Test signature data for signature serialization tests
|
|
75
|
+
exports.testSignature = {
|
|
76
|
+
// 64-byte signature (hex string)
|
|
77
|
+
signature: Buffer.from('a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2' +
|
|
78
|
+
'c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4', 'hex'),
|
|
79
|
+
// Public key (already defined in sender)
|
|
80
|
+
publicKey: {
|
|
81
|
+
pub: exports.sender.publicKey,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
exports.testGasSponsorSignature = {
|
|
85
|
+
// 64-byte signature (hex string)
|
|
86
|
+
signature: Buffer.from('d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5' +
|
|
87
|
+
'f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7', 'hex'),
|
|
88
|
+
// Public key (already defined in gasSponsor)
|
|
89
|
+
publicKey: {
|
|
90
|
+
pub: exports.gasSponsor.publicKey,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvcmVzb3VyY2VzL2lvdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR2EsUUFBQSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ2QsUUFBQSxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQ3JCLFFBQUEsU0FBUyxHQUFHLElBQUksQ0FBQztBQUVqQixRQUFBLFNBQVMsR0FBRztJQUN2QixjQUFjLEVBQUU7UUFDZCxvRUFBb0U7UUFDcEUsb0VBQW9FO1FBQ3BFLG9FQUFvRTtLQUNyRTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLGNBQWM7UUFDZCxzQ0FBc0M7UUFDdEMsOENBQThDO0tBQy9DO0NBQ0YsQ0FBQztBQUVXLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLE9BQU8sRUFBRSxvRUFBb0U7SUFDN0UsU0FBUyxFQUFFLGtFQUFrRTtDQUM5RSxDQUFDO0FBRVcsUUFBQSxVQUFVLEdBQUc7SUFDeEIsT0FBTyxFQUFFLG9FQUFvRTtJQUM3RSxTQUFTLEVBQUUsa0VBQWtFO0NBQzlFLENBQUM7QUFFVyxRQUFBLFVBQVUsR0FBMkI7SUFDaEQ7UUFDRSxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxjQUFNLENBQUMsUUFBUSxFQUFFO0tBQzFCO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxDQUFDLGNBQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7S0FDaEM7Q0FDRixDQUFDO0FBRVcsUUFBQSxpQkFBaUIsR0FBNkI7SUFDekQ7UUFDRSxRQUFRLEVBQUUsb0VBQW9FO1FBQzlFLE9BQU8sRUFBRSxNQUFNO1FBQ2YsTUFBTSxFQUFFLDhDQUE4QztLQUN2RDtJQUNEO1FBQ0UsUUFBUSxFQUFFLG9FQUFvRTtRQUM5RSxPQUFPLEVBQUUsS0FBSztRQUNkLE1BQU0sRUFBRSw4Q0FBOEM7S0FDdkQ7Q0FDRixDQUFDO0FBRVcsUUFBQSxjQUFjLEdBQTZCO0lBQ3REO1FBQ0UsUUFBUSxFQUFFLG9FQUFvRTtRQUM5RSxPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSw4Q0FBOEM7S0FDdkQ7SUFDRDtRQUNFLFFBQVEsRUFBRSxvRUFBb0U7UUFDOUUsT0FBTyxFQUFFLElBQUk7UUFDYixNQUFNLEVBQUUsOENBQThDO0tBQ3ZEO0NBQ0YsQ0FBQztBQUVXLFFBQUEsT0FBTyxHQUFZO0lBQzlCLFNBQVMsRUFBRSxrQkFBVTtJQUNyQixRQUFRLEVBQUUsaUJBQVM7SUFDbkIsaUJBQWlCLEVBQUUseUJBQWlCO0NBQ3JDLENBQUM7QUFFSyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWEsRUFBNEIsRUFBRTtJQUN6RSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNqRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQzNCLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRTtLQUNyQixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQU5XLFFBQUEsZUFBZSxtQkFNMUI7QUFFRix3REFBd0Q7QUFDM0MsUUFBQSxhQUFhLEdBQUc7SUFDM0IsaUNBQWlDO0lBQ2pDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUNwQixrRUFBa0U7UUFDaEUsa0VBQWtFLEVBQ3BFLEtBQUssQ0FDTjtJQUNELHlDQUF5QztJQUN6QyxTQUFTLEVBQUU7UUFDVCxHQUFHLEVBQUUsY0FBTSxDQUFDLFNBQVM7S0FDdEI7Q0FDRixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRztJQUNyQyxpQ0FBaUM7SUFDakMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLGtFQUFrRTtRQUNoRSxrRUFBa0UsRUFDcEUsS0FBSyxDQUNOO0lBQ0QsNkNBQTZDO0lBQzdDLFNBQVMsRUFBRTtRQUNULEdBQUcsRUFBRSxrQkFBVSxDQUFDLFNBQVM7S0FDMUI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBHYXNEYXRhLCBUcmFuc2FjdGlvbk9iamVjdElucHV0IH0gZnJvbSAnLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBBTU9VTlQgPSAxMDAwO1xuZXhwb3J0IGNvbnN0IEdBU19CVURHRVQgPSA1MDAwMDAwO1xuZXhwb3J0IGNvbnN0IEdBU19QUklDRSA9IDEwMDA7XG5cbmV4cG9ydCBjb25zdCBhZGRyZXNzZXMgPSB7XG4gIHZhbGlkQWRkcmVzc2VzOiBbXG4gICAgJzB4ZGE5N2UxNjZkNDBmYTZhMGM5NDliNmFlYjg2MmUzOTFjMjkxMzliNTYzYWUwNDMwYjI0MTljNTg5YTAyYTZlMCcsXG4gICAgJzB4MDUwMmIzOWVjMGI4MmMxMGM2NGEwN2U5NjllZTExNDBlNjdkOGUwYzBmYzBjMGY2MzE5ZmU3ZTQ3ZGJiMGFiNScsXG4gICAgJzB4Zjk0MWFlM2NiZTU2NDVkY2NjMTVkYTgzNDZiNTMzZjdmOTFmMjAyMDg5YTU1MjE2NTNjMDYyYjJmZjEwYjMwNCcsXG4gIF0sXG4gIGludmFsaWRBZGRyZXNzZXM6IFtcbiAgICAncmFuZG9tU3RyaW5nJyxcbiAgICAnMHhjNDE3M2E4MDQ0MDZhMzY1ZTY5ZGZiMjk3ZGRmZ3NkY3ZmJyxcbiAgICAnNW5lN3BoQTQ4SnJ2cG4zOUF0dXBCOFprQ0NBeThnTFRmcEdpaFpQdURxZW4nLFxuICBdLFxufTtcblxuZXhwb3J0IGNvbnN0IHNlbmRlciA9IHtcbiAgYWRkcmVzczogJzB4OTg4MjE4OGJhM2U4MDcwYTliYjA2YWU5NDQ2Y2Y2MDc5MTRlZThlZTU4ZWQ4MzA2YTNlM2FmZmY1YTFiYmI3MScsXG4gIHB1YmxpY0tleTogJzhjMjZlNTRlMzZjOTAyYzU0NTJlOGI0NGUyOGFiYzVhYWE2YzNmYWFmMTJiNGMwZThhMzhiNGM5ZGEwYzBhNmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGdhc1Nwb25zb3IgPSB7XG4gIGFkZHJlc3M6ICcweDc3MjkxMzc2ZDg4NWVmYTc1MmVkOTIxYjQ4ZDFhYTFhNjVhMzg5YmYyMTRlYzBlYWI4YjMxOTcwYzlhYjM2MTgnLFxuICBwdWJsaWNLZXk6ICc0YzEzZjk1NWNlZThmODBkNWQ5NTU3N2IwN2Y2MjRiNDIzMjJkOGFlMWZhZGZjNmExYjkxNjgyODA5NTI0N2EyJyxcbn07XG5cbmV4cG9ydCBjb25zdCByZWNpcGllbnRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogQU1PVU5ULnRvU3RyaW5nKCksXG4gIH0sXG4gIHtcbiAgICBhZGRyZXNzOiBhZGRyZXNzZXMudmFsaWRBZGRyZXNzZXNbMV0sXG4gICAgYW1vdW50OiAoQU1PVU5UICogMikudG9TdHJpbmcoKSxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBnYXNQYXltZW50T2JqZWN0czogVHJhbnNhY3Rpb25PYmplY3RJbnB1dFtdID0gW1xuICB7XG4gICAgb2JqZWN0SWQ6ICcweDA5YzQwNTIyYWVkNTRiY2VjZmE0ODM2MDVjNWRhNTgyMWIxNzFhYzFhYTFiNjE1OTcxZmI4ZGZlMjdlZDEzZmQnLFxuICAgIHZlcnNpb246ICcxMTA1JyxcbiAgICBkaWdlc3Q6ICdER1ZoWWprNllId2RQZFpCZ0JOOGN6YXZ5OEx2YnJzaGtieEY5NjNFVzdtQicsXG4gIH0sXG4gIHtcbiAgICBvYmplY3RJZDogJzB4MjdkZDAwZTdmY2NkYzg3YjRkOTViNjM4NGI3MzkxMTliOTFmMmE4MWExNmJhZWRlYTdmNGUwMDY4ZTUyOTQzNycsXG4gICAgdmVyc2lvbjogJzIxNycsXG4gICAgZGlnZXN0OiAnRG9Kd1h1ejlvVTVZNXY1dkJSaVRnaXNWVFF1WlFMbUhaV2VxSnp6RDVRVUUnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IHBheW1lbnRPYmplY3RzOiBUcmFuc2FjdGlvbk9iamVjdElucHV0W10gPSBbXG4gIHtcbiAgICBvYmplY3RJZDogJzB4NTdiZWRlYzkzMWU4N2JlZWJlYmQ1YTM3NWZhZTVlOTY5OTY1ZGJhNzEwZTNjODY1MjgxNGFiMTc1MGI5ZTMwMScsXG4gICAgdmVyc2lvbjogJzMyJyxcbiAgICBkaWdlc3Q6ICc4MkxaV25Kd3hScFpQTHlGdlBkTFdCVHlFdTlKNWFFWlFGclR2YTlRUEx6SicsXG4gIH0sXG4gIHtcbiAgICBvYmplY3RJZDogJzB4YTkwZmRjYTZhOWI3ZTgzNjNkNTgyNWZiNDFjMDQ1NmZjODVhYjNmNDdkZGY1YmJjMTlmMzIwYzgyYWNiYzYyYScsXG4gICAgdmVyc2lvbjogJzMzJyxcbiAgICBkaWdlc3Q6ICdFRmNYUG9CdGNIS1pLM05oQkhVTFpBU0F1NjFhWmI1YWI5SkNYS0ViNWVNQycsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgZ2FzRGF0YTogR2FzRGF0YSA9IHtcbiAgZ2FzQnVkZ2V0OiBHQVNfQlVER0VULFxuICBnYXNQcmljZTogR0FTX1BSSUNFLFxuICBnYXNQYXltZW50T2JqZWN0czogZ2FzUGF5bWVudE9iamVjdHMsXG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVPYmplY3RzID0gKGNvdW50OiBudW1iZXIpOiBUcmFuc2FjdGlvbk9iamVjdElucHV0W10gPT4ge1xuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgKF8sIGkpID0+ICh7XG4gICAgb2JqZWN0SWQ6IGAweCR7aS50b1N0cmluZygxNikucGFkU3RhcnQoNjQsICcwJyl9YCxcbiAgICB2ZXJzaW9uOiAoaSArIDEpLnRvU3RyaW5nKCksXG4gICAgZGlnZXN0OiBgZGlnZXN0JHtpfWAsXG4gIH0pKTtcbn07XG5cbi8vIFRlc3Qgc2lnbmF0dXJlIGRhdGEgZm9yIHNpZ25hdHVyZSBzZXJpYWxpemF0aW9uIHRlc3RzXG5leHBvcnQgY29uc3QgdGVzdFNpZ25hdHVyZSA9IHtcbiAgLy8gNjQtYnl0ZSBzaWduYXR1cmUgKGhleCBzdHJpbmcpXG4gIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oXG4gICAgJ2ExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2ZTdmOGE5YjBjMWQyZTNmNGE1YjZjN2Q4ZTlmMGExYjInICtcbiAgICAgICdjM2Q0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2ZTdmOGE5YjBjMWQyZTNmNGE1YjZjN2Q4ZTlmMGExYjJjM2Q0JyxcbiAgICAnaGV4J1xuICApLFxuICAvLyBQdWJsaWMga2V5IChhbHJlYWR5IGRlZmluZWQgaW4gc2VuZGVyKVxuICBwdWJsaWNLZXk6IHtcbiAgICBwdWI6IHNlbmRlci5wdWJsaWNLZXksXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgdGVzdEdhc1Nwb25zb3JTaWduYXR1cmUgPSB7XG4gIC8vIDY0LWJ5dGUgc2lnbmF0dXJlIChoZXggc3RyaW5nKVxuICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKFxuICAgICdkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNWI2YzdkOGU5ZjBhMWIyYzNkNGU1JyArXG4gICAgICAnZjZhN2I4YzlkMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNWI2YzdkOGU5ZjBhMWIyYzNkNGU1ZjZhNycsXG4gICAgJ2hleCdcbiAgKSxcbiAgLy8gUHVibGljIGtleSAoYWxyZWFkeSBkZWZpbmVkIGluIGdhc1Nwb25zb3IpXG4gIHB1YmxpY0tleToge1xuICAgIHB1YjogZ2FzU3BvbnNvci5wdWJsaWNLZXksXG4gIH0sXG59O1xuIl19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { TransactionBuilderFactory, TransferBuilder, TransferTransaction } from '../../../src';
|
|
2
|
+
import * as testData from '../../resources/iota';
|
|
3
|
+
import { TransactionRecipient } from '@bitgo-beta/sdk-core';
|
|
4
|
+
import { TransactionObjectInput } from '../../../src/lib/iface';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a basic transfer builder with sender, recipients, and payment objects.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createBasicTransferBuilder(): TransferBuilder;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a transfer builder with gas data for real (non-simulate) transactions.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createTransferBuilderWithGas(): TransferBuilder;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a transfer builder with a gas sponsor.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createTransferBuilderWithSponsor(): TransferBuilder;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a builder with custom recipients.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createBuilderWithRecipients(recipients: TransactionRecipient[]): TransferBuilder;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a builder that uses gas objects for payment (no payment objects).
|
|
23
|
+
*/
|
|
24
|
+
export declare function createBuilderWithGasObjectsOnly(): TransferBuilder;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a builder with custom gas objects.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createBuilderWithGasObjects(gasObjects: TransactionObjectInput[]): TransferBuilder;
|
|
29
|
+
/**
|
|
30
|
+
* Asserts that a transaction has the expected basic properties.
|
|
31
|
+
*/
|
|
32
|
+
export declare function assertBasicTransactionProperties(tx: TransferTransaction): void;
|
|
33
|
+
/**
|
|
34
|
+
* Asserts that a transaction has valid gas data.
|
|
35
|
+
*/
|
|
36
|
+
export declare function assertGasData(tx: TransferTransaction): void;
|
|
37
|
+
/**
|
|
38
|
+
* Asserts that a transaction has the expected inputs and outputs.
|
|
39
|
+
*/
|
|
40
|
+
export declare function assertInputsAndOutputs(tx: TransferTransaction, expectedRecipients: TransactionRecipient[]): void;
|
|
41
|
+
/**
|
|
42
|
+
* Verifies that a raw transaction is valid.
|
|
43
|
+
*/
|
|
44
|
+
export declare function assertValidRawTransaction(tx: TransferTransaction): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Creates an array of recipients with the specified count and amount.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createRecipients(count: number, amount?: string): TransactionRecipient[];
|
|
49
|
+
/**
|
|
50
|
+
* Gets the transaction factory instance.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getFactory(): TransactionBuilderFactory;
|
|
53
|
+
/**
|
|
54
|
+
* Test data re-exports for convenience.
|
|
55
|
+
*/
|
|
56
|
+
export { testData };
|
|
57
|
+
//# sourceMappingURL=testHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testHelpers.d.ts","sourceRoot":"","sources":["../../../../test/unit/helpers/testHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAUhE;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,eAAe,CAM5D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,eAAe,CAE9D;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,eAAe,CAElE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,oBAAoB,EAAE,GAAG,eAAe,CAO/F;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,eAAe,CAMjE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,sBAAsB,EAAE,GAAG,eAAe,CAMjG;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAK9E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAI3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAkBhH;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAKvF;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,yBAAyB,CAEtD;AAED;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.testData = void 0;
|
|
40
|
+
exports.createBasicTransferBuilder = createBasicTransferBuilder;
|
|
41
|
+
exports.createTransferBuilderWithGas = createTransferBuilderWithGas;
|
|
42
|
+
exports.createTransferBuilderWithSponsor = createTransferBuilderWithSponsor;
|
|
43
|
+
exports.createBuilderWithRecipients = createBuilderWithRecipients;
|
|
44
|
+
exports.createBuilderWithGasObjectsOnly = createBuilderWithGasObjectsOnly;
|
|
45
|
+
exports.createBuilderWithGasObjects = createBuilderWithGasObjects;
|
|
46
|
+
exports.assertBasicTransactionProperties = assertBasicTransactionProperties;
|
|
47
|
+
exports.assertGasData = assertGasData;
|
|
48
|
+
exports.assertInputsAndOutputs = assertInputsAndOutputs;
|
|
49
|
+
exports.assertValidRawTransaction = assertValidRawTransaction;
|
|
50
|
+
exports.createRecipients = createRecipients;
|
|
51
|
+
exports.getFactory = getFactory;
|
|
52
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
53
|
+
const src_1 = require("../../../src");
|
|
54
|
+
const testData = __importStar(require("../../resources/iota"));
|
|
55
|
+
exports.testData = testData;
|
|
56
|
+
const should_1 = __importDefault(require("should"));
|
|
57
|
+
/**
|
|
58
|
+
* Common test helpers and fixtures for IOTA transaction tests.
|
|
59
|
+
* Reduces duplication and improves test readability.
|
|
60
|
+
*/
|
|
61
|
+
const factory = new src_1.TransactionBuilderFactory(statics_1.coins.get('tiota'));
|
|
62
|
+
/**
|
|
63
|
+
* Creates a basic transfer builder with sender, recipients, and payment objects.
|
|
64
|
+
*/
|
|
65
|
+
function createBasicTransferBuilder() {
|
|
66
|
+
return factory
|
|
67
|
+
.getTransferBuilder()
|
|
68
|
+
.sender(testData.sender.address)
|
|
69
|
+
.recipients(testData.recipients)
|
|
70
|
+
.paymentObjects(testData.paymentObjects);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates a transfer builder with gas data for real (non-simulate) transactions.
|
|
74
|
+
*/
|
|
75
|
+
function createTransferBuilderWithGas() {
|
|
76
|
+
return createBasicTransferBuilder().gasData(testData.gasData);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Creates a transfer builder with a gas sponsor.
|
|
80
|
+
*/
|
|
81
|
+
function createTransferBuilderWithSponsor() {
|
|
82
|
+
return createTransferBuilderWithGas().gasSponsor(testData.gasSponsor.address);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Creates a builder with custom recipients.
|
|
86
|
+
*/
|
|
87
|
+
function createBuilderWithRecipients(recipients) {
|
|
88
|
+
return factory
|
|
89
|
+
.getTransferBuilder()
|
|
90
|
+
.sender(testData.sender.address)
|
|
91
|
+
.recipients(recipients)
|
|
92
|
+
.paymentObjects(testData.paymentObjects)
|
|
93
|
+
.gasData(testData.gasData);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Creates a builder that uses gas objects for payment (no payment objects).
|
|
97
|
+
*/
|
|
98
|
+
function createBuilderWithGasObjectsOnly() {
|
|
99
|
+
return factory
|
|
100
|
+
.getTransferBuilder()
|
|
101
|
+
.sender(testData.sender.address)
|
|
102
|
+
.recipients(testData.recipients)
|
|
103
|
+
.gasData(testData.gasData);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Creates a builder with custom gas objects.
|
|
107
|
+
*/
|
|
108
|
+
function createBuilderWithGasObjects(gasObjects) {
|
|
109
|
+
return factory.getTransferBuilder().sender(testData.sender.address).recipients(testData.recipients).gasData({
|
|
110
|
+
gasBudget: testData.GAS_BUDGET,
|
|
111
|
+
gasPrice: testData.GAS_PRICE,
|
|
112
|
+
gasPaymentObjects: gasObjects,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Asserts that a transaction has the expected basic properties.
|
|
117
|
+
*/
|
|
118
|
+
function assertBasicTransactionProperties(tx) {
|
|
119
|
+
should_1.default.exist(tx);
|
|
120
|
+
should_1.default.equal(tx.sender, testData.sender.address);
|
|
121
|
+
should_1.default.deepEqual(tx.recipients, testData.recipients);
|
|
122
|
+
should_1.default.deepEqual(tx.paymentObjects, testData.paymentObjects);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Asserts that a transaction has valid gas data.
|
|
126
|
+
*/
|
|
127
|
+
function assertGasData(tx) {
|
|
128
|
+
should_1.default.equal(tx.gasBudget, testData.GAS_BUDGET);
|
|
129
|
+
should_1.default.equal(tx.gasPrice, testData.GAS_PRICE);
|
|
130
|
+
should_1.default.deepEqual(tx.gasPaymentObjects, testData.gasPaymentObjects);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Asserts that a transaction has the expected inputs and outputs.
|
|
134
|
+
*/
|
|
135
|
+
function assertInputsAndOutputs(tx, expectedRecipients) {
|
|
136
|
+
const totalAmount = expectedRecipients.reduce((sum, r) => sum + Number(r.amount), 0);
|
|
137
|
+
tx.inputs.length.should.equal(1);
|
|
138
|
+
tx.inputs[0].should.deepEqual({
|
|
139
|
+
address: testData.sender.address,
|
|
140
|
+
value: totalAmount.toString(),
|
|
141
|
+
coin: 'tiota',
|
|
142
|
+
});
|
|
143
|
+
tx.outputs.length.should.equal(expectedRecipients.length);
|
|
144
|
+
expectedRecipients.forEach((recipient, index) => {
|
|
145
|
+
tx.outputs[index].should.deepEqual({
|
|
146
|
+
address: recipient.address,
|
|
147
|
+
value: recipient.amount,
|
|
148
|
+
coin: 'tiota',
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Verifies that a raw transaction is valid.
|
|
154
|
+
*/
|
|
155
|
+
async function assertValidRawTransaction(tx) {
|
|
156
|
+
const rawTx = await tx.toBroadcastFormat();
|
|
157
|
+
should_1.default.exist(rawTx);
|
|
158
|
+
should_1.default.equal(typeof rawTx, 'string');
|
|
159
|
+
should_1.default.equal(rawTx.length > 0, true);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Creates an array of recipients with the specified count and amount.
|
|
163
|
+
*/
|
|
164
|
+
function createRecipients(count, amount = '1000') {
|
|
165
|
+
return Array.from({ length: count }, (_, i) => ({
|
|
166
|
+
address: testData.addresses.validAddresses[i % testData.addresses.validAddresses.length],
|
|
167
|
+
amount,
|
|
168
|
+
}));
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Gets the transaction factory instance.
|
|
172
|
+
*/
|
|
173
|
+
function getFactory() {
|
|
174
|
+
return factory;
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdEhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvaGVscGVycy90ZXN0SGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsZ0VBTUM7QUFLRCxvRUFFQztBQUtELDRFQUVDO0FBS0Qsa0VBT0M7QUFLRCwwRUFNQztBQUtELGtFQU1DO0FBS0QsNEVBS0M7QUFLRCxzQ0FJQztBQUtELHdEQWtCQztBQUtELDhEQUtDO0FBS0QsNENBS0M7QUFLRCxnQ0FFQztBQTVJRCxpREFBNEM7QUFDNUMsc0NBQStGO0FBQy9GLCtEQUFpRDtBQStJeEMsNEJBQVE7QUE1SWpCLG9EQUE0QjtBQUU1Qjs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUVsRTs7R0FFRztBQUNILFNBQWdCLDBCQUEwQjtJQUN4QyxPQUFPLE9BQU87U0FDWCxrQkFBa0IsRUFBRTtTQUNwQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDL0IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7U0FDL0IsY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw0QkFBNEI7SUFDMUMsT0FBTywwQkFBMEIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0NBQWdDO0lBQzlDLE9BQU8sNEJBQTRCLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwy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IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBUcmFuc2ZlckJ1aWxkZXIsIFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2lvdGEnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9iamVjdElucHV0IH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5cbi8qKlxuICogQ29tbW9uIHRlc3QgaGVscGVycyBhbmQgZml4dHVyZXMgZm9yIElPVEEgdHJhbnNhY3Rpb24gdGVzdHMuXG4gKiBSZWR1Y2VzIGR1cGxpY2F0aW9uIGFuZCBpbXByb3ZlcyB0ZXN0IHJlYWRhYmlsaXR5LlxuICovXG5cbmNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3Rpb3RhJykpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBiYXNpYyB0cmFuc2ZlciBidWlsZGVyIHdpdGggc2VuZGVyLCByZWNpcGllbnRzLCBhbmQgcGF5bWVudCBvYmplY3RzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFzaWNUcmFuc2ZlckJ1aWxkZXIoKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgcmV0dXJuIGZhY3RvcnlcbiAgICAuZ2V0VHJhbnNmZXJCdWlsZGVyKClcbiAgICAuc2VuZGVyKHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKVxuICAgIC5yZWNpcGllbnRzKHRlc3REYXRhLnJlY2lwaWVudHMpXG4gICAgLnBheW1lbnRPYmplY3RzKHRlc3REYXRhLnBheW1lbnRPYmplY3RzKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdHJhbnNmZXIgYnVpbGRlciB3aXRoIGdhcyBkYXRhIGZvciByZWFsIChub24tc2ltdWxhdGUpIHRyYW5zYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zZmVyQnVpbGRlcldpdGhHYXMoKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgcmV0dXJuIGNyZWF0ZUJhc2ljVHJhbnNmZXJCdWlsZGVyKCkuZ2FzRGF0YSh0ZXN0RGF0YS5nYXNEYXRhKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdHJhbnNmZXIgYnVpbGRlciB3aXRoIGEgZ2FzIHNwb25zb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2ZlckJ1aWxkZXJXaXRoU3BvbnNvcigpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICByZXR1cm4gY3JlYXRlVHJhbnNmZXJCdWlsZGVyV2l0aEdhcygpLmdhc1Nwb25zb3IodGVzdERhdGEuZ2FzU3BvbnNvci5hZGRyZXNzKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgYnVpbGRlciB3aXRoIGN1c3RvbSByZWNpcGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQnVpbGRlcldpdGhSZWNpcGllbnRzKHJlY2lwaWVudHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICByZXR1cm4gZmFjdG9yeVxuICAgIC5nZXRUcmFuc2ZlckJ1aWxkZXIoKVxuICAgIC5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpXG4gICAgLnJlY2lwaWVudHMocmVjaXBpZW50cylcbiAgICAucGF5bWVudE9iamVjdHModGVzdERhdGEucGF5bWVudE9iamVjdHMpXG4gICAgLmdhc0RhdGEodGVzdERhdGEuZ2FzRGF0YSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGJ1aWxkZXIgdGhhdCB1c2VzIGdhcyBvYmplY3RzIGZvciBwYXltZW50IChubyBwYXltZW50IG9iamVjdHMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQnVpbGRlcldpdGhHYXNPYmplY3RzT25seSgpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICByZXR1cm4gZmFjdG9yeVxuICAgIC5nZXRUcmFuc2ZlckJ1aWxkZXIoKVxuICAgIC5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpXG4gICAgLnJlY2lwaWVudHModGVzdERhdGEucmVjaXBpZW50cylcbiAgICAuZ2FzRGF0YSh0ZXN0RGF0YS5nYXNEYXRhKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgYnVpbGRlciB3aXRoIGN1c3RvbSBnYXMgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJ1aWxkZXJXaXRoR2FzT2JqZWN0cyhnYXNPYmplY3RzOiBUcmFuc2FjdGlvbk9iamVjdElucHV0W10pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICByZXR1cm4gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKS5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpLnJlY2lwaWVudHModGVzdERhdGEucmVjaXBpZW50cykuZ2FzRGF0YSh7XG4gICAgZ2FzQnVkZ2V0OiB0ZXN0RGF0YS5HQVNfQlVER0VULFxuICAgIGdhc1ByaWNlOiB0ZXN0RGF0YS5HQVNfUFJJQ0UsXG4gICAgZ2FzUGF5bWVudE9iamVjdHM6IGdhc09iamVjdHMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHRyYW5zYWN0aW9uIGhhcyB0aGUgZXhwZWN0ZWQgYmFzaWMgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEJhc2ljVHJhbnNhY3Rpb25Qcm9wZXJ0aWVzKHR4OiBUcmFuc2ZlclRyYW5zYWN0aW9uKTogdm9pZCB7XG4gIHNob3VsZC5leGlzdCh0eCk7XG4gIHNob3VsZC5lcXVhbCh0eC5zZW5kZXIsIHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgc2hvdWxkLmRlZXBFcXVhbCh0eC5yZWNpcGllbnRzLCB0ZXN0RGF0YS5yZWNpcGllbnRzKTtcbiAgc2hvdWxkLmRlZXBFcXVhbCh0eC5wYXltZW50T2JqZWN0cywgdGVzdERhdGEucGF5bWVudE9iamVjdHMpO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHRyYW5zYWN0aW9uIGhhcyB2YWxpZCBnYXMgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEdhc0RhdGEodHg6IFRyYW5zZmVyVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgc2hvdWxkLmVxdWFsKHR4Lmdhc0J1ZGdldCwgdGVzdERhdGEuR0FTX0JVREdFVCk7XG4gIHNob3VsZC5lcXVhbCh0eC5nYXNQcmljZSwgdGVzdERhdGEuR0FTX1BSSUNFKTtcbiAgc2hvdWxkLmRlZXBFcXVhbCh0eC5nYXNQYXltZW50T2JqZWN0cywgdGVzdERhdGEuZ2FzUGF5bWVudE9iamVjdHMpO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHRyYW5zYWN0aW9uIGhhcyB0aGUgZXhwZWN0ZWQgaW5wdXRzIGFuZCBvdXRwdXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SW5wdXRzQW5kT3V0cHV0cyh0eDogVHJhbnNmZXJUcmFuc2FjdGlvbiwgZXhwZWN0ZWRSZWNpcGllbnRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdKTogdm9pZCB7XG4gIGNvbnN0IHRvdGFsQW1vdW50ID0gZXhwZWN0ZWRSZWNpcGllbnRzLnJlZHVjZSgoc3VtLCByKSA9PiBzdW0gKyBOdW1iZXIoci5hbW91bnQpLCAwKTtcblxuICB0eC5pbnB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgdHguaW5wdXRzWzBdLnNob3VsZC5kZWVwRXF1YWwoe1xuICAgIGFkZHJlc3M6IHRlc3REYXRhLnNlbmRlci5hZGRyZXNzLFxuICAgIHZhbHVlOiB0b3RhbEFtb3VudC50b1N0cmluZygpLFxuICAgIGNvaW46ICd0aW90YScsXG4gIH0pO1xuXG4gIHR4Lm91dHB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbChleHBlY3RlZFJlY2lwaWVudHMubGVuZ3RoKTtcbiAgZXhwZWN0ZWRSZWNpcGllbnRzLmZvckVhY2goKHJlY2lwaWVudCwgaW5kZXgpID0+IHtcbiAgICB0eC5vdXRwdXRzW2luZGV4XS5zaG91bGQuZGVlcEVxdWFsKHtcbiAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiAndGlvdGEnLFxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGF0IGEgcmF3IHRyYW5zYWN0aW9uIGlzIHZhbGlkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZXJ0VmFsaWRSYXdUcmFuc2FjdGlvbih0eDogVHJhbnNmZXJUcmFuc2FjdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByYXdUeCA9IGF3YWl0IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gIHNob3VsZC5leGlzdChyYXdUeCk7XG4gIHNob3VsZC5lcXVhbCh0eXBlb2YgcmF3VHgsICdzdHJpbmcnKTtcbiAgc2hvdWxkLmVxdWFsKHJhd1R4Lmxlbmd0aCA+IDAsIHRydWUpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgcmVjaXBpZW50cyB3aXRoIHRoZSBzcGVjaWZpZWQgY291bnQgYW5kIGFtb3VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlY2lwaWVudHMoY291bnQ6IG51bWJlciwgYW1vdW50ID0gJzEwMDAnKTogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaSkgPT4gKHtcbiAgICBhZGRyZXNzOiB0ZXN0RGF0YS5hZGRyZXNzZXMudmFsaWRBZGRyZXNzZXNbaSAlIHRlc3REYXRhLmFkZHJlc3Nlcy52YWxpZEFkZHJlc3Nlcy5sZW5ndGhdLFxuICAgIGFtb3VudCxcbiAgfSkpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHRyYW5zYWN0aW9uIGZhY3RvcnkgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGYWN0b3J5KCk6IFRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICByZXR1cm4gZmFjdG9yeTtcbn1cblxuLyoqXG4gKiBUZXN0IGRhdGEgcmUtZXhwb3J0cyBmb3IgY29udmVuaWVuY2UuXG4gKi9cbmV4cG9ydCB7IHRlc3REYXRhIH07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
5
|
+
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
6
|
+
const src_1 = require("../../src");
|
|
7
|
+
describe('Iota:', function () {
|
|
8
|
+
let bitgo;
|
|
9
|
+
before(function () {
|
|
10
|
+
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
|
|
11
|
+
bitgo.safeRegister('iota', src_1.Iota.createInstance);
|
|
12
|
+
bitgo.safeRegister('tiota', src_1.Iota.createInstance);
|
|
13
|
+
bitgo.initializeTestVars();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsbURBQStEO0FBQy9ELGlEQUErQztBQUMvQyxtQ0FBaUM7QUFFakMsUUFBUSxDQUFDLE9BQU8sRUFBRTtJQUNoQixJQUFJLEtBQW1CLENBQUM7SUFFeEIsTUFBTSxDQUFDO1FBQ0wsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pELEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgeyBJb3RhIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuZGVzY3JpYmUoJ0lvdGE6JywgZnVuY3Rpb24gKCkge1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ21vY2snIH0pO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcignaW90YScsIElvdGEuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGlvdGEnLCBJb3RhLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iota.d.ts","sourceRoot":"","sources":["../../../test/unit/iota.ts"],"names":[],"mappings":""}
|