@bitgo-beta/sdk-coin-dot 2.2.8-beta.167 → 2.2.8-beta.1670
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 → cjs/src}/dot.d.ts +8 -19
- package/dist/cjs/src/dot.d.ts.map +1 -0
- package/dist/cjs/src/dot.js +623 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/index.js +6 -2
- package/dist/cjs/src/lib/addressInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/addressInitializationBuilder.js +182 -0
- package/dist/{src → cjs/src}/lib/batchTransactionBuilder.d.ts +1 -0
- package/dist/cjs/src/lib/batchTransactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/batchTransactionBuilder.js +229 -0
- package/dist/cjs/src/lib/claimBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/claimBuilder.js +117 -0
- package/dist/cjs/src/lib/errors.d.ts.map +1 -0
- package/dist/cjs/src/lib/errors.js +19 -0
- package/dist/{src → cjs/src}/lib/iface.d.ts +16 -13
- package/dist/cjs/src/lib/iface.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface.js +128 -0
- package/dist/cjs/src/lib/iface_utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface_utils.js +92 -0
- package/dist/{src → cjs/src}/lib/index.d.ts +2 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/index.js +73 -0
- package/dist/{src → cjs/src}/lib/keyPair.d.ts +7 -0
- package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
- package/dist/cjs/src/lib/keyPair.js +117 -0
- package/dist/cjs/src/lib/nativeTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/nativeTransferBuilder.js +219 -0
- package/dist/cjs/src/lib/proxyBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/proxyBuilder.js +116 -0
- package/dist/cjs/src/lib/singletonRegistry.d.ts.map +1 -0
- package/dist/cjs/src/lib/singletonRegistry.js +20 -0
- package/dist/cjs/src/lib/stakingBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingBuilder.js +167 -0
- package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -1
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +624 -0
- package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -1
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +351 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +104 -0
- package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilder.js +11 -0
- package/dist/cjs/src/lib/txnSchema.d.ts.map +1 -0
- package/dist/cjs/src/lib/txnSchema.js +117 -0
- package/dist/cjs/src/lib/unnominateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/unnominateBuilder.js +48 -0
- package/dist/cjs/src/lib/unstakeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/unstakeBuilder.js +87 -0
- package/dist/{src → cjs/src}/lib/utils.d.ts +10 -2
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +491 -0
- package/dist/cjs/src/lib/wasmParser.d.ts +57 -0
- package/dist/cjs/src/lib/wasmParser.d.ts.map +1 -0
- package/dist/cjs/src/lib/wasmParser.js +345 -0
- package/dist/cjs/src/lib/withdrawUnstakedBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/withdrawUnstakedBuilder.js +88 -0
- package/dist/cjs/src/register.d.ts.map +1 -0
- package/dist/cjs/src/register.js +11 -0
- package/dist/cjs/src/resources/index.d.ts +5 -0
- package/dist/cjs/src/resources/index.d.ts.map +1 -0
- package/dist/cjs/src/resources/index.js +21 -0
- package/dist/cjs/src/resources/mainnet.d.ts.map +1 -0
- package/dist/cjs/src/resources/mainnet.js +5 -0
- package/dist/cjs/src/resources/polkadotAssetHub.d.ts +2 -0
- package/dist/cjs/src/resources/polkadotAssetHub.d.ts.map +1 -0
- package/dist/cjs/src/resources/polkadotAssetHub.js +5 -0
- package/dist/cjs/src/resources/westend.d.ts.map +1 -0
- package/dist/cjs/src/resources/westend.js +5 -0
- package/dist/cjs/src/resources/westendAssetHub.d.ts +2 -0
- package/dist/cjs/src/resources/westendAssetHub.d.ts.map +1 -0
- package/dist/cjs/src/resources/westendAssetHub.js +5 -0
- package/dist/cjs/src/tdot.d.ts.map +1 -0
- package/dist/cjs/src/tdot.js +27 -0
- package/dist/cjs/test/fixtures.d.ts +283 -0
- package/dist/cjs/test/fixtures.d.ts.map +1 -0
- package/dist/cjs/test/fixtures.js +439 -0
- package/dist/cjs/test/resources/index.d.ts +141 -0
- package/dist/cjs/test/resources/index.d.ts.map +1 -0
- package/dist/cjs/test/resources/index.js +157 -0
- package/dist/cjs/test/resources/materialData.json +8 -0
- package/dist/cjs/test/resources/materialDataModified.json +8 -0
- package/dist/cjs/test/resources/testnet.d.ts +2 -0
- package/dist/cjs/test/resources/testnet.d.ts.map +1 -0
- package/dist/{src/resources/westend.js → cjs/test/resources/testnet.js} +3 -3
- package/dist/cjs/test/unit/address.d.ts +2 -0
- package/dist/cjs/test/unit/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/address.js +45 -0
- package/dist/cjs/test/unit/dot.d.ts +2 -0
- package/dist/cjs/test/unit/dot.d.ts.map +1 -0
- package/dist/cjs/test/unit/dot.js +944 -0
- package/dist/cjs/test/unit/keypair.d.ts +2 -0
- package/dist/cjs/test/unit/keypair.d.ts.map +1 -0
- package/dist/cjs/test/unit/keypair.js +111 -0
- package/dist/cjs/test/unit/transaction.d.ts +2 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +269 -0
- package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.js +265 -0
- package/dist/cjs/test/unit/transactionBuilder/base.d.ts +8 -0
- package/dist/cjs/test/unit/transactionBuilder/base.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/base.js +233 -0
- package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.js +521 -0
- package/dist/cjs/test/unit/transactionBuilder/claimBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/claimBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/claimBuilder.js +129 -0
- package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.js +88 -0
- package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.js +59 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.js +235 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.js +107 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +437 -0
- package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.js +97 -0
- package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.js +116 -0
- package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.js +115 -0
- package/dist/cjs/test/unit/utils.d.ts +2 -0
- package/dist/cjs/test/unit/utils.d.ts.map +1 -0
- package/dist/cjs/test/unit/utils.js +117 -0
- package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts +22 -0
- package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts.map +1 -0
- package/dist/cjs/test/unit/wasmBuilderByteComparison.js +197 -0
- package/dist/cjs/test/unit/wasmParserExplanation.d.ts +15 -0
- package/dist/cjs/test/unit/wasmParserExplanation.d.ts.map +1 -0
- package/dist/cjs/test/unit/wasmParserExplanation.js +147 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/dot.d.ts +147 -0
- package/dist/esm/dot.d.ts.map +1 -0
- package/dist/esm/dot.js +583 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/lib/addressInitializationBuilder.d.ts +79 -0
- package/dist/esm/lib/addressInitializationBuilder.js +175 -0
- package/dist/esm/lib/batchTransactionBuilder.d.ts +62 -0
- package/dist/{src → esm}/lib/batchTransactionBuilder.d.ts.map +1 -1
- package/dist/esm/lib/batchTransactionBuilder.js +222 -0
- package/dist/esm/lib/claimBuilder.d.ts +58 -0
- package/dist/esm/lib/claimBuilder.js +110 -0
- package/dist/esm/lib/errors.d.ts +8 -0
- package/dist/esm/lib/errors.js +14 -0
- package/dist/esm/lib/iface.d.ts +337 -0
- package/dist/esm/lib/iface.d.ts.map +1 -0
- package/dist/esm/lib/iface.js +125 -0
- package/dist/esm/lib/iface_utils.d.ts +59 -0
- package/dist/esm/lib/iface_utils.js +83 -0
- package/dist/esm/lib/index.d.ts +21 -0
- package/dist/{src → esm}/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +20 -0
- package/dist/esm/lib/keyPair.d.ts +38 -0
- package/dist/esm/lib/keyPair.d.ts.map +1 -0
- package/dist/esm/lib/keyPair.js +77 -0
- package/dist/esm/lib/nativeTransferBuilder.d.ts +84 -0
- package/dist/esm/lib/nativeTransferBuilder.js +212 -0
- package/dist/esm/lib/proxyBuilder.d.ts +54 -0
- package/dist/esm/lib/proxyBuilder.js +109 -0
- package/dist/esm/lib/singletonRegistry.d.ts +7 -0
- package/dist/esm/lib/singletonRegistry.js +16 -0
- package/dist/esm/lib/stakingBuilder.d.ts +66 -0
- package/dist/esm/lib/stakingBuilder.js +160 -0
- package/dist/esm/lib/transaction.d.ts +83 -0
- package/dist/esm/lib/transaction.d.ts.map +1 -0
- package/dist/esm/lib/transaction.js +584 -0
- package/dist/esm/lib/transactionBuilder.d.ts +131 -0
- package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilder.js +311 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +28 -0
- package/dist/esm/lib/transactionBuilderFactory.js +97 -0
- package/dist/esm/lib/transferBuilder.d.ts +11 -0
- package/dist/esm/lib/transferBuilder.js +7 -0
- package/dist/esm/lib/txnSchema.d.ts +15 -0
- package/dist/esm/lib/txnSchema.js +111 -0
- package/dist/esm/lib/unnominateBuilder.d.ts +24 -0
- package/dist/esm/lib/unnominateBuilder.js +44 -0
- package/dist/esm/lib/unstakeBuilder.d.ts +38 -0
- package/dist/esm/lib/unstakeBuilder.js +80 -0
- package/dist/esm/lib/utils.d.ts +261 -0
- package/dist/esm/lib/utils.d.ts.map +1 -0
- package/dist/esm/lib/utils.js +451 -0
- package/dist/esm/lib/wasmParser.d.ts +57 -0
- package/dist/esm/lib/wasmParser.d.ts.map +1 -0
- package/dist/esm/lib/wasmParser.js +341 -0
- package/dist/esm/lib/withdrawUnstakedBuilder.d.ts +38 -0
- package/dist/esm/lib/withdrawUnstakedBuilder.js +81 -0
- package/dist/esm/register.d.ts +3 -0
- package/dist/esm/register.js +7 -0
- package/dist/esm/resources/index.d.ts +5 -0
- package/dist/{src → esm}/resources/index.d.ts.map +1 -1
- package/dist/esm/resources/index.js +5 -0
- package/dist/esm/resources/mainnet.d.ts +2 -0
- package/dist/esm/resources/mainnet.js +2 -0
- package/dist/esm/resources/polkadotAssetHub.d.ts +2 -0
- package/dist/esm/resources/polkadotAssetHub.d.ts.map +1 -0
- package/dist/esm/resources/polkadotAssetHub.js +2 -0
- package/dist/esm/resources/westend.d.ts +2 -0
- package/dist/esm/resources/westend.js +2 -0
- package/dist/esm/resources/westendAssetHub.d.ts +2 -0
- package/dist/esm/resources/westendAssetHub.d.ts.map +1 -0
- package/dist/esm/resources/westendAssetHub.js +2 -0
- package/dist/esm/tdot.d.ts +12 -0
- package/dist/esm/tdot.js +23 -0
- package/package.json +43 -21
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -450
- package/dist/src/dot.d.ts.map +0 -1
- package/dist/src/dot.js +0 -562
- package/dist/src/lib/addressInitializationBuilder.js +0 -184
- package/dist/src/lib/batchTransactionBuilder.js +0 -220
- package/dist/src/lib/claimBuilder.js +0 -119
- package/dist/src/lib/errors.js +0 -19
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -128
- package/dist/src/lib/iface_utils.js +0 -93
- package/dist/src/lib/index.js +0 -57
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -70
- package/dist/src/lib/nativeTransferBuilder.js +0 -221
- package/dist/src/lib/proxyBuilder.js +0 -118
- package/dist/src/lib/singletonRegistry.js +0 -20
- package/dist/src/lib/stakingBuilder.js +0 -169
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -590
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -337
- package/dist/src/lib/transactionBuilderFactory.js +0 -105
- package/dist/src/lib/transferBuilder.js +0 -11
- package/dist/src/lib/txnSchema.js +0 -117
- package/dist/src/lib/unnominateBuilder.js +0 -50
- package/dist/src/lib/unstakeBuilder.js +0 -89
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -458
- package/dist/src/lib/withdrawUnstakedBuilder.js +0 -90
- package/dist/src/register.js +0 -11
- package/dist/src/resources/index.d.ts +0 -3
- package/dist/src/resources/index.js +0 -15
- package/dist/src/resources/mainnet.js +0 -5
- package/dist/src/tdot.js +0 -27
- /package/dist/{src → cjs/src}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/addressInitializationBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/claimBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/errors.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/iface_utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/nativeTransferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/proxyBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/singletonRegistry.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/txnSchema.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/unnominateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/unstakeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/withdrawUnstakedBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/register.d.ts +0 -0
- /package/dist/{src → cjs/src}/resources/mainnet.d.ts +0 -0
- /package/dist/{src → cjs/src}/resources/westend.d.ts +0 -0
- /package/dist/{src → cjs/src}/tdot.d.ts +0 -0
- /package/dist/{src → esm}/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/addressInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/claimBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/errors.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/iface_utils.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/nativeTransferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/proxyBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/singletonRegistry.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionBuilderFactory.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/txnSchema.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/unnominateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/unstakeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/withdrawUnstakedBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/register.d.ts.map +0 -0
- /package/dist/{src → esm}/resources/mainnet.d.ts.map +0 -0
- /package/dist/{src → esm}/resources/westend.d.ts.map +0 -0
- /package/dist/{src → esm}/tdot.d.ts.map +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.KeyPair = void 0;
|
|
40
|
+
const keyring_1 = require("@polkadot/keyring");
|
|
41
|
+
const pair_1 = require("@polkadot/keyring/pair");
|
|
42
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
43
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
44
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
45
|
+
const nacl = __importStar(require("tweetnacl"));
|
|
46
|
+
const TYPE = 'ed25519';
|
|
47
|
+
const keyring = new keyring_1.Keyring({ type: TYPE });
|
|
48
|
+
class KeyPair extends sdk_core_1.Ed25519KeyPair {
|
|
49
|
+
/**
|
|
50
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
51
|
+
*
|
|
52
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
53
|
+
*/
|
|
54
|
+
constructor(source) {
|
|
55
|
+
super(source);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Helper function to create the KeyringPair for signing a dot transaction.
|
|
59
|
+
*
|
|
60
|
+
* @returns {KeyringPair} dot KeyringPair
|
|
61
|
+
*
|
|
62
|
+
* @see https://polkadot.js.org/docs/api/start/keyring
|
|
63
|
+
*/
|
|
64
|
+
createPolkadotPair() {
|
|
65
|
+
const secretKey = this.keyPair.prv ? new Uint8Array(Buffer.from(this.keyPair.prv, 'hex')) : undefined;
|
|
66
|
+
const publicKey = new Uint8Array(Buffer.from(this.keyPair.pub, 'hex'));
|
|
67
|
+
return (0, pair_1.createPair)({ toSS58: keyring.encodeAddress, type: TYPE }, { secretKey, publicKey });
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
// https://wiki.polkadot.network/docs/learn-accounts#address-format
|
|
71
|
+
* Returns the address in either mainnet polkadot format (starts with 1)
|
|
72
|
+
* or substrate format used for westend (starts with 5)
|
|
73
|
+
*/
|
|
74
|
+
getAddress(format) {
|
|
75
|
+
let encodedAddress = this.createPolkadotPair().address;
|
|
76
|
+
encodedAddress = keyring.encodeAddress(encodedAddress, format);
|
|
77
|
+
return encodedAddress;
|
|
78
|
+
}
|
|
79
|
+
/** @inheritdoc */
|
|
80
|
+
getKeys() {
|
|
81
|
+
const result = { pub: this.keyPair.pub };
|
|
82
|
+
if (this.keyPair.prv) {
|
|
83
|
+
result.prv = this.keyPair.prv;
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
/** @inheritdoc */
|
|
88
|
+
recordKeysFromPrivateKeyInProtocolFormat(prv) {
|
|
89
|
+
const decodedSeed = utils_1.default.decodeSeed(prv);
|
|
90
|
+
const bufferFromSeed = Buffer.from(decodedSeed.seed);
|
|
91
|
+
return utils_1.default.keyPairFromSeed(bufferFromSeed).keyPair;
|
|
92
|
+
}
|
|
93
|
+
/** @inheritdoc */
|
|
94
|
+
recordKeysFromPublicKeyInProtocolFormat(pub) {
|
|
95
|
+
const publicKey = keyring.addFromPair({
|
|
96
|
+
// tss common pub is in base58 format and decodes to length of 32
|
|
97
|
+
publicKey: (0, sdk_core_1.isBase58)(pub, 32) ? new Uint8Array(bs58_1.default.decode(pub)) : new Uint8Array(Buffer.from(pub, 'hex')),
|
|
98
|
+
secretKey: new Uint8Array(),
|
|
99
|
+
}).publicKey;
|
|
100
|
+
return { pub: (0, sdk_core_1.toHex)(publicKey) };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Sign the message in Uint8Array
|
|
104
|
+
*
|
|
105
|
+
* @param {Uint8Array} message to be signed
|
|
106
|
+
* @returns {Uint8Array} signed message
|
|
107
|
+
*/
|
|
108
|
+
signMessageinUint8Array(message) {
|
|
109
|
+
const { prv } = this.keyPair;
|
|
110
|
+
if (!prv) {
|
|
111
|
+
throw new Error('Missing private key');
|
|
112
|
+
}
|
|
113
|
+
return nacl.sign.detached(message, nacl.sign.keyPair.fromSeed((0, sdk_core_1.toUint8Array)(prv)).secretKey);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.KeyPair = KeyPair;
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNEM7QUFDNUMsaURBQW9EO0FBRXBELG1EQVE4QjtBQUM5QixnREFBd0I7QUFDeEIsb0RBQTRCO0FBQzVCLGdEQUFrQztBQUVsQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUM7QUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFFNUMsTUFBYSxPQUFRLFNBQVEseUJBQWM7SUFDekM7Ozs7T0FJRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxrQkFBa0I7UUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3RHLE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUEsaUJBQVUsRUFBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQXdCO1FBQ2pDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUN2RCxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsTUFBZ0IsQ0FBQyxDQUFDO1FBRXpFLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTztRQUNMLE1BQU0sTUFBTSxHQUFnQixFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHdDQUF3QyxDQUFDLEdBQVc7UUFDbEQsTUFBTSxXQUFXLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxPQUFPLGVBQUssQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsdUNBQXVDLENBQUMsR0FBVztRQUNqRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3BDLGlFQUFpRTtZQUNqRSxTQUFTLEVBQUUsSUFBQSxtQkFBUSxFQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsY0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RyxTQUFTLEVBQUUsSUFBSSxVQUFVLEVBQUU7U0FDNUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNiLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBQSxnQkFBSyxFQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUJBQXVCLENBQUMsT0FBbUI7UUFDekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBQSx1QkFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUYsQ0FBQztDQUNGO0FBMUVELDBCQTBFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleXJpbmcgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBjcmVhdGVQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvcGFpcic7XG5pbXBvcnQgeyBLZXlyaW5nUGFpciB9IGZyb20gJ0Bwb2xrYWRvdC9rZXlyaW5nL3R5cGVzJztcbmltcG9ydCB7XG4gIERvdEFkZHJlc3NGb3JtYXQsXG4gIERlZmF1bHRLZXlzLFxuICBFZDI1NTE5S2V5UGFpcixcbiAgaXNCYXNlNTgsXG4gIEtleVBhaXJPcHRpb25zLFxuICB0b0hleCxcbiAgdG9VaW50OEFycmF5LFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgYnM1OCBmcm9tICdiczU4JztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIG5hY2wgZnJvbSAndHdlZXRuYWNsJztcblxuY29uc3QgVFlQRSA9ICdlZDI1NTE5JztcbmNvbnN0IGtleXJpbmcgPSBuZXcgS2V5cmluZyh7IHR5cGU6IFRZUEUgfSk7XG5cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgRWQyNTUxOUtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIEtleXJpbmdQYWlyIGZvciBzaWduaW5nIGEgZG90IHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB7S2V5cmluZ1BhaXJ9IGRvdCBLZXlyaW5nUGFpclxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3MvYXBpL3N0YXJ0L2tleXJpbmdcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVQb2xrYWRvdFBhaXIoKTogS2V5cmluZ1BhaXIge1xuICAgIGNvbnN0IHNlY3JldEtleSA9IHRoaXMua2V5UGFpci5wcnYgPyBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh0aGlzLmtleVBhaXIucHJ2LCAnaGV4JykpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHRoaXMua2V5UGFpci5wdWIsICdoZXgnKSk7XG4gICAgcmV0dXJuIGNyZWF0ZVBhaXIoeyB0b1NTNTg6IGtleXJpbmcuZW5jb2RlQWRkcmVzcywgdHlwZTogVFlQRSB9LCB7IHNlY3JldEtleSwgcHVibGljS2V5IH0pO1xuICB9XG5cbiAgLyoqXG4gICAvLyBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLWFjY291bnRzI2FkZHJlc3MtZm9ybWF0XG4gICAqIFJldHVybnMgdGhlIGFkZHJlc3MgaW4gZWl0aGVyIG1haW5uZXQgcG9sa2Fkb3QgZm9ybWF0IChzdGFydHMgd2l0aCAxKVxuICAgKiBvciBzdWJzdHJhdGUgZm9ybWF0IHVzZWQgZm9yIHdlc3RlbmQgKHN0YXJ0cyB3aXRoIDUpXG4gICAqL1xuICBnZXRBZGRyZXNzKGZvcm1hdDogRG90QWRkcmVzc0Zvcm1hdCk6IHN0cmluZyB7XG4gICAgbGV0IGVuY29kZWRBZGRyZXNzID0gdGhpcy5jcmVhdGVQb2xrYWRvdFBhaXIoKS5hZGRyZXNzO1xuICAgIGVuY29kZWRBZGRyZXNzID0ga2V5cmluZy5lbmNvZGVBZGRyZXNzKGVuY29kZWRBZGRyZXNzLCBmb3JtYXQgYXMgbnVtYmVyKTtcblxuICAgIHJldHVybiBlbmNvZGVkQWRkcmVzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRLZXlzKCk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCByZXN1bHQ6IERlZmF1bHRLZXlzID0geyBwdWI6IHRoaXMua2V5UGFpci5wdWIgfTtcbiAgICBpZiAodGhpcy5rZXlQYWlyLnBydikge1xuICAgICAgcmVzdWx0LnBydiA9IHRoaXMua2V5UGFpci5wcnY7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5SW5Qcm90b2NvbEZvcm1hdChwcnY6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCBkZWNvZGVkU2VlZCA9IHV0aWxzLmRlY29kZVNlZWQocHJ2KTtcbiAgICBjb25zdCBidWZmZXJGcm9tU2VlZCA9IEJ1ZmZlci5mcm9tKGRlY29kZWRTZWVkLnNlZWQpO1xuICAgIHJldHVybiB1dGlscy5rZXlQYWlyRnJvbVNlZWQoYnVmZmVyRnJvbVNlZWQpLmtleVBhaXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IGtleXJpbmcuYWRkRnJvbVBhaXIoe1xuICAgICAgLy8gdHNzIGNvbW1vbiBwdWIgaXMgaW4gYmFzZTU4IGZvcm1hdCBhbmQgZGVjb2RlcyB0byBsZW5ndGggb2YgMzJcbiAgICAgIHB1YmxpY0tleTogaXNCYXNlNTgocHViLCAzMikgPyBuZXcgVWludDhBcnJheShiczU4LmRlY29kZShwdWIpKSA6IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKSxcbiAgICAgIHNlY3JldEtleTogbmV3IFVpbnQ4QXJyYXkoKSxcbiAgICB9KS5wdWJsaWNLZXk7XG4gICAgcmV0dXJuIHsgcHViOiB0b0hleChwdWJsaWNLZXkpIH07XG4gIH1cblxuICAvKipcbiAgICogIFNpZ24gdGhlIG1lc3NhZ2UgaW4gVWludDhBcnJheVxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IG1lc3NhZ2UgdG8gYmUgc2lnbmVkXG4gICAqIEByZXR1cm5zIHtVaW50OEFycmF5fSBzaWduZWQgbWVzc2FnZVxuICAgKi9cbiAgc2lnbk1lc3NhZ2VpblVpbnQ4QXJyYXkobWVzc2FnZTogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IHsgcHJ2IH0gPSB0aGlzLmtleVBhaXI7XG4gICAgaWYgKCFwcnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICByZXR1cm4gbmFjbC5zaWduLmRldGFjaGVkKG1lc3NhZ2UsIG5hY2wuc2lnbi5rZXlQYWlyLmZyb21TZWVkKHRvVWludDhBcnJheShwcnYpKS5zZWNyZXRLZXkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/nativeTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAA0B,SAAS,EAAiC,MAAM,SAAS,CAAC;AAG3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,8BAAsB,qBAAsB,SAAQ,kBAAkB;IACpE,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,iBAAiB,UAAQ;IACnC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAqCjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI;IAQhC;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;;;;;OAQG;IACH,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,IAAI;IAMlC;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B;;;;;;;;OAQG;IACH,cAAc,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI;IAK/C,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IA0B7G,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAsDjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAgBvB"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NativeTransferBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
+
const iface_1 = require("./iface");
|
|
11
|
+
const iface_utils_1 = require("./iface_utils");
|
|
12
|
+
const singletonRegistry_1 = require("./singletonRegistry");
|
|
13
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
14
|
+
const txnSchema_1 = require("./txnSchema");
|
|
15
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
16
|
+
class NativeTransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
17
|
+
constructor(_coinConfig) {
|
|
18
|
+
super(_coinConfig);
|
|
19
|
+
this._sweepFreeBalance = false;
|
|
20
|
+
this._keepAddressAlive = true;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* Dispatch the given call from an account that the sender is authorised for through add_proxy.
|
|
25
|
+
*
|
|
26
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
27
|
+
*
|
|
28
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
29
|
+
*/
|
|
30
|
+
buildTransaction() {
|
|
31
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
32
|
+
let transferTx;
|
|
33
|
+
if (this._sweepFreeBalance) {
|
|
34
|
+
transferTx = txwrapper_polkadot_1.methods.balances.transferAll({
|
|
35
|
+
dest: { id: this._to },
|
|
36
|
+
keepAlive: this._keepAddressAlive,
|
|
37
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
transferTx = txwrapper_polkadot_1.methods.balances.transferKeepAlive({
|
|
41
|
+
value: this._amount,
|
|
42
|
+
dest: { id: this._to },
|
|
43
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
44
|
+
}
|
|
45
|
+
if (!this._owner) {
|
|
46
|
+
return transferTx;
|
|
47
|
+
}
|
|
48
|
+
return txwrapper_polkadot_1.methods.proxy.proxy({
|
|
49
|
+
real: this._owner,
|
|
50
|
+
forceProxyType: this._forceProxyType,
|
|
51
|
+
call: transferTx.method,
|
|
52
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
53
|
+
}
|
|
54
|
+
get transactionType() {
|
|
55
|
+
return sdk_core_1.TransactionType.Send;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
* Set this to be a sweep transaction, using TransferAll with keepAlive set to true by default.
|
|
60
|
+
* If keepAlive is false, the entire address will be swept (including the 1 DOT minimum).
|
|
61
|
+
*
|
|
62
|
+
* @param {boolean} keepAlive - keep the address alive after this sweep
|
|
63
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
64
|
+
*
|
|
65
|
+
* @see https://github.com/paritytech/txwrapper-core/blob/main/docs/modules/txwrapper_substrate_src.methods.balances.md#transferall
|
|
66
|
+
*/
|
|
67
|
+
sweep(keepAlive) {
|
|
68
|
+
this._sweepFreeBalance = true;
|
|
69
|
+
if (keepAlive !== undefined) {
|
|
70
|
+
this._keepAddressAlive = keepAlive;
|
|
71
|
+
}
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
* The amount for transfer transaction.
|
|
77
|
+
*
|
|
78
|
+
* @param {string} amount
|
|
79
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
80
|
+
*
|
|
81
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
82
|
+
*/
|
|
83
|
+
amount(amount) {
|
|
84
|
+
this.validateValue(new bignumber_js_1.default(amount));
|
|
85
|
+
this._amount = amount;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
* The destination address for transfer transaction.
|
|
91
|
+
*
|
|
92
|
+
* @param {string} dest
|
|
93
|
+
* @returns {TransferBuilder} This transfer builder.
|
|
94
|
+
*
|
|
95
|
+
* @see https://wiki.polkadot.network/docs/build-protocol-info
|
|
96
|
+
*/
|
|
97
|
+
to({ address }) {
|
|
98
|
+
this.validateAddress({ address });
|
|
99
|
+
this._to = address;
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
*
|
|
104
|
+
* The real address of the original tx
|
|
105
|
+
*
|
|
106
|
+
* @param {BaseAddress} real
|
|
107
|
+
* @returns {TransferBuilder} This builder.
|
|
108
|
+
*
|
|
109
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
110
|
+
*/
|
|
111
|
+
owner(owner) {
|
|
112
|
+
this.validateAddress({ address: owner.address });
|
|
113
|
+
this._owner = owner.address;
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
*
|
|
118
|
+
* The proxy type to execute
|
|
119
|
+
*
|
|
120
|
+
* @param {proxyType} forceProxyType
|
|
121
|
+
* @returns {TransferBuilder} This builder.
|
|
122
|
+
*
|
|
123
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
124
|
+
*/
|
|
125
|
+
forceProxyType(forceProxyType) {
|
|
126
|
+
this._forceProxyType = forceProxyType;
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
/** @inheritdoc */
|
|
130
|
+
validateDecodedTransaction(decodedTxn, rawTransaction) {
|
|
131
|
+
if (decodedTxn.method?.name === iface_1.MethodNames.TransferKeepAlive) {
|
|
132
|
+
const txMethod = decodedTxn.method.args;
|
|
133
|
+
const amount = `${txMethod.value}`;
|
|
134
|
+
const to = txMethod.dest.id;
|
|
135
|
+
const validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
136
|
+
if (validationResult.error) {
|
|
137
|
+
throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else if (decodedTxn.method?.name === iface_1.MethodNames.Proxy) {
|
|
141
|
+
const txMethod = decodedTxn.method.args;
|
|
142
|
+
const real = (0, iface_utils_1.getAddress)(txMethod);
|
|
143
|
+
const forceProxyType = txMethod.forceProxyType;
|
|
144
|
+
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
145
|
+
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
146
|
+
metadataRpc: this._material.metadata,
|
|
147
|
+
});
|
|
148
|
+
const amount = `${decodedCall.value}`;
|
|
149
|
+
const to = decodedCall.dest.id;
|
|
150
|
+
const validationResult = txnSchema_1.ProxyTransactionSchema.validate({ real, forceProxyType, amount, to });
|
|
151
|
+
if (validationResult.error) {
|
|
152
|
+
throw new sdk_core_1.InvalidTransactionError(`Proxy Transaction validation failed: ${validationResult.error.message}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/** @inheritdoc */
|
|
157
|
+
fromImplementation(rawTransaction) {
|
|
158
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
159
|
+
if (this._method?.name === iface_1.MethodNames.TransferKeepAlive) {
|
|
160
|
+
const txMethod = this._method.args;
|
|
161
|
+
this.amount(txMethod.value);
|
|
162
|
+
this.to({
|
|
163
|
+
address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
else if (this._method?.name === iface_1.MethodNames.TransferAll) {
|
|
167
|
+
this._sweepFreeBalance = true;
|
|
168
|
+
const txMethod = this._method.args;
|
|
169
|
+
this.sweep(txMethod.keepAlive);
|
|
170
|
+
this.to({
|
|
171
|
+
address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
else if (this._method?.name === iface_1.MethodNames.Proxy) {
|
|
175
|
+
const txMethod = this._method.args;
|
|
176
|
+
this.owner({
|
|
177
|
+
address: utils_1.default.decodeDotAddress((0, iface_utils_1.getAddress)(txMethod), utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
178
|
+
});
|
|
179
|
+
this.forceProxyType(txMethod.forceProxyType);
|
|
180
|
+
const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
|
|
181
|
+
registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
|
|
182
|
+
metadataRpc: this._material.metadata,
|
|
183
|
+
});
|
|
184
|
+
if (!decodedCall.value || !decodedCall.dest) {
|
|
185
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Proxy Transaction Method: ${this._method?.name}. Expected transferKeepAlive`);
|
|
186
|
+
}
|
|
187
|
+
this.amount(`${decodedCall.value}`);
|
|
188
|
+
this.to({
|
|
189
|
+
address: utils_1.default.decodeDotAddress(decodedCall.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected a transferKeepAlive or a proxy transferKeepAlive transaction`);
|
|
194
|
+
}
|
|
195
|
+
return tx;
|
|
196
|
+
}
|
|
197
|
+
/** @inheritdoc */
|
|
198
|
+
validateTransaction(_) {
|
|
199
|
+
super.validateTransaction(_);
|
|
200
|
+
this.validateFields(this._to, this._amount, this._owner, this._forceProxyType);
|
|
201
|
+
}
|
|
202
|
+
validateFields(to, amount, real, forceProxyType) {
|
|
203
|
+
let validationResult;
|
|
204
|
+
if (forceProxyType) {
|
|
205
|
+
validationResult = txnSchema_1.ProxyTransactionSchema.validate({ to, amount, real, forceProxyType });
|
|
206
|
+
}
|
|
207
|
+
else if (this._sweepFreeBalance) {
|
|
208
|
+
validationResult = txnSchema_1.TransferAllTransactionSchema.validate({ to });
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
|
|
212
|
+
}
|
|
213
|
+
if (validationResult.error) {
|
|
214
|
+
throw new sdk_core_1.InvalidTransactionError(`Proxy/TransferAll/TransferKeepAlive Transaction validation failed: ${validationResult.error.message}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.NativeTransferBuilder = NativeTransferBuilder;
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9uYXRpdmVUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTRHO0FBRTVHLHNFQUF3RDtBQUV4RCxnRUFBcUM7QUFDckMsbUNBQTJGO0FBQzNGLCtDQUEyQztBQUMzQywyREFBd0Q7QUFFeEQsNkRBQTBEO0FBQzFELDJDQUE4RztBQUM5RyxvREFBNEI7QUFFNUIsTUFBc0IscUJBQXNCLFNBQVEsdUNBQWtCO0lBUXBFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUlgsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHNCQUFpQixHQUFHLElBQUksQ0FBQztJQVFuQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLGdCQUFnQjtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLFVBQVUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsVUFBVSxHQUFHLDRCQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDdkM7Z0JBQ0UsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2FBQ2xDLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sVUFBVSxHQUFHLDRCQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUM3QztnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ25CLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3ZCLEVBQ0Qs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QVUsRUFBRSxNQUFjLEVBQUUsSUFBYSxFQUFFLGNBQXVCO1FBQ3ZGLElBQUksZ0JBQWdCLENBQUM7UUFDckIsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsR0FBRyxrQ0FBc0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLHdDQUE0QixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBZ0IsR0FBRyxxQ0FBeUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksa0NBQXVCLENBQy9CLHNFQUFzRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3ZHLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbFBELHNEQWtQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBEb3RBc3NldFR5cGVzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBNZXRob2ROYW1lcywgUHJveHlBcmdzLCBQcm94eVR5cGUsIFRyYW5zZmVyQWxsQXJncywgVHJhbnNmZXJBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBnZXRBZGRyZXNzIH0gZnJvbSAnLi9pZmFjZV91dGlscyc7XG5pbXBvcnQgeyBTaW5nbGV0b25SZWdpc3RyeSB9IGZyb20gJy4vc2luZ2xldG9uUmVnaXN0cnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEsIFRyYW5zZmVyQWxsVHJhbnNhY3Rpb25TY2hlbWEsIFRyYW5zZmVyVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXRpdmVUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3N3ZWVwRnJlZUJhbGFuY2UgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9rZWVwQWRkcmVzc0FsaXZlID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90bzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX293bmVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZm9yY2VQcm94eVR5cGU6IFByb3h5VHlwZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogRGlzcGF0Y2ggdGhlIGdpdmVuIGNhbGwgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoIGFkZF9wcm94eS5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIERvdCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3Byb3h5XG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgbGV0IHRyYW5zZmVyVHg7XG4gICAgaWYgKHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UpIHtcbiAgICAgIHRyYW5zZmVyVHggPSBtZXRob2RzLmJhbGFuY2VzLnRyYW5zZmVyQWxsKFxuICAgICAgICB7XG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgICBrZWVwQWxpdmU6IHRoaXMuX2tlZXBBZGRyZXNzQWxpdmUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlclR4ID0gbWV0aG9kcy5iYWxhbmNlcy50cmFuc2ZlcktlZXBBbGl2ZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgfSxcbiAgICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9vd25lcikge1xuICAgICAgcmV0dXJuIHRyYW5zZmVyVHg7XG4gICAgfVxuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnByb3h5KFxuICAgICAge1xuICAgICAgICByZWFsOiB0aGlzLl9vd25lcixcbiAgICAgICAgZm9yY2VQcm94eVR5cGU6IHRoaXMuX2ZvcmNlUHJveHlUeXBlLFxuICAgICAgICBjYWxsOiB0cmFuc2ZlclR4Lm1ldGhvZCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogU2V0IHRoaXMgdG8gYmUgYSBzd2VlcCB0cmFuc2FjdGlvbiwgdXNpbmcgVHJhbnNmZXJBbGwgd2l0aCBrZWVwQWxpdmUgc2V0IHRvIHRydWUgYnkgZGVmYXVsdC5cbiAgICogSWYga2VlcEFsaXZlIGlzIGZhbHNlLCB0aGUgZW50aXJlIGFkZHJlc3Mgd2lsbCBiZSBzd2VwdCAoaW5jbHVkaW5nIHRoZSAxIERPVCBtaW5pbXVtKS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBrZWVwQWxpdmUgLSBrZWVwIHRoZSBhZGRyZXNzIGFsaXZlIGFmdGVyIHRoaXMgc3dlZXBcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3R4d3JhcHBlci1jb3JlL2Jsb2IvbWFpbi9kb2NzL21vZHVsZXMvdHh3cmFwcGVyX3N1YnN0cmF0ZV9zcmMubWV0aG9kcy5iYWxhbmNlcy5tZCN0cmFuc2ZlcmFsbFxuICAgKi9cbiAgc3dlZXAoa2VlcEFsaXZlPzogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UgPSB0cnVlO1xuICAgIGlmIChrZWVwQWxpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fa2VlcEFkZHJlc3NBbGl2ZSA9IGtlZXBBbGl2ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIGFtb3VudCBmb3IgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnRcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoYW1vdW50KSk7XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzIGZvciB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgdG8oeyBhZGRyZXNzIH06IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMuX3RvID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgcmVhbCBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCB0eFxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSByZWFsXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjd2h5LXVzZS1hLXByb3h5XG4gICAqL1xuICBvd25lcihvd25lcjogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IG93bmVyLmFkZHJlc3MgfSk7XG4gICAgdGhpcy5fb3duZXIgPSBvd25lci5hZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBwcm94eSB0eXBlIHRvIGV4ZWN1dGVcbiAgICpcbiAgICogQHBhcmFtIHtwcm94eVR5cGV9IGZvcmNlUHJveHlUeXBlXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjcHJveHktdHlwZXNcbiAgICovXG4gIGZvcmNlUHJveHlUeXBlKGZvcmNlUHJveHlUeXBlOiBQcm94eVR5cGUpOiB0aGlzIHtcbiAgICB0aGlzLl9mb3JjZVByb3h5VHlwZSA9IGZvcmNlUHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFRyYW5zZmVyQXJncztcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke3R4TWV0aG9kLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IHR4TWV0aG9kLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zZmVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5Qcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgUHJveHlBcmdzO1xuICAgICAgY29uc3QgcmVhbCA9IGdldEFkZHJlc3ModHhNZXRob2QpO1xuICAgICAgY29uc3QgZm9yY2VQcm94eVR5cGUgPSB0eE1ldGhvZC5mb3JjZVByb3h5VHlwZTtcbiAgICAgIGNvbnN0IGRlY29kZWRDYWxsID0gdXRpbHMuZGVjb2RlQ2FsbE1ldGhvZChyYXdUcmFuc2FjdGlvbiwge1xuICAgICAgICByZWdpc3RyeTogU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UodGhpcy5fbWF0ZXJpYWwpLFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke2RlY29kZWRDYWxsLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IGRlY29kZWRDYWxsLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gUHJveHlUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHJlYWwsIGZvcmNlUHJveHlUeXBlLCBhbW91bnQsIHRvIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBQcm94eSBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgVHJhbnNmZXJBcmdzO1xuICAgICAgdGhpcy5hbW91bnQodHhNZXRob2QudmFsdWUpO1xuICAgICAgdGhpcy50byh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgdHhNZXRob2QuZGVzdC5pZCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlRyYW5zZmVyQWxsKSB7XG4gICAgICB0aGlzLl9zd2VlcEZyZWVCYWxhbmNlID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgVHJhbnNmZXJBbGxBcmdzO1xuICAgICAgdGhpcy5zd2VlcCh0eE1ldGhvZC5rZWVwQWxpdmUpO1xuICAgICAgdGhpcy50byh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgdHhNZXRob2QuZGVzdC5pZCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlByb3h5KSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIFByb3h5QXJncztcbiAgICAgIHRoaXMub3duZXIoe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5kZWNvZGVEb3RBZGRyZXNzKFxuICAgICAgICAgIGdldEFkZHJlc3ModHhNZXRob2QpLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9yY2VQcm94eVR5cGUodHhNZXRob2QuZm9yY2VQcm94eVR5cGUpO1xuICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB1dGlscy5kZWNvZGVDYWxsTWV0aG9kKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICAgIHJlZ2lzdHJ5OiBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZSh0aGlzLl9tYXRlcmlhbCksXG4gICAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFkZWNvZGVkQ2FsbC52YWx1ZSB8fCAhZGVjb2RlZENhbGwuZGVzdCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgUHJveHkgVHJhbnNhY3Rpb24gTWV0aG9kOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIHRyYW5zZmVyS2VlcEFsaXZlYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5hbW91bnQoYCR7ZGVjb2RlZENhbGwudmFsdWV9YCk7XG4gICAgICB0aGlzLnRvKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhcbiAgICAgICAgICBkZWNvZGVkQ2FsbC5kZXN0LmlkLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIGEgdHJhbnNmZXJLZWVwQWxpdmUgb3IgYSBwcm94eSB0cmFuc2ZlcktlZXBBbGl2ZSB0cmFuc2FjdGlvbmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX3RvLCB0aGlzLl9hbW91bnQsIHRoaXMuX293bmVyLCB0aGlzLl9mb3JjZVByb3h5VHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKHRvOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nLCByZWFsPzogc3RyaW5nLCBmb3JjZVByb3h5VHlwZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIGlmIChmb3JjZVByb3h5VHlwZSkge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyB0bywgYW1vdW50LCByZWFsLCBmb3JjZVByb3h5VHlwZSB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UpIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlckFsbFRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdG8gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgYW1vdW50LCB0byB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgUHJveHkvVHJhbnNmZXJBbGwvVHJhbnNmZXJLZWVwQWxpdmUgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/proxyBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIxG,OAAO,EAA6B,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,kBAAmB,SAAQ,kBAAkB;IACxD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAajD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B;;;;;;;OAOG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKhC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1B,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAerF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAejE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,yBAAyB;CAOlC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
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.RemoveProxyBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
+
const iface_1 = require("./iface");
|
|
11
|
+
const iface_utils_1 = require("./iface_utils");
|
|
12
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
13
|
+
const txnSchema_1 = require("./txnSchema");
|
|
14
|
+
class RemoveProxyBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
15
|
+
constructor(_coinConfig) {
|
|
16
|
+
super(_coinConfig);
|
|
17
|
+
}
|
|
18
|
+
/** @inheritDoc */
|
|
19
|
+
buildTransaction() {
|
|
20
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
21
|
+
return txwrapper_polkadot_1.methods.proxy.removeProxy({
|
|
22
|
+
delegate: this._delegate,
|
|
23
|
+
proxyType: this._proxyType,
|
|
24
|
+
delay: this._delay,
|
|
25
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
26
|
+
}
|
|
27
|
+
get transactionType() {
|
|
28
|
+
return sdk_core_1.TransactionType.AddressInitialization;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The proxy account to remove.
|
|
32
|
+
*
|
|
33
|
+
* @param {BaseAddress} owner
|
|
34
|
+
* @returns {AddressInitializationBuilder} This builder.
|
|
35
|
+
*
|
|
36
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
37
|
+
*/
|
|
38
|
+
owner(owner) {
|
|
39
|
+
this.validateAddress({ address: owner.address });
|
|
40
|
+
this._delegate = owner.address;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The proxy type to remove.
|
|
45
|
+
*
|
|
46
|
+
* @param {proxyType} proxyType
|
|
47
|
+
* @returns {AddressInitializationBuilder} This builder.
|
|
48
|
+
*
|
|
49
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
50
|
+
*/
|
|
51
|
+
type(proxyType) {
|
|
52
|
+
this._proxyType = proxyType;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The number of blocks that an announcement must be in place for.
|
|
57
|
+
* before the corresponding call may be dispatched.
|
|
58
|
+
* If zero, then no announcement is needed.
|
|
59
|
+
* TODO: move to the validity window method once it has been standardized
|
|
60
|
+
*
|
|
61
|
+
* @param {string} delay
|
|
62
|
+
* @returns {AddressInitializationBuilder} This transfer builder.
|
|
63
|
+
*
|
|
64
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
|
|
65
|
+
*/
|
|
66
|
+
delay(delay) {
|
|
67
|
+
this.validateValue(new bignumber_js_1.default(parseInt(delay, 10)));
|
|
68
|
+
this._delay = delay;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
/** @inheritdoc */
|
|
72
|
+
validateDecodedTransaction(decodedTxn) {
|
|
73
|
+
let validationResult;
|
|
74
|
+
if (decodedTxn.method?.name === iface_1.MethodNames.RemoveProxy) {
|
|
75
|
+
const txMethod = decodedTxn.method.args;
|
|
76
|
+
validationResult = this.validateRemoveProxyFields((0, iface_utils_1.getDelegateAddress)(txMethod), txMethod.proxyType, txMethod.delay);
|
|
77
|
+
if (validationResult.error) {
|
|
78
|
+
throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** @inheritdoc */
|
|
83
|
+
fromImplementation(rawTransaction) {
|
|
84
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
85
|
+
if (this._method?.name === iface_1.MethodNames.RemoveProxy) {
|
|
86
|
+
const txMethod = this._method.args;
|
|
87
|
+
this.owner({ address: (0, iface_utils_1.getDelegateAddress)(txMethod) });
|
|
88
|
+
this.type(txMethod.proxyType);
|
|
89
|
+
this.delay(new bignumber_js_1.default(txMethod.delay).toString());
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected ${iface_1.MethodNames.RemoveProxy}`);
|
|
93
|
+
}
|
|
94
|
+
return tx;
|
|
95
|
+
}
|
|
96
|
+
/** @inheritdoc */
|
|
97
|
+
validateTransaction(_) {
|
|
98
|
+
super.validateTransaction(_);
|
|
99
|
+
this.validateFields();
|
|
100
|
+
}
|
|
101
|
+
validateFields() {
|
|
102
|
+
const validationResult = this.validateRemoveProxyFields(this._delegate, this._proxyType, this._delay);
|
|
103
|
+
if (validationResult.error) {
|
|
104
|
+
throw new sdk_core_1.InvalidTransactionError(`RemoveProxy Transaction validation failed: ${validationResult.error.message}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
validateRemoveProxyFields(delegate, proxyType, delay) {
|
|
108
|
+
return txnSchema_1.AddressInitializationSchema.validate({
|
|
109
|
+
delegate,
|
|
110
|
+
proxyType,
|
|
111
|
+
delay,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.RemoveProxyBuilder = RemoveProxyBuilder;
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wcm94eUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTZGO0FBRzdGLHNFQUF3RDtBQUN4RCxnRUFBcUM7QUFFckMsbUNBQStEO0FBQy9ELCtDQUFtRDtBQUVuRCw2REFBMEQ7QUFDMUQsMkNBQTBEO0FBRTFELE1BQWEsa0JBQW1CLFNBQVEsdUNBQWtCO0lBS3hELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQzlCO1lBQ0UsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbkIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMscUJBQXFCLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsS0FBa0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMs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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUFkZHJlc3MsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICdqb2knO1xuaW1wb3J0IHsgQWRkUHJveHlBcmdzLCBNZXRob2ROYW1lcywgUHJveHlUeXBlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBnZXREZWxlZ2F0ZUFkZHJlc3MgfSBmcm9tICcuL2lmYWNlX3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBBZGRyZXNzSW5pdGlhbGl6YXRpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBSZW1vdmVQcm94eUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2RlbGVnYXRlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcHJveHlUeXBlOiBQcm94eVR5cGU7XG4gIHByb3RlY3RlZCBfZGVsYXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnJlbW92ZVByb3h5KFxuICAgICAge1xuICAgICAgICBkZWxlZ2F0ZTogdGhpcy5fZGVsZWdhdGUsXG4gICAgICAgIHByb3h5VHlwZTogdGhpcy5fcHJveHlUeXBlLFxuICAgICAgICBkZWxheTogdGhpcy5fZGVsYXksXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3h5IGFjY291bnQgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSBvd25lclxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyN3aHktdXNlLWEtcHJveHlcbiAgICovXG4gIG93bmVyKG93bmVyOiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogb3duZXIuYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9kZWxlZ2F0ZSA9IG93bmVyLmFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3h5IHR5cGUgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBAcGFyYW0ge3Byb3h5VHlwZX0gcHJveHlUeXBlXG4gICAqIEByZXR1cm5zIHtBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gICAqL1xuICB0eXBlKHByb3h5VHlwZTogUHJveHlUeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fcHJveHlUeXBlID0gcHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgYW4gYW5ub3VuY2VtZW50IG11c3QgYmUgaW4gcGxhY2UgZm9yLlxuICAgKiBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBtYXkgYmUgZGlzcGF0Y2hlZC5cbiAgICogSWYgemVybywgdGhlbiBubyBhbm5vdW5jZW1lbnQgaXMgbmVlZGVkLlxuICAgKiBUT0RPOiBtb3ZlIHRvIHRoZSB2YWxpZGl0eSB3aW5kb3cgbWV0aG9kIG9uY2UgaXQgaGFzIGJlZW4gc3RhbmRhcmRpemVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZWxheVxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyN0aW1lLWRlbGF5ZWQtcHJveGllc1xuICAgKi9cbiAgZGVsYXkoZGVsYXk6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHBhcnNlSW50KGRlbGF5LCAxMCkpKTtcbiAgICB0aGlzLl9kZWxheSA9IGRlbGF5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHZvaWQge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuUmVtb3ZlUHJveHkpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEFkZFByb3h5QXJncztcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB0aGlzLnZhbGlkYXRlUmVtb3ZlUHJveHlGaWVsZHMoXG4gICAgICAgIGdldERlbGVnYXRlQWRkcmVzcyh0eE1ldGhvZCksXG4gICAgICAgIHR4TWV0aG9kLnByb3h5VHlwZSxcbiAgICAgICAgdHhNZXRob2QuZGVsYXlcbiAgICAgICk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5SZW1vdmVQcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBBZGRQcm94eUFyZ3M7XG4gICAgICB0aGlzLm93bmVyKHsgYWRkcmVzczogZ2V0RGVsZWdhdGVBZGRyZXNzKHR4TWV0aG9kKSB9KTtcbiAgICAgIHRoaXMudHlwZSh0eE1ldGhvZC5wcm94eVR5cGUpO1xuICAgICAgdGhpcy5kZWxheShuZXcgQmlnTnVtYmVyKHR4TWV0aG9kLmRlbGF5KS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkICR7TWV0aG9kTmFtZXMuUmVtb3ZlUHJveHl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IHRoaXMudmFsaWRhdGVSZW1vdmVQcm94eUZpZWxkcyhcbiAgICAgIHRoaXMuX2RlbGVnYXRlLFxuICAgICAgdGhpcy5fcHJveHlUeXBlLFxuICAgICAgdGhpcy5fZGVsYXlcbiAgICApO1xuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFJlbW92ZVByb3h5IFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUmVtb3ZlUHJveHlGaWVsZHMoZGVsZWdhdGU6IHN0cmluZywgcHJveHlUeXBlOiBzdHJpbmcsIGRlbGF5OiBzdHJpbmcpOiBWYWxpZGF0aW9uUmVzdWx0IHtcbiAgICByZXR1cm4gQWRkcmVzc0luaXRpYWxpemF0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGRlbGVnYXRlLFxuICAgICAgcHJveHlUeXBlLFxuICAgICAgZGVsYXksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singletonRegistry.d.ts","sourceRoot":"","sources":["../../../../src/lib/singletonRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAInE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAElC,MAAM,CAAC,WAAW,CAAC,QAAQ,KAAA,GAAG,YAAY;CAY3C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SingletonRegistry = void 0;
|
|
4
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
5
|
+
class SingletonRegistry {
|
|
6
|
+
static getInstance(material) {
|
|
7
|
+
if (material !== SingletonRegistry.material) {
|
|
8
|
+
SingletonRegistry.material = material;
|
|
9
|
+
SingletonRegistry.instance = (0, txwrapper_polkadot_1.getRegistry)({
|
|
10
|
+
chainName: material.chainName,
|
|
11
|
+
specName: material.specName,
|
|
12
|
+
specVersion: material.specVersion,
|
|
13
|
+
metadataRpc: material.metadata,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return SingletonRegistry.instance;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.SingletonRegistry = SingletonRegistry;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NpbmdsZXRvblJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHNFQUE0RDtBQUc1RCxNQUFhLGlCQUFpQjtJQUk1QixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVE7UUFDekIsSUFBSSxRQUFRLEtBQUssaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUMsaUJBQWlCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN0QyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsSUFBQSxnQ0FBVyxFQUFDO2dCQUN2QyxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7Z0JBQzdCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBZ0M7Z0JBQ25ELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztnQkFDakMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxRQUF5QjthQUNoRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBaEJELDhDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbGthZG90U3BlY05hbWVUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBnZXRSZWdpc3RyeSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IE1hdGVyaWFsIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBTaW5nbGV0b25SZWdpc3RyeSB7XG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBUeXBlUmVnaXN0cnk7XG4gIHByaXZhdGUgc3RhdGljIG1hdGVyaWFsOiBNYXRlcmlhbDtcblxuICBzdGF0aWMgZ2V0SW5zdGFuY2UobWF0ZXJpYWwpOiBUeXBlUmVnaXN0cnkge1xuICAgIGlmIChtYXRlcmlhbCAhPT0gU2luZ2xldG9uUmVnaXN0cnkubWF0ZXJpYWwpIHtcbiAgICAgIFNpbmdsZXRvblJlZ2lzdHJ5Lm1hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgICBTaW5nbGV0b25SZWdpc3RyeS5pbnN0YW5jZSA9IGdldFJlZ2lzdHJ5KHtcbiAgICAgICAgY2hhaW5OYW1lOiBtYXRlcmlhbC5jaGFpbk5hbWUsXG4gICAgICAgIHNwZWNOYW1lOiBtYXRlcmlhbC5zcGVjTmFtZSBhcyBQb2xrYWRvdFNwZWNOYW1lVHlwZSxcbiAgICAgICAgc3BlY1ZlcnNpb246IG1hdGVyaWFsLnNwZWNWZXJzaW9uLFxuICAgICAgICBtZXRhZGF0YVJwYzogbWF0ZXJpYWwubWV0YWRhdGEgYXMgYDB4JHtzdHJpbmd9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gU2luZ2xldG9uUmVnaXN0cnkuaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIxG,OAAO,EAAE,WAAW,EAA0C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAA0B,cAAc,EAAoC,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;gBAEnB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAsBjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAKrC;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAMpC;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAUlC,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAoBrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IA+BjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAcvB"}
|