@bitgo/sdk-coin-dot 1.0.2 → 1.0.3-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/CHANGELOG.md +23 -7
- package/dist/src/lib/index.d.ts +1 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +4 -2
- package/dist/src/lib/nativeTransferBuilder.d.ts +71 -0
- package/dist/src/lib/nativeTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/nativeTransferBuilder.js +177 -0
- package/dist/src/lib/transferBuilder.d.ts +2 -62
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +3 -169
- package/package.json +6 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
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.0.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.
|
|
6
|
+
## [1.0.3-rc.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.3-rc.1...@bitgo/sdk-coin-dot@1.0.3-rc.2) (2022-08-01)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
## [1.0.
|
|
14
|
+
## [1.0.3-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.3-rc.0...@bitgo/sdk-coin-dot@1.0.3-rc.1) (2022-07-27)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
17
17
|
|
|
@@ -19,7 +19,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
## [1.0.
|
|
22
|
+
## [1.0.3-rc.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.2...@bitgo/sdk-coin-dot@1.0.3-rc.0) (2022-07-26)
|
|
23
23
|
|
|
24
24
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
25
25
|
|
|
@@ -27,7 +27,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
## [1.0.
|
|
30
|
+
## [1.0.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.2-rc.1...@bitgo/sdk-coin-dot@1.0.2) (2022-07-21)
|
|
31
31
|
|
|
32
32
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
33
33
|
|
|
@@ -35,7 +35,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
## [1.0.
|
|
38
|
+
## [1.0.2-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.2-rc.0...@bitgo/sdk-coin-dot@1.0.2-rc.1) (2022-07-21)
|
|
39
39
|
|
|
40
40
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
41
41
|
|
|
@@ -43,7 +43,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
## [1.0.
|
|
46
|
+
## [1.0.2-rc.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.1...@bitgo/sdk-coin-dot@1.0.2-rc.0) (2022-07-20)
|
|
47
47
|
|
|
48
48
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
49
49
|
|
|
@@ -51,7 +51,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
## [1.0.1
|
|
54
|
+
## [1.0.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.1-rc.3...@bitgo/sdk-coin-dot@1.0.1) (2022-07-19)
|
|
55
55
|
|
|
56
56
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
57
57
|
|
|
@@ -59,6 +59,22 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
|
|
62
|
+
## [1.0.1-rc.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.1-rc.1...@bitgo/sdk-coin-dot@1.0.1-rc.3) (2022-07-19)
|
|
63
|
+
|
|
64
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
65
|
+
|
|
66
|
+
## [1.0.1-rc.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.1-rc.1...@bitgo/sdk-coin-dot@1.0.1-rc.3) (2022-07-19)
|
|
67
|
+
|
|
68
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
69
|
+
|
|
70
|
+
## [1.0.1-rc.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.1-rc.1...@bitgo/sdk-coin-dot@1.0.1-rc.2) (2022-07-18)
|
|
71
|
+
|
|
72
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
73
|
+
|
|
74
|
+
## [1.0.1-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-dot@1.0.1-rc.0...@bitgo/sdk-coin-dot@1.0.1-rc.1) (2022-07-15)
|
|
75
|
+
|
|
76
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
|
77
|
+
|
|
62
78
|
## 1.0.1-rc.0 (2022-07-15)
|
|
63
79
|
|
|
64
80
|
**Note:** Version bump only for package @bitgo/sdk-coin-dot
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -13,5 +13,6 @@ export { WithdrawUnstakedBuilder } from './withdrawUnstakedBuilder';
|
|
|
13
13
|
export { ClaimBuilder } from './claimBuilder';
|
|
14
14
|
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
15
15
|
export { SingletonRegistry } from './singletonRegistry';
|
|
16
|
+
export { NativeTransferBuilder } from './nativeTransferBuilder';
|
|
16
17
|
export { Interface, Utils };
|
|
17
18
|
//# 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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,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
|
@@ -19,7 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.Utils = exports.Interface = exports.SingletonRegistry = exports.TransactionBuilderFactory = exports.ClaimBuilder = exports.WithdrawUnstakedBuilder = exports.UnnominateBuilder = exports.UnstakeBuilder = exports.BatchTransactionBuilder = exports.AddressInitializationBuilder = exports.TransferBuilder = exports.StakingBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
|
|
22
|
+
exports.Utils = exports.Interface = exports.NativeTransferBuilder = exports.SingletonRegistry = exports.TransactionBuilderFactory = exports.ClaimBuilder = exports.WithdrawUnstakedBuilder = exports.UnnominateBuilder = exports.UnstakeBuilder = exports.BatchTransactionBuilder = exports.AddressInitializationBuilder = exports.TransferBuilder = exports.StakingBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
|
|
23
23
|
const Utils = __importStar(require("./utils"));
|
|
24
24
|
exports.Utils = Utils;
|
|
25
25
|
const Interface = __importStar(require("./iface"));
|
|
@@ -50,4 +50,6 @@ 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
52
|
Object.defineProperty(exports, "SingletonRegistry", { enumerable: true, get: function () { return singletonRegistry_1.SingletonRegistry; } });
|
|
53
|
-
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFpQmIsc0JBQUs7QUFoQnpCLG1EQUFxQztBQWdCNUIsOEJBQVM7QUFkbEIscUNBQW9DO0FBQTNCLGtHQUFBLE9BQU8sT0FBQTtBQUNoQiw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixtREFBa0Q7QUFBekMsZ0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIsK0VBQThFO0FBQXJFLDRJQUFBLDRCQUE0QixPQUFBO0FBQ3JDLHFFQUFvRTtBQUEzRCxrSUFBQSx1QkFBdUIsT0FBQTtBQUNoQyxtREFBa0Q7QUFBekMsZ0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLHlEQUF3RDtBQUEvQyxzSEFBQSxpQkFBaUIsT0FBQTtBQUMxQixxRUFBb0U7QUFBM0Qsa0lBQUEsdUJBQXVCLE9BQUE7QUFDaEMsK0NBQThDO0FBQXJDLDRHQUFBLFlBQVksT0FBQTtBQUNyQix5RUFBd0U7QUFBL0Qsc0lBQUEseUJBQXlCLE9BQUE7QUFDbEMseURBQXdEO0FBQS9DLHNIQUFBLGlCQUFpQixPQUFBO0FBQzFCLGlFQUFnRTtBQUF2RCw4SEFBQSxxQkFBcUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgSW50ZXJmYWNlIGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBTdGFraW5nQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0J1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgQWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vYWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBCYXRjaFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vYmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVW5zdGFrZUJ1aWxkZXIgfSBmcm9tICcuL3Vuc3Rha2VCdWlsZGVyJztcbmV4cG9ydCB7IFVubm9taW5hdGVCdWlsZGVyIH0gZnJvbSAnLi91bm5vbWluYXRlQnVpbGRlcic7XG5leHBvcnQgeyBXaXRoZHJhd1Vuc3Rha2VkQnVpbGRlciB9IGZyb20gJy4vd2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXInO1xuZXhwb3J0IHsgQ2xhaW1CdWlsZGVyIH0gZnJvbSAnLi9jbGFpbUJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBTaW5nbGV0b25SZWdpc3RyeSB9IGZyb20gJy4vc2luZ2xldG9uUmVnaXN0cnknO1xuZXhwb3J0IHsgTmF0aXZlVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9uYXRpdmVUcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgSW50ZXJmYWNlLCBVdGlscyB9O1xuIl19
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { BaseAddress, TransactionType } from '@bitgo/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo/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 _amount: string;
|
|
9
|
+
protected _to: string;
|
|
10
|
+
protected _owner: string;
|
|
11
|
+
protected _forceProxyType: ProxyType;
|
|
12
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
16
|
+
*
|
|
17
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
18
|
+
*
|
|
19
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
20
|
+
*/
|
|
21
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
22
|
+
protected get transactionType(): TransactionType;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* The amount for transfer transaction.
|
|
26
|
+
*
|
|
27
|
+
* @param {string} amount
|
|
28
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
29
|
+
*
|
|
30
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
31
|
+
*/
|
|
32
|
+
amount(amount: string): this;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* The destination address for transfer transaction.
|
|
36
|
+
*
|
|
37
|
+
* @param {string} dest
|
|
38
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
39
|
+
*
|
|
40
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
41
|
+
*/
|
|
42
|
+
to({ address }: BaseAddress): this;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* The real address of the original tx
|
|
46
|
+
*
|
|
47
|
+
* @param {BaseAddress} real
|
|
48
|
+
* @returns {TransferBuilder} This builder.
|
|
49
|
+
*
|
|
50
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
51
|
+
*/
|
|
52
|
+
owner(owner: BaseAddress): this;
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
* The proxy type to execute
|
|
56
|
+
*
|
|
57
|
+
* @param {proxyType} forceProxyType
|
|
58
|
+
* @returns {TransferBuilder} This builder.
|
|
59
|
+
*
|
|
60
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
61
|
+
*/
|
|
62
|
+
forceProxyType(forceProxyType: ProxyType): this;
|
|
63
|
+
/** @inheritdoc */
|
|
64
|
+
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
|
|
65
|
+
/** @inheritdoc */
|
|
66
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
67
|
+
/** @inheritdoc */
|
|
68
|
+
validateTransaction(_: Transaction): void;
|
|
69
|
+
private validateFields;
|
|
70
|
+
}
|
|
71
|
+
//# 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,iBAAiB,CAAC;AACvG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAA0B,SAAS,EAAgB,MAAM,SAAS,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,8BAAsB,qBAAsB,SAAQ,kBAAkB;IACpE,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,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;IAyCjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAWvB"}
|
|
@@ -0,0 +1,177 @@
|
|
|
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/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 singletonRegistry_1 = require("./singletonRegistry");
|
|
12
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
13
|
+
const txnSchema_1 = require("./txnSchema");
|
|
14
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
15
|
+
class NativeTransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
16
|
+
constructor(_coinConfig) {
|
|
17
|
+
super(_coinConfig);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
22
|
+
*
|
|
23
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
24
|
+
*
|
|
25
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
26
|
+
*/
|
|
27
|
+
buildTransaction() {
|
|
28
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
29
|
+
const transferTx = txwrapper_polkadot_1.methods.balances.transferKeepAlive({
|
|
30
|
+
value: this._amount,
|
|
31
|
+
dest: this._to,
|
|
32
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
33
|
+
if (!this._owner) {
|
|
34
|
+
return transferTx;
|
|
35
|
+
}
|
|
36
|
+
return txwrapper_polkadot_1.methods.proxy.proxy({
|
|
37
|
+
real: this._owner,
|
|
38
|
+
forceProxyType: this._forceProxyType,
|
|
39
|
+
call: transferTx.method,
|
|
40
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
41
|
+
}
|
|
42
|
+
get transactionType() {
|
|
43
|
+
return sdk_core_1.TransactionType.Send;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* The amount for transfer transaction.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} amount
|
|
50
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
51
|
+
*
|
|
52
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
53
|
+
*/
|
|
54
|
+
amount(amount) {
|
|
55
|
+
this.validateValue(new bignumber_js_1.default(amount));
|
|
56
|
+
this._amount = amount;
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
* The destination address for transfer transaction.
|
|
62
|
+
*
|
|
63
|
+
* @param {string} dest
|
|
64
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
65
|
+
*
|
|
66
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
67
|
+
*/
|
|
68
|
+
to({ address }) {
|
|
69
|
+
this.validateAddress({ address });
|
|
70
|
+
this._to = address;
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
* The real address of the original tx
|
|
76
|
+
*
|
|
77
|
+
* @param {BaseAddress} real
|
|
78
|
+
* @returns {TransferBuilder} This builder.
|
|
79
|
+
*
|
|
80
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
81
|
+
*/
|
|
82
|
+
owner(owner) {
|
|
83
|
+
this.validateAddress({ address: owner.address });
|
|
84
|
+
this._owner = owner.address;
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
*
|
|
89
|
+
* The proxy type to execute
|
|
90
|
+
*
|
|
91
|
+
* @param {proxyType} forceProxyType
|
|
92
|
+
* @returns {TransferBuilder} This builder.
|
|
93
|
+
*
|
|
94
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
95
|
+
*/
|
|
96
|
+
forceProxyType(forceProxyType) {
|
|
97
|
+
this._forceProxyType = forceProxyType;
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
/** @inheritdoc */
|
|
101
|
+
validateDecodedTransaction(decodedTxn, rawTransaction) {
|
|
102
|
+
var _a, _b;
|
|
103
|
+
if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
|
|
104
|
+
const txMethod = decodedTxn.method.args;
|
|
105
|
+
const amount = `${txMethod.value}`;
|
|
106
|
+
const to = txMethod.dest.id;
|
|
107
|
+
const validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
108
|
+
if (validationResult.error) {
|
|
109
|
+
throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else if (((_b = decodedTxn.method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.Proxy) {
|
|
113
|
+
const txMethod = decodedTxn.method.args;
|
|
114
|
+
const real = txMethod.real;
|
|
115
|
+
const forceProxyType = txMethod.forceProxyType;
|
|
116
|
+
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
117
|
+
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
118
|
+
metadataRpc: this._material.metadata,
|
|
119
|
+
});
|
|
120
|
+
const amount = `${decodedCall.value}`;
|
|
121
|
+
const to = decodedCall.dest.id;
|
|
122
|
+
const validationResult = txnSchema_1.ProxyTransactionSchema.validate({ real, forceProxyType, amount, to });
|
|
123
|
+
if (validationResult.error) {
|
|
124
|
+
throw new sdk_core_1.InvalidTransactionError(`Proxy Transaction validation failed: ${validationResult.error.message}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/** @inheritdoc */
|
|
129
|
+
fromImplementation(rawTransaction) {
|
|
130
|
+
var _a, _b, _c, _d;
|
|
131
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
132
|
+
if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
|
|
133
|
+
const txMethod = this._method.args;
|
|
134
|
+
this.amount(txMethod.value);
|
|
135
|
+
this.to({
|
|
136
|
+
address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else if (((_b = this._method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.Proxy) {
|
|
140
|
+
const txMethod = this._method.args;
|
|
141
|
+
this.owner({
|
|
142
|
+
address: utils_1.default.decodeDotAddress(txMethod.real, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
143
|
+
});
|
|
144
|
+
this.forceProxyType(txMethod.forceProxyType);
|
|
145
|
+
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
146
|
+
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
147
|
+
metadataRpc: this._material.metadata,
|
|
148
|
+
});
|
|
149
|
+
if (!decodedCall.value || !decodedCall.dest) {
|
|
150
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Proxy Transaction Method: ${(_c = this._method) === null || _c === void 0 ? void 0 : _c.name}. Expected transferKeepAlive`);
|
|
151
|
+
}
|
|
152
|
+
this.amount(`${decodedCall.value}`);
|
|
153
|
+
this.to({
|
|
154
|
+
address: utils_1.default.decodeDotAddress(decodedCall.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_d = this._method) === null || _d === void 0 ? void 0 : _d.name}. Expected a transferKeepAlive or a proxy transferKeepAlive transaction`);
|
|
159
|
+
}
|
|
160
|
+
return tx;
|
|
161
|
+
}
|
|
162
|
+
/** @inheritdoc */
|
|
163
|
+
validateTransaction(_) {
|
|
164
|
+
super.validateTransaction(_);
|
|
165
|
+
this.validateFields(this._to, this._amount, this._owner, this._forceProxyType);
|
|
166
|
+
}
|
|
167
|
+
validateFields(to, amount, real, forceProxyType) {
|
|
168
|
+
const validationResult = forceProxyType
|
|
169
|
+
? txnSchema_1.ProxyTransactionSchema.validate({ to, amount, real, forceProxyType })
|
|
170
|
+
: txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
171
|
+
if (validationResult.error) {
|
|
172
|
+
throw new sdk_core_1.InvalidTransactionError(`Proxy/TransferKeepAlive Transaction validation failed: ${validationResult.error.message}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.NativeTransferBuilder = NativeTransferBuilder;
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9uYXRpdmVUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXVHO0FBRXZHLHNFQUF3RDtBQUV4RCxnRUFBcUM7QUFDckMsbUNBQTBFO0FBQzFFLDJEQUF3RDtBQUV4RCw2REFBMEQ7QUFDMUQsMkNBQWdGO0FBQ2hGLG9EQUE0QjtBQUU1QixNQUFzQixxQkFBc0IsU0FBUSx1Q0FBa0I7SUFNcEUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsNEJBQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQ25EO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRztTQUNmLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQ3hCO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ2pCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNwQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU07U0FDeEIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFD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QUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7WUFDdkUsQ0FBQyxDQUFDLHFDQUF5QixDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXZELElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0IsMERBQTBELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDM0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGO0FBL0xELHNEQStMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBEb3RBc3NldFR5cGVzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBtZXRob2RzIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IE1ldGhvZE5hbWVzLCBQcm94eUFyZ3MsIFByb3h5VHlwZSwgVHJhbnNmZXJBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBTaW5nbGV0b25SZWdpc3RyeSB9IGZyb20gJy4vc2luZ2xldG9uUmVnaXN0cnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEsIFRyYW5zZmVyVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXRpdmVUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2Ftb3VudDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3RvOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfb3duZXI6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9mb3JjZVByb3h5VHlwZTogUHJveHlUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBEaXNwYXRjaCB0aGUgZ2l2ZW4gY2FsbCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcmlzZWQgZm9yIHRocm91Z2ggYWRkX3Byb3h5LlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgRG90IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jcHJveHlcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBjb25zdCB0cmFuc2ZlclR4ID0gbWV0aG9kcy5iYWxhbmNlcy50cmFuc2ZlcktlZXBBbGl2ZShcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgZGVzdDogdGhpcy5fdG8sXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuX293bmVyKSB7XG4gICAgICByZXR1cm4gdHJhbnNmZXJUeDtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGhvZHMucHJveHkucHJveHkoXG4gICAgICB7XG4gICAgICAgIHJlYWw6IHRoaXMuX293bmVyLFxuICAgICAgICBmb3JjZVByb3h5VHlwZTogdGhpcy5fZm9yY2VQcm94eVR5cGUsXG4gICAgICAgIGNhbGw6IHRyYW5zZmVyVHgubWV0aG9kLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgYW1vdW50IGZvciB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC1wcm90b2NvbC1pbmZvXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihhbW91bnQpKTtcbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIHRyYW5zZmVyIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC1wcm90b2NvbC1pbmZvXG4gICAqL1xuICB0byh7IGFkZHJlc3MgfTogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5fdG8gPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSByZWFsIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIHR4XG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUFkZHJlc3N9IHJlYWxcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyN3aHktdXNlLWEtcHJveHlcbiAgICovXG4gIG93bmVyKG93bmVyOiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogb3duZXIuYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9vd25lciA9IG93bmVyLmFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIHByb3h5IHR5cGUgdG8gZXhlY3V0ZVxuICAgKlxuICAgKiBAcGFyYW0ge3Byb3h5VHlwZX0gZm9yY2VQcm94eVR5cGVcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyNwcm94eS10eXBlc1xuICAgKi9cbiAgZm9yY2VQcm94eVR5cGUoZm9yY2VQcm94eVR5cGU6IFByb3h5VHlwZSk6IHRoaXMge1xuICAgIHRoaXMuX2ZvcmNlUHJveHlUeXBlID0gZm9yY2VQcm94eVR5cGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4LCByYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5UcmFuc2ZlcktlZXBBbGl2ZSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgVHJhbnNmZXJBcmdzO1xuICAgICAgY29uc3QgYW1vdW50ID0gYCR7dHhNZXRob2QudmFsdWV9YDtcbiAgICAgIGNvbnN0IHRvID0gdHhNZXRob2QuZGVzdC5pZDtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgYW1vdW50LCB0byB9KTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNmZXIgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlByb3h5KSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBQcm94eUFyZ3M7XG4gICAgICBjb25zdCByZWFsID0gdHhNZXRob2QucmVhbDtcbiAgICAgIGNvbnN0IGZvcmNlUHJveHlUeXBlID0gdHhNZXRob2QuZm9yY2VQcm94eVR5cGU7XG4gICAgICBjb25zdCBkZWNvZGVkQ2FsbCA9IHV0aWxzLmRlY29kZUNhbGxNZXRob2QocmF3VHJhbnNhY3Rpb24sIHtcbiAgICAgICAgcmVnaXN0cnk6IFNpbmdsZXRvblJlZ2lzdHJ5LmdldEluc3RhbmNlKHRoaXMuX21hdGVyaWFsKSxcbiAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBhbW91bnQgPSBgJHtkZWNvZGVkQ2FsbC52YWx1ZX1gO1xuICAgICAgY29uc3QgdG8gPSBkZWNvZGVkQ2FsbC5kZXN0LmlkO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyByZWFsLCBmb3JjZVByb3h5VHlwZSwgYW1vdW50LCB0byB9KTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgUHJveHkgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlRyYW5zZmVyS2VlcEFsaXZlKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIFRyYW5zZmVyQXJncztcbiAgICAgIHRoaXMuYW1vdW50KHR4TWV0aG9kLnZhbHVlKTtcbiAgICAgIHRoaXMudG8oe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5kZWNvZGVEb3RBZGRyZXNzKFxuICAgICAgICAgIHR4TWV0aG9kLmRlc3QuaWQsXG4gICAgICAgICAgdXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcylcbiAgICAgICAgKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5Qcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBQcm94eUFyZ3M7XG4gICAgICB0aGlzLm93bmVyKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyh0eE1ldGhvZC5yZWFsLCB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9yY2VQcm94eVR5cGUodHhNZXRob2QuZm9yY2VQcm94eVR5cGUpO1xuICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB1dGlscy5kZWNvZGVDYWxsTWV0aG9kKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICAgIHJlZ2lzdHJ5OiBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZSh0aGlzLl9tYXRlcmlhbCksXG4gICAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFkZWNvZGVkQ2FsbC52YWx1ZSB8fCAhZGVjb2RlZENhbGwuZGVzdCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgUHJveHkgVHJhbnNhY3Rpb24gTWV0aG9kOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIHRyYW5zZmVyS2VlcEFsaXZlYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5hbW91bnQoYCR7ZGVjb2RlZENhbGwudmFsdWV9YCk7XG4gICAgICB0aGlzLnRvKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhcbiAgICAgICAgICBkZWNvZGVkQ2FsbC5kZXN0LmlkLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIGEgdHJhbnNmZXJLZWVwQWxpdmUgb3IgYSBwcm94eSB0cmFuc2ZlcktlZXBBbGl2ZSB0cmFuc2FjdGlvbmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX3RvLCB0aGlzLl9hbW91bnQsIHRoaXMuX293bmVyLCB0aGlzLl9mb3JjZVByb3h5VHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKHRvOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nLCByZWFsPzogc3RyaW5nLCBmb3JjZVByb3h5VHlwZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBmb3JjZVByb3h5VHlwZVxuICAgICAgPyBQcm94eVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdG8sIGFtb3VudCwgcmVhbCwgZm9yY2VQcm94eVR5cGUgfSlcbiAgICAgIDogVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgUHJveHkvVHJhbnNmZXJLZWVwQWxpdmUgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,71 +1,11 @@
|
|
|
1
|
-
import { BaseAddress, TransactionType } from '@bitgo/sdk-core';
|
|
2
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
3
|
-
import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
4
2
|
import { ProxyType } from './iface';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
export declare class TransferBuilder extends TransactionBuilder {
|
|
3
|
+
import { NativeTransferBuilder } from './nativeTransferBuilder';
|
|
4
|
+
export declare class TransferBuilder extends NativeTransferBuilder {
|
|
8
5
|
protected _amount: string;
|
|
9
6
|
protected _to: string;
|
|
10
7
|
protected _owner: string;
|
|
11
8
|
protected _forceProxyType: ProxyType;
|
|
12
9
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
16
|
-
*
|
|
17
|
-
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
18
|
-
*
|
|
19
|
-
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
20
|
-
*/
|
|
21
|
-
protected buildTransaction(): UnsignedTransaction;
|
|
22
|
-
protected get transactionType(): TransactionType;
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
* The amount for transfer transaction.
|
|
26
|
-
*
|
|
27
|
-
* @param {string} amount
|
|
28
|
-
* @returns {TransferBuilder} This transfer builder.
|
|
29
|
-
*
|
|
30
|
-
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
31
|
-
*/
|
|
32
|
-
amount(amount: string): this;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* The destination address for transfer transaction.
|
|
36
|
-
*
|
|
37
|
-
* @param {string} dest
|
|
38
|
-
* @returns {TransferBuilder} This transfer builder.
|
|
39
|
-
*
|
|
40
|
-
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
41
|
-
*/
|
|
42
|
-
to({ address }: BaseAddress): this;
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* The real address of the original tx
|
|
46
|
-
*
|
|
47
|
-
* @param {BaseAddress} real
|
|
48
|
-
* @returns {TransferBuilder} This builder.
|
|
49
|
-
*
|
|
50
|
-
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
51
|
-
*/
|
|
52
|
-
owner(owner: BaseAddress): this;
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
* The proxy type to execute
|
|
56
|
-
*
|
|
57
|
-
* @param {proxyType} forceProxyType
|
|
58
|
-
* @returns {TransferBuilder} This builder.
|
|
59
|
-
*
|
|
60
|
-
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
61
|
-
*/
|
|
62
|
-
forceProxyType(forceProxyType: ProxyType): this;
|
|
63
|
-
/** @inheritdoc */
|
|
64
|
-
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
|
|
65
|
-
/** @inheritdoc */
|
|
66
|
-
protected fromImplementation(rawTransaction: string): Transaction;
|
|
67
|
-
/** @inheritdoc */
|
|
68
|
-
validateTransaction(_: Transaction): void;
|
|
69
|
-
private validateFields;
|
|
70
10
|
}
|
|
71
11
|
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,qBAAa,eAAgB,SAAQ,qBAAqB;IACxD,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;CAG9C"}
|
|
@@ -1,177 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.TransferBuilder = void 0;
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
-
const iface_1 = require("./iface");
|
|
11
|
-
const singletonRegistry_1 = require("./singletonRegistry");
|
|
12
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
13
|
-
const txnSchema_1 = require("./txnSchema");
|
|
14
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
15
|
-
class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
4
|
+
const nativeTransferBuilder_1 = require("./nativeTransferBuilder");
|
|
5
|
+
class TransferBuilder extends nativeTransferBuilder_1.NativeTransferBuilder {
|
|
16
6
|
constructor(_coinConfig) {
|
|
17
7
|
super(_coinConfig);
|
|
18
8
|
}
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
22
|
-
*
|
|
23
|
-
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
24
|
-
*
|
|
25
|
-
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
26
|
-
*/
|
|
27
|
-
buildTransaction() {
|
|
28
|
-
const baseTxInfo = this.createBaseTxInfo();
|
|
29
|
-
const transferTx = txwrapper_polkadot_1.methods.balances.transferKeepAlive({
|
|
30
|
-
value: this._amount,
|
|
31
|
-
dest: this._to,
|
|
32
|
-
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
33
|
-
if (!this._owner) {
|
|
34
|
-
return transferTx;
|
|
35
|
-
}
|
|
36
|
-
return txwrapper_polkadot_1.methods.proxy.proxy({
|
|
37
|
-
real: this._owner,
|
|
38
|
-
forceProxyType: this._forceProxyType,
|
|
39
|
-
call: transferTx.method,
|
|
40
|
-
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
41
|
-
}
|
|
42
|
-
get transactionType() {
|
|
43
|
-
return sdk_core_1.TransactionType.Send;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
*
|
|
47
|
-
* The amount for transfer transaction.
|
|
48
|
-
*
|
|
49
|
-
* @param {string} amount
|
|
50
|
-
* @returns {TransferBuilder} This transfer builder.
|
|
51
|
-
*
|
|
52
|
-
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
53
|
-
*/
|
|
54
|
-
amount(amount) {
|
|
55
|
-
this.validateValue(new bignumber_js_1.default(amount));
|
|
56
|
-
this._amount = amount;
|
|
57
|
-
return this;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
*
|
|
61
|
-
* The destination address for transfer transaction.
|
|
62
|
-
*
|
|
63
|
-
* @param {string} dest
|
|
64
|
-
* @returns {TransferBuilder} This transfer builder.
|
|
65
|
-
*
|
|
66
|
-
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
67
|
-
*/
|
|
68
|
-
to({ address }) {
|
|
69
|
-
this.validateAddress({ address });
|
|
70
|
-
this._to = address;
|
|
71
|
-
return this;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
*
|
|
75
|
-
* The real address of the original tx
|
|
76
|
-
*
|
|
77
|
-
* @param {BaseAddress} real
|
|
78
|
-
* @returns {TransferBuilder} This builder.
|
|
79
|
-
*
|
|
80
|
-
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
81
|
-
*/
|
|
82
|
-
owner(owner) {
|
|
83
|
-
this.validateAddress({ address: owner.address });
|
|
84
|
-
this._owner = owner.address;
|
|
85
|
-
return this;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
*
|
|
89
|
-
* The proxy type to execute
|
|
90
|
-
*
|
|
91
|
-
* @param {proxyType} forceProxyType
|
|
92
|
-
* @returns {TransferBuilder} This builder.
|
|
93
|
-
*
|
|
94
|
-
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
95
|
-
*/
|
|
96
|
-
forceProxyType(forceProxyType) {
|
|
97
|
-
this._forceProxyType = forceProxyType;
|
|
98
|
-
return this;
|
|
99
|
-
}
|
|
100
|
-
/** @inheritdoc */
|
|
101
|
-
validateDecodedTransaction(decodedTxn, rawTransaction) {
|
|
102
|
-
var _a, _b;
|
|
103
|
-
if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
|
|
104
|
-
const txMethod = decodedTxn.method.args;
|
|
105
|
-
const amount = `${txMethod.value}`;
|
|
106
|
-
const to = txMethod.dest.id;
|
|
107
|
-
const validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
108
|
-
if (validationResult.error) {
|
|
109
|
-
throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
else if (((_b = decodedTxn.method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.Proxy) {
|
|
113
|
-
const txMethod = decodedTxn.method.args;
|
|
114
|
-
const real = txMethod.real;
|
|
115
|
-
const forceProxyType = txMethod.forceProxyType;
|
|
116
|
-
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
117
|
-
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
118
|
-
metadataRpc: this._material.metadata,
|
|
119
|
-
});
|
|
120
|
-
const amount = `${decodedCall.value}`;
|
|
121
|
-
const to = decodedCall.dest.id;
|
|
122
|
-
const validationResult = txnSchema_1.ProxyTransactionSchema.validate({ real, forceProxyType, amount, to });
|
|
123
|
-
if (validationResult.error) {
|
|
124
|
-
throw new sdk_core_1.InvalidTransactionError(`Proxy Transaction validation failed: ${validationResult.error.message}`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
/** @inheritdoc */
|
|
129
|
-
fromImplementation(rawTransaction) {
|
|
130
|
-
var _a, _b, _c, _d;
|
|
131
|
-
const tx = super.fromImplementation(rawTransaction);
|
|
132
|
-
if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
|
|
133
|
-
const txMethod = this._method.args;
|
|
134
|
-
this.amount(txMethod.value);
|
|
135
|
-
this.to({
|
|
136
|
-
address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
else if (((_b = this._method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.Proxy) {
|
|
140
|
-
const txMethod = this._method.args;
|
|
141
|
-
this.owner({
|
|
142
|
-
address: utils_1.default.decodeDotAddress(txMethod.real, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
143
|
-
});
|
|
144
|
-
this.forceProxyType(txMethod.forceProxyType);
|
|
145
|
-
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
146
|
-
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
147
|
-
metadataRpc: this._material.metadata,
|
|
148
|
-
});
|
|
149
|
-
if (!decodedCall.value || !decodedCall.dest) {
|
|
150
|
-
throw new sdk_core_1.InvalidTransactionError(`Invalid Proxy Transaction Method: ${(_c = this._method) === null || _c === void 0 ? void 0 : _c.name}. Expected transferKeepAlive`);
|
|
151
|
-
}
|
|
152
|
-
this.amount(`${decodedCall.value}`);
|
|
153
|
-
this.to({
|
|
154
|
-
address: utils_1.default.decodeDotAddress(decodedCall.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_d = this._method) === null || _d === void 0 ? void 0 : _d.name}. Expected a transferKeepAlive or a proxy transferKeepAlive transaction`);
|
|
159
|
-
}
|
|
160
|
-
return tx;
|
|
161
|
-
}
|
|
162
|
-
/** @inheritdoc */
|
|
163
|
-
validateTransaction(_) {
|
|
164
|
-
super.validateTransaction(_);
|
|
165
|
-
this.validateFields(this._to, this._amount, this._owner, this._forceProxyType);
|
|
166
|
-
}
|
|
167
|
-
validateFields(to, amount, real, forceProxyType) {
|
|
168
|
-
const validationResult = forceProxyType
|
|
169
|
-
? txnSchema_1.ProxyTransactionSchema.validate({ to, amount, real, forceProxyType })
|
|
170
|
-
: txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
171
|
-
if (validationResult.error) {
|
|
172
|
-
throw new sdk_core_1.InvalidTransactionError(`Proxy/TransferKeepAlive Transaction validation failed: ${validationResult.error.message}`);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
9
|
}
|
|
176
10
|
exports.TransferBuilder = TransferBuilder;
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXVHO0FBRXZHLHNFQUF3RDtBQUV4RCxnRUFBcUM7QUFDckMsbUNBQTBFO0FBQzFFLDJEQUF3RDtBQUV4RCw2REFBMEQ7QUFDMUQsMkNBQWdGO0FBQ2hGLG9EQUE0QjtBQUU1QixNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBTXJELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sZ0JBQWdCO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLDRCQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUNuRDtZQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTztZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUNELE9BQU8sNEJBQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUN4QjtZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDcEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1NBQ3hCLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFlO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLEtBQWtCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsY0FBYyxDQUFDLGNBQXlCO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiwwQkFBMEIsQ0FBQyxVQUFtRCxFQUFFLGNBQXNCOztRQUNwRyxJQUFJLENBQUEsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxJQUFJLE1BQUssbUJBQVcsQ0FBQyxpQkFBaUIsRUFBRTtZQUM3RCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQStCLENBQUM7WUFDbkUsTUFBTSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxxQ0FBeUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtnQkFDMUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDJDQUEyQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNoSDtTQUNGO2FBQU0sSUFBSSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsSUFBSSxNQUFLLG1CQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3hELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBNEIsQ0FBQztZQUNoRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzNCLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDL0MsTUFBTSxXQUFXLEdBQUcsZUFBSyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRTtnQkFDekQsUUFBUSxFQUFFLHFDQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN2RCxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO2FBQ3JDLENBQUMsQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsa0NBQXNCLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRixJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtnQkFDMUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdDQUF3QyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUM3RztTQUNGO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCOztRQUNqRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsSUFBSSxNQUFLLG1CQUFXLENBQUMsaUJBQWlCLEVBQUU7WUFDeEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFvQixDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sT0FBTyxFQUFFLGVBQUssQ0FBQyxnQkFBZ0IsQ0FDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQ2hCLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQXFCLENBQUMsQ0FDL0Q7YUFDRixDQUFDLENBQUM7U0FDSjthQUFNLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLElBQUksTUFBSyxtQkFBVyxDQUFDLEtBQUssRUFBRTtZQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQWlCLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDVCxPQUFPLEVBQUUsZUFBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBcUIsQ0FBQyxDQUFDO2FBQy9HLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sV0FBVyxHQUFHLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3pELFFBQVEsRUFBRSxxQ0FBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDdkQsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTthQUNyQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7Z0JBQzNDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0IscUNBQXFDLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsSUFBSSw4QkFBOEIsQ0FDdEYsQ0FBQzthQUNIO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sT0FBTyxFQUFFLGVBQUssQ0FBQyxnQkFBZ0IsQ0FDN0IsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQ25CLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQXFCLENBQUMsQ0FDL0Q7YUFDRixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxJQUFJLGtDQUF1QixDQUMvQiw2QkFBNkIsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLHlFQUF5RSxDQUN6SCxDQUFDO1NBQ0g7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsQ0FBYztRQUNoQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVPLGNBQWMsQ0FBQyxFQUFVLEVBQUUsTUFBYyxFQUFFLElBQWEsRUFBRSxjQUF1QjtRQUN2RixNQUFNLGdCQUFnQixHQUFHLGNBQWM7WUFDckMsQ0FBQyxDQUFDLGtDQUFzQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQ3ZFLENBQUMsQ0FBQyxxQ0FBeUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV2RCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQy9CLDBEQUEwRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQzNGLENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRjtBQS9MRCwwQ0ErTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQWRkcmVzcywgRG90QXNzZXRUeXBlcywgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBNZXRob2ROYW1lcywgUHJveHlBcmdzLCBQcm94eVR5cGUsIFRyYW5zZmVyQXJncyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgU2luZ2xldG9uUmVnaXN0cnkgfSBmcm9tICcuL3NpbmdsZXRvblJlZ2lzdHJ5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBQcm94eVRyYW5zYWN0aW9uU2NoZW1hLCBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90bzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX293bmVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZm9yY2VQcm94eVR5cGU6IFByb3h5VHlwZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogRGlzcGF0Y2ggdGhlIGdpdmVuIGNhbGwgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoIGFkZF9wcm94eS5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIERvdCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3Byb3h5XG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgY29uc3QgdHJhbnNmZXJUeCA9IG1ldGhvZHMuYmFsYW5jZXMudHJhbnNmZXJLZWVwQWxpdmUoXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICAgIGRlc3Q6IHRoaXMuX3RvLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gICAgaWYgKCF0aGlzLl9vd25lcikge1xuICAgICAgcmV0dXJuIHRyYW5zZmVyVHg7XG4gICAgfVxuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnByb3h5KFxuICAgICAge1xuICAgICAgICByZWFsOiB0aGlzLl9vd25lcixcbiAgICAgICAgZm9yY2VQcm94eVR5cGU6IHRoaXMuX2ZvcmNlUHJveHlUeXBlLFxuICAgICAgICBjYWxsOiB0cmFuc2ZlclR4Lm1ldGhvZCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIGFtb3VudCBmb3IgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnRcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoYW1vdW50KSk7XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzIGZvciB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgdG8oeyBhZGRyZXNzIH06IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMuX3RvID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgcmVhbCBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCB0eFxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSByZWFsXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjd2h5LXVzZS1hLXByb3h5XG4gICAqL1xuICBvd25lcihvd25lcjogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IG93bmVyLmFkZHJlc3MgfSk7XG4gICAgdGhpcy5fb3duZXIgPSBvd25lci5hZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBwcm94eSB0eXBlIHRvIGV4ZWN1dGVcbiAgICpcbiAgICogQHBhcmFtIHtwcm94eVR5cGV9IGZvcmNlUHJveHlUeXBlXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjcHJveHktdHlwZXNcbiAgICovXG4gIGZvcmNlUHJveHlUeXBlKGZvcmNlUHJveHlUeXBlOiBQcm94eVR5cGUpOiB0aGlzIHtcbiAgICB0aGlzLl9mb3JjZVByb3h5VHlwZSA9IGZvcmNlUHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFRyYW5zZmVyQXJncztcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke3R4TWV0aG9kLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IHR4TWV0aG9kLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zZmVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5Qcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgUHJveHlBcmdzO1xuICAgICAgY29uc3QgcmVhbCA9IHR4TWV0aG9kLnJlYWw7XG4gICAgICBjb25zdCBmb3JjZVByb3h5VHlwZSA9IHR4TWV0aG9kLmZvcmNlUHJveHlUeXBlO1xuICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB1dGlscy5kZWNvZGVDYWxsTWV0aG9kKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICAgIHJlZ2lzdHJ5OiBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZSh0aGlzLl9tYXRlcmlhbCksXG4gICAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgYW1vdW50ID0gYCR7ZGVjb2RlZENhbGwudmFsdWV9YDtcbiAgICAgIGNvbnN0IHRvID0gZGVjb2RlZENhbGwuZGVzdC5pZDtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBQcm94eVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgcmVhbCwgZm9yY2VQcm94eVR5cGUsIGFtb3VudCwgdG8gfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFByb3h5IFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5UcmFuc2ZlcktlZXBBbGl2ZSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBUcmFuc2ZlckFyZ3M7XG4gICAgICB0aGlzLmFtb3VudCh0eE1ldGhvZC52YWx1ZSk7XG4gICAgICB0aGlzLnRvKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhcbiAgICAgICAgICB0eE1ldGhvZC5kZXN0LmlkLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuUHJveHkpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgUHJveHlBcmdzO1xuICAgICAgdGhpcy5vd25lcih7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3ModHhNZXRob2QucmVhbCwgdXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcmNlUHJveHlUeXBlKHR4TWV0aG9kLmZvcmNlUHJveHlUeXBlKTtcbiAgICAgIGNvbnN0IGRlY29kZWRDYWxsID0gdXRpbHMuZGVjb2RlQ2FsbE1ldGhvZChyYXdUcmFuc2FjdGlvbiwge1xuICAgICAgICByZWdpc3RyeTogU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UodGhpcy5fbWF0ZXJpYWwpLFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICB9KTtcbiAgICAgIGlmICghZGVjb2RlZENhbGwudmFsdWUgfHwgIWRlY29kZWRDYWxsLmRlc3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIFByb3h5IFRyYW5zYWN0aW9uIE1ldGhvZDogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCB0cmFuc2ZlcktlZXBBbGl2ZWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYW1vdW50KGAke2RlY29kZWRDYWxsLnZhbHVlfWApO1xuICAgICAgdGhpcy50byh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgZGVjb2RlZENhbGwuZGVzdC5pZCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCBhIHRyYW5zZmVyS2VlcEFsaXZlIG9yIGEgcHJveHkgdHJhbnNmZXJLZWVwQWxpdmUgdHJhbnNhY3Rpb25gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbihfOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24oXyk7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcyh0aGlzLl90bywgdGhpcy5fYW1vdW50LCB0aGlzLl9vd25lciwgdGhpcy5fZm9yY2VQcm94eVR5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcyh0bzogc3RyaW5nLCBhbW91bnQ6IHN0cmluZywgcmVhbD86IHN0cmluZywgZm9yY2VQcm94eVR5cGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gZm9yY2VQcm94eVR5cGVcbiAgICAgID8gUHJveHlUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHRvLCBhbW91bnQsIHJlYWwsIGZvcmNlUHJveHlUeXBlIH0pXG4gICAgICA6IFRyYW5zZmVyVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyBhbW91bnQsIHRvIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYFByb3h5L1RyYW5zZmVyS2VlcEFsaXZlIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUVBQWdFO0FBRWhFLE1BQWEsZUFBZ0IsU0FBUSw2Q0FBcUI7SUFNeEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBVEQsMENBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgUHJveHlUeXBlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBOYXRpdmVUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL25hdGl2ZVRyYW5zZmVyQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBOYXRpdmVUcmFuc2ZlckJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2Ftb3VudDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3RvOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfb3duZXI6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9mb3JjZVByb3h5VHlwZTogUHJveHlUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/sdk-coin-dot",
|
|
3
|
-
"version": "1.0.2",
|
|
3
|
+
"version": "1.0.3-rc.2",
|
|
4
4
|
"description": "BitGo SDK coin library for Polkadot",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -41,9 +41,8 @@
|
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@bitgo/sdk-core": "^1.
|
|
45
|
-
"@bitgo/statics": "^
|
|
46
|
-
"@polkadot/api": "7.15.1",
|
|
44
|
+
"@bitgo/sdk-core": "^1.2.0-rc.2",
|
|
45
|
+
"@bitgo/statics": "^8.0.0-rc.1",
|
|
47
46
|
"@polkadot/keyring": "^8.7.1",
|
|
48
47
|
"@polkadot/types": "7.15.1",
|
|
49
48
|
"@polkadot/util": "^8.7.1",
|
|
@@ -58,9 +57,9 @@
|
|
|
58
57
|
"tweetnacl": "^1.0.3"
|
|
59
58
|
},
|
|
60
59
|
"devDependencies": {
|
|
61
|
-
"@bitgo/sdk-api": "^1.1.
|
|
62
|
-
"@bitgo/sdk-test": "^1.0.2",
|
|
60
|
+
"@bitgo/sdk-api": "^1.1.2-rc.2",
|
|
61
|
+
"@bitgo/sdk-test": "^1.0.3-rc.2",
|
|
63
62
|
"@types/lodash": "^4.14.151"
|
|
64
63
|
},
|
|
65
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "c87c30518098b3bd892afb774b1d1530b2847757"
|
|
66
65
|
}
|