@bitgo-beta/sdk-coin-tao 1.0.1-alpha.13 → 1.0.1-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -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_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 +2 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -2
- 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/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/transaction.d.ts +78 -3
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +599 -6
- package/dist/src/lib/transactionBuilder.d.ts +108 -20
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +305 -32
- package/dist/src/lib/transactionBuilderFactory.d.ts +8 -5
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +39 -8
- package/dist/src/lib/transferBuilder.d.ts +7 -4
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +3 -7
- 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/utils.d.ts +11 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +26 -1
- package/dist/src/resources/index.d.ts +3 -0
- package/dist/src/resources/index.d.ts.map +1 -0
- package/dist/src/resources/index.js +19 -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/package.json +9 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-tao@1.1.0...@bitgo/sdk-coin-tao@1.2.0) (2025-02-05)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- implement base transaction and transfer builders ([b342edd](https://github.com/BitGo/BitGoJS/commit/b342edd6f655b242c6c286d65941e9989a9e672e))
|
|
11
|
+
|
|
12
|
+
# [1.1.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-tao@1.0.4...@bitgo/sdk-coin-tao@1.1.0) (2025-01-28)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- fix utils ([53b9621](https://github.com/BitGo/BitGoJS/commit/53b9621171fbed7a2514c7c6d12ba8c917780eba))
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- implement tao specific functions ([67e658e](https://github.com/BitGo/BitGoJS/commit/67e658e03cb3e47959d9bbb18285cbb8cd19943b))
|
|
21
|
+
|
|
6
22
|
## [1.0.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-tao@1.0.3...@bitgo/sdk-coin-tao@1.0.4) (2025-01-23)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @bitgo/sdk-coin-tao
|
|
@@ -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=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { AccountId, AddProxyArgs, AddProxyBatchCallArgs, StakeBatchCallPayee, StakeBatchCallPayeeAccount, StakeBatchCallPayeeController, StakeBatchCallPayeeStaked, StakeBatchCallPayeeStash, ProxyArgs } from './iface';
|
|
2
|
+
/**
|
|
3
|
+
* Returns true if value is of type AccountId, false otherwise.
|
|
4
|
+
*
|
|
5
|
+
* @param value The object to test.
|
|
6
|
+
*
|
|
7
|
+
* @return true if value is of type AccountId, false otherwise.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isAccountId(value: string | AccountId): value is AccountId;
|
|
10
|
+
/**
|
|
11
|
+
* Extracts the proxy address being added from an add proxy batch call or an add proxy call.
|
|
12
|
+
|
|
13
|
+
* @param call A batched add proxy call or an add proxy call from which to extract the proxy
|
|
14
|
+
* address.
|
|
15
|
+
*
|
|
16
|
+
* @return the proxy address being added from an add proxy batch call or an add proxy call.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getDelegateAddress(call: AddProxyBatchCallArgs | AddProxyArgs): string;
|
|
19
|
+
/**
|
|
20
|
+
* Returns true if value is of type StakeBatchCallPayeeStaked, false otherwise.
|
|
21
|
+
*
|
|
22
|
+
* @param value The object to test.
|
|
23
|
+
*
|
|
24
|
+
* @return true if value is of type StakeBatchCallPayeeStaked, false otherwise.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isStakeBatchCallPayeeStaked(value: StakeBatchCallPayee): value is StakeBatchCallPayeeStaked;
|
|
27
|
+
/**
|
|
28
|
+
* Returns true if value is of type StakeBatchCallPayeeStash, false otherwise.
|
|
29
|
+
*
|
|
30
|
+
* @param value The object to test.
|
|
31
|
+
*
|
|
32
|
+
* @return true if value is of type StakeBatchCallPayeeStash, false otherwise.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isStakeBatchCallPayeeStash(value: StakeBatchCallPayee): value is StakeBatchCallPayeeStash;
|
|
35
|
+
/**
|
|
36
|
+
* Returns true if value is of type StakeBatchCallPayeeController, false otherwise.
|
|
37
|
+
*
|
|
38
|
+
* @param value The object to test.
|
|
39
|
+
*
|
|
40
|
+
* @return true if value is of type StakeBatchCallPayeeController, false otherwise.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isStakeBatchCallPayeeController(value: StakeBatchCallPayee): value is StakeBatchCallPayeeController;
|
|
43
|
+
/**
|
|
44
|
+
* Returns true if value is of type StakeBatchCallPayeeAccount, false otherwise.
|
|
45
|
+
*
|
|
46
|
+
* @param value The object to test.
|
|
47
|
+
*
|
|
48
|
+
* @return true if value is of type StakeBatchCallPayeeAccount, false otherwise.
|
|
49
|
+
*/
|
|
50
|
+
export declare function isStakeBatchCallPayeeAccount(value: StakeBatchCallPayee): value is StakeBatchCallPayeeAccount;
|
|
51
|
+
/**
|
|
52
|
+
* Extracts the proxy address being added from ProxyArgs.
|
|
53
|
+
|
|
54
|
+
* @param args the ProxyArgs object from which to extract the proxy address.
|
|
55
|
+
*
|
|
56
|
+
* @return the proxy address being added.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getAddress(args: ProxyArgs): string;
|
|
59
|
+
//# sourceMappingURL=iface_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iface_utils.d.ts","sourceRoot":"","sources":["../../../src/lib/iface_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAEzE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,YAAY,GAAG,MAAM,CAMrF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,yBAAyB,CAE1G;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,wBAAwB,CAExG;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,6BAA6B,CAElH;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,0BAA0B,CAK5G;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAMlD"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAccountId = isAccountId;
|
|
4
|
+
exports.getDelegateAddress = getDelegateAddress;
|
|
5
|
+
exports.isStakeBatchCallPayeeStaked = isStakeBatchCallPayeeStaked;
|
|
6
|
+
exports.isStakeBatchCallPayeeStash = isStakeBatchCallPayeeStash;
|
|
7
|
+
exports.isStakeBatchCallPayeeController = isStakeBatchCallPayeeController;
|
|
8
|
+
exports.isStakeBatchCallPayeeAccount = isStakeBatchCallPayeeAccount;
|
|
9
|
+
exports.getAddress = getAddress;
|
|
10
|
+
/**
|
|
11
|
+
* Returns true if value is of type AccountId, false otherwise.
|
|
12
|
+
*
|
|
13
|
+
* @param value The object to test.
|
|
14
|
+
*
|
|
15
|
+
* @return true if value is of type AccountId, false otherwise.
|
|
16
|
+
*/
|
|
17
|
+
function isAccountId(value) {
|
|
18
|
+
return value.hasOwnProperty('id');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Extracts the proxy address being added from an add proxy batch call or an add proxy call.
|
|
22
|
+
|
|
23
|
+
* @param call A batched add proxy call or an add proxy call from which to extract the proxy
|
|
24
|
+
* address.
|
|
25
|
+
*
|
|
26
|
+
* @return the proxy address being added from an add proxy batch call or an add proxy call.
|
|
27
|
+
*/
|
|
28
|
+
function getDelegateAddress(call) {
|
|
29
|
+
if (isAccountId(call.delegate)) {
|
|
30
|
+
return call.delegate.id;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return call.delegate;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Returns true if value is of type StakeBatchCallPayeeStaked, false otherwise.
|
|
38
|
+
*
|
|
39
|
+
* @param value The object to test.
|
|
40
|
+
*
|
|
41
|
+
* @return true if value is of type StakeBatchCallPayeeStaked, false otherwise.
|
|
42
|
+
*/
|
|
43
|
+
function isStakeBatchCallPayeeStaked(value) {
|
|
44
|
+
return value.hasOwnProperty('staked');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns true if value is of type StakeBatchCallPayeeStash, false otherwise.
|
|
48
|
+
*
|
|
49
|
+
* @param value The object to test.
|
|
50
|
+
*
|
|
51
|
+
* @return true if value is of type StakeBatchCallPayeeStash, false otherwise.
|
|
52
|
+
*/
|
|
53
|
+
function isStakeBatchCallPayeeStash(value) {
|
|
54
|
+
return value.hasOwnProperty('stash');
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns true if value is of type StakeBatchCallPayeeController, false otherwise.
|
|
58
|
+
*
|
|
59
|
+
* @param value The object to test.
|
|
60
|
+
*
|
|
61
|
+
* @return true if value is of type StakeBatchCallPayeeController, false otherwise.
|
|
62
|
+
*/
|
|
63
|
+
function isStakeBatchCallPayeeController(value) {
|
|
64
|
+
return value.hasOwnProperty('controller');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns true if value is of type StakeBatchCallPayeeAccount, false otherwise.
|
|
68
|
+
*
|
|
69
|
+
* @param value The object to test.
|
|
70
|
+
*
|
|
71
|
+
* @return true if value is of type StakeBatchCallPayeeAccount, false otherwise.
|
|
72
|
+
*/
|
|
73
|
+
function isStakeBatchCallPayeeAccount(value) {
|
|
74
|
+
return (value.account !== undefined &&
|
|
75
|
+
value.account !== null);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Extracts the proxy address being added from ProxyArgs.
|
|
79
|
+
|
|
80
|
+
* @param args the ProxyArgs object from which to extract the proxy address.
|
|
81
|
+
*
|
|
82
|
+
* @return the proxy address being added.
|
|
83
|
+
*/
|
|
84
|
+
function getAddress(args) {
|
|
85
|
+
if (isAccountId(args.real)) {
|
|
86
|
+
return args.real.id;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return args.real;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2VfdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlX3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLGtDQUVDO0FBVUQsZ0RBTUM7QUFTRCxrRUFFQztBQVNELGdFQUVDO0FBU0QsMEVBRUM7QUFTRCxvRUFLQztBQVNELGdDQU1DO0FBdkZEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUF5QjtJQUNuRCxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxJQUEwQztJQUMzRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzFCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsS0FBMEI7SUFDcEUsT0FBUSxLQUFtQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsS0FBMEI7SUFDbkUsT0FBUSxLQUFrQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsK0JBQStCLENBQUMsS0FBMEI7SUFDeEUsT0FBUSxLQUF1QyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQUMsS0FBMEI7SUFDckUsT0FBTyxDQUNKLEtBQW9DLENBQUMsT0FBTyxLQUFLLFNBQVM7UUFDMUQsS0FBb0MsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUN2RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxJQUFlO0lBQ3hDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDdEIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY2NvdW50SWQsXG4gIEFkZFByb3h5QXJncyxcbiAgQWRkUHJveHlCYXRjaENhbGxBcmdzLFxuICBTdGFrZUJhdGNoQ2FsbFBheWVlLFxuICBTdGFrZUJhdGNoQ2FsbFBheWVlQWNjb3VudCxcbiAgU3Rha2VCYXRjaENhbGxQYXllZUNvbnRyb2xsZXIsXG4gIFN0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFrZWQsXG4gIFN0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFzaCxcbiAgUHJveHlBcmdzLFxufSBmcm9tICcuL2lmYWNlJztcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdmFsdWUgaXMgb2YgdHlwZSBBY2NvdW50SWQsIGZhbHNlIG90aGVyd2lzZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdCB0byB0ZXN0LlxuICpcbiAqIEByZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBpcyBvZiB0eXBlIEFjY291bnRJZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBY2NvdW50SWQodmFsdWU6IHN0cmluZyB8IEFjY291bnRJZCk6IHZhbHVlIGlzIEFjY291bnRJZCB7XG4gIHJldHVybiB2YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnaWQnKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgcHJveHkgYWRkcmVzcyBiZWluZyBhZGRlZCBmcm9tIGFuIGFkZCBwcm94eSBiYXRjaCBjYWxsIG9yIGFuIGFkZCBwcm94eSBjYWxsLlxuXG4gKiBAcGFyYW0gY2FsbCBBIGJhdGNoZWQgYWRkIHByb3h5IGNhbGwgb3IgYW4gYWRkIHByb3h5IGNhbGwgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBwcm94eVxuICogYWRkcmVzcy5cbiAqXG4gKiBAcmV0dXJuIHRoZSBwcm94eSBhZGRyZXNzIGJlaW5nIGFkZGVkIGZyb20gYW4gYWRkIHByb3h5IGJhdGNoIGNhbGwgb3IgYW4gYWRkIHByb3h5IGNhbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWxlZ2F0ZUFkZHJlc3MoY2FsbDogQWRkUHJveHlCYXRjaENhbGxBcmdzIHwgQWRkUHJveHlBcmdzKTogc3RyaW5nIHtcbiAgaWYgKGlzQWNjb3VudElkKGNhbGwuZGVsZWdhdGUpKSB7XG4gICAgcmV0dXJuIGNhbGwuZGVsZWdhdGUuaWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNhbGwuZGVsZWdhdGU7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdmFsdWUgaXMgb2YgdHlwZSBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rha2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAqXG4gKiBAcmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgb2YgdHlwZSBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rha2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFrZWQodmFsdWU6IFN0YWtlQmF0Y2hDYWxsUGF5ZWUpOiB2YWx1ZSBpcyBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rha2VkIHtcbiAgcmV0dXJuICh2YWx1ZSBhcyBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rha2VkKS5oYXNPd25Qcm9wZXJ0eSgnc3Rha2VkJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHZhbHVlIGlzIG9mIHR5cGUgU3Rha2VCYXRjaENhbGxQYXllZVN0YXNoLCBmYWxzZSBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAqXG4gKiBAcmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgb2YgdHlwZSBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rhc2gsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Rha2VCYXRjaENhbGxQYXllZVN0YXNoKHZhbHVlOiBTdGFrZUJhdGNoQ2FsbFBheWVlKTogdmFsdWUgaXMgU3Rha2VCYXRjaENhbGxQYXllZVN0YXNoIHtcbiAgcmV0dXJuICh2YWx1ZSBhcyBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rhc2gpLmhhc093blByb3BlcnR5KCdzdGFzaCcpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB2YWx1ZSBpcyBvZiB0eXBlIFN0YWtlQmF0Y2hDYWxsUGF5ZWVDb250cm9sbGVyLCBmYWxzZSBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAqXG4gKiBAcmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgb2YgdHlwZSBTdGFrZUJhdGNoQ2FsbFBheWVlQ29udHJvbGxlciwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdGFrZUJhdGNoQ2FsbFBheWVlQ29udHJvbGxlcih2YWx1ZTogU3Rha2VCYXRjaENhbGxQYXllZSk6IHZhbHVlIGlzIFN0YWtlQmF0Y2hDYWxsUGF5ZWVDb250cm9sbGVyIHtcbiAgcmV0dXJuICh2YWx1ZSBhcyBTdGFrZUJhdGNoQ2FsbFBheWVlQ29udHJvbGxlcikuaGFzT3duUHJvcGVydHkoJ2NvbnRyb2xsZXInKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdmFsdWUgaXMgb2YgdHlwZSBTdGFrZUJhdGNoQ2FsbFBheWVlQWNjb3VudCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gKlxuICogQHJldHVybiB0cnVlIGlmIHZhbHVlIGlzIG9mIHR5cGUgU3Rha2VCYXRjaENhbGxQYXllZUFjY291bnQsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Rha2VCYXRjaENhbGxQYXllZUFjY291bnQodmFsdWU6IFN0YWtlQmF0Y2hDYWxsUGF5ZWUpOiB2YWx1ZSBpcyBTdGFrZUJhdGNoQ2FsbFBheWVlQWNjb3VudCB7XG4gIHJldHVybiAoXG4gICAgKHZhbHVlIGFzIFN0YWtlQmF0Y2hDYWxsUGF5ZWVBY2NvdW50KS5hY2NvdW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICAodmFsdWUgYXMgU3Rha2VCYXRjaENhbGxQYXllZUFjY291bnQpLmFjY291bnQgIT09IG51bGxcbiAgKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgcHJveHkgYWRkcmVzcyBiZWluZyBhZGRlZCBmcm9tIFByb3h5QXJncy5cblxuICogQHBhcmFtIGFyZ3MgdGhlIFByb3h5QXJncyBvYmplY3QgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBwcm94eSBhZGRyZXNzLlxuICpcbiAqIEByZXR1cm4gdGhlIHByb3h5IGFkZHJlc3MgYmVpbmcgYWRkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzKGFyZ3M6IFByb3h5QXJncyk6IHN0cmluZyB7XG4gIGlmIChpc0FjY291bnRJZChhcmdzLnJlYWwpKSB7XG4gICAgcmV0dXJuIGFyZ3MucmVhbC5pZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXJncy5yZWFsO1xuICB9XG59XG4iXX0=
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -5,5 +5,7 @@ export { Transaction } from './transaction';
|
|
|
5
5
|
export { TransactionBuilder } from './transactionBuilder';
|
|
6
6
|
export { TransferBuilder } from './transferBuilder';
|
|
7
7
|
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
8
|
+
export { SingletonRegistry } from './singletonRegistry';
|
|
9
|
+
export { NativeTransferBuilder } from './nativeTransferBuilder';
|
|
8
10
|
export { Interface, Utils };
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
|
package/dist/src/lib/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.Utils = exports.Interface = exports.TransactionBuilderFactory = exports.TransferBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
|
|
36
|
+
exports.Utils = exports.Interface = exports.NativeTransferBuilder = exports.SingletonRegistry = exports.TransactionBuilderFactory = exports.TransferBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
|
|
37
37
|
const Utils = __importStar(require("./utils"));
|
|
38
38
|
exports.Utils = Utils;
|
|
39
39
|
const Interface = __importStar(require("./iface"));
|
|
@@ -48,4 +48,8 @@ var transferBuilder_1 = require("./transferBuilder");
|
|
|
48
48
|
Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
|
|
49
49
|
var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
|
|
50
50
|
Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
|
|
51
|
-
|
|
51
|
+
var singletonRegistry_1 = require("./singletonRegistry");
|
|
52
|
+
Object.defineProperty(exports, "SingletonRegistry", { enumerable: true, get: function () { return singletonRegistry_1.SingletonRegistry; } });
|
|
53
|
+
var nativeTransferBuilder_1 = require("./nativeTransferBuilder");
|
|
54
|
+
Object.defineProperty(exports, "NativeTransferBuilder", { enumerable: true, get: function () { return nativeTransferBuilder_1.NativeTransferBuilder; } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQVViLHNCQUFLO0FBVHpCLG1EQUFxQztBQVM1Qiw4QkFBUztBQVBsQixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBQ2xDLHlEQUF3RDtBQUEvQyxzSEFBQSxpQkFBaUIsT0FBQTtBQUMxQixpRUFBZ0U7QUFBdkQsOEhBQUEscUJBQXFCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIEludGVyZmFjZSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBTaW5nbGV0b25SZWdpc3RyeSB9IGZyb20gJy4vc2luZ2xldG9uUmVnaXN0cnknO1xuZXhwb3J0IHsgTmF0aXZlVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9uYXRpdmVUcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgSW50ZXJmYWNlLCBVdGlscyB9O1xuIl19
|
|
@@ -0,0 +1,84 @@
|
|
|
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 { ProxyType } from './iface';
|
|
5
|
+
import { Transaction } from './transaction';
|
|
6
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
7
|
+
export declare abstract class NativeTransferBuilder extends TransactionBuilder {
|
|
8
|
+
protected _sweepFreeBalance: boolean;
|
|
9
|
+
protected _keepAddressAlive: boolean;
|
|
10
|
+
protected _amount: string;
|
|
11
|
+
protected _to: string;
|
|
12
|
+
protected _owner: string;
|
|
13
|
+
protected _forceProxyType: ProxyType;
|
|
14
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
18
|
+
*
|
|
19
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
20
|
+
*
|
|
21
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
22
|
+
*/
|
|
23
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
24
|
+
protected get transactionType(): TransactionType;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* Set this to be a sweep transaction, using TransferAll with keepAlive set to true by default.
|
|
28
|
+
* If keepAlive is false, the entire address will be swept (including the 1 DOT minimum).
|
|
29
|
+
*
|
|
30
|
+
* @param {boolean} keepAlive - keep the address alive after this sweep
|
|
31
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
32
|
+
*
|
|
33
|
+
* @see https://github.com/paritytech/txwrapper-core/blob/main/docs/modules/txwrapper_substrate_src.methods.balances.md#transferall
|
|
34
|
+
*/
|
|
35
|
+
sweep(keepAlive?: boolean): this;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* The amount for transfer transaction.
|
|
39
|
+
*
|
|
40
|
+
* @param {string} amount
|
|
41
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
42
|
+
*
|
|
43
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
44
|
+
*/
|
|
45
|
+
amount(amount: string): this;
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
* The destination address for transfer transaction.
|
|
49
|
+
*
|
|
50
|
+
* @param {string} dest
|
|
51
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
52
|
+
*
|
|
53
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
54
|
+
*/
|
|
55
|
+
to({ address }: BaseAddress): this;
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* The real address of the original tx
|
|
59
|
+
*
|
|
60
|
+
* @param {BaseAddress} real
|
|
61
|
+
* @returns {TransferBuilder} This builder.
|
|
62
|
+
*
|
|
63
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
64
|
+
*/
|
|
65
|
+
owner(owner: BaseAddress): this;
|
|
66
|
+
/**
|
|
67
|
+
*
|
|
68
|
+
* The proxy type to execute
|
|
69
|
+
*
|
|
70
|
+
* @param {proxyType} forceProxyType
|
|
71
|
+
* @returns {TransferBuilder} This builder.
|
|
72
|
+
*
|
|
73
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
74
|
+
*/
|
|
75
|
+
forceProxyType(forceProxyType: ProxyType): this;
|
|
76
|
+
/** @inheritdoc */
|
|
77
|
+
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
|
|
78
|
+
/** @inheritdoc */
|
|
79
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
80
|
+
/** @inheritdoc */
|
|
81
|
+
validateTransaction(_: Transaction): void;
|
|
82
|
+
private validateFields;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=nativeTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/nativeTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAA0B,SAAS,EAAiC,MAAM,SAAS,CAAC;AAG3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,8BAAsB,qBAAsB,SAAQ,kBAAkB;IACpE,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,iBAAiB,UAAQ;IACnC,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;IAqCjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI;IAQhC;;;;;;;;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,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IA0B7G,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAsDjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAgBvB"}
|
|
@@ -0,0 +1,219 @@
|
|
|
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.NativeTransferBuilder = 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 iface_utils_1 = require("./iface_utils");
|
|
12
|
+
const singletonRegistry_1 = require("./singletonRegistry");
|
|
13
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
14
|
+
const txnSchema_1 = require("./txnSchema");
|
|
15
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
16
|
+
class NativeTransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
17
|
+
constructor(_coinConfig) {
|
|
18
|
+
super(_coinConfig);
|
|
19
|
+
this._sweepFreeBalance = false;
|
|
20
|
+
this._keepAddressAlive = true;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
25
|
+
*
|
|
26
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
27
|
+
*
|
|
28
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
29
|
+
*/
|
|
30
|
+
buildTransaction() {
|
|
31
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
32
|
+
let transferTx;
|
|
33
|
+
if (this._sweepFreeBalance) {
|
|
34
|
+
transferTx = txwrapper_polkadot_1.methods.balances.transferAll({
|
|
35
|
+
dest: { id: this._to },
|
|
36
|
+
keepAlive: this._keepAddressAlive,
|
|
37
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
transferTx = txwrapper_polkadot_1.methods.balances.transferKeepAlive({
|
|
41
|
+
value: this._amount,
|
|
42
|
+
dest: { id: this._to },
|
|
43
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
44
|
+
}
|
|
45
|
+
if (!this._owner) {
|
|
46
|
+
return transferTx;
|
|
47
|
+
}
|
|
48
|
+
return txwrapper_polkadot_1.methods.proxy.proxy({
|
|
49
|
+
real: this._owner,
|
|
50
|
+
forceProxyType: this._forceProxyType,
|
|
51
|
+
call: transferTx.method,
|
|
52
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
53
|
+
}
|
|
54
|
+
get transactionType() {
|
|
55
|
+
return sdk_core_1.TransactionType.Send;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
* Set this to be a sweep transaction, using TransferAll with keepAlive set to true by default.
|
|
60
|
+
* If keepAlive is false, the entire address will be swept (including the 1 DOT minimum).
|
|
61
|
+
*
|
|
62
|
+
* @param {boolean} keepAlive - keep the address alive after this sweep
|
|
63
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
64
|
+
*
|
|
65
|
+
* @see https://github.com/paritytech/txwrapper-core/blob/main/docs/modules/txwrapper_substrate_src.methods.balances.md#transferall
|
|
66
|
+
*/
|
|
67
|
+
sweep(keepAlive) {
|
|
68
|
+
this._sweepFreeBalance = true;
|
|
69
|
+
if (keepAlive !== undefined) {
|
|
70
|
+
this._keepAddressAlive = keepAlive;
|
|
71
|
+
}
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
* The amount for transfer transaction.
|
|
77
|
+
*
|
|
78
|
+
* @param {string} amount
|
|
79
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
80
|
+
*
|
|
81
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
82
|
+
*/
|
|
83
|
+
amount(amount) {
|
|
84
|
+
this.validateValue(new bignumber_js_1.default(amount));
|
|
85
|
+
this._amount = amount;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
* The destination address for transfer transaction.
|
|
91
|
+
*
|
|
92
|
+
* @param {string} dest
|
|
93
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
94
|
+
*
|
|
95
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
96
|
+
*/
|
|
97
|
+
to({ address }) {
|
|
98
|
+
this.validateAddress({ address });
|
|
99
|
+
this._to = address;
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
*
|
|
104
|
+
* The real address of the original tx
|
|
105
|
+
*
|
|
106
|
+
* @param {BaseAddress} real
|
|
107
|
+
* @returns {TransferBuilder} This builder.
|
|
108
|
+
*
|
|
109
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
110
|
+
*/
|
|
111
|
+
owner(owner) {
|
|
112
|
+
this.validateAddress({ address: owner.address });
|
|
113
|
+
this._owner = owner.address;
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
*
|
|
118
|
+
* The proxy type to execute
|
|
119
|
+
*
|
|
120
|
+
* @param {proxyType} forceProxyType
|
|
121
|
+
* @returns {TransferBuilder} This builder.
|
|
122
|
+
*
|
|
123
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
124
|
+
*/
|
|
125
|
+
forceProxyType(forceProxyType) {
|
|
126
|
+
this._forceProxyType = forceProxyType;
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
/** @inheritdoc */
|
|
130
|
+
validateDecodedTransaction(decodedTxn, rawTransaction) {
|
|
131
|
+
if (decodedTxn.method?.name === iface_1.MethodNames.TransferKeepAlive) {
|
|
132
|
+
const txMethod = decodedTxn.method.args;
|
|
133
|
+
const amount = `${txMethod.value}`;
|
|
134
|
+
const to = txMethod.dest.id;
|
|
135
|
+
const validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
136
|
+
if (validationResult.error) {
|
|
137
|
+
throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else if (decodedTxn.method?.name === iface_1.MethodNames.Proxy) {
|
|
141
|
+
const txMethod = decodedTxn.method.args;
|
|
142
|
+
const real = (0, iface_utils_1.getAddress)(txMethod);
|
|
143
|
+
const forceProxyType = txMethod.forceProxyType;
|
|
144
|
+
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
145
|
+
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
146
|
+
metadataRpc: this._material.metadata,
|
|
147
|
+
});
|
|
148
|
+
const amount = `${decodedCall.value}`;
|
|
149
|
+
const to = decodedCall.dest.id;
|
|
150
|
+
const validationResult = txnSchema_1.ProxyTransactionSchema.validate({ real, forceProxyType, amount, to });
|
|
151
|
+
if (validationResult.error) {
|
|
152
|
+
throw new sdk_core_1.InvalidTransactionError(`Proxy Transaction validation failed: ${validationResult.error.message}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/** @inheritdoc */
|
|
157
|
+
fromImplementation(rawTransaction) {
|
|
158
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
159
|
+
if (this._method?.name === iface_1.MethodNames.TransferKeepAlive) {
|
|
160
|
+
const txMethod = this._method.args;
|
|
161
|
+
this.amount(txMethod.value);
|
|
162
|
+
this.to({
|
|
163
|
+
address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
else if (this._method?.name === iface_1.MethodNames.TransferAll) {
|
|
167
|
+
this._sweepFreeBalance = true;
|
|
168
|
+
const txMethod = this._method.args;
|
|
169
|
+
this.sweep(txMethod.keepAlive);
|
|
170
|
+
this.to({
|
|
171
|
+
address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
else if (this._method?.name === iface_1.MethodNames.Proxy) {
|
|
175
|
+
const txMethod = this._method.args;
|
|
176
|
+
this.owner({
|
|
177
|
+
address: utils_1.default.decodeDotAddress((0, iface_utils_1.getAddress)(txMethod), utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
178
|
+
});
|
|
179
|
+
this.forceProxyType(txMethod.forceProxyType);
|
|
180
|
+
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
181
|
+
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
182
|
+
metadataRpc: this._material.metadata,
|
|
183
|
+
});
|
|
184
|
+
if (!decodedCall.value || !decodedCall.dest) {
|
|
185
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Proxy Transaction Method: ${this._method?.name}. Expected transferKeepAlive`);
|
|
186
|
+
}
|
|
187
|
+
this.amount(`${decodedCall.value}`);
|
|
188
|
+
this.to({
|
|
189
|
+
address: utils_1.default.decodeDotAddress(decodedCall.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected a transferKeepAlive or a proxy transferKeepAlive transaction`);
|
|
194
|
+
}
|
|
195
|
+
return tx;
|
|
196
|
+
}
|
|
197
|
+
/** @inheritdoc */
|
|
198
|
+
validateTransaction(_) {
|
|
199
|
+
super.validateTransaction(_);
|
|
200
|
+
this.validateFields(this._to, this._amount, this._owner, this._forceProxyType);
|
|
201
|
+
}
|
|
202
|
+
validateFields(to, amount, real, forceProxyType) {
|
|
203
|
+
let validationResult;
|
|
204
|
+
if (forceProxyType) {
|
|
205
|
+
validationResult = txnSchema_1.ProxyTransactionSchema.validate({ to, amount, real, forceProxyType });
|
|
206
|
+
}
|
|
207
|
+
else if (this._sweepFreeBalance) {
|
|
208
|
+
validationResult = txnSchema_1.TransferAllTransactionSchema.validate({ to });
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
212
|
+
}
|
|
213
|
+
if (validationResult.error) {
|
|
214
|
+
throw new sdk_core_1.InvalidTransactionError(`Proxy/TransferAll/TransferKeepAlive Transaction validation failed: ${validationResult.error.message}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.NativeTransferBuilder = NativeTransferBuilder;
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9uYXRpdmVUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTRHO0FBRTVHLHNFQUF3RDtBQUV4RCxnRUFBcUM7QUFDckMsbUNBQTJGO0FBQzNGLCtDQUEyQztBQUMzQywyREFBd0Q7QUFFeEQsNkRBQTBEO0FBQzFELDJDQUE4RztBQUM5RyxvREFBNEI7QUFFNUIsTUFBc0IscUJBQXNCLFNBQVEsdUNBQWtCO0lBUXBFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUlgsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHNCQUFpQixHQUFHLElBQUksQ0FBQztJQVFuQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLGdCQUFnQjtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLFVBQVUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsVUFBVSxHQUFHLDRCQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDdkM7Z0JBQ0UsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2FBQ2xDLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sVUFBVSxHQUFHLDRCQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUM3QztnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ25CLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3ZCLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLDRCQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDeEI7WUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDakIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3BDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTTtTQUN4QixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxTQUFtQjtRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBZTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxLQUFrQjtRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILGNBQWMsQ0FBQyxjQUF5QjtRQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMEJBQTBCLENBQUMsVUFBbUQsRUFBRSxjQUFzQjtRQUNwRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLG1CQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM5RCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQStCLENBQUM7WUFDbkUsTUFBTSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxxQ0FBeUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMsMkNBQTJDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2pILENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxtQkFBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBNEIsQ0FBQztZQUNoRSxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFVLEVBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUMvQyxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFO2dCQUN6RCxRQUFRLEVBQUUscUNBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZELFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7YUFDckMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEMsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxnQkFBZ0IsR0FBRyxrQ0FBc0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3Q0FBd0MsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDOUcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssbUJBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBb0IsQ0FBQztZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNOLE9BQU8sRUFBRSxlQUFLLENBQUMsZ0JBQWdCLENBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUNoQixlQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFxQixDQUFDLENBQy9EO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssbUJBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBdUIsQ0FBQztZQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNOLE9BQU8sRUFBRSxlQUFLLENBQUMsZ0JBQWdCLENBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUNoQixlQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFxQixDQUFDLENBQy9EO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQWlCLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDVCxPQUFPLEVBQUUsZUFBSyxDQUFDLGdCQUFnQixDQUM3QixJQUFBLHdCQUFVLEVBQUMsUUFBUSxDQUFDLEVBQ3BCLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQXFCLENBQUMsQ0FDL0Q7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM3QyxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFO2dCQUN6RCxRQUFRLEVBQUUscUNBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZELFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7YUFDckMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0IscUNBQXFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSw4QkFBOEIsQ0FDdEYsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDTixPQUFPLEVBQUUsZUFBSyxDQUFDLGdCQUFnQixDQUM3QixXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFDbkIsZUFBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBcUIsQ0FBQyxDQUMvRDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLGtDQUF1QixDQUMvQiw2QkFBNkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLHlFQUF5RSxDQUN6SCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxDQUFjO1FBQ2hDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sY0FBYyxDQUFDLEVBQVUsRUFBRSxNQUFjLEVBQUUsSUFBYSxFQUFFLGNBQXVCO1FBQ3ZGLElBQUksZ0JBQWdCLENBQUM7UUFDckIsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsR0FBRyxrQ0FBc0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLHdDQUE0QixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBZ0IsR0FBRyxxQ0FBeUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksa0NBQXVCLENBQy9CLHNFQUFzRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3ZHLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbFBELHNEQWtQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBEb3RBc3NldFR5cGVzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBNZXRob2ROYW1lcywgUHJveHlBcmdzLCBQcm94eVR5cGUsIFRyYW5zZmVyQWxsQXJncywgVHJhbnNmZXJBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBnZXRBZGRyZXNzIH0gZnJvbSAnLi9pZmFjZV91dGlscyc7XG5pbXBvcnQgeyBTaW5nbGV0b25SZWdpc3RyeSB9IGZyb20gJy4vc2luZ2xldG9uUmVnaXN0cnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEsIFRyYW5zZmVyQWxsVHJhbnNhY3Rpb25TY2hlbWEsIFRyYW5zZmVyVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXRpdmVUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3N3ZWVwRnJlZUJhbGFuY2UgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9rZWVwQWRkcmVzc0FsaXZlID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90bzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX293bmVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZm9yY2VQcm94eVR5cGU6IFByb3h5VHlwZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogRGlzcGF0Y2ggdGhlIGdpdmVuIGNhbGwgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoIGFkZF9wcm94eS5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIERvdCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3Byb3h5XG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgbGV0IHRyYW5zZmVyVHg7XG4gICAgaWYgKHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UpIHtcbiAgICAgIHRyYW5zZmVyVHggPSBtZXRob2RzLmJhbGFuY2VzLnRyYW5zZmVyQWxsKFxuICAgICAgICB7XG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgICBrZWVwQWxpdmU6IHRoaXMuX2tlZXBBZGRyZXNzQWxpdmUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlclR4ID0gbWV0aG9kcy5iYWxhbmNlcy50cmFuc2ZlcktlZXBBbGl2ZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgfSxcbiAgICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9vd25lcikge1xuICAgICAgcmV0dXJuIHRyYW5zZmVyVHg7XG4gICAgfVxuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnByb3h5KFxuICAgICAge1xuICAgICAgICByZWFsOiB0aGlzLl9vd25lcixcbiAgICAgICAgZm9yY2VQcm94eVR5cGU6IHRoaXMuX2ZvcmNlUHJveHlUeXBlLFxuICAgICAgICBjYWxsOiB0cmFuc2ZlclR4Lm1ldGhvZCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogU2V0IHRoaXMgdG8gYmUgYSBzd2VlcCB0cmFuc2FjdGlvbiwgdXNpbmcgVHJhbnNmZXJBbGwgd2l0aCBrZWVwQWxpdmUgc2V0IHRvIHRydWUgYnkgZGVmYXVsdC5cbiAgICogSWYga2VlcEFsaXZlIGlzIGZhbHNlLCB0aGUgZW50aXJlIGFkZHJlc3Mgd2lsbCBiZSBzd2VwdCAoaW5jbHVkaW5nIHRoZSAxIERPVCBtaW5pbXVtKS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBrZWVwQWxpdmUgLSBrZWVwIHRoZSBhZGRyZXNzIGFsaXZlIGFmdGVyIHRoaXMgc3dlZXBcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3R4d3JhcHBlci1jb3JlL2Jsb2IvbWFpbi9kb2NzL21vZHVsZXMvdHh3cmFwcGVyX3N1YnN0cmF0ZV9zcmMubWV0aG9kcy5iYWxhbmNlcy5tZCN0cmFuc2ZlcmFsbFxuICAgKi9cbiAgc3dlZXAoa2VlcEFsaXZlPzogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UgPSB0cnVlO1xuICAgIGlmIChrZWVwQWxpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fa2VlcEFkZHJlc3NBbGl2ZSA9IGtlZXBBbGl2ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIGFtb3VudCBmb3IgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnRcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoYW1vdW50KSk7XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzIGZvciB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgdG8oeyBhZGRyZXNzIH06IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMuX3RvID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgcmVhbCBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCB0eFxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSByZWFsXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjd2h5LXVzZS1hLXByb3h5XG4gICAqL1xuICBvd25lcihvd25lcjogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IG93bmVyLmFkZHJlc3MgfSk7XG4gICAgdGhpcy5fb3duZXIgPSBvd25lci5hZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBwcm94eSB0eXBlIHRvIGV4ZWN1dGVcbiAgICpcbiAgICogQHBhcmFtIHtwcm94eVR5cGV9IGZvcmNlUHJveHlUeXBlXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjcHJveHktdHlwZXNcbiAgICovXG4gIGZvcmNlUHJveHlUeXBlKGZvcmNlUHJveHlUeXBlOiBQcm94eVR5cGUpOiB0aGlzIHtcbiAgICB0aGlzLl9mb3JjZVByb3h5VHlwZSA9IGZvcmNlUHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFRyYW5zZmVyQXJncztcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke3R4TWV0aG9kLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IHR4TWV0aG9kLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zZmVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5Qcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgUHJveHlBcmdzO1xuICAgICAgY29uc3QgcmVhbCA9IGdldEFkZHJlc3ModHhNZXRob2QpO1xuICAgICAgY29uc3QgZm9yY2VQcm94eVR5cGUgPSB0eE1ldGhvZC5mb3JjZVByb3h5VHlwZTtcbiAgICAgIGNvbnN0IGRlY29kZWRDYWxsID0gdXRpbHMuZGVjb2RlQ2FsbE1ldGhvZChyYXdUcmFuc2FjdGlvbiwge1xuICAgICAgICByZWdpc3RyeTogU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UodGhpcy5fbWF0ZXJpYWwpLFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke2RlY29kZWRDYWxsLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IGRlY29kZWRDYWxsLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gUHJveHlUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHJlYWwsIGZvcmNlUHJveHlUeXBlLCBhbW91bnQsIHRvIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBQcm94eSBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgVHJhbnNmZXJBcmdzO1xuICAgICAgdGhpcy5hbW91bnQodHhNZXRob2QudmFsdWUpO1xuICAgICAgdGhpcy50byh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgdHhNZXRob2QuZGVzdC5pZCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlRyYW5zZmVyQWxsKSB7XG4gICAgICB0aGlzLl9zd2VlcEZyZWVCYWxhbmNlID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgVHJhbnNmZXJBbGxBcmdzO1xuICAgICAgdGhpcy5zd2VlcCh0eE1ldGhvZC5rZWVwQWxpdmUpO1xuICAgICAgdGhpcy50byh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgdHhNZXRob2QuZGVzdC5pZCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlByb3h5KSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIFByb3h5QXJncztcbiAgICAgIHRoaXMub3duZXIoe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5kZWNvZGVEb3RBZGRyZXNzKFxuICAgICAgICAgIGdldEFkZHJlc3ModHhNZXRob2QpLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9yY2VQcm94eVR5cGUodHhNZXRob2QuZm9yY2VQcm94eVR5cGUpO1xuICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB1dGlscy5kZWNvZGVDYWxsTWV0aG9kKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICAgIHJlZ2lzdHJ5OiBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZSh0aGlzLl9tYXRlcmlhbCksXG4gICAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFkZWNvZGVkQ2FsbC52YWx1ZSB8fCAhZGVjb2RlZENhbGwuZGVzdCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgUHJveHkgVHJhbnNhY3Rpb24gTWV0aG9kOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIHRyYW5zZmVyS2VlcEFsaXZlYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5hbW91bnQoYCR7ZGVjb2RlZENhbGwudmFsdWV9YCk7XG4gICAgICB0aGlzLnRvKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhcbiAgICAgICAgICBkZWNvZGVkQ2FsbC5kZXN0LmlkLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIGEgdHJhbnNmZXJLZWVwQWxpdmUgb3IgYSBwcm94eSB0cmFuc2ZlcktlZXBBbGl2ZSB0cmFuc2FjdGlvbmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX3RvLCB0aGlzLl9hbW91bnQsIHRoaXMuX293bmVyLCB0aGlzLl9mb3JjZVByb3h5VHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKHRvOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nLCByZWFsPzogc3RyaW5nLCBmb3JjZVByb3h5VHlwZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIGlmIChmb3JjZVByb3h5VHlwZSkge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyB0bywgYW1vdW50LCByZWFsLCBmb3JjZVByb3h5VHlwZSB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UpIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlckFsbFRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdG8gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgYW1vdW50LCB0byB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgUHJveHkvVHJhbnNmZXJBbGwvVHJhbnNmZXJLZWVwQWxpdmUgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TypeRegistry } from '@substrate/txwrapper-core/lib/types';
|
|
2
|
+
export declare class SingletonRegistry {
|
|
3
|
+
private static instance;
|
|
4
|
+
private static material;
|
|
5
|
+
static getInstance(material: any): TypeRegistry;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=singletonRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singletonRegistry.d.ts","sourceRoot":"","sources":["../../../src/lib/singletonRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAInE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAElC,MAAM,CAAC,WAAW,CAAC,QAAQ,KAAA,GAAG,YAAY;CAY3C"}
|