@bitgo/sdk-coin-islm 1.1.0

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 (40) hide show
  1. package/.eslintignore +5 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +10 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/resources/types/ethSecp256k1.d.ts +63 -0
  7. package/dist/resources/types/ethSecp256k1.d.ts.map +1 -0
  8. package/dist/resources/types/ethSecp256k1.js +156 -0
  9. package/dist/src/index.d.ts +5 -0
  10. package/dist/src/index.d.ts.map +1 -0
  11. package/dist/src/index.js +17 -0
  12. package/dist/src/islm.d.ts +32 -0
  13. package/dist/src/islm.d.ts.map +1 -0
  14. package/dist/src/islm.js +73 -0
  15. package/dist/src/lib/constants.d.ts +7 -0
  16. package/dist/src/lib/constants.d.ts.map +1 -0
  17. package/dist/src/lib/constants.js +10 -0
  18. package/dist/src/lib/index.d.ts +7 -0
  19. package/dist/src/lib/index.d.ts.map +1 -0
  20. package/dist/src/lib/index.js +34 -0
  21. package/dist/src/lib/keyPair.d.ts +11 -0
  22. package/dist/src/lib/keyPair.d.ts.map +1 -0
  23. package/dist/src/lib/keyPair.js +21 -0
  24. package/dist/src/lib/transactionBuilderFactory.d.ts +27 -0
  25. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  26. package/dist/src/lib/transactionBuilderFactory.js +71 -0
  27. package/dist/src/lib/utils.d.ts +44 -0
  28. package/dist/src/lib/utils.d.ts.map +1 -0
  29. package/dist/src/lib/utils.js +116 -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/tislm.d.ts +14 -0
  34. package/dist/src/tislm.d.ts.map +1 -0
  35. package/dist/src/tislm.js +18 -0
  36. package/package.json +61 -0
  37. package/resources/README.md +15 -0
  38. package/resources/proto/ethermint/crypto/v1/ethsecp256k1/ethSecp256k1.proto +23 -0
  39. package/resources/proto/gogoproto/gogo.proto +145 -0
  40. package/resources/types/ethSecp256k1.ts +183 -0
@@ -0,0 +1,7 @@
1
+ export declare const validDenoms: string[];
2
+ export declare const accountAddressRegex: RegExp;
3
+ export declare const validatorAddressRegex: RegExp;
4
+ export declare const GAS_LIMIT = 200000;
5
+ export declare const GAS_AMOUNT = "4000000000000000";
6
+ export declare const ADDRESS_PREFIX = "haqq";
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,UAAY,CAAC;AACrC,eAAO,MAAM,mBAAmB,QAAwD,CAAC;AACzF,eAAO,MAAM,qBAAqB,QAA+D,CAAC;AAClG,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,eAAO,MAAM,cAAc,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ADDRESS_PREFIX = exports.GAS_AMOUNT = exports.GAS_LIMIT = exports.validatorAddressRegex = exports.accountAddressRegex = exports.validDenoms = void 0;
4
+ exports.validDenoms = ['aISLM'];
5
+ exports.accountAddressRegex = /^(haqq)1(['qpzry9x8gf2tvdw0s3jn54khce6mua7l']{38})$/;
6
+ exports.validatorAddressRegex = /^(haqqvaloper)1(['qpzry9x8gf2tvdw0s3jn54khce6mua7l']{38})$/;
7
+ exports.GAS_LIMIT = 200000;
8
+ exports.GAS_AMOUNT = '4000000000000000';
9
+ exports.ADDRESS_PREFIX = 'haqq';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN4QixRQUFBLG1CQUFtQixHQUFHLHFEQUFxRCxDQUFDO0FBQzVFLFFBQUEscUJBQXFCLEdBQUcsNERBQTRELENBQUM7QUFDckYsUUFBQSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBQ25CLFFBQUEsVUFBVSxHQUFHLGtCQUFrQixDQUFDO0FBQ2hDLFFBQUEsY0FBYyxHQUFHLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB2YWxpZERlbm9tcyA9IFsnYUlTTE0nXTtcbmV4cG9ydCBjb25zdCBhY2NvdW50QWRkcmVzc1JlZ2V4ID0gL14oaGFxcSkxKFsncXB6cnk5eDhnZjJ0dmR3MHMzam41NGtoY2U2bXVhN2wnXXszOH0pJC87XG5leHBvcnQgY29uc3QgdmFsaWRhdG9yQWRkcmVzc1JlZ2V4ID0gL14oaGFxcXZhbG9wZXIpMShbJ3FwenJ5OXg4Z2YydHZkdzBzM2puNTRraGNlNm11YTdsJ117Mzh9KSQvO1xuZXhwb3J0IGNvbnN0IEdBU19MSU1JVCA9IDIwMDAwMDtcbmV4cG9ydCBjb25zdCBHQVNfQU1PVU5UID0gJzQwMDAwMDAwMDAwMDAwMDAnO1xuZXhwb3J0IGNvbnN0IEFERFJFU1NfUFJFRklYID0gJ2hhcXEnO1xuIl19
@@ -0,0 +1,7 @@
1
+ import * as Constants from './constants';
2
+ import * as Utils from './utils';
3
+ export { CosmosTransaction as Transaction, CosmosTransactionBuilder as TransactionBuilder, } from '@bitgo/abstract-cosmos';
4
+ export { KeyPair } from './keyPair';
5
+ export { TransactionBuilderFactory } from './transactionBuilderFactory';
6
+ export { Constants, Utils };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EACL,iBAAiB,IAAI,WAAW,EAChC,wBAAwB,IAAI,kBAAkB,GAC/C,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.Utils = exports.Constants = exports.TransactionBuilderFactory = exports.KeyPair = exports.TransactionBuilder = exports.Transaction = void 0;
23
+ const Constants = __importStar(require("./constants"));
24
+ exports.Constants = Constants;
25
+ const Utils = __importStar(require("./utils"));
26
+ exports.Utils = Utils;
27
+ var abstract_cosmos_1 = require("@bitgo/abstract-cosmos");
28
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return abstract_cosmos_1.CosmosTransaction; } });
29
+ Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return abstract_cosmos_1.CosmosTransactionBuilder; } });
30
+ var keyPair_1 = require("./keyPair");
31
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
32
+ var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
33
+ Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBeUM7QUFTaEMsOEJBQVM7QUFSbEIsK0NBQWlDO0FBUWIsc0JBQUs7QUFOekIsMERBR2dDO0FBRjlCLDhHQUFBLGlCQUFpQixPQUFlO0FBQ2hDLHFIQUFBLHdCQUF3QixPQUFzQjtBQUVoRCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIENvbnN0YW50cyBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHtcbiAgQ29zbW9zVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb24sXG4gIENvc21vc1RyYW5zYWN0aW9uQnVpbGRlciBhcyBUcmFuc2FjdGlvbkJ1aWxkZXIsXG59IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1jb3Ntb3MnO1xuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCB7IENvbnN0YW50cywgVXRpbHMgfTtcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { KeyPairOptions } from '@bitgo/sdk-core';
2
+ import { CosmosKeyPair } from '@bitgo/abstract-cosmos';
3
+ /**
4
+ * Islm keys and address management.
5
+ */
6
+ export declare class KeyPair extends CosmosKeyPair {
7
+ constructor(source?: KeyPairOptions);
8
+ /** @inheritdoc */
9
+ getAddress(): 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,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD;;GAEG;AACH,qBAAa,OAAQ,SAAQ,aAAa;gBAC5B,MAAM,CAAC,EAAE,cAAc;IAInC,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyPair = void 0;
4
+ const abstract_cosmos_1 = require("@bitgo/abstract-cosmos");
5
+ const constants_1 = require("./constants");
6
+ const encoding_1 = require("@cosmjs/encoding");
7
+ const utils_1 = require("ethers/lib/utils");
8
+ /**
9
+ * Islm keys and address management.
10
+ */
11
+ class KeyPair extends abstract_cosmos_1.CosmosKeyPair {
12
+ constructor(source) {
13
+ super(source);
14
+ }
15
+ /** @inheritdoc */
16
+ getAddress() {
17
+ return encoding_1.toBech32(constants_1.ADDRESS_PREFIX, encoding_1.fromHex(utils_1.computeAddress('0x' + this.getKeys().pub).slice(2)));
18
+ }
19
+ }
20
+ exports.KeyPair = KeyPair;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw0REFBdUQ7QUFDdkQsMkNBQTZDO0FBQzdDLCtDQUFxRDtBQUNyRCw0Q0FBa0Q7QUFFbEQ7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSwrQkFBYTtJQUN4QyxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFVBQVU7UUFDUixPQUFPLG1CQUFRLENBQUMsMEJBQWMsRUFBRSxrQkFBTyxDQUFDLHNCQUFjLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7Q0FDRjtBQVRELDBCQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5UGFpck9wdGlvbnMgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQ29zbW9zS2V5UGFpciB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1jb3Ntb3MnO1xuaW1wb3J0IHsgQUREUkVTU19QUkVGSVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB0b0JlY2gzMiwgZnJvbUhleCB9IGZyb20gJ0Bjb3NtanMvZW5jb2RpbmcnO1xuaW1wb3J0IHsgY29tcHV0ZUFkZHJlc3MgfSBmcm9tICdldGhlcnMvbGliL3V0aWxzJztcblxuLyoqXG4gKiBJc2xtIGtleXMgYW5kIGFkZHJlc3MgbWFuYWdlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBDb3Ntb3NLZXlQYWlyIHtcbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdG9CZWNoMzIoQUREUkVTU19QUkVGSVgsIGZyb21IZXgoY29tcHV0ZUFkZHJlc3MoJzB4JyArIHRoaXMuZ2V0S2V5cygpLnB1Yikuc2xpY2UoMikpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ import { CosmosTransaction, CosmosTransactionBuilder, CosmosTransferBuilder, StakingActivateBuilder, StakingDeactivateBuilder, StakingWithdrawRewardsBuilder } from '@bitgo/abstract-cosmos';
2
+ import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo/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
+ /** @inheritdoc */
17
+ getWalletInitializationBuilder(): void;
18
+ /**
19
+ * Initialize the builder with the given transaction
20
+ *
21
+ * @param {CosmosTransaction | undefined} tx - the transaction used to initialize the builder
22
+ * @param {CosmosTransactionBuilder} builder - the builder to be initialized
23
+ * @returns {CosmosTransactionBuilder} the builder initialized
24
+ */
25
+ protected initializeBuilder<T extends CosmosTransactionBuilder>(tx: CosmosTransaction | undefined, builder: T): T;
26
+ }
27
+ //# 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,EAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,6BAA6B,EAA4C,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB;IAqB3C,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,qBAAqB;IAIjE,kBAAkB;IAClB,yBAAyB,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,sBAAsB;IAIzE,kBAAkB;IAClB,2BAA2B,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,wBAAwB;IAI7E,kBAAkB;IAClB,gCAAgC,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,6BAA6B;IAIvF,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,71 @@
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.TransactionBuilderFactory = void 0;
7
+ const abstract_cosmos_1 = require("@bitgo/abstract-cosmos");
8
+ const sdk_core_1 = require("@bitgo/sdk-core");
9
+ const utils_1 = __importDefault(require("./utils"));
10
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
11
+ constructor(_coinConfig) {
12
+ super(_coinConfig);
13
+ }
14
+ /** @inheritdoc */
15
+ from(raw) {
16
+ const tx = new abstract_cosmos_1.CosmosTransaction(this._coinConfig, utils_1.default);
17
+ tx.enrichTransactionDetailsFromRawTransaction(raw);
18
+ try {
19
+ switch (tx.type) {
20
+ case sdk_core_1.TransactionType.Send:
21
+ return this.getTransferBuilder(tx);
22
+ case sdk_core_1.TransactionType.StakingActivate:
23
+ return this.getStakingActivateBuilder(tx);
24
+ case sdk_core_1.TransactionType.StakingDeactivate:
25
+ return this.getStakingDeactivateBuilder(tx);
26
+ case sdk_core_1.TransactionType.StakingWithdraw:
27
+ return this.getStakingWithdrawRewardsBuilder(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 abstract_cosmos_1.CosmosTransferBuilder(this._coinConfig, utils_1.default));
39
+ }
40
+ /** @inheritdoc */
41
+ getStakingActivateBuilder(tx) {
42
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingActivateBuilder(this._coinConfig, utils_1.default));
43
+ }
44
+ /** @inheritdoc */
45
+ getStakingDeactivateBuilder(tx) {
46
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingDeactivateBuilder(this._coinConfig, utils_1.default));
47
+ }
48
+ /** @inheritdoc */
49
+ getStakingWithdrawRewardsBuilder(tx) {
50
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingWithdrawRewardsBuilder(this._coinConfig, utils_1.default));
51
+ }
52
+ /** @inheritdoc */
53
+ getWalletInitializationBuilder() {
54
+ throw new Error('Method not implemented.');
55
+ }
56
+ /**
57
+ * Initialize the builder with the given transaction
58
+ *
59
+ * @param {CosmosTransaction | undefined} tx - the transaction used to initialize the builder
60
+ * @param {CosmosTransactionBuilder} builder - the builder to be initialized
61
+ * @returns {CosmosTransactionBuilder} the builder initialized
62
+ */
63
+ initializeBuilder(tx, builder) {
64
+ if (tx) {
65
+ builder.initBuilder(tx);
66
+ }
67
+ return builder;
68
+ }
69
+ }
70
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0REFPZ0M7QUFDaEMsOENBQTBHO0FBRTFHLG9EQUFnQztBQUVoQyxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsTUFBTSxFQUFFLEdBQUcsSUFBSSxtQ0FBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQVMsQ0FBQyxDQUFDO1FBQzlELEVBQUUsQ0FBQywwQ0FBMEMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxJQUFJO1lBQ0YsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFO2dCQUNmLEtBQUssMEJBQWUsQ0FBQyxJQUFJO29CQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckMsS0FBSywwQkFBZSxDQUFDLGVBQWU7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLDBCQUFlLENBQUMsaUJBQWlCO29CQUNwQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsS0FBSywwQkFBZSxDQUFDLGVBQWU7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRDtvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUM1RDtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksa0NBQXVCLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hFO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0IsQ0FBQyxFQUFzQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSx1Q0FBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQVMsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix5QkFBeUIsQ0FBQyxFQUFzQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSx3Q0FBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiwyQkFBMkIsQ0FBQyxFQUFzQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSwwQ0FBd0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQ0FBZ0MsQ0FBQyxFQUFzQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSwrQ0FBNkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxpQkFBaUIsQ0FBcUMsRUFBaUMsRUFBRSxPQUFVO1FBQzNHLElBQUksRUFBRSxFQUFFO1lBQ04sT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQWpFRCw4REFpRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb3Ntb3NUcmFuc2FjdGlvbixcbiAgQ29zbW9zVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBDb3Ntb3NUcmFuc2ZlckJ1aWxkZXIsXG4gIFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIsXG4gIFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcixcbiAgU3Rha2luZ1dpdGhkcmF3UmV3YXJkc0J1aWxkZXIsXG59IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1jb3Ntb3MnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBpc2xtVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IENvc21vc1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgdHggPSBuZXcgQ29zbW9zVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgaXNsbVV0aWxzKTtcbiAgICB0eC5lbnJpY2hUcmFuc2FjdGlvbkRldGFpbHNGcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICB0cnkge1xuICAgICAgc3dpdGNoICh0eC50eXBlKSB7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXc6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ1dpdGhkcmF3UmV3YXJkc0J1aWxkZXIodHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogJyArIGUubWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcih0eD86IENvc21vc1RyYW5zYWN0aW9uKTogQ29zbW9zVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IENvc21vc1RyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCBpc2xtVXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBTdGFraW5nQWN0aXZhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgaXNsbVV0aWxzKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcsIGlzbG1VdGlscykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFN0YWtpbmdXaXRoZHJhd1Jld2FyZHNCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCBpc2xtVXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtDb3Ntb3NUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7Q29zbW9zVHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge0Nvc21vc1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgQ29zbW9zVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogQ29zbW9zVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxufVxuIl19
@@ -0,0 +1,44 @@
1
+ /// <reference types="node" />
2
+ import { Coin } from '@cosmjs/stargate';
3
+ import { CosmosUtils } from '@bitgo/abstract-cosmos';
4
+ import { DecodedTxRaw } from '@cosmjs/proto-signing';
5
+ import { Pubkey } from '@cosmjs/amino';
6
+ import { Any } from 'cosmjs-types/google/protobuf/any';
7
+ import { Hash } from 'crypto';
8
+ export declare class IslmUtils extends CosmosUtils {
9
+ /** @inheritdoc */
10
+ isValidAddress(address: string): boolean;
11
+ /** @inheritdoc */
12
+ isValidValidatorAddress(address: string): boolean;
13
+ /** @inheritdoc */
14
+ validateAmount(amount: Coin): void;
15
+ /** @inheritdoc */
16
+ getPublicKeyFromDecodedTx(decodedTx: DecodedTxRaw): string | undefined;
17
+ /**
18
+ * Decodes a single pubkey from ptotobuf `Any` into `Pubkey`.
19
+ * @param {Any} pubkey
20
+ * @returns {Pubkey} the Amino JSON representation (type/value wrapper) of the pubkey
21
+ */
22
+ decodePubkey(pubkey?: Any | null): Pubkey | null;
23
+ /** @inheritdoc */
24
+ getEncodedPubkey(pubkey: string): Any;
25
+ /**
26
+ * Takes a pubkey in the Amino JSON object style (type/value wrapper)
27
+ * and convertes it into a protobuf `Any`.
28
+ * @param {Pubkey} pubkey Amino JSON object style pubkey
29
+ * @returns {Any} pubkey encoded as protobuf `Any`
30
+ */
31
+ encodePubkey(pubkey: Pubkey): Any;
32
+ /**
33
+ * Takes a public key as raw bytes and returns the Amino JSON
34
+ * representation of it (type/value wrapper).
35
+ * @param {Uint8Array} pubkey public key as raw bytes
36
+ * @returns {Any} Amino JSON style pubkey
37
+ */
38
+ encodeEthSecp256k1Pubkey(pubkey: Uint8Array): Pubkey;
39
+ /** @inheritdoc */
40
+ getHashFunction(): Hash;
41
+ }
42
+ declare const islmUtils: CosmosUtils;
43
+ export default islmUtils;
44
+ //# 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,WAAW,EAA6B,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,qBAAa,SAAU,SAAQ,WAAW;IACxC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAUlC,kBAAkB;IAClB,yBAAyB,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS;IAQtE;;;;OAIG;IACH,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAQhD,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAIrC;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAUjC;;;;;OAKG;IACH,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAUpD,kBAAkB;IAClB,eAAe,IAAI,IAAI;CAGxB;AAED,QAAA,MAAM,SAAS,EAAE,WAA6B,CAAC;AAE/C,eAAe,SAAS,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.IslmUtils = void 0;
26
+ const sdk_core_1 = require("@bitgo/sdk-core");
27
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
28
+ const abstract_cosmos_1 = require("@bitgo/abstract-cosmos");
29
+ const constants = __importStar(require("./constants"));
30
+ const encoding_1 = require("@cosmjs/encoding");
31
+ const any_1 = require("cosmjs-types/google/protobuf/any");
32
+ const ethSecp256k1_1 = require("../../resources/types/ethSecp256k1");
33
+ const keccak_1 = __importDefault(require("keccak"));
34
+ class IslmUtils extends abstract_cosmos_1.CosmosUtils {
35
+ /** @inheritdoc */
36
+ isValidAddress(address) {
37
+ return constants.accountAddressRegex.test(address);
38
+ }
39
+ /** @inheritdoc */
40
+ isValidValidatorAddress(address) {
41
+ return constants.validatorAddressRegex.test(address);
42
+ }
43
+ /** @inheritdoc */
44
+ validateAmount(amount) {
45
+ const amountBig = bignumber_js_1.default(amount.amount);
46
+ if (amountBig.isLessThanOrEqualTo(0)) {
47
+ throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid amount: ' + amount.amount);
48
+ }
49
+ if (!constants.validDenoms.find((denom) => denom === amount.denom)) {
50
+ throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid denom: ' + amount.denom);
51
+ }
52
+ }
53
+ /** @inheritdoc */
54
+ getPublicKeyFromDecodedTx(decodedTx) {
55
+ var _a, _b, _c, _d;
56
+ const publicKeyUInt8Array = (_b = (_a = decodedTx.authInfo.signerInfos) === null || _a === void 0 ? void 0 : _a[0].publicKey) === null || _b === void 0 ? void 0 : _b.value;
57
+ if (publicKeyUInt8Array) {
58
+ return encoding_1.toHex(encoding_1.fromBase64((_d = this.decodePubkey((_c = decodedTx.authInfo.signerInfos) === null || _c === void 0 ? void 0 : _c[0].publicKey)) === null || _d === void 0 ? void 0 : _d.value));
59
+ }
60
+ return undefined;
61
+ }
62
+ /**
63
+ * Decodes a single pubkey from ptotobuf `Any` into `Pubkey`.
64
+ * @param {Any} pubkey
65
+ * @returns {Pubkey} the Amino JSON representation (type/value wrapper) of the pubkey
66
+ */
67
+ decodePubkey(pubkey) {
68
+ if (!pubkey || !pubkey.value) {
69
+ return null;
70
+ }
71
+ const { key } = ethSecp256k1_1.PubKey.decode(pubkey.value);
72
+ return this.encodeEthSecp256k1Pubkey(key);
73
+ }
74
+ /** @inheritdoc */
75
+ getEncodedPubkey(pubkey) {
76
+ return this.encodePubkey(this.encodeEthSecp256k1Pubkey(encoding_1.fromHex(pubkey)));
77
+ }
78
+ /**
79
+ * Takes a pubkey in the Amino JSON object style (type/value wrapper)
80
+ * and convertes it into a protobuf `Any`.
81
+ * @param {Pubkey} pubkey Amino JSON object style pubkey
82
+ * @returns {Any} pubkey encoded as protobuf `Any`
83
+ */
84
+ encodePubkey(pubkey) {
85
+ const pubkeyProto = ethSecp256k1_1.PubKey.fromPartial({
86
+ key: encoding_1.fromBase64(pubkey.value),
87
+ });
88
+ return any_1.Any.fromPartial({
89
+ typeUrl: abstract_cosmos_1.PubKeyTypeUrl.ethSecp256k1,
90
+ value: Uint8Array.from(ethSecp256k1_1.PubKey.encode(pubkeyProto).finish()),
91
+ });
92
+ }
93
+ /**
94
+ * Takes a public key as raw bytes and returns the Amino JSON
95
+ * representation of it (type/value wrapper).
96
+ * @param {Uint8Array} pubkey public key as raw bytes
97
+ * @returns {Any} Amino JSON style pubkey
98
+ */
99
+ encodeEthSecp256k1Pubkey(pubkey) {
100
+ if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {
101
+ throw new Error('Public key must be compressed ethSecp256k1, i.e. 33 bytes starting with 0x02 or 0x03');
102
+ }
103
+ return {
104
+ type: abstract_cosmos_1.PubKeyType.ethSecp256k1,
105
+ value: encoding_1.toBase64(pubkey),
106
+ };
107
+ }
108
+ /** @inheritdoc */
109
+ getHashFunction() {
110
+ return keccak_1.default('keccak256');
111
+ }
112
+ }
113
+ exports.IslmUtils = IslmUtils;
114
+ const islmUtils = new IslmUtils();
115
+ exports.default = islmUtils;
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBMEQ7QUFFMUQsZ0VBQXFDO0FBRXJDLDREQUFnRjtBQUNoRix1REFBeUM7QUFFekMsK0NBQXdFO0FBRXhFLDBEQUF1RDtBQUN2RCxxRUFBNEQ7QUFFNUQsb0RBQTRCO0FBRTVCLE1BQWEsU0FBVSxTQUFRLDZCQUFXO0lBQ3hDLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsT0FBZTtRQUM1QixPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1QkFBdUIsQ0FBQyxPQUFlO1FBQ3JDLE9BQU8sU0FBUyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxNQUFZO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLHNCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLElBQUksU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzREFBc0QsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDM0c7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEUsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHFEQUFxRCxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6RztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIseUJBQXlCLENBQUMsU0FBdUI7O1FBQy9DLE1BQU0sbUJBQW1CLEdBQUcsTUFBQSxNQUFBLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVywwQ0FBRyxDQUFDLEVBQUUsU0FBUywwQ0FBRSxLQUFLLENBQUM7UUFDakYsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixPQUFPLGdCQUFLLENBQUMscUJBQVUsQ0FBQyxNQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBQSxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsMENBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQywwQ0FBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ25HO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsTUFBbUI7UUFDOUIsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxxQkFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsa0JBQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLE1BQWM7UUFDekIsTUFBTSxXQUFXLEdBQUcscUJBQU0sQ0FBQyxXQUFXLENBQUM7WUFDckMsR0FBRyxFQUFFLHFCQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLFNBQUcsQ0FBQyxXQUFXLENBQUM7WUFDckIsT0FBTyxFQUFFLCtCQUFhLENBQUMsWUFBWTtZQUNuQyxLQUFLLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxxQkFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM1RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx3QkFBd0IsQ0FBQyxNQUFrQjtRQUN6QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDdEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRkFBc0YsQ0FBQyxDQUFDO1NBQ3pHO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSw0QkFBVSxDQUFDLFlBQVk7WUFDN0IsS0FBSyxFQUFFLG1CQUFRLENBQUMsTUFBTSxDQUFDO1NBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGVBQWU7UUFDYixPQUFPLGdCQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBckZELDhCQXFGQztBQUVELE1BQU0sU0FBUyxHQUFnQixJQUFJLFNBQVMsRUFBRSxDQUFDO0FBRS9DLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IENvaW4gfSBmcm9tICdAY29zbWpzL3N0YXJnYXRlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuaW1wb3J0IHsgQ29zbW9zVXRpbHMsIFB1YktleVR5cGUsIFB1YktleVR5cGVVcmwgfSBmcm9tICdAYml0Z28vYWJzdHJhY3QtY29zbW9zJztcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEZWNvZGVkVHhSYXcgfSBmcm9tICdAY29zbWpzL3Byb3RvLXNpZ25pbmcnO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQsIHRvSGV4LCBmcm9tSGV4IH0gZnJvbSAnQGNvc21qcy9lbmNvZGluZyc7XG5pbXBvcnQgeyBQdWJrZXkgfSBmcm9tICdAY29zbWpzL2FtaW5vJztcbmltcG9ydCB7IEFueSB9IGZyb20gJ2Nvc21qcy10eXBlcy9nb29nbGUvcHJvdG9idWYvYW55JztcbmltcG9ydCB7IFB1YktleSB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy90eXBlcy9ldGhTZWNwMjU2azEnO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgS2VjY2FrIGZyb20gJ2tlY2Nhayc7XG5cbmV4cG9ydCBjbGFzcyBJc2xtVXRpbHMgZXh0ZW5kcyBDb3Ntb3NVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29uc3RhbnRzLmFjY291bnRBZGRyZXNzUmVnZXgudGVzdChhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVmFsaWRhdG9yQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29uc3RhbnRzLnZhbGlkYXRvckFkZHJlc3NSZWdleC50ZXN0KGFkZHJlc3MpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQW1vdW50KGFtb3VudDogQ29pbik6IHZvaWQge1xuICAgIGNvbnN0IGFtb3VudEJpZyA9IEJpZ051bWJlcihhbW91bnQuYW1vdW50KTtcbiAgICBpZiAoYW1vdW50QmlnLmlzTGVzc1RoYW5PckVxdWFsVG8oMCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb25CdWlsZGVyOiB2YWxpZGF0ZUFtb3VudDogSW52YWxpZCBhbW91bnQ6ICcgKyBhbW91bnQuYW1vdW50KTtcbiAgICB9XG4gICAgaWYgKCFjb25zdGFudHMudmFsaWREZW5vbXMuZmluZCgoZGVub20pID0+IGRlbm9tID09PSBhbW91bnQuZGVub20pKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogdmFsaWRhdGVBbW91bnQ6IEludmFsaWQgZGVub206ICcgKyBhbW91bnQuZGVub20pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRQdWJsaWNLZXlGcm9tRGVjb2RlZFR4KGRlY29kZWRUeDogRGVjb2RlZFR4UmF3KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwdWJsaWNLZXlVSW50OEFycmF5ID0gZGVjb2RlZFR4LmF1dGhJbmZvLnNpZ25lckluZm9zPy5bMF0ucHVibGljS2V5Py52YWx1ZTtcbiAgICBpZiAocHVibGljS2V5VUludDhBcnJheSkge1xuICAgICAgcmV0dXJuIHRvSGV4KGZyb21CYXNlNjQodGhpcy5kZWNvZGVQdWJrZXkoZGVjb2RlZFR4LmF1dGhJbmZvLnNpZ25lckluZm9zPy5bMF0ucHVibGljS2V5KT8udmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgc2luZ2xlIHB1YmtleSBmcm9tIHB0b3RvYnVmIGBBbnlgIGludG8gYFB1YmtleWAuXG4gICAqIEBwYXJhbSB7QW55fSBwdWJrZXlcbiAgICogQHJldHVybnMge1B1YmtleX0gdGhlIEFtaW5vIEpTT04gcmVwcmVzZW50YXRpb24gKHR5cGUvdmFsdWUgd3JhcHBlcikgb2YgdGhlIHB1YmtleVxuICAgKi9cbiAgZGVjb2RlUHVia2V5KHB1YmtleT86IEFueSB8IG51bGwpOiBQdWJrZXkgfCBudWxsIHtcbiAgICBpZiAoIXB1YmtleSB8fCAhcHVia2V5LnZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBrZXkgfSA9IFB1YktleS5kZWNvZGUocHVia2V5LnZhbHVlKTtcbiAgICByZXR1cm4gdGhpcy5lbmNvZGVFdGhTZWNwMjU2azFQdWJrZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRFbmNvZGVkUHVia2V5KHB1YmtleTogc3RyaW5nKTogQW55IHtcbiAgICByZXR1cm4gdGhpcy5lbmNvZGVQdWJrZXkodGhpcy5lbmNvZGVFdGhTZWNwMjU2azFQdWJrZXkoZnJvbUhleChwdWJrZXkpKSk7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSBwdWJrZXkgaW4gdGhlIEFtaW5vIEpTT04gb2JqZWN0IHN0eWxlICh0eXBlL3ZhbHVlIHdyYXBwZXIpXG4gICAqIGFuZCBjb252ZXJ0ZXMgaXQgaW50byBhIHByb3RvYnVmIGBBbnlgLlxuICAgKiBAcGFyYW0ge1B1YmtleX0gcHVia2V5IEFtaW5vIEpTT04gb2JqZWN0IHN0eWxlIHB1YmtleVxuICAgKiBAcmV0dXJucyB7QW55fSBwdWJrZXkgZW5jb2RlZCBhcyBwcm90b2J1ZiBgQW55YFxuICAgKi9cbiAgZW5jb2RlUHVia2V5KHB1YmtleTogUHVia2V5KTogQW55IHtcbiAgICBjb25zdCBwdWJrZXlQcm90byA9IFB1YktleS5mcm9tUGFydGlhbCh7XG4gICAgICBrZXk6IGZyb21CYXNlNjQocHVia2V5LnZhbHVlKSxcbiAgICB9KTtcbiAgICByZXR1cm4gQW55LmZyb21QYXJ0aWFsKHtcbiAgICAgIHR5cGVVcmw6IFB1YktleVR5cGVVcmwuZXRoU2VjcDI1NmsxLFxuICAgICAgdmFsdWU6IFVpbnQ4QXJyYXkuZnJvbShQdWJLZXkuZW5jb2RlKHB1YmtleVByb3RvKS5maW5pc2goKSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSBwdWJsaWMga2V5IGFzIHJhdyBieXRlcyBhbmQgcmV0dXJucyB0aGUgQW1pbm8gSlNPTlxuICAgKiByZXByZXNlbnRhdGlvbiBvZiBpdCAodHlwZS92YWx1ZSB3cmFwcGVyKS5cbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBwdWJrZXkgcHVibGljIGtleSBhcyByYXcgYnl0ZXNcbiAgICogQHJldHVybnMge0FueX0gQW1pbm8gSlNPTiBzdHlsZSBwdWJrZXlcbiAgICovXG4gIGVuY29kZUV0aFNlY3AyNTZrMVB1YmtleShwdWJrZXk6IFVpbnQ4QXJyYXkpOiBQdWJrZXkge1xuICAgIGlmIChwdWJrZXkubGVuZ3RoICE9PSAzMyB8fCAocHVia2V5WzBdICE9PSAweDAyICYmIHB1YmtleVswXSAhPT0gMHgwMykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHVibGljIGtleSBtdXN0IGJlIGNvbXByZXNzZWQgZXRoU2VjcDI1NmsxLCBpLmUuIDMzIGJ5dGVzIHN0YXJ0aW5nIHdpdGggMHgwMiBvciAweDAzJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBQdWJLZXlUeXBlLmV0aFNlY3AyNTZrMSxcbiAgICAgIHZhbHVlOiB0b0Jhc2U2NChwdWJrZXkpLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0SGFzaEZ1bmN0aW9uKCk6IEhhc2gge1xuICAgIHJldHVybiBLZWNjYWsoJ2tlY2NhazI1NicpO1xuICB9XG59XG5cbmNvbnN0IGlzbG1VdGlsczogQ29zbW9zVXRpbHMgPSBuZXcgSXNsbVV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGlzbG1VdGlscztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { BitGoBase } from '@bitgo/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,iBAAiB,CAAC;AAI5C,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 islm_1 = require("./islm");
5
+ const tislm_1 = require("./tislm");
6
+ const register = (sdk) => {
7
+ sdk.register('islm', islm_1.Islm.createInstance);
8
+ sdk.register('tislm', tislm_1.Tislm.createInstance);
9
+ };
10
+ exports.register = register;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBQzlCLG1DQUFnQztBQUV6QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IElzbG0gfSBmcm9tICcuL2lzbG0nO1xuaW1wb3J0IHsgVGlzbG0gfSBmcm9tICcuL3Rpc2xtJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcignaXNsbScsIElzbG0uY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3Rpc2xtJywgVGlzbG0uY3JlYXRlSW5zdGFuY2UpO1xufTtcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Testnet Islm
3
+ *
4
+ * @format
5
+ */
6
+ import { BaseCoin, BitGoBase } from '@bitgo/sdk-core';
7
+ import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics';
8
+ import { Islm } from './islm';
9
+ export declare class Tislm extends Islm {
10
+ protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
11
+ protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
12
+ static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
13
+ }
14
+ //# sourceMappingURL=tislm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tislm.d.ts","sourceRoot":"","sources":["../../src/tislm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,KAAM,SAAQ,IAAI;IAC7B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;CAG3F"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tislm = void 0;
4
+ const islm_1 = require("./islm");
5
+ class Tislm extends islm_1.Islm {
6
+ constructor(bitgo, staticsCoin) {
7
+ super(bitgo, staticsCoin);
8
+ if (!staticsCoin) {
9
+ throw new Error('missing required constructor parameter staticsCoin');
10
+ }
11
+ this._staticsCoin = staticsCoin;
12
+ }
13
+ static createInstance(bitgo, staticsCoin) {
14
+ return new Tislm(bitgo, staticsCoin);
15
+ }
16
+ }
17
+ exports.Tislm = Tislm;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlzbG0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGlzbG0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsaUNBQThCO0FBRTlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFFN0IsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFmRCxzQkFlQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVzdG5ldCBJc2xtXG4gKlxuICogQGZvcm1hdFxuICovXG5pbXBvcnQgeyBCYXNlQ29pbiwgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IElzbG0gfSBmcm9tICcuL2lzbG0nO1xuXG5leHBvcnQgY2xhc3MgVGlzbG0gZXh0ZW5kcyBJc2xtIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0aWNzQ29pbjogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG5cbiAgICBpZiAoIXN0YXRpY3NDb2luKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgY29uc3RydWN0b3IgcGFyYW1ldGVyIHN0YXRpY3NDb2luJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGljc0NvaW4gPSBzdGF0aWNzQ29pbjtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBUaXNsbShiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG59XG4iXX0=
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@bitgo/sdk-coin-islm",
3
+ "version": "1.1.0",
4
+ "description": "BitGo SDK coin library for Islm",
5
+ "main": "./dist/src/index.js",
6
+ "types": "./dist/src/index.d.ts",
7
+ "scripts": {
8
+ "build": "yarn tsc --build --incremental --verbose .",
9
+ "fmt": "prettier --write .",
10
+ "check-fmt": "prettier --check .",
11
+ "clean": "rm -r ./dist",
12
+ "lint": "eslint --quiet .",
13
+ "prepare": "npm run build",
14
+ "test": "npm run coverage",
15
+ "coverage": "nyc -- npm run unit-test",
16
+ "unit-test": "mocha"
17
+ },
18
+ "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
+ "license": "MIT",
20
+ "engines": {
21
+ "node": ">=16 <19"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/BitGo/BitGoJS.git",
26
+ "directory": "modules/sdk-coin-islm"
27
+ },
28
+ "lint-staged": {
29
+ "*.{js,ts}": [
30
+ "yarn prettier --write",
31
+ "yarn eslint --fix"
32
+ ]
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "nyc": {
38
+ "extension": [
39
+ ".ts"
40
+ ]
41
+ },
42
+ "dependencies": {
43
+ "@bitgo/abstract-cosmos": "^1.7.0",
44
+ "@bitgo/sdk-core": "^8.25.0",
45
+ "@bitgo/statics": "^28.0.0",
46
+ "@cosmjs/amino": "^0.29.5",
47
+ "@cosmjs/encoding": "^0.29.5",
48
+ "@cosmjs/proto-signing": "^0.29.5",
49
+ "@cosmjs/stargate": "^0.29.5",
50
+ "bignumber.js": "^9.1.1",
51
+ "cosmjs-types": "^0.6.1",
52
+ "ethers": "^5.7.2",
53
+ "keccak": "3.0.3",
54
+ "protobufjs": "^7.2.4"
55
+ },
56
+ "devDependencies": {
57
+ "@bitgo/sdk-api": "^1.23.0",
58
+ "@bitgo/sdk-test": "^1.2.42"
59
+ },
60
+ "gitHead": "53fc52743898243d169410e10f14681358d4c4b8"
61
+ }
@@ -0,0 +1,15 @@
1
+ # Resources
2
+
3
+ This directory contains external logic required to handle signing/validation/address derivation for
4
+ a specific coin.
5
+
6
+ Typically, this manifests as a smaller snippet of code from a larger codebase, of which, this
7
+ library only requires a small portion of.
8
+
9
+ ---
10
+
11
+ ## ISLM Resources
12
+
13
+ Haqq Network (Islamic Coin) doesn't utilize the cosmos default `secp256k1` PubKey type & utilizes as different PubKey type `ethSecp256k1` exposed by ethermint. The protobuf files for `ethSecp256k1` are defined here : https://github.com/evmos/ethermint/blob/main/proto/ethermint/crypto/v1/ethsecp256k1/keys.proto
14
+
15
+ This directory contains the generated TypeScript types required, and also contains the `.proto` files used to generate them.
@@ -0,0 +1,23 @@
1
+ syntax = "proto3";
2
+ package ethermint.crypto.v1.ethsecp256k1;
3
+
4
+ import "gogoproto/gogo.proto";
5
+
6
+ option go_package = "github.com/evmos/ethermint/crypto/ethsecp256k1";
7
+
8
+ // PubKey defines a type alias for an ecdsa.PublicKey that implements
9
+ // Tendermint's PubKey interface. It represents the 33-byte compressed public
10
+ // key format.
11
+ message PubKey {
12
+ option (gogoproto.goproto_stringer) = false;
13
+
14
+ // key is the public key in byte form
15
+ bytes key = 1;
16
+ }
17
+
18
+ // PrivKey defines a type alias for an ecdsa.PrivateKey that implements
19
+ // Tendermint's PrivateKey interface.
20
+ message PrivKey {
21
+ // key is the private key in byte form
22
+ bytes key = 1;
23
+ }