@bitgo-beta/sdk-coin-rune 0.0.0-semantic-release-managed

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 (39) hide show
  1. package/.eslintignore +5 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +278 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/index.d.ts +5 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +21 -0
  9. package/dist/src/lib/constants.d.ts +12 -0
  10. package/dist/src/lib/constants.d.ts.map +1 -0
  11. package/dist/src/lib/constants.js +17 -0
  12. package/dist/src/lib/iface.d.ts +6 -0
  13. package/dist/src/lib/iface.d.ts.map +1 -0
  14. package/dist/src/lib/iface.js +3 -0
  15. package/dist/src/lib/index.d.ts +7 -0
  16. package/dist/src/lib/index.d.ts.map +1 -0
  17. package/dist/src/lib/index.js +48 -0
  18. package/dist/src/lib/keyPair.d.ts +11 -0
  19. package/dist/src/lib/keyPair.d.ts.map +1 -0
  20. package/dist/src/lib/keyPair.js +26 -0
  21. package/dist/src/lib/transactionBuilderFactory.d.ts +28 -0
  22. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  23. package/dist/src/lib/transactionBuilderFactory.js +74 -0
  24. package/dist/src/lib/transferBuilder.d.ts +11 -0
  25. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  26. package/dist/src/lib/transferBuilder.js +27 -0
  27. package/dist/src/lib/utils.d.ts +68 -0
  28. package/dist/src/lib/utils.d.ts.map +1 -0
  29. package/dist/src/lib/utils.js +221 -0
  30. package/dist/src/register.d.ts +3 -0
  31. package/dist/src/register.d.ts.map +1 -0
  32. package/dist/src/register.js +11 -0
  33. package/dist/src/rune.d.ts +40 -0
  34. package/dist/src/rune.d.ts.map +1 -0
  35. package/dist/src/rune.js +219 -0
  36. package/dist/src/trune.d.ts +20 -0
  37. package/dist/src/trune.d.ts.map +1 -0
  38. package/dist/src/trune.js +36 -0
  39. package/package.json +59 -0
@@ -0,0 +1,48 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Utils = exports.Constants = exports.TransactionBuilderFactory = exports.KeyPair = exports.TransactionBuilder = exports.Transaction = void 0;
37
+ const Constants = __importStar(require("./constants"));
38
+ exports.Constants = Constants;
39
+ const Utils = __importStar(require("./utils"));
40
+ exports.Utils = Utils;
41
+ var abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
42
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return abstract_cosmos_1.CosmosTransaction; } });
43
+ Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return abstract_cosmos_1.CosmosTransactionBuilder; } });
44
+ var keyPair_1 = require("./keyPair");
45
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
46
+ var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
47
+ Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUF5QztBQVNoQyw4QkFBUztBQVJsQiwrQ0FBaUM7QUFRYixzQkFBSztBQU56QiwrREFHcUM7QUFGbkMsOEdBQUEsaUJBQWlCLE9BQWU7QUFDaEMscUhBQUEsd0JBQXdCLE9BQXNCO0FBRWhELHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQge1xuICBDb3Ntb3NUcmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbixcbiAgQ29zbW9zVHJhbnNhY3Rpb25CdWlsZGVyIGFzIFRyYW5zYWN0aW9uQnVpbGRlcixcbn0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtY29zbW9zJztcbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBDb25zdGFudHMsIFV0aWxzIH07XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { KeyPairOptions, AddressFormat } from '@bitgo-beta/sdk-core';
2
+ import { CosmosKeyPair } from '@bitgo-beta/abstract-cosmos';
3
+ /**
4
+ * Rune keys and address management.
5
+ */
6
+ export declare class KeyPair extends CosmosKeyPair {
7
+ constructor(source?: KeyPairOptions);
8
+ /** @inheritdoc */
9
+ getAddress(format?: AddressFormat): string;
10
+ }
11
+ //# 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,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D;;GAEG;AACH,qBAAa,OAAQ,SAAQ,aAAa;gBAC5B,MAAM,CAAC,EAAE,cAAc;IAInC,kBAAkB;IAClB,UAAU,CAAC,MAAM,GAAE,aAAqC,GAAG,MAAM;CAWlE"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyPair = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const amino_1 = require("@cosmjs/amino");
6
+ const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
7
+ const constants_1 = require("./constants");
8
+ /**
9
+ * Rune keys and address management.
10
+ */
11
+ class KeyPair extends abstract_cosmos_1.CosmosKeyPair {
12
+ constructor(source) {
13
+ super(source);
14
+ }
15
+ /** @inheritdoc */
16
+ getAddress(format = sdk_core_1.AddressFormat.mainnet) {
17
+ const base64String = Buffer.from(this.getKeys().pub.slice(0, 66), 'hex').toString('base64');
18
+ const address_prefix = format === sdk_core_1.AddressFormat.testnet ? constants_1.TESTNET_ADDRESS_PREFIX : constants_1.MAINNET_ADDRESS_PREFIX;
19
+ return (0, amino_1.pubkeyToAddress)({
20
+ type: 'tendermint/PubKeySecp256k1',
21
+ value: base64String,
22
+ }, address_prefix);
23
+ }
24
+ }
25
+ exports.KeyPair = KeyPair;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBcUU7QUFDckUseUNBQWdEO0FBRWhELGlFQUE0RDtBQUM1RCwyQ0FBNkU7QUFFN0U7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSwrQkFBYTtJQUN4QyxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFVBQVUsQ0FBQyxTQUF3Qix3QkFBYSxDQUFDLE9BQU87UUFDdEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sY0FBYyxHQUFHLE1BQU0sS0FBSyx3QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0NBQXNCLENBQUMsQ0FBQyxDQUFDLGtDQUFzQixDQUFDO1FBQzFHLE9BQU8sSUFBQSx1QkFBZSxFQUNwQjtZQUNFLElBQUksRUFBRSw0QkFBNEI7WUFDbEMsS0FBSyxFQUFFLFlBQVk7U0FDcEIsRUFDRCxjQUFjLENBQ2YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpCRCwwQkFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlQYWlyT3B0aW9ucywgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IHB1YmtleVRvQWRkcmVzcyB9IGZyb20gJ0Bjb3NtanMvYW1pbm8nO1xuXG5pbXBvcnQgeyBDb3Ntb3NLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtY29zbW9zJztcbmltcG9ydCB7IE1BSU5ORVRfQUREUkVTU19QUkVGSVgsIFRFU1RORVRfQUREUkVTU19QUkVGSVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogUnVuZSBrZXlzIGFuZCBhZGRyZXNzIG1hbmFnZW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgQ29zbW9zS2V5UGFpciB7XG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKGZvcm1hdDogQWRkcmVzc0Zvcm1hdCA9IEFkZHJlc3NGb3JtYXQubWFpbm5ldCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZTY0U3RyaW5nID0gQnVmZmVyLmZyb20odGhpcy5nZXRLZXlzKCkucHViLnNsaWNlKDAsIDY2KSwgJ2hleCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICBjb25zdCBhZGRyZXNzX3ByZWZpeCA9IGZvcm1hdCA9PT0gQWRkcmVzc0Zvcm1hdC50ZXN0bmV0ID8gVEVTVE5FVF9BRERSRVNTX1BSRUZJWCA6IE1BSU5ORVRfQUREUkVTU19QUkVGSVg7XG4gICAgcmV0dXJuIHB1YmtleVRvQWRkcmVzcyhcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3RlbmRlcm1pbnQvUHViS2V5U2VjcDI1NmsxJyxcbiAgICAgICAgdmFsdWU6IGJhc2U2NFN0cmluZyxcbiAgICAgIH0sXG4gICAgICBhZGRyZXNzX3ByZWZpeFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { CosmosTransaction, CosmosTransactionBuilder, CosmosTransferBuilder, StakingActivateBuilder, StakingDeactivateBuilder, StakingWithdrawRewardsBuilder, StakingRedelegateBuilder } from '@bitgo-beta/abstract-cosmos';
2
+ import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
5
+ constructor(_coinConfig: Readonly<CoinConfig>);
6
+ /** @inheritdoc */
7
+ from(raw: string): CosmosTransactionBuilder;
8
+ /** @inheritdoc */
9
+ getTransferBuilder(tx?: CosmosTransaction): CosmosTransferBuilder;
10
+ /** @inheritdoc */
11
+ getStakingActivateBuilder(tx?: CosmosTransaction): StakingActivateBuilder;
12
+ /** @inheritdoc */
13
+ getStakingDeactivateBuilder(tx?: CosmosTransaction): StakingDeactivateBuilder;
14
+ /** @inheritdoc */
15
+ getStakingWithdrawRewardsBuilder(tx?: CosmosTransaction): StakingWithdrawRewardsBuilder;
16
+ getStakingRedelegateBuilder(tx?: CosmosTransaction): StakingRedelegateBuilder;
17
+ /** @inheritdoc */
18
+ getWalletInitializationBuilder(): void;
19
+ /**
20
+ * Initialize the builder with the given transaction
21
+ *
22
+ * @param {CosmosTransaction | undefined} tx - the transaction used to initialize the builder
23
+ * @param {CosmosTransactionBuilder} builder - the builder to be initialized
24
+ * @returns {CosmosTransactionBuilder} the builder initialized
25
+ */
26
+ protected initializeBuilder<T extends CosmosTransactionBuilder>(tx: CosmosTransaction | undefined, builder: T): T;
27
+ }
28
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB;IAuB3C,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,qBAAqB;IAOjE,kBAAkB;IAClB,yBAAyB,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,sBAAsB;IAOzE,kBAAkB;IAClB,2BAA2B,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,wBAAwB;IAO7E,kBAAkB;IAClB,gCAAgC,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,6BAA6B;IAOvF,2BAA2B,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,wBAAwB;IAO7E,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,SAAS,wBAAwB,EAAE,EAAE,EAAE,iBAAiB,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;CAMlH"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionBuilderFactory = void 0;
4
+ const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
5
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
6
+ const transferBuilder_1 = require("./transferBuilder");
7
+ const utils_1 = require("./utils");
8
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
9
+ constructor(_coinConfig) {
10
+ super(_coinConfig);
11
+ }
12
+ /** @inheritdoc */
13
+ from(raw) {
14
+ const tx = new abstract_cosmos_1.CosmosTransaction(this._coinConfig, new utils_1.RuneUtils(this._coinConfig.network.type));
15
+ tx.enrichTransactionDetailsFromRawTransaction(raw);
16
+ try {
17
+ switch (tx.type) {
18
+ case sdk_core_1.TransactionType.Send:
19
+ return this.getTransferBuilder(tx);
20
+ case sdk_core_1.TransactionType.StakingActivate:
21
+ return this.getStakingActivateBuilder(tx);
22
+ case sdk_core_1.TransactionType.StakingDeactivate:
23
+ return this.getStakingDeactivateBuilder(tx);
24
+ case sdk_core_1.TransactionType.StakingWithdraw:
25
+ return this.getStakingWithdrawRewardsBuilder(tx);
26
+ case sdk_core_1.TransactionType.StakingRedelegate:
27
+ return this.getStakingRedelegateBuilder(tx);
28
+ default:
29
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
30
+ }
31
+ }
32
+ catch (e) {
33
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction: ' + e.message);
34
+ }
35
+ }
36
+ /** @inheritdoc */
37
+ getTransferBuilder(tx) {
38
+ return this.initializeBuilder(tx, new transferBuilder_1.RuneTransferBuilder(this._coinConfig, new utils_1.RuneUtils(this._coinConfig.network.type)));
39
+ }
40
+ /** @inheritdoc */
41
+ getStakingActivateBuilder(tx) {
42
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingActivateBuilder(this._coinConfig, new utils_1.RuneUtils(this._coinConfig.network.type)));
43
+ }
44
+ /** @inheritdoc */
45
+ getStakingDeactivateBuilder(tx) {
46
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingDeactivateBuilder(this._coinConfig, new utils_1.RuneUtils(this._coinConfig.network.type)));
47
+ }
48
+ /** @inheritdoc */
49
+ getStakingWithdrawRewardsBuilder(tx) {
50
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingWithdrawRewardsBuilder(this._coinConfig, new utils_1.RuneUtils(this._coinConfig.network.type)));
51
+ }
52
+ getStakingRedelegateBuilder(tx) {
53
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingRedelegateBuilder(this._coinConfig, new utils_1.RuneUtils(this._coinConfig.network.type)));
54
+ }
55
+ /** @inheritdoc */
56
+ getWalletInitializationBuilder() {
57
+ throw new Error('Method not implemented.');
58
+ }
59
+ /**
60
+ * Initialize the builder with the given transaction
61
+ *
62
+ * @param {CosmosTransaction | undefined} tx - the transaction used to initialize the builder
63
+ * @param {CosmosTransactionBuilder} builder - the builder to be initialized
64
+ * @returns {CosmosTransactionBuilder} the builder initialized
65
+ */
66
+ initializeBuilder(tx, builder) {
67
+ if (tx) {
68
+ builder.initBuilder(tx);
69
+ }
70
+ return builder;
71
+ }
72
+ }
73
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpRUFRcUM7QUFDckMsbURBQStHO0FBRS9HLHVEQUF3RDtBQUN4RCxtQ0FBb0M7QUFFcEMsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLE1BQU0sRUFBRSxHQUFHLElBQUksbUNBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLGlCQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRyxFQUFFLENBQUMsMENBQTBDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQ0gsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLEtBQUssMEJBQWUsQ0FBQyxJQUFJO29CQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckMsS0FBSywwQkFBZSxDQUFDLGVBQWU7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLDBCQUFlLENBQUMsaUJBQWlCO29CQUNwQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsS0FBSywwQkFBZSxDQUFDLGVBQWU7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxLQUFLLDBCQUFlLENBQUMsaUJBQWlCO29CQUNwQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUM7b0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDN0QsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0IsQ0FBQyxFQUFzQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsRUFBRSxFQUNGLElBQUkscUNBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLGlCQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDeEYsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIseUJBQXlCLENBQUMsRUFBc0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQzNCLEVBQUUsRUFDRixJQUFJLHdDQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxpQkFBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNGLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDJCQUEyQixDQUFDLEVBQXNCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUMzQixFQUFFLEVBQ0YsSUFBSSwwQ0FBd0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksaUJBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM3RixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQ0FBZ0MsQ0FBQyxFQUFzQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsRUFBRSxFQUNGLElBQUksK0NBQTZCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLGlCQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbEcsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxFQUFzQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsRUFBRSxFQUNGLElBQUksMENBQXdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLGlCQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDN0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08saUJBQWlCLENBQXFDLEVBQWlDLEVBQUUsT0FBVTtRQUMzRyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBdEZELDhEQXNGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvc21vc1RyYW5zYWN0aW9uLFxuICBDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIENvc21vc1RyYW5zZmVyQnVpbGRlcixcbiAgU3Rha2luZ0FjdGl2YXRlQnVpbGRlcixcbiAgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyLFxuICBTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcixcbiAgU3Rha2luZ1JlZGVsZWdhdGVCdWlsZGVyLFxufSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1jb3Ntb3MnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBSdW5lVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgUnVuZVV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IENvc21vc1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgdHggPSBuZXcgQ29zbW9zVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgbmV3IFJ1bmVVdGlscyh0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSkpO1xuICAgIHR4LmVucmljaFRyYW5zYWN0aW9uRGV0YWlsc0Zyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdSZWRlbGVnYXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdSZWRlbGVnYXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiAnICsgZS5tZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBDb3Ntb3NUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKFxuICAgICAgdHgsXG4gICAgICBuZXcgUnVuZVRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCBuZXcgUnVuZVV0aWxzKHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlKSlcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodHg/OiBDb3Ntb3NUcmFuc2FjdGlvbik6IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKFxuICAgICAgdHgsXG4gICAgICBuZXcgU3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCBuZXcgUnVuZVV0aWxzKHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlKSlcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eD86IENvc21vc1RyYW5zYWN0aW9uKTogU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcihcbiAgICAgIHR4LFxuICAgICAgbmV3IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCBuZXcgUnVuZVV0aWxzKHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlKSlcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFN0YWtpbmdXaXRoZHJhd1Jld2FyZHNCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIoXG4gICAgICB0eCxcbiAgICAgIG5ldyBTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCBuZXcgUnVuZVV0aWxzKHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0U3Rha2luZ1JlZGVsZWdhdGVCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBTdGFraW5nUmVkZWxlZ2F0ZUJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKFxuICAgICAgdHgsXG4gICAgICBuZXcgU3Rha2luZ1JlZGVsZWdhdGVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcsIG5ldyBSdW5lVXRpbHModGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUpKVxuICAgICk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29zbW9zVHJhbnNhY3Rpb24gfCB1bmRlZmluZWR9IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcGFyYW0ge0Nvc21vc1RyYW5zYWN0aW9uQnVpbGRlcn0gYnVpbGRlciAtIHRoZSBidWlsZGVyIHRvIGJlIGluaXRpYWxpemVkXG4gICAqIEByZXR1cm5zIHtDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIENvc21vc1RyYW5zYWN0aW9uQnVpbGRlcj4odHg6IENvc21vc1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkLCBidWlsZGVyOiBUKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { CosmosTransferBuilder, CosmosUtils, SendMessage } from '@bitgo-beta/abstract-cosmos';
4
+ export declare class RuneTransferBuilder extends CosmosTransferBuilder {
5
+ protected _utils: CosmosUtils;
6
+ constructor(_coinConfig: Readonly<CoinConfig>, utils: CosmosUtils);
7
+ protected get transactionType(): TransactionType;
8
+ /** @inheritdoc */
9
+ messages(sendMessages: SendMessage[]): this;
10
+ }
11
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE9F,qBAAa,mBAAoB,SAAQ,qBAAqB;IAC5D,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAElB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW;IAKjE,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI;CAU5C"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuneTransferBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
6
+ class RuneTransferBuilder extends abstract_cosmos_1.CosmosTransferBuilder {
7
+ constructor(_coinConfig, utils) {
8
+ super(_coinConfig, utils);
9
+ this._utils = utils;
10
+ }
11
+ get transactionType() {
12
+ return sdk_core_1.TransactionType.Send;
13
+ }
14
+ /** @inheritdoc */
15
+ messages(sendMessages) {
16
+ this._messages = sendMessages.map((sendMessage) => {
17
+ this._utils.validateSendMessage(sendMessage);
18
+ return {
19
+ typeUrl: '/types.MsgSend',
20
+ value: sendMessage,
21
+ };
22
+ });
23
+ return this;
24
+ }
25
+ }
26
+ exports.RuneTransferBuilder = RuneTransferBuilder;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXVEO0FBRXZELGlFQUE4RjtBQUU5RixNQUFhLG1CQUFvQixTQUFRLHVDQUFxQjtJQUc1RCxZQUFZLFdBQWlDLEVBQUUsS0FBa0I7UUFDL0QsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixRQUFRLENBQUMsWUFBMkI7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3QyxPQUFPO2dCQUNMLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLEtBQUssRUFBRSxXQUFXO2FBQ25CLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBdkJELGtEQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IENvc21vc1RyYW5zZmVyQnVpbGRlciwgQ29zbW9zVXRpbHMsIFNlbmRNZXNzYWdlIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtY29zbW9zJztcblxuZXhwb3J0IGNsYXNzIFJ1bmVUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBDb3Ntb3NUcmFuc2ZlckJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3V0aWxzOiBDb3Ntb3NVdGlscztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sIHV0aWxzOiBDb3Ntb3NVdGlscykge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnLCB1dGlscyk7XG4gICAgdGhpcy5fdXRpbHMgPSB1dGlscztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIG1lc3NhZ2VzKHNlbmRNZXNzYWdlczogU2VuZE1lc3NhZ2VbXSk6IHRoaXMge1xuICAgIHRoaXMuX21lc3NhZ2VzID0gc2VuZE1lc3NhZ2VzLm1hcCgoc2VuZE1lc3NhZ2UpID0+IHtcbiAgICAgIHRoaXMuX3V0aWxzLnZhbGlkYXRlU2VuZE1lc3NhZ2Uoc2VuZE1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZVVybDogJy90eXBlcy5Nc2dTZW5kJyxcbiAgICAgICAgdmFsdWU6IHNlbmRNZXNzYWdlLFxuICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19
@@ -0,0 +1,68 @@
1
+ import { Coin } from '@cosmjs/stargate';
2
+ import { CosmosLikeTransaction, CosmosUtils, FeeData } from '@bitgo-beta/abstract-cosmos';
3
+ import { MessageData } from './iface';
4
+ import { NetworkType } from '@bitgo-beta/statics';
5
+ import { DecodedTxRaw } from '@cosmjs/proto-signing';
6
+ export declare class RuneUtils extends CosmosUtils {
7
+ private networkType;
8
+ constructor(networkType?: NetworkType);
9
+ getSendMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
10
+ /** @inheritdoc */
11
+ isValidAddress(address: string | Uint8Array): boolean;
12
+ /**
13
+ * Validates a decoded address in `Uint8Array` form by encoding it and
14
+ * checking if the encoded version is valid
15
+ *
16
+ * @param address - The decoded address as a `Uint8Array`.
17
+ * @returns `true` if the encoded address is valid, `false` otherwise.
18
+ */
19
+ private isValidDecodedAddress;
20
+ /**
21
+ * Validates an encoded address string against network-specific criteria.
22
+ *
23
+ * @param address - The encoded address as a `string`.
24
+ * @returns `true` if the address meets network-specific validation criteria, `false` otherwise.
25
+ */
26
+ private isValidEncodedAddress;
27
+ /**
28
+ * Encodes a given address `Uint8Array` into a bech32 string format, based on the current network type.
29
+ * Primarily serves as a utility to convert a `Uint8Array`-type address to a bech32 encoded string
30
+ *
31
+ * @param address - The address to be encoded, provided as a `Uint8Array`.
32
+ * @returns A bech32-encoded string representing the address.
33
+ * @throws Error - Throws an error if encoding fails
34
+ */
35
+ getEncodedAddress(address: Uint8Array): string;
36
+ /**
37
+ * Decodes a bech32-encoded address string back into a `Uint8Array`.
38
+ * Primarily serves as a utility to convert a string-type address into its binary representation,
39
+ *
40
+ * @param address - The bech32-encoded address as a `string`.
41
+ * @returns The decoded address as a `Uint8Array`.
42
+ * @throws Error - Throws an error if decoding fails
43
+ */
44
+ getDecodedAddress(address: string): Uint8Array;
45
+ /** @inheritdoc */
46
+ isValidValidatorAddress(address: string): boolean;
47
+ /** @inheritdoc */
48
+ validateAmount(amount: Coin): void;
49
+ /**
50
+ * Validates the gas limit and gas amount for a transaction.
51
+ * @param {FeeData} gasBudget - The gas budget to validate.
52
+ * @throws {InvalidTransactionError} Throws an error if the gas budget is invalid.
53
+ */
54
+ validateGasBudget(gasBudget: FeeData): void;
55
+ /**
56
+ * Validates an array of coin amounts.
57
+ * @param {Coin[]} amountArray - The array of coin amounts to validate.
58
+ */
59
+ validateGasAmountData(amountArray: Coin[]): void;
60
+ validateGasAmount(amount: Coin): void;
61
+ validateDenomination(amountDenom: string): void;
62
+ convertMessageAddressToUint8Array(messages: MessageData[]): MessageData[];
63
+ createTransaction(sequence: number, messages: MessageData[], gasBudget: FeeData, publicKey?: string, memo?: string): CosmosLikeTransaction;
64
+ getNetworkPrefix(): "thor" | "sthor";
65
+ }
66
+ declare const runeUtils: RuneUtils;
67
+ export default runeUtils;
68
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,qBAAa,SAAU,SAAQ,WAAW;IACxC,OAAO,CAAC,WAAW,CAAc;gBACrB,WAAW,GAAE,WAAiC;IAK1D,+BAA+B,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,EAAE;IAcvE,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IAarD;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAU9C;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAQ9C,kBAAkB;IAClB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOjD,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAQlC;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAO3C;;;OAGG;IACH,qBAAqB,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI;IAMhD,iBAAiB,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAQrC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAM/C,iCAAiC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IA0BzE,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,qBAAqB;IAaxB,gBAAgB;CAGjB;AAED,QAAA,MAAM,SAAS,WAAkB,CAAC;AAElC,eAAe,SAAS,CAAC"}
@@ -0,0 +1,221 @@
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.RuneUtils = void 0;
40
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
41
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
42
+ const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
43
+ const constants = __importStar(require("./constants"));
44
+ const statics_1 = require("@bitgo-beta/statics");
45
+ const constants_1 = require("./constants");
46
+ const bech32 = require('bech32-buffer');
47
+ class RuneUtils extends abstract_cosmos_1.CosmosUtils {
48
+ constructor(networkType = statics_1.NetworkType.MAINNET) {
49
+ super();
50
+ this.networkType = networkType;
51
+ }
52
+ getSendMessageDataFromDecodedTx(decodedTx) {
53
+ return decodedTx.body.messages.map((message) => {
54
+ const value = this.registry.decode(message);
55
+ return {
56
+ value: {
57
+ fromAddress: this.getEncodedAddress(value.fromAddress),
58
+ toAddress: this.getEncodedAddress(value.toAddress),
59
+ amount: value.amount,
60
+ },
61
+ typeUrl: message.typeUrl,
62
+ };
63
+ });
64
+ }
65
+ /** @inheritdoc */
66
+ isValidAddress(address) {
67
+ if (address === undefined || address === null) {
68
+ return false;
69
+ }
70
+ if (address instanceof Uint8Array) {
71
+ return this.isValidDecodedAddress(address);
72
+ }
73
+ if (typeof address === 'string') {
74
+ return this.isValidEncodedAddress(address);
75
+ }
76
+ return false;
77
+ }
78
+ /**
79
+ * Validates a decoded address in `Uint8Array` form by encoding it and
80
+ * checking if the encoded version is valid
81
+ *
82
+ * @param address - The decoded address as a `Uint8Array`.
83
+ * @returns `true` if the encoded address is valid, `false` otherwise.
84
+ */
85
+ isValidDecodedAddress(address) {
86
+ const encodedAddress = this.getEncodedAddress(address);
87
+ return this.isValidEncodedAddress(encodedAddress);
88
+ }
89
+ /**
90
+ * Validates an encoded address string against network-specific criteria.
91
+ *
92
+ * @param address - The encoded address as a `string`.
93
+ * @returns `true` if the address meets network-specific validation criteria, `false` otherwise.
94
+ */
95
+ isValidEncodedAddress(address) {
96
+ if (this.networkType === statics_1.NetworkType.TESTNET) {
97
+ return this.isValidCosmosLikeAddressWithMemoId(address, constants.testnetAccountAddressRegex);
98
+ }
99
+ return this.isValidCosmosLikeAddressWithMemoId(address, constants.mainnetAccountAddressRegex);
100
+ }
101
+ /**
102
+ * Encodes a given address `Uint8Array` into a bech32 string format, based on the current network type.
103
+ * Primarily serves as a utility to convert a `Uint8Array`-type address to a bech32 encoded string
104
+ *
105
+ * @param address - The address to be encoded, provided as a `Uint8Array`.
106
+ * @returns A bech32-encoded string representing the address.
107
+ * @throws Error - Throws an error if encoding fails
108
+ */
109
+ getEncodedAddress(address) {
110
+ try {
111
+ return this.networkType === statics_1.NetworkType.TESTNET
112
+ ? bech32.encode(constants_1.TESTNET_ADDRESS_PREFIX, address)
113
+ : bech32.encode(constants_1.MAINNET_ADDRESS_PREFIX, address);
114
+ }
115
+ catch (error) {
116
+ throw new Error(`Failed to encode address: ${error instanceof Error ? error.message : String(error)}`);
117
+ }
118
+ }
119
+ /**
120
+ * Decodes a bech32-encoded address string back into a `Uint8Array`.
121
+ * Primarily serves as a utility to convert a string-type address into its binary representation,
122
+ *
123
+ * @param address - The bech32-encoded address as a `string`.
124
+ * @returns The decoded address as a `Uint8Array`.
125
+ * @throws Error - Throws an error if decoding fails
126
+ */
127
+ getDecodedAddress(address) {
128
+ try {
129
+ return bech32.decode(address).data;
130
+ }
131
+ catch (error) {
132
+ throw new Error(`Failed to decode address: ${error instanceof Error ? error.message : String(error)}`);
133
+ }
134
+ }
135
+ /** @inheritdoc */
136
+ isValidValidatorAddress(address) {
137
+ if (this.networkType === statics_1.NetworkType.TESTNET) {
138
+ return this.isValidBech32AddressMatchingRegex(address, constants.testnetValidatorAddressRegex);
139
+ }
140
+ return this.isValidBech32AddressMatchingRegex(address, constants.mainnetValidatorAddressRegex);
141
+ }
142
+ /** @inheritdoc */
143
+ validateAmount(amount) {
144
+ const amountBig = (0, bignumber_js_1.default)(amount.amount);
145
+ if (amountBig.isNaN() || amountBig.isLessThanOrEqualTo(0)) {
146
+ throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid amount: ' + amount.amount);
147
+ }
148
+ this.validateDenomination(amount.denom);
149
+ }
150
+ /**
151
+ * Validates the gas limit and gas amount for a transaction.
152
+ * @param {FeeData} gasBudget - The gas budget to validate.
153
+ * @throws {InvalidTransactionError} Throws an error if the gas budget is invalid.
154
+ */
155
+ validateGasBudget(gasBudget) {
156
+ if (gasBudget.gasLimit <= 0) {
157
+ throw new sdk_core_1.InvalidTransactionError('Invalid gas limit ' + gasBudget.gasLimit);
158
+ }
159
+ this.validateGasAmountData(gasBudget.amount);
160
+ }
161
+ /**
162
+ * Validates an array of coin amounts.
163
+ * @param {Coin[]} amountArray - The array of coin amounts to validate.
164
+ */
165
+ validateGasAmountData(amountArray) {
166
+ amountArray.forEach((coinAmount) => {
167
+ this.validateGasAmount(coinAmount);
168
+ });
169
+ }
170
+ validateGasAmount(amount) {
171
+ const amountBig = (0, bignumber_js_1.default)(amount.amount);
172
+ if (amountBig.isNaN() || amountBig.isLessThan(0)) {
173
+ throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid amount: ' + amount.amount);
174
+ }
175
+ this.validateDenomination(amount.denom);
176
+ }
177
+ validateDenomination(amountDenom) {
178
+ if (!constants.validDenoms.find((denom) => denom === amountDenom)) {
179
+ throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid denom: ' + amountDenom);
180
+ }
181
+ }
182
+ convertMessageAddressToUint8Array(messages) {
183
+ return messages.map((message) => {
184
+ if ('fromAddress' in message.value && 'toAddress' in message.value) {
185
+ const sendMessage = message.value;
186
+ const decodedFrom = typeof sendMessage.fromAddress === 'string'
187
+ ? bech32.decode(sendMessage.fromAddress).data
188
+ : sendMessage.fromAddress;
189
+ const decodedTo = typeof sendMessage.toAddress === 'string' ? bech32.decode(sendMessage.toAddress).data : sendMessage.toAddress;
190
+ return {
191
+ ...message,
192
+ value: {
193
+ ...sendMessage,
194
+ fromAddress: decodedFrom,
195
+ toAddress: decodedTo,
196
+ },
197
+ };
198
+ }
199
+ return message;
200
+ });
201
+ }
202
+ createTransaction(sequence, messages, gasBudget, publicKey, memo) {
203
+ messages = this.convertMessageAddressToUint8Array(messages);
204
+ const cosmosLikeTxn = {
205
+ sequence: sequence,
206
+ sendMessages: messages,
207
+ gasBudget: gasBudget,
208
+ publicKey: publicKey,
209
+ memo: memo,
210
+ };
211
+ this.validateTransaction(cosmosLikeTxn);
212
+ return cosmosLikeTxn;
213
+ }
214
+ getNetworkPrefix() {
215
+ return this.networkType === statics_1.NetworkType.TESTNET ? constants_1.TESTNET_ADDRESS_PREFIX : constants_1.MAINNET_ADDRESS_PREFIX;
216
+ }
217
+ }
218
+ exports.RuneUtils = RuneUtils;
219
+ const runeUtils = new RuneUtils();
220
+ exports.default = runeUtils;
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUErRDtBQUUvRCxnRUFBcUM7QUFFckMsaUVBQTBGO0FBRTFGLHVEQUF5QztBQUN6QyxpREFBa0Q7QUFFbEQsMkNBQTZFO0FBQzdFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUV4QyxNQUFhLFNBQVUsU0FBUSw2QkFBVztJQUV4QyxZQUFZLGNBQTJCLHFCQUFXLENBQUMsT0FBTztRQUN4RCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxTQUF1QjtRQUNyRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLE9BQU87Z0JBQ0wsS0FBSyxFQUFFO29CQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztvQkFDdEQsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO29CQUNsRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07aUJBQ3JCO2dCQUNELE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTzthQUN6QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUE0QjtRQUN6QyxJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxD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USxDQUFDLENBQUM7UUFDNUQsTUFBTSxhQUFhLEdBQUc7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUsscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtDQUFzQixDQUFDLENBQUMsQ0FBQyxrQ0FBc0IsQ0FBQztJQUNwRyxDQUFDO0NBQ0Y7QUFuTUQsOEJBbU1DO0FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztBQUVsQyxrQkFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENvaW4gfSBmcm9tICdAY29zbWpzL3N0YXJnYXRlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuaW1wb3J0IHsgQ29zbW9zTGlrZVRyYW5zYWN0aW9uLCBDb3Ntb3NVdGlscywgRmVlRGF0YSB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWNvc21vcyc7XG5pbXBvcnQgeyBNZXNzYWdlRGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkVHhSYXcgfSBmcm9tICdAY29zbWpzL3Byb3RvLXNpZ25pbmcnO1xuaW1wb3J0IHsgTUFJTk5FVF9BRERSRVNTX1BSRUZJWCwgVEVTVE5FVF9BRERSRVNTX1BSRUZJWCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGJlY2gzMiA9IHJlcXVpcmUoJ2JlY2gzMi1idWZmZXInKTtcblxuZXhwb3J0IGNsYXNzIFJ1bmVVdGlscyBleHRlbmRzIENvc21vc1V0aWxzIHtcbiAgcHJpdmF0ZSBuZXR3b3JrVHlwZTogTmV0d29ya1R5cGU7XG4gIGNvbnN0cnVjdG9yKG5ldHdvcmtUeXBlOiBOZXR3b3JrVHlwZSA9IE5ldHdvcmtUeXBlLk1BSU5ORVQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubmV0d29ya1R5cGUgPSBuZXR3b3JrVHlwZTtcbiAgfVxuXG4gIGdldFNlbmRNZXNzYWdlRGF0YUZyb21EZWNvZGVkVHgoZGVjb2RlZFR4OiBEZWNvZGVkVHhSYXcpOiBNZXNzYWdlRGF0YVtdIHtcbiAgICByZXR1cm4gZGVjb2RlZFR4LmJvZHkubWVzc2FnZXMubWFwKChtZXNzYWdlKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmVnaXN0cnkuZGVjb2RlKG1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5nZXRFbmNvZGVkQWRkcmVzcyh2YWx1ZS5mcm9tQWRkcmVzcyksXG4gICAgICAgICAgdG9BZGRyZXNzOiB0aGlzLmdldEVuY29kZWRBZGRyZXNzKHZhbHVlLnRvQWRkcmVzcyksXG4gICAgICAgICAgYW1vdW50OiB2YWx1ZS5hbW91bnQsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVVcmw6IG1lc3NhZ2UudHlwZVVybCxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nIHwgVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIGlmIChhZGRyZXNzID09PSB1bmRlZmluZWQgfHwgYWRkcmVzcyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYWRkcmVzcyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWREZWNvZGVkQWRkcmVzcyhhZGRyZXNzKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZEVuY29kZWRBZGRyZXNzKGFkZHJlc3MpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGEgZGVjb2RlZCBhZGRyZXNzIGluIGBVaW50OEFycmF5YCBmb3JtIGJ5IGVuY29kaW5nIGl0IGFuZFxuICAgKiBjaGVja2luZyBpZiB0aGUgZW5jb2RlZCB2ZXJzaW9uIGlzIHZhbGlkXG4gICAqXG4gICAqIEBwYXJhbSBhZGRyZXNzIC0gVGhlIGRlY29kZWQgYWRkcmVzcyBhcyBhIGBVaW50OEFycmF5YC5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBlbmNvZGVkIGFkZHJlc3MgaXMgdmFsaWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBpc1ZhbGlkRGVjb2RlZEFkZHJlc3MoYWRkcmVzczogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVuY29kZWRBZGRyZXNzID0gdGhpcy5nZXRFbmNvZGVkQWRkcmVzcyhhZGRyZXNzKTtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkRW5jb2RlZEFkZHJlc3MoZW5jb2RlZEFkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbiBlbmNvZGVkIGFkZHJlc3Mgc3RyaW5nIGFnYWluc3QgbmV0d29yay1zcGVjaWZpYyBjcml0ZXJpYS5cbiAgICpcbiAgICogQHBhcmFtIGFkZHJlc3MgLSBUaGUgZW5jb2RlZCBhZGRyZXNzIGFzIGEgYHN0cmluZ2AuXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgYWRkcmVzcyBtZWV0cyBuZXR3b3JrLXNwZWNpZmljIHZhbGlkYXRpb24gY3JpdGVyaWEsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBpc1ZhbGlkRW5jb2RlZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubmV0d29ya1R5cGUgPT09IE5ldHdvcmtUeXBlLlRFU1RORVQpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWRDb3Ntb3NMaWtlQWRkcmVzc1dpdGhNZW1vSWQoYWRkcmVzcywgY29uc3RhbnRzLnRlc3RuZXRBY2NvdW50QWRkcmVzc1JlZ2V4KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZENvc21vc0xpa2VBZGRyZXNzV2l0aE1lbW9JZChhZGRyZXNzLCBjb25zdGFudHMubWFpbm5ldEFjY291bnRBZGRyZXNzUmVnZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZXMgYSBnaXZlbiBhZGRyZXNzIGBVaW50OEFycmF5YCBpbnRvIGEgYmVjaDMyIHN0cmluZyBmb3JtYXQsIGJhc2VkIG9uIHRoZSBjdXJyZW50IG5ldHdvcmsgdHlwZS5cbiAgICogUHJpbWFyaWx5IHNlcnZlcyBhcyBhIHV0aWxpdHkgdG8gY29udmVydCBhIGBVaW50OEFycmF5YC10eXBlIGFkZHJlc3MgdG8gYSBiZWNoMzIgZW5jb2RlZCBzdHJpbmdcbiAgICpcbiAgICogQHBhcmFtIGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byBiZSBlbmNvZGVkLCBwcm92aWRlZCBhcyBhIGBVaW50OEFycmF5YC5cbiAgICogQHJldHVybnMgQSBiZWNoMzItZW5jb2RlZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhZGRyZXNzLlxuICAgKiBAdGhyb3dzIEVycm9yIC0gVGhyb3dzIGFuIGVycm9yIGlmIGVuY29kaW5nIGZhaWxzXG4gICAqL1xuICBnZXRFbmNvZGVkQWRkcmVzcyhhZGRyZXNzOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMubmV0d29ya1R5cGUgPT09IE5ldHdvcmtUeXBlLlRFU1RORVRcbiAgICAgICAgPyBiZWNoMzIuZW5jb2RlKFRFU1RORVRfQUREUkVTU19QUkVGSVgsIGFkZHJlc3MpXG4gICAgICAgIDogYmVjaDMyLmVuY29kZShNQUlOTkVUX0FERFJFU1NfUFJFRklYLCBhZGRyZXNzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZW5jb2RlIGFkZHJlc3M6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgYmVjaDMyLWVuY29kZWQgYWRkcmVzcyBzdHJpbmcgYmFjayBpbnRvIGEgYFVpbnQ4QXJyYXlgLlxuICAgKiBQcmltYXJpbHkgc2VydmVzIGFzIGEgdXRpbGl0eSB0byBjb252ZXJ0IGEgc3RyaW5nLXR5cGUgYWRkcmVzcyBpbnRvIGl0cyBiaW5hcnkgcmVwcmVzZW50YXRpb24sXG4gICAqXG4gICAqIEBwYXJhbSBhZGRyZXNzIC0gVGhlIGJlY2gzMi1lbmNvZGVkIGFkZHJlc3MgYXMgYSBgc3RyaW5nYC5cbiAgICogQHJldHVybnMgVGhlIGRlY29kZWQgYWRkcmVzcyBhcyBhIGBVaW50OEFycmF5YC5cbiAgICogQHRocm93cyBFcnJvciAtIFRocm93cyBhbiBlcnJvciBpZiBkZWNvZGluZyBmYWlsc1xuICAgKi9cbiAgZ2V0RGVjb2RlZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogVWludDhBcnJheSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBiZWNoMzIuZGVjb2RlKGFkZHJlc3MpLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGRlY29kZSBhZGRyZXNzOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFZhbGlkYXRvckFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubmV0d29ya1R5cGUgPT09IE5ldHdvcmtUeXBlLlRFU1RORVQpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWRCZWNoMzJBZGRyZXNzTWF0Y2hpbmdSZWdleChhZGRyZXNzLCBjb25zdGFudHMudGVzdG5ldFZhbGlkYXRvckFkZHJlc3NSZWdleCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzVmFsaWRCZWNoMzJBZGRyZXNzTWF0Y2hpbmdSZWdleChhZGRyZXNzLCBjb25zdGFudHMubWFpbm5ldFZhbGlkYXRvckFkZHJlc3NSZWdleCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBbW91bnQoYW1vdW50OiBDb2luKTogdm9pZCB7XG4gICAgY29uc3QgYW1vdW50QmlnID0gQmlnTnVtYmVyKGFtb3VudC5hbW91bnQpO1xuICAgIGlmIChhbW91bnRCaWcuaXNOYU4oKSB8fCBhbW91bnRCaWcuaXNMZXNzVGhhbk9yRXF1YWxUbygwKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd0cmFuc2FjdGlvbkJ1aWxkZXI6IHZhbGlkYXRlQW1vdW50OiBJbnZhbGlkIGFtb3VudDogJyArIGFtb3VudC5hbW91bnQpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlRGVub21pbmF0aW9uKGFtb3VudC5kZW5vbSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBnYXMgbGltaXQgYW5kIGdhcyBhbW91bnQgZm9yIGEgdHJhbnNhY3Rpb24uXG4gICAqIEBwYXJhbSB7RmVlRGF0YX0gZ2FzQnVkZ2V0IC0gVGhlIGdhcyBidWRnZXQgdG8gdmFsaWRhdGUuXG4gICAqIEB0aHJvd3Mge0ludmFsaWRUcmFuc2FjdGlvbkVycm9yfSBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIGdhcyBidWRnZXQgaXMgaW52YWxpZC5cbiAgICovXG4gIHZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldDogRmVlRGF0YSk6IHZvaWQge1xuICAgIGlmIChnYXNCdWRnZXQuZ2FzTGltaXQgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGdhcyBsaW1pdCAnICsgZ2FzQnVkZ2V0Lmdhc0xpbWl0KTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZUdhc0Ftb3VudERhdGEoZ2FzQnVkZ2V0LmFtb3VudCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFuIGFycmF5IG9mIGNvaW4gYW1vdW50cy5cbiAgICogQHBhcmFtIHtDb2luW119IGFtb3VudEFycmF5IC0gVGhlIGFycmF5IG9mIGNvaW4gYW1vdW50cyB0byB2YWxpZGF0ZS5cbiAgICovXG4gIHZhbGlkYXRlR2FzQW1vdW50RGF0YShhbW91bnRBcnJheTogQ29pbltdKTogdm9pZCB7XG4gICAgYW1vdW50QXJyYXkuZm9yRWFjaCgoY29pbkFtb3VudCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZUdhc0Ftb3VudChjb2luQW1vdW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlR2FzQW1vdW50KGFtb3VudDogQ29pbik6IHZvaWQge1xuICAgIGNvbnN0IGFtb3VudEJpZyA9IEJpZ051bWJlcihhbW91bnQuYW1vdW50KTtcbiAgICBpZiAoYW1vdW50QmlnLmlzTmFOKCkgfHwgYW1vdW50QmlnLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb25CdWlsZGVyOiB2YWxpZGF0ZUFtb3VudDogSW52YWxpZCBhbW91bnQ6ICcgKyBhbW91bnQuYW1vdW50KTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZURlbm9taW5hdGlvbihhbW91bnQuZGVub20pO1xuICB9XG5cbiAgdmFsaWRhdGVEZW5vbWluYXRpb24oYW1vdW50RGVub206IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghY29uc3RhbnRzLnZhbGlkRGVub21zLmZpbmQoKGRlbm9tKSA9PiBkZW5vbSA9PT0gYW1vdW50RGVub20pKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogdmFsaWRhdGVBbW91bnQ6IEludmFsaWQgZGVub206ICcgKyBhbW91bnREZW5vbSk7XG4gICAgfVxuICB9XG5cbiAgY29udmVydE1lc3NhZ2VBZGRyZXNzVG9VaW50OEFycmF5KG1lc3NhZ2VzOiBNZXNzYWdlRGF0YVtdKTogTWVzc2FnZURhdGFbXSB7XG4gICAgcmV0dXJuIG1lc3NhZ2VzLm1hcCgobWVzc2FnZSkgPT4ge1xuICAgICAgaWYgKCdmcm9tQWRkcmVzcycgaW4gbWVzc2FnZS52YWx1ZSAmJiAndG9BZGRyZXNzJyBpbiBtZXNzYWdlLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHNlbmRNZXNzYWdlID0gbWVzc2FnZS52YWx1ZTtcblxuICAgICAgICBjb25zdCBkZWNvZGVkRnJvbSA9XG4gICAgICAgICAgdHlwZW9mIHNlbmRNZXNzYWdlLmZyb21BZGRyZXNzID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBiZWNoMzIuZGVjb2RlKHNlbmRNZXNzYWdlLmZyb21BZGRyZXNzKS5kYXRhXG4gICAgICAgICAgICA6IHNlbmRNZXNzYWdlLmZyb21BZGRyZXNzO1xuICAgICAgICBjb25zdCBkZWNvZGVkVG8gPVxuICAgICAgICAgIHR5cGVvZiBzZW5kTWVzc2FnZS50b0FkZHJlc3MgPT09ICdzdHJpbmcnID8gYmVjaDMyLmRlY29kZShzZW5kTWVzc2FnZS50b0FkZHJlc3MpLmRhdGEgOiBzZW5kTWVzc2FnZS50b0FkZHJlc3M7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5tZXNzYWdlLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5zZW5kTWVzc2FnZSxcbiAgICAgICAgICAgIGZyb21BZGRyZXNzOiBkZWNvZGVkRnJvbSxcbiAgICAgICAgICAgIHRvQWRkcmVzczogZGVjb2RlZFRvLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlVHJhbnNhY3Rpb24oXG4gICAgc2VxdWVuY2U6IG51bWJlcixcbiAgICBtZXNzYWdlczogTWVzc2FnZURhdGFbXSxcbiAgICBnYXNCdWRnZXQ6IEZlZURhdGEsXG4gICAgcHVibGljS2V5Pzogc3RyaW5nLFxuICAgIG1lbW8/OiBzdHJpbmdcbiAgKTogQ29zbW9zTGlrZVRyYW5zYWN0aW9uIHtcbiAgICBtZXNzYWdlcyA9IHRoaXMuY29udmVydE1lc3NhZ2VBZGRyZXNzVG9VaW50OEFycmF5KG1lc3NhZ2VzKTtcbiAgICBjb25zdCBjb3Ntb3NMaWtlVHhuID0ge1xuICAgICAgc2VxdWVuY2U6IHNlcXVlbmNlLFxuICAgICAgc2VuZE1lc3NhZ2VzOiBtZXNzYWdlcyxcbiAgICAgIGdhc0J1ZGdldDogZ2FzQnVkZ2V0LFxuICAgICAgcHVibGljS2V5OiBwdWJsaWNLZXksXG4gICAgICBtZW1vOiBtZW1vLFxuICAgIH07XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uKGNvc21vc0xpa2VUeG4pO1xuICAgIHJldHVybiBjb3Ntb3NMaWtlVHhuO1xuICB9XG5cbiAgZ2V0TmV0d29ya1ByZWZpeCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZXR3b3JrVHlwZSA9PT0gTmV0d29ya1R5cGUuVEVTVE5FVCA/IFRFU1RORVRfQUREUkVTU19QUkVGSVggOiBNQUlOTkVUX0FERFJFU1NfUFJFRklYO1xuICB9XG59XG5cbmNvbnN0IHJ1bmVVdGlscyA9IG5ldyBSdW5lVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgcnVuZVV0aWxzO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { BitGoBase } from '@bitgo-beta/sdk-core';
2
+ export declare const register: (sdk: BitGoBase) => void;
3
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = void 0;
4
+ const rune_1 = require("./rune");
5
+ const trune_1 = require("./trune");
6
+ const register = (sdk) => {
7
+ sdk.register('thorchain:rune', rune_1.Rune.createInstance);
8
+ sdk.register('tthorchain:rune', trune_1.Trune.createInstance);
9
+ };
10
+ exports.register = register;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBQzlCLG1DQUFnQztBQUV6QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELEdBQUcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQztBQUhXLFFBQUEsUUFBUSxZQUduQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFJ1bmUgfSBmcm9tICcuL3J1bmUnO1xuaW1wb3J0IHsgVHJ1bmUgfSBmcm9tICcuL3RydW5lJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcigndGhvcmNoYWluOnJ1bmUnLCBSdW5lLmNyZWF0ZUluc3RhbmNlKTtcbiAgc2RrLnJlZ2lzdGVyKCd0dGhvcmNoYWluOnJ1bmUnLCBUcnVuZS5jcmVhdGVJbnN0YW5jZSk7XG59O1xuIl19