@bitgo-beta/abstract-substrate 1.0.1-beta.9 → 1.0.1-beta.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/dist/src/abstractSubstrateCoin.d.ts +20 -3
- package/dist/src/abstractSubstrateCoin.d.ts.map +1 -1
- package/dist/src/abstractSubstrateCoin.js +76 -14
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +16 -1
- package/dist/src/lib/constants.d.ts +2 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +5 -0
- package/dist/src/lib/errors.d.ts +8 -0
- package/dist/src/lib/errors.d.ts.map +1 -0
- package/dist/src/lib/errors.js +19 -0
- package/dist/src/lib/iface.d.ts +140 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +35 -0
- package/dist/src/lib/index.d.ts +12 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +61 -0
- package/dist/src/lib/keyPair.d.ts +24 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +63 -0
- package/dist/src/lib/nativeTransferBuilder.d.ts +61 -0
- package/dist/src/lib/nativeTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/nativeTransferBuilder.js +147 -0
- package/dist/src/lib/singletonRegistry.d.ts +8 -0
- package/dist/src/lib/singletonRegistry.d.ts.map +1 -0
- package/dist/src/lib/singletonRegistry.js +20 -0
- package/dist/src/lib/transaction.d.ts +73 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +424 -0
- package/dist/src/lib/transactionBuilder.d.ts +121 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +334 -0
- package/dist/src/lib/transferBuilder.d.ts +6 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +11 -0
- package/dist/src/lib/txnSchema.d.ts +9 -0
- package/dist/src/lib/txnSchema.d.ts.map +1 -0
- package/dist/src/lib/txnSchema.js +52 -0
- package/dist/src/lib/utils.d.ts +122 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +227 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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"}
|