@bitgo-beta/sdk-coin-dot 2.2.8-beta.1221 → 2.2.8-beta.1223
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/dist/src/dot.d.ts +154 -0
- package/dist/src/dot.d.ts.map +1 -0
- package/dist/src/dot.js +576 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +21 -0
- package/dist/src/lib/addressInitializationBuilder.d.ts +79 -0
- package/dist/src/lib/addressInitializationBuilder.d.ts.map +1 -0
- package/dist/src/lib/addressInitializationBuilder.js +182 -0
- package/dist/src/lib/batchTransactionBuilder.d.ts +62 -0
- package/dist/src/lib/batchTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/batchTransactionBuilder.js +229 -0
- package/dist/src/lib/claimBuilder.d.ts +58 -0
- package/dist/src/lib/claimBuilder.d.ts.map +1 -0
- package/dist/src/lib/claimBuilder.js +117 -0
- package/dist/src/lib/errors.d.ts +8 -0
- package/dist/src/lib/errors.d.ts.map +1 -0
- package/dist/src/lib/errors.js +19 -0
- package/dist/src/lib/iface.d.ts +337 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +128 -0
- package/dist/src/lib/iface_utils.d.ts +59 -0
- package/dist/src/lib/iface_utils.d.ts.map +1 -0
- package/dist/src/lib/iface_utils.js +92 -0
- package/dist/src/lib/index.d.ts +19 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +71 -0
- package/dist/src/lib/keyPair.d.ts +38 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +117 -0
- package/dist/src/lib/nativeTransferBuilder.d.ts +84 -0
- package/dist/src/lib/nativeTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/nativeTransferBuilder.js +219 -0
- package/dist/src/lib/proxyBuilder.d.ts +54 -0
- package/dist/src/lib/proxyBuilder.d.ts.map +1 -0
- package/dist/src/lib/proxyBuilder.js +116 -0
- package/dist/src/lib/singletonRegistry.d.ts +7 -0
- package/dist/src/lib/singletonRegistry.d.ts.map +1 -0
- package/dist/src/lib/singletonRegistry.js +20 -0
- package/dist/src/lib/stakingBuilder.d.ts +66 -0
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/stakingBuilder.js +167 -0
- package/dist/src/lib/transaction.d.ts +83 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +610 -0
- package/dist/src/lib/transactionBuilder.d.ts +131 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +351 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +28 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +104 -0
- package/dist/src/lib/transferBuilder.d.ts +11 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +11 -0
- package/dist/src/lib/txnSchema.d.ts +15 -0
- package/dist/src/lib/txnSchema.d.ts.map +1 -0
- package/dist/src/lib/txnSchema.js +117 -0
- package/dist/src/lib/unnominateBuilder.d.ts +24 -0
- package/dist/src/lib/unnominateBuilder.d.ts.map +1 -0
- package/dist/src/lib/unnominateBuilder.js +48 -0
- package/dist/src/lib/unstakeBuilder.d.ts +38 -0
- package/dist/src/lib/unstakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/unstakeBuilder.js +87 -0
- package/dist/src/lib/utils.d.ts +261 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +488 -0
- package/dist/src/lib/withdrawUnstakedBuilder.d.ts +38 -0
- package/dist/src/lib/withdrawUnstakedBuilder.d.ts.map +1 -0
- package/dist/src/lib/withdrawUnstakedBuilder.js +88 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +11 -0
- package/dist/src/resources/index.d.ts +4 -0
- package/dist/src/resources/index.d.ts.map +1 -0
- package/dist/src/resources/index.js +20 -0
- package/dist/src/resources/mainnet.d.ts +2 -0
- package/dist/src/resources/mainnet.d.ts.map +1 -0
- package/dist/src/resources/mainnet.js +5 -0
- package/dist/src/resources/westend.d.ts +2 -0
- package/dist/src/resources/westend.d.ts.map +1 -0
- package/dist/src/resources/westend.js +5 -0
- package/dist/src/resources/westendAssetHub.d.ts +2 -0
- package/dist/src/resources/westendAssetHub.d.ts.map +1 -0
- package/dist/src/resources/westendAssetHub.js +5 -0
- package/dist/src/tdot.d.ts +12 -0
- package/dist/src/tdot.d.ts.map +1 -0
- package/dist/src/tdot.js +27 -0
- package/package.json +6 -6
|
@@ -0,0 +1,229 @@
|
|
|
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.BatchTransactionBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
9
|
+
const iface_1 = require("./iface");
|
|
10
|
+
const iface_utils_1 = require("./iface_utils");
|
|
11
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
12
|
+
const txnSchema_1 = require("./txnSchema");
|
|
13
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
14
|
+
class BatchTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
15
|
+
constructor(_coinConfig) {
|
|
16
|
+
super(_coinConfig);
|
|
17
|
+
this._atomic = false;
|
|
18
|
+
}
|
|
19
|
+
/** @inheritDoc */
|
|
20
|
+
buildTransaction() {
|
|
21
|
+
return this.buildBatchTransaction();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build a transaction which batches together multiple transactions.
|
|
25
|
+
* The transactions which are batched together are passed in as an array of hex strings
|
|
26
|
+
* which are composed of the method to call and the arguments to pass into the method.
|
|
27
|
+
*
|
|
28
|
+
* @returns {UnsignedTransaction}
|
|
29
|
+
*
|
|
30
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#batchcalls-veccall
|
|
31
|
+
*/
|
|
32
|
+
buildBatchTransaction() {
|
|
33
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
34
|
+
if (this._atomic) {
|
|
35
|
+
return txwrapper_polkadot_1.methods.utility.batchAll({
|
|
36
|
+
calls: this._calls,
|
|
37
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return txwrapper_polkadot_1.methods.utility.batch({
|
|
41
|
+
calls: this._calls,
|
|
42
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
get transactionType() {
|
|
46
|
+
return sdk_core_1.TransactionType.Batch;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Set multiple unsigned transactions to be batched and broadcast as a single transaction
|
|
50
|
+
*
|
|
51
|
+
* @param {BatchCall[]} calls unsigned transactions
|
|
52
|
+
* @returns {BatchTransactionBuilder} This batch transaction builder.
|
|
53
|
+
*/
|
|
54
|
+
calls(calls) {
|
|
55
|
+
this.validateCalls(calls);
|
|
56
|
+
this._calls = calls;
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* If true when a batched call fails the entire transactions is rolled back, if false no roll back
|
|
61
|
+
* is performed and the effects of any successful call prior to the error remain.
|
|
62
|
+
*
|
|
63
|
+
* @param atomic true if calls must succeed atomically, false otherwise.
|
|
64
|
+
*/
|
|
65
|
+
atomic(atomic) {
|
|
66
|
+
this._atomic = atomic;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/** @inheritdoc */
|
|
70
|
+
validateDecodedTransaction(decodedTxn) {
|
|
71
|
+
const txMethod = decodedTxn.method.args;
|
|
72
|
+
const validationResult = this.validateBatchTransactionFields(txMethod.calls);
|
|
73
|
+
if (validationResult.error) {
|
|
74
|
+
throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** @inheritdoc */
|
|
78
|
+
fromImplementation(rawTransaction) {
|
|
79
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
80
|
+
if (this._method?.name === iface_1.MethodNames.Batch || this._method?.name === iface_1.MethodNames.BatchAll) {
|
|
81
|
+
if (this._method?.name === iface_1.MethodNames.BatchAll) {
|
|
82
|
+
this.atomic(true);
|
|
83
|
+
}
|
|
84
|
+
const txMethod = this._method.args;
|
|
85
|
+
if (!txMethod.calls) {
|
|
86
|
+
throw new sdk_core_1.InvalidTransactionError('failed to decode calls from batch transaction');
|
|
87
|
+
}
|
|
88
|
+
const callsToBatch = [];
|
|
89
|
+
txMethod.calls.forEach((call) => {
|
|
90
|
+
const method = call.callIndex;
|
|
91
|
+
const decodedMethod = (0, sdk_core_1.toUint8Array)(utils_1.default.stripHexPrefix(method));
|
|
92
|
+
const decodedCall = this._registry.findMetaCall(decodedMethod);
|
|
93
|
+
if (decodedCall.section === iface_1.SectionNames.Proxy &&
|
|
94
|
+
(decodedCall.method === iface_1.MethodNames.Anonymous || decodedCall.method === iface_1.MethodNames.PureProxy)) {
|
|
95
|
+
callsToBatch.push(this.getPureProxyCall(call.args));
|
|
96
|
+
}
|
|
97
|
+
else if (decodedCall.section === iface_1.SectionNames.Proxy && decodedCall.method === iface_1.MethodNames.AddProxy) {
|
|
98
|
+
callsToBatch.push(this.getAddProxyCall(call.args));
|
|
99
|
+
}
|
|
100
|
+
else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.BondExtra) {
|
|
101
|
+
callsToBatch.push(this.getBondExtraCall(call.args));
|
|
102
|
+
}
|
|
103
|
+
else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.Bond) {
|
|
104
|
+
callsToBatch.push(this.getBondCall(call.args));
|
|
105
|
+
}
|
|
106
|
+
else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.Unbond) {
|
|
107
|
+
callsToBatch.push(this.getUnbondCall(call.args));
|
|
108
|
+
}
|
|
109
|
+
else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.Chill) {
|
|
110
|
+
callsToBatch.push(this.getChillCall());
|
|
111
|
+
}
|
|
112
|
+
else if (decodedCall.section === iface_1.SectionNames.Proxy && decodedCall.method === iface_1.MethodNames.RemoveProxy) {
|
|
113
|
+
callsToBatch.push(this.getRemoveProxyCall(call.args));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
throw new sdk_core_1.NotImplementedError(`batching of transaction with index ${method} unsupported`);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
this.calls(callsToBatch);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected ${iface_1.MethodNames.Batch}`);
|
|
123
|
+
}
|
|
124
|
+
return tx;
|
|
125
|
+
}
|
|
126
|
+
/** @inheritdoc */
|
|
127
|
+
validateTransaction(_) {
|
|
128
|
+
super.validateTransaction(_);
|
|
129
|
+
this.validateFields();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Validate list of unsigned transactions added to batch
|
|
133
|
+
*
|
|
134
|
+
* @param {string[]} calls
|
|
135
|
+
*
|
|
136
|
+
*/
|
|
137
|
+
validateCalls(calls) {
|
|
138
|
+
calls.forEach((call) => {
|
|
139
|
+
if (call.slice(0, 2) !== '0x') {
|
|
140
|
+
// example: '0x160400000000000000'
|
|
141
|
+
throw new sdk_core_1.BuildTransactionError('call in string format must be hex format of a method and its arguments');
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
validateFields() {
|
|
146
|
+
const validationResult = this.validateBatchTransactionFields(this._calls);
|
|
147
|
+
if (validationResult.error) {
|
|
148
|
+
throw new sdk_core_1.InvalidTransactionError(`AddressInitialization Transaction validation failed: ${validationResult.error.message}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
validateBatchTransactionFields(calls) {
|
|
152
|
+
return txnSchema_1.BatchTransactionSchema.validate({
|
|
153
|
+
calls,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
getPureProxyCall(args) {
|
|
157
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
158
|
+
const unsigned = utils_1.default.pureProxy({
|
|
159
|
+
proxyType: args.proxy_type,
|
|
160
|
+
index: args.index,
|
|
161
|
+
delay: args.delay,
|
|
162
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
163
|
+
return unsigned.method;
|
|
164
|
+
}
|
|
165
|
+
getBondCall(args) {
|
|
166
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
167
|
+
const unsigned = txwrapper_polkadot_1.methods.staking.bond({
|
|
168
|
+
value: args.value,
|
|
169
|
+
payee: this.getPayee(args.payee),
|
|
170
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
171
|
+
return unsigned.method;
|
|
172
|
+
}
|
|
173
|
+
getUnbondCall(args) {
|
|
174
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
175
|
+
const unsigned = txwrapper_polkadot_1.methods.staking.unbond({
|
|
176
|
+
value: args.value,
|
|
177
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
178
|
+
return unsigned.method;
|
|
179
|
+
}
|
|
180
|
+
getPayee(payee) {
|
|
181
|
+
if ((0, iface_utils_1.isStakeBatchCallPayeeStash)(payee)) {
|
|
182
|
+
return 'Stash';
|
|
183
|
+
}
|
|
184
|
+
else if ((0, iface_utils_1.isStakeBatchCallPayeeController)(payee)) {
|
|
185
|
+
return 'Controller';
|
|
186
|
+
}
|
|
187
|
+
else if ((0, iface_utils_1.isStakeBatchCallPayeeAccount)(payee)) {
|
|
188
|
+
return { Account: payee.account };
|
|
189
|
+
}
|
|
190
|
+
else if ((0, iface_utils_1.isStakeBatchCallPayeeStaked)(payee)) {
|
|
191
|
+
return 'Staked';
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
throw new Error(`Invalid payee: ${payee}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
getAddProxyCall(args) {
|
|
198
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
199
|
+
const unsigned = txwrapper_polkadot_1.methods.proxy.addProxy({
|
|
200
|
+
delegate: (0, iface_utils_1.getDelegateAddress)(args),
|
|
201
|
+
proxyType: args.proxy_type,
|
|
202
|
+
delay: args.delay,
|
|
203
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
204
|
+
return unsigned.method;
|
|
205
|
+
}
|
|
206
|
+
getBondExtraCall(args) {
|
|
207
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
208
|
+
const unsigned = txwrapper_polkadot_1.methods.staking.bondExtra({
|
|
209
|
+
maxAdditional: args.max_additional,
|
|
210
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
211
|
+
return unsigned.method;
|
|
212
|
+
}
|
|
213
|
+
getRemoveProxyCall(args) {
|
|
214
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
215
|
+
const unsigned = txwrapper_polkadot_1.methods.proxy.removeProxy({
|
|
216
|
+
delegate: (0, iface_utils_1.getDelegateAddress)(args),
|
|
217
|
+
proxyType: args.proxy_type,
|
|
218
|
+
delay: args.delay,
|
|
219
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
220
|
+
return unsigned.method;
|
|
221
|
+
}
|
|
222
|
+
getChillCall() {
|
|
223
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
224
|
+
const unsigned = txwrapper_polkadot_1.methods.staking.chill({}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
225
|
+
return unsigned.method;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
exports.BatchTransactionBuilder = BatchTransactionBuilder;
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2JhdGNoVHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQU04QjtBQUc5QixzRUFBd0Q7QUFFeEQsbUNBWWlCO0FBQ2pCLCtDQU11QjtBQUV2Qiw2REFBMEQ7QUFDMUQsMkNBQXFEO0FBQ3JELG9EQUE0QjtBQUU1QixNQUFhLHVCQUF3QixTQUFRLHVDQUFrQjtJQUs3RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhiLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFJeEIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGdCQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNPLHFCQUFxQjtRQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPLDRCQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDN0I7Z0JBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ25CLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQzFCO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTthQUNuQixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsS0FBSyxDQUFDO0lBQy9CLENB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QUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUEyQjtRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3hDO1lBQ0UsUUFBUSxFQUFFLElBQUEsZ0NBQWtCLEVBQUMsSUFBSSxDQUFDO1lBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLDRCQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEYsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQXBRRCwwREFvUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBOb3RJbXBsZW1lbnRlZEVycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIHRvVWludDhBcnJheSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IG1ldGhvZHMgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnam9pJztcbmltcG9ydCB7XG4gIEFkZEFub255bW91c1Byb3h5QmF0Y2hDYWxsQXJncyxcbiAgQWRkUHJveHlCYXRjaENhbGxBcmdzLFxuICBCYXRjaENhbGxPYmplY3QsXG4gIEJhdGNoQXJncyxcbiAgTWV0aG9kTmFtZXMsXG4gIFNlY3Rpb25OYW1lcyxcbiAgU3Rha2VBcmdzUGF5ZWUsXG4gIFN0YWtlQmF0Y2hDYWxsQXJncyxcbiAgU3Rha2VCYXRjaENhbGxQYXllZSxcbiAgVW5ib25kQ2FsbEFyZ3MsXG4gIFN0YWtlTW9yZUNhbGxBcmdzLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7XG4gIGdldERlbGVnYXRlQWRkcmVzcyxcbiAgaXNTdGFrZUJhdGNoQ2FsbFBheWVlU3Rha2VkLFxuICBpc1N0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFzaCxcbiAgaXNTdGFrZUJhdGNoQ2FsbFBheWVlQ29udHJvbGxlcixcbiAgaXNTdGFrZUJhdGNoQ2FsbFBheWVlQWNjb3VudCxcbn0gZnJvbSAnLi9pZmFjZV91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQmF0Y2hUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEJhdGNoVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9jYWxsczogc3RyaW5nW107XG4gIHByb3RlY3RlZCBfdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xuICBwcml2YXRlIF9hdG9taWMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRCYXRjaFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSB0cmFuc2FjdGlvbiB3aGljaCBiYXRjaGVzIHRvZ2V0aGVyIG11bHRpcGxlIHRyYW5zYWN0aW9ucy5cbiAgICogVGhlIHRyYW5zYWN0aW9ucyB3aGljaCBhcmUgYmF0Y2hlZCB0b2dldGhlciBhcmUgcGFzc2VkIGluIGFzIGFuIGFycmF5IG9mIGhleCBzdHJpbmdzXG4gICAqIHdoaWNoIGFyZSBjb21wb3NlZCBvZiB0aGUgbWV0aG9kIHRvIGNhbGwgYW5kIHRoZSBhcmd1bWVudHMgdG8gcGFzcyBpbnRvIHRoZSBtZXRob2QuXG4gICAqXG4gICAqIEByZXR1cm5zIHtVbnNpZ25lZFRyYW5zYWN0aW9ufVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI2JhdGNoY2FsbHMtdmVjY2FsbFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkQmF0Y2hUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgaWYgKHRoaXMuX2F0b21pYykge1xuICAgICAgcmV0dXJuIG1ldGhvZHMudXRpbGl0eS5iYXRjaEFsbChcbiAgICAgICAge1xuICAgICAgICAgIGNhbGxzOiB0aGlzLl9jYWxscyxcbiAgICAgICAgfSxcbiAgICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtZXRob2RzLnV0aWxpdHkuYmF0Y2goXG4gICAgICAgIHtcbiAgICAgICAgICBjYWxsczogdGhpcy5fY2FsbHMsXG4gICAgICAgIH0sXG4gICAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5CYXRjaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbXVsdGlwbGUgdW5zaWduZWQgdHJhbnNhY3Rpb25zIHRvIGJlIGJhdGNoZWQgYW5kIGJyb2FkY2FzdCBhcyBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge0JhdGNoQ2FsbFtdfSBjYWxscyB1bnNpZ25lZCB0cmFuc2FjdGlvbnNcbiAgICogQHJldHVybnMge0JhdGNoVHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIGJhdGNoIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqL1xuICBjYWxscyhjYWxsczogc3RyaW5nW10pOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQ2FsbHMoY2FsbHMpO1xuICAgIHRoaXMuX2NhbGxzID0gY2FsbHM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSWYgdHJ1ZSB3aGVuIGEgYmF0Y2hlZCBjYWxsIGZhaWxzIHRoZSBlbnRpcmUgdHJhbnNhY3Rpb25zIGlzIHJvbGxlZCBiYWNrLCBpZiBmYWxzZSBubyByb2xsIGJhY2tcbiAgICogaXMgcGVyZm9ybWVkIGFuZCB0aGUgZWZmZWN0cyBvZiBhbnkgc3VjY2Vzc2Z1bCBjYWxsIHByaW9yIHRvIHRoZSBlcnJvciByZW1haW4uXG4gICAqXG4gICAqIEBwYXJhbSBhdG9taWMgdHJ1ZSBpZiBjYWxscyBtdXN0IHN1Y2NlZWQgYXRvbWljYWxseSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgYXRvbWljKGF0b21pYzogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2F0b21pYyA9IGF0b21pYztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiB2b2lkIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBCYXRjaEFyZ3M7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHRoaXMudmFsaWRhdGVCYXRjaFRyYW5zYWN0aW9uRmllbGRzKHR4TWV0aG9kLmNhbGxzKTtcbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuQmF0Y2ggfHwgdGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5CYXRjaEFsbCkge1xuICAgICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuQmF0Y2hBbGwpIHtcbiAgICAgICAgdGhpcy5hdG9taWModHJ1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIEJhdGNoQXJncztcbiAgICAgIGlmICghdHhNZXRob2QuY2FsbHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdmYWlsZWQgdG8gZGVjb2RlIGNhbGxzIGZyb20gYmF0Y2ggdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhbGxzVG9CYXRjaDogc3RyaW5nW10gPSBbXTtcbiAgICAgIHR4TWV0aG9kLmNhbGxzLmZvckVhY2goKGNhbGwpID0+IHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gKGNhbGwgYXMgQmF0Y2hDYWxsT2JqZWN0KS5jYWxsSW5kZXg7XG4gICAgICAgIGNvbnN0IGRlY29kZWRNZXRob2QgPSB0b1VpbnQ4QXJyYXkodXRpbHMuc3RyaXBIZXhQcmVmaXgobWV0aG9kKSk7XG4gICAgICAgIGNvbnN0IGRlY29kZWRDYWxsID0gdGhpcy5fcmVnaXN0cnkuZmluZE1ldGFDYWxsKGRlY29kZWRNZXRob2QpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZGVjb2RlZENhbGwuc2VjdGlvbiA9PT0gU2VjdGlvbk5hbWVzLlByb3h5ICYmXG4gICAgICAgICAgKGRlY29kZWRDYWxsLm1ldGhvZCA9PT0gTWV0aG9kTmFtZXMuQW5vbnltb3VzIHx8IGRlY29kZWRDYWxsLm1ldGhvZCA9PT0gTWV0aG9kTmFtZXMuUHVyZVByb3h5KVxuICAgICAgICApIHtcbiAgICAgICAgICBjYWxsc1RvQmF0Y2gucHVzaCh0aGlzLmdldFB1cmVQcm94eUNhbGwoY2FsbC5hcmdzIGFzIEFkZEFub255bW91c1Byb3h5QmF0Y2hDYWxsQXJncykpO1xuICAgICAgICB9IGVsc2UgaWYgKGRlY29kZWRDYWxsLnNlY3Rpb24gPT09IFNlY3Rpb25OYW1lcy5Qcm94eSAmJiBkZWNvZGVkQ2FsbC5tZXRob2QgPT09IE1ldGhvZE5hbWVzLkFkZFByb3h5KSB7XG4gICAgICAgICAgY2FsbHNUb0JhdGNoLnB1c2godGhpcy5nZXRBZGRQcm94eUNhbGwoY2FsbC5hcmdzIGFzIEFkZFByb3h5QmF0Y2hDYWxsQXJncykpO1xuICAgICAgICB9IGVsc2UgaWYgKGRlY29kZWRDYWxsLnNlY3Rpb24gPT09IFNlY3Rpb25OYW1lcy5TdGFraW5nICYmIGRlY29kZWRDYWxsLm1ldGhvZCA9PT0gTWV0aG9kTmFtZXMuQm9uZEV4dHJhKSB7XG4gICAgICAgICAgY2FsbHNUb0JhdGNoLnB1c2godGhpcy5nZXRCb25kRXh0cmFDYWxsKGNhbGwuYXJncyBhcyBTdGFrZU1vcmVDYWxsQXJncykpO1xuICAgICAgICB9IGVsc2UgaWYgKGRlY29kZWRDYWxsLnNlY3Rpb24gPT09IFNlY3Rpb25OYW1lcy5TdGFraW5nICYmIGRlY29kZWRDYWxsLm1ldGhvZCA9PT0gTWV0aG9kTmFtZXMuQm9uZCkge1xuICAgICAgICAgIGNhbGxzVG9CYXRjaC5wdXNoKHRoaXMuZ2V0Qm9uZENhbGwoY2FsbC5hcmdzIGFzIFN0YWtlQmF0Y2hDYWxsQXJncykpO1xuICAgICAgICB9IGVsc2UgaWYgKGRlY29kZWRDYWxsLnNlY3Rpb24gPT09IFNlY3Rpb25OYW1lcy5TdGFraW5nICYmIGRlY29kZWRDYWxsLm1ldGhvZCA9PT0gTWV0aG9kTmFtZXMuVW5ib25kKSB7XG4gICAgICAgICAgY2FsbHNUb0JhdGNoLnB1c2godGhpcy5nZXRVbmJvbmRDYWxsKGNhbGwuYXJncyBhcyBVbmJvbmRDYWxsQXJncykpO1xuICAgICAgICB9IGVsc2UgaWYgKGRlY29kZWRDYWxsLnNlY3Rpb24gPT09IFNlY3Rpb25OYW1lcy5TdGFraW5nICYmIGRlY29kZWRDYWxsLm1ldGhvZCA9PT0gTWV0aG9kTmFtZXMuQ2hpbGwpIHtcbiAgICAgICAgICBjYWxsc1RvQmF0Y2gucHVzaCh0aGlzLmdldENoaWxsQ2FsbCgpKTtcbiAgICAgICAgfSBlbHNlIGlmIChkZWNvZGVkQ2FsbC5zZWN0aW9uID09PSBTZWN0aW9uTmFtZXMuUHJveHkgJiYgZGVjb2RlZENhbGwubWV0aG9kID09PSBNZXRob2ROYW1lcy5SZW1vdmVQcm94eSkge1xuICAgICAgICAgIGNhbGxzVG9CYXRjaC5wdXNoKHRoaXMuZ2V0UmVtb3ZlUHJveHlDYWxsKGNhbGwuYXJncyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcihgYmF0Y2hpbmcgb2YgdHJhbnNhY3Rpb24gd2l0aCBpbmRleCAke21ldGhvZH0gdW5zdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNhbGxzKGNhbGxzVG9CYXRjaCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCAke01ldGhvZE5hbWVzLkJhdGNofWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgbGlzdCBvZiB1bnNpZ25lZCB0cmFuc2FjdGlvbnMgYWRkZWQgdG8gYmF0Y2hcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gY2FsbHNcbiAgICpcbiAgICovXG4gIHZhbGlkYXRlQ2FsbHMoY2FsbHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY2FsbHMuZm9yRWFjaCgoY2FsbCkgPT4ge1xuICAgICAgaWYgKGNhbGwuc2xpY2UoMCwgMikgIT09ICcweCcpIHtcbiAgICAgICAgLy8gZXhhbXBsZTogJzB4MTYwNDAwMDAwMDAwMDAwMDAwJ1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdjYWxsIGluIHN0cmluZyBmb3JtYXQgbXVzdCBiZSBoZXggZm9ybWF0IG9mIGEgbWV0aG9kIGFuZCBpdHMgYXJndW1lbnRzJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSB0aGlzLnZhbGlkYXRlQmF0Y2hUcmFuc2FjdGlvbkZpZWxkcyh0aGlzLl9jYWxscyk7XG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEFkZHJlc3NJbml0aWFsaXphdGlvbiBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQmF0Y2hUcmFuc2FjdGlvbkZpZWxkcyhjYWxsczogKHN0cmluZyB8IEJhdGNoQ2FsbE9iamVjdClbXSk6IFZhbGlkYXRpb25SZXN1bHQge1xuICAgIHJldHVybiBCYXRjaFRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGNhbGxzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQdXJlUHJveHlDYWxsKGFyZ3M6IEFkZEFub255bW91c1Byb3h5QmF0Y2hDYWxsQXJncyk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGNvbnN0IHVuc2lnbmVkID0gdXRpbHMucHVyZVByb3h5KFxuICAgICAge1xuICAgICAgICBwcm94eVR5cGU6IGFyZ3MucHJveHlfdHlwZSxcbiAgICAgICAgaW5kZXg6IGFyZ3MuaW5kZXgsXG4gICAgICAgIGRlbGF5OiBhcmdzLmRlbGF5LFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gICAgcmV0dXJuIHVuc2lnbmVkLm1ldGhvZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Qm9uZENhbGwoYXJnczogU3Rha2VCYXRjaENhbGxBcmdzKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgY29uc3QgdW5zaWduZWQgPSBtZXRob2RzLnN0YWtpbmcuYm9uZChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGFyZ3MudmFsdWUsXG4gICAgICAgIHBheWVlOiB0aGlzLmdldFBheWVlKGFyZ3MucGF5ZWUpLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gICAgcmV0dXJuIHVuc2lnbmVkLm1ldGhvZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5ib25kQ2FsbChhcmdzOiBVbmJvbmRDYWxsQXJncyk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGNvbnN0IHVuc2lnbmVkID0gbWV0aG9kcy5zdGFraW5nLnVuYm9uZChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGFyZ3MudmFsdWUsXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgICByZXR1cm4gdW5zaWduZWQubWV0aG9kO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXllZShwYXllZTogU3Rha2VCYXRjaENhbGxQYXllZSk6IFN0YWtlQXJnc1BheWVlIHtcbiAgICBpZiAoaXNTdGFrZUJhdGNoQ2FsbFBheWVlU3Rhc2gocGF5ZWUpKSB7XG4gICAgICByZXR1cm4gJ1N0YXNoJztcbiAgICB9IGVsc2UgaWYgKGlzU3Rha2VCYXRjaENhbGxQYXllZUNvbnRyb2xsZXIocGF5ZWUpKSB7XG4gICAgICByZXR1cm4gJ0NvbnRyb2xsZXInO1xuICAgIH0gZWxzZSBpZiAoaXNTdGFrZUJhdGNoQ2FsbFBheWVlQWNjb3VudChwYXllZSkpIHtcbiAgICAgIHJldHVybiB7IEFjY291bnQ6IHBheWVlLmFjY291bnQgfTtcbiAgICB9IGVsc2UgaWYgKGlzU3Rha2VCYXRjaENhbGxQYXllZVN0YWtlZChwYXllZSkpIHtcbiAgICAgIHJldHVybiAnU3Rha2VkJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBheWVlOiAke3BheWVlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWRkUHJveHlDYWxsKGFyZ3M6IEFkZFByb3h5QmF0Y2hDYWxsQXJncyk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGNvbnN0IHVuc2lnbmVkID0gbWV0aG9kcy5wcm94eS5hZGRQcm94eShcbiAgICAgIHtcbiAgICAgICAgZGVsZWdhdGU6IGdldERlbGVnYXRlQWRkcmVzcyhhcmdzKSxcbiAgICAgICAgcHJveHlUeXBlOiBhcmdzLnByb3h5X3R5cGUsXG4gICAgICAgIGRlbGF5OiBhcmdzLmRlbGF5LFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gICAgcmV0dXJuIHVuc2lnbmVkLm1ldGhvZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Qm9uZEV4dHJhQ2FsbChhcmdzOiBTdGFrZU1vcmVDYWxsQXJncyk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGNvbnN0IHVuc2lnbmVkID0gbWV0aG9kcy5zdGFraW5nLmJvbmRFeHRyYShcbiAgICAgIHtcbiAgICAgICAgbWF4QWRkaXRpb25hbDogYXJncy5tYXhfYWRkaXRpb25hbCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICAgIHJldHVybiB1bnNpZ25lZC5tZXRob2Q7XG4gIH1cblxuICBwcml2YXRlIGdldFJlbW92ZVByb3h5Q2FsbChhcmdzOiBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBjb25zdCB1bnNpZ25lZCA9IG1ldGhvZHMucHJveHkucmVtb3ZlUHJveHkoXG4gICAgICB7XG4gICAgICAgIGRlbGVnYXRlOiBnZXREZWxlZ2F0ZUFkZHJlc3MoYXJncyksXG4gICAgICAgIHByb3h5VHlwZTogYXJncy5wcm94eV90eXBlLFxuICAgICAgICBkZWxheTogYXJncy5kZWxheSxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICAgIHJldHVybiB1bnNpZ25lZC5tZXRob2Q7XG4gIH1cblxuICBwcml2YXRlIGdldENoaWxsQ2FsbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBjb25zdCB1bnNpZ25lZCA9IG1ldGhvZHMuc3Rha2luZy5jaGlsbCh7fSwgYmFzZVR4SW5mby5iYXNlVHhJbmZvLCBiYXNlVHhJbmZvLm9wdGlvbnMpO1xuICAgIHJldHVybiB1bnNpZ25lZC5tZXRob2Q7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { BaseAddress, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
6
|
+
export declare class ClaimBuilder extends TransactionBuilder {
|
|
7
|
+
protected _validatorStash: string;
|
|
8
|
+
protected _claimEra: string;
|
|
9
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* Pay out all the stakers behind a single validator for a single era.
|
|
13
|
+
* Any account can create this transaction.
|
|
14
|
+
*
|
|
15
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
16
|
+
*
|
|
17
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#payoutstakersvalidator_stash-accountid32-era-u32
|
|
18
|
+
*/
|
|
19
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
20
|
+
/**
|
|
21
|
+
* Get the transaction type.
|
|
22
|
+
*/
|
|
23
|
+
protected get transactionType(): TransactionType;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* The stash account of the validator.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} validatorStash
|
|
29
|
+
* @returns {ClaimBuilder} This claim builder.
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
validatorStash(validatorStash: BaseAddress): this;
|
|
33
|
+
/**
|
|
34
|
+
* The era to claim.
|
|
35
|
+
*
|
|
36
|
+
* @param {string} claimEra
|
|
37
|
+
* @returns {ClaimBuilder} This claim builder.
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
claimEra(claimEra: string): this;
|
|
41
|
+
/** @inheritdoc */
|
|
42
|
+
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
|
|
43
|
+
/** @inheritdoc */
|
|
44
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
45
|
+
/** @inheritdoc */
|
|
46
|
+
validateTransaction(_: Transaction): void;
|
|
47
|
+
/**
|
|
48
|
+
*
|
|
49
|
+
* The stash account of the validator.
|
|
50
|
+
*
|
|
51
|
+
* @param {string} claimEra
|
|
52
|
+
* @param {string} validatorStash
|
|
53
|
+
* @throws {Error} If the expected fields are not valid.
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
private validateFields;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=claimBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/claimBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIxG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,YAAa,SAAQ,kBAAkB;IAClD,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEhB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD;;OAEG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,WAAW,GAAG,IAAI;IAMjD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMhC,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAYrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAiBjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;CAYvB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
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.ClaimBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
+
const iface_1 = require("./iface");
|
|
11
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
12
|
+
const txnSchema_1 = require("./txnSchema");
|
|
13
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
14
|
+
class ClaimBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
15
|
+
constructor(_coinConfig) {
|
|
16
|
+
super(_coinConfig);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* Pay out all the stakers behind a single validator for a single era.
|
|
21
|
+
* Any account can create this transaction.
|
|
22
|
+
*
|
|
23
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
24
|
+
*
|
|
25
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#payoutstakersvalidator_stash-accountid32-era-u32
|
|
26
|
+
*/
|
|
27
|
+
buildTransaction() {
|
|
28
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
29
|
+
return txwrapper_polkadot_1.methods.staking.payoutStakers({
|
|
30
|
+
validatorStash: this._validatorStash,
|
|
31
|
+
era: this._claimEra,
|
|
32
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get the transaction type.
|
|
36
|
+
*/
|
|
37
|
+
get transactionType() {
|
|
38
|
+
return sdk_core_1.TransactionType.StakingClaim;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* The stash account of the validator.
|
|
43
|
+
*
|
|
44
|
+
* @param {string} validatorStash
|
|
45
|
+
* @returns {ClaimBuilder} This claim builder.
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
validatorStash(validatorStash) {
|
|
49
|
+
this.validateAddress(validatorStash);
|
|
50
|
+
this._validatorStash = validatorStash.address;
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The era to claim.
|
|
55
|
+
*
|
|
56
|
+
* @param {string} claimEra
|
|
57
|
+
* @returns {ClaimBuilder} This claim builder.
|
|
58
|
+
*
|
|
59
|
+
*/
|
|
60
|
+
claimEra(claimEra) {
|
|
61
|
+
this.validateValue(new bignumber_js_1.default(claimEra));
|
|
62
|
+
this._claimEra = claimEra;
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
/** @inheritdoc */
|
|
66
|
+
validateDecodedTransaction(decodedTxn) {
|
|
67
|
+
if (decodedTxn.method?.name === iface_1.MethodNames.PayoutStakers) {
|
|
68
|
+
const txMethod = decodedTxn.method.args;
|
|
69
|
+
const claimEra = txMethod.era;
|
|
70
|
+
const validatorStash = txMethod.validatorStash;
|
|
71
|
+
const validationResult = txnSchema_1.ClaimTransactionSchema.validate({ claimEra, validatorStash });
|
|
72
|
+
if (validationResult.error) {
|
|
73
|
+
throw new sdk_core_1.InvalidTransactionError(`Claim Transaction validation failed: ${validationResult.error.message}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** @inheritdoc */
|
|
78
|
+
fromImplementation(rawTransaction) {
|
|
79
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
80
|
+
if (this._method?.name === iface_1.MethodNames.PayoutStakers) {
|
|
81
|
+
const txMethod = this._method.args;
|
|
82
|
+
this.validatorStash({
|
|
83
|
+
address: utils_1.default.decodeDotAddress(txMethod.validatorStash, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
84
|
+
});
|
|
85
|
+
this.claimEra(txMethod.era);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected payoutStakers`);
|
|
89
|
+
}
|
|
90
|
+
return tx;
|
|
91
|
+
}
|
|
92
|
+
/** @inheritdoc */
|
|
93
|
+
validateTransaction(_) {
|
|
94
|
+
super.validateTransaction(_);
|
|
95
|
+
this.validateFields(this._claimEra, this._validatorStash);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
* The stash account of the validator.
|
|
100
|
+
*
|
|
101
|
+
* @param {string} claimEra
|
|
102
|
+
* @param {string} validatorStash
|
|
103
|
+
* @throws {Error} If the expected fields are not valid.
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
106
|
+
validateFields(claimEra, validatorStash) {
|
|
107
|
+
const validationResult = txnSchema_1.ClaimTransactionSchema.validate({
|
|
108
|
+
claimEra,
|
|
109
|
+
validatorStash,
|
|
110
|
+
});
|
|
111
|
+
if (validationResult.error) {
|
|
112
|
+
throw new sdk_core_1.InvalidTransactionError(`Claim Builder Transaction validation failed: ${validationResult.error.message}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.ClaimBuilder = ClaimBuilder;
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGFpbUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTRHO0FBRzVHLHNFQUF3RDtBQUN4RCxnRUFBcUM7QUFDckMsbUNBQWlEO0FBRWpELDZEQUEwRDtBQUMxRCwyQ0FBcUQ7QUFDckQsb0RBQTRCO0FBRTVCLE1BQWEsWUFBYSxTQUFRLHVDQUFrQjtJQUlsRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQ2xDO1lBQ0UsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3BDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNwQixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxjQUEyQjtRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsUUFBZ0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMEJBQTBCLENBQUMsVUFBbUQ7UUFDNUUsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxtQkFBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBNEIsQ0FBQztZQUNoRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQzlCLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxrQ0FBc0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUN2RixJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMsd0NBQXdDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzlHLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLG1CQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFpQixDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQ2xCLE9BQU8sRUFBRSxlQUFLLENBQUMsZ0JBQWdCLENBQzdCLFFBQVEsQ0FBQyxjQUFjLEVBQ3ZCLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQXFCLENBQUMsQ0FDL0Q7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLDBCQUEwQixDQUFDLENBQUM7UUFDL0csQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxDQUFjO1FBQ2hDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLGNBQWMsQ0FBQyxRQUFnQixFQUFFLGNBQXNCO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsa0NBQXNCLENBQUMsUUFBUSxDQUFDO1lBQ3ZELFFBQVE7WUFDUixjQUFjO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksa0NBQXVCLENBQy9CLGdEQUFnRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ2pGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBekhELG9DQXlIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBEb3RBc3NldFR5cGVzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IG1ldGhvZHMgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBDbGFpbUFyZ3MsIE1ldGhvZE5hbWVzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQ2xhaW1UcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIENsYWltQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdmFsaWRhdG9yU3Rhc2g6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9jbGFpbUVyYTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBQYXkgb3V0IGFsbCB0aGUgc3Rha2VycyBiZWhpbmQgYSBzaW5nbGUgdmFsaWRhdG9yIGZvciBhIHNpbmdsZSBlcmEuXG4gICAqIEFueSBhY2NvdW50IGNhbiBjcmVhdGUgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIERvdCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3BheW91dHN0YWtlcnN2YWxpZGF0b3Jfc3Rhc2gtYWNjb3VudGlkMzItZXJhLXUzMlxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIHJldHVybiBtZXRob2RzLnN0YWtpbmcucGF5b3V0U3Rha2VycyhcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdG9yU3Rhc2g6IHRoaXMuX3ZhbGlkYXRvclN0YXNoLFxuICAgICAgICBlcmE6IHRoaXMuX2NsYWltRXJhLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgc3Rhc2ggYWNjb3VudCBvZiB0aGUgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsaWRhdG9yU3Rhc2hcbiAgICogQHJldHVybnMge0NsYWltQnVpbGRlcn0gVGhpcyBjbGFpbSBidWlsZGVyLlxuICAgKlxuICAgKi9cbiAgdmFsaWRhdG9yU3Rhc2godmFsaWRhdG9yU3Rhc2g6IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3ModmFsaWRhdG9yU3Rhc2gpO1xuICAgIHRoaXMuX3ZhbGlkYXRvclN0YXNoID0gdmFsaWRhdG9yU3Rhc2guYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZXJhIHRvIGNsYWltLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhaW1FcmFcbiAgICogQHJldHVybnMge0NsYWltQnVpbGRlcn0gVGhpcyBjbGFpbSBidWlsZGVyLlxuICAgKlxuICAgKi9cbiAgY2xhaW1FcmEoY2xhaW1FcmE6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGNsYWltRXJhKSk7XG4gICAgdGhpcy5fY2xhaW1FcmEgPSBjbGFpbUVyYTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiB2b2lkIHtcbiAgICBpZiAoZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlBheW91dFN0YWtlcnMpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIENsYWltQXJncztcbiAgICAgIGNvbnN0IGNsYWltRXJhID0gdHhNZXRob2QuZXJhO1xuICAgICAgY29uc3QgdmFsaWRhdG9yU3Rhc2ggPSB0eE1ldGhvZC52YWxpZGF0b3JTdGFzaDtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBDbGFpbVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgY2xhaW1FcmEsIHZhbGlkYXRvclN0YXNoIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBDbGFpbSBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuUGF5b3V0U3Rha2Vycykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBDbGFpbUFyZ3M7XG4gICAgICB0aGlzLnZhbGlkYXRvclN0YXNoKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhcbiAgICAgICAgICB0eE1ldGhvZC52YWxpZGF0b3JTdGFzaCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmNsYWltRXJhKHR4TWV0aG9kLmVyYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIHBheW91dFN0YWtlcnNgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHModGhpcy5fY2xhaW1FcmEsIHRoaXMuX3ZhbGlkYXRvclN0YXNoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgc3Rhc2ggYWNjb3VudCBvZiB0aGUgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhaW1FcmFcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbGlkYXRvclN0YXNoXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZXhwZWN0ZWQgZmllbGRzIGFyZSBub3QgdmFsaWQuXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKGNsYWltRXJhOiBzdHJpbmcsIHZhbGlkYXRvclN0YXNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gQ2xhaW1UcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICBjbGFpbUVyYSxcbiAgICAgIHZhbGlkYXRvclN0YXNoLFxuICAgIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYENsYWltIEJ1aWxkZXIgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BuildTransactionError } from '@bitgo-beta/sdk-core';
|
|
2
|
+
export declare class AddressValidationError extends BuildTransactionError {
|
|
3
|
+
constructor(malformedAddress: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class InvalidFeeError extends BuildTransactionError {
|
|
6
|
+
constructor(type?: string, expectedType?: string);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qBAAa,sBAAuB,SAAQ,qBAAqB;gBACnD,gBAAgB,EAAE,MAAM;CAIrC;AAED,qBAAa,eAAgB,SAAQ,qBAAqB;gBAC5C,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAIjD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidFeeError = exports.AddressValidationError = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
class AddressValidationError extends sdk_core_1.BuildTransactionError {
|
|
6
|
+
constructor(malformedAddress) {
|
|
7
|
+
super(`The address '${malformedAddress}' is not a well-formed dot address`);
|
|
8
|
+
this.name = AddressValidationError.name;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.AddressValidationError = AddressValidationError;
|
|
12
|
+
class InvalidFeeError extends sdk_core_1.BuildTransactionError {
|
|
13
|
+
constructor(type, expectedType) {
|
|
14
|
+
super(`The specified type: "${type}" is not valid. Please provide the type: "${expectedType}"`);
|
|
15
|
+
this.name = InvalidFeeError.name;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.InvalidFeeError = InvalidFeeError;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTZEO0FBRTdELE1BQWEsc0JBQXVCLFNBQVEsZ0NBQXFCO0lBQy9ELFlBQVksZ0JBQXdCO1FBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsZ0JBQWdCLG9DQUFvQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBTEQsd0RBS0M7QUFFRCxNQUFhLGVBQWdCLFNBQVEsZ0NBQXFCO0lBQ3hELFlBQVksSUFBYSxFQUFFLFlBQXFCO1FBQzlDLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSw2Q0FBNkMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBTEQsMENBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgQnVpbGRUcmFuc2FjdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IobWFsZm9ybWVkQWRkcmVzczogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRoZSBhZGRyZXNzICcke21hbGZvcm1lZEFkZHJlc3N9JyBpcyBub3QgYSB3ZWxsLWZvcm1lZCBkb3QgYWRkcmVzc2ApO1xuICAgIHRoaXMubmFtZSA9IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IubmFtZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZEZlZUVycm9yIGV4dGVuZHMgQnVpbGRUcmFuc2FjdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IodHlwZT86IHN0cmluZywgZXhwZWN0ZWRUeXBlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRoZSBzcGVjaWZpZWQgdHlwZTogXCIke3R5cGV9XCIgaXMgbm90IHZhbGlkLiBQbGVhc2UgcHJvdmlkZSB0aGUgdHlwZTogXCIke2V4cGVjdGVkVHlwZX1cImApO1xuICAgIHRoaXMubmFtZSA9IEludmFsaWRGZWVFcnJvci5uYW1lO1xuICB9XG59XG4iXX0=
|