@bitgo/account-lib 2.20.0-rc.28 → 2.20.0-rc.30
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/CHANGELOG.md +28 -0
- package/dist/browser/bitgo-account-lib.js +2 -0
- package/dist/browser/bitgo-account-lib.js.LICENSE.txt +337 -0
- package/dist/resources/hbar/protobuf/BasicTypes.proto +424 -0
- package/dist/resources/hbar/protobuf/CryptoCreate.proto +47 -0
- package/dist/resources/hbar/protobuf/CryptoTransfer.proto +33 -0
- package/dist/resources/hbar/protobuf/Duration.proto +28 -0
- package/dist/resources/hbar/protobuf/Timestamp.proto +34 -0
- package/dist/resources/hbar/protobuf/Transaction.proto +35 -0
- package/dist/resources/hbar/protobuf/TransactionBody.proto +24 -0
- package/dist/resources/hbar/protobuf/TransactionContents.proto +33 -0
- package/dist/resources/hbar/protobuf/hedera.d.ts +4612 -0
- package/dist/resources/hbar/protobuf/hedera.js +12192 -0
- package/dist/src/coin/algo/assetTransferBuilder.d.ts +42 -0
- package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/assetTransferBuilder.js +105 -0
- package/dist/src/coin/algo/errors.d.ts +11 -0
- package/dist/src/coin/algo/errors.d.ts.map +1 -0
- package/dist/src/coin/algo/errors.js +27 -0
- package/dist/src/coin/algo/ifaces.d.ts +46 -0
- package/dist/src/coin/algo/ifaces.d.ts.map +1 -0
- package/dist/src/coin/algo/ifaces.js +3 -0
- package/dist/src/coin/algo/index.d.ts +13 -0
- package/dist/src/coin/algo/index.d.ts.map +1 -0
- package/dist/src/coin/algo/index.js +47 -0
- package/dist/src/coin/algo/keyPair.d.ts +25 -0
- package/dist/src/coin/algo/keyPair.d.ts.map +1 -0
- package/dist/src/coin/algo/keyPair.js +77 -0
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +104 -0
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/keyRegistrationBuilder.js +239 -0
- package/dist/src/coin/algo/seedEncoding.d.ts +25 -0
- package/dist/src/coin/algo/seedEncoding.d.ts.map +1 -0
- package/dist/src/coin/algo/seedEncoding.js +97 -0
- package/dist/src/coin/algo/transaction.d.ts +75 -0
- package/dist/src/coin/algo/transaction.d.ts.map +1 -0
- package/dist/src/coin/algo/transaction.js +251 -0
- package/dist/src/coin/algo/transactionBuilder.d.ts +204 -0
- package/dist/src/coin/algo/transactionBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/transactionBuilder.js +373 -0
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts +16 -0
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/coin/algo/transactionBuilderFactory.js +52 -0
- package/dist/src/coin/algo/transferBuilder.d.ts +40 -0
- package/dist/src/coin/algo/transferBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/transferBuilder.js +89 -0
- package/dist/src/coin/algo/txnSchema.d.ts +7 -0
- package/dist/src/coin/algo/txnSchema.d.ts.map +1 -0
- package/dist/src/coin/algo/txnSchema.js +68 -0
- package/dist/src/coin/algo/utils.d.ts +249 -0
- package/dist/src/coin/algo/utils.d.ts.map +1 -0
- package/dist/src/coin/algo/utils.js +539 -0
- package/dist/src/coin/avaxc/index.d.ts +2 -3
- package/dist/src/coin/avaxc/index.d.ts.map +1 -1
- package/dist/src/coin/avaxc/index.js +5 -6
- package/dist/src/coin/avaxc/transactionBuilder.js +3 -3
- package/dist/src/coin/avaxc/transferBuilder.d.ts +1 -1
- package/dist/src/coin/avaxc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/avaxc/transferBuilder.js +3 -3
- package/dist/src/coin/avaxc/utils.d.ts +1 -2
- package/dist/src/coin/avaxc/utils.d.ts.map +1 -1
- package/dist/src/coin/avaxc/utils.js +3 -3
- package/dist/src/coin/celo/index.d.ts +2 -3
- package/dist/src/coin/celo/index.d.ts.map +1 -1
- package/dist/src/coin/celo/index.js +5 -6
- package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/stakingBuilder.js +21 -22
- package/dist/src/coin/celo/stakingCall.d.ts +1 -1
- package/dist/src/coin/celo/stakingCall.js +3 -3
- package/dist/src/coin/celo/transaction.d.ts +2 -3
- package/dist/src/coin/celo/transaction.d.ts.map +1 -1
- package/dist/src/coin/celo/transaction.js +3 -3
- package/dist/src/coin/celo/transactionBuilder.d.ts +2 -3
- package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/transactionBuilder.js +4 -24
- package/dist/src/coin/celo/transferBuilder.d.ts +1 -1
- package/dist/src/coin/celo/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/transferBuilder.js +3 -3
- package/dist/src/coin/celo/types.d.ts +1 -2
- package/dist/src/coin/celo/types.d.ts.map +1 -1
- package/dist/src/coin/celo/types.js +5 -5
- package/dist/src/coin/celo/utils.d.ts +1 -1
- package/dist/src/coin/celo/utils.d.ts.map +1 -1
- package/dist/src/coin/celo/utils.js +3 -3
- package/dist/src/coin/cspr/constants.d.ts +19 -0
- package/dist/src/coin/cspr/constants.d.ts.map +1 -0
- package/dist/src/coin/cspr/constants.js +28 -0
- package/dist/src/coin/cspr/delegateBuilder.d.ts +49 -0
- package/dist/src/coin/cspr/delegateBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/delegateBuilder.js +111 -0
- package/dist/src/coin/cspr/ifaces.d.ts +69 -0
- package/dist/src/coin/cspr/ifaces.d.ts.map +1 -0
- package/dist/src/coin/cspr/ifaces.js +3 -0
- package/dist/src/coin/cspr/index.d.ts +6 -0
- package/dist/src/coin/cspr/index.d.ts.map +1 -0
- package/dist/src/coin/cspr/index.js +31 -0
- package/dist/src/coin/cspr/keyPair.d.ts +18 -0
- package/dist/src/coin/cspr/keyPair.d.ts.map +1 -0
- package/dist/src/coin/cspr/keyPair.js +75 -0
- package/dist/src/coin/cspr/transaction.d.ts +55 -0
- package/dist/src/coin/cspr/transaction.d.ts.map +1 -0
- package/dist/src/coin/cspr/transaction.js +227 -0
- package/dist/src/coin/cspr/transactionBuilder.d.ts +124 -0
- package/dist/src/coin/cspr/transactionBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/transactionBuilder.js +312 -0
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +46 -0
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/coin/cspr/transactionBuilderFactory.js +98 -0
- package/dist/src/coin/cspr/transferBuilder.d.ts +39 -0
- package/dist/src/coin/cspr/transferBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/transferBuilder.js +106 -0
- package/dist/src/coin/cspr/undelegateBuilder.d.ts +49 -0
- package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/undelegateBuilder.js +111 -0
- package/dist/src/coin/cspr/utils.d.ts +188 -0
- package/dist/src/coin/cspr/utils.d.ts.map +1 -0
- package/dist/src/coin/cspr/utils.js +477 -0
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +27 -0
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/walletInitializationBuilder.js +95 -0
- package/dist/src/coin/etc/index.d.ts +2 -4
- package/dist/src/coin/etc/index.d.ts.map +1 -1
- package/dist/src/coin/etc/index.js +6 -8
- package/dist/src/coin/etc/transactionBuilder.js +3 -3
- package/dist/src/coin/etc/transferBuilder.d.ts +1 -1
- package/dist/src/coin/etc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/etc/transferBuilder.js +3 -3
- package/dist/src/coin/etc/utils.d.ts +1 -2
- package/dist/src/coin/etc/utils.d.ts.map +1 -1
- package/dist/src/coin/etc/utils.js +3 -3
- package/dist/src/coin/hbar/coinTransferBuilder.d.ts +46 -0
- package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/coinTransferBuilder.js +143 -0
- package/dist/src/coin/hbar/constants.d.ts +8 -0
- package/dist/src/coin/hbar/constants.d.ts.map +1 -0
- package/dist/src/coin/hbar/constants.js +12 -0
- package/dist/src/coin/hbar/iface.d.ts +6 -0
- package/dist/src/coin/hbar/iface.d.ts.map +1 -1
- package/dist/src/coin/hbar/iface.js +1 -1
- package/dist/src/coin/hbar/ifaces.d.ts +26 -0
- package/dist/src/coin/hbar/ifaces.d.ts.map +1 -0
- package/dist/src/coin/hbar/ifaces.js +3 -0
- package/dist/src/coin/hbar/keyPair.js +2 -2
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +35 -0
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/tokenAssociateBuilder.js +118 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +25 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.js +115 -0
- package/dist/src/coin/hbar/transaction.d.ts +8 -1
- package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
- package/dist/src/coin/hbar/transaction.js +46 -10
- package/dist/src/coin/hbar/transactionBuilder.d.ts +2 -3
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilder.js +7 -21
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +13 -3
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.js +28 -17
- package/dist/src/coin/hbar/transferBuilder.d.ts +6 -26
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transferBuilder.js +13 -72
- package/dist/src/coin/hbar/utils.d.ts +54 -3
- package/dist/src/coin/hbar/utils.d.ts.map +1 -1
- package/dist/src/coin/hbar/utils.js +101 -5
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +7 -7
- package/dist/src/coin/polygon/index.d.ts +2 -4
- package/dist/src/coin/polygon/index.d.ts.map +1 -1
- package/dist/src/coin/polygon/index.js +6 -8
- package/dist/src/coin/polygon/transferBuilder.d.ts +1 -1
- package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/polygon/transferBuilder.js +3 -3
- package/dist/src/coin/polygon/utils.d.ts +1 -2
- package/dist/src/coin/polygon/utils.d.ts.map +1 -1
- package/dist/src/coin/polygon/utils.js +3 -3
- package/dist/src/coin/rbtc/index.d.ts +2 -4
- package/dist/src/coin/rbtc/index.d.ts.map +1 -1
- package/dist/src/coin/rbtc/index.js +6 -8
- package/dist/src/coin/rbtc/transactionBuilder.js +3 -3
- package/dist/src/coin/rbtc/transferBuilder.d.ts +1 -1
- package/dist/src/coin/rbtc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/rbtc/transferBuilder.js +3 -3
- package/dist/src/coin/rbtc/utils.d.ts +1 -2
- package/dist/src/coin/rbtc/utils.d.ts.map +1 -1
- package/dist/src/coin/rbtc/utils.js +3 -3
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/tsconfig.tsbuildinfo +4718 -2445
- package/package.json +9 -8
|
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TransactionBuilderFactory = void 0;
|
|
4
4
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
5
|
const walletInitializationBuilder_1 = require("./walletInitializationBuilder");
|
|
6
|
-
const
|
|
6
|
+
const coinTransferBuilder_1 = require("./coinTransferBuilder");
|
|
7
7
|
const transaction_1 = require("./transaction");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
|
+
const tokenAssociateBuilder_1 = require("./tokenAssociateBuilder");
|
|
10
|
+
const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
9
11
|
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
10
12
|
constructor(_coinConfig) {
|
|
11
13
|
super(_coinConfig);
|
|
@@ -16,17 +18,33 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
16
18
|
}
|
|
17
19
|
/** @inheritDoc */
|
|
18
20
|
getTransferBuilder(tx) {
|
|
19
|
-
return this.initializeBuilder(tx, new
|
|
21
|
+
return this.initializeBuilder(tx, new coinTransferBuilder_1.CoinTransferBuilder(this._coinConfig));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns a specific builder to create a funds token transfer transaction
|
|
25
|
+
*/
|
|
26
|
+
getTokenTransferBuilder(tx) {
|
|
27
|
+
return this.initializeBuilder(tx, new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns a builder to create a token association transaction
|
|
31
|
+
*/
|
|
32
|
+
getTokenAssociateBuilder(tx) {
|
|
33
|
+
return this.initializeBuilder(tx, new tokenAssociateBuilder_1.TokenAssociateBuilder(this._coinConfig));
|
|
20
34
|
}
|
|
21
35
|
/** @inheritDoc */
|
|
22
36
|
from(raw) {
|
|
23
37
|
this.validateRawTransaction(raw);
|
|
24
|
-
const tx = this.
|
|
25
|
-
switch (tx.
|
|
26
|
-
case
|
|
27
|
-
return
|
|
28
|
-
|
|
38
|
+
const tx = this.parseRawTransaction(raw);
|
|
39
|
+
switch (tx.type) {
|
|
40
|
+
case sdk_core_1.TransactionType.Send:
|
|
41
|
+
return utils_1.isTokenTransfer(tx.txBody.cryptoTransfer)
|
|
42
|
+
? this.getTokenTransferBuilder(tx)
|
|
43
|
+
: this.getTransferBuilder(tx);
|
|
44
|
+
case sdk_core_1.TransactionType.WalletInitialization:
|
|
29
45
|
return this.getWalletInitializationBuilder(tx);
|
|
46
|
+
case sdk_core_1.TransactionType.AssociatedTokenAccountInitialization:
|
|
47
|
+
return this.getTokenAssociateBuilder(tx);
|
|
30
48
|
default:
|
|
31
49
|
throw new sdk_core_1.InvalidTransactionError('Invalid transaction ' + tx.txBody.data);
|
|
32
50
|
}
|
|
@@ -50,16 +68,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
50
68
|
* @param {Uint8Array | string} rawTransaction - encoded transaction
|
|
51
69
|
* @returns {Transaction} the parsed transaction instance
|
|
52
70
|
*/
|
|
53
|
-
|
|
71
|
+
parseRawTransaction(rawTransaction) {
|
|
54
72
|
const tx = new transaction_1.Transaction(this._coinConfig);
|
|
55
|
-
|
|
56
|
-
if (typeof rawTransaction === 'string') {
|
|
57
|
-
buffer = utils_1.toUint8Array(rawTransaction);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
buffer = rawTransaction;
|
|
61
|
-
}
|
|
62
|
-
tx.bodyBytes(buffer);
|
|
73
|
+
tx.fromRawTransaction(rawTransaction);
|
|
63
74
|
return tx;
|
|
64
75
|
}
|
|
65
76
|
/**
|
|
@@ -74,4 +85,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
74
85
|
}
|
|
75
86
|
}
|
|
76
87
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2hiYXIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw4Q0FLeUI7QUFDekIsK0VBQTRFO0FBQzVFLCtEQUE0RDtBQUU1RCwrQ0FBNEM7QUFDNUMsbUNBQXVFO0FBQ3ZFLG1FQUFnRTtBQUNoRSxpRUFBOEQ7QUFFOUQsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEIsQ0FBQyxFQUFnQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSx5REFBMkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7T0FFRztJQUNILHVCQUF1QixDQUFDLEVBQWdCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QixDQUFDLEVBQWdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLDZDQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLEdBQXdCO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQ2YsS0FBSywwQkFBZSxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sdUJBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWUsQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsS0FBSywwQkFBZSxDQUFDLG9CQUFvQjtnQkFDdkMsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakQsS0FBSywwQkFBZSxDQUFDLG9DQUFvQztnQkFDdkQsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0M7Z0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxtQkFBbUIsQ0FBQyxjQUFtQztRQUM3RCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssc0JBQXNCLENBQUMsY0FBbUM7UUFDaEUsSUFBSSxDQUFDLG1DQUEyQixDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztDQUNGO0FBbkZELDhEQW1GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQge1xuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIH0gZnJvbSAnLi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQ29pblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vY29pblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNUb2tlblRyYW5zZmVyLCBpc1ZhbGlkUmF3VHJhbnNhY3Rpb25Gb3JtYXQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRva2VuQXNzb2NpYXRlQnVpbGRlciB9IGZyb20gJy4vdG9rZW5Bc3NvY2lhdGVCdWlsZGVyJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IENvaW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgQ29pblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIGJ1aWxkZXIgdG8gY3JlYXRlIGEgZnVuZHMgdG9rZW4gdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFRva2VuVHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBUb2tlblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJ1aWxkZXIgdG8gY3JlYXRlIGEgdG9rZW4gYXNzb2NpYXRpb24gdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFRva2VuQXNzb2NpYXRlQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVG9rZW5Bc3NvY2lhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFRva2VuQXNzb2NpYXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZnJvbShyYXc6IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIGNvbnN0IHR4ID0gdGhpcy5wYXJzZVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgc3dpdGNoICh0eC50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gaXNUb2tlblRyYW5zZmVyKHR4LnR4Qm9keS5jcnlwdG9UcmFuc2ZlciEpXG4gICAgICAgICAgPyB0aGlzLmdldFRva2VuVHJhbnNmZXJCdWlsZGVyKHR4KVxuICAgICAgICAgIDogdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb246XG4gICAgICAgIHJldHVybiB0aGlzLmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eCk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb246XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRva2VuQXNzb2NpYXRlQnVpbGRlcih0eCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gJyArIHR4LnR4Qm9keS5kYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdHJhbnNhY3Rpb24gaW5zdGFuY2UgZnJvbSB0aGUgZW5jb2RlZCB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXkgfCBzdHJpbmd9IHJhd1RyYW5zYWN0aW9uIC0gZW5jb2RlZCB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb259IHRoZSBwYXJzZWQgdHJhbnNhY3Rpb24gaW5zdGFuY2VcbiAgICovXG4gIHByaXZhdGUgcGFyc2VSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgcmF3IHRyYW5zYWN0aW9uIGhhcyBhIHZhbGlkIGZvcm1hdCBpbiB0aGUgYmxvY2tjaGFpbiBjb250ZXh0LCB0aHJvdyBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSByYXdUcmFuc2FjdGlvbiAtIFRyYW5zYWN0aW9uIGluIGFueSBmb3JtYXRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZykge1xuICAgIGlmICghaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0KHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
2
|
import * as proto from '@hashgraph/proto';
|
|
3
3
|
import { BaseKey } from '@bitgo/sdk-core';
|
|
4
|
+
import { Recipient } from './iface';
|
|
4
5
|
import { TransactionBuilder } from './transactionBuilder';
|
|
5
6
|
import { Transaction } from './transaction';
|
|
6
7
|
export declare class TransferBuilder extends TransactionBuilder {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private _amount;
|
|
8
|
+
protected readonly _txBodyData: proto.CryptoTransferTransactionBody;
|
|
9
|
+
protected _recipients: Recipient[];
|
|
10
10
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
11
11
|
/** @inheritdoc */
|
|
12
12
|
protected buildImplementation(): Promise<Transaction>;
|
|
13
|
-
private buildTransferData;
|
|
14
|
-
static buildAccountData(address: string): proto.AccountID;
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
initBuilder(tx: Transaction): void;
|
|
17
|
-
/**
|
|
18
|
-
* Initialize the transfer specific data, getting the recipient account
|
|
19
|
-
* represented by the element with a positive amount on the transfer element.
|
|
20
|
-
* The negative amount represents the source account, so it's ignored.
|
|
21
|
-
*
|
|
22
|
-
* @param {proto} transfers - Array of objects which contains accountID and transferred amount
|
|
23
|
-
*/
|
|
24
|
-
protected initTransfers(transfers: proto.IAccountAmount[]): void;
|
|
25
13
|
/** @inheritdoc */
|
|
26
14
|
protected signImplementation(key: BaseKey): Transaction;
|
|
27
15
|
/**
|
|
28
|
-
* Set the
|
|
29
|
-
* it may take the format `'<shard>.<realm>.<account>'` or `'<account>'`
|
|
30
|
-
*
|
|
31
|
-
* @param {string} address - The address to transfer funds to
|
|
32
|
-
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
33
|
-
*/
|
|
34
|
-
to(address: string): this;
|
|
35
|
-
/**
|
|
36
|
-
* Set the amount to be transferred
|
|
16
|
+
* Set the recipient to be transferred
|
|
37
17
|
*
|
|
38
|
-
* @param {
|
|
18
|
+
* @param {Recipient} recipient - recipient to transfer consisting destination address and amount
|
|
39
19
|
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
40
20
|
*/
|
|
41
|
-
|
|
21
|
+
send(recipient: Recipient): this;
|
|
42
22
|
validateMandatoryFields(): void;
|
|
43
23
|
}
|
|
44
24
|
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,OAAO,EAKR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,6BAA6B,CAAC;IACpE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;gBAEvB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAK3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAQvD;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAahC,uBAAuB,IAAI,IAAI;CAOhC"}
|
|
@@ -20,114 +20,55 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.TransferBuilder = void 0;
|
|
23
|
-
const Long = __importStar(require("long"));
|
|
24
|
-
const sdk_1 = require("@hashgraph/sdk");
|
|
25
23
|
const proto = __importStar(require("@hashgraph/proto"));
|
|
26
24
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
27
25
|
const transactionBuilder_1 = require("./transactionBuilder");
|
|
28
26
|
const utils_1 = require("./utils");
|
|
27
|
+
const constants_1 = require("./constants");
|
|
29
28
|
class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
30
29
|
constructor(_coinConfig) {
|
|
31
30
|
super(_coinConfig);
|
|
32
31
|
this._txBodyData = new proto.CryptoTransferTransactionBody();
|
|
33
32
|
this._txBody.cryptoTransfer = this._txBodyData;
|
|
33
|
+
this._recipients = [];
|
|
34
34
|
}
|
|
35
35
|
/** @inheritdoc */
|
|
36
36
|
async buildImplementation() {
|
|
37
|
-
this._txBodyData.transfers = this.buildTransferData();
|
|
38
37
|
this.transaction.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
39
38
|
return await super.buildImplementation();
|
|
40
39
|
}
|
|
41
|
-
buildTransferData() {
|
|
42
|
-
return {
|
|
43
|
-
accountAmounts: [
|
|
44
|
-
{
|
|
45
|
-
accountID: TransferBuilder.buildAccountData(this._source.address),
|
|
46
|
-
amount: Long.fromString(this._amount).negate(),
|
|
47
|
-
},
|
|
48
|
-
{ accountID: TransferBuilder.buildAccountData(this._toAddress), amount: Long.fromString(this._amount) }, // recipient
|
|
49
|
-
],
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
static buildAccountData(address) {
|
|
53
|
-
const accountData = sdk_1.AccountId.fromString(address);
|
|
54
|
-
return new proto.AccountID({
|
|
55
|
-
accountNum: accountData.num,
|
|
56
|
-
realmNum: accountData.realm,
|
|
57
|
-
shardNum: accountData.shard,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
/** @inheritdoc */
|
|
61
|
-
initBuilder(tx) {
|
|
62
|
-
super.initBuilder(tx);
|
|
63
|
-
this.transaction.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
64
|
-
const transferData = tx.txBody.cryptoTransfer;
|
|
65
|
-
if (transferData && transferData.transfers && transferData.transfers.accountAmounts) {
|
|
66
|
-
this.initTransfers(transferData.transfers.accountAmounts);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Initialize the transfer specific data, getting the recipient account
|
|
71
|
-
* represented by the element with a positive amount on the transfer element.
|
|
72
|
-
* The negative amount represents the source account, so it's ignored.
|
|
73
|
-
*
|
|
74
|
-
* @param {proto} transfers - Array of objects which contains accountID and transferred amount
|
|
75
|
-
*/
|
|
76
|
-
initTransfers(transfers) {
|
|
77
|
-
transfers.forEach((transferData) => {
|
|
78
|
-
const amount = Long.fromValue(transferData.amount);
|
|
79
|
-
if (amount.isPositive()) {
|
|
80
|
-
this.to(utils_1.stringifyAccountId(transferData.accountID));
|
|
81
|
-
this.amount(amount.toString());
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
40
|
/** @inheritdoc */
|
|
86
41
|
signImplementation(key) {
|
|
87
|
-
if (this._multiSignerKeyPairs.length >=
|
|
88
|
-
throw new sdk_core_1.SigningError('A maximum of ' +
|
|
42
|
+
if (this._multiSignerKeyPairs.length >= constants_1.DEFAULT_SIGNER_NUMBER) {
|
|
43
|
+
throw new sdk_core_1.SigningError('A maximum of ' + constants_1.DEFAULT_SIGNER_NUMBER + ' can sign the transaction.');
|
|
89
44
|
}
|
|
90
45
|
return super.signImplementation(key);
|
|
91
46
|
}
|
|
92
47
|
// region Transfer fields
|
|
93
48
|
/**
|
|
94
|
-
* Set the
|
|
95
|
-
* it may take the format `'<shard>.<realm>.<account>'` or `'<account>'`
|
|
49
|
+
* Set the recipient to be transferred
|
|
96
50
|
*
|
|
97
|
-
* @param {
|
|
51
|
+
* @param {Recipient} recipient - recipient to transfer consisting destination address and amount
|
|
98
52
|
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
99
53
|
*/
|
|
100
|
-
|
|
101
|
-
if (!utils_1.isValidAddress(address)) {
|
|
54
|
+
send(recipient) {
|
|
55
|
+
if (!utils_1.isValidAddress(recipient.address)) {
|
|
102
56
|
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
103
57
|
}
|
|
104
|
-
|
|
105
|
-
return this;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Set the amount to be transferred
|
|
109
|
-
*
|
|
110
|
-
* @param {string} amount - Amount to transfer in tinyBars (there are 100,000,000 tinyBars in one Hbar)
|
|
111
|
-
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
112
|
-
*/
|
|
113
|
-
amount(amount) {
|
|
114
|
-
if (!utils_1.isValidAmount(amount)) {
|
|
58
|
+
if (!utils_1.isValidAmount(recipient.amount)) {
|
|
115
59
|
throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
|
|
116
60
|
}
|
|
117
|
-
this.
|
|
61
|
+
this._recipients.push(recipient);
|
|
118
62
|
return this;
|
|
119
63
|
}
|
|
120
64
|
// endregion
|
|
121
65
|
// region Validators
|
|
122
66
|
validateMandatoryFields() {
|
|
123
|
-
if (this.
|
|
124
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing
|
|
125
|
-
}
|
|
126
|
-
if (this._amount === undefined) {
|
|
127
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing amount');
|
|
67
|
+
if (this._recipients.length === 0) {
|
|
68
|
+
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing recipients');
|
|
128
69
|
}
|
|
129
70
|
super.validateMandatoryFields();
|
|
130
71
|
}
|
|
131
72
|
}
|
|
132
73
|
exports.TransferBuilder = TransferBuilder;
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHdEQUEwQztBQUMxQyw4Q0FNeUI7QUFFekIsNkRBQTBEO0FBRTFELG1DQUF3RDtBQUN4RCwyQ0FBb0Q7QUFFcEQsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUlyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxpQ0FBcUIsRUFBRTtZQUM3RCxNQUFNLElBQUksdUJBQVksQ0FBQyxlQUFlLEdBQUcsaUNBQXFCLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztTQUNoRztRQUNELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCx5QkFBeUI7SUFDekI7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLHNCQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxDQUFDLHFCQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsWUFBWTtJQUVaLG9CQUFvQjtJQUNwQix1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUU7UUFDRCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBRUY7QUFwREQsMENBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHByb3RvIGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBpc1ZhbGlkQWRkcmVzcywgaXNWYWxpZEFtb3VudCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9TSUdORVJfTlVNQkVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keTtcbiAgcHJvdGVjdGVkIF9yZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YSA9IG5ldyBwcm90by5DcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keSgpO1xuICAgIHRoaXMuX3R4Qm9keS5jcnlwdG9UcmFuc2ZlciA9IHRoaXMuX3R4Qm9keURhdGE7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IFtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBpZiAodGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5sZW5ndGggPj0gREVGQVVMVF9TSUdORVJfTlVNQkVSKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdBIG1heGltdW0gb2YgJyArIERFRkFVTFRfU0lHTkVSX05VTUJFUiArICcgY2FuIHNpZ24gdGhlIHRyYW5zYWN0aW9uLicpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2lnbkltcGxlbWVudGF0aW9uKGtleSk7XG4gIH1cblxuICAvLyByZWdpb24gVHJhbnNmZXIgZmllbGRzXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlY2lwaWVudCB0byBiZSB0cmFuc2ZlcnJlZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlY2lwaWVudH0gcmVjaXBpZW50IC0gcmVjaXBpZW50IHRvIHRyYW5zZmVyIGNvbnNpc3RpbmcgZGVzdGluYXRpb24gYWRkcmVzcyBhbmQgYW1vdW50XG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IC0gVGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKHJlY2lwaWVudC5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgICB9XG4gICAgaWYgKCFpc1ZhbGlkQW1vdW50KHJlY2lwaWVudC5hbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2lwaWVudHMucHVzaChyZWNpcGllbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZWNpcGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyByZWNpcGllbnRzJyk7XG4gICAgfVxuICAgIHN1cGVyLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG59XG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { PrivateKey } from '@hashgraph/sdk';
|
|
|
2
2
|
import * as proto from '@hashgraph/proto';
|
|
3
3
|
import { AddressDetails } from './iface';
|
|
4
4
|
import { toHex, toUint8Array } from '@bitgo/sdk-core';
|
|
5
|
+
import { BaseCoin } from '@bitgo/statics';
|
|
5
6
|
export { toHex, toUint8Array };
|
|
6
7
|
/**
|
|
7
8
|
* Returns whether the string is a valid Hedera account address
|
|
@@ -20,7 +21,7 @@ export declare function isValidAddress(address: string): boolean;
|
|
|
20
21
|
*/
|
|
21
22
|
export declare function isValidTransactionId(txId: string): boolean;
|
|
22
23
|
/**
|
|
23
|
-
|
|
24
|
+
Returns whether the string is a valid Hedera public key
|
|
24
25
|
*
|
|
25
26
|
* @param {string} key - The public key to be validated
|
|
26
27
|
* @returns {boolean} - The validation result
|
|
@@ -64,14 +65,21 @@ export declare function isValidRawTransactionFormat(rawTransaction: any): boolea
|
|
|
64
65
|
/**
|
|
65
66
|
* Returns a string representation of an {proto.IAccountID} object
|
|
66
67
|
*
|
|
67
|
-
* @param {proto} accountId - Account id to be cast to string
|
|
68
|
+
* @param {proto.IAccountID} accountId - Account id to be cast to string
|
|
68
69
|
* @returns {string} - The string representation of the {proto.IAccountID}
|
|
69
70
|
*/
|
|
70
71
|
export declare function stringifyAccountId({ shardNum, realmNum, accountNum }: proto.IAccountID): string;
|
|
72
|
+
/**
|
|
73
|
+
* Returns a string representation of an {proto.ITokenID} object
|
|
74
|
+
*
|
|
75
|
+
* @param {proto.ITokenID} - token id to be cast to string
|
|
76
|
+
* @returns {string} - the string representation of the {proto.ITokenID}
|
|
77
|
+
*/
|
|
78
|
+
export declare function stringifyTokenId({ shardNum, realmNum, tokenNum }: proto.ITokenID): string;
|
|
71
79
|
/**
|
|
72
80
|
* Returns a string representation of an {proto.ITimestamp} object
|
|
73
81
|
*
|
|
74
|
-
* @param {proto} timestamp - Timestamp to be cast to string
|
|
82
|
+
* @param {proto.ITimestamp} timestamp - Timestamp to be cast to string
|
|
75
83
|
* @returns {string} - The string representation of the {proto.ITimestamp}
|
|
76
84
|
*/
|
|
77
85
|
export declare function stringifyTxTime({ seconds, nanos }: proto.ITimestamp): string;
|
|
@@ -140,4 +148,47 @@ export declare function normalizeAddress({ address, memoId }: AddressDetails): s
|
|
|
140
148
|
* @returns {boolean} - True if input is a valid address
|
|
141
149
|
*/
|
|
142
150
|
export declare function isValidAddressWithPaymentId(address: string): boolean;
|
|
151
|
+
/**
|
|
152
|
+
<<<<<<< HEAD
|
|
153
|
+
* Build hedera {proto.TokenID} object from token ID string
|
|
154
|
+
*
|
|
155
|
+
* @param {string} tokenID - The token ID to build
|
|
156
|
+
* @returns {proto.TokenID} - The resulting proto TokenID object
|
|
157
|
+
*/
|
|
158
|
+
export declare function buildHederaTokenID(tokenID: string): proto.TokenID;
|
|
159
|
+
/**
|
|
160
|
+
* Build hedera {proto.AccountID} object from account ID string
|
|
161
|
+
*
|
|
162
|
+
* @param {string} accountID - The account ID to build
|
|
163
|
+
* @returns {proto} - The resulting proto AccountID object
|
|
164
|
+
*/
|
|
165
|
+
export declare function buildHederaAccountID(accountID: string): proto.AccountID;
|
|
166
|
+
/**
|
|
167
|
+
* Check if Hedera token ID is valid and supported
|
|
168
|
+
*
|
|
169
|
+
* @param {string} tokenId - The token ID to validate
|
|
170
|
+
* @returns {boolean} - True if tokenId is valid and supported
|
|
171
|
+
*/
|
|
172
|
+
export declare function isValidHederaTokenID(tokenId: string): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Get the associated hedera token ID from token name, if supported
|
|
175
|
+
*
|
|
176
|
+
* @param {string} tokenName - The hedera token name
|
|
177
|
+
* @returns {boolean} - The associated token ID or undefined if not supported
|
|
178
|
+
*/
|
|
179
|
+
export declare function getHederaTokenIdFromName(tokenName: string): string | undefined;
|
|
180
|
+
/**
|
|
181
|
+
* Get the associated hedera token from token ID, if supported
|
|
182
|
+
*
|
|
183
|
+
* @param tokenId - The token address
|
|
184
|
+
* @returns {BaseCoin} - BaseCoin object for the matching token
|
|
185
|
+
*/
|
|
186
|
+
export declare function getHederaTokenNameFromId(tokenId: string): Readonly<BaseCoin> | undefined;
|
|
187
|
+
/**
|
|
188
|
+
* Return boolean indicating whether input is a valid token transfer transaction
|
|
189
|
+
*
|
|
190
|
+
* @param {proto.ICryptoTransferTransactionBody | null} transferTxBody is a transfer transaction body
|
|
191
|
+
* @returns {boolean} true is input is a valid token transfer transaction
|
|
192
|
+
*/
|
|
193
|
+
export declare function isTokenTransfer(transferTxBody: proto.ICryptoTransferTransactionBody | null): boolean;
|
|
143
194
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/utils.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/utils.ts"],"names":[],"mappings":"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"}
|