@bitgo/account-lib 2.17.2-rc.1 → 2.17.2-rc.2
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/browser/bitgo-account-lib.min.js +1 -1
- package/dist/package.json +7 -3
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilder.js +1 -1
- package/dist/src/coin/cspr/utils.js +2 -2
- package/dist/src/coin/dot/errors.d.ts +3 -0
- package/dist/src/coin/dot/errors.d.ts.map +1 -1
- package/dist/src/coin/dot/errors.js +12 -2
- package/dist/src/coin/dot/iface.d.ts +1 -1
- package/dist/src/coin/dot/iface.d.ts.map +1 -1
- package/dist/src/coin/dot/iface.js +1 -1
- package/dist/src/coin/dot/index.d.ts +5 -0
- package/dist/src/coin/dot/index.d.ts.map +1 -1
- package/dist/src/coin/dot/index.js +12 -2
- package/dist/src/coin/dot/keyPair.d.ts +15 -2
- package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
- package/dist/src/coin/dot/keyPair.js +41 -6
- package/dist/src/coin/dot/transaction.d.ts +31 -3
- package/dist/src/coin/dot/transaction.d.ts.map +1 -1
- package/dist/src/coin/dot/transaction.js +269 -7
- package/dist/src/coin/dot/transactionBuilder.d.ts +102 -9
- package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilder.js +309 -15
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts +13 -16
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilderFactory.js +60 -25
- package/dist/src/coin/dot/transferBuilder.d.ts +62 -4
- package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transferBuilder.js +161 -44
- package/dist/src/coin/dot/utils.d.ts +69 -0
- package/dist/src/coin/dot/utils.d.ts.map +1 -1
- package/dist/src/coin/dot/utils.js +144 -4
- package/dist/src/coin/dot/walletInitializationBuilder.d.ts +51 -5
- package/dist/src/coin/dot/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/walletInitializationBuilder.js +112 -44
- package/dist/src/coin/sol/constants.d.ts +24 -0
- package/dist/src/coin/sol/constants.d.ts.map +1 -0
- package/dist/src/coin/sol/constants.js +35 -0
- package/dist/src/coin/sol/iface.d.ts +46 -0
- package/dist/src/coin/sol/iface.d.ts.map +1 -1
- package/dist/src/coin/sol/iface.js +3 -1
- package/dist/src/coin/sol/instructionParamsFactory.d.ts +12 -0
- package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -0
- package/dist/src/coin/sol/instructionParamsFactory.js +99 -0
- package/dist/src/coin/sol/keyPair.d.ts +32 -6
- package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
- package/dist/src/coin/sol/keyPair.js +107 -29
- package/dist/src/coin/sol/solInstructionFactory.d.ts +10 -0
- package/dist/src/coin/sol/solInstructionFactory.d.ts.map +1 -0
- package/dist/src/coin/sol/solInstructionFactory.js +102 -0
- package/dist/src/coin/sol/transaction.d.ts +29 -17
- package/dist/src/coin/sol/transaction.d.ts.map +1 -1
- package/dist/src/coin/sol/transaction.js +202 -20
- package/dist/src/coin/sol/transactionBuilder.d.ts +61 -3
- package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilder.js +210 -10
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts +13 -3
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.js +36 -6
- package/dist/src/coin/sol/transferBuilder.d.ts +15 -8
- package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transferBuilder.js +62 -15
- package/dist/src/coin/sol/utils.d.ts +84 -2
- package/dist/src/coin/sol/utils.d.ts.map +1 -1
- package/dist/src/coin/sol/utils.js +162 -6
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts +15 -8
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/walletInitializationBuilder.js +61 -13
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -2
- package/dist/src/utils/crypto.d.ts +8 -0
- package/dist/src/utils/crypto.d.ts.map +1 -1
- package/dist/src/utils/crypto.js +13 -2
- package/package.json +7 -3
- package/resources/dot/index.ts +2 -0
- package/resources/dot/mainnet.ts +2 -0
- package/resources/dot/westend.ts +2 -0
|
@@ -1,14 +1,72 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
-
import { BaseKey } from '../baseCoin/iface';
|
|
3
2
|
import { TransactionBuilder } from './transactionBuilder';
|
|
4
3
|
import { Transaction } from './transaction';
|
|
4
|
+
import { UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
5
|
+
import { TransactionType } from '../baseCoin';
|
|
6
|
+
import { proxyType } from './iface';
|
|
7
|
+
import { BaseAddress } from '../baseCoin/iface';
|
|
5
8
|
export declare class TransferBuilder extends TransactionBuilder {
|
|
9
|
+
protected _amount: string;
|
|
10
|
+
protected _to: string;
|
|
11
|
+
protected _owner: string;
|
|
12
|
+
protected _forceProxyType: proxyType;
|
|
6
13
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
17
|
+
*
|
|
18
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
19
|
+
*
|
|
20
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
21
|
+
*/
|
|
22
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
23
|
+
protected get transactionType(): TransactionType;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* The amount for transfer transaction.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} amount
|
|
29
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
30
|
+
*
|
|
31
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
32
|
+
*/
|
|
33
|
+
amount(amount: string): this;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* The destination address for transfer transaction.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} dest
|
|
39
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
40
|
+
*
|
|
41
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
42
|
+
*/
|
|
43
|
+
to({ address }: BaseAddress): this;
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* The real address of the original tx
|
|
47
|
+
*
|
|
48
|
+
* @param {BaseAddress} real
|
|
49
|
+
* @returns {TransferBuilder} This builder.
|
|
50
|
+
*
|
|
51
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
52
|
+
*/
|
|
53
|
+
owner(owner: BaseAddress): this;
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* The proxy type to execute
|
|
57
|
+
*
|
|
58
|
+
* @param {proxyType} forceProxyType
|
|
59
|
+
* @returns {TransferBuilder} This builder.
|
|
60
|
+
*
|
|
61
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
62
|
+
*/
|
|
63
|
+
forceProxyType(forceProxyType: proxyType): this;
|
|
7
64
|
/** @inheritdoc */
|
|
8
|
-
|
|
65
|
+
validateRawTransaction(rawTransaction: string): void;
|
|
9
66
|
/** @inheritdoc */
|
|
10
|
-
protected fromImplementation(rawTransaction:
|
|
67
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
11
68
|
/** @inheritdoc */
|
|
12
|
-
|
|
69
|
+
validateTransaction(_: Transaction): void;
|
|
70
|
+
private validateFields;
|
|
13
71
|
}
|
|
14
72
|
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAA0B,SAAS,EAAgB,MAAM,SAAS,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAwBjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;;;;;OAQG;IACH,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,IAAI;IAMlC;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B;;;;;;;;OAQG;IACH,cAAc,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI;IAK/C,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IA+BpD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IA6BjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAWvB"}
|
|
@@ -14,68 +14,185 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
52
19
|
};
|
|
53
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
21
|
exports.TransferBuilder = void 0;
|
|
22
|
+
var txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
23
|
+
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
55
24
|
var errors_1 = require("../baseCoin/errors");
|
|
56
25
|
var transactionBuilder_1 = require("./transactionBuilder");
|
|
26
|
+
var baseCoin_1 = require("../baseCoin");
|
|
27
|
+
var iface_1 = require("./iface");
|
|
28
|
+
var txnSchema_1 = require("./txnSchema");
|
|
29
|
+
var utils_1 = __importDefault(require("./utils"));
|
|
57
30
|
var TransferBuilder = /** @class */ (function (_super) {
|
|
58
31
|
__extends(TransferBuilder, _super);
|
|
59
32
|
function TransferBuilder(_coinConfig) {
|
|
60
33
|
return _super.call(this, _coinConfig) || this;
|
|
61
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
38
|
+
*
|
|
39
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
40
|
+
*
|
|
41
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
42
|
+
*/
|
|
43
|
+
TransferBuilder.prototype.buildTransaction = function () {
|
|
44
|
+
var baseTxInfo = this.createBaseTxInfo();
|
|
45
|
+
var transferTx = txwrapper_polkadot_1.methods.balances.transferKeepAlive({
|
|
46
|
+
value: this._amount,
|
|
47
|
+
dest: this._to,
|
|
48
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
49
|
+
if (!this._owner) {
|
|
50
|
+
return transferTx;
|
|
51
|
+
}
|
|
52
|
+
return txwrapper_polkadot_1.methods.proxy.proxy({
|
|
53
|
+
real: this._owner,
|
|
54
|
+
forceProxyType: this._forceProxyType,
|
|
55
|
+
call: transferTx.method,
|
|
56
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
57
|
+
};
|
|
58
|
+
Object.defineProperty(TransferBuilder.prototype, "transactionType", {
|
|
59
|
+
get: function () {
|
|
60
|
+
return baseCoin_1.TransactionType.Send;
|
|
61
|
+
},
|
|
62
|
+
enumerable: false,
|
|
63
|
+
configurable: true
|
|
64
|
+
});
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* The amount for transfer transaction.
|
|
68
|
+
*
|
|
69
|
+
* @param {string} amount
|
|
70
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
71
|
+
*
|
|
72
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
73
|
+
*/
|
|
74
|
+
TransferBuilder.prototype.amount = function (amount) {
|
|
75
|
+
this.validateValue(new bignumber_js_1.default(amount));
|
|
76
|
+
this._amount = amount;
|
|
77
|
+
return this;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
*
|
|
81
|
+
* The destination address for transfer transaction.
|
|
82
|
+
*
|
|
83
|
+
* @param {string} dest
|
|
84
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
85
|
+
*
|
|
86
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
87
|
+
*/
|
|
88
|
+
TransferBuilder.prototype.to = function (_a) {
|
|
89
|
+
var address = _a.address;
|
|
90
|
+
this.validateAddress({ address: address });
|
|
91
|
+
this._to = address;
|
|
92
|
+
return this;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
* The real address of the original tx
|
|
97
|
+
*
|
|
98
|
+
* @param {BaseAddress} real
|
|
99
|
+
* @returns {TransferBuilder} This builder.
|
|
100
|
+
*
|
|
101
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
102
|
+
*/
|
|
103
|
+
TransferBuilder.prototype.owner = function (owner) {
|
|
104
|
+
this.validateAddress({ address: owner.address });
|
|
105
|
+
this._owner = owner.address;
|
|
106
|
+
return this;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
*
|
|
110
|
+
* The proxy type to execute
|
|
111
|
+
*
|
|
112
|
+
* @param {proxyType} forceProxyType
|
|
113
|
+
* @returns {TransferBuilder} This builder.
|
|
114
|
+
*
|
|
115
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
116
|
+
*/
|
|
117
|
+
TransferBuilder.prototype.forceProxyType = function (forceProxyType) {
|
|
118
|
+
this._forceProxyType = forceProxyType;
|
|
119
|
+
return this;
|
|
120
|
+
};
|
|
62
121
|
/** @inheritdoc */
|
|
63
|
-
TransferBuilder.prototype.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
122
|
+
TransferBuilder.prototype.validateRawTransaction = function (rawTransaction) {
|
|
123
|
+
var _a, _b;
|
|
124
|
+
_super.prototype.validateRawTransaction.call(this, rawTransaction);
|
|
125
|
+
var decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
|
|
126
|
+
metadataRpc: this._metadataRpc,
|
|
127
|
+
registry: this._registry,
|
|
68
128
|
});
|
|
129
|
+
if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
|
|
130
|
+
var txMethod = decodedTxn.method.args;
|
|
131
|
+
var amount = "" + txMethod.value;
|
|
132
|
+
var to = txMethod.dest.id;
|
|
133
|
+
var validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount: amount, to: to });
|
|
134
|
+
if (validationResult.error) {
|
|
135
|
+
throw new errors_1.InvalidTransactionError("Transfer Transaction validation failed: " + validationResult.error.message);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (((_b = decodedTxn.method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.Proxy) {
|
|
139
|
+
var txMethod = decodedTxn.method.args;
|
|
140
|
+
var real = txMethod.real;
|
|
141
|
+
var forceProxyType = txMethod.forceProxyType;
|
|
142
|
+
var decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
143
|
+
registry: this._registry,
|
|
144
|
+
metadataRpc: this._metadataRpc,
|
|
145
|
+
});
|
|
146
|
+
var amount = "" + decodedCall.value;
|
|
147
|
+
var to = decodedCall.dest.id;
|
|
148
|
+
var validationResult = txnSchema_1.ProxyTransactionSchema.validate({ real: real, forceProxyType: forceProxyType, amount: amount, to: to });
|
|
149
|
+
if (validationResult.error) {
|
|
150
|
+
throw new errors_1.InvalidTransactionError("Proxy Transaction validation failed: " + validationResult.error.message);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
69
153
|
};
|
|
70
154
|
/** @inheritdoc */
|
|
71
155
|
TransferBuilder.prototype.fromImplementation = function (rawTransaction) {
|
|
72
|
-
|
|
156
|
+
var _a, _b, _c, _d;
|
|
157
|
+
var tx = _super.prototype.fromImplementation.call(this, rawTransaction);
|
|
158
|
+
if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
|
|
159
|
+
var txMethod = this._method.args;
|
|
160
|
+
this.amount(txMethod.value);
|
|
161
|
+
this.to({ address: utils_1.default.decodeDotAddress(txMethod.dest.id) });
|
|
162
|
+
}
|
|
163
|
+
else if (((_b = this._method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.Proxy) {
|
|
164
|
+
var txMethod = this._method.args;
|
|
165
|
+
this.owner({ address: utils_1.default.decodeDotAddress(txMethod.real) });
|
|
166
|
+
this.forceProxyType(txMethod.forceProxyType);
|
|
167
|
+
var decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
168
|
+
registry: this._registry,
|
|
169
|
+
metadataRpc: this._metadataRpc,
|
|
170
|
+
});
|
|
171
|
+
if (!decodedCall.value || !decodedCall.dest) {
|
|
172
|
+
throw new errors_1.InvalidTransactionError("Invalid Proxy Transaction Method: " + ((_c = this._method) === null || _c === void 0 ? void 0 : _c.name) + ". Expected transferKeepAlive");
|
|
173
|
+
}
|
|
174
|
+
this.amount("" + decodedCall.value);
|
|
175
|
+
this.to({ address: utils_1.default.decodeDotAddress(decodedCall.dest.id) });
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
throw new errors_1.InvalidTransactionError("Invalid Transaction Type: " + ((_d = this._method) === null || _d === void 0 ? void 0 : _d.name) + ". Expected a transferKeepAlive or a proxy transferKeepAlive transaction");
|
|
179
|
+
}
|
|
180
|
+
return tx;
|
|
73
181
|
};
|
|
74
182
|
/** @inheritdoc */
|
|
75
|
-
TransferBuilder.prototype.
|
|
76
|
-
|
|
183
|
+
TransferBuilder.prototype.validateTransaction = function (_) {
|
|
184
|
+
_super.prototype.validateTransaction.call(this, _);
|
|
185
|
+
this.validateFields(this._to, this._amount, this._owner, this._forceProxyType);
|
|
186
|
+
};
|
|
187
|
+
TransferBuilder.prototype.validateFields = function (to, amount, real, forceProxyType) {
|
|
188
|
+
var validationResult = forceProxyType
|
|
189
|
+
? txnSchema_1.ProxyTransactionSchema.validate({ to: to, amount: amount, real: real, forceProxyType: forceProxyType })
|
|
190
|
+
: txnSchema_1.TransferTransactionSchema.validate({ amount: amount, to: to });
|
|
191
|
+
if (validationResult.error) {
|
|
192
|
+
throw new errors_1.InvalidTransactionError("Proxy/TransferKeepAlive Transaction validation failed: " + validationResult.error.message);
|
|
193
|
+
}
|
|
77
194
|
};
|
|
78
195
|
return TransferBuilder;
|
|
79
196
|
}(transactionBuilder_1.TransactionBuilder));
|
|
80
197
|
exports.TransferBuilder = TransferBuilder;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSw2Q0FBeUQ7QUFDekQsMkRBQTBEO0FBRzFEO0lBQXFDLG1DQUFrQjtJQUNyRCx5QkFBWSxXQUFpQztlQUMzQyxrQkFBTSxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNGLDZDQUFtQixHQUFuQzs7O2dCQUNFLE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzs7S0FDekQ7SUFFRCxrQkFBa0I7SUFDUiw0Q0FBa0IsR0FBNUIsVUFBNkIsY0FBbUI7UUFDOUMsTUFBTSxJQUFJLDRCQUFtQixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGtCQUFrQjtJQUNSLDRDQUFrQixHQUE1QixVQUE2QixHQUFZO1FBQ3ZDLE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFuQkQsQ0FBcUMsdUNBQWtCLEdBbUJ0RDtBQW5CWSwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5IH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IGFueSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cbn1cbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxvRUFBZ0U7QUFDaEUsOERBQXFDO0FBQ3JDLDZDQUE2RDtBQUM3RCwyREFBMEQ7QUFHMUQsd0NBQThDO0FBQzlDLGlDQUEwRTtBQUMxRSx5Q0FBZ0Y7QUFDaEYsa0RBQTRCO0FBRzVCO0lBQXFDLG1DQUFrQjtJQU1yRCx5QkFBWSxXQUFpQztlQUMzQyxrQkFBTSxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTywwQ0FBZ0IsR0FBMUI7UUFDRSxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxJQUFNLFVBQVUsR0FBRyw0QkFBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDbkQ7WUFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2YsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFDRCxPQUFPLDRCQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDeEI7WUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDakIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3BDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTTtTQUN4QixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQWMsNENBQWU7YUFBN0I7WUFDRSxPQUFPLDBCQUFlLENBQUMsSUFBSSxD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SSxNQUFBLEVBQUUsY0FBYyxnQkFBQSxFQUFFLENBQUM7WUFDdkUsQ0FBQyxDQUFDLHFDQUF5QixDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sUUFBQSxFQUFFLEVBQUUsSUFBQSxFQUFFLENBQUMsQ0FBQztRQUV2RCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUMxQixNQUFNLElBQUksZ0NBQXVCLENBQy9CLDREQUEwRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBUyxDQUMzRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBeExELENBQXFDLHVDQUFrQixHQXdMdEQ7QUF4TFksMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgZGVjb2RlLCBtZXRob2RzIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IE1ldGhvZE5hbWVzLCBQcm94eUFyZ3MsIHByb3h5VHlwZSwgVHJhbnNmZXJBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBQcm94eVRyYW5zYWN0aW9uU2NoZW1hLCBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQmFzZUFkZHJlc3MgfSBmcm9tICcuLi9iYXNlQ29pbi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2Ftb3VudDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3RvOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfb3duZXI6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9mb3JjZVByb3h5VHlwZTogcHJveHlUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBEaXNwYXRjaCB0aGUgZ2l2ZW4gY2FsbCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcmlzZWQgZm9yIHRocm91Z2ggYWRkX3Byb3h5LlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgRG90IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jcHJveHlcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBjb25zdCB0cmFuc2ZlclR4ID0gbWV0aG9kcy5iYWxhbmNlcy50cmFuc2ZlcktlZXBBbGl2ZShcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgZGVzdDogdGhpcy5fdG8sXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zLFxuICAgICk7XG4gICAgaWYgKCF0aGlzLl9vd25lcikge1xuICAgICAgcmV0dXJuIHRyYW5zZmVyVHg7XG4gICAgfVxuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnByb3h5KFxuICAgICAge1xuICAgICAgICByZWFsOiB0aGlzLl9vd25lcixcbiAgICAgICAgZm9yY2VQcm94eVR5cGU6IHRoaXMuX2ZvcmNlUHJveHlUeXBlLFxuICAgICAgICBjYWxsOiB0cmFuc2ZlclR4Lm1ldGhvZCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnMsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBhbW91bnQgZm9yIHRyYW5zZmVyIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50XG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdHJhbnNmZXIgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXByb3RvY29sLWluZm9cbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGFtb3VudCkpO1xuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBmb3IgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0XG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdHJhbnNmZXIgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXByb3RvY29sLWluZm9cbiAgICovXG4gIHRvKHsgYWRkcmVzcyB9OiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLl90byA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIHJlYWwgYWRkcmVzcyBvZiB0aGUgb3JpZ2luYWwgdHhcbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gcmVhbFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3doeS11c2UtYS1wcm94eVxuICAgKi9cbiAgb3duZXIob3duZXI6IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiBvd25lci5hZGRyZXNzIH0pO1xuICAgIHRoaXMuX293bmVyID0gb3duZXIuYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgcHJveHkgdHlwZSB0byBleGVjdXRlXG4gICAqXG4gICAqIEBwYXJhbSB7cHJveHlUeXBlfSBmb3JjZVByb3h5VHlwZVxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gICAqL1xuICBmb3JjZVByb3h5VHlwZShmb3JjZVByb3h5VHlwZTogcHJveHlUeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fZm9yY2VQcm94eVR5cGUgPSBmb3JjZVByb3h5VHlwZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSk7XG4gICAgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5UcmFuc2ZlcktlZXBBbGl2ZSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgVHJhbnNmZXJBcmdzO1xuICAgICAgY29uc3QgYW1vdW50ID0gYCR7dHhNZXRob2QudmFsdWV9YDtcbiAgICAgIGNvbnN0IHRvID0gdHhNZXRob2QuZGVzdC5pZDtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgYW1vdW50LCB0byB9KTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNmZXIgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlByb3h5KSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBQcm94eUFyZ3M7XG4gICAgICBjb25zdCByZWFsID0gdHhNZXRob2QucmVhbDtcbiAgICAgIGNvbnN0IGZvcmNlUHJveHlUeXBlID0gdHhNZXRob2QuZm9yY2VQcm94eVR5cGU7XG4gICAgICBjb25zdCBkZWNvZGVkQ2FsbCA9IHV0aWxzLmRlY29kZUNhbGxNZXRob2QocmF3VHJhbnNhY3Rpb24sIHtcbiAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWV0YWRhdGFScGMsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke2RlY29kZWRDYWxsLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IGRlY29kZWRDYWxsLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gUHJveHlUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHJlYWwsIGZvcmNlUHJveHlUeXBlLCBhbW91bnQsIHRvIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBQcm94eSBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgVHJhbnNmZXJBcmdzO1xuICAgICAgdGhpcy5hbW91bnQodHhNZXRob2QudmFsdWUpO1xuICAgICAgdGhpcy50byh7IGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3ModHhNZXRob2QuZGVzdC5pZCkgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlByb3h5KSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIFByb3h5QXJncztcbiAgICAgIHRoaXMub3duZXIoeyBhZGRyZXNzOiB1dGlscy5kZWNvZGVEb3RBZGRyZXNzKHR4TWV0aG9kLnJlYWwpIH0pO1xuICAgICAgdGhpcy5mb3JjZVByb3h5VHlwZSh0eE1ldGhvZC5mb3JjZVByb3h5VHlwZSk7XG4gICAgICBjb25zdCBkZWNvZGVkQ2FsbCA9IHV0aWxzLmRlY29kZUNhbGxNZXRob2QocmF3VHJhbnNhY3Rpb24sIHtcbiAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWV0YWRhdGFScGMsXG4gICAgICB9KTtcbiAgICAgIGlmICghZGVjb2RlZENhbGwudmFsdWUgfHwgIWRlY29kZWRDYWxsLmRlc3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIFByb3h5IFRyYW5zYWN0aW9uIE1ldGhvZDogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCB0cmFuc2ZlcktlZXBBbGl2ZWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLmFtb3VudChgJHtkZWNvZGVkQ2FsbC52YWx1ZX1gKTtcbiAgICAgIHRoaXMudG8oeyBhZGRyZXNzOiB1dGlscy5kZWNvZGVEb3RBZGRyZXNzKGRlY29kZWRDYWxsLmRlc3QuaWQpIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7dGhpcy5fbWV0aG9kPy5uYW1lfS4gRXhwZWN0ZWQgYSB0cmFuc2ZlcktlZXBBbGl2ZSBvciBhIHByb3h5IHRyYW5zZmVyS2VlcEFsaXZlIHRyYW5zYWN0aW9uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX3RvLCB0aGlzLl9hbW91bnQsIHRoaXMuX293bmVyLCB0aGlzLl9mb3JjZVByb3h5VHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKHRvOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nLCByZWFsPzogc3RyaW5nLCBmb3JjZVByb3h5VHlwZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBmb3JjZVByb3h5VHlwZVxuICAgICAgPyBQcm94eVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdG8sIGFtb3VudCwgcmVhbCwgZm9yY2VQcm94eVR5cGUgfSlcbiAgICAgIDogVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgUHJveHkvVHJhbnNmZXJLZWVwQWxpdmUgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import { KeyringPair } from '@polkadot/keyring/types';
|
|
2
|
+
import { UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
3
|
+
import { TypeRegistry } from '@substrate/txwrapper-core/lib/types';
|
|
4
|
+
import { KeyPair } from '.';
|
|
1
5
|
import { BaseUtils } from '../baseCoin';
|
|
6
|
+
import { Seed } from '../baseCoin/iface';
|
|
7
|
+
import { TransferArgs } from './iface';
|
|
2
8
|
export declare class Utils implements BaseUtils {
|
|
3
9
|
/** @inheritdoc */
|
|
4
10
|
isValidAddress(address: string): boolean;
|
|
@@ -10,7 +16,70 @@ export declare class Utils implements BaseUtils {
|
|
|
10
16
|
isValidPublicKey(key: string): boolean;
|
|
11
17
|
/** @inheritdoc */
|
|
12
18
|
isValidSignature(signature: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Verifies the signature on a given message
|
|
21
|
+
*
|
|
22
|
+
* @param {string} signedMessage the signed message for the signature
|
|
23
|
+
* @param {string} signature the signature to verify
|
|
24
|
+
* @param {string} address the address of the signer
|
|
25
|
+
* @returns {boolean} whether the signature is valid or not
|
|
26
|
+
*/
|
|
27
|
+
verifySignature(signedMessage: string, signature: string, address: string): boolean;
|
|
13
28
|
/** @inheritdoc */
|
|
14
29
|
isValidTransactionId(txId: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* decodeSeed decodes a dot seed
|
|
32
|
+
*
|
|
33
|
+
* @param {string} seed - the seed to be validated.
|
|
34
|
+
* @returns {Seed} - the object Seed
|
|
35
|
+
*/
|
|
36
|
+
decodeSeed(seed: string): Seed;
|
|
37
|
+
/**
|
|
38
|
+
* Helper function to capitalize the first letter of a string
|
|
39
|
+
*
|
|
40
|
+
* @param {string} val
|
|
41
|
+
* @returns {string}
|
|
42
|
+
*/
|
|
43
|
+
capitalizeFirstLetter(val: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Helper function to decode the internal method hex incase of a proxy transaction
|
|
46
|
+
*
|
|
47
|
+
* @param {string | UnsignedTransaction} tx
|
|
48
|
+
* @param { metadataRpc: string; registry: TypeRegistry } options
|
|
49
|
+
* @returns {TransferArgs}
|
|
50
|
+
*/
|
|
51
|
+
decodeCallMethod(tx: string | UnsignedTransaction, options: {
|
|
52
|
+
metadataRpc: string;
|
|
53
|
+
registry: TypeRegistry;
|
|
54
|
+
}): TransferArgs;
|
|
55
|
+
/**
|
|
56
|
+
* keyPairFromSeed generates an object with secretKey and publicKey using the polkadot sdk
|
|
57
|
+
* @param seed 32 bytes long seed
|
|
58
|
+
* @returns KeyPair
|
|
59
|
+
*/
|
|
60
|
+
keyPairFromSeed(seed: Uint8Array): KeyPair;
|
|
61
|
+
/**
|
|
62
|
+
* Signing function. Implement this on the OFFLINE signing device.
|
|
63
|
+
*
|
|
64
|
+
* @param {KeyringPair} pair - The signing pair.
|
|
65
|
+
* @param {string} signingPayload - Payload to sign.
|
|
66
|
+
*/
|
|
67
|
+
createSignedTx(pair: KeyringPair, signingPayload: string, transaction: UnsignedTransaction, options: any): string;
|
|
68
|
+
/**
|
|
69
|
+
* Decodes the dot address from the given format
|
|
70
|
+
*
|
|
71
|
+
* @param address Decodes
|
|
72
|
+
* @returns {string}
|
|
73
|
+
*/
|
|
74
|
+
decodeDotAddress(address: string, ss58Format?: number): string;
|
|
75
|
+
/**
|
|
76
|
+
* Decodes the dot address from the given format
|
|
77
|
+
*
|
|
78
|
+
* @param address Decodes
|
|
79
|
+
* @returns {string}
|
|
80
|
+
*/
|
|
81
|
+
encodeDotAddress(address: string, ss58Format?: number): string;
|
|
15
82
|
}
|
|
83
|
+
declare const utils: Utils;
|
|
84
|
+
export default utils;
|
|
16
85
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAiB,YAAY,EAAE,MAAM,SAAS,CAAC;AAKtD,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;;;;OAOG;IACH,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAOnF,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9B;;;;;OAKG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;;;OAMG;IACH,gBAAgB,CACd,EAAE,EAAE,MAAM,GAAG,mBAAmB,EAChC,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GACvD,YAAY;IAqBf;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAQ1C;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,KAAA,GAAG,MAAM;IAmB5G;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAK9D;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAG/D;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
|
@@ -1,13 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Utils = void 0;
|
|
7
|
+
var keyring_1 = require("@polkadot/keyring");
|
|
8
|
+
var decode_1 = require("@polkadot/keyring/pair/decode");
|
|
9
|
+
var Extrinsic_1 = require("@polkadot/types/extrinsic/v4/Extrinsic");
|
|
10
|
+
var util_1 = require("@polkadot/util");
|
|
11
|
+
var util_crypto_1 = require("@polkadot/util-crypto");
|
|
12
|
+
var crypto_1 = require("../../utils/crypto");
|
|
13
|
+
var txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
14
|
+
var hi_base32_1 = __importDefault(require("hi-base32"));
|
|
15
|
+
var _1 = require(".");
|
|
4
16
|
var errors_1 = require("../baseCoin/errors");
|
|
17
|
+
var polkaUtils = require('@polkadot/util');
|
|
18
|
+
var createTypeUnsafe = require('@polkadot/types').createTypeUnsafe;
|
|
19
|
+
var PROXY_METHOD_ARG = 2;
|
|
5
20
|
var Utils = /** @class */ (function () {
|
|
6
21
|
function Utils() {
|
|
7
22
|
}
|
|
8
23
|
/** @inheritdoc */
|
|
9
24
|
Utils.prototype.isValidAddress = function (address) {
|
|
10
|
-
|
|
25
|
+
try {
|
|
26
|
+
keyring_1.encodeAddress(util_1.isHex(address) ? util_1.hexToU8a(address) : keyring_1.decodeAddress(address));
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
11
32
|
};
|
|
12
33
|
/** @inheritdoc */
|
|
13
34
|
Utils.prototype.isValidBlockId = function (hash) {
|
|
@@ -15,21 +36,140 @@ var Utils = /** @class */ (function () {
|
|
|
15
36
|
};
|
|
16
37
|
/** @inheritdoc */
|
|
17
38
|
Utils.prototype.isValidPrivateKey = function (key) {
|
|
18
|
-
|
|
39
|
+
return crypto_1.isValidEd25519SecretKey(key);
|
|
19
40
|
};
|
|
20
41
|
/** @inheritdoc */
|
|
21
42
|
Utils.prototype.isValidPublicKey = function (key) {
|
|
22
|
-
|
|
43
|
+
return crypto_1.isValidEd25519PublicKey(key);
|
|
23
44
|
};
|
|
24
45
|
/** @inheritdoc */
|
|
25
46
|
Utils.prototype.isValidSignature = function (signature) {
|
|
26
47
|
throw new errors_1.NotImplementedError('method not implemented');
|
|
27
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* Verifies the signature on a given message
|
|
51
|
+
*
|
|
52
|
+
* @param {string} signedMessage the signed message for the signature
|
|
53
|
+
* @param {string} signature the signature to verify
|
|
54
|
+
* @param {string} address the address of the signer
|
|
55
|
+
* @returns {boolean} whether the signature is valid or not
|
|
56
|
+
*/
|
|
57
|
+
Utils.prototype.verifySignature = function (signedMessage, signature, address) {
|
|
58
|
+
var publicKey = keyring_1.decodeAddress(address);
|
|
59
|
+
var hexPublicKey = util_1.u8aToHex(publicKey);
|
|
60
|
+
return util_crypto_1.signatureVerify(signedMessage, signature, hexPublicKey).isValid;
|
|
61
|
+
};
|
|
28
62
|
/** @inheritdoc */
|
|
29
63
|
Utils.prototype.isValidTransactionId = function (txId) {
|
|
30
64
|
throw new errors_1.NotImplementedError('method not implemented');
|
|
31
65
|
};
|
|
66
|
+
/**
|
|
67
|
+
* decodeSeed decodes a dot seed
|
|
68
|
+
*
|
|
69
|
+
* @param {string} seed - the seed to be validated.
|
|
70
|
+
* @returns {Seed} - the object Seed
|
|
71
|
+
*/
|
|
72
|
+
Utils.prototype.decodeSeed = function (seed) {
|
|
73
|
+
var decoded = hi_base32_1.default.decode.asBytes(seed);
|
|
74
|
+
return {
|
|
75
|
+
seed: Buffer.from(decoded),
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Helper function to capitalize the first letter of a string
|
|
80
|
+
*
|
|
81
|
+
* @param {string} val
|
|
82
|
+
* @returns {string}
|
|
83
|
+
*/
|
|
84
|
+
Utils.prototype.capitalizeFirstLetter = function (val) {
|
|
85
|
+
return val.charAt(0).toUpperCase() + val.slice(1);
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Helper function to decode the internal method hex incase of a proxy transaction
|
|
89
|
+
*
|
|
90
|
+
* @param {string | UnsignedTransaction} tx
|
|
91
|
+
* @param { metadataRpc: string; registry: TypeRegistry } options
|
|
92
|
+
* @returns {TransferArgs}
|
|
93
|
+
*/
|
|
94
|
+
Utils.prototype.decodeCallMethod = function (tx, options) {
|
|
95
|
+
var metadataRpc = options.metadataRpc, registry = options.registry;
|
|
96
|
+
registry.setMetadata(txwrapper_polkadot_1.createMetadata(registry, metadataRpc));
|
|
97
|
+
var methodCall;
|
|
98
|
+
if (typeof tx === 'string') {
|
|
99
|
+
try {
|
|
100
|
+
var payload = createTypeUnsafe(registry, 'ExtrinsicPayload', [tx, { version: Extrinsic_1.EXTRINSIC_VERSION }]);
|
|
101
|
+
methodCall = createTypeUnsafe(registry, 'Call', [payload.method]);
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
methodCall = registry.createType('Extrinsic', polkaUtils.hexToU8a(tx), {
|
|
105
|
+
isSigned: true,
|
|
106
|
+
}).method;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
methodCall = registry.createType('Call', tx.method);
|
|
111
|
+
}
|
|
112
|
+
var method = methodCall.args[PROXY_METHOD_ARG];
|
|
113
|
+
var decodedArgs = method.toJSON();
|
|
114
|
+
return decodedArgs.args;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* keyPairFromSeed generates an object with secretKey and publicKey using the polkadot sdk
|
|
118
|
+
* @param seed 32 bytes long seed
|
|
119
|
+
* @returns KeyPair
|
|
120
|
+
*/
|
|
121
|
+
Utils.prototype.keyPairFromSeed = function (seed) {
|
|
122
|
+
var keyring = new keyring_1.Keyring({ type: 'ed25519' });
|
|
123
|
+
var keyringPair = keyring.addFromSeed(seed);
|
|
124
|
+
var pairJson = keyringPair.toJson();
|
|
125
|
+
var decodedKeyPair = decode_1.decodePair('', util_crypto_1.base64Decode(pairJson.encoded), pairJson.encoding.type);
|
|
126
|
+
return new _1.KeyPair({ prv: Buffer.from(decodedKeyPair.secretKey).toString('hex') });
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Signing function. Implement this on the OFFLINE signing device.
|
|
130
|
+
*
|
|
131
|
+
* @param {KeyringPair} pair - The signing pair.
|
|
132
|
+
* @param {string} signingPayload - Payload to sign.
|
|
133
|
+
*/
|
|
134
|
+
Utils.prototype.createSignedTx = function (pair, signingPayload, transaction, options) {
|
|
135
|
+
var registry = options.registry, metadataRpc = options.metadataRpc;
|
|
136
|
+
// Important! The registry needs to be updated with latest metadata, so make
|
|
137
|
+
// sure to run `registry.setMetadata(metadata)` before signing.
|
|
138
|
+
registry.setMetadata(txwrapper_polkadot_1.createMetadata(registry, metadataRpc));
|
|
139
|
+
var signature = registry
|
|
140
|
+
.createType('ExtrinsicPayload', signingPayload, {
|
|
141
|
+
version: Extrinsic_1.EXTRINSIC_VERSION,
|
|
142
|
+
})
|
|
143
|
+
.sign(pair).signature;
|
|
144
|
+
// Serialize a signed transaction.
|
|
145
|
+
var txHex = txwrapper_polkadot_1.construct.signedTx(transaction, signature, {
|
|
146
|
+
metadataRpc: metadataRpc,
|
|
147
|
+
registry: registry,
|
|
148
|
+
});
|
|
149
|
+
return txHex;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Decodes the dot address from the given format
|
|
153
|
+
*
|
|
154
|
+
* @param address Decodes
|
|
155
|
+
* @returns {string}
|
|
156
|
+
*/
|
|
157
|
+
Utils.prototype.decodeDotAddress = function (address, ss58Format) {
|
|
158
|
+
var keypair = new _1.KeyPair({ pub: Buffer.from(keyring_1.decodeAddress(address, undefined, ss58Format)).toString('hex') });
|
|
159
|
+
return keypair.getAddress();
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Decodes the dot address from the given format
|
|
163
|
+
*
|
|
164
|
+
* @param address Decodes
|
|
165
|
+
* @returns {string}
|
|
166
|
+
*/
|
|
167
|
+
Utils.prototype.encodeDotAddress = function (address, ss58Format) {
|
|
168
|
+
return keyring_1.encodeAddress(address, ss58Format);
|
|
169
|
+
};
|
|
32
170
|
return Utils;
|
|
33
171
|
}());
|
|
34
172
|
exports.Utils = Utils;
|
|
35
|
-
|
|
173
|
+
var utils = new Utils();
|
|
174
|
+
exports.default = utils;
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQTBFO0FBQzFFLHdEQUEyRDtBQUUzRCxvRUFBMkU7QUFDM0UsdUNBQTJEO0FBQzNELHFEQUFzRTtBQUN0RSw2Q0FBc0Y7QUFHdEYsb0VBQTBFO0FBQzFFLHdEQUErQjtBQUMvQixzQkFBNEI7QUFFNUIsNkNBQXlEO0FBR3pELElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3JDLElBQUEsZ0JBQWdCLEdBQUssT0FBTyxDQUFDLGlCQUFpQixDQUFDLGlCQUEvQixDQUFnQztBQUV4RCxJQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQjtJQUFBO0lBbUtBLENBQUM7SUFsS0Msa0JBQWtCO0lBQ2xCLDhCQUFjLEdBQWQsVUFBZSxPQUFlO1FBQzVCLElBQUk7WUFDRix1QkFBYSxDQUFDLFlBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0UsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQWMsR0FBZCxVQUFlLElBQVk7UUFDekIsTUFBTSxJQUFJLDRCQUFtQixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQ0FBaUIsR0FBakIsVUFBa0IsR0FBVztRQUMzQixPQUFPLGdDQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0NBQWdCLEdBQWhCLFVBQWlCLEdBQVc7UUFDMUIsT0FB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VUFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqSCxPQUFPLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQ0FBZ0IsR0FBaEIsVUFBaUIsT0FBZSxFQUFFLFVBQW1CO1FBQ25ELE9BQU8sdUJBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNILFlBQUM7QUFBRCxDQUFDLEFBbktELElBbUtDO0FBbktZLHNCQUFLO0FBcUtsQixJQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZUFkZHJlc3MsIGVuY29kZUFkZHJlc3MsIEtleXJpbmcgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBkZWNvZGVQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvcGFpci9kZWNvZGUnO1xuaW1wb3J0IHsgS2V5cmluZ1BhaXIgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZy90eXBlcyc7XG5pbXBvcnQgeyBFWFRSSU5TSUNfVkVSU0lPTiB9IGZyb20gJ0Bwb2xrYWRvdC90eXBlcy9leHRyaW5zaWMvdjQvRXh0cmluc2ljJztcbmltcG9ydCB7IGhleFRvVThhLCBpc0hleCwgdThhVG9IZXggfSBmcm9tICdAcG9sa2Fkb3QvdXRpbCc7XG5pbXBvcnQgeyBiYXNlNjREZWNvZGUsIHNpZ25hdHVyZVZlcmlmeSB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsLWNyeXB0byc7XG5pbXBvcnQgeyBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSwgaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXkgfSBmcm9tICcuLi8uLi91dGlscy9jcnlwdG8nO1xuaW1wb3J0IHsgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgY29uc3RydWN0LCBjcmVhdGVNZXRhZGF0YSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBiYXNlMzIgZnJvbSAnaGktYmFzZTMyJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuJztcbmltcG9ydCB7IEJhc2VVdGlscyB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IE5vdEltcGxlbWVudGVkRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgU2VlZCB9IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcbmltcG9ydCB7IFByb3h5Q2FsbEFyZ3MsIFRyYW5zZmVyQXJncyB9IGZyb20gJy4vaWZhY2UnO1xuY29uc3QgcG9sa2FVdGlscyA9IHJlcXVpcmUoJ0Bwb2xrYWRvdC91dGlsJyk7XG5jb25zdCB7IGNyZWF0ZVR5cGVVbnNhZmUgfSA9IHJlcXVpcmUoJ0Bwb2xrYWRvdC90eXBlcycpO1xuXG5jb25zdCBQUk9YWV9NRVRIT0RfQVJHID0gMjtcbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgZW5jb2RlQWRkcmVzcyhpc0hleChhZGRyZXNzKSA/IGhleFRvVThhKGFkZHJlc3MpIDogZGVjb2RlQWRkcmVzcyhhZGRyZXNzKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBzaWduYXR1cmUgb24gYSBnaXZlbiBtZXNzYWdlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZWRNZXNzYWdlIHRoZSBzaWduZWQgbWVzc2FnZSBmb3IgdGhlIHNpZ25hdHVyZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIG9mIHRoZSBzaWduZXJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHdoZXRoZXIgdGhlIHNpZ25hdHVyZSBpcyB2YWxpZCBvciBub3RcbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShzaWduZWRNZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBkZWNvZGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgIGNvbnN0IGhleFB1YmxpY0tleSA9IHU4YVRvSGV4KHB1YmxpY0tleSk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlVmVyaWZ5KHNpZ25lZE1lc3NhZ2UsIHNpZ25hdHVyZSwgaGV4UHVibGljS2V5KS5pc1ZhbGlkO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogZGVjb2RlU2VlZCBkZWNvZGVzIGEgZG90IHNlZWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlZWQgLSB0aGUgc2VlZCB0byBiZSB2YWxpZGF0ZWQuXG4gICAqIEByZXR1cm5zIHtTZWVkfSAtIHRoZSBvYmplY3QgU2VlZFxuICAgKi9cbiAgZGVjb2RlU2VlZChzZWVkOiBzdHJpbmcpOiBTZWVkIHtcbiAgICBjb25zdCBkZWNvZGVkID0gYmFzZTMyLmRlY29kZS5hc0J5dGVzKHNlZWQpO1xuICAgIHJldHVybiB7XG4gICAgICBzZWVkOiBCdWZmZXIuZnJvbShkZWNvZGVkKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiB0byBjYXBpdGFsaXplIHRoZSBmaXJzdCBsZXR0ZXIgb2YgYSBzdHJpbmdcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsLnNsaWNlKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiB0byBkZWNvZGUgdGhlIGludGVybmFsIG1ldGhvZCBoZXggaW5jYXNlIG9mIGEgcHJveHkgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBVbnNpZ25lZFRyYW5zYWN0aW9ufSB0eFxuICAgKiBAcGFyYW0geyBtZXRhZGF0YVJwYzogc3RyaW5nOyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJBcmdzfVxuICAgKi9cbiAgZGVjb2RlQ2FsbE1ldGhvZChcbiAgICB0eDogc3RyaW5nIHwgVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICBvcHRpb25zOiB7IG1ldGFkYXRhUnBjOiBzdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSxcbiAgKTogVHJhbnNmZXJBcmdzIHtcbiAgICBjb25zdCB7IG1ldGFkYXRhUnBjLCByZWdpc3RyeSB9ID0gb3B0aW9ucztcbiAgICByZWdpc3RyeS5zZXRNZXRhZGF0YShjcmVhdGVNZXRhZGF0YShyZWdpc3RyeSwgbWV0YWRhdGFScGMpKTtcbiAgICBsZXQgbWV0aG9kQ2FsbDogYW55O1xuICAgIGlmICh0eXBlb2YgdHggPT09ICdzdHJpbmcnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gY3JlYXRlVHlwZVVuc2FmZShyZWdpc3RyeSwgJ0V4dHJpbnNpY1BheWxvYWQnLCBbdHgsIHsgdmVyc2lvbjogRVhUUklOU0lDX1ZFUlNJT04gfV0pO1xuICAgICAgICBtZXRob2RDYWxsID0gY3JlYXRlVHlwZVVuc2FmZShyZWdpc3RyeSwgJ0NhbGwnLCBbcGF5bG9hZC5tZXRob2RdKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0V4dHJpbnNpYycsIHBvbGthVXRpbHMuaGV4VG9VOGEodHgpLCB7XG4gICAgICAgICAgaXNTaWduZWQ6IHRydWUsXG4gICAgICAgIH0pLm1ldGhvZDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0NhbGwnLCB0eC5tZXRob2QpO1xuICAgIH1cbiAgICBjb25zdCBtZXRob2QgPSBtZXRob2RDYWxsLmFyZ3NbUFJPWFlfTUVUSE9EX0FSR107XG4gICAgY29uc3QgZGVjb2RlZEFyZ3MgPSBtZXRob2QudG9KU09OKCkgYXMgdW5rbm93biBhcyBQcm94eUNhbGxBcmdzO1xuICAgIHJldHVybiBkZWNvZGVkQXJncy5hcmdzO1xuICB9XG5cbiAgLyoqXG4gICAqIGtleVBhaXJGcm9tU2VlZCBnZW5lcmF0ZXMgYW4gb2JqZWN0IHdpdGggc2VjcmV0S2V5IGFuZCBwdWJsaWNLZXkgdXNpbmcgdGhlIHBvbGthZG90IHNka1xuICAgKiBAcGFyYW0gc2VlZCAzMiBieXRlcyBsb25nIHNlZWRcbiAgICogQHJldHVybnMgS2V5UGFpclxuICAgKi9cbiAga2V5UGFpckZyb21TZWVkKHNlZWQ6IFVpbnQ4QXJyYXkpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBrZXlyaW5nID0gbmV3IEtleXJpbmcoeyB0eXBlOiAnZWQyNTUxOScgfSk7XG4gICAgY29uc3Qga2V5cmluZ1BhaXIgPSBrZXlyaW5nLmFkZEZyb21TZWVkKHNlZWQpO1xuICAgIGNvbnN0IHBhaXJKc29uID0ga2V5cmluZ1BhaXIudG9Kc29uKCk7XG4gICAgY29uc3QgZGVjb2RlZEtleVBhaXIgPSBkZWNvZGVQYWlyKCcnLCBiYXNlNjREZWNvZGUocGFpckpzb24uZW5jb2RlZCksIHBhaXJKc29uLmVuY29kaW5nLnR5cGUpO1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHBydjogQnVmZmVyLmZyb20oZGVjb2RlZEtleVBhaXIuc2VjcmV0S2V5KS50b1N0cmluZygnaGV4JykgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbmluZyBmdW5jdGlvbi4gSW1wbGVtZW50IHRoaXMgb24gdGhlIE9GRkxJTkUgc2lnbmluZyBkZXZpY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5cmluZ1BhaXJ9IHBhaXIgLSBUaGUgc2lnbmluZyBwYWlyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmluZ1BheWxvYWQgLSBQYXlsb2FkIHRvIHNpZ24uXG4gICAqL1xuICBjcmVhdGVTaWduZWRUeChwYWlyOiBLZXlyaW5nUGFpciwgc2lnbmluZ1BheWxvYWQ6IHN0cmluZywgdHJhbnNhY3Rpb246IFVuc2lnbmVkVHJhbnNhY3Rpb24sIG9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgcmVnaXN0cnksIG1ldGFkYXRhUnBjIH0gPSBvcHRpb25zO1xuICAgIC8vIEltcG9ydGFudCEgVGhlIHJlZ2lzdHJ5IG5lZWRzIHRvIGJlIHVwZGF0ZWQgd2l0aCBsYXRlc3QgbWV0YWRhdGEsIHNvIG1ha2VcbiAgICAvLyBzdXJlIHRvIHJ1biBgcmVnaXN0cnkuc2V0TWV0YWRhdGEobWV0YWRhdGEpYCBiZWZvcmUgc2lnbmluZy5cbiAgICByZWdpc3RyeS5zZXRNZXRhZGF0YShjcmVhdGVNZXRhZGF0YShyZWdpc3RyeSwgbWV0YWRhdGFScGMpKTtcbiAgICBjb25zdCB7IHNpZ25hdHVyZSB9ID0gcmVnaXN0cnlcbiAgICAgIC5jcmVhdGVUeXBlKCdFeHRyaW5zaWNQYXlsb2FkJywgc2lnbmluZ1BheWxvYWQsIHtcbiAgICAgICAgdmVyc2lvbjogRVhUUklOU0lDX1ZFUlNJT04sXG4gICAgICB9KVxuICAgICAgLnNpZ24ocGFpcik7XG5cbiAgICAvLyBTZXJpYWxpemUgYSBzaWduZWQgdHJhbnNhY3Rpb24uXG4gICAgY29uc3QgdHhIZXggPSBjb25zdHJ1Y3Quc2lnbmVkVHgodHJhbnNhY3Rpb24sIHNpZ25hdHVyZSwge1xuICAgICAgbWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeSxcbiAgICB9KTtcbiAgICByZXR1cm4gdHhIZXg7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUgZG90IGFkZHJlc3MgZnJvbSB0aGUgZ2l2ZW4gZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSBhZGRyZXNzIERlY29kZXNcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGRlY29kZURvdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBzczU4Rm9ybWF0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoYWRkcmVzcywgdW5kZWZpbmVkLCBzczU4Rm9ybWF0KSkudG9TdHJpbmcoJ2hleCcpIH0pO1xuICAgIHJldHVybiBrZXlwYWlyLmdldEFkZHJlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBkb3QgYWRkcmVzcyBmcm9tIHRoZSBnaXZlbiBmb3JtYXRcbiAgICpcbiAgICogQHBhcmFtIGFkZHJlc3MgRGVjb2Rlc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZW5jb2RlRG90QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHNzNThGb3JtYXQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbmNvZGVBZGRyZXNzKGFkZHJlc3MsIHNzNThGb3JtYXQpO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
|