@bitgo-beta/sdk-coin-tao 1.0.1-alpha.2 → 1.0.1-alpha.200

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.
Files changed (116) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -1
  4. package/dist/src/lib/constants.d.ts +11 -0
  5. package/dist/src/lib/constants.d.ts.map +1 -0
  6. package/dist/src/lib/constants.js +14 -0
  7. package/dist/src/lib/iface.d.ts +14 -5
  8. package/dist/src/lib/iface.d.ts.map +1 -1
  9. package/dist/src/lib/iface.js +1 -1
  10. package/dist/src/lib/index.d.ts +9 -7
  11. package/dist/src/lib/index.d.ts.map +1 -1
  12. package/dist/src/lib/index.js +30 -47
  13. package/dist/src/lib/moveStakeBuilder.d.ts +84 -0
  14. package/dist/src/lib/moveStakeBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/moveStakeBuilder.js +182 -0
  16. package/dist/src/lib/moveStakeTransaction.d.ts +10 -0
  17. package/dist/src/lib/moveStakeTransaction.d.ts.map +1 -0
  18. package/dist/src/lib/moveStakeTransaction.js +68 -0
  19. package/dist/src/lib/stakingBuilder.d.ts +63 -0
  20. package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/stakingBuilder.js +133 -0
  22. package/dist/src/lib/tokenTransferBuilder.d.ts +79 -0
  23. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  24. package/dist/src/lib/tokenTransferBuilder.js +165 -0
  25. package/dist/src/lib/tokenTransferTransaction.d.ts +8 -0
  26. package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
  27. package/dist/src/lib/tokenTransferTransaction.js +57 -0
  28. package/dist/src/lib/transactionBuilderFactory.d.ts +14 -5
  29. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  30. package/dist/src/lib/transactionBuilderFactory.js +64 -8
  31. package/dist/src/lib/transferBuilder.d.ts +2 -4
  32. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  33. package/dist/src/lib/transferBuilder.js +8 -7
  34. package/dist/src/lib/unstakeBuilder.d.ts +66 -0
  35. package/dist/src/lib/unstakeBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/unstakeBuilder.js +136 -0
  37. package/dist/src/lib/utils.d.ts +5 -14
  38. package/dist/src/lib/utils.d.ts.map +1 -1
  39. package/dist/src/lib/utils.js +18 -24
  40. package/dist/src/register.d.ts.map +1 -1
  41. package/dist/src/register.js +5 -1
  42. package/dist/src/resources/index.d.ts +3 -0
  43. package/dist/src/resources/index.d.ts.map +1 -0
  44. package/dist/src/resources/index.js +19 -0
  45. package/dist/src/resources/mainnet.d.ts +13 -0
  46. package/dist/src/resources/mainnet.d.ts.map +1 -0
  47. package/dist/src/resources/mainnet.js +16 -0
  48. package/dist/src/resources/testnet.d.ts +13 -0
  49. package/dist/src/resources/testnet.d.ts.map +1 -0
  50. package/dist/src/resources/testnet.js +16 -0
  51. package/dist/src/tao.d.ts +41 -16
  52. package/dist/src/tao.d.ts.map +1 -1
  53. package/dist/src/tao.js +45 -29
  54. package/dist/src/taoToken.d.ts +19 -0
  55. package/dist/src/taoToken.d.ts.map +1 -0
  56. package/dist/src/taoToken.js +52 -0
  57. package/dist/test/integration/index.d.ts +1 -0
  58. package/dist/test/integration/index.d.ts.map +1 -0
  59. package/dist/test/integration/index.js +1 -0
  60. package/dist/test/resources/index.d.ts +150 -0
  61. package/dist/test/resources/index.d.ts.map +1 -0
  62. package/dist/test/resources/index.js +166 -0
  63. package/dist/test/resources/materialData.json +8 -0
  64. package/dist/test/resources/materialDataModified.json +8 -0
  65. package/dist/test/resources/testnet.d.ts +2 -0
  66. package/dist/test/resources/testnet.d.ts.map +1 -0
  67. package/dist/test/resources/testnet.js +5 -0
  68. package/dist/test/unit/fixtures.d.ts +31 -0
  69. package/dist/test/unit/fixtures.d.ts.map +1 -0
  70. package/dist/test/unit/fixtures.js +107 -0
  71. package/dist/test/unit/tao.d.ts +2 -0
  72. package/dist/test/unit/tao.d.ts.map +1 -0
  73. package/dist/test/unit/tao.js +487 -0
  74. package/dist/test/unit/transactionBuilder/base.d.ts +8 -0
  75. package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
  76. package/dist/test/unit/transactionBuilder/base.js +238 -0
  77. package/dist/test/unit/transactionBuilder/moveStakeBuilder.d.ts +2 -0
  78. package/dist/test/unit/transactionBuilder/moveStakeBuilder.d.ts.map +1 -0
  79. package/dist/test/unit/transactionBuilder/moveStakeBuilder.js +472 -0
  80. package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts +2 -0
  81. package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
  82. package/dist/test/unit/transactionBuilder/singeltonRegistry.js +59 -0
  83. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
  84. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  85. package/dist/test/unit/transactionBuilder/stakingBuilder.js +112 -0
  86. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  87. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  88. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +93 -0
  89. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  90. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  91. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +75 -0
  92. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  93. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  94. package/dist/test/unit/transactionBuilder/transferBuilder.js +309 -0
  95. package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts +2 -0
  96. package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
  97. package/dist/test/unit/transactionBuilder/unstakeBuilder.js +112 -0
  98. package/dist/test/unit/util.d.ts +2 -0
  99. package/dist/test/unit/util.d.ts.map +1 -0
  100. package/dist/test/unit/util.js +29 -0
  101. package/dist/tsconfig.tsbuildinfo +1 -0
  102. package/package.json +16 -10
  103. package/.eslintignore +0 -4
  104. package/.gitignore +0 -3
  105. package/.mocharc.yml +0 -8
  106. package/.prettierignore +0 -2
  107. package/CHANGELOG.md +0 -12
  108. package/dist/src/lib/keyPair.d.ts +0 -12
  109. package/dist/src/lib/keyPair.d.ts.map +0 -1
  110. package/dist/src/lib/keyPair.js +0 -24
  111. package/dist/src/lib/transaction.d.ts +0 -8
  112. package/dist/src/lib/transaction.d.ts.map +0 -1
  113. package/dist/src/lib/transaction.js +0 -17
  114. package/dist/src/lib/transactionBuilder.d.ts +0 -43
  115. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  116. package/dist/src/lib/transactionBuilder.js +0 -78
@@ -0,0 +1,63 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { UnsignedTransaction, DecodedSignedTx, DecodedSigningPayload } from '@substrate/txwrapper-core';
3
+ import { TransactionType, BaseAddress } from '@bitgo-beta/sdk-core';
4
+ import { Transaction, TransactionBuilder } from '@bitgo-beta/abstract-substrate';
5
+ export declare class StakingBuilder extends TransactionBuilder {
6
+ protected _amount: string;
7
+ protected _hotkey: string;
8
+ protected _netuid: string;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ /**
11
+ * Construct a transaction to stake
12
+ * @returns {UnsignedTransaction} an unsigned stake TAO transaction
13
+ *
14
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#staking
15
+ */
16
+ protected buildTransaction(): UnsignedTransaction;
17
+ /** @inheritdoc */
18
+ protected get transactionType(): TransactionType;
19
+ /**
20
+ * Set the amount to stake
21
+ * @param {string} amount to stake
22
+ * @returns {StakingBuilder} This staking builder.
23
+ *
24
+ * @see https://wiki.polkadot.network/docs/learn-nominator#required-minimum-stake
25
+ */
26
+ amount(amount: string): this;
27
+ /**
28
+ * Set the validator hot key address
29
+ * @param {string} hotkey address of validator
30
+ * @returns {StakingBuilder} This staking builder.
31
+ *
32
+ * @see https://wiki.polkadot.network/docs/learn-staking#accounts
33
+ */
34
+ hotkey({ address }: BaseAddress): this;
35
+ /**
36
+ * Set netuid of the subnet (root network is 0)
37
+ * @param {string} netuid of subnet
38
+ * @returns {StakingBuilder} This staking builder.
39
+ */
40
+ netuid(netuid: string): this;
41
+ /** @inheritdoc */
42
+ protected fromImplementation(rawTransaction: string): Transaction;
43
+ /** @inheritdoc */
44
+ validateTransaction(_: Transaction): void;
45
+ /**
46
+ * Helper method to validate whether stake params have the correct type and format
47
+ * @param {string} amountStaked amount to stake
48
+ * @param {string} hotkey hotkey address of the validator
49
+ * @param {string} netuid netuid of the subnet
50
+ */
51
+ private validateFields;
52
+ /** @inheritdoc */
53
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
54
+ /**
55
+ * Construct a transaction to stake
56
+ *
57
+ * @param {Interface.AddStakeArgs} Stake arguments to be passed to the addStake method
58
+ * @param {Interface.CreateBaseTxInfo} Base txn info required to construct the addStake txn
59
+ * @returns {UnsignedTransaction} an unsigned stake TAO transaction
60
+ */
61
+ private addStake;
62
+ }
63
+ //# sourceMappingURL=stakingBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAgB,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEtH,OAAO,EAA2B,eAAe,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAqB,MAAM,gCAAgC,CAAC;AAEpG,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD,kBAAkB;IAClB,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,IAAI;IAMtC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAajE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IActB,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAa7G;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAajB"}
@@ -0,0 +1,133 @@
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.StakingBuilder = void 0;
7
+ const txwrapper_core_1 = require("@substrate/txwrapper-core");
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
+ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
11
+ class StakingBuilder extends abstract_substrate_1.TransactionBuilder {
12
+ constructor(_coinConfig) {
13
+ super(_coinConfig);
14
+ }
15
+ /**
16
+ * Construct a transaction to stake
17
+ * @returns {UnsignedTransaction} an unsigned stake TAO transaction
18
+ *
19
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#staking
20
+ */
21
+ buildTransaction() {
22
+ const baseTxInfo = this.createBaseTxInfo();
23
+ return this.addStake({
24
+ amountStaked: this._amount,
25
+ hotkey: this._hotkey,
26
+ netuid: this._netuid,
27
+ }, baseTxInfo);
28
+ }
29
+ /** @inheritdoc */
30
+ get transactionType() {
31
+ return sdk_core_1.TransactionType.StakingActivate;
32
+ }
33
+ /**
34
+ * Set the amount to stake
35
+ * @param {string} amount to stake
36
+ * @returns {StakingBuilder} This staking builder.
37
+ *
38
+ * @see https://wiki.polkadot.network/docs/learn-nominator#required-minimum-stake
39
+ */
40
+ amount(amount) {
41
+ this.validateValue(new bignumber_js_1.default(amount));
42
+ this._amount = amount;
43
+ return this;
44
+ }
45
+ /**
46
+ * Set the validator hot key address
47
+ * @param {string} hotkey address of validator
48
+ * @returns {StakingBuilder} This staking builder.
49
+ *
50
+ * @see https://wiki.polkadot.network/docs/learn-staking#accounts
51
+ */
52
+ hotkey({ address }) {
53
+ this.validateAddress({ address });
54
+ this._hotkey = address;
55
+ return this;
56
+ }
57
+ /**
58
+ * Set netuid of the subnet (root network is 0)
59
+ * @param {string} netuid of subnet
60
+ * @returns {StakingBuilder} This staking builder.
61
+ */
62
+ netuid(netuid) {
63
+ this._netuid = netuid;
64
+ return this;
65
+ }
66
+ /** @inheritdoc */
67
+ fromImplementation(rawTransaction) {
68
+ const tx = super.fromImplementation(rawTransaction);
69
+ if (this._method?.name === abstract_substrate_1.Interface.MethodNames.AddStake) {
70
+ const txMethod = this._method.args;
71
+ this.amount(txMethod.amountStaked);
72
+ this.hotkey({ address: txMethod.hotkey });
73
+ this.netuid(txMethod.netuid);
74
+ }
75
+ else {
76
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected addStake`);
77
+ }
78
+ return tx;
79
+ }
80
+ /** @inheritdoc */
81
+ validateTransaction(_) {
82
+ super.validateTransaction(_);
83
+ this.validateFields(this._amount, this._hotkey, this._netuid);
84
+ }
85
+ /**
86
+ * Helper method to validate whether stake params have the correct type and format
87
+ * @param {string} amountStaked amount to stake
88
+ * @param {string} hotkey hotkey address of the validator
89
+ * @param {string} netuid netuid of the subnet
90
+ */
91
+ validateFields(amountStaked, hotkey, netuid) {
92
+ const validationResult = abstract_substrate_1.Schema.StakeTransactionSchema.validate({
93
+ amountStaked,
94
+ hotkey,
95
+ netuid,
96
+ });
97
+ if (validationResult.error) {
98
+ throw new sdk_core_1.InvalidTransactionError(`Stake Builder Transaction validation failed: ${validationResult.error.message}`);
99
+ }
100
+ }
101
+ /** @inheritdoc */
102
+ validateDecodedTransaction(decodedTxn, rawTransaction) {
103
+ if (decodedTxn.method?.name === abstract_substrate_1.Interface.MethodNames.AddStake) {
104
+ const txMethod = decodedTxn.method.args;
105
+ const amountStaked = txMethod.amountStaked;
106
+ const hotkey = txMethod.hotkey;
107
+ const netuid = txMethod.netuid;
108
+ const validationResult = abstract_substrate_1.Schema.StakeTransactionSchema.validate({ amountStaked, hotkey, netuid });
109
+ if (validationResult.error) {
110
+ throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ * Construct a transaction to stake
116
+ *
117
+ * @param {Interface.AddStakeArgs} Stake arguments to be passed to the addStake method
118
+ * @param {Interface.CreateBaseTxInfo} Base txn info required to construct the addStake txn
119
+ * @returns {UnsignedTransaction} an unsigned stake TAO transaction
120
+ */
121
+ addStake(args, info) {
122
+ return (0, txwrapper_core_1.defineMethod)({
123
+ method: {
124
+ args,
125
+ name: 'addStake',
126
+ pallet: 'subtensorModule',
127
+ },
128
+ ...info.baseTxInfo,
129
+ }, info.options);
130
+ }
131
+ }
132
+ exports.StakingBuilder = StakingBuilder;
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhEQUFzSDtBQUN0SCxnRUFBcUM7QUFDckMsbURBQTZGO0FBQzdGLHVFQUFvRztBQUVwRyxNQUFhLGNBQWUsU0FBUSx1Q0FBa0I7SUFLcEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sZ0JBQWdCO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FDbEI7WUFDRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztTQUNyQixFQUNELFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQWU7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxD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aUI7YUFDMUI7WUFDRCxHQUFHLElBQUksQ0FBQyxVQUFVO1NBQ25CLEVBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBOUlELHdDQThJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGRlZmluZU1ldGhvZCwgVW5zaWduZWRUcmFuc2FjdGlvbiwgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUsIEJhc2VBZGRyZXNzIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uQnVpbGRlciwgSW50ZXJmYWNlLCBTY2hlbWEgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1zdWJzdHJhdGUnO1xuXG5leHBvcnQgY2xhc3MgU3Rha2luZ0J1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2Ftb3VudDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2hvdGtleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX25ldHVpZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSB0cmFuc2FjdGlvbiB0byBzdGFrZVxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgc3Rha2UgVEFPIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jc3Rha2luZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIHJldHVybiB0aGlzLmFkZFN0YWtlKFxuICAgICAge1xuICAgICAgICBhbW91bnRTdGFrZWQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgaG90a2V5OiB0aGlzLl9ob3RrZXksXG4gICAgICAgIG5ldHVpZDogdGhpcy5fbmV0dWlkLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm9cbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBhbW91bnQgdG8gc3Rha2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCB0byBzdGFrZVxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0J1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tbm9taW5hdG9yI3JlcXVpcmVkLW1pbmltdW0tc3Rha2VcbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGFtb3VudCkpO1xuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHZhbGlkYXRvciBob3Qga2V5IGFkZHJlc3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhvdGtleSBhZGRyZXNzIG9mIHZhbGlkYXRvclxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0J1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tc3Rha2luZyNhY2NvdW50c1xuICAgKi9cbiAgaG90a2V5KHsgYWRkcmVzcyB9OiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9ob3RrZXkgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXR1aWQgb2YgdGhlIHN1Ym5ldCAocm9vdCBuZXR3b3JrIGlzIDApXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXR1aWQgb2Ygc3VibmV0XG4gICAqIEByZXR1cm5zIHtTdGFraW5nQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICBuZXR1aWQobmV0dWlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9uZXR1aWQgPSBuZXR1aWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuQWRkU3Rha2UpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgSW50ZXJmYWNlLkFkZFN0YWtlQXJncztcbiAgICAgIHRoaXMuYW1vdW50KHR4TWV0aG9kLmFtb3VudFN0YWtlZCk7XG4gICAgICB0aGlzLmhvdGtleSh7IGFkZHJlc3M6IHR4TWV0aG9kLmhvdGtleSB9KTtcbiAgICAgIHRoaXMubmV0dWlkKHR4TWV0aG9kLm5ldHVpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIGFkZFN0YWtlYCk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX2Ftb3VudCwgdGhpcy5faG90a2V5LCB0aGlzLl9uZXR1aWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gdmFsaWRhdGUgd2hldGhlciBzdGFrZSBwYXJhbXMgaGF2ZSB0aGUgY29ycmVjdCB0eXBlIGFuZCBmb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudFN0YWtlZCBhbW91bnQgdG8gc3Rha2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhvdGtleSBob3RrZXkgYWRkcmVzcyBvZiB0aGUgdmFsaWRhdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXR1aWQgbmV0dWlkIG9mIHRoZSBzdWJuZXRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoYW1vdW50U3Rha2VkOiBzdHJpbmcsIGhvdGtleTogc3RyaW5nLCBuZXR1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTY2hlbWEuU3Rha2VUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICBhbW91bnRTdGFrZWQsXG4gICAgICBob3RrZXksXG4gICAgICBuZXR1aWQsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgU3Rha2UgQnVpbGRlciBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4LCByYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuQWRkU3Rha2UpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEludGVyZmFjZS5BZGRTdGFrZUFyZ3M7XG4gICAgICBjb25zdCBhbW91bnRTdGFrZWQgPSB0eE1ldGhvZC5hbW91bnRTdGFrZWQ7XG4gICAgICBjb25zdCBob3RrZXkgPSB0eE1ldGhvZC5ob3RrZXk7XG4gICAgICBjb25zdCBuZXR1aWQgPSB0eE1ldGhvZC5uZXR1aWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gU2NoZW1hLlN0YWtlVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyBhbW91bnRTdGFrZWQsIGhvdGtleSwgbmV0dWlkIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2ZlciBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIHRyYW5zYWN0aW9uIHRvIHN0YWtlXG4gICAqXG4gICAqIEBwYXJhbSB7SW50ZXJmYWNlLkFkZFN0YWtlQXJnc30gU3Rha2UgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgYWRkU3Rha2UgbWV0aG9kXG4gICAqIEBwYXJhbSB7SW50ZXJmYWNlLkNyZWF0ZUJhc2VUeEluZm99IEJhc2UgdHhuIGluZm8gcmVxdWlyZWQgdG8gY29uc3RydWN0IHRoZSBhZGRTdGFrZSB0eG5cbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIHN0YWtlIFRBTyB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBhZGRTdGFrZShhcmdzOiBJbnRlcmZhY2UuQWRkU3Rha2VBcmdzLCBpbmZvOiBJbnRlcmZhY2UuQ3JlYXRlQmFzZVR4SW5mbyk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBkZWZpbmVNZXRob2QoXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDoge1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgbmFtZTogJ2FkZFN0YWtlJyxcbiAgICAgICAgICBwYWxsZXQ6ICdzdWJ0ZW5zb3JNb2R1bGUnLFxuICAgICAgICB9LFxuICAgICAgICAuLi5pbmZvLmJhc2VUeEluZm8sXG4gICAgICB9LFxuICAgICAgaW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,79 @@
1
+ import { Transaction, TransactionBuilder } from '@bitgo-beta/abstract-substrate';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
5
+ export declare class TokenTransferBuilder extends TransactionBuilder {
6
+ protected _destinationColdkey: string;
7
+ protected _hotkey: string;
8
+ protected _originNetuid: string;
9
+ protected _destinationNetuid: string;
10
+ protected _alphaAmount: string;
11
+ constructor(_coinConfig: Readonly<CoinConfig>);
12
+ /**
13
+ * Construct a transaction to transfer stake
14
+ * @returns {UnsignedTransaction} an unsigned transfer stake transaction
15
+ */
16
+ protected buildTransaction(): UnsignedTransaction;
17
+ /** @inheritdoc */
18
+ protected get transactionType(): TransactionType;
19
+ /**
20
+ * Set the amount to transfer
21
+ * @param {string} amount to transfer
22
+ * @returns {TokenTransferBuilder} This builder.
23
+ */
24
+ amount(amount: string): this;
25
+ /**
26
+ * Set the validator hot key address
27
+ * @param {string} hotkey address of validator
28
+ * @returns {TokenTransferBuilder} This builder.
29
+ */
30
+ hotkey(address: string): this;
31
+ /**
32
+ * Set the destination cold key address
33
+ * @param {string} address of the destination cold key
34
+ * @returns {TokenTransferBuilder} This builder.
35
+ */
36
+ destinationColdkey(address: string): this;
37
+ /**
38
+ * Set the origin netuid of the subnet (root network is 0)
39
+ * @param {string} netuid of subnet
40
+ * @returns {TokenTransferBuilder} This builder.
41
+ */
42
+ originNetuid(netuid: string): this;
43
+ /**
44
+ * Set the destination netuid of the subnet (root network is 0)
45
+ * @param {string} netuid of subnet
46
+ * @returns {TokenTransferBuilder} This builder.
47
+ */
48
+ destinationNetuid(netuid: string): this;
49
+ /** @inheritdoc */
50
+ protected fromImplementation(rawTransaction: string): Transaction;
51
+ /** @inheritdoc */
52
+ validateTransaction(_: Transaction): void;
53
+ /**
54
+ * Helper method to validate whether tx params have the correct type and format
55
+ * @param {string} destinationColdkey destination cold key address
56
+ * @param {string} hotkey hotkey address of the validator
57
+ * @param {string} originNetuid netuid of the origin subnet
58
+ * @param {string} destinationNetuid netuid of the destination subnet
59
+ * @param {string} alphaAmount amount to transfer
60
+ * @throws {InvalidTransactionError} if validation fails
61
+ */
62
+ private validateFields;
63
+ /** @inheritdoc */
64
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
65
+ /**
66
+ * Validate the netuid. Throws an error if the netuid is not a non-negative integer.
67
+ * @param netuid The netuid to validate.
68
+ */
69
+ validateNetuid(netuid: string): void;
70
+ /**
71
+ * Construct a transaction to transfer stake
72
+ *
73
+ * @param {Interface.TransferStakeArgs} args arguments to be passed to the transferStake method
74
+ * @param {Interface.CreateBaseTxInfo} info txn info required to construct the transferStake txn
75
+ * @returns {UnsignedTransaction} an unsigned stake transaction
76
+ */
77
+ private transferStake;
78
+ }
79
+ //# sourceMappingURL=tokenTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/tokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,WAAW,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpG,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAgB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAItH,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEnB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;OAGG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAcjD,kBAAkB;IAClB,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM7B;;;;OAIG;IAEH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMzC;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMlC;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMvC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAiBjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAWzC;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAoBtB,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAW7G;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMpC;;;;;;OAMG;IAEH,OAAO,CAAC,aAAa;CAatB"}
@@ -0,0 +1,165 @@
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.TokenTransferBuilder = void 0;
7
+ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const txwrapper_core_1 = require("@substrate/txwrapper-core");
10
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
11
+ const tokenTransferTransaction_1 = require("./tokenTransferTransaction");
12
+ class TokenTransferBuilder extends abstract_substrate_1.TransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this._transaction = new tokenTransferTransaction_1.TokenTransferTransaction(_coinConfig);
16
+ }
17
+ /**
18
+ * Construct a transaction to transfer stake
19
+ * @returns {UnsignedTransaction} an unsigned transfer stake transaction
20
+ */
21
+ buildTransaction() {
22
+ const baseTxInfo = this.createBaseTxInfo();
23
+ return this.transferStake({
24
+ destinationColdkey: this._destinationColdkey,
25
+ hotkey: this._hotkey,
26
+ originNetuid: this._originNetuid,
27
+ destinationNetuid: this._destinationNetuid,
28
+ alphaAmount: this._alphaAmount,
29
+ }, baseTxInfo);
30
+ }
31
+ /** @inheritdoc */
32
+ get transactionType() {
33
+ return sdk_core_1.TransactionType.SendToken;
34
+ }
35
+ /**
36
+ * Set the amount to transfer
37
+ * @param {string} amount to transfer
38
+ * @returns {TokenTransferBuilder} This builder.
39
+ */
40
+ amount(amount) {
41
+ this.validateValue(new bignumber_js_1.default(amount));
42
+ this._alphaAmount = amount;
43
+ return this;
44
+ }
45
+ /**
46
+ * Set the validator hot key address
47
+ * @param {string} hotkey address of validator
48
+ * @returns {TokenTransferBuilder} This builder.
49
+ */
50
+ hotkey(address) {
51
+ this.validateAddress({ address });
52
+ this._hotkey = address;
53
+ return this;
54
+ }
55
+ /**
56
+ * Set the destination cold key address
57
+ * @param {string} address of the destination cold key
58
+ * @returns {TokenTransferBuilder} This builder.
59
+ */
60
+ destinationColdkey(address) {
61
+ this.validateAddress({ address });
62
+ this._destinationColdkey = address;
63
+ return this;
64
+ }
65
+ /**
66
+ * Set the origin netuid of the subnet (root network is 0)
67
+ * @param {string} netuid of subnet
68
+ * @returns {TokenTransferBuilder} This builder.
69
+ */
70
+ originNetuid(netuid) {
71
+ this.validateNetuid(netuid);
72
+ this._originNetuid = netuid;
73
+ return this;
74
+ }
75
+ /**
76
+ * Set the destination netuid of the subnet (root network is 0)
77
+ * @param {string} netuid of subnet
78
+ * @returns {TokenTransferBuilder} This builder.
79
+ */
80
+ destinationNetuid(netuid) {
81
+ this.validateNetuid(netuid);
82
+ this._destinationNetuid = netuid;
83
+ return this;
84
+ }
85
+ /** @inheritdoc */
86
+ fromImplementation(rawTransaction) {
87
+ const tx = super.fromImplementation(rawTransaction);
88
+ if (this._method?.name === abstract_substrate_1.Interface.MethodNames.TransferStake) {
89
+ const txMethod = this._method.args;
90
+ this.amount(txMethod.alphaAmount);
91
+ this.hotkey(txMethod.hotkey);
92
+ this.destinationColdkey(txMethod.destinationColdkey);
93
+ this.originNetuid(txMethod.originNetuid);
94
+ this.destinationNetuid(txMethod.destinationNetuid);
95
+ }
96
+ else {
97
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected ${abstract_substrate_1.Interface.MethodNames.TransferStake}`);
98
+ }
99
+ return tx;
100
+ }
101
+ /** @inheritdoc */
102
+ validateTransaction(_) {
103
+ super.validateTransaction(_);
104
+ this.validateFields(this._destinationColdkey, this._hotkey, this._originNetuid, this._destinationNetuid, this._alphaAmount);
105
+ }
106
+ /**
107
+ * Helper method to validate whether tx params have the correct type and format
108
+ * @param {string} destinationColdkey destination cold key address
109
+ * @param {string} hotkey hotkey address of the validator
110
+ * @param {string} originNetuid netuid of the origin subnet
111
+ * @param {string} destinationNetuid netuid of the destination subnet
112
+ * @param {string} alphaAmount amount to transfer
113
+ * @throws {InvalidTransactionError} if validation fails
114
+ */
115
+ validateFields(destinationColdkey, hotkey, originNetuid, destinationNetuid, alphaAmount) {
116
+ const validationResult = abstract_substrate_1.Schema.TransferStakeTransactionSchema.validate({
117
+ destinationColdkey,
118
+ hotkey,
119
+ originNetuid,
120
+ destinationNetuid,
121
+ alphaAmount,
122
+ });
123
+ if (validationResult.error) {
124
+ throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
125
+ }
126
+ }
127
+ /** @inheritdoc */
128
+ validateDecodedTransaction(decodedTxn, rawTransaction) {
129
+ if (decodedTxn.method?.name === abstract_substrate_1.Interface.MethodNames.TransferStake) {
130
+ const txMethod = decodedTxn.method.args;
131
+ const validationResult = abstract_substrate_1.Schema.TransferStakeTransactionSchema.validate(txMethod);
132
+ if (validationResult.error) {
133
+ throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
134
+ }
135
+ }
136
+ }
137
+ /**
138
+ * Validate the netuid. Throws an error if the netuid is not a non-negative integer.
139
+ * @param netuid The netuid to validate.
140
+ */
141
+ validateNetuid(netuid) {
142
+ if (BigInt(netuid) < 0n) {
143
+ throw new Error(`The netuid '${netuid}' is not a valid netuid`);
144
+ }
145
+ }
146
+ /**
147
+ * Construct a transaction to transfer stake
148
+ *
149
+ * @param {Interface.TransferStakeArgs} args arguments to be passed to the transferStake method
150
+ * @param {Interface.CreateBaseTxInfo} info txn info required to construct the transferStake txn
151
+ * @returns {UnsignedTransaction} an unsigned stake transaction
152
+ */
153
+ transferStake(args, info) {
154
+ return (0, txwrapper_core_1.defineMethod)({
155
+ method: {
156
+ args,
157
+ name: 'transferStake',
158
+ pallet: 'subtensorModule',
159
+ },
160
+ ...info.baseTxInfo,
161
+ }, info.options);
162
+ }
163
+ }
164
+ exports.TokenTransferBuilder = TokenTransferBuilder;
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVFQUFvRztBQUNwRyxtREFBZ0Y7QUFFaEYsOERBQXNIO0FBQ3RILGdFQUFxQztBQUNyQyx5RUFBc0U7QUFFdEUsTUFBYSxvQkFBcUIsU0FBUSx1Q0FBa0I7SUFPMUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLG1EQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7O09BR0c7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUN2QjtZQUNFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDNUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNoQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUMvQixFQUNELFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7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Q0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMEJBQTBCLENBQUMsVUFBbUQsRUFBRSxjQUFzQjtRQUNwRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLDhCQUFTLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBOEMsQ0FBQztZQUVsRixNQUFNLGdCQUFnQixHQUFHLDJCQUFNLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xGLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywyQ0FBMkMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDakgsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLE1BQWM7UUFDM0IsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLE1BQU0seUJBQXlCLENBQUMsQ0FBQztRQUNsRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUVLLGFBQWEsQ0FBQyxJQUFpQyxFQUFFLElBQWdDO1FBQ3ZGLE9BQU8sSUFBQSw2QkFBWSxFQUNqQjtZQUNFLE1BQU0sRUFBRTtnQkFDTixJQUFJO2dCQUNKLElBQUksRUFBRSxlQUFlO2dCQUNyQixNQUFNLEVBQUUsaUJBQWlCO2FBQzFCO1lBQ0QsR0FBRyxJQUFJLENBQUMsVUFBVTtTQUNuQixFQUNELElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpNRCxvREFpTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmZhY2UsIFNjaGVtYSwgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIGRlZmluZU1ldGhvZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgVG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyVHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5UcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2Rlc3RpbmF0aW9uQ29sZGtleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2hvdGtleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX29yaWdpbk5ldHVpZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2Rlc3RpbmF0aW9uTmV0dWlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfYWxwaGFBbW91bnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSB0cmFuc2FjdGlvbiB0byB0cmFuc2ZlciBzdGFrZVxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgdHJhbnNmZXIgc3Rha2UgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2ZlclN0YWtlKFxuICAgICAge1xuICAgICAgICBkZXN0aW5hdGlvbkNvbGRrZXk6IHRoaXMuX2Rlc3RpbmF0aW9uQ29sZGtleSxcbiAgICAgICAgaG90a2V5OiB0aGlzLl9ob3RrZXksXG4gICAgICAgIG9yaWdpbk5ldHVpZDogdGhpcy5fb3JpZ2luTmV0dWlkLFxuICAgICAgICBkZXN0aW5hdGlvbk5ldHVpZDogdGhpcy5fZGVzdGluYXRpb25OZXR1aWQsXG4gICAgICAgIGFscGhhQW1vdW50OiB0aGlzLl9hbHBoYUFtb3VudCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYW1vdW50IHRvIHRyYW5zZmVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgdG8gdHJhbnNmZXJcbiAgICogQHJldHVybnMge1Rva2VuVHJhbnNmZXJCdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihhbW91bnQpKTtcbiAgICB0aGlzLl9hbHBoYUFtb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHZhbGlkYXRvciBob3Qga2V5IGFkZHJlc3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhvdGtleSBhZGRyZXNzIG9mIHZhbGlkYXRvclxuICAgKiBAcmV0dXJucyB7VG9rZW5UcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICovXG4gIGhvdGtleShhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5faG90a2V5ID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlc3RpbmF0aW9uIGNvbGQga2V5IGFkZHJlc3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3Mgb2YgdGhlIGRlc3RpbmF0aW9uIGNvbGQga2V5XG4gICAqIEByZXR1cm5zIHtUb2tlblRyYW5zZmVyQnVpbGRlcn0gVGhpcyBidWlsZGVyLlxuICAgKi9cblxuICBkZXN0aW5hdGlvbkNvbGRrZXkoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMuX2Rlc3RpbmF0aW9uQ29sZGtleSA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBvcmlnaW4gbmV0dWlkIG9mIHRoZSBzdWJuZXQgKHJvb3QgbmV0d29yayBpcyAwKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV0dWlkIG9mIHN1Ym5ldFxuICAgKiBAcmV0dXJucyB7VG9rZW5UcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICovXG4gIG9yaWdpbk5ldHVpZChuZXR1aWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVOZXR1aWQobmV0dWlkKTtcbiAgICB0aGlzLl9vcmlnaW5OZXR1aWQgPSBuZXR1aWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZXN0aW5hdGlvbiBuZXR1aWQgb2YgdGhlIHN1Ym5ldCAocm9vdCBuZXR3b3JrIGlzIDApXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXR1aWQgb2Ygc3VibmV0XG4gICAqIEByZXR1cm5zIHtUb2tlblRyYW5zZmVyQnVpbGRlcn0gVGhpcyBidWlsZGVyLlxuICAgKi9cbiAgZGVzdGluYXRpb25OZXR1aWQobmV0dWlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlTmV0dWlkKG5ldHVpZCk7XG4gICAgdGhpcy5fZGVzdGluYXRpb25OZXR1aWQgPSBuZXR1aWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuVHJhbnNmZXJTdGFrZSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBJbnRlcmZhY2UuVHJhbnNmZXJTdGFrZUFyZ3M7XG4gICAgICB0aGlzLmFtb3VudCh0eE1ldGhvZC5hbHBoYUFtb3VudCk7XG4gICAgICB0aGlzLmhvdGtleSh0eE1ldGhvZC5ob3RrZXkpO1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbkNvbGRrZXkodHhNZXRob2QuZGVzdGluYXRpb25Db2xka2V5KTtcbiAgICAgIHRoaXMub3JpZ2luTmV0dWlkKHR4TWV0aG9kLm9yaWdpbk5ldHVpZCk7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uTmV0dWlkKHR4TWV0aG9kLmRlc3RpbmF0aW9uTmV0dWlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkICR7SW50ZXJmYWNlLk1ldGhvZE5hbWVzLlRyYW5zZmVyU3Rha2V9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoXG4gICAgICB0aGlzLl9kZXN0aW5hdGlvbkNvbGRrZXksXG4gICAgICB0aGlzLl9ob3RrZXksXG4gICAgICB0aGlzLl9vcmlnaW5OZXR1aWQsXG4gICAgICB0aGlzLl9kZXN0aW5hdGlvbk5ldHVpZCxcbiAgICAgIHRoaXMuX2FscGhhQW1vdW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIHZhbGlkYXRlIHdoZXRoZXIgdHggcGFyYW1zIGhhdmUgdGhlIGNvcnJlY3QgdHlwZSBhbmQgZm9ybWF0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvbkNvbGRrZXkgZGVzdGluYXRpb24gY29sZCBrZXkgYWRkcmVzc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gaG90a2V5IGhvdGtleSBhZGRyZXNzIG9mIHRoZSB2YWxpZGF0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbk5ldHVpZCBuZXR1aWQgb2YgdGhlIG9yaWdpbiBzdWJuZXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uTmV0dWlkIG5ldHVpZCBvZiB0aGUgZGVzdGluYXRpb24gc3VibmV0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbHBoYUFtb3VudCBhbW91bnQgdG8gdHJhbnNmZXJcbiAgICogQHRocm93cyB7SW52YWxpZFRyYW5zYWN0aW9uRXJyb3J9IGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoXG4gICAgZGVzdGluYXRpb25Db2xka2V5OiBzdHJpbmcsXG4gICAgaG90a2V5OiBzdHJpbmcsXG4gICAgb3JpZ2luTmV0dWlkOiBzdHJpbmcsXG4gICAgZGVzdGluYXRpb25OZXR1aWQ6IHN0cmluZyxcbiAgICBhbHBoYUFtb3VudDogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTY2hlbWEuVHJhbnNmZXJTdGFrZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGRlc3RpbmF0aW9uQ29sZGtleSxcbiAgICAgIGhvdGtleSxcbiAgICAgIG9yaWdpbk5ldHVpZCxcbiAgICAgIGRlc3RpbmF0aW9uTmV0dWlkLFxuICAgICAgYWxwaGFBbW91bnQsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gSW50ZXJmYWNlLk1ldGhvZE5hbWVzLlRyYW5zZmVyU3Rha2UpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEludGVyZmFjZS5UcmFuc2ZlclN0YWtlQXJncztcblxuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNjaGVtYS5UcmFuc2ZlclN0YWtlVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUodHhNZXRob2QpO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2ZlciBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoZSBuZXR1aWQuIFRocm93cyBhbiBlcnJvciBpZiB0aGUgbmV0dWlkIGlzIG5vdCBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuICAgKiBAcGFyYW0gbmV0dWlkIFRoZSBuZXR1aWQgdG8gdmFsaWRhdGUuXG4gICAqL1xuICB2YWxpZGF0ZU5ldHVpZChuZXR1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChCaWdJbnQobmV0dWlkKSA8IDBuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBuZXR1aWQgJyR7bmV0dWlkfScgaXMgbm90IGEgdmFsaWQgbmV0dWlkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIHRyYW5zYWN0aW9uIHRvIHRyYW5zZmVyIHN0YWtlXG4gICAqXG4gICAqIEBwYXJhbSB7SW50ZXJmYWNlLlRyYW5zZmVyU3Rha2VBcmdzfSBhcmdzIGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8gdGhlIHRyYW5zZmVyU3Rha2UgbWV0aG9kXG4gICAqIEBwYXJhbSB7SW50ZXJmYWNlLkNyZWF0ZUJhc2VUeEluZm99IGluZm8gdHhuIGluZm8gcmVxdWlyZWQgdG8gY29uc3RydWN0IHRoZSB0cmFuc2ZlclN0YWtlIHR4blxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgc3Rha2UgdHJhbnNhY3Rpb25cbiAgICovXG5cbiAgcHJpdmF0ZSB0cmFuc2ZlclN0YWtlKGFyZ3M6IEludGVyZmFjZS5UcmFuc2ZlclN0YWtlQXJncywgaW5mbzogSW50ZXJmYWNlLkNyZWF0ZUJhc2VUeEluZm8pOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gZGVmaW5lTWV0aG9kKFxuICAgICAge1xuICAgICAgICBtZXRob2Q6IHtcbiAgICAgICAgICBhcmdzLFxuICAgICAgICAgIG5hbWU6ICd0cmFuc2ZlclN0YWtlJyxcbiAgICAgICAgICBwYWxsZXQ6ICdzdWJ0ZW5zb3JNb2R1bGUnLFxuICAgICAgICB9LFxuICAgICAgICAuLi5pbmZvLmJhc2VUeEluZm8sXG4gICAgICB9LFxuICAgICAgaW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { Interface as SubstrateInterface, Transaction as SubstrateTransaction } from '@bitgo-beta/abstract-substrate';
2
+ export declare class TokenTransferTransaction extends SubstrateTransaction {
3
+ /** @inheritdoc */
4
+ toJson(): SubstrateInterface.TxData;
5
+ /** @inheritdoc */
6
+ explainTransaction(): SubstrateInterface.TransactionExplanation;
7
+ }
8
+ //# sourceMappingURL=tokenTransferTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransferTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/tokenTransferTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAMtH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAChE,kBAAkB;IAClB,MAAM,IAAI,kBAAkB,CAAC,MAAM;IAsBnC,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB,CAAC,sBAAsB;CAwBhE"}
@@ -0,0 +1,57 @@
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.TokenTransferTransaction = void 0;
7
+ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
10
+ const utils_1 = __importDefault(require("./utils"));
11
+ class TokenTransferTransaction extends abstract_substrate_1.Transaction {
12
+ /** @inheritdoc */
13
+ toJson() {
14
+ if (!this._substrateTransaction) {
15
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction');
16
+ }
17
+ const decodedTx = (0, txwrapper_polkadot_1.decode)(this._substrateTransaction, {
18
+ metadataRpc: this._substrateTransaction.metadataRpc,
19
+ registry: this._registry,
20
+ isImmortalEra: utils_1.default.isZeroHex(this._substrateTransaction.era),
21
+ });
22
+ const txMethod = decodedTx.method.args;
23
+ const result = super.toJson();
24
+ result.destinationColdkey = txMethod.destinationColdkey;
25
+ result.hotkey = txMethod.hotkey;
26
+ result.originNetuid = txMethod.originNetuid;
27
+ result.destinationNetuid = txMethod.destinationNetuid;
28
+ result.alphaAmount = txMethod.alphaAmount;
29
+ return result;
30
+ }
31
+ /** @inheritdoc */
32
+ explainTransaction() {
33
+ const result = this.toJson();
34
+ const outputs = this._outputs.map((output) => {
35
+ return {
36
+ address: output.address,
37
+ amount: output.value,
38
+ tokenName: output.coin,
39
+ };
40
+ });
41
+ const explanationResult = {
42
+ id: result.id,
43
+ outputAmount: result.amount?.toString() || '0',
44
+ changeAmount: '0',
45
+ changeOutputs: [],
46
+ outputs,
47
+ fee: {
48
+ fee: result.tip?.toString() || '',
49
+ type: 'tip',
50
+ },
51
+ type: this.type,
52
+ };
53
+ return explanationResult;
54
+ }
55
+ }
56
+ exports.TokenTransferTransaction = TokenTransferTransaction;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b2tlblRyYW5zZmVyVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUVBQXNIO0FBQ3RILG1EQUFxRjtBQUNyRixzRUFBdUQ7QUFFdkQsb0RBQTRCO0FBRTVCLE1BQWEsd0JBQXlCLFNBQVEsZ0NBQW9CO0lBQ2hFLGtCQUFrQjtJQUNsQixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLDJCQUFNLEVBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ25ELFdBQVcsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVztZQUNuRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsYUFBYSxFQUFFLGVBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQztTQUMvRCxDQUE0QyxDQUFDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBNEMsQ0FBQztRQUUvRSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUF5QixDQUFDO1FBQ3JELE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUM7UUFDeEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUM1QyxNQUFNLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1FBQ3RELE1BQU0sQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUUxQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQTJCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkUsT0FBTztnQkFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDcEIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2FBQ3ZCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0saUJBQWlCLEdBQThDO1lBQ25FLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNiLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUc7WUFDOUMsWUFBWSxFQUFFLEdBQUc7WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsT0FBTztZQUNQLEdBQUcsRUFBRTtnQkFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNqQyxJQUFJLEVBQUUsS0FBSzthQUNaO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWpERCw0REFpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmZhY2UgYXMgU3Vic3RyYXRlSW50ZXJmYWNlLCBUcmFuc2FjdGlvbiBhcyBTdWJzdHJhdGVUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBUcmFuc2ZlclN0YWtlVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUb2tlblRyYW5zZmVyVHJhbnNhY3Rpb24gZXh0ZW5kcyBTdWJzdHJhdGVUcmFuc2FjdGlvbiB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogU3Vic3RyYXRlSW50ZXJmYWNlLlR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGRlY29kZSh0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgaXNJbW1vcnRhbEVyYTogdXRpbHMuaXNaZXJvSGV4KHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLmVyYSksXG4gICAgfSkgYXMgdW5rbm93biBhcyBTdWJzdHJhdGVJbnRlcmZhY2UuRGVjb2RlZFR4O1xuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzIGFzIFN1YnN0cmF0ZUludGVyZmFjZS5UcmFuc2ZlclN0YWtlQXJncztcblxuICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLnRvSnNvbigpIGFzIFRyYW5zZmVyU3Rha2VUeERhdGE7XG4gICAgcmVzdWx0LmRlc3RpbmF0aW9uQ29sZGtleSA9IHR4TWV0aG9kLmRlc3RpbmF0aW9uQ29sZGtleTtcbiAgICByZXN1bHQuaG90a2V5ID0gdHhNZXRob2QuaG90a2V5O1xuICAgIHJlc3VsdC5vcmlnaW5OZXR1aWQgPSB0eE1ldGhvZC5vcmlnaW5OZXR1aWQ7XG4gICAgcmVzdWx0LmRlc3RpbmF0aW9uTmV0dWlkID0gdHhNZXRob2QuZGVzdGluYXRpb25OZXR1aWQ7XG4gICAgcmVzdWx0LmFscGhhQW1vdW50ID0gdHhNZXRob2QuYWxwaGFBbW91bnQ7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBTdWJzdHJhdGVJbnRlcmZhY2UuVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gdGhpcy5fb3V0cHV0cy5tYXAoKG91dHB1dCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLFxuICAgICAgICB0b2tlbk5hbWU6IG91dHB1dC5jb2luLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBTdWJzdHJhdGVJbnRlcmZhY2UuVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAgICAgIGlkOiByZXN1bHQuaWQsXG4gICAgICBvdXRwdXRBbW91bnQ6IHJlc3VsdC5hbW91bnQ/LnRvU3RyaW5nKCkgfHwgJzAnLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dHMsXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiByZXN1bHQudGlwPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICB0eXBlOiAndGlwJyxcbiAgICAgIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgICByZXR1cm4gZXhwbGFuYXRpb25SZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,12 +1,21 @@
1
1
  import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
2
- import { TransactionBuilder } from './transactionBuilder';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionBuilder, Interface } from './';
3
4
  import { TransferBuilder } from './transferBuilder';
5
+ import { StakingBuilder } from './stakingBuilder';
6
+ import { UnstakeBuilder } from './unstakeBuilder';
7
+ import { MoveStakeBuilder } from './moveStakeBuilder';
4
8
  export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
5
- /** @inheritdoc */
6
- from(raw: string): TransactionBuilder;
7
- /** @inheritdoc */
9
+ protected _material: Interface.Material;
10
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
11
  getTransferBuilder(): TransferBuilder;
9
- /** @inheritdoc */
12
+ getStakingBuilder(): StakingBuilder;
13
+ getUnstakingBuilder(): UnstakeBuilder;
14
+ getTokenTransferBuilder(): TransactionBuilder;
15
+ getMoveStakeBuilder(): MoveStakeBuilder;
10
16
  getWalletInitializationBuilder(): void;
17
+ from(rawTxn: string): TransactionBuilder;
18
+ material(material: Interface.Material): this;
19
+ private getBuilder;
11
20
  }
12
21
  //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAIrC,kBAAkB;IAClB,kBAAkB,IAAI,eAAe;IAIrC,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;CAGvC"}
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAqC,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAqB,kBAAkB,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,cAAc;IAInC,mBAAmB,IAAI,cAAc;IAIrC,uBAAuB,IAAI,kBAAkB;IAI7C,mBAAmB,IAAI,gBAAgB;IAIvC,8BAA8B,IAAI,IAAI;IAItC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAMxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI;IAK5C,OAAO,CAAC,UAAU;CAsBnB"}