@bitgo-beta/sdk-coin-hbar 1.0.1
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/.eslintignore +5 -0
- package/.mocharc.yml +8 -0
- package/CHANGELOG.md +26 -0
- package/LICENSE +191 -0
- package/README.md +30 -0
- package/dist/src/hbar.d.ts +114 -0
- package/dist/src/hbar.d.ts.map +1 -0
- package/dist/src/hbar.js +301 -0
- package/dist/src/hbarToken.d.ts +18 -0
- package/dist/src/hbarToken.d.ts.map +1 -0
- package/dist/src/hbarToken.js +49 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +17 -0
- package/dist/src/lib/coinTransferBuilder.d.ts +47 -0
- package/dist/src/lib/coinTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/coinTransferBuilder.js +145 -0
- package/dist/src/lib/constants.d.ts +8 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +12 -0
- package/dist/src/lib/iface.d.ts +50 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +3 -0
- package/dist/src/lib/index.d.ts +10 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +39 -0
- package/dist/src/lib/keyPair.d.ts +23 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +70 -0
- package/dist/src/lib/tokenAssociateBuilder.d.ts +38 -0
- package/dist/src/lib/tokenAssociateBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenAssociateBuilder.js +126 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts +25 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +116 -0
- package/dist/src/lib/transaction.d.ts +106 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +317 -0
- package/dist/src/lib/transactionBuilder.d.ts +111 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +270 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +47 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +88 -0
- package/dist/src/lib/transferBuilder.d.ts +24 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +74 -0
- package/dist/src/lib/utils.d.ts +193 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +410 -0
- package/dist/src/lib/walletInitializationBuilder.d.ts +28 -0
- package/dist/src/lib/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/src/lib/walletInitializationBuilder.js +110 -0
- package/dist/src/seedValidator.d.ts +31 -0
- package/dist/src/seedValidator.d.ts.map +1 -0
- package/dist/src/seedValidator.js +89 -0
- package/dist/src/thbar.d.ts +14 -0
- package/dist/src/thbar.d.ts.map +1 -0
- package/dist/src/thbar.js +17 -0
- package/package.json +61 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.CoinTransferBuilder = void 0;
|
|
23
|
+
const Long = __importStar(require("long"));
|
|
24
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
25
|
+
const transferBuilder_1 = require("./transferBuilder");
|
|
26
|
+
const utils_1 = require("./utils");
|
|
27
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
28
|
+
class CoinTransferBuilder extends transferBuilder_1.TransferBuilder {
|
|
29
|
+
constructor(_coinConfig) {
|
|
30
|
+
super(_coinConfig);
|
|
31
|
+
}
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
async buildImplementation() {
|
|
34
|
+
this._txBodyData.transfers = this.buildTransferData();
|
|
35
|
+
return await super.buildImplementation();
|
|
36
|
+
}
|
|
37
|
+
buildTransferData() {
|
|
38
|
+
let totalSend = new bignumber_js_1.BigNumber(0);
|
|
39
|
+
const accountAmounts = [
|
|
40
|
+
{
|
|
41
|
+
accountID: utils_1.buildHederaAccountID(this._source.address),
|
|
42
|
+
amount: Long.fromInt(0),
|
|
43
|
+
}, // sender
|
|
44
|
+
];
|
|
45
|
+
// add recipients and update send amount
|
|
46
|
+
this._recipients.forEach((recipient) => {
|
|
47
|
+
accountAmounts.push({ accountID: utils_1.buildHederaAccountID(recipient.address), amount: Long.fromString(recipient.amount) } // recipient
|
|
48
|
+
);
|
|
49
|
+
totalSend = totalSend.plus(recipient.amount);
|
|
50
|
+
});
|
|
51
|
+
accountAmounts[0].amount = Long.fromString(totalSend.toString()).negate(); // update sender send amount
|
|
52
|
+
return {
|
|
53
|
+
accountAmounts: accountAmounts,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/** @inheritdoc */
|
|
57
|
+
initBuilder(tx) {
|
|
58
|
+
super.initBuilder(tx);
|
|
59
|
+
const transferData = tx.txBody.cryptoTransfer;
|
|
60
|
+
if (transferData && transferData.transfers && transferData.transfers.accountAmounts) {
|
|
61
|
+
this.initTransfers(transferData.transfers.accountAmounts);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Initialize the transfer specific data, getting the recipient account
|
|
66
|
+
* represented by the element with a positive amount on the transfer element.
|
|
67
|
+
* The negative amount represents the source account, so it's ignored.
|
|
68
|
+
*
|
|
69
|
+
* @param {proto} transfers - Array of objects which contains accountID and transferred amount
|
|
70
|
+
*/
|
|
71
|
+
initTransfers(transfers) {
|
|
72
|
+
transfers.forEach((transferData) => {
|
|
73
|
+
const amount = Long.fromValue(transferData.amount);
|
|
74
|
+
if (amount.isPositive()) {
|
|
75
|
+
this.send({
|
|
76
|
+
address: utils_1.stringifyAccountId(transferData.accountID),
|
|
77
|
+
amount: amount.toString(),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
// region Transfer fields
|
|
83
|
+
// Currently works for one recipient by using exatcly one of to + amount or send function
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated - Use the send method instead
|
|
86
|
+
*
|
|
87
|
+
* Set the destination address where the funds will be sent,
|
|
88
|
+
* it may take the format `'<shard>.<realm>.<account>'` or `'<account>'`
|
|
89
|
+
*
|
|
90
|
+
* @param {string} address - The address to transfer funds to
|
|
91
|
+
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
92
|
+
*/
|
|
93
|
+
to(address) {
|
|
94
|
+
if (this._recipients.length > 0) {
|
|
95
|
+
throw new sdk_core_1.DuplicateMethodError('Invalid method: send already used');
|
|
96
|
+
}
|
|
97
|
+
if (!utils_1.isValidAddress(address)) {
|
|
98
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
99
|
+
}
|
|
100
|
+
this._toAddress = address;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated - Use the send method instead
|
|
105
|
+
*
|
|
106
|
+
* Set the amount to be transferred
|
|
107
|
+
*
|
|
108
|
+
* @param {string} amount - Amount to transfer in tinyBars (there are 100,000,000 tinyBars in one Hbar)
|
|
109
|
+
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
110
|
+
*/
|
|
111
|
+
amount(amount) {
|
|
112
|
+
if (this._recipients.length > 0) {
|
|
113
|
+
throw new sdk_core_1.DuplicateMethodError('Invalid method: send already used');
|
|
114
|
+
}
|
|
115
|
+
if (!utils_1.isValidAmount(amount)) {
|
|
116
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
|
|
117
|
+
}
|
|
118
|
+
this._amount = amount;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/** @inheritdoc */
|
|
122
|
+
send(recipient) {
|
|
123
|
+
if (this._amount || this._toAddress) {
|
|
124
|
+
throw new sdk_core_1.DuplicateMethodError('Invalid method: to or amount already used');
|
|
125
|
+
}
|
|
126
|
+
if (recipient.tokenName) {
|
|
127
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid token name must be empty');
|
|
128
|
+
}
|
|
129
|
+
return super.send(recipient);
|
|
130
|
+
}
|
|
131
|
+
// endregion
|
|
132
|
+
// region Validators
|
|
133
|
+
/** @inheritdoc */
|
|
134
|
+
validateMandatoryFields() {
|
|
135
|
+
if (this._toAddress && this._amount) {
|
|
136
|
+
this._recipients.push({
|
|
137
|
+
address: this._toAddress,
|
|
138
|
+
amount: this._amount,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
super.validateMandatoryFields();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.CoinTransferBuilder = CoinTransferBuilder;
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pblRyYW5zZmVyQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29pblRyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkNBQTZCO0FBRTdCLG1EQUF3RjtBQUV4Rix1REFBb0Q7QUFFcEQsbUNBQWtHO0FBQ2xHLCtDQUF5QztBQUV6QyxNQUFhLG1CQUFvQixTQUFRLGlDQUFlO0lBTXRELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RELE9BQU8sTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksU0FBUyxHQUFHLElBQUksd0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNLGNBQWMsR0FBMEI7WUFDNUM7Z0JBQ0UsU0FBUyxFQUFFLDRCQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUNyRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDeEIsRUFBRSxTQUFTO1NBQ2IsQ0FBQztRQUNGLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3JDLGNBQWMsQ0FBQyxJQUFJLENBQ2pCLEVBQUUsU0FBUyxFQUFFLDRCQUFvQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZO2FB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a0JBQWtCO0lBQ2xCLHVCQUF1QjtRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDckIsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBRUY7QUFwSUQsa0RBb0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0ICogYXMgTG9uZyBmcm9tICdsb25nJztcbmltcG9ydCAqIGFzIHByb3RvIGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHsgRHVwbGljYXRlTWV0aG9kRXJyb3IsIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgUmVjaXBpZW50IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRBbW91bnQsIHN0cmluZ2lmeUFjY291bnRJZCwgYnVpbGRIZWRlcmFBY2NvdW50SUQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJpZ051bWJlciB9IGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBDb2luVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNmZXJCdWlsZGVyIHtcbiAgLy8gQGRlcHJlY2F0ZWQgVXNlIF9yZWNpcGllbnRzIGZpZWxkIGluc3RlYWRcbiAgcHJpdmF0ZSBfdG9BZGRyZXNzOiBzdHJpbmc7XG4gIC8vIEBkZXByZWNhdGVkIFVzZSBfcmVjaXBpZW50cyBmaWVsZCBpbnN0ZWFkXG4gIHByaXZhdGUgX2Ftb3VudDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS50cmFuc2ZlcnMgPSB0aGlzLmJ1aWxkVHJhbnNmZXJEYXRhKCk7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUcmFuc2ZlckRhdGEoKTogcHJvdG8uSVRyYW5zZmVyTGlzdCB7XG4gICAgbGV0IHRvdGFsU2VuZCA9IG5ldyBCaWdOdW1iZXIoMCk7XG4gICAgY29uc3QgYWNjb3VudEFtb3VudHM6IHByb3RvLkFjY291bnRBbW91bnRbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgYWNjb3VudElEOiBidWlsZEhlZGVyYUFjY291bnRJRCh0aGlzLl9zb3VyY2UuYWRkcmVzcyksXG4gICAgICAgIGFtb3VudDogTG9uZy5mcm9tSW50KDApLFxuICAgICAgfSwgLy8gc2VuZGVyXG4gICAgXTtcbiAgICAvLyBhZGQgcmVjaXBpZW50cyBhbmQgdXBkYXRlIHNlbmQgYW1vdW50XG4gICAgdGhpcy5fcmVjaXBpZW50cy5mb3JFYWNoKChyZWNpcGllbnQpID0+IHtcbiAgICAgIGFjY291bnRBbW91bnRzLnB1c2goXG4gICAgICAgIHsgYWNjb3VudElEOiBidWlsZEhlZGVyYUFjY291bnRJRChyZWNpcGllbnQuYWRkcmVzcyksIGFtb3VudDogTG9uZy5mcm9tU3RyaW5nKHJlY2lwaWVudC5hbW91bnQpIH0gLy8gcmVjaXBpZW50XG4gICAgICApO1xuICAgICAgdG90YWxTZW5kID0gdG90YWxTZW5kLnBsdXMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgfSk7XG4gICAgYWNjb3VudEFtb3VudHNbMF0uYW1vdW50ID0gTG9uZy5mcm9tU3RyaW5nKHRvdGFsU2VuZC50b1N0cmluZygpKS5uZWdhdGUoKTsgLy8gdXBkYXRlIHNlbmRlciBzZW5kIGFtb3VudFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY291bnRBbW91bnRzOiBhY2NvdW50QW1vdW50cyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCB0cmFuc2ZlckRhdGEgPSB0eC50eEJvZHkuY3J5cHRvVHJhbnNmZXI7XG4gICAgaWYgKHRyYW5zZmVyRGF0YSAmJiB0cmFuc2ZlckRhdGEudHJhbnNmZXJzICYmIHRyYW5zZmVyRGF0YS50cmFuc2ZlcnMuYWNjb3VudEFtb3VudHMpIHtcbiAgICAgIHRoaXMuaW5pdFRyYW5zZmVycyh0cmFuc2ZlckRhdGEudHJhbnNmZXJzLmFjY291bnRBbW91bnRzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNmZXIgc3BlY2lmaWMgZGF0YSwgZ2V0dGluZyB0aGUgcmVjaXBpZW50IGFjY291bnRcbiAgICogcmVwcmVzZW50ZWQgYnkgdGhlIGVsZW1lbnQgd2l0aCBhIHBvc2l0aXZlIGFtb3VudCBvbiB0aGUgdHJhbnNmZXIgZWxlbWVudC5cbiAgICogVGhlIG5lZ2F0aXZlIGFtb3VudCByZXByZXNlbnRzIHRoZSBzb3VyY2UgYWNjb3VudCwgc28gaXQncyBpZ25vcmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3Byb3RvfSB0cmFuc2ZlcnMgLSBBcnJheSBvZiBvYmplY3RzIHdoaWNoIGNvbnRhaW5zIGFjY291bnRJRCBhbmQgdHJhbnNmZXJyZWQgYW1vdW50XG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFRyYW5zZmVycyh0cmFuc2ZlcnM6IHByb3RvLklBY2NvdW50QW1vdW50W10pOiB2b2lkIHtcbiAgICB0cmFuc2ZlcnMuZm9yRWFjaCgodHJhbnNmZXJEYXRhKSA9PiB7XG4gICAgICBjb25zdCBhbW91bnQgPSBMb25nLmZyb21WYWx1ZSh0cmFuc2ZlckRhdGEuYW1vdW50ISk7XG4gICAgICBpZiAoYW1vdW50LmlzUG9zaXRpdmUoKSkge1xuICAgICAgICB0aGlzLnNlbmQoe1xuICAgICAgICAgIGFkZHJlc3M6IHN0cmluZ2lmeUFjY291bnRJZCh0cmFuc2ZlckRhdGEuYWNjb3VudElEISksXG4gICAgICAgICAgYW1vdW50OiBhbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyByZWdpb24gVHJhbnNmZXIgZmllbGRzXG5cbiAgLy8gQ3VycmVudGx5IHdvcmtzIGZvciBvbmUgcmVjaXBpZW50IGJ5IHVzaW5nIGV4YXRjbHkgb25lIG9mIHRvICsgYW1vdW50IG9yIHNlbmQgZnVuY3Rpb25cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gVXNlIHRoZSBzZW5kIG1ldGhvZCBpbnN0ZWFkXG4gICAqXG4gICAqIFNldCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyB3aGVyZSB0aGUgZnVuZHMgd2lsbCBiZSBzZW50LFxuICAgKiBpdCBtYXkgdGFrZSB0aGUgZm9ybWF0IGAnPHNoYXJkPi48cmVhbG0+LjxhY2NvdW50PidgIG9yIGAnPGFjY291bnQ+J2BcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byB0cmFuc2ZlciBmdW5kcyB0b1xuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSAtIFRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICB0byhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAodGhpcy5fcmVjaXBpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRHVwbGljYXRlTWV0aG9kRXJyb3IoJ0ludmFsaWQgbWV0aG9kOiBzZW5kIGFscmVhZHkgdXNlZCcpO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl90b0FkZHJlc3MgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gVXNlIHRoZSBzZW5kIG1ldGhvZCBpbnN0ZWFkXG4gICAqXG4gICAqIFNldCB0aGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSBBbW91bnQgdG8gdHJhbnNmZXIgaW4gdGlueUJhcnMgKHRoZXJlIGFyZSAxMDAsMDAwLDAwMCB0aW55QmFycyBpbiBvbmUgSGJhcilcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gLSBUaGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKHRoaXMuX3JlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZU1ldGhvZEVycm9yKCdJbnZhbGlkIG1ldGhvZDogc2VuZCBhbHJlYWR5IHVzZWQnKTtcbiAgICB9XG4gICAgaWYgKCFpc1ZhbGlkQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICB9XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiB0aGlzIHtcbiAgICBpZiAodGhpcy5fYW1vdW50IHx8IHRoaXMuX3RvQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZU1ldGhvZEVycm9yKCdJbnZhbGlkIG1ldGhvZDogdG8gb3IgYW1vdW50IGFscmVhZHkgdXNlZCcpO1xuICAgIH1cbiAgICBpZiAocmVjaXBpZW50LnRva2VuTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIHRva2VuIG5hbWUgbXVzdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2VuZChyZWNpcGllbnQpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdG9BZGRyZXNzICYmIHRoaXMuX2Ftb3VudCkge1xuICAgICAgdGhpcy5fcmVjaXBpZW50cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5fdG9BZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const DEFAULT_SIGNER_NUMBER = 3;
|
|
2
|
+
export declare enum HederaTransactionTypes {
|
|
3
|
+
Transfer = "cryptoTransfer",
|
|
4
|
+
CreateAccount = "cryptoCreateAccount",
|
|
5
|
+
TokenAssociateToAccount = "tokenAssociate",
|
|
6
|
+
TokenDissociateFromAccount = "tokenAssociate"
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,oBAAY,sBAAsB;IAChC,QAAQ,mBAAmB;IAC3B,aAAa,wBAAwB;IACrC,uBAAuB,mBAAmB;IAC1C,0BAA0B,mBAAmB;CAC9C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HederaTransactionTypes = exports.DEFAULT_SIGNER_NUMBER = void 0;
|
|
4
|
+
exports.DEFAULT_SIGNER_NUMBER = 3;
|
|
5
|
+
var HederaTransactionTypes;
|
|
6
|
+
(function (HederaTransactionTypes) {
|
|
7
|
+
HederaTransactionTypes["Transfer"] = "cryptoTransfer";
|
|
8
|
+
HederaTransactionTypes["CreateAccount"] = "cryptoCreateAccount";
|
|
9
|
+
HederaTransactionTypes["TokenAssociateToAccount"] = "tokenAssociate";
|
|
10
|
+
HederaTransactionTypes["TokenDissociateFromAccount"] = "tokenAssociate";
|
|
11
|
+
})(HederaTransactionTypes = exports.HederaTransactionTypes || (exports.HederaTransactionTypes = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7QUFFdkMsSUFBWSxzQkFLWDtBQUxELFdBQVksc0JBQXNCO0lBQ2hDLHFEQUEyQixDQUFBO0lBQzNCLCtEQUFxQyxDQUFBO0lBQ3JDLG9FQUEwQyxDQUFBO0lBQzFDLHVFQUE2QyxDQUFBO0FBQy9DLENBQUMsRUFMVyxzQkFBc0IsR0FBdEIsOEJBQXNCLEtBQXRCLDhCQUFzQixRQUtqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBERUZBVUxUX1NJR05FUl9OVU1CRVIgPSAzO1xuXG5leHBvcnQgZW51bSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzIHtcbiAgVHJhbnNmZXIgPSAnY3J5cHRvVHJhbnNmZXInLFxuICBDcmVhdGVBY2NvdW50ID0gJ2NyeXB0b0NyZWF0ZUFjY291bnQnLFxuICBUb2tlbkFzc29jaWF0ZVRvQWNjb3VudCA9ICd0b2tlbkFzc29jaWF0ZScsXG4gIFRva2VuRGlzc29jaWF0ZUZyb21BY2NvdW50ID0gJ3Rva2VuQXNzb2NpYXRlJyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { KeyPair } from '.';
|
|
2
|
+
import { HederaTransactionTypes } from './constants';
|
|
3
|
+
export interface TxData {
|
|
4
|
+
id: string;
|
|
5
|
+
hash?: string;
|
|
6
|
+
from: string;
|
|
7
|
+
data: string;
|
|
8
|
+
fee: number;
|
|
9
|
+
startTime: string;
|
|
10
|
+
validDuration: string;
|
|
11
|
+
node: string;
|
|
12
|
+
memo?: string;
|
|
13
|
+
/** @deprecated Use instructionsData.params.recipients instead */
|
|
14
|
+
to?: string;
|
|
15
|
+
/** @deprecated Use instructionsData.params.recipients instead */
|
|
16
|
+
amount?: string;
|
|
17
|
+
instructionsData?: InstructionParams;
|
|
18
|
+
}
|
|
19
|
+
export interface Recipient {
|
|
20
|
+
address: string;
|
|
21
|
+
amount: string;
|
|
22
|
+
tokenName?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface HederaNode {
|
|
25
|
+
nodeId: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SignatureData {
|
|
28
|
+
signature: string;
|
|
29
|
+
keyPair: KeyPair;
|
|
30
|
+
}
|
|
31
|
+
export interface AddressDetails {
|
|
32
|
+
address: string;
|
|
33
|
+
memoId?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare type InstructionParams = Transfer | AssociateAccount;
|
|
36
|
+
export interface Transfer {
|
|
37
|
+
type: HederaTransactionTypes.Transfer;
|
|
38
|
+
params: {
|
|
39
|
+
tokenName?: string;
|
|
40
|
+
recipients: Recipient[];
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export interface AssociateAccount {
|
|
44
|
+
type: HederaTransactionTypes.TokenAssociateToAccount;
|
|
45
|
+
params: {
|
|
46
|
+
accountId: string;
|
|
47
|
+
tokenNames: string[];
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,iBAAiB,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC;IACtC,MAAM,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,SAAS,EAAE,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,sBAAsB,CAAC,uBAAuB,CAAC;IACrD,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBIZWRlcmFUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgZGF0YTogc3RyaW5nO1xuICBmZWU6IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIHZhbGlkRHVyYXRpb246IHN0cmluZztcbiAgbm9kZTogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGluc3RydWN0aW9uc0RhdGEucGFyYW1zLnJlY2lwaWVudHMgaW5zdGVhZCAqL1xuICB0bz86IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBpbnN0cnVjdGlvbnNEYXRhLnBhcmFtcy5yZWNpcGllbnRzIGluc3RlYWQgKi9cbiAgYW1vdW50Pzogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnNEYXRhPzogSW5zdHJ1Y3Rpb25QYXJhbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjaXBpZW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlZGVyYU5vZGUge1xuICBub2RlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVEYXRhIHtcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gIGtleVBhaXI6IEtleVBhaXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc0RldGFpbHMge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIG1lbW9JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSW5zdHJ1Y3Rpb25QYXJhbXMgPSBUcmFuc2ZlciB8IEFzc29jaWF0ZUFjY291bnQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXIge1xuICB0eXBlOiBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyO1xuICBwYXJhbXM6IHtcbiAgICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gICAgcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzb2NpYXRlQWNjb3VudCB7XG4gIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ7XG4gIHBhcmFtczoge1xuICAgIGFjY291bnRJZDogc3RyaW5nO1xuICAgIHRva2VuTmFtZXM6IHN0cmluZ1tdO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as Utils from './utils';
|
|
2
|
+
export { KeyPair } from './keyPair';
|
|
3
|
+
export { Transaction } from './transaction';
|
|
4
|
+
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
5
|
+
export { TransferBuilder } from './transferBuilder';
|
|
6
|
+
export { CoinTransferBuilder } from './coinTransferBuilder';
|
|
7
|
+
export { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
8
|
+
export { TokenAssociateBuilder } from './tokenAssociateBuilder';
|
|
9
|
+
export { Utils };
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.Utils = exports.TokenAssociateBuilder = exports.TokenTransferBuilder = exports.CoinTransferBuilder = exports.TransferBuilder = exports.TransactionBuilderFactory = exports.Transaction = exports.KeyPair = void 0;
|
|
23
|
+
const Utils = __importStar(require("./utils"));
|
|
24
|
+
exports.Utils = Utils;
|
|
25
|
+
var keyPair_1 = require("./keyPair");
|
|
26
|
+
Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
|
|
27
|
+
var transaction_1 = require("./transaction");
|
|
28
|
+
Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
|
|
29
|
+
var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
|
|
30
|
+
Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
|
|
31
|
+
var transferBuilder_1 = require("./transferBuilder");
|
|
32
|
+
Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
|
|
33
|
+
var coinTransferBuilder_1 = require("./coinTransferBuilder");
|
|
34
|
+
Object.defineProperty(exports, "CoinTransferBuilder", { enumerable: true, get: function () { return coinTransferBuilder_1.CoinTransferBuilder; } });
|
|
35
|
+
var tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
36
|
+
Object.defineProperty(exports, "TokenTransferBuilder", { enumerable: true, get: function () { return tokenTransferBuilder_1.TokenTransferBuilder; } });
|
|
37
|
+
var tokenAssociateBuilder_1 = require("./tokenAssociateBuilder");
|
|
38
|
+
Object.defineProperty(exports, "TokenAssociateBuilder", { enumerable: true, get: function () { return tokenAssociateBuilder_1.TokenAssociateBuilder; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFTeEIsc0JBQUs7QUFQZCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBQ2xDLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIsNkRBQTREO0FBQW5ELDBIQUFBLG1CQUFtQixPQUFBO0FBQzVCLCtEQUE4RDtBQUFyRCw0SEFBQSxvQkFBb0IsT0FBQTtBQUM3QixpRUFBZ0U7QUFBdkQsOEhBQUEscUJBQXFCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBDb2luVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9jb2luVHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBUb2tlbkFzc29jaWF0ZUJ1aWxkZXIgfSBmcm9tICcuL3Rva2VuQXNzb2NpYXRlQnVpbGRlcic7XG5leHBvcnQgeyBVdGlscyB9O1xuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AddressFormat, DefaultKeys, Ed25519KeyPair, KeyPairOptions } from '@bitgo-beta/sdk-core';
|
|
2
|
+
export declare class KeyPair extends Ed25519KeyPair {
|
|
3
|
+
/**
|
|
4
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
5
|
+
*
|
|
6
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
7
|
+
*/
|
|
8
|
+
constructor(source?: KeyPairOptions);
|
|
9
|
+
/**
|
|
10
|
+
* Hedera default keys format is a pair of Uint8Array keys
|
|
11
|
+
*
|
|
12
|
+
* @param {boolean} raw defines if the key is returned in raw or protocol default format
|
|
13
|
+
* @returns { DefaultKeys } The keys in the defined format
|
|
14
|
+
*/
|
|
15
|
+
getKeys(raw?: boolean): DefaultKeys;
|
|
16
|
+
/** @inheritdoc */
|
|
17
|
+
getAddress(format?: AddressFormat): string;
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
recordKeysFromPublicKeyInProtocolFormat(pub: string): DefaultKeys;
|
|
20
|
+
/** @inheritdoc */
|
|
21
|
+
recordKeysFromPrivateKeyInProtocolFormat(prv: string): DefaultKeys;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=keyPair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAc,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AAM5H,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC;;;;;OAKG;IACH,OAAO,CAAC,GAAG,UAAQ,GAAG,WAAW;IAajC,kBAAkB;IAClB,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;IAI1C,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAUjE,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;CAgBnE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyPair = void 0;
|
|
4
|
+
const sdk_1 = require("@hashgraph/sdk");
|
|
5
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const PUBLIC_KEY_PREFIX = '302a300506032b6570032100';
|
|
8
|
+
const PRIVATE_KEY_PREFIX = '302e020100300506032b657004220420';
|
|
9
|
+
class KeyPair extends sdk_core_1.Ed25519KeyPair {
|
|
10
|
+
/**
|
|
11
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
12
|
+
*
|
|
13
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
14
|
+
*/
|
|
15
|
+
constructor(source) {
|
|
16
|
+
super(source);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Hedera default keys format is a pair of Uint8Array keys
|
|
20
|
+
*
|
|
21
|
+
* @param {boolean} raw defines if the key is returned in raw or protocol default format
|
|
22
|
+
* @returns { DefaultKeys } The keys in the defined format
|
|
23
|
+
*/
|
|
24
|
+
getKeys(raw = false) {
|
|
25
|
+
const pub = sdk_1.PublicKey.fromString(this.keyPair.pub).toString();
|
|
26
|
+
const result = {
|
|
27
|
+
pub: raw ? pub.slice(PUBLIC_KEY_PREFIX.length) : pub,
|
|
28
|
+
};
|
|
29
|
+
if (this.keyPair.prv) {
|
|
30
|
+
const prv = sdk_1.PrivateKey.fromString(this.keyPair.prv).toString();
|
|
31
|
+
result.prv = raw ? prv.slice(PRIVATE_KEY_PREFIX.length) : prv;
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/** @inheritdoc */
|
|
36
|
+
getAddress(format) {
|
|
37
|
+
throw new sdk_core_1.NotSupported('Address derivation is not supported in Hedera');
|
|
38
|
+
}
|
|
39
|
+
/** @inheritdoc */
|
|
40
|
+
recordKeysFromPublicKeyInProtocolFormat(pub) {
|
|
41
|
+
try {
|
|
42
|
+
const hederaPub = sdk_1.PublicKey.fromString(pub.toLowerCase()).toString();
|
|
43
|
+
const ed25519Pub = utils_1.removePrefix(PUBLIC_KEY_PREFIX, hederaPub);
|
|
44
|
+
return { pub: ed25519Pub };
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
throw new sdk_core_1.InvalidKey('Invalid public key: ' + pub);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** @inheritdoc */
|
|
51
|
+
recordKeysFromPrivateKeyInProtocolFormat(prv) {
|
|
52
|
+
if (!/^([a-f\d]{2})+$/i.test(prv)) {
|
|
53
|
+
throw new sdk_core_1.InvalidKey('Invalid private key length. Must be a hex and multiple of 2');
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const hederaPrv = sdk_1.PrivateKey.fromString(prv);
|
|
57
|
+
const ed25519Prv = utils_1.removePrefix(PRIVATE_KEY_PREFIX, hederaPrv.toString());
|
|
58
|
+
const ed25519Pub = utils_1.removePrefix(PUBLIC_KEY_PREFIX, hederaPrv.publicKey.toString());
|
|
59
|
+
return {
|
|
60
|
+
prv: ed25519Prv,
|
|
61
|
+
pub: ed25519Pub,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
throw new sdk_core_1.InvalidKey('Invalid private key');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.KeyPair = KeyPair;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBdUQ7QUFDdkQsbURBQTRIO0FBQzVILG1DQUF1QztBQUV2QyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDO0FBQ3JELE1BQU0sa0JBQWtCLEdBQUcsa0NBQWtDLENBQUM7QUFFOUQsTUFBYSxPQUFRLFNBQVEseUJBQWM7SUFDekM7Ozs7T0FJRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSztRQUNqQixNQUFNLEdBQUcsR0FBRyxlQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUQsTUFBTSxNQUFNLEdBQWdCO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7U0FDckQsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxHQUFHLEdBQUcsZ0JBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVLENBQUMsTUFBc0I7UUFDL0IsTUFBTSxJQUFJLHVCQUFZLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHVDQUF1QyxDQUFDLEdBQVc7UUFDakQsSUFBSTtZQUNGLE1BQU0sU0FBUyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckUsTUFBTSxVQUFVLEdBQUcsb0JBQVksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQzVCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUkscUJBQVUsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsd0NBQXdDLENBQUMsR0FBVztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxxQkFBVSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7U0FDckY7UUFDRCxJQUFJO1lBQ0YsTUFBTSxTQUFTLEdBQUcsZ0JBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsTUFBTSxVQUFVLEdBQUcsb0JBQVksQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMxRSxNQUFNLFVBQVUsR0FBRyxvQkFBWSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRixPQUFPO2dCQUNMLEdBQUcsRUFBRSxVQUFVO2dCQUNmLEdBQUcsRUFBRSxVQUFVO2FBQ2hCLENBQUM7U0FDSDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLHFCQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7Q0FDRjtBQTlERCwwQkE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcml2YXRlS2V5LCBQdWJsaWNLZXkgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBBZGRyZXNzRm9ybWF0LCBEZWZhdWx0S2V5cywgRWQyNTUxOUtleVBhaXIsIEludmFsaWRLZXksIEtleVBhaXJPcHRpb25zLCBOb3RTdXBwb3J0ZWQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyByZW1vdmVQcmVmaXggfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgUFVCTElDX0tFWV9QUkVGSVggPSAnMzAyYTMwMDUwNjAzMmI2NTcwMDMyMTAwJztcbmNvbnN0IFBSSVZBVEVfS0VZX1BSRUZJWCA9ICczMDJlMDIwMTAwMzAwNTA2MDMyYjY1NzAwNDIyMDQyMCc7XG5cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgRWQyNTUxOUtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlZGVyYSBkZWZhdWx0IGtleXMgZm9ybWF0IGlzIGEgcGFpciBvZiBVaW50OEFycmF5IGtleXNcbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSByYXcgZGVmaW5lcyBpZiB0aGUga2V5IGlzIHJldHVybmVkIGluIHJhdyBvciBwcm90b2NvbCBkZWZhdWx0IGZvcm1hdFxuICAgKiBAcmV0dXJucyB7IERlZmF1bHRLZXlzIH0gVGhlIGtleXMgaW4gdGhlIGRlZmluZWQgZm9ybWF0XG4gICAqL1xuICBnZXRLZXlzKHJhdyA9IGZhbHNlKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHB1YiA9IFB1YmxpY0tleS5mcm9tU3RyaW5nKHRoaXMua2V5UGFpci5wdWIpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgcmVzdWx0OiBEZWZhdWx0S2V5cyA9IHtcbiAgICAgIHB1YjogcmF3ID8gcHViLnNsaWNlKFBVQkxJQ19LRVlfUFJFRklYLmxlbmd0aCkgOiBwdWIsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmtleVBhaXIucHJ2KSB7XG4gICAgICBjb25zdCBwcnYgPSBQcml2YXRlS2V5LmZyb21TdHJpbmcodGhpcy5rZXlQYWlyLnBydikudG9TdHJpbmcoKTtcbiAgICAgIHJlc3VsdC5wcnYgPSByYXcgPyBwcnYuc2xpY2UoUFJJVkFURV9LRVlfUFJFRklYLmxlbmd0aCkgOiBwcnY7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0QWRkcmVzcyhmb3JtYXQ/OiBBZGRyZXNzRm9ybWF0KTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdBZGRyZXNzIGRlcml2YXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBIZWRlcmEnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleUluUHJvdG9jb2xGb3JtYXQocHViOiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhlZGVyYVB1YiA9IFB1YmxpY0tleS5mcm9tU3RyaW5nKHB1Yi50b0xvd2VyQ2FzZSgpKS50b1N0cmluZygpO1xuICAgICAgY29uc3QgZWQyNTUxOVB1YiA9IHJlbW92ZVByZWZpeChQVUJMSUNfS0VZX1BSRUZJWCwgaGVkZXJhUHViKTtcbiAgICAgIHJldHVybiB7IHB1YjogZWQyNTUxOVB1YiB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KCdJbnZhbGlkIHB1YmxpYyBrZXk6ICcgKyBwdWIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXlJblByb3RvY29sRm9ybWF0KHBydjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGlmICghL14oW2EtZlxcZF17Mn0pKyQvaS50ZXN0KHBydikpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KCdJbnZhbGlkIHByaXZhdGUga2V5IGxlbmd0aC4gTXVzdCBiZSBhIGhleCBhbmQgbXVsdGlwbGUgb2YgMicpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgaGVkZXJhUHJ2ID0gUHJpdmF0ZUtleS5mcm9tU3RyaW5nKHBydik7XG4gICAgICBjb25zdCBlZDI1NTE5UHJ2ID0gcmVtb3ZlUHJlZml4KFBSSVZBVEVfS0VZX1BSRUZJWCwgaGVkZXJhUHJ2LnRvU3RyaW5nKCkpO1xuICAgICAgY29uc3QgZWQyNTUxOVB1YiA9IHJlbW92ZVByZWZpeChQVUJMSUNfS0VZX1BSRUZJWCwgaGVkZXJhUHJ2LnB1YmxpY0tleS50b1N0cmluZygpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBydjogZWQyNTUxOVBydixcbiAgICAgICAgcHViOiBlZDI1NTE5UHViLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEtleSgnSW52YWxpZCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
+
import { BaseKey } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { Transaction } from './transaction';
|
|
4
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
5
|
+
export declare class TokenAssociateBuilder extends TransactionBuilder {
|
|
6
|
+
private readonly _txBodyData;
|
|
7
|
+
private _account;
|
|
8
|
+
private _tokenIds;
|
|
9
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
initBuilder(tx: Transaction): void;
|
|
12
|
+
private initTokenAssociation;
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
protected signImplementation(key: BaseKey): Transaction;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
17
|
+
/** @inheritdoc */
|
|
18
|
+
validateMandatoryFields(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Set account to associate with tokens, defaults to this._source.address value
|
|
21
|
+
*
|
|
22
|
+
* @param {string} accountID - The name of the account to associate to the transaction
|
|
23
|
+
* @returns {TokenAssociateBuilder} - This token association builder
|
|
24
|
+
*/
|
|
25
|
+
account(accountID: string): this;
|
|
26
|
+
/**
|
|
27
|
+
* Add a token to associate to the multisig wallet.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} tokenName - The name of the token to associate to the transaction
|
|
30
|
+
* @returns {TokenAssociateBuilder} - This token association builder
|
|
31
|
+
*/
|
|
32
|
+
tokens(tokenName: string): this;
|
|
33
|
+
private buildTokenData;
|
|
34
|
+
private buildAccountData;
|
|
35
|
+
private validateAccount;
|
|
36
|
+
private validateToken;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=tokenAssociateBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenAssociateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/tokenAssociateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAwD,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAgB;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAQlC,OAAO,CAAC,oBAAoB;IAa5B,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAOvD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAO3D,kBAAkB;IAClB,uBAAuB,IAAI,IAAI;IAQ/B;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMhC;;;;;OAKG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU/B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;CAOtB"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.TokenAssociateBuilder = void 0;
|
|
23
|
+
const proto = __importStar(require("@hashgraph/proto"));
|
|
24
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
25
|
+
const utils_1 = require("./utils");
|
|
26
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
27
|
+
const constants_1 = require("./constants");
|
|
28
|
+
class TokenAssociateBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
29
|
+
constructor(_coinConfig) {
|
|
30
|
+
super(_coinConfig);
|
|
31
|
+
this._tokenIds = [];
|
|
32
|
+
this._txBodyData = new proto.TokenAssociateTransactionBody();
|
|
33
|
+
this._txBody.tokenAssociate = this._txBodyData;
|
|
34
|
+
}
|
|
35
|
+
/** @inheritdoc */
|
|
36
|
+
initBuilder(tx) {
|
|
37
|
+
super.initBuilder(tx);
|
|
38
|
+
const tokenAssociateAccount = tx.txBody.tokenAssociate;
|
|
39
|
+
if (tokenAssociateAccount && tokenAssociateAccount.tokens) {
|
|
40
|
+
this.initTokenAssociation(tokenAssociateAccount);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
initTokenAssociation(tokenAssociateAccount) {
|
|
44
|
+
tokenAssociateAccount.tokens.forEach((tokenId) => {
|
|
45
|
+
const token = utils_1.stringifyTokenId(tokenId);
|
|
46
|
+
this.validateToken(token);
|
|
47
|
+
this._tokenIds.push(token);
|
|
48
|
+
});
|
|
49
|
+
if (tokenAssociateAccount.account) {
|
|
50
|
+
const accountId = utils_1.stringifyAccountId(tokenAssociateAccount.account);
|
|
51
|
+
this.account(accountId);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** @inheritdoc */
|
|
55
|
+
signImplementation(key) {
|
|
56
|
+
if (this._multiSignerKeyPairs.length >= constants_1.DEFAULT_SIGNER_NUMBER) {
|
|
57
|
+
throw new sdk_core_1.SigningError('A maximum of ' + constants_1.DEFAULT_SIGNER_NUMBER + ' can sign the transaction.');
|
|
58
|
+
}
|
|
59
|
+
return super.signImplementation(key);
|
|
60
|
+
}
|
|
61
|
+
/** @inheritdoc */
|
|
62
|
+
async buildImplementation() {
|
|
63
|
+
this._txBodyData.tokens = this.buildTokenData();
|
|
64
|
+
this._txBodyData.account = this.buildAccountData();
|
|
65
|
+
this.transaction.setTransactionType(sdk_core_1.TransactionType.AssociatedTokenAccountInitialization);
|
|
66
|
+
return await super.buildImplementation();
|
|
67
|
+
}
|
|
68
|
+
/** @inheritdoc */
|
|
69
|
+
validateMandatoryFields() {
|
|
70
|
+
if (!this._tokenIds || this._tokenIds.length < 1) {
|
|
71
|
+
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing tokens to associate');
|
|
72
|
+
}
|
|
73
|
+
super.validateMandatoryFields();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Set account to associate with tokens, defaults to this._source.address value
|
|
77
|
+
*
|
|
78
|
+
* @param {string} accountID - The name of the account to associate to the transaction
|
|
79
|
+
* @returns {TokenAssociateBuilder} - This token association builder
|
|
80
|
+
*/
|
|
81
|
+
account(accountID) {
|
|
82
|
+
this.validateAccount(accountID);
|
|
83
|
+
this._account = accountID;
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Add a token to associate to the multisig wallet.
|
|
88
|
+
*
|
|
89
|
+
* @param {string} tokenName - The name of the token to associate to the transaction
|
|
90
|
+
* @returns {TokenAssociateBuilder} - This token association builder
|
|
91
|
+
*/
|
|
92
|
+
tokens(tokenName) {
|
|
93
|
+
const tokenId = utils_1.getHederaTokenIdFromName(tokenName);
|
|
94
|
+
if (!tokenId) {
|
|
95
|
+
throw new sdk_core_1.BuildTransactionError('Unsupported token: ' + tokenName);
|
|
96
|
+
}
|
|
97
|
+
this.validateToken(tokenId);
|
|
98
|
+
this._tokenIds.push(tokenId);
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
buildTokenData() {
|
|
102
|
+
return this._tokenIds.map(utils_1.buildHederaTokenID);
|
|
103
|
+
}
|
|
104
|
+
buildAccountData() {
|
|
105
|
+
let accountId = this._account;
|
|
106
|
+
if (!accountId) {
|
|
107
|
+
accountId = this._source.address;
|
|
108
|
+
}
|
|
109
|
+
return utils_1.buildHederaAccountID(accountId);
|
|
110
|
+
}
|
|
111
|
+
validateAccount(accountID) {
|
|
112
|
+
if (!utils_1.isValidAddress(accountID)) {
|
|
113
|
+
throw new sdk_core_1.BuildTransactionError('Unsupported account address: ' + accountID);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
validateToken(tokenId) {
|
|
117
|
+
if (this._tokenIds.includes(tokenId)) {
|
|
118
|
+
throw new sdk_core_1.BuildTransactionError('Repeated token ID: ' + tokenId);
|
|
119
|
+
}
|
|
120
|
+
else if (!utils_1.isValidHederaTokenID(tokenId)) {
|
|
121
|
+
throw new sdk_core_1.BuildTransactionError('Invalid token ID: ' + tokenId);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.TokenAssociateBuilder = TokenAssociateBuilder;
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Bc3NvY2lhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b2tlbkFzc29jaWF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHdEQUEwQztBQUMxQyxtREFBcUc7QUFFckcsbUNBUWlCO0FBQ2pCLDZEQUEwRDtBQUMxRCwyQ0FBb0Q7QUFFcEQsTUFBYSxxQkFBc0IsU0FBUSx1Q0FBa0I7SUFLM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIYixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBSS9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2pELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQ3ZELElBQUkscUJBQXFCLElBQUkscUJBQXFCLENBQUMsTUFBTSxFQUFFO1lBQ3pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBNEQsQ0FBQyxDQUFDO1NBQ3pGO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLHFCQUEyRDtRQUN0RixxQkFBcUIsQ0FBQyxNQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFO1lBQ2hFLE1BQU0sS0FBSyxHQUFHLHdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FB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QUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLENBQUM7U0FDbEU7YUFBTSxJQUFJLENBQUMsNEJBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUNGO0FBaEhELHNEQWdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHByb3RvIGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHsgQmFzZUtleSwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBTaWduaW5nRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBidWlsZEhlZGVyYUFjY291bnRJRCxcbiAgYnVpbGRIZWRlcmFUb2tlbklELFxuICBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUsXG4gIGlzVmFsaWRBZGRyZXNzLFxuICBpc1ZhbGlkSGVkZXJhVG9rZW5JRCxcbiAgc3RyaW5naWZ5QWNjb3VudElkLFxuICBzdHJpbmdpZnlUb2tlbklkLFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IERFRkFVTFRfU0lHTkVSX05VTUJFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRva2VuQXNzb2NpYXRlQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R4Qm9keURhdGE6IHByb3RvLlRva2VuQXNzb2NpYXRlVHJhbnNhY3Rpb25Cb2R5O1xuICBwcml2YXRlIF9hY2NvdW50OiBzdHJpbmc7XG4gIHByaXZhdGUgX3Rva2VuSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90eEJvZHlEYXRhID0gbmV3IHByb3RvLlRva2VuQXNzb2NpYXRlVHJhbnNhY3Rpb25Cb2R5KCk7XG4gICAgdGhpcy5fdHhCb2R5LnRva2VuQXNzb2NpYXRlID0gdGhpcy5fdHhCb2R5RGF0YTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgY29uc3QgdG9rZW5Bc3NvY2lhdGVBY2NvdW50ID0gdHgudHhCb2R5LnRva2VuQXNzb2NpYXRlO1xuICAgIGlmICh0b2tlbkFzc29jaWF0ZUFjY291bnQgJiYgdG9rZW5Bc3NvY2lhdGVBY2NvdW50LnRva2Vucykge1xuICAgICAgdGhpcy5pbml0VG9rZW5Bc3NvY2lhdGlvbih0b2tlbkFzc29jaWF0ZUFjY291bnQgYXMgcHJvdG8uVG9rZW5Bc3NvY2lhdGVUcmFuc2FjdGlvbkJvZHkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRva2VuQXNzb2NpYXRpb24odG9rZW5Bc3NvY2lhdGVBY2NvdW50OiBwcm90by5JVG9rZW5Bc3NvY2lhdGVUcmFuc2FjdGlvbkJvZHkpOiB2b2lkIHtcbiAgICB0b2tlbkFzc29jaWF0ZUFjY291bnQudG9rZW5zIS5mb3JFYWNoKCh0b2tlbklkOiBwcm90by5JVG9rZW5JRCkgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBzdHJpbmdpZnlUb2tlbklkKHRva2VuSWQpO1xuICAgICAgdGhpcy52YWxpZGF0ZVRva2VuKHRva2VuKTtcbiAgICAgIHRoaXMuX3Rva2VuSWRzLnB1c2godG9rZW4pO1xuICAgIH0pO1xuXG4gICAgaWYgKHRva2VuQXNzb2NpYXRlQWNjb3VudC5hY2NvdW50KSB7XG4gICAgICBjb25zdCBhY2NvdW50SWQgPSBzdHJpbmdpZnlBY2NvdW50SWQodG9rZW5Bc3NvY2lhdGVBY2NvdW50LmFjY291bnQpO1xuICAgICAgdGhpcy5hY2NvdW50KGFjY291bnRJZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIGlmICh0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzLmxlbmd0aCA+PSBERUZBVUxUX1NJR05FUl9OVU1CRVIpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0EgbWF4aW11bSBvZiAnICsgREVGQVVMVF9TSUdORVJfTlVNQkVSICsgJyBjYW4gc2lnbiB0aGUgdHJhbnNhY3Rpb24uJyk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5zaWduSW1wbGVtZW50YXRpb24oa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS50b2tlbnMgPSB0aGlzLmJ1aWxkVG9rZW5EYXRhKCk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5hY2NvdW50ID0gdGhpcy5idWlsZEFjY291bnREYXRhKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLkFzc29jaWF0ZWRUb2tlbkFjY291bnRJbml0aWFsaXphdGlvbik7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3Rva2VuSWRzIHx8IHRoaXMuX3Rva2VuSWRzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgdG9rZW5zIHRvIGFzc29jaWF0ZScpO1xuICAgIH1cblxuICAgIHN1cGVyLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFjY291bnQgdG8gYXNzb2NpYXRlIHdpdGggdG9rZW5zLCBkZWZhdWx0cyB0byB0aGlzLl9zb3VyY2UuYWRkcmVzcyB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudElEIC0gVGhlIG5hbWUgb2YgdGhlIGFjY291bnQgdG8gYXNzb2NpYXRlIHRvIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VG9rZW5Bc3NvY2lhdGVCdWlsZGVyfSAtIFRoaXMgdG9rZW4gYXNzb2NpYXRpb24gYnVpbGRlclxuICAgKi9cbiAgYWNjb3VudChhY2NvdW50SUQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBY2NvdW50KGFjY291bnRJRCk7XG4gICAgdGhpcy5fYWNjb3VudCA9IGFjY291bnRJRDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0b2tlbiB0byBhc3NvY2lhdGUgdG8gdGhlIG11bHRpc2lnIHdhbGxldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRva2VuTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0b2tlbiB0byBhc3NvY2lhdGUgdG8gdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUb2tlbkFzc29jaWF0ZUJ1aWxkZXJ9IC0gVGhpcyB0b2tlbiBhc3NvY2lhdGlvbiBidWlsZGVyXG4gICAqL1xuICB0b2tlbnModG9rZW5OYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB0b2tlbklkID0gZ2V0SGVkZXJhVG9rZW5JZEZyb21OYW1lKHRva2VuTmFtZSk7XG4gICAgaWYgKCF0b2tlbklkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdVbnN1cHBvcnRlZCB0b2tlbjogJyArIHRva2VuTmFtZSk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVUb2tlbih0b2tlbklkKTtcbiAgICB0aGlzLl90b2tlbklkcy5wdXNoKHRva2VuSWQhKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUb2tlbkRhdGEoKTogcHJvdG8uVG9rZW5JRFtdIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW5JZHMubWFwKGJ1aWxkSGVkZXJhVG9rZW5JRCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQWNjb3VudERhdGEoKTogcHJvdG8uQWNjb3VudElEIHtcbiAgICBsZXQgYWNjb3VudElkID0gdGhpcy5fYWNjb3VudDtcbiAgICBpZiAoIWFjY291bnRJZCkge1xuICAgICAgYWNjb3VudElkID0gdGhpcy5fc291cmNlLmFkZHJlc3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkSGVkZXJhQWNjb3VudElEKGFjY291bnRJZCk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQWNjb3VudChhY2NvdW50SUQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghaXNWYWxpZEFkZHJlc3MoYWNjb3VudElEKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVW5zdXBwb3J0ZWQgYWNjb3VudCBhZGRyZXNzOiAnICsgYWNjb3VudElEKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVG9rZW4odG9rZW5JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3Rva2VuSWRzLmluY2x1ZGVzKHRva2VuSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSZXBlYXRlZCB0b2tlbiBJRDogJyArIHRva2VuSWQpO1xuICAgIH0gZWxzZSBpZiAoIWlzVmFsaWRIZWRlcmFUb2tlbklEKHRva2VuSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRva2VuIElEOiAnICsgdG9rZW5JZCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
+
import * as proto from '@hashgraph/proto';
|
|
3
|
+
import { Recipient } from './iface';
|
|
4
|
+
import { TransferBuilder } from './transferBuilder';
|
|
5
|
+
import { Transaction } from './transaction';
|
|
6
|
+
export declare class TokenTransferBuilder extends TransferBuilder {
|
|
7
|
+
private _tokenName;
|
|
8
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
9
|
+
/** @inheritdoc */
|
|
10
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
11
|
+
private buildTokenTransferData;
|
|
12
|
+
/** @inheritdoc */
|
|
13
|
+
initBuilder(tx: Transaction): void;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the transfer specific data, getting the recipient account
|
|
16
|
+
* represented by the element with a positive amount on the transfer element.
|
|
17
|
+
* The negative amount represents the source account so it's ignored.
|
|
18
|
+
*
|
|
19
|
+
* @param {proto.IAccountAmount[]} transfers array of objects which contains accountID and transferred amount
|
|
20
|
+
*/
|
|
21
|
+
protected initTokenTransfers(tokenTransfers: proto.ITokenTransferList[]): void;
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
send(recipient: Recipient): this;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=tokenTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/tokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,OAAO,CAAC,UAAU,CAAC;gBAEP,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAK3D,OAAO,CAAC,sBAAsB;IA0B9B,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAQlC;;;;;;OAMG;IACH,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,EAAE,GAAG,IAAI;IA2B9E,kBAAkB;IAClB,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAejC"}
|