@bitgo-beta/abstract-substrate 1.0.1-beta.9 → 1.0.1-beta.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/src/abstractSubstrateCoin.d.ts +20 -3
  3. package/dist/src/abstractSubstrateCoin.d.ts.map +1 -1
  4. package/dist/src/abstractSubstrateCoin.js +76 -14
  5. package/dist/src/index.d.ts +1 -0
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +16 -1
  8. package/dist/src/lib/constants.d.ts +2 -0
  9. package/dist/src/lib/constants.d.ts.map +1 -0
  10. package/dist/src/lib/constants.js +5 -0
  11. package/dist/src/lib/errors.d.ts +8 -0
  12. package/dist/src/lib/errors.d.ts.map +1 -0
  13. package/dist/src/lib/errors.js +19 -0
  14. package/dist/src/lib/iface.d.ts +140 -0
  15. package/dist/src/lib/iface.d.ts.map +1 -0
  16. package/dist/src/lib/iface.js +35 -0
  17. package/dist/src/lib/index.d.ts +12 -0
  18. package/dist/src/lib/index.d.ts.map +1 -0
  19. package/dist/src/lib/index.js +61 -0
  20. package/dist/src/lib/keyPair.d.ts +24 -0
  21. package/dist/src/lib/keyPair.d.ts.map +1 -0
  22. package/dist/src/lib/keyPair.js +63 -0
  23. package/dist/src/lib/nativeTransferBuilder.d.ts +61 -0
  24. package/dist/src/lib/nativeTransferBuilder.d.ts.map +1 -0
  25. package/dist/src/lib/nativeTransferBuilder.js +147 -0
  26. package/dist/src/lib/singletonRegistry.d.ts +8 -0
  27. package/dist/src/lib/singletonRegistry.d.ts.map +1 -0
  28. package/dist/src/lib/singletonRegistry.js +20 -0
  29. package/dist/src/lib/transaction.d.ts +73 -0
  30. package/dist/src/lib/transaction.d.ts.map +1 -0
  31. package/dist/src/lib/transaction.js +424 -0
  32. package/dist/src/lib/transactionBuilder.d.ts +121 -0
  33. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  34. package/dist/src/lib/transactionBuilder.js +334 -0
  35. package/dist/src/lib/transferBuilder.d.ts +6 -0
  36. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  37. package/dist/src/lib/transferBuilder.js +11 -0
  38. package/dist/src/lib/txnSchema.d.ts +9 -0
  39. package/dist/src/lib/txnSchema.d.ts.map +1 -0
  40. package/dist/src/lib/txnSchema.js +52 -0
  41. package/dist/src/lib/utils.d.ts +122 -0
  42. package/dist/src/lib/utils.d.ts.map +1 -0
  43. package/dist/src/lib/utils.js +227 -0
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +18 -5
@@ -0,0 +1,24 @@
1
+ import { DefaultKeys, Ed25519KeyPair, KeyPairOptions } from '@bitgo-beta/sdk-core';
2
+ import { KeyringPair } from '@polkadot/keyring/types';
3
+ export declare class KeyPair extends Ed25519KeyPair {
4
+ /**
5
+ * Public constructor. By default, creates a key pair with a random master seed.
6
+ *
7
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
8
+ */
9
+ constructor(source?: KeyPairOptions);
10
+ /**
11
+ * Helper function to create the KeyringPair for signing a substrate transaction.
12
+ * @returns {KeyringPair} KeyringPair
13
+ */
14
+ protected createKeyringPair(): KeyringPair;
15
+ /** @inheritdoc */
16
+ getAddress(ss58Format: number): string;
17
+ /** @inheritdoc */
18
+ getKeys(): DefaultKeys;
19
+ /** @inheritdoc */
20
+ recordKeysFromPrivateKeyInProtocolFormat(prv: string): DefaultKeys;
21
+ /** @inheritdoc */
22
+ recordKeysFromPublicKeyInProtocolFormat(pub: string): DefaultKeys;
23
+ }
24
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAY,cAAc,EAAS,MAAM,sBAAsB,CAAC;AAIpG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAMtD,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC;;;OAGG;IACH,SAAS,CAAC,iBAAiB,IAAI,WAAW;IAM1C,kBAAkB;IAClB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAOtC,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAQtB,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAMlE,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;CAQlE"}
@@ -0,0 +1,63 @@
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.KeyPair = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const statics_1 = require("@bitgo-beta/statics");
9
+ const keyring_1 = require("@polkadot/keyring");
10
+ const pair_1 = require("@polkadot/keyring/pair");
11
+ const bs58_1 = __importDefault(require("bs58"));
12
+ const utils_1 = __importDefault(require("./utils"));
13
+ const keyring = new keyring_1.Keyring({ type: statics_1.KeyCurve.Ed25519 });
14
+ class KeyPair extends sdk_core_1.Ed25519KeyPair {
15
+ /**
16
+ * Public constructor. By default, creates a key pair with a random master seed.
17
+ *
18
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
19
+ */
20
+ constructor(source) {
21
+ super(source);
22
+ }
23
+ /**
24
+ * Helper function to create the KeyringPair for signing a substrate transaction.
25
+ * @returns {KeyringPair} KeyringPair
26
+ */
27
+ createKeyringPair() {
28
+ const secretKey = this.keyPair.prv ? new Uint8Array(Buffer.from(this.keyPair.prv, 'hex')) : undefined;
29
+ const publicKey = new Uint8Array(Buffer.from(this.keyPair.pub, 'hex'));
30
+ return (0, pair_1.createPair)({ toSS58: keyring.encodeAddress, type: statics_1.KeyCurve.Ed25519 }, { secretKey, publicKey });
31
+ }
32
+ /** @inheritdoc */
33
+ getAddress(ss58Format) {
34
+ let encodedAddress = this.createKeyringPair().address;
35
+ encodedAddress = keyring.encodeAddress(encodedAddress, ss58Format);
36
+ return encodedAddress;
37
+ }
38
+ /** @inheritdoc */
39
+ getKeys() {
40
+ const result = { pub: this.keyPair.pub };
41
+ if (this.keyPair.prv) {
42
+ result.prv = this.keyPair.prv;
43
+ }
44
+ return result;
45
+ }
46
+ /** @inheritdoc */
47
+ recordKeysFromPrivateKeyInProtocolFormat(prv) {
48
+ const decodedSeed = utils_1.default.decodeSeed(prv);
49
+ const bufferFromSeed = Buffer.from(decodedSeed.seed);
50
+ return utils_1.default.keyPairFromSeed(bufferFromSeed).keyPair;
51
+ }
52
+ /** @inheritdoc */
53
+ recordKeysFromPublicKeyInProtocolFormat(pub) {
54
+ const publicKey = keyring.addFromPair({
55
+ // tss common pub is in base58 format and decodes to length of 32
56
+ publicKey: (0, sdk_core_1.isBase58)(pub, 32) ? new Uint8Array(bs58_1.default.decode(pub)) : new Uint8Array(Buffer.from(pub, 'hex')),
57
+ secretKey: new Uint8Array(),
58
+ }).publicKey;
59
+ return { pub: (0, sdk_core_1.toHex)(publicKey) };
60
+ }
61
+ }
62
+ exports.KeyPair = KeyPair;
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBb0c7QUFDcEcsaURBQStDO0FBQy9DLCtDQUE0QztBQUM1QyxpREFBb0Q7QUFFcEQsZ0RBQXdCO0FBQ3hCLG9EQUE0QjtBQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBRXhELE1BQWEsT0FBUSxTQUFRLHlCQUFjO0lBQ3pDOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ08saUJBQWlCO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RyxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFBLGlCQUFVLEVBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsa0JBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsVUFBVSxDQUFDLFVBQWtCO1FBQzNCLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUN0RCxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFbkUsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPO1FBQ0wsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsd0NBQXdDLENBQUMsR0FBVztRQUNsRCxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELE9BQU8sZUFBSyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDdkQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDcEMsaUVBQWlFO1lBQ2pFLFNBQVMsRUFBRSxJQUFBLG1CQUFRLEVBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxjQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pHLFNBQVMsRUFBRSxJQUFJLFVBQVUsRUFBRTtTQUM1QixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2IsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFBLGdCQUFLLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFyREQsMEJBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVmYXVsdEtleXMsIEVkMjU1MTlLZXlQYWlyLCBpc0Jhc2U1OCwgS2V5UGFpck9wdGlvbnMsIHRvSGV4IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgS2V5Q3VydmUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEtleXJpbmcgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBjcmVhdGVQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvcGFpcic7XG5pbXBvcnQgeyBLZXlyaW5nUGFpciB9IGZyb20gJ0Bwb2xrYWRvdC9rZXlyaW5nL3R5cGVzJztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBrZXlyaW5nID0gbmV3IEtleXJpbmcoeyB0eXBlOiBLZXlDdXJ2ZS5FZDI1NTE5IH0pO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEVkMjU1MTlLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7IEtleVBhaXJPcHRpb25zIH0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIHRoZSBLZXlyaW5nUGFpciBmb3Igc2lnbmluZyBhIHN1YnN0cmF0ZSB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge0tleXJpbmdQYWlyfSBLZXlyaW5nUGFpclxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUtleXJpbmdQYWlyKCk6IEtleXJpbmdQYWlyIHtcbiAgICBjb25zdCBzZWNyZXRLZXkgPSB0aGlzLmtleVBhaXIucHJ2ID8gbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20odGhpcy5rZXlQYWlyLnBydiwgJ2hleCcpKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh0aGlzLmtleVBhaXIucHViLCAnaGV4JykpO1xuICAgIHJldHVybiBjcmVhdGVQYWlyKHsgdG9TUzU4OiBrZXlyaW5nLmVuY29kZUFkZHJlc3MsIHR5cGU6IEtleUN1cnZlLkVkMjU1MTkgfSwgeyBzZWNyZXRLZXksIHB1YmxpY0tleSB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKHNzNThGb3JtYXQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IGVuY29kZWRBZGRyZXNzID0gdGhpcy5jcmVhdGVLZXlyaW5nUGFpcigpLmFkZHJlc3M7XG4gICAgZW5jb2RlZEFkZHJlc3MgPSBrZXlyaW5nLmVuY29kZUFkZHJlc3MoZW5jb2RlZEFkZHJlc3MsIHNzNThGb3JtYXQpO1xuXG4gICAgcmV0dXJuIGVuY29kZWRBZGRyZXNzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHJlc3VsdDogRGVmYXVsdEtleXMgPSB7IHB1YjogdGhpcy5rZXlQYWlyLnB1YiB9O1xuICAgIGlmICh0aGlzLmtleVBhaXIucHJ2KSB7XG4gICAgICByZXN1bHQucHJ2ID0gdGhpcy5rZXlQYWlyLnBydjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXlJblByb3RvY29sRm9ybWF0KHBydjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IGRlY29kZWRTZWVkID0gdXRpbHMuZGVjb2RlU2VlZChwcnYpO1xuICAgIGNvbnN0IGJ1ZmZlckZyb21TZWVkID0gQnVmZmVyLmZyb20oZGVjb2RlZFNlZWQuc2VlZCk7XG4gICAgcmV0dXJuIHV0aWxzLmtleVBhaXJGcm9tU2VlZChidWZmZXJGcm9tU2VlZCkua2V5UGFpcjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleUluUHJvdG9jb2xGb3JtYXQocHViOiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgY29uc3QgcHVibGljS2V5ID0ga2V5cmluZy5hZGRGcm9tUGFpcih7XG4gICAgICAvLyB0c3MgY29tbW9uIHB1YiBpcyBpbiBiYXNlNTggZm9ybWF0IGFuZCBkZWNvZGVzIHRvIGxlbmd0aCBvZiAzMlxuICAgICAgcHVibGljS2V5OiBpc0Jhc2U1OChwdWIsIDMyKSA/IG5ldyBVaW50OEFycmF5KGJzNTguZGVjb2RlKHB1YikpIDogbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpLFxuICAgICAgc2VjcmV0S2V5OiBuZXcgVWludDhBcnJheSgpLFxuICAgIH0pLnB1YmxpY0tleTtcbiAgICByZXR1cm4geyBwdWI6IHRvSGV4KHB1YmxpY0tleSkgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,61 @@
1
+ import { BaseAddress, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
4
+ import { Transaction } from './transaction';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ export declare abstract class NativeTransferBuilder extends TransactionBuilder {
7
+ protected _sweepFreeBalance: boolean;
8
+ protected _keepAddressAlive: boolean;
9
+ protected _amount: string;
10
+ protected _to: string;
11
+ constructor(_coinConfig: Readonly<CoinConfig>);
12
+ /**
13
+ *
14
+ * Dispatch the given call from an account that the sender is authorised for through add_proxy.
15
+ *
16
+ * @returns {UnsignedTransaction} an unsigned Dot transaction
17
+ *
18
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
19
+ */
20
+ protected buildTransaction(): UnsignedTransaction;
21
+ protected get transactionType(): TransactionType;
22
+ /**
23
+ *
24
+ * Set this to be a sweep transaction, using TransferAll with keepAlive set to true by default.
25
+ * If keepAlive is false, the entire address will be swept (including the 1 DOT minimum).
26
+ *
27
+ * @param {boolean} keepAlive - keep the address alive after this sweep
28
+ * @returns {TransferBuilder} This transfer builder.
29
+ *
30
+ * @see https://github.com/paritytech/txwrapper-core/blob/main/docs/modules/txwrapper_substrate_src.methods.balances.md#transferall
31
+ */
32
+ sweep(keepAlive?: boolean): this;
33
+ /**
34
+ *
35
+ * The amount for transfer transaction.
36
+ *
37
+ * @param {string} amount
38
+ * @returns {TransferBuilder} This transfer builder.
39
+ *
40
+ * @see https://wiki.polkadot.network/docs/build-protocol-info
41
+ */
42
+ amount(amount: string): this;
43
+ /**
44
+ *
45
+ * The destination address for transfer transaction.
46
+ *
47
+ * @param {string} dest
48
+ * @returns {TransferBuilder} This transfer builder.
49
+ *
50
+ * @see https://wiki.polkadot.network/docs/build-protocol-info
51
+ */
52
+ to({ address }: BaseAddress): this;
53
+ /** @inheritdoc */
54
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
55
+ /** @inheritdoc */
56
+ protected fromImplementation(rawTransaction: string): Transaction;
57
+ /** @inheritdoc */
58
+ validateTransaction(_: Transaction): void;
59
+ private validateFields;
60
+ }
61
+ //# sourceMappingURL=nativeTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/nativeTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGxG,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;gBAEV,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IA0BjD,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,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAY7G,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAuBjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAYvB"}
@@ -0,0 +1,147 @@
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 transactionBuilder_1 = require("./transactionBuilder");
12
+ const txnSchema_1 = require("./txnSchema");
13
+ const utils_1 = __importDefault(require("./utils"));
14
+ class NativeTransferBuilder extends transactionBuilder_1.TransactionBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this._sweepFreeBalance = false;
18
+ this._keepAddressAlive = true;
19
+ }
20
+ /**
21
+ *
22
+ * Dispatch the given call from an account that the sender is authorised for through add_proxy.
23
+ *
24
+ * @returns {UnsignedTransaction} an unsigned Dot transaction
25
+ *
26
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
27
+ */
28
+ buildTransaction() {
29
+ const baseTxInfo = this.createBaseTxInfo();
30
+ let transferTx;
31
+ if (this._sweepFreeBalance) {
32
+ transferTx = txwrapper_polkadot_1.methods.balances.transferAll({
33
+ dest: { id: this._to },
34
+ keepAlive: this._keepAddressAlive,
35
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
36
+ }
37
+ else {
38
+ transferTx = txwrapper_polkadot_1.methods.balances.transferKeepAlive({
39
+ value: this._amount,
40
+ dest: { id: this._to },
41
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
42
+ }
43
+ return transferTx;
44
+ }
45
+ get transactionType() {
46
+ return sdk_core_1.TransactionType.Send;
47
+ }
48
+ /**
49
+ *
50
+ * Set this to be a sweep transaction, using TransferAll with keepAlive set to true by default.
51
+ * If keepAlive is false, the entire address will be swept (including the 1 DOT minimum).
52
+ *
53
+ * @param {boolean} keepAlive - keep the address alive after this sweep
54
+ * @returns {TransferBuilder} This transfer builder.
55
+ *
56
+ * @see https://github.com/paritytech/txwrapper-core/blob/main/docs/modules/txwrapper_substrate_src.methods.balances.md#transferall
57
+ */
58
+ sweep(keepAlive) {
59
+ this._sweepFreeBalance = true;
60
+ if (keepAlive !== undefined) {
61
+ this._keepAddressAlive = keepAlive;
62
+ }
63
+ return this;
64
+ }
65
+ /**
66
+ *
67
+ * The amount for transfer transaction.
68
+ *
69
+ * @param {string} amount
70
+ * @returns {TransferBuilder} This transfer builder.
71
+ *
72
+ * @see https://wiki.polkadot.network/docs/build-protocol-info
73
+ */
74
+ amount(amount) {
75
+ this.validateValue(new bignumber_js_1.default(amount));
76
+ this._amount = amount;
77
+ return this;
78
+ }
79
+ /**
80
+ *
81
+ * The destination address for transfer transaction.
82
+ *
83
+ * @param {string} dest
84
+ * @returns {TransferBuilder} This transfer builder.
85
+ *
86
+ * @see https://wiki.polkadot.network/docs/build-protocol-info
87
+ */
88
+ to({ address }) {
89
+ this.validateAddress({ address });
90
+ this._to = address;
91
+ return this;
92
+ }
93
+ /** @inheritdoc */
94
+ validateDecodedTransaction(decodedTxn, rawTransaction) {
95
+ if (decodedTxn.method?.name === iface_1.MethodNames.TransferKeepAlive) {
96
+ const txMethod = decodedTxn.method.args;
97
+ const amount = `${txMethod.value}`;
98
+ const to = txMethod.dest.id;
99
+ const validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
100
+ if (validationResult.error) {
101
+ throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
102
+ }
103
+ }
104
+ }
105
+ /** @inheritdoc */
106
+ fromImplementation(rawTransaction) {
107
+ const tx = super.fromImplementation(rawTransaction);
108
+ if (this._method?.name === iface_1.MethodNames.TransferKeepAlive) {
109
+ const txMethod = this._method.args;
110
+ this.amount(txMethod.value);
111
+ this.to({
112
+ address: utils_1.default.decodeSubstrateAddress(txMethod.dest.id, this.getAddressFormat()),
113
+ });
114
+ }
115
+ else if (this._method?.name === iface_1.MethodNames.TransferAll) {
116
+ this._sweepFreeBalance = true;
117
+ const txMethod = this._method.args;
118
+ this.sweep(txMethod.keepAlive);
119
+ this.to({
120
+ address: utils_1.default.decodeSubstrateAddress(txMethod.dest.id, this.getAddressFormat()),
121
+ });
122
+ }
123
+ else {
124
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected a transferKeepAlive or a proxy transferKeepAlive transaction`);
125
+ }
126
+ return tx;
127
+ }
128
+ /** @inheritdoc */
129
+ validateTransaction(_) {
130
+ super.validateTransaction(_);
131
+ this.validateFields(this._to, this._amount);
132
+ }
133
+ validateFields(to, amount) {
134
+ let validationResult;
135
+ if (this._sweepFreeBalance) {
136
+ validationResult = txnSchema_1.TransferAllTransactionSchema.validate({ to });
137
+ }
138
+ else {
139
+ validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
140
+ }
141
+ if (validationResult.error) {
142
+ throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
143
+ }
144
+ }
145
+ }
146
+ exports.NativeTransferBuilder = NativeTransferBuilder;
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9uYXRpdmVUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTZGO0FBRTdGLHNFQUF3RDtBQUV4RCxnRUFBcUM7QUFDckMsbUNBQXFFO0FBRXJFLDZEQUEwRDtBQUMxRCwyQ0FBc0Y7QUFDdEYsb0RBQTRCO0FBRTVCLE1BQXNCLHFCQUFzQixTQUFRLHVDQUFrQjtJQU1wRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQU5YLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixzQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFNbkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLFVBQVUsR0FBRyw0QkFBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3ZDO2dCQUNFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUNsQyxFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyw0QkFBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDN0M7Z0JBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNuQixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTthQUN2QixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FB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QUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzthQUNqRixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0IsNkJBQTZCLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSx5RUFBeUUsQ0FDekgsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsQ0FBYztRQUNoQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sY0FBYyxDQUFDLEVBQVUsRUFBRSxNQUFjO1FBQy9DLElBQUksZ0JBQWdCLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixnQkFBZ0IsR0FBRyx3Q0FBNEIsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ04sZ0JBQWdCLEdBQUcscUNBQXlCLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGtDQUFrQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdkpELHNEQXVKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBNZXRob2ROYW1lcywgVHJhbnNmZXJBbGxBcmdzLCBUcmFuc2ZlckFyZ3MgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2ZlckFsbFRyYW5zYWN0aW9uU2NoZW1hLCBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF0aXZlVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9zd2VlcEZyZWVCYWxhbmNlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfa2VlcEFkZHJlc3NBbGl2ZSA9IHRydWU7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdG86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogRGlzcGF0Y2ggdGhlIGdpdmVuIGNhbGwgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoIGFkZF9wcm94eS5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIERvdCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3Byb3h5XG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgbGV0IHRyYW5zZmVyVHg7XG4gICAgaWYgKHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UpIHtcbiAgICAgIHRyYW5zZmVyVHggPSBtZXRob2RzLmJhbGFuY2VzLnRyYW5zZmVyQWxsKFxuICAgICAgICB7XG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgICBrZWVwQWxpdmU6IHRoaXMuX2tlZXBBZGRyZXNzQWxpdmUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlclR4ID0gbWV0aG9kcy5iYWxhbmNlcy50cmFuc2ZlcktlZXBBbGl2ZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgfSxcbiAgICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zZmVyVHg7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBTZXQgdGhpcyB0byBiZSBhIHN3ZWVwIHRyYW5zYWN0aW9uLCB1c2luZyBUcmFuc2ZlckFsbCB3aXRoIGtlZXBBbGl2ZSBzZXQgdG8gdHJ1ZSBieSBkZWZhdWx0LlxuICAgKiBJZiBrZWVwQWxpdmUgaXMgZmFsc2UsIHRoZSBlbnRpcmUgYWRkcmVzcyB3aWxsIGJlIHN3ZXB0IChpbmNsdWRpbmcgdGhlIDEgRE9UIG1pbmltdW0pLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGtlZXBBbGl2ZSAtIGtlZXAgdGhlIGFkZHJlc3MgYWxpdmUgYWZ0ZXIgdGhpcyBzd2VlcFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvdHh3cmFwcGVyLWNvcmUvYmxvYi9tYWluL2RvY3MvbW9kdWxlcy90eHdyYXBwZXJfc3Vic3RyYXRlX3NyYy5tZXRob2RzLmJhbGFuY2VzLm1kI3RyYW5zZmVyYWxsXG4gICAqL1xuICBzd2VlcChrZWVwQWxpdmU/OiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fc3dlZXBGcmVlQmFsYW5jZSA9IHRydWU7XG4gICAgaWYgKGtlZXBBbGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9rZWVwQWRkcmVzc0FsaXZlID0ga2VlcEFsaXZlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgYW1vdW50IGZvciB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC1wcm90b2NvbC1pbmZvXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihhbW91bnQpKTtcbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIHRyYW5zZmVyIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC1wcm90b2NvbC1pbmZvXG4gICAqL1xuICB0byh7IGFkZHJlc3MgfTogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5fdG8gPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFRyYW5zZmVyQXJncztcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke3R4TWV0aG9kLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IHR4TWV0aG9kLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zZmVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5UcmFuc2ZlcktlZXBBbGl2ZSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBUcmFuc2ZlckFyZ3M7XG4gICAgICB0aGlzLmFtb3VudCh0eE1ldGhvZC52YWx1ZSk7XG4gICAgICB0aGlzLnRvKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlU3Vic3RyYXRlQWRkcmVzcyh0eE1ldGhvZC5kZXN0LmlkLCB0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSksXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJBbGwpIHtcbiAgICAgIHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UgPSB0cnVlO1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBUcmFuc2ZlckFsbEFyZ3M7XG4gICAgICB0aGlzLnN3ZWVwKHR4TWV0aG9kLmtlZXBBbGl2ZSk7XG4gICAgICB0aGlzLnRvKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlU3Vic3RyYXRlQWRkcmVzcyh0eE1ldGhvZC5kZXN0LmlkLCB0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIGEgdHJhbnNmZXJLZWVwQWxpdmUgb3IgYSBwcm94eSB0cmFuc2ZlcktlZXBBbGl2ZSB0cmFuc2FjdGlvbmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX3RvLCB0aGlzLl9hbW91bnQpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcyh0bzogc3RyaW5nLCBhbW91bnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIGlmICh0aGlzLl9zd2VlcEZyZWVCYWxhbmNlKSB7XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0gVHJhbnNmZXJBbGxUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHRvIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0gVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { TypeRegistry } from '@substrate/txwrapper-core/lib/types';
2
+ import { Material } from './iface';
3
+ export declare class SingletonRegistry {
4
+ private static instance;
5
+ private static material;
6
+ static getInstance(material: Material): TypeRegistry;
7
+ }
8
+ //# sourceMappingURL=singletonRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singletonRegistry.d.ts","sourceRoot":"","sources":["../../../src/lib/singletonRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAElC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY;CAYrD"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SingletonRegistry = void 0;
4
+ const txwrapper_registry_1 = require("@substrate/txwrapper-registry");
5
+ class SingletonRegistry {
6
+ static getInstance(material) {
7
+ if (material !== SingletonRegistry.material) {
8
+ SingletonRegistry.material = material;
9
+ SingletonRegistry.instance = (0, txwrapper_registry_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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NpbmdsZXRvblJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNFQUE0RDtBQUc1RCxNQUFhLGlCQUFpQjtJQUk1QixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWtCO1FBQ25DLElBQUksUUFBUSxLQUFLLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDdEMsaUJBQWlCLENBQUMsUUFBUSxHQUFHLElBQUEsZ0NBQVcsRUFBQztnQkFDdkMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUM3QixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7Z0JBQzNCLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztnQkFDakMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxRQUFRO2FBQy9CLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFoQkQsOENBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0UmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1yZWdpc3RyeSc7XG5pbXBvcnQgeyBNYXRlcmlhbCB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgU2luZ2xldG9uUmVnaXN0cnkge1xuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogVHlwZVJlZ2lzdHJ5O1xuICBwcml2YXRlIHN0YXRpYyBtYXRlcmlhbDogTWF0ZXJpYWw7XG5cbiAgc3RhdGljIGdldEluc3RhbmNlKG1hdGVyaWFsOiBNYXRlcmlhbCk6IFR5cGVSZWdpc3RyeSB7XG4gICAgaWYgKG1hdGVyaWFsICE9PSBTaW5nbGV0b25SZWdpc3RyeS5tYXRlcmlhbCkge1xuICAgICAgU2luZ2xldG9uUmVnaXN0cnkubWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICAgIFNpbmdsZXRvblJlZ2lzdHJ5Lmluc3RhbmNlID0gZ2V0UmVnaXN0cnkoe1xuICAgICAgICBjaGFpbk5hbWU6IG1hdGVyaWFsLmNoYWluTmFtZSxcbiAgICAgICAgc3BlY05hbWU6IG1hdGVyaWFsLnNwZWNOYW1lLFxuICAgICAgICBzcGVjVmVyc2lvbjogbWF0ZXJpYWwuc3BlY1ZlcnNpb24sXG4gICAgICAgIG1ldGFkYXRhUnBjOiBtYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gU2luZ2xldG9uUmVnaXN0cnkuaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,73 @@
1
+ import { BaseKey, BaseTransaction, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { UnsignedTransaction } from '@substrate/txwrapper-core';
4
+ import { TypeRegistry } from '@substrate/txwrapper-core/lib/types';
5
+ import { KeyPair } from './keyPair';
6
+ import { TransactionExplanation, TxData } from './iface';
7
+ export declare class Transaction extends BaseTransaction {
8
+ protected _substrateTransaction: UnsignedTransaction;
9
+ private _signedTransaction?;
10
+ private _registry;
11
+ private _chainName;
12
+ private _sender;
13
+ private static FAKE_SIGNATURE;
14
+ constructor(coinConfig: Readonly<CoinConfig>);
15
+ /** @inheritdoc */
16
+ canSign({ key }: BaseKey): boolean;
17
+ /**
18
+ * Sign a substrate transaction and update the transaction hex
19
+ *
20
+ * @param {KeyPair} keyPair - ed signature
21
+ */
22
+ sign(keyPair: KeyPair): void;
23
+ /**
24
+ * Adds the signature to the Substrate Transaction
25
+ * @param {string} signature
26
+ */
27
+ addSignature(signature: string): void;
28
+ /**
29
+ * Returns a serialized representation of this transaction with a fake signature attached which
30
+ * can be used to estimate transaction fees.
31
+ */
32
+ fakeSign(): string;
33
+ registry(registry: TypeRegistry): void;
34
+ chainName(chainName: string): void;
35
+ sender(sender: string): void;
36
+ /** @inheritdoc */
37
+ toBroadcastFormat(): string;
38
+ transactionSize(): number;
39
+ /** @inheritdoc */
40
+ toJson(): TxData;
41
+ explainTransferTransaction(json: TxData, explanationResult: TransactionExplanation): TransactionExplanation;
42
+ explainStakeTransaction(json: TxData, explanationResult: TransactionExplanation): TransactionExplanation;
43
+ explainUnstakeTransaction(json: TxData, explanationResult: TransactionExplanation): TransactionExplanation;
44
+ /** @inheritdoc */
45
+ explainTransaction(): TransactionExplanation;
46
+ /**
47
+ * Load the input and output data on this transaction.
48
+ */
49
+ loadInputsAndOutputs(): void;
50
+ private decodeInputsAndOutputsForSend;
51
+ private decodeInputsAndOutputsForStakingActivate;
52
+ private decodeInputsAndOutputsForStakingDeactivate;
53
+ /**
54
+ * Constructs a signed payload using construct.signTx
55
+ * This method will be called during the build step if a TSS signature
56
+ * is added and will set the signTransaction which is the txHex that will be broadcasted
57
+ * As well as add the signature used to sign to the signature array in hex format
58
+ *
59
+ * @param {Buffer} signature The signature to be added to a substrate transaction
60
+ */
61
+ constructSignedPayload(signature: Buffer): void;
62
+ setTransaction(tx: UnsignedTransaction): void;
63
+ /** @inheritdoc **/
64
+ get signablePayload(): Buffer;
65
+ /**
66
+ * Set the transaction type.
67
+ *
68
+ * @param {TransactionType} transactionType The transaction type to be set.
69
+ */
70
+ transactionType(transactionType: TransactionType): void;
71
+ protected getAddressFormat(): number;
72
+ }
73
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAKf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAwB,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAK/E,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;IACrD,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAmE;gBAEpF,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAMlC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA0B5B;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IASlB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAa3B,eAAe,IAAI,MAAM;IAIzB,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAkEhB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAY3G,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAYxG,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAY1G,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IA4B5C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAmB5B,OAAO,CAAC,6BAA6B;IAuCrC,OAAO,CAAC,wCAAwC;IAgChD,OAAO,CAAC,0CAA0C;IAgClD;;;;;;;OAOG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/C,cAAc,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAI7C,mBAAmB;IACnB,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD,SAAS,CAAC,gBAAgB,IAAI,MAAM;CAGrC"}