@bitgo/sdk-coin-apt 1.3.9 → 1.4.0
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 +6 -0
- package/dist/src/apt.d.ts +12 -1
- package/dist/src/apt.d.ts.map +1 -1
- package/dist/src/apt.js +109 -4
- package/dist/src/lib/constants.d.ts +3 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +5 -2
- package/dist/src/lib/iface.d.ts +12 -1
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +2 -1
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +5 -3
- package/dist/src/lib/transaction/transaction.d.ts +52 -0
- package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/transaction.js +203 -0
- package/dist/src/lib/transaction/transferTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/transferTransaction.js +55 -0
- package/dist/src/lib/transactionBuilder.d.ts +20 -9
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +60 -20
- package/dist/src/lib/transactionBuilderFactory.d.ts +19 -2
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +47 -5
- package/dist/src/lib/transferBuilder.d.ts +7 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +11 -1
- package/dist/src/lib/types.d.ts +9 -0
- package/dist/src/lib/types.d.ts.map +1 -0
- package/dist/src/lib/types.js +3 -0
- package/dist/src/lib/utils.d.ts +8 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +50 -1
- package/package.json +9 -7
- package/dist/src/lib/transaction.d.ts +0 -8
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -17
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Transaction = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
|
+
const statics_1 = require("@bitgo/statics");
|
|
9
|
+
const ts_sdk_1 = require("@aptos-labs/ts-sdk");
|
|
10
|
+
const constants_1 = require("../constants");
|
|
11
|
+
const utils_1 = __importDefault(require("../utils"));
|
|
12
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
13
|
+
class Transaction extends sdk_core_1.BaseTransaction {
|
|
14
|
+
constructor(coinConfig) {
|
|
15
|
+
super(coinConfig);
|
|
16
|
+
this._maxGasAmount = ts_sdk_1.DEFAULT_MAX_GAS_AMOUNT;
|
|
17
|
+
this._gasUnitPrice = constants_1.DEFAULT_GAS_UNIT_PRICE;
|
|
18
|
+
this._gasUsed = 0;
|
|
19
|
+
this._expirationTime = Math.floor(Date.now() / 1e3) + constants_1.SECONDS_PER_WEEK;
|
|
20
|
+
this._sequenceNumber = 0;
|
|
21
|
+
this._signature = {
|
|
22
|
+
publicKey: {
|
|
23
|
+
pub: ts_sdk_1.Hex.fromHexInput(Transaction.EMPTY_PUBLIC_KEY).toString(),
|
|
24
|
+
},
|
|
25
|
+
signature: Transaction.EMPTY_SIGNATURE,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** @inheritDoc **/
|
|
29
|
+
get id() {
|
|
30
|
+
this.generateTxnId();
|
|
31
|
+
return this._id ?? constants_1.UNAVAILABLE_TEXT;
|
|
32
|
+
}
|
|
33
|
+
get sender() {
|
|
34
|
+
return this._sender;
|
|
35
|
+
}
|
|
36
|
+
set sender(value) {
|
|
37
|
+
this._sender = value;
|
|
38
|
+
}
|
|
39
|
+
get recipient() {
|
|
40
|
+
return this._recipient;
|
|
41
|
+
}
|
|
42
|
+
set recipient(value) {
|
|
43
|
+
this._recipient = value;
|
|
44
|
+
}
|
|
45
|
+
get sequenceNumber() {
|
|
46
|
+
return this._sequenceNumber;
|
|
47
|
+
}
|
|
48
|
+
set sequenceNumber(value) {
|
|
49
|
+
this._sequenceNumber = value;
|
|
50
|
+
}
|
|
51
|
+
get maxGasAmount() {
|
|
52
|
+
return this._maxGasAmount;
|
|
53
|
+
}
|
|
54
|
+
set maxGasAmount(value) {
|
|
55
|
+
this._maxGasAmount = value;
|
|
56
|
+
}
|
|
57
|
+
get gasUnitPrice() {
|
|
58
|
+
return this._gasUnitPrice;
|
|
59
|
+
}
|
|
60
|
+
set gasUnitPrice(value) {
|
|
61
|
+
this._gasUnitPrice = value;
|
|
62
|
+
}
|
|
63
|
+
get gasUsed() {
|
|
64
|
+
return this._gasUsed;
|
|
65
|
+
}
|
|
66
|
+
set gasUsed(value) {
|
|
67
|
+
this._gasUsed = value;
|
|
68
|
+
}
|
|
69
|
+
get expirationTime() {
|
|
70
|
+
return this._expirationTime;
|
|
71
|
+
}
|
|
72
|
+
set expirationTime(value) {
|
|
73
|
+
this._expirationTime = value;
|
|
74
|
+
}
|
|
75
|
+
set transactionType(transactionType) {
|
|
76
|
+
this._type = transactionType;
|
|
77
|
+
}
|
|
78
|
+
canSign(_key) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
toBroadcastFormat() {
|
|
82
|
+
if (!this._rawTransaction) {
|
|
83
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
84
|
+
}
|
|
85
|
+
return this.serialize();
|
|
86
|
+
}
|
|
87
|
+
serialize() {
|
|
88
|
+
const publicKeyBuffer = utils_1.default.getBufferFromHexString(this._signature.publicKey.pub);
|
|
89
|
+
const publicKey = new ts_sdk_1.Ed25519PublicKey(publicKeyBuffer);
|
|
90
|
+
const signature = new ts_sdk_1.Ed25519Signature(this._signature.signature);
|
|
91
|
+
const txnAuthenticator = new ts_sdk_1.TransactionAuthenticatorEd25519(publicKey, signature);
|
|
92
|
+
const signedTxn = new ts_sdk_1.SignedTransaction(this._rawTransaction, txnAuthenticator);
|
|
93
|
+
return signedTxn.toString();
|
|
94
|
+
}
|
|
95
|
+
addSignature(publicKey, signature) {
|
|
96
|
+
this._signatures = [signature.toString('hex')];
|
|
97
|
+
this._signature = { publicKey, signature };
|
|
98
|
+
}
|
|
99
|
+
async build() {
|
|
100
|
+
await this.buildRawTransaction();
|
|
101
|
+
this.generateTxnId();
|
|
102
|
+
this.loadInputsAndOutputs();
|
|
103
|
+
}
|
|
104
|
+
loadInputsAndOutputs() {
|
|
105
|
+
this._inputs = [
|
|
106
|
+
{
|
|
107
|
+
address: this.sender,
|
|
108
|
+
value: this.recipient.amount,
|
|
109
|
+
coin: this._coinConfig.name,
|
|
110
|
+
},
|
|
111
|
+
];
|
|
112
|
+
this._outputs = [
|
|
113
|
+
{
|
|
114
|
+
address: this.recipient.address,
|
|
115
|
+
value: this.recipient.amount,
|
|
116
|
+
coin: this._coinConfig.name,
|
|
117
|
+
},
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
fromRawTransaction(rawTransaction) {
|
|
121
|
+
let signedTxn;
|
|
122
|
+
try {
|
|
123
|
+
signedTxn = utils_1.default.deserializeSignedTransaction(rawTransaction);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
console.error('invalid raw transaction', e);
|
|
127
|
+
throw new Error('invalid raw transaction');
|
|
128
|
+
}
|
|
129
|
+
this.fromDeserializedSignedTransaction(signedTxn);
|
|
130
|
+
}
|
|
131
|
+
fromDeserializedSignedTransaction(signedTxn) {
|
|
132
|
+
try {
|
|
133
|
+
const rawTxn = signedTxn.raw_txn;
|
|
134
|
+
this._sender = rawTxn.sender.toString();
|
|
135
|
+
this._recipient = utils_1.default.getRecipientFromTransactionPayload(rawTxn.payload);
|
|
136
|
+
this._sequenceNumber = utils_1.default.castToNumber(rawTxn.sequence_number);
|
|
137
|
+
this._maxGasAmount = utils_1.default.castToNumber(rawTxn.max_gas_amount);
|
|
138
|
+
this._gasUnitPrice = utils_1.default.castToNumber(rawTxn.gas_unit_price);
|
|
139
|
+
this._expirationTime = utils_1.default.castToNumber(rawTxn.expiration_timestamp_secs);
|
|
140
|
+
this._rawTransaction = rawTxn;
|
|
141
|
+
this.loadInputsAndOutputs();
|
|
142
|
+
const authenticator = signedTxn.authenticator;
|
|
143
|
+
const signature = Buffer.from(authenticator.signature.toUint8Array());
|
|
144
|
+
this.addSignature({ pub: authenticator.public_key.toString() }, signature);
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
console.error('invalid signed transaction', e);
|
|
148
|
+
throw new Error('invalid signed transaction');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Deserializes a signed transaction hex string
|
|
153
|
+
* @param {string} signedRawTransaction
|
|
154
|
+
* @returns {SignedTransaction} the aptos signed transaction
|
|
155
|
+
*/
|
|
156
|
+
static deserializeSignedTransaction(signedRawTransaction) {
|
|
157
|
+
try {
|
|
158
|
+
return utils_1.default.deserializeSignedTransaction(signedRawTransaction);
|
|
159
|
+
}
|
|
160
|
+
catch (e) {
|
|
161
|
+
console.error('invalid raw transaction', e);
|
|
162
|
+
throw new Error('invalid raw transaction');
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
async buildRawTransaction() {
|
|
166
|
+
const network = this._coinConfig.network.type === statics_1.NetworkType.MAINNET ? ts_sdk_1.Network.MAINNET : ts_sdk_1.Network.TESTNET;
|
|
167
|
+
const aptos = new ts_sdk_1.Aptos(new ts_sdk_1.AptosConfig({ network }));
|
|
168
|
+
const senderAddress = ts_sdk_1.AccountAddress.fromString(this._sender);
|
|
169
|
+
const recipientAddress = ts_sdk_1.AccountAddress.fromString(this._recipient.address);
|
|
170
|
+
const simpleTxn = await aptos.transaction.build.simple({
|
|
171
|
+
sender: senderAddress,
|
|
172
|
+
data: {
|
|
173
|
+
function: '0x1::coin::transfer',
|
|
174
|
+
typeArguments: [ts_sdk_1.APTOS_COIN],
|
|
175
|
+
functionArguments: [recipientAddress, this.recipient.amount],
|
|
176
|
+
},
|
|
177
|
+
options: {
|
|
178
|
+
maxGasAmount: this.maxGasAmount,
|
|
179
|
+
gasUnitPrice: this.gasUnitPrice,
|
|
180
|
+
expireTimestamp: this.expirationTime,
|
|
181
|
+
accountSequenceNumber: this.sequenceNumber,
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
this._rawTransaction = simpleTxn.rawTransaction;
|
|
185
|
+
}
|
|
186
|
+
getFee() {
|
|
187
|
+
return new bignumber_js_1.default(this.gasUsed).multipliedBy(this.gasUnitPrice).toString();
|
|
188
|
+
}
|
|
189
|
+
generateTxnId() {
|
|
190
|
+
if (!this._signature || !this._signature.publicKey || !this._signature.signature) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const transaction = new ts_sdk_1.SimpleTransaction(this._rawTransaction);
|
|
194
|
+
const publicKey = new ts_sdk_1.Ed25519PublicKey(utils_1.default.getBufferFromHexString(this._signature.publicKey.pub));
|
|
195
|
+
const signature = new ts_sdk_1.Ed25519Signature(this._signature.signature);
|
|
196
|
+
const senderAuthenticator = new ts_sdk_1.AccountAuthenticatorEd25519(publicKey, signature);
|
|
197
|
+
this._id = (0, ts_sdk_1.generateUserTransactionHash)({ transaction, senderAuthenticator });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.Transaction = Transaction;
|
|
201
|
+
Transaction.EMPTY_PUBLIC_KEY = Buffer.alloc(32);
|
|
202
|
+
Transaction.EMPTY_SIGNATURE = Buffer.alloc(64);
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQVF5QjtBQUN6Qiw0Q0FBcUU7QUFDckUsK0NBZ0I0QjtBQUM1Qiw0Q0FBMEY7QUFDMUYscURBQTZCO0FBQzdCLGdFQUFxQztBQUVyQyxNQUFzQixXQUFZLFNBQVEsMEJBQWU7SUFjdkQsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRywrQkFBc0IsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLGtDQUFzQixDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsNEJBQWdCLENBQUM7UUFDdkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxFQUFFLFlBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxFQUFFO2FBQy9EO1lBQ0QsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLElBQVcsRUFBRTtRQUNYLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksNEJBQWdCLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENB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QUFTLENBQUMsY0FBYyxDQUFDO0lBQ2xELENBQUM7SUFFUyxNQUFNO1FBQ2QsT0FBTyxJQUFJLHNCQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEYsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakYsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLDBCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxNQUFNLFNBQVMsR0FBRyxJQUFJLHlCQUFnQixDQUFDLGVBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sU0FBUyxHQUFHLElBQUkseUJBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRSxNQUFNLG1CQUFtQixHQUFHLElBQUksb0NBQTJCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBQSxvQ0FBMkIsRUFBQyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQzs7QUFuT0gsa0NBb09DO0FBek5RLDRCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDcEMsMkJBQWUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBOZXR3b3JrVHlwZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEFjY291bnRBZGRyZXNzLFxuICBBY2NvdW50QXV0aGVudGljYXRvckVkMjU1MTksXG4gIEFwdG9zLFxuICBBUFRPU19DT0lOLFxuICBBcHRvc0NvbmZpZyxcbiAgREVGQVVMVF9NQVhfR0FTX0FNT1VOVCxcbiAgRWQyNTUxOVB1YmxpY0tleSxcbiAgRWQyNTUxOVNpZ25hdHVyZSxcbiAgZ2VuZXJhdGVVc2VyVHJhbnNhY3Rpb25IYXNoLFxuICBIZXgsXG4gIE5ldHdvcmssXG4gIFJhd1RyYW5zYWN0aW9uLFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgU2ltcGxlVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uQXV0aGVudGljYXRvckVkMjU1MTksXG59IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgeyBERUZBVUxUX0dBU19VTklUX1BSSUNFLCBTRUNPTkRTX1BFUl9XRUVLLCBVTkFWQUlMQUJMRV9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfcmF3VHJhbnNhY3Rpb246IFJhd1RyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZTogU2lnbmF0dXJlO1xuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3JlY2lwaWVudDogVHJhbnNhY3Rpb25SZWNpcGllbnQ7XG4gIHByb3RlY3RlZCBfc2VxdWVuY2VOdW1iZXI6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF9tYXhHYXNBbW91bnQ6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF9nYXNVbml0UHJpY2U6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF9nYXNVc2VkOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfZXhwaXJhdGlvblRpbWU6IG51bWJlcjtcblxuICBzdGF0aWMgRU1QVFlfUFVCTElDX0tFWSA9IEJ1ZmZlci5hbGxvYygzMik7XG4gIHN0YXRpYyBFTVBUWV9TSUdOQVRVUkUgPSBCdWZmZXIuYWxsb2MoNjQpO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fbWF4R2FzQW1vdW50ID0gREVGQVVMVF9NQVhfR0FTX0FNT1VOVDtcbiAgICB0aGlzLl9nYXNVbml0UHJpY2UgPSBERUZBVUxUX0dBU19VTklUX1BSSUNFO1xuICAgIHRoaXMuX2dhc1VzZWQgPSAwO1xuICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMWUzKSArIFNFQ09ORFNfUEVSX1dFRUs7XG4gICAgdGhpcy5fc2VxdWVuY2VOdW1iZXIgPSAwO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHtcbiAgICAgIHB1YmxpY0tleToge1xuICAgICAgICBwdWI6IEhleC5mcm9tSGV4SW5wdXQoVHJhbnNhY3Rpb24uRU1QVFlfUFVCTElDX0tFWSkudG9TdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgICBzaWduYXR1cmU6IFRyYW5zYWN0aW9uLkVNUFRZX1NJR05BVFVSRSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgdGhpcy5nZW5lcmF0ZVR4bklkKCk7XG4gICAgcmV0dXJuIHRoaXMuX2lkID8/IFVOQVZBSUxBQkxFX1RFWFQ7XG4gIH1cblxuICBnZXQgc2VuZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRlcjtcbiAgfVxuXG4gIHNldCBzZW5kZXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3NlbmRlciA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHJlY2lwaWVudCgpOiBUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3JlY2lwaWVudDtcbiAgfVxuXG4gIHNldCByZWNpcGllbnQodmFsdWU6IFRyYW5zYWN0aW9uUmVjaXBpZW50KSB7XG4gICAgdGhpcy5fcmVjaXBpZW50ID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2VxdWVuY2VOdW1iZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VxdWVuY2VOdW1iZXI7XG4gIH1cblxuICBzZXQgc2VxdWVuY2VOdW1iZXIodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3NlcXVlbmNlTnVtYmVyID0gdmFsdWU7XG4gIH1cblxuICBnZXQgbWF4R2FzQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heEdhc0Ftb3VudDtcbiAgfVxuXG4gIHNldCBtYXhHYXNBbW91bnQodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX21heEdhc0Ftb3VudCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGdhc1VuaXRQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9nYXNVbml0UHJpY2U7XG4gIH1cblxuICBzZXQgZ2FzVW5pdFByaWNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9nYXNVbml0UHJpY2UgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBnYXNVc2VkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2dhc1VzZWQ7XG4gIH1cblxuICBzZXQgZ2FzVXNlZCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fZ2FzVXNlZCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGV4cGlyYXRpb25UaW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGlyYXRpb25UaW1lO1xuICB9XG5cbiAgc2V0IGV4cGlyYXRpb25UaW1lKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IHZhbHVlO1xuICB9XG5cbiAgc2V0IHRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICBjYW5TaWduKF9rZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBzZXJpYWxpemUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwdWJsaWNLZXlCdWZmZXIgPSB1dGlscy5nZXRCdWZmZXJGcm9tSGV4U3RyaW5nKHRoaXMuX3NpZ25hdHVyZS5wdWJsaWNLZXkucHViKTtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBuZXcgRWQyNTUxOVB1YmxpY0tleShwdWJsaWNLZXlCdWZmZXIpO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbmV3IEVkMjU1MTlTaWduYXR1cmUodGhpcy5fc2lnbmF0dXJlLnNpZ25hdHVyZSk7XG5cbiAgICBjb25zdCB0eG5BdXRoZW50aWNhdG9yID0gbmV3IFRyYW5zYWN0aW9uQXV0aGVudGljYXRvckVkMjU1MTkocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICAgIGNvbnN0IHNpZ25lZFR4biA9IG5ldyBTaWduZWRUcmFuc2FjdGlvbih0aGlzLl9yYXdUcmFuc2FjdGlvbiwgdHhuQXV0aGVudGljYXRvcik7XG4gICAgcmV0dXJuIHNpZ25lZFR4bi50b1N0cmluZygpO1xuICB9XG5cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKV07XG4gICAgdGhpcy5fc2lnbmF0dXJlID0geyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9O1xuICB9XG5cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5idWlsZFJhd1RyYW5zYWN0aW9uKCk7XG4gICAgdGhpcy5nZW5lcmF0ZVR4bklkKCk7XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLnNlbmRlcixcbiAgICAgICAgdmFsdWU6IHRoaXMucmVjaXBpZW50LmFtb3VudCBhcyBzdHJpbmcsXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICB0aGlzLl9vdXRwdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICB2YWx1ZTogdGhpcy5yZWNpcGllbnQuYW1vdW50IGFzIHN0cmluZyxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgc2lnbmVkVHhuOiBTaWduZWRUcmFuc2FjdGlvbjtcbiAgICB0cnkge1xuICAgICAgc2lnbmVkVHhuID0gdXRpbHMuZGVzZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nLCBlKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHhuKTtcbiAgfVxuXG4gIGZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeG46IFNpZ25lZFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhd1R4biA9IHNpZ25lZFR4bi5yYXdfdHhuO1xuICAgICAgdGhpcy5fc2VuZGVyID0gcmF3VHhuLnNlbmRlci50b1N0cmluZygpO1xuICAgICAgdGhpcy5fcmVjaXBpZW50ID0gdXRpbHMuZ2V0UmVjaXBpZW50RnJvbVRyYW5zYWN0aW9uUGF5bG9hZChyYXdUeG4ucGF5bG9hZCk7XG4gICAgICB0aGlzLl9zZXF1ZW5jZU51bWJlciA9IHV0aWxzLmNhc3RUb051bWJlcihyYXdUeG4uc2VxdWVuY2VfbnVtYmVyKTtcbiAgICAgIHRoaXMuX21heEdhc0Ftb3VudCA9IHV0aWxzLmNhc3RUb051bWJlcihyYXdUeG4ubWF4X2dhc19hbW91bnQpO1xuICAgICAgdGhpcy5fZ2FzVW5pdFByaWNlID0gdXRpbHMuY2FzdFRvTnVtYmVyKHJhd1R4bi5nYXNfdW5pdF9wcmljZSk7XG4gICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IHV0aWxzLmNhc3RUb051bWJlcihyYXdUeG4uZXhwaXJhdGlvbl90aW1lc3RhbXBfc2Vjcyk7XG4gICAgICB0aGlzLl9yYXdUcmFuc2FjdGlvbiA9IHJhd1R4bjtcblxuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgICAgY29uc3QgYXV0aGVudGljYXRvciA9IHNpZ25lZFR4bi5hdXRoZW50aWNhdG9yIGFzIFRyYW5zYWN0aW9uQXV0aGVudGljYXRvckVkMjU1MTk7XG4gICAgICBjb25zdCBzaWduYXR1cmUgPSBCdWZmZXIuZnJvbShhdXRoZW50aWNhdG9yLnNpZ25hdHVyZS50b1VpbnQ4QXJyYXkoKSk7XG4gICAgICB0aGlzLmFkZFNpZ25hdHVyZSh7IHB1YjogYXV0aGVudGljYXRvci5wdWJsaWNfa2V5LnRvU3RyaW5nKCkgfSwgc2lnbmF0dXJlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIHNpZ25lZCB0cmFuc2FjdGlvbicsIGUpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHNpZ25lZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZXMgYSBzaWduZWQgdHJhbnNhY3Rpb24gaGV4IHN0cmluZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmVkUmF3VHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1NpZ25lZFRyYW5zYWN0aW9ufSB0aGUgYXB0b3Mgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqL1xuICBzdGF0aWMgZGVzZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbihzaWduZWRSYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogU2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdXRpbHMuZGVzZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbihzaWduZWRSYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nLCBlKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRSYXdUcmFuc2FjdGlvbigpIHtcbiAgICBjb25zdCBuZXR3b3JrOiBOZXR3b3JrID0gdGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyBOZXR3b3JrLk1BSU5ORVQgOiBOZXR3b3JrLlRFU1RORVQ7XG4gICAgY29uc3QgYXB0b3MgPSBuZXcgQXB0b3MobmV3IEFwdG9zQ29uZmlnKHsgbmV0d29yayB9KSk7XG4gICAgY29uc3Qgc2VuZGVyQWRkcmVzcyA9IEFjY291bnRBZGRyZXNzLmZyb21TdHJpbmcodGhpcy5fc2VuZGVyKTtcbiAgICBjb25zdCByZWNpcGllbnRBZGRyZXNzID0gQWNjb3VudEFkZHJlc3MuZnJvbVN0cmluZyh0aGlzLl9yZWNpcGllbnQuYWRkcmVzcyk7XG5cbiAgICBjb25zdCBzaW1wbGVUeG4gPSBhd2FpdCBhcHRvcy50cmFuc2FjdGlvbi5idWlsZC5zaW1wbGUoe1xuICAgICAgc2VuZGVyOiBzZW5kZXJBZGRyZXNzLFxuICAgICAgZGF0YToge1xuICAgICAgICBmdW5jdGlvbjogJzB4MTo6Y29pbjo6dHJhbnNmZXInLFxuICAgICAgICB0eXBlQXJndW1lbnRzOiBbQVBUT1NfQ09JTl0sXG4gICAgICAgIGZ1bmN0aW9uQXJndW1lbnRzOiBbcmVjaXBpZW50QWRkcmVzcywgdGhpcy5yZWNpcGllbnQuYW1vdW50XSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1heEdhc0Ftb3VudDogdGhpcy5tYXhHYXNBbW91bnQsXG4gICAgICAgIGdhc1VuaXRQcmljZTogdGhpcy5nYXNVbml0UHJpY2UsXG4gICAgICAgIGV4cGlyZVRpbWVzdGFtcDogdGhpcy5leHBpcmF0aW9uVGltZSxcbiAgICAgICAgYWNjb3VudFNlcXVlbmNlTnVtYmVyOiB0aGlzLnNlcXVlbmNlTnVtYmVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLl9yYXdUcmFuc2FjdGlvbiA9IHNpbXBsZVR4bi5yYXdUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGZWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEJpZ051bWJlcih0aGlzLmdhc1VzZWQpLm11bHRpcGxpZWRCeSh0aGlzLmdhc1VuaXRQcmljZSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVUeG5JZCgpIHtcbiAgICBpZiAoIXRoaXMuX3NpZ25hdHVyZSB8fCAhdGhpcy5fc2lnbmF0dXJlLnB1YmxpY0tleSB8fCAhdGhpcy5fc2lnbmF0dXJlLnNpZ25hdHVyZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBTaW1wbGVUcmFuc2FjdGlvbih0aGlzLl9yYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgcHVibGljS2V5ID0gbmV3IEVkMjU1MTlQdWJsaWNLZXkodXRpbHMuZ2V0QnVmZmVyRnJvbUhleFN0cmluZyh0aGlzLl9zaWduYXR1cmUucHVibGljS2V5LnB1YikpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IG5ldyBFZDI1NTE5U2lnbmF0dXJlKHRoaXMuX3NpZ25hdHVyZS5zaWduYXR1cmUpO1xuICAgIGNvbnN0IHNlbmRlckF1dGhlbnRpY2F0b3IgPSBuZXcgQWNjb3VudEF1dGhlbnRpY2F0b3JFZDI1NTE5KHB1YmxpY0tleSwgc2lnbmF0dXJlKTtcbiAgICB0aGlzLl9pZCA9IGdlbmVyYXRlVXNlclRyYW5zYWN0aW9uSGFzaCh7IHRyYW5zYWN0aW9uLCBzZW5kZXJBdXRoZW50aWNhdG9yIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Transaction } from './transaction';
|
|
2
|
+
import { AptTransactionExplanation, TransferTxData } from '../iface';
|
|
3
|
+
export declare class TransferTransaction extends Transaction {
|
|
4
|
+
constructor(coinConfig: any);
|
|
5
|
+
get signablePayload(): Buffer;
|
|
6
|
+
/** @inheritDoc */
|
|
7
|
+
explainTransaction(): AptTransactionExplanation;
|
|
8
|
+
toJson(): TransferTxData;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=transferTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/transferTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIrE,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,UAAU,KAAA;IAKtB,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,kBAAkB;IAClB,kBAAkB,IAAI,yBAAyB;IA4B/C,MAAM,IAAI,cAAc;CAWzB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransferTransaction = void 0;
|
|
4
|
+
const transaction_1 = require("./transaction");
|
|
5
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
6
|
+
const ts_sdk_1 = require("@aptos-labs/ts-sdk");
|
|
7
|
+
class TransferTransaction extends transaction_1.Transaction {
|
|
8
|
+
constructor(coinConfig) {
|
|
9
|
+
super(coinConfig);
|
|
10
|
+
this._type = sdk_core_1.TransactionType.Send;
|
|
11
|
+
}
|
|
12
|
+
get signablePayload() {
|
|
13
|
+
return Buffer.from((0, ts_sdk_1.generateSigningMessage)(this._rawTransaction.bcsToBytes(), ts_sdk_1.RAW_TRANSACTION_SALT));
|
|
14
|
+
}
|
|
15
|
+
/** @inheritDoc */
|
|
16
|
+
explainTransaction() {
|
|
17
|
+
const displayOrder = [
|
|
18
|
+
'id',
|
|
19
|
+
'outputs',
|
|
20
|
+
'outputAmount',
|
|
21
|
+
'changeOutputs',
|
|
22
|
+
'changeAmount',
|
|
23
|
+
'fee',
|
|
24
|
+
'withdrawAmount',
|
|
25
|
+
'sender',
|
|
26
|
+
'type',
|
|
27
|
+
];
|
|
28
|
+
const outputs = [this.recipient];
|
|
29
|
+
const outputAmount = outputs[0].amount;
|
|
30
|
+
return {
|
|
31
|
+
displayOrder,
|
|
32
|
+
id: this.id,
|
|
33
|
+
outputs,
|
|
34
|
+
outputAmount,
|
|
35
|
+
changeOutputs: [],
|
|
36
|
+
changeAmount: '0',
|
|
37
|
+
fee: { fee: this.getFee() },
|
|
38
|
+
sender: this.sender,
|
|
39
|
+
type: this.type,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
toJson() {
|
|
43
|
+
return {
|
|
44
|
+
id: this.id,
|
|
45
|
+
sender: this.sender,
|
|
46
|
+
recipient: this.recipient,
|
|
47
|
+
sequenceNumber: this.sequenceNumber,
|
|
48
|
+
maxGasAmount: this.maxGasAmount,
|
|
49
|
+
gasUnitPrice: this.gasUnitPrice,
|
|
50
|
+
expirationTime: this.expirationTime,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.TransferTransaction = TransferTransaction;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24vdHJhbnNmZXJUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBNEM7QUFFNUMsOENBQXdFO0FBQ3hFLCtDQUFrRjtBQUVsRixNQUFhLG1CQUFvQixTQUFRLHlCQUFXO0lBQ2xELFlBQVksVUFBVTtRQUNwQixLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLCtCQUFzQixFQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLEVBQUUsNkJBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCO1FBQ2hCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLElBQUk7WUFDSixTQUFTO1lBQ1QsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsS0FBSztZQUNMLGdCQUFnQjtZQUNoQixRQUFRO1lBQ1IsTUFBTTtTQUNQLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN2QyxPQUFPO1lBQ0wsWUFBWTtZQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU87WUFDUCxZQUFZO1lBQ1osYUFBYSxFQUFFLEVBQUU7WUFDakIsWUFBWSxFQUFFLEdBQUc7WUFDakIsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNwQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbERELGtEQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBBcHRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUcmFuc2ZlclR4RGF0YSB9IGZyb20gJy4uL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgZ2VuZXJhdGVTaWduaW5nTWVzc2FnZSwgUkFXX1RSQU5TQUNUSU9OX1NBTFQgfSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJUcmFuc2FjdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uIHtcbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZykge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGdlbmVyYXRlU2lnbmluZ01lc3NhZ2UodGhpcy5fcmF3VHJhbnNhY3Rpb24uYmNzVG9CeXRlcygpLCBSQVdfVFJBTlNBQ1RJT05fU0FMVCkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBBcHRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbXG4gICAgICAnaWQnLFxuICAgICAgJ291dHB1dHMnLFxuICAgICAgJ291dHB1dEFtb3VudCcsXG4gICAgICAnY2hhbmdlT3V0cHV0cycsXG4gICAgICAnY2hhbmdlQW1vdW50JyxcbiAgICAgICdmZWUnLFxuICAgICAgJ3dpdGhkcmF3QW1vdW50JyxcbiAgICAgICdzZW5kZXInLFxuICAgICAgJ3R5cGUnLFxuICAgIF07XG5cbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW3RoaXMucmVjaXBpZW50XTtcbiAgICBjb25zdCBvdXRwdXRBbW91bnQgPSBvdXRwdXRzWzBdLmFtb3VudDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6IHRoaXMuZ2V0RmVlKCkgfSxcbiAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUcmFuc2ZlclR4RGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgc2VuZGVyOiB0aGlzLnNlbmRlcixcbiAgICAgIHJlY2lwaWVudDogdGhpcy5yZWNpcGllbnQsXG4gICAgICBzZXF1ZW5jZU51bWJlcjogdGhpcy5zZXF1ZW5jZU51bWJlcixcbiAgICAgIG1heEdhc0Ftb3VudDogdGhpcy5tYXhHYXNBbW91bnQsXG4gICAgICBnYXNVbml0UHJpY2U6IHRoaXMuZ2FzVW5pdFByaWNlLFxuICAgICAgZXhwaXJhdGlvblRpbWU6IHRoaXMuZXhwaXJhdGlvblRpbWUsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { BaseAddress, BaseKey, BaseTransactionBuilder,
|
|
2
|
-
import { Transaction } from './transaction';
|
|
1
|
+
import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, Recipient, TransactionType } from '@bitgo/sdk-core';
|
|
2
|
+
import { Transaction } from './transaction/transaction';
|
|
3
3
|
import BigNumber from 'bignumber.js';
|
|
4
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
5
|
+
import { GasData } from './types';
|
|
4
6
|
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
5
7
|
protected _transaction: Transaction;
|
|
6
|
-
|
|
8
|
+
constructor(coinConfig: Readonly<CoinConfig>);
|
|
7
9
|
/**
|
|
8
10
|
* The transaction type.
|
|
9
11
|
*/
|
|
@@ -12,23 +14,31 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
12
14
|
protected get transaction(): Transaction;
|
|
13
15
|
/** @inheritdoc */
|
|
14
16
|
protected set transaction(transaction: Transaction);
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
protected signImplementation(key: BaseKey): Transaction;
|
|
17
|
-
/** @inheritDoc */
|
|
18
|
-
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
19
17
|
/**
|
|
20
18
|
* Sets the sender of this transaction.
|
|
21
|
-
* This account will be responsible for paying transaction fees.
|
|
22
19
|
*
|
|
23
20
|
* @param {string} senderAddress the account that is sending this transaction
|
|
24
21
|
* @returns {TransactionBuilder} This transaction builder
|
|
25
22
|
*/
|
|
26
23
|
sender(senderAddress: string): this;
|
|
27
|
-
|
|
24
|
+
recipient(recipient: Recipient): this;
|
|
25
|
+
gasData(gasData: GasData): this;
|
|
26
|
+
sequenceNumber(seqNo: number): TransactionBuilder;
|
|
27
|
+
expirationTime(expTimeSec: number): TransactionBuilder;
|
|
28
|
+
/** @inheritdoc */
|
|
29
|
+
protected signImplementation(key: BaseKey): Transaction;
|
|
30
|
+
/** @inheritDoc */
|
|
31
|
+
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
28
32
|
/** @inheritdoc */
|
|
29
33
|
protected fromImplementation(rawTransaction: string): Transaction;
|
|
30
34
|
/** @inheritdoc */
|
|
31
35
|
protected buildImplementation(): Promise<Transaction>;
|
|
36
|
+
/**
|
|
37
|
+
* Initialize the transaction builder fields using the decoded transaction data
|
|
38
|
+
*
|
|
39
|
+
* @param {Transaction} tx the transaction data
|
|
40
|
+
*/
|
|
41
|
+
abstract initBuilder(tx: Transaction): void;
|
|
32
42
|
/** @inheritdoc */
|
|
33
43
|
validateAddress(address: BaseAddress, addressFormat?: string): void;
|
|
34
44
|
/** @inheritdoc */
|
|
@@ -39,5 +49,6 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
39
49
|
validateTransaction(transaction?: Transaction): void;
|
|
40
50
|
/** @inheritdoc */
|
|
41
51
|
validateValue(value: BigNumber): void;
|
|
52
|
+
private validateGasData;
|
|
42
53
|
}
|
|
43
54
|
//# sourceMappingURL=transactionBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAGtB,SAAS,IAAI,aAAa,EAC1B,SAAS,EACT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;gBAExB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAMnC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAOrC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAKjD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAKtD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAIvD,kBAAkB;IAClB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAMjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAM3D;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAG3C,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IASpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQrC,OAAO,CAAC,eAAe;CAIxB"}
|
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.TransactionBuilder = void 0;
|
|
7
7
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
8
|
const utils_1 = __importDefault(require("./utils"));
|
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
10
|
class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(
|
|
12
|
-
this._signatures = [];
|
|
11
|
+
constructor(coinConfig) {
|
|
12
|
+
super(coinConfig);
|
|
13
13
|
}
|
|
14
14
|
/** @inheritdoc */
|
|
15
15
|
get transaction() {
|
|
@@ -19,34 +19,57 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
19
19
|
set transaction(transaction) {
|
|
20
20
|
this._transaction = transaction;
|
|
21
21
|
}
|
|
22
|
-
/** @inheritdoc */
|
|
23
|
-
signImplementation(key) {
|
|
24
|
-
throw new Error('Method not implemented.');
|
|
25
|
-
}
|
|
26
|
-
/** @inheritDoc */
|
|
27
|
-
addSignature(publicKey, signature) {
|
|
28
|
-
this._signatures.push({ publicKey, signature });
|
|
29
|
-
}
|
|
30
22
|
/**
|
|
31
23
|
* Sets the sender of this transaction.
|
|
32
|
-
* This account will be responsible for paying transaction fees.
|
|
33
24
|
*
|
|
34
25
|
* @param {string} senderAddress the account that is sending this transaction
|
|
35
26
|
* @returns {TransactionBuilder} This transaction builder
|
|
36
27
|
*/
|
|
37
28
|
sender(senderAddress) {
|
|
38
|
-
|
|
29
|
+
this.validateAddress({ address: senderAddress });
|
|
30
|
+
this.transaction.sender = senderAddress;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
recipient(recipient) {
|
|
34
|
+
this.validateAddress({ address: recipient.address });
|
|
35
|
+
this.validateValue(new bignumber_js_1.default(recipient.amount));
|
|
36
|
+
this.transaction.recipient = recipient;
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
gasData(gasData) {
|
|
40
|
+
this.validateGasData(gasData);
|
|
41
|
+
this.transaction.maxGasAmount = gasData.maxGasAmount;
|
|
42
|
+
this.transaction.gasUnitPrice = gasData.gasUnitPrice;
|
|
43
|
+
this.transaction.gasUsed = gasData.gasUsed ?? 0;
|
|
44
|
+
return this;
|
|
39
45
|
}
|
|
40
|
-
|
|
46
|
+
sequenceNumber(seqNo) {
|
|
47
|
+
this.transaction.sequenceNumber = seqNo;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
expirationTime(expTimeSec) {
|
|
51
|
+
this.transaction.expirationTime = expTimeSec;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/** @inheritdoc */
|
|
55
|
+
signImplementation(key) {
|
|
41
56
|
throw new Error('Method not implemented.');
|
|
42
57
|
}
|
|
58
|
+
/** @inheritDoc */
|
|
59
|
+
addSignature(publicKey, signature) {
|
|
60
|
+
this.transaction.addSignature(publicKey, signature);
|
|
61
|
+
}
|
|
43
62
|
/** @inheritdoc */
|
|
44
63
|
fromImplementation(rawTransaction) {
|
|
45
|
-
|
|
64
|
+
this.transaction.fromRawTransaction(rawTransaction);
|
|
65
|
+
this.transaction.transactionType = this.transactionType;
|
|
66
|
+
return this.transaction;
|
|
46
67
|
}
|
|
47
68
|
/** @inheritdoc */
|
|
48
69
|
async buildImplementation() {
|
|
49
|
-
|
|
70
|
+
this.transaction.transactionType = this.transactionType;
|
|
71
|
+
await this.transaction.build();
|
|
72
|
+
return this.transaction;
|
|
50
73
|
}
|
|
51
74
|
// region Validators
|
|
52
75
|
/** @inheritdoc */
|
|
@@ -61,18 +84,35 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
61
84
|
}
|
|
62
85
|
/** @inheritdoc */
|
|
63
86
|
validateRawTransaction(rawTransaction) {
|
|
64
|
-
|
|
87
|
+
if (!rawTransaction) {
|
|
88
|
+
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
|
|
89
|
+
}
|
|
90
|
+
if (!utils_1.default.isValidRawTransaction(rawTransaction)) {
|
|
91
|
+
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
|
|
92
|
+
}
|
|
65
93
|
}
|
|
66
94
|
/** @inheritdoc */
|
|
67
95
|
validateTransaction(transaction) {
|
|
68
|
-
|
|
96
|
+
if (!transaction) {
|
|
97
|
+
throw new Error('transaction not defined');
|
|
98
|
+
}
|
|
99
|
+
this.validateAddress({ address: transaction.sender });
|
|
100
|
+
this.validateAddress({ address: transaction.recipient.address });
|
|
101
|
+
this.validateValue(new bignumber_js_1.default(transaction.recipient.amount));
|
|
69
102
|
}
|
|
70
103
|
/** @inheritdoc */
|
|
71
104
|
validateValue(value) {
|
|
72
|
-
if (value.
|
|
105
|
+
if (value.isNaN()) {
|
|
106
|
+
throw new sdk_core_1.BuildTransactionError('Invalid amount format');
|
|
107
|
+
}
|
|
108
|
+
else if (value.isLessThan(0)) {
|
|
73
109
|
throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
|
|
74
110
|
}
|
|
75
111
|
}
|
|
112
|
+
validateGasData(gasData) {
|
|
113
|
+
this.validateValue(new bignumber_js_1.default(gasData.maxGasAmount));
|
|
114
|
+
this.validateValue(new bignumber_js_1.default(gasData.gasUnitPrice));
|
|
115
|
+
}
|
|
76
116
|
}
|
|
77
117
|
exports.TransactionBuilder = TransactionBuilder;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBU3lCO0FBRXpCLG9EQUE0QjtBQUc1QixNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFBdkU7O1FBRVUsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO0lBa0Z4QyxDQUFDO0lBMUVDLGtCQUFrQjtJQUNsQixJQUFjLFdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXLENBQUMsV0FBd0I7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsWUFBWSxDQUFDLFNBQXdCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGFBQXFCO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsR0FBRyxDQUFDLFVBQXNCO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixlQUFlLENBQUMsT0FBb0IsRUFBRSxhQUFzQjtRQUMxRCxJQUFJLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxHQUFZO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLGNBQXNCO1FBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQXlCO1FBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGFBQWEsQ0FBQyxLQUFnQjtRQUM1QixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBcEZELGdEQW9GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEZlZU9wdGlvbnMsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG5cbiAgLy8gZ2V0IGFuZCBzZXQgcmVnaW9uXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZW5kZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICogVGhpcyBhY2NvdW50IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHBheWluZyB0cmFuc2FjdGlvbiBmZWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VuZGVyQWRkcmVzcyB0aGUgYWNjb3VudCB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHNlbmRlcihzZW5kZXJBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBmZWUoZmVlT3B0aW9uczogRmVlT3B0aW9ucyk6IHRoaXMge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBU3lCO0FBRXpCLG9EQUE0QjtBQUM1QixnRUFBcUM7QUFJckMsTUFBc0Isa0JBQW1CLFNBQVEsaUNBQXNCO0lBR3JFLFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxhQUFxQjtRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFvQjtRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FB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LENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksZ0NBQXFCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsT0FBZ0I7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBeklELGdEQXlJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBHYXNEYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VuZGVyIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZW5kZXJBZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VuZGVyKHNlbmRlckFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogc2VuZGVyQWRkcmVzcyB9KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNlbmRlciA9IHNlbmRlckFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZWNpcGllbnQocmVjaXBpZW50OiBSZWNpcGllbnQpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzIH0pO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHJlY2lwaWVudC5hbW91bnQpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHJlY2lwaWVudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKGdhc0RhdGEpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubWF4R2FzQW1vdW50ID0gZ2FzRGF0YS5tYXhHYXNBbW91bnQ7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5nYXNVbml0UHJpY2UgPSBnYXNEYXRhLmdhc1VuaXRQcmljZTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmdhc1VzZWQgPSBnYXNEYXRhLmdhc1VzZWQgPz8gMDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlcXVlbmNlTnVtYmVyKHNlcU5vOiBudW1iZXIpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2VxdWVuY2VOdW1iZXIgPSBzZXFObztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGV4cGlyYXRpb25UaW1lKGV4cFRpbWVTZWM6IG51bWJlcik6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5leHBpcmF0aW9uVGltZSA9IGV4cFRpbWVTZWM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uLmJ1aWxkKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgYWJzdHJhY3QgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZDtcblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbjogVW5kZWZpbmVkJyk7XG4gICAgfVxuICAgIGlmICghdXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRyYW5zYWN0aW9uLnNlbmRlciB9KTtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRyYW5zYWN0aW9uLnJlY2lwaWVudC5hZGRyZXNzIH0pO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHRyYW5zYWN0aW9uLnJlY2lwaWVudC5hbW91bnQpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNOYU4oKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhbW91bnQgZm9ybWF0Jyk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlR2FzRGF0YShnYXNEYXRhOiBHYXNEYXRhKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoZ2FzRGF0YS5tYXhHYXNBbW91bnQpKTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihnYXNEYXRhLmdhc1VuaXRQcmljZSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
|
|
2
2
|
import { TransactionBuilder } from './transactionBuilder';
|
|
3
3
|
import { TransferBuilder } from './transferBuilder';
|
|
4
|
+
import { Transaction } from './transaction/transaction';
|
|
5
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
4
6
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
7
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
5
8
|
/** @inheritdoc */
|
|
6
|
-
from(
|
|
9
|
+
from(signedRawTxn: string): TransactionBuilder;
|
|
7
10
|
/** @inheritdoc */
|
|
8
|
-
getTransferBuilder(): TransferBuilder;
|
|
11
|
+
getTransferBuilder(tx?: Transaction): TransferBuilder;
|
|
9
12
|
/** @inheritdoc */
|
|
10
13
|
getWalletInitializationBuilder(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the builder with the given transaction
|
|
16
|
+
*
|
|
17
|
+
* @param {Transaction | undefined} tx - the transaction used to initialize the builder
|
|
18
|
+
* @param {TransactionBuilder} builder - the builder to be initialized
|
|
19
|
+
* @returns {TransactionBuilder} the builder initialized
|
|
20
|
+
*/
|
|
21
|
+
private initializeBuilder;
|
|
22
|
+
/** Parse the transaction from a signed txn hex string
|
|
23
|
+
*
|
|
24
|
+
* @param {string} signedRawTransaction - the signed txn hex
|
|
25
|
+
* @returns {SignedTransaction} parsedtransaction
|
|
26
|
+
*/
|
|
27
|
+
private parseTransaction;
|
|
11
28
|
}
|
|
12
29
|
//# sourceMappingURL=transactionBuilderFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,yBAA0B,SAAQ,6BAA6B;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB;IAc9C,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAGzB"}
|