@bitgo-beta/sdk-coin-tao 1.0.1-alpha.18 → 1.0.1-alpha.181
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/lib/constants.d.ts +11 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +14 -0
- package/dist/src/lib/iface.d.ts +14 -335
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -126
- package/dist/src/lib/index.d.ts +9 -9
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +30 -51
- package/dist/src/lib/moveStakeBuilder.d.ts +84 -0
- package/dist/src/lib/moveStakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/moveStakeBuilder.js +182 -0
- package/dist/src/lib/moveStakeTransaction.d.ts +10 -0
- package/dist/src/lib/moveStakeTransaction.d.ts.map +1 -0
- package/dist/src/lib/moveStakeTransaction.js +68 -0
- package/dist/src/lib/stakingBuilder.d.ts +63 -0
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/stakingBuilder.js +133 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts +79 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +165 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts +8 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferTransaction.js +57 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +10 -4
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +33 -8
- package/dist/src/lib/transferBuilder.d.ts +2 -7
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +8 -3
- package/dist/src/lib/unstakeBuilder.d.ts +66 -0
- package/dist/src/lib/unstakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/unstakeBuilder.js +136 -0
- package/dist/src/lib/utils.d.ts +5 -264
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +15 -480
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/src/resources/index.d.ts +1 -1
- package/dist/src/resources/index.js +2 -2
- package/dist/src/resources/mainnet.d.ts +12 -1
- package/dist/src/resources/mainnet.d.ts.map +1 -1
- package/dist/src/resources/mainnet.js +14 -3
- package/dist/src/resources/testnet.d.ts +13 -0
- package/dist/src/resources/testnet.d.ts.map +1 -0
- package/dist/src/resources/testnet.js +16 -0
- package/dist/src/tao.d.ts +19 -6
- package/dist/src/tao.d.ts.map +1 -1
- package/dist/src/tao.js +43 -81
- package/dist/src/taoToken.d.ts +19 -0
- package/dist/src/taoToken.d.ts.map +1 -0
- package/dist/src/taoToken.js +52 -0
- package/dist/test/integration/index.d.ts +1 -0
- package/dist/test/integration/index.d.ts.map +1 -0
- package/dist/test/integration/index.js +1 -0
- package/dist/test/resources/index.d.ts +150 -0
- package/dist/test/resources/index.d.ts.map +1 -0
- package/dist/test/resources/index.js +166 -0
- package/dist/test/resources/materialData.json +8 -0
- package/dist/test/resources/materialDataModified.json +8 -0
- package/dist/{src/resources/westend.d.ts → test/resources/testnet.d.ts} +2 -2
- package/dist/test/resources/testnet.d.ts.map +1 -0
- package/dist/test/resources/testnet.js +5 -0
- package/dist/test/unit/fixtures.d.ts +31 -0
- package/dist/test/unit/fixtures.d.ts.map +1 -0
- package/dist/test/unit/fixtures.js +107 -0
- package/dist/test/unit/tao.d.ts +2 -0
- package/dist/test/unit/tao.d.ts.map +1 -0
- package/dist/test/unit/tao.js +487 -0
- package/dist/test/unit/transactionBuilder/base.d.ts +8 -0
- package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/base.js +238 -0
- package/dist/test/unit/transactionBuilder/moveStakeBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/moveStakeBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/moveStakeBuilder.js +472 -0
- package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/singeltonRegistry.js +59 -0
- package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/stakingBuilder.js +112 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +93 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +75 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +309 -0
- package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/unstakeBuilder.js +112 -0
- package/dist/test/unit/util.d.ts +2 -0
- package/dist/test/unit/util.d.ts.map +1 -0
- package/dist/test/unit/util.js +29 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +14 -20
- package/.eslintignore +0 -4
- package/.gitignore +0 -3
- package/.mocharc.yml +0 -8
- package/.prettierignore +0 -2
- package/CHANGELOG.md +0 -36
- package/dist/src/lib/errors.d.ts +0 -8
- package/dist/src/lib/errors.d.ts.map +0 -1
- package/dist/src/lib/errors.js +0 -19
- package/dist/src/lib/iface_utils.d.ts +0 -59
- package/dist/src/lib/iface_utils.d.ts.map +0 -1
- package/dist/src/lib/iface_utils.js +0 -92
- package/dist/src/lib/keyPair.d.ts +0 -38
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -117
- package/dist/src/lib/nativeTransferBuilder.d.ts +0 -84
- package/dist/src/lib/nativeTransferBuilder.d.ts.map +0 -1
- package/dist/src/lib/nativeTransferBuilder.js +0 -219
- package/dist/src/lib/singletonRegistry.d.ts +0 -7
- package/dist/src/lib/singletonRegistry.d.ts.map +0 -1
- package/dist/src/lib/singletonRegistry.js +0 -20
- package/dist/src/lib/transaction.d.ts +0 -83
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -610
- package/dist/src/lib/transactionBuilder.d.ts +0 -131
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -351
- package/dist/src/lib/txnSchema.d.ts +0 -15
- package/dist/src/lib/txnSchema.d.ts.map +0 -1
- package/dist/src/lib/txnSchema.js +0 -117
- package/dist/src/resources/westend.d.ts.map +0 -1
- package/dist/src/resources/westend.js +0 -5
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export declare class TransferBuilder extends NativeTransferBuilder {
|
|
5
|
-
protected _amount: string;
|
|
6
|
-
protected _to: string;
|
|
7
|
-
protected _owner: string;
|
|
8
|
-
protected _forceProxyType: ProxyType;
|
|
2
|
+
import { TransferBuilder as SubstrateTransferBuilder } from '@bitgo-beta/abstract-substrate';
|
|
3
|
+
export declare class TransferBuilder extends SubstrateTransferBuilder {
|
|
9
4
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
10
5
|
}
|
|
11
6
|
//# 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,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,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,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,IAAI,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAG7F,qBAAa,eAAgB,SAAQ,wBAAwB;gBAC/C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI9C"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.TransferBuilder = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
7
|
+
const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
|
|
8
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
9
|
+
class TransferBuilder extends abstract_substrate_1.TransferBuilder {
|
|
6
10
|
constructor(_coinConfig) {
|
|
7
11
|
super(_coinConfig);
|
|
12
|
+
this.material(utils_1.default.getMaterial(_coinConfig.network.type));
|
|
8
13
|
}
|
|
9
14
|
}
|
|
10
15
|
exports.TransferBuilder = TransferBuilder;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsdUVBQTZGO0FBQzdGLG9EQUE0QjtBQUU1QixNQUFhLGVBQWdCLFNBQVEsb0NBQXdCO0lBQzNELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGO0FBTEQsMENBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgYXMgU3Vic3RyYXRlVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFN1YnN0cmF0ZVRyYW5zZmVyQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLm1hdGVyaWFsKHV0aWxzLmdldE1hdGVyaWFsKF9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,66 @@
|
|
|
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 UnstakeBuilder 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 unstake
|
|
12
|
+
*
|
|
13
|
+
* @returns {UnsignedTransaction} an unsigned unstake TAO transaction
|
|
14
|
+
*
|
|
15
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#staking
|
|
16
|
+
*/
|
|
17
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
protected get transactionType(): TransactionType;
|
|
20
|
+
/**
|
|
21
|
+
* The amount to unstake.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} amount to unstake
|
|
24
|
+
* @returns {UnstakeBuilder} This unstaking builder.
|
|
25
|
+
*
|
|
26
|
+
* @see https://wiki.polkadot.network/docs/learn-nominator#required-minimum-stake
|
|
27
|
+
*/
|
|
28
|
+
amount(amount: string): this;
|
|
29
|
+
/**
|
|
30
|
+
* The controller of the staked amount.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} hotkey address of validator
|
|
33
|
+
* @returns {UnstakeBuilder} This unstaking builder.
|
|
34
|
+
*
|
|
35
|
+
* @see https://wiki.polkadot.network/docs/learn-staking#accounts
|
|
36
|
+
*/
|
|
37
|
+
hotkey({ address }: BaseAddress): this;
|
|
38
|
+
/**
|
|
39
|
+
* Netuid of the subnet (root network is 0)
|
|
40
|
+
* @param {string} netuid
|
|
41
|
+
* @returns {UnstakeBuilder} This unstaking builder
|
|
42
|
+
*/
|
|
43
|
+
netuid(netuid: string): this;
|
|
44
|
+
/** @inheritdoc */
|
|
45
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
46
|
+
/** @inheritdoc */
|
|
47
|
+
validateTransaction(_: Transaction): void;
|
|
48
|
+
/**
|
|
49
|
+
* Helper method to validate whether unstake params have the correct type and format
|
|
50
|
+
* @param {string} amountUnstaked amount to unstake
|
|
51
|
+
* @param {string} hotkey hotkey address of the validator
|
|
52
|
+
* @param {string} netuid netuid of the subnet
|
|
53
|
+
*/
|
|
54
|
+
private validateFields;
|
|
55
|
+
/** @inheritdoc */
|
|
56
|
+
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Construct a transaction to unstake
|
|
59
|
+
*
|
|
60
|
+
* @param {Interface.RemoveStakeArgs} RemoveStake arguments to be passed to the addStake method
|
|
61
|
+
* @param {Interface.CreateBaseTxInfo} Base txn info required to construct the removeStake txn
|
|
62
|
+
* @returns {UnsignedTransaction} an unsigned unstake TAO transaction
|
|
63
|
+
*/
|
|
64
|
+
private removeStake;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=unstakeBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unstakeBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unstakeBuilder.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;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD,kBAAkB;IAClB,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;;;;OAOG;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,WAAW;CAapB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
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.UnstakeBuilder = 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 UnstakeBuilder extends abstract_substrate_1.TransactionBuilder {
|
|
12
|
+
constructor(_coinConfig) {
|
|
13
|
+
super(_coinConfig);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Construct a transaction to unstake
|
|
17
|
+
*
|
|
18
|
+
* @returns {UnsignedTransaction} an unsigned unstake TAO transaction
|
|
19
|
+
*
|
|
20
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#staking
|
|
21
|
+
*/
|
|
22
|
+
buildTransaction() {
|
|
23
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
24
|
+
return this.removeStake({
|
|
25
|
+
amountUnstaked: this._amount,
|
|
26
|
+
hotkey: this._hotkey,
|
|
27
|
+
netuid: this._netuid,
|
|
28
|
+
}, baseTxInfo);
|
|
29
|
+
}
|
|
30
|
+
/** @inheritdoc */
|
|
31
|
+
get transactionType() {
|
|
32
|
+
return sdk_core_1.TransactionType.StakingDeactivate;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The amount to unstake.
|
|
36
|
+
*
|
|
37
|
+
* @param {string} amount to unstake
|
|
38
|
+
* @returns {UnstakeBuilder} This unstaking builder.
|
|
39
|
+
*
|
|
40
|
+
* @see https://wiki.polkadot.network/docs/learn-nominator#required-minimum-stake
|
|
41
|
+
*/
|
|
42
|
+
amount(amount) {
|
|
43
|
+
this.validateValue(new bignumber_js_1.default(amount));
|
|
44
|
+
this._amount = amount;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The controller of the staked amount.
|
|
49
|
+
*
|
|
50
|
+
* @param {string} hotkey address of validator
|
|
51
|
+
* @returns {UnstakeBuilder} This unstaking builder.
|
|
52
|
+
*
|
|
53
|
+
* @see https://wiki.polkadot.network/docs/learn-staking#accounts
|
|
54
|
+
*/
|
|
55
|
+
hotkey({ address }) {
|
|
56
|
+
this.validateAddress({ address });
|
|
57
|
+
this._hotkey = address;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Netuid of the subnet (root network is 0)
|
|
62
|
+
* @param {string} netuid
|
|
63
|
+
* @returns {UnstakeBuilder} This unstaking builder
|
|
64
|
+
*/
|
|
65
|
+
netuid(netuid) {
|
|
66
|
+
this._netuid = netuid;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/** @inheritdoc */
|
|
70
|
+
fromImplementation(rawTransaction) {
|
|
71
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
72
|
+
if (this._method?.name === abstract_substrate_1.Interface.MethodNames.RemoveStake) {
|
|
73
|
+
const txMethod = this._method.args;
|
|
74
|
+
this.amount(txMethod.amountUnstaked);
|
|
75
|
+
this.hotkey({ address: txMethod.hotkey });
|
|
76
|
+
this.netuid(txMethod.netuid);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected addStake`);
|
|
80
|
+
}
|
|
81
|
+
return tx;
|
|
82
|
+
}
|
|
83
|
+
/** @inheritdoc */
|
|
84
|
+
validateTransaction(_) {
|
|
85
|
+
super.validateTransaction(_);
|
|
86
|
+
this.validateFields(this._amount, this._hotkey, this._netuid);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Helper method to validate whether unstake params have the correct type and format
|
|
90
|
+
* @param {string} amountUnstaked amount to unstake
|
|
91
|
+
* @param {string} hotkey hotkey address of the validator
|
|
92
|
+
* @param {string} netuid netuid of the subnet
|
|
93
|
+
*/
|
|
94
|
+
validateFields(amountUnstaked, hotkey, netuid) {
|
|
95
|
+
const validationResult = abstract_substrate_1.Schema.UnstakeTransactionSchema.validate({
|
|
96
|
+
amountUnstaked,
|
|
97
|
+
hotkey,
|
|
98
|
+
netuid,
|
|
99
|
+
});
|
|
100
|
+
if (validationResult.error) {
|
|
101
|
+
throw new sdk_core_1.InvalidTransactionError(`UnStake Builder Transaction validation failed: ${validationResult.error.message}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** @inheritdoc */
|
|
105
|
+
validateDecodedTransaction(decodedTxn, rawTransaction) {
|
|
106
|
+
if (decodedTxn.method?.name === abstract_substrate_1.Interface.MethodNames.RemoveStake) {
|
|
107
|
+
const txMethod = decodedTxn.method.args;
|
|
108
|
+
const amountUnstaked = txMethod.amountUnstaked;
|
|
109
|
+
const hotkey = txMethod.hotkey;
|
|
110
|
+
const netuid = txMethod.netuid;
|
|
111
|
+
const validationResult = abstract_substrate_1.Schema.UnstakeTransactionSchema.validate({ amountUnstaked, hotkey, netuid });
|
|
112
|
+
if (validationResult.error) {
|
|
113
|
+
throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Construct a transaction to unstake
|
|
119
|
+
*
|
|
120
|
+
* @param {Interface.RemoveStakeArgs} RemoveStake arguments to be passed to the addStake method
|
|
121
|
+
* @param {Interface.CreateBaseTxInfo} Base txn info required to construct the removeStake txn
|
|
122
|
+
* @returns {UnsignedTransaction} an unsigned unstake TAO transaction
|
|
123
|
+
*/
|
|
124
|
+
removeStake(args, info) {
|
|
125
|
+
return (0, txwrapper_core_1.defineMethod)({
|
|
126
|
+
method: {
|
|
127
|
+
args,
|
|
128
|
+
name: 'removeStake',
|
|
129
|
+
pallet: 'subtensorModule',
|
|
130
|
+
},
|
|
131
|
+
...info.baseTxInfo,
|
|
132
|
+
}, info.options);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.UnstakeBuilder = UnstakeBuilder;
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFrZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Vuc3Rha2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhEQUFzSDtBQUN0SCxnRUFBcUM7QUFDckMsbURBQTZGO0FBQzdGLHVFQUFvRztBQUVwRyxNQUFhLGNBQWUsU0FBUSx1Q0FBa0I7SUFLcEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLGdCQUFnQjtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQ3JCO1lBQ0UsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDckIsRUFDRCxVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBZTtRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJ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LGlCQUFpQjthQUMxQjtZQUNELEdBQUcsSUFBSSxDQUFDLFVBQVU7U0FDbkIsRUFDRCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFqSkQsd0NBaUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgZGVmaW5lTWV0aG9kLCBVbnNpZ25lZFRyYW5zYWN0aW9uLCBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSwgQmFzZUFkZHJlc3MgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25CdWlsZGVyLCBJbnRlcmZhY2UsIFNjaGVtYSB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBVbnN0YWtlQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfaG90a2V5OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfbmV0dWlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIHRyYW5zYWN0aW9uIHRvIHVuc3Rha2VcbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIHVuc3Rha2UgVEFPIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jc3Rha2luZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIHJldHVybiB0aGlzLnJlbW92ZVN0YWtlKFxuICAgICAge1xuICAgICAgICBhbW91bnRVbnN0YWtlZDogdGhpcy5fYW1vdW50LFxuICAgICAgICBob3RrZXk6IHRoaXMuX2hvdGtleSxcbiAgICAgICAgbmV0dWlkOiB0aGlzLl9uZXR1aWQsXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mb1xuICAgICk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgdG8gdW5zdGFrZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCB0byB1bnN0YWtlXG4gICAqIEByZXR1cm5zIHtVbnN0YWtlQnVpbGRlcn0gVGhpcyB1bnN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLW5vbWluYXRvciNyZXF1aXJlZC1taW5pbXVtLXN0YWtlXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihhbW91bnQpKTtcbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNvbnRyb2xsZXIgb2YgdGhlIHN0YWtlZCBhbW91bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBob3RrZXkgYWRkcmVzcyBvZiB2YWxpZGF0b3JcbiAgICogQHJldHVybnMge1Vuc3Rha2VCdWlsZGVyfSBUaGlzIHVuc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tc3Rha2luZyNhY2NvdW50c1xuICAgKi9cbiAgaG90a2V5KHsgYWRkcmVzcyB9OiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9ob3RrZXkgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE5ldHVpZCBvZiB0aGUgc3VibmV0IChyb290IG5ldHdvcmsgaXMgMClcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5ldHVpZFxuICAgKiBAcmV0dXJucyB7VW5zdGFrZUJ1aWxkZXJ9IFRoaXMgdW5zdGFraW5nIGJ1aWxkZXJcbiAgICovXG4gIG5ldHVpZChuZXR1aWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX25ldHVpZCA9IG5ldHVpZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IEludGVyZmFjZS5NZXRob2ROYW1lcy5SZW1vdmVTdGFrZSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBJbnRlcmZhY2UuUmVtb3ZlU3Rha2VBcmdzO1xuICAgICAgdGhpcy5hbW91bnQodHhNZXRob2QuYW1vdW50VW5zdGFrZWQpO1xuICAgICAgdGhpcy5ob3RrZXkoeyBhZGRyZXNzOiB0eE1ldGhvZC5ob3RrZXkgfSk7XG4gICAgICB0aGlzLm5ldHVpZCh0eE1ldGhvZC5uZXR1aWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCBhZGRTdGFrZWApO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbihfOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24oXyk7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcyh0aGlzLl9hbW91bnQsIHRoaXMuX2hvdGtleSwgdGhpcy5fbmV0dWlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIHZhbGlkYXRlIHdoZXRoZXIgdW5zdGFrZSBwYXJhbXMgaGF2ZSB0aGUgY29ycmVjdCB0eXBlIGFuZCBmb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudFVuc3Rha2VkIGFtb3VudCB0byB1bnN0YWtlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBob3RrZXkgaG90a2V5IGFkZHJlc3Mgb2YgdGhlIHZhbGlkYXRvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV0dWlkIG5ldHVpZCBvZiB0aGUgc3VibmV0XG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKGFtb3VudFVuc3Rha2VkOiBzdHJpbmcsIGhvdGtleTogc3RyaW5nLCBuZXR1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTY2hlbWEuVW5zdGFrZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGFtb3VudFVuc3Rha2VkLFxuICAgICAgaG90a2V5LFxuICAgICAgbmV0dWlkLFxuICAgIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYFVuU3Rha2UgQnVpbGRlciBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4LCByYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuUmVtb3ZlU3Rha2UpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEludGVyZmFjZS5SZW1vdmVTdGFrZUFyZ3M7XG4gICAgICBjb25zdCBhbW91bnRVbnN0YWtlZCA9IHR4TWV0aG9kLmFtb3VudFVuc3Rha2VkO1xuICAgICAgY29uc3QgaG90a2V5ID0gdHhNZXRob2QuaG90a2V5O1xuICAgICAgY29uc3QgbmV0dWlkID0gdHhNZXRob2QubmV0dWlkO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNjaGVtYS5VbnN0YWtlVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyBhbW91bnRVbnN0YWtlZCwgaG90a2V5LCBuZXR1aWQgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zZmVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0IGEgdHJhbnNhY3Rpb24gdG8gdW5zdGFrZVxuICAgKlxuICAgKiBAcGFyYW0ge0ludGVyZmFjZS5SZW1vdmVTdGFrZUFyZ3N9IFJlbW92ZVN0YWtlIGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8gdGhlIGFkZFN0YWtlIG1ldGhvZFxuICAgKiBAcGFyYW0ge0ludGVyZmFjZS5DcmVhdGVCYXNlVHhJbmZvfSBCYXNlIHR4biBpbmZvIHJlcXVpcmVkIHRvIGNvbnN0cnVjdCB0aGUgcmVtb3ZlU3Rha2UgdHhuXG4gICAqIEByZXR1cm5zIHtVbnNpZ25lZFRyYW5zYWN0aW9ufSBhbiB1bnNpZ25lZCB1bnN0YWtlIFRBTyB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVTdGFrZShhcmdzOiBJbnRlcmZhY2UuUmVtb3ZlU3Rha2VBcmdzLCBpbmZvOiBJbnRlcmZhY2UuQ3JlYXRlQmFzZVR4SW5mbyk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBkZWZpbmVNZXRob2QoXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDoge1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgbmFtZTogJ3JlbW92ZVN0YWtlJyxcbiAgICAgICAgICBwYWxsZXQ6ICdzdWJ0ZW5zb3JNb2R1bGUnLFxuICAgICAgICB9LFxuICAgICAgICAuLi5pbmZvLmJhc2VUeEluZm8sXG4gICAgICB9LFxuICAgICAgaW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -1,267 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { AddProxyBatchCallArgs, BatchArgs, BatchCallObject, HexString, Material, ProxyArgs, StakeArgs, StakeBatchCallArgs, StakeMoreArgs, StakeMoreCallArgs, TransferAllArgs, TransferArgs, TxMethod, UnstakeBatchCallArgs } from './iface';
|
|
7
|
-
import { KeyPair } from '.';
|
|
8
|
-
export declare class Utils implements BaseUtils {
|
|
9
|
-
/** @inheritdoc */
|
|
10
|
-
isValidAddress(address: string): boolean;
|
|
11
|
-
/** @inheritdoc */
|
|
12
|
-
isValidBlockId(hash: string): boolean;
|
|
13
|
-
/** @inheritdoc */
|
|
14
|
-
isValidPrivateKey(key: string): boolean;
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
isValidPublicKey(key: string): boolean;
|
|
17
|
-
/** @inheritdoc */
|
|
18
|
-
isValidSignature(signature: string): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Verifies the signature on a given message
|
|
21
|
-
*
|
|
22
|
-
* @param {string} signedMessage the signed message for the signature
|
|
23
|
-
* @param {string} signature the signature to verify
|
|
24
|
-
* @param {string} address the address of the signer
|
|
25
|
-
* @returns {boolean} whether the signature is valid or not
|
|
26
|
-
*/
|
|
27
|
-
verifySignature(signedMessage: string, signature: string, address: string): boolean;
|
|
28
|
-
/** @inheritdoc */
|
|
29
|
-
isValidTransactionId(txId: string): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* decodeSeed decodes a substrate seed
|
|
32
|
-
*
|
|
33
|
-
* @param {string} seed - the seed to be validated.
|
|
34
|
-
* @returns {Seed} - the object Seed
|
|
35
|
-
*/
|
|
36
|
-
decodeSeed(seed: string): Seed;
|
|
37
|
-
/**
|
|
38
|
-
* Helper function to capitalize the first letter of a string
|
|
39
|
-
*
|
|
40
|
-
* @param {string} val
|
|
41
|
-
* @returns {string}
|
|
42
|
-
*/
|
|
43
|
-
capitalizeFirstLetter(val: string): string;
|
|
44
|
-
/**
|
|
45
|
-
* Helper function to decode the internal method hex in case of a proxy transaction
|
|
46
|
-
*
|
|
47
|
-
* @param {string | UnsignedTransaction} tx
|
|
48
|
-
* @param { metadataRpc: string; registry: TypeRegistry } options
|
|
49
|
-
* @returns {TransferArgs}
|
|
50
|
-
*/
|
|
51
|
-
decodeCallMethod(tx: string | UnsignedTransaction, options: {
|
|
52
|
-
metadataRpc: string;
|
|
53
|
-
registry: TypeRegistry;
|
|
54
|
-
}): TransferArgs;
|
|
55
|
-
/**
|
|
56
|
-
* keyPairFromSeed generates an object with secretKey and publicKey using the substrate sdk
|
|
57
|
-
* @param seed 32 bytes long seed
|
|
58
|
-
* @returns KeyPair
|
|
59
|
-
*/
|
|
60
|
-
keyPairFromSeed(seed: Uint8Array): KeyPair;
|
|
61
|
-
/**
|
|
62
|
-
* Signing function. Implement this on the OFFLINE signing device.
|
|
63
|
-
*
|
|
64
|
-
* @param {KeyringPair} pair - The signing pair.
|
|
65
|
-
* @param {string} signingPayload - Payload to sign.
|
|
66
|
-
* @param {UnsignedTransaction} transaction - raw transaction to sign
|
|
67
|
-
* @param {Object} options
|
|
68
|
-
* @param {HexString} options.metadataRpc - metadata that is needed for substrate to sign
|
|
69
|
-
* @param {TypeRegistry} options.registry - metadata that is needed for substrate to sign
|
|
70
|
-
*/
|
|
71
|
-
createSignedTx(pair: KeyringPair, signingPayload: string, transaction: UnsignedTransaction, options: {
|
|
72
|
-
metadataRpc: HexString;
|
|
73
|
-
registry: TypeRegistry;
|
|
74
|
-
}): string;
|
|
75
|
-
/**
|
|
76
|
-
* Serializes the signed transaction
|
|
77
|
-
*
|
|
78
|
-
* @param transaction Transaction to serialize
|
|
79
|
-
* @param signature Signature of the message
|
|
80
|
-
* @param metadataRpc Network metadata
|
|
81
|
-
* @param registry Transaction registry
|
|
82
|
-
* @returns string Serialized transaction
|
|
83
|
-
*/
|
|
84
|
-
serializeSignedTransaction(transaction: any, signature: any, metadataRpc: `0x${string}`, registry: any): string;
|
|
85
|
-
/**
|
|
86
|
-
* Decodes the substrate address from the given format
|
|
87
|
-
*
|
|
88
|
-
* @param {string} address
|
|
89
|
-
* @param {number} [ss58Format]
|
|
90
|
-
* @returns {string}
|
|
91
|
-
*/
|
|
92
|
-
decodeSubstrateAddress(address: string, ss58Format: number): string;
|
|
93
|
-
/**
|
|
94
|
-
* Decodes the substrate address from the given format
|
|
95
|
-
*
|
|
96
|
-
* @param {string} address
|
|
97
|
-
* @param {number} [ss58Format]
|
|
98
|
-
* @returns {string}
|
|
99
|
-
*/
|
|
100
|
-
encodeSubstrateAddress(address: string, ss58Format?: number): string;
|
|
101
|
-
/**
|
|
102
|
-
* Retrieves the txHash of a signed txHex
|
|
103
|
-
*
|
|
104
|
-
* @param txHex signed transaction hex
|
|
105
|
-
* @returns {string}
|
|
106
|
-
*/
|
|
107
|
-
getTxHash(txHex: string): string;
|
|
108
|
-
isSigningPayload(payload: DecodedSigningPayload | DecodedSignedTx): payload is DecodedSigningPayload;
|
|
109
|
-
isProxyTransfer(arg: TxMethod['args']): arg is ProxyArgs;
|
|
110
|
-
isTransfer(arg: TxMethod['args']): arg is TransferArgs;
|
|
111
|
-
isTransferAll(arg: TxMethod['args']): arg is TransferAllArgs;
|
|
112
|
-
/**
|
|
113
|
-
* Returns true if arg is of type BatchArgs, false otherwise.
|
|
114
|
-
*
|
|
115
|
-
* @param arg The object to test.
|
|
116
|
-
*
|
|
117
|
-
* @return true if arg is of type BatchArgs, false otherwise.
|
|
118
|
-
*/
|
|
119
|
-
isBatch(arg: TxMethod['args']): arg is BatchArgs;
|
|
120
|
-
/**
|
|
121
|
-
* Returns true if arg is of type BatchArgs and the calls of the batch are staking calls: a stake
|
|
122
|
-
* call (bond) followed by an add proxy call (addProxy), false otherwise.
|
|
123
|
-
*
|
|
124
|
-
* @param arg The object to test.
|
|
125
|
-
*
|
|
126
|
-
* @return true if arg is of type BatchArgs and the calls of the batch are staking calls: a stake
|
|
127
|
-
* call (bond) followed by an add proxy call (addProxy), false otherwise.
|
|
128
|
-
*/
|
|
129
|
-
isStakingBatch(arg: TxMethod['args']): arg is BatchArgs;
|
|
130
|
-
/**
|
|
131
|
-
* Returns true if arg is of type StakeBatchCallArgs, false otherwise.
|
|
132
|
-
*
|
|
133
|
-
* @param arg The object to test.
|
|
134
|
-
*
|
|
135
|
-
* @return true if arg is of type StakeBatchCallArgs, false otherwise.
|
|
136
|
-
*/
|
|
137
|
-
isStakeBatchCallArgs(arg: BatchCallObject['args']): arg is StakeBatchCallArgs;
|
|
138
|
-
/**
|
|
139
|
-
* Returns true if arg is of type AddProxyBatchCallArgs, false otherwise.
|
|
140
|
-
*
|
|
141
|
-
* @param arg The object to test.
|
|
142
|
-
*
|
|
143
|
-
* @return true if arg is of type AddProxyBatchCallArgs, false otherwise.
|
|
144
|
-
*/
|
|
145
|
-
isAddProxyBatchCallArgs(arg: BatchCallObject['args']): arg is AddProxyBatchCallArgs;
|
|
146
|
-
/**
|
|
147
|
-
* Returns true if arg is of type BatchArgs and the calls of the batch are unstaking calls: a remove
|
|
148
|
-
* proxy call (removeProxy), followed by a chill call, and an unstake call (unbond), false otherwise.
|
|
149
|
-
*
|
|
150
|
-
* @param arg The object to test.
|
|
151
|
-
*
|
|
152
|
-
* @return true if arg is of type BatchArgs and the calls of the batch are unstaking calls: a remove
|
|
153
|
-
* proxy call (removeProxy), followed by a chill call, and an unstake call (unbond), false otherwise.
|
|
154
|
-
*/
|
|
155
|
-
isUnstakingBatch(arg: TxMethod['args']): arg is BatchArgs;
|
|
156
|
-
/**
|
|
157
|
-
* Returns true if arg is of type AddProxyBatchCallArgs, false otherwise.
|
|
158
|
-
*
|
|
159
|
-
* @param arg The object to test.
|
|
160
|
-
*
|
|
161
|
-
* @return true if arg is of type AddProxyBatchCallArgs, false otherwise.
|
|
162
|
-
*/
|
|
163
|
-
isRemoveProxyBatchCallArgs(arg: BatchCallObject['args']): arg is AddProxyBatchCallArgs;
|
|
164
|
-
/**
|
|
165
|
-
* Returns true if arg is of type UnstakeBatchCallArgs, false otherwise.
|
|
166
|
-
*
|
|
167
|
-
* @param arg The object to test.
|
|
168
|
-
*
|
|
169
|
-
* @return true if arg is of type UnstakeBatchCallArgs, false otherwise.
|
|
170
|
-
*/
|
|
171
|
-
isUnstakeBatchCallArgs(arg: BatchCallObject['args']): arg is UnstakeBatchCallArgs;
|
|
172
|
-
/**
|
|
173
|
-
* Returns true if arg is of type StakeArgs, false otherwise.
|
|
174
|
-
*
|
|
175
|
-
* @param arg The object to test.
|
|
176
|
-
*
|
|
177
|
-
* @return true if arg is of type StakeArgs, false otherwise.
|
|
178
|
-
*/
|
|
179
|
-
isBond(arg: TxMethod['args']): arg is StakeArgs;
|
|
180
|
-
/**
|
|
181
|
-
* Returns true if arg is of type StakeMoreArgs, false otherwise.
|
|
182
|
-
*
|
|
183
|
-
* @param arg The object to test.
|
|
184
|
-
*
|
|
185
|
-
* @return true if arg is of type StakeMoreArgs, false otherwise.
|
|
186
|
-
*/
|
|
187
|
-
isBondExtra(arg: TxMethod['args'] | BatchCallObject['args']): arg is StakeMoreArgs;
|
|
188
|
-
/**
|
|
189
|
-
* Returns true if arg is of type StakeMoreArgs, false otherwise.
|
|
190
|
-
*
|
|
191
|
-
* @param arg The object to test.
|
|
192
|
-
*
|
|
193
|
-
* @return true if arg is of type StakeMoreArgs, false otherwise.
|
|
194
|
-
*/
|
|
195
|
-
isBondBatchExtra(arg: BatchCallObject['args']): arg is StakeMoreCallArgs;
|
|
196
|
-
/**
|
|
197
|
-
* extracts and returns the signature in hex format given a raw signed transaction
|
|
198
|
-
*
|
|
199
|
-
* @param {string} rawTx signed raw transaction
|
|
200
|
-
* @param options registry substrate registry used to retrieve the signature
|
|
201
|
-
*/
|
|
202
|
-
recoverSignatureFromRawTx(rawTx: string, options: {
|
|
203
|
-
registry: TypeRegistry;
|
|
204
|
-
}): string;
|
|
205
|
-
/**
|
|
206
|
-
* Decodes the dot address from the given format
|
|
207
|
-
*
|
|
208
|
-
* @param {string} address
|
|
209
|
-
* @param {number} [ss58Format]
|
|
210
|
-
* @returns {KeyPair}
|
|
211
|
-
*/
|
|
212
|
-
decodeSubstrateAddressToKeyPair(address: string, ss58Format?: number): KeyPair;
|
|
213
|
-
getMaterial(coinConfig: Readonly<CoinConfig>): Material;
|
|
214
|
-
/**
|
|
215
|
-
* Checks whether the given input is a hex string with with 0 value
|
|
216
|
-
* used to check whether a given transaction is immortal or mortal
|
|
217
|
-
* @param hexValue
|
|
218
|
-
*/
|
|
219
|
-
isZeroHex(hexValue: string): boolean;
|
|
220
|
-
/**
|
|
221
|
-
* Takes an asset name and returns the respective address to format to
|
|
222
|
-
* since substrate addresses differ depending on the network
|
|
223
|
-
* @param networkCoinName
|
|
224
|
-
*/
|
|
225
|
-
getAddressFormat(networkCoinName: DotAssetTypes): DotAddressFormat;
|
|
226
|
-
/**
|
|
227
|
-
* Creates a pure proxy extrinsic. Substrate has renamed anonymous proxies to pure proxies, but
|
|
228
|
-
* the libraries we are using to build transactions have not been updated, as a stop gap we are
|
|
229
|
-
* defining the pure proxy extrinsic here.
|
|
230
|
-
*
|
|
231
|
-
* @param args Arguments to the createPure extrinsic.
|
|
232
|
-
* @param info Common information to all transactions.
|
|
233
|
-
* @param options Chain registry and metadata.
|
|
234
|
-
*/
|
|
235
|
-
pureProxy(args: PureProxyArgs, info: BaseTxInfo, options: OptionsWithMeta): UnsignedTransaction;
|
|
236
|
-
/**
|
|
237
|
-
* Removes '0x' from a given `string` if present.
|
|
238
|
-
*
|
|
239
|
-
* @param {string} str the string value.
|
|
240
|
-
*
|
|
241
|
-
* @return {string} a string without a '0x' prefix.
|
|
242
|
-
*/
|
|
243
|
-
stripHexPrefix(str: string): string;
|
|
244
|
-
/**
|
|
245
|
-
* Returns true if a string starts with '0x', false otherwise.
|
|
246
|
-
*
|
|
247
|
-
* @param {string} str the string value.
|
|
248
|
-
*
|
|
249
|
-
* @return {boolean} true if a string starts with '0x', false otherwise.
|
|
250
|
-
*/
|
|
251
|
-
isHexPrefixed(str: string): boolean;
|
|
252
|
-
/**
|
|
253
|
-
* Decodes the dot address from the given format
|
|
254
|
-
*
|
|
255
|
-
* @param {string} address
|
|
256
|
-
* @param {number} [ss58Format]
|
|
257
|
-
* @returns {string}
|
|
258
|
-
*/
|
|
259
|
-
decodeDotAddress(address: string, ss58Format: number): string;
|
|
260
|
-
}
|
|
261
|
-
interface PureProxyArgs extends Args {
|
|
262
|
-
proxyType: string;
|
|
263
|
-
delay: number;
|
|
264
|
-
index: number;
|
|
1
|
+
import { Interface, Utils as SubstrateUtils } from '@bitgo-beta/abstract-substrate';
|
|
2
|
+
import { BaseCoin as CoinConfig, NetworkType } from '@bitgo-beta/statics';
|
|
3
|
+
export declare class Utils extends SubstrateUtils {
|
|
4
|
+
getMaterial(networkType: NetworkType): Interface.Material;
|
|
5
|
+
getTaoTokenBySubnetId(subnetId: string | number): Readonly<CoinConfig>;
|
|
265
6
|
}
|
|
266
7
|
declare const utils: Utils;
|
|
267
8
|
export default utils;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAS,WAAW,EAAW,MAAM,qBAAqB,CAAC;AAI1F,qBAAa,KAAM,SAAQ,cAAc;IACvC,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ;IAIzD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;CASvE;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC"}
|