@bitgo-beta/sdk-coin-cosmos 1.0.1-alpha.7 → 1.0.1-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 1.2.0 (2025-07-25)
7
+
8
+ ### Features
9
+
10
+ - add sdk-coin-cosmos skeleton ([4d7fd4a](https://github.com/BitGo/BitGoJS/commit/4d7fd4ae10417c063e2ddc9da37ba44dd408fdb8))
11
+
6
12
  # 1.1.0 (2025-07-23)
7
13
 
8
14
  ### Features
@@ -1,11 +1,35 @@
1
1
  import { BaseCoin, BitGoBase } from '@bitgo-beta/sdk-core';
2
- import { CosmosCoin } from '@bitgo-beta/abstract-cosmos';
2
+ import { CosmosCoin, GasAmountDetails, CosmosKeyPair } from '@bitgo-beta/abstract-cosmos';
3
+ import { BaseCoin as StaticsBaseCoin, CosmosNetwork } from '@bitgo-beta/statics';
4
+ import { TransactionBuilderFactory } from './lib';
3
5
  /**
4
6
  * Shared Cosmos coin implementation that uses configuration from statics
5
7
  * instead of requiring individual coin modules
6
8
  */
7
9
  export declare class CosmosSharedCoin extends CosmosCoin {
8
- protected constructor(bitgo: BitGoBase);
9
- static createInstance(bitgo: BitGoBase): BaseCoin;
10
+ private readonly _network;
11
+ protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
12
+ static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
13
+ /** @inheritDoc **/
14
+ getBaseFactor(): number;
15
+ /** @inheritDoc **/
16
+ getBuilder(): TransactionBuilderFactory;
17
+ /** @inheritDoc **/
18
+ isValidAddress(address: string): boolean;
19
+ /** @inheritDoc **/
20
+ getDenomination(): string;
21
+ /** @inheritDoc **/
22
+ getGasAmountDetails(): GasAmountDetails;
23
+ /**
24
+ * Get the network configuration for this coin
25
+ * @returns {CosmosNetwork} The network configuration
26
+ */
27
+ getNetwork(): CosmosNetwork;
28
+ /** @inheritDoc **/
29
+ getKeyPair(publicKey: string): CosmosKeyPair;
30
+ /** @inheritDoc **/
31
+ getAddressFromPublicKey(pubKey: string): string;
32
+ /** @inheritDoc **/
33
+ protected getPublicNodeUrl(): string;
10
34
  }
11
35
  //# sourceMappingURL=cosmosSharedCoin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosmosSharedCoin.d.ts","sourceRoot":"","sources":["../../src/cosmosSharedCoin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,SAAS,aAAa,KAAK,EAAE,SAAS;IAItC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;CAGlD"}
1
+ {"version":3,"file":"cosmosSharedCoin.d.ts","sourceRoot":"","sources":["../../src/cosmosSharedCoin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAU,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAkB,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAElE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAEzC,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAgB/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,mBAAmB;IACnB,aAAa,IAAI,MAAM;IAIvB,mBAAmB;IACnB,UAAU,IAAI,yBAAyB;IAIvC,mBAAmB;IACnB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKxC,mBAAmB;IACnB,eAAe,IAAI,MAAM;IAIzB,mBAAmB;IACnB,mBAAmB,IAAI,gBAAgB;IAOvC;;;OAGG;IACH,UAAU,IAAI,aAAa;IAI3B,mBAAmB;IACnB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAI5C,mBAAmB;IACnB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK/C,mBAAmB;IACnB,SAAS,CAAC,gBAAgB,IAAI,MAAM;CAOrC"}
@@ -1,18 +1,81 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.CosmosSharedCoin = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
4
9
  const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
10
+ const lib_1 = require("./lib");
5
11
  /**
6
12
  * Shared Cosmos coin implementation that uses configuration from statics
7
13
  * instead of requiring individual coin modules
8
14
  */
9
15
  class CosmosSharedCoin extends abstract_cosmos_1.CosmosCoin {
10
- constructor(bitgo) {
11
- super(bitgo);
16
+ constructor(bitgo, staticsCoin) {
17
+ super(bitgo, staticsCoin);
18
+ if (!staticsCoin) {
19
+ throw new Error('missing required constructor parameter staticsCoin');
20
+ }
21
+ // Get the network configuration from statics
22
+ const network = staticsCoin.network;
23
+ if (!network || !network.addressPrefix || !network.validatorPrefix) {
24
+ throw new Error('Invalid network configuration: missing required Cosmos network parameters');
25
+ }
26
+ this._network = network;
12
27
  }
13
- static createInstance(bitgo) {
14
- return new abstract_cosmos_1.CosmosCoin(bitgo);
28
+ static createInstance(bitgo, staticsCoin) {
29
+ return new CosmosSharedCoin(bitgo, staticsCoin);
30
+ }
31
+ /** @inheritDoc **/
32
+ getBaseFactor() {
33
+ return Math.pow(10, this._staticsCoin.decimalPlaces);
34
+ }
35
+ /** @inheritDoc **/
36
+ getBuilder() {
37
+ return new lib_1.TransactionBuilderFactory(this._staticsCoin);
38
+ }
39
+ /** @inheritDoc **/
40
+ isValidAddress(address) {
41
+ const utils = new lib_1.Utils(this._network);
42
+ return utils.isValidAddress(address) || utils.isValidValidatorAddress(address);
43
+ }
44
+ /** @inheritDoc **/
45
+ getDenomination() {
46
+ return this._network.denom;
47
+ }
48
+ /** @inheritDoc **/
49
+ getGasAmountDetails() {
50
+ return {
51
+ gasAmount: this._network.gasAmount,
52
+ gasLimit: this._network.gasLimit,
53
+ };
54
+ }
55
+ /**
56
+ * Get the network configuration for this coin
57
+ * @returns {CosmosNetwork} The network configuration
58
+ */
59
+ getNetwork() {
60
+ return this._network;
61
+ }
62
+ /** @inheritDoc **/
63
+ getKeyPair(publicKey) {
64
+ return new lib_1.KeyPair({ pub: publicKey }, this._staticsCoin);
65
+ }
66
+ /** @inheritDoc **/
67
+ getAddressFromPublicKey(pubKey) {
68
+ const keyPair = new lib_1.KeyPair({ pub: pubKey }, this._staticsCoin);
69
+ return keyPair.getAddress();
70
+ }
71
+ /** @inheritDoc **/
72
+ getPublicNodeUrl() {
73
+ const family = this.getFamily();
74
+ const env = this.bitgo.getEnv();
75
+ const cosmosConfig = sdk_core_1.common.Environments[env]?.cosmos;
76
+ (0, assert_1.default)(cosmosConfig?.[family]?.nodeUrl, `env config is missing for ${family} in ${env}`);
77
+ return cosmosConfig[family].nodeUrl;
15
78
  }
16
79
  }
17
80
  exports.CosmosSharedCoin = CosmosSharedCoin;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zU2hhcmVkQ29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3Ntb3NTaGFyZWRDb2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlFQUF5RDtBQUV6RDs7O0dBR0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLDRCQUFVO0lBQzlDLFlBQXNCLEtBQWdCO1FBQ3BDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCO1FBQ3BDLE9BQU8sSUFBSSw0QkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQVJELDRDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENvc21vc0NvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1jb3Ntb3MnO1xuXG4vKipcbiAqIFNoYXJlZCBDb3Ntb3MgY29pbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgY29uZmlndXJhdGlvbiBmcm9tIHN0YXRpY3NcbiAqIGluc3RlYWQgb2YgcmVxdWlyaW5nIGluZGl2aWR1YWwgY29pbiBtb2R1bGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBDb3Ntb3NTaGFyZWRDb2luIGV4dGVuZHMgQ29zbW9zQ29pbiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlKSB7XG4gICAgc3VwZXIoYml0Z28pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBDb3Ntb3NDb2luKGJpdGdvKTtcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zU2hhcmVkQ29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3Ntb3NTaGFyZWRDb2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixtREFBbUU7QUFDbkUsaUVBQTBGO0FBRTFGLCtCQUFrRTtBQUVsRTs7O0dBR0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLDRCQUFVO0lBRzlDLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQXdCLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkUsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsVUFBVTtRQUNSLE9BQU8sSUFBSSwrQkFBeUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixjQUFjLENBQUMsT0FBZTtRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsbUJBQW1CO1FBQ2pCLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO1lBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7U0FDakMsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsVUFBVSxDQUFDLFNBQWlCO1FBQzFCLE9BQU8sSUFBSSxhQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsdUJBQXVCLENBQUMsTUFBYztRQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsT0FBTyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQjtJQUNULGdCQUFnQjtRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFlBQVksR0FBRyxpQkFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDdEQsSUFBQSxnQkFBTSxFQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQS9FRCw0Q0ErRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgQml0R29CYXNlLCBjb21tb24gfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDb3Ntb3NDb2luLCBHYXNBbW91bnREZXRhaWxzLCBDb3Ntb3NLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtY29zbW9zJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29zbW9zTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgS2V5UGFpciwgVXRpbHMsIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2xpYic7XG5cbi8qKlxuICogU2hhcmVkIENvc21vcyBjb2luIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyBjb25maWd1cmF0aW9uIGZyb20gc3RhdGljc1xuICogaW5zdGVhZCBvZiByZXF1aXJpbmcgaW5kaXZpZHVhbCBjb2luIG1vZHVsZXNcbiAqL1xuZXhwb3J0IGNsYXNzIENvc21vc1NoYXJlZENvaW4gZXh0ZW5kcyBDb3Ntb3NDb2luIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV0d29yazogQ29zbW9zTmV0d29yaztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiBmcm9tIHN0YXRpY3NcbiAgICBjb25zdCBuZXR3b3JrID0gc3RhdGljc0NvaW4ubmV0d29yayBhcyBDb3Ntb3NOZXR3b3JrO1xuICAgIGlmICghbmV0d29yayB8fCAhbmV0d29yay5hZGRyZXNzUHJlZml4IHx8ICFuZXR3b3JrLnZhbGlkYXRvclByZWZpeCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG5ldHdvcmsgY29uZmlndXJhdGlvbjogbWlzc2luZyByZXF1aXJlZCBDb3Ntb3MgbmV0d29yayBwYXJhbWV0ZXJzJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fbmV0d29yayA9IG5ldHdvcms7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgQ29zbW9zU2hhcmVkQ29pbihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLl9zdGF0aWNzQ29pbi5kZWNpbWFsUGxhY2VzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqKi9cbiAgZ2V0QnVpbGRlcigpOiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkodGhpcy5fc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB1dGlscyA9IG5ldyBVdGlscyh0aGlzLl9uZXR3b3JrKTtcbiAgICByZXR1cm4gdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykgfHwgdXRpbHMuaXNWYWxpZFZhbGlkYXRvckFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKiovXG4gIGdldERlbm9taW5hdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uZXR3b3JrLmRlbm9tO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBnZXRHYXNBbW91bnREZXRhaWxzKCk6IEdhc0Ftb3VudERldGFpbHMge1xuICAgIHJldHVybiB7XG4gICAgICBnYXNBbW91bnQ6IHRoaXMuX25ldHdvcmsuZ2FzQW1vdW50LFxuICAgICAgZ2FzTGltaXQ6IHRoaXMuX25ldHdvcmsuZ2FzTGltaXQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBjb2luXG4gICAqIEByZXR1cm5zIHtDb3Ntb3NOZXR3b3JrfSBUaGUgbmV0d29yayBjb25maWd1cmF0aW9uXG4gICAqL1xuICBnZXROZXR3b3JrKCk6IENvc21vc05ldHdvcmsge1xuICAgIHJldHVybiB0aGlzLl9uZXR3b3JrO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBnZXRLZXlQYWlyKHB1YmxpY0tleTogc3RyaW5nKTogQ29zbW9zS2V5UGFpciB7XG4gICAgcmV0dXJuIG5ldyBLZXlQYWlyKHsgcHViOiBwdWJsaWNLZXkgfSwgdGhpcy5fc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleShwdWJLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBwdWJLZXkgfSwgdGhpcy5fc3RhdGljc0NvaW4pO1xuICAgIHJldHVybiBrZXlQYWlyLmdldEFkZHJlc3MoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqKi9cbiAgcHJvdGVjdGVkIGdldFB1YmxpY05vZGVVcmwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBmYW1pbHkgPSB0aGlzLmdldEZhbWlseSgpO1xuICAgIGNvbnN0IGVudiA9IHRoaXMuYml0Z28uZ2V0RW52KCk7XG4gICAgY29uc3QgY29zbW9zQ29uZmlnID0gY29tbW9uLkVudmlyb25tZW50c1tlbnZdPy5jb3Ntb3M7XG4gICAgYXNzZXJ0KGNvc21vc0NvbmZpZz8uW2ZhbWlseV0/Lm5vZGVVcmwsIGBlbnYgY29uZmlnIGlzIG1pc3NpbmcgZm9yICR7ZmFtaWx5fSBpbiAke2Vudn1gKTtcbiAgICByZXR1cm4gY29zbW9zQ29uZmlnW2ZhbWlseV0ubm9kZVVybDtcbiAgfVxufVxuIl19
@@ -1,2 +1,6 @@
1
1
  export { CosmosSharedCoin } from './cosmosSharedCoin';
2
+ export { register } from './register';
3
+ export { KeyPair } from './lib/keyPair';
4
+ export { Utils } from './lib/utils';
5
+ export { TransactionBuilderFactory } from './lib/transactionBuilderFactory';
2
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CosmosSharedCoin = void 0;
3
+ exports.TransactionBuilderFactory = exports.Utils = exports.KeyPair = exports.register = exports.CosmosSharedCoin = void 0;
4
4
  var cosmosSharedCoin_1 = require("./cosmosSharedCoin");
5
5
  Object.defineProperty(exports, "CosmosSharedCoin", { enumerable: true, get: function () { return cosmosSharedCoin_1.CosmosSharedCoin; } });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQXNEO0FBQTdDLG9IQUFBLGdCQUFnQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29zbW9zU2hhcmVkQ29pbiB9IGZyb20gJy4vY29zbW9zU2hhcmVkQ29pbic7XG4iXX0=
6
+ var register_1 = require("./register");
7
+ Object.defineProperty(exports, "register", { enumerable: true, get: function () { return register_1.register; } });
8
+ var keyPair_1 = require("./lib/keyPair");
9
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
10
+ var utils_1 = require("./lib/utils");
11
+ Object.defineProperty(exports, "Utils", { enumerable: true, get: function () { return utils_1.Utils; } });
12
+ var transactionBuilderFactory_1 = require("./lib/transactionBuilderFactory");
13
+ Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQXNEO0FBQTdDLG9IQUFBLGdCQUFnQixPQUFBO0FBQ3pCLHVDQUFzQztBQUE3QixvR0FBQSxRQUFRLE9BQUE7QUFDakIseUNBQXdDO0FBQS9CLGtHQUFBLE9BQU8sT0FBQTtBQUNoQixxQ0FBb0M7QUFBM0IsOEZBQUEsS0FBSyxPQUFBO0FBQ2QsNkVBQTRFO0FBQW5FLHNJQUFBLHlCQUF5QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29zbW9zU2hhcmVkQ29pbiB9IGZyb20gJy4vY29zbW9zU2hhcmVkQ29pbic7XG5leHBvcnQgeyByZWdpc3RlciB9IGZyb20gJy4vcmVnaXN0ZXInO1xuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4vbGliL2tleVBhaXInO1xuZXhwb3J0IHsgVXRpbHMgfSBmcm9tICcuL2xpYi91dGlscyc7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export { CosmosTransaction as Transaction, CosmosTransactionBuilder as TransactionBuilder, } from '@bitgo-beta/abstract-cosmos';
2
+ export { KeyPair } from './keyPair';
3
+ export { TransactionBuilderFactory } from './transactionBuilderFactory';
4
+ export { Utils } from './utils';
5
+ //# 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,EACL,iBAAiB,IAAI,WAAW,EAChC,wBAAwB,IAAI,kBAAkB,GAC/C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Utils = exports.TransactionBuilderFactory = exports.KeyPair = exports.TransactionBuilder = exports.Transaction = void 0;
4
+ var abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
5
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return abstract_cosmos_1.CosmosTransaction; } });
6
+ Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return abstract_cosmos_1.CosmosTransactionBuilder; } });
7
+ var keyPair_1 = require("./keyPair");
8
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
9
+ var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
10
+ Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
11
+ var utils_1 = require("./utils");
12
+ Object.defineProperty(exports, "Utils", { enumerable: true, get: function () { return utils_1.Utils; } });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUdxQztBQUZuQyw4R0FBQSxpQkFBaUIsT0FBZTtBQUNoQyxxSEFBQSx3QkFBd0IsT0FBc0I7QUFFaEQscUNBQW9DO0FBQTNCLGtHQUFBLE9BQU8sT0FBQTtBQUNoQix5RUFBd0U7QUFBL0Qsc0lBQUEseUJBQXlCLE9BQUE7QUFDbEMsaUNBQWdDO0FBQXZCLDhGQUFBLEtBQUssT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIENvc21vc1RyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uLFxuICBDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXIgYXMgVHJhbnNhY3Rpb25CdWlsZGVyLFxufSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1jb3Ntb3MnO1xuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCB7IFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { KeyPairOptions } from '@bitgo-beta/sdk-core';
2
+ import { CosmosKeyPair } from '@bitgo-beta/abstract-cosmos';
3
+ import { BaseCoin } from '@bitgo-beta/statics';
4
+ /**
5
+ * Cosmos keys and address management for the shared Cosmos SDK.
6
+ */
7
+ export declare class KeyPair extends CosmosKeyPair {
8
+ private readonly _coin?;
9
+ /**
10
+ * Public constructor. By default, creates a key pair with a random master seed.
11
+ *
12
+ * @param source Either a master seed, a private key (extended or raw), or a public key
13
+ * @param coin The coin configuration for this key pair
14
+ */
15
+ constructor(source?: KeyPairOptions, coin?: Readonly<BaseCoin>);
16
+ /** @inheritdoc */
17
+ getAddress(): string;
18
+ }
19
+ //# 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,sBAAsB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,qBAAa,OAAQ,SAAQ,aAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAqB;IAE5C;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAK9D,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAqBrB"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyPair = void 0;
4
+ const amino_1 = require("@cosmjs/amino");
5
+ const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
6
+ /**
7
+ * Cosmos keys and address management for the shared Cosmos SDK.
8
+ */
9
+ class KeyPair extends abstract_cosmos_1.CosmosKeyPair {
10
+ /**
11
+ * Public constructor. By default, creates a key pair with a random master seed.
12
+ *
13
+ * @param source Either a master seed, a private key (extended or raw), or a public key
14
+ * @param coin The coin configuration for this key pair
15
+ */
16
+ constructor(source, coin) {
17
+ super(source);
18
+ this._coin = coin;
19
+ }
20
+ /** @inheritdoc */
21
+ getAddress() {
22
+ if (!this._coin) {
23
+ throw new Error('Coin configuration is required to derive address');
24
+ }
25
+ const network = this._coin.network;
26
+ if (!network || !network.addressPrefix) {
27
+ throw new Error('Invalid network configuration: missing addressPrefix');
28
+ }
29
+ const addressPrefix = network.addressPrefix;
30
+ const base64String = Buffer.from(this.getKeys().pub.slice(0, 66), 'hex').toString('base64');
31
+ return (0, amino_1.pubkeyToAddress)({
32
+ type: 'tendermint/PubKeySecp256k1',
33
+ value: base64String,
34
+ }, addressPrefix);
35
+ }
36
+ }
37
+ exports.KeyPair = KeyPair;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBZ0Q7QUFDaEQsaUVBQTREO0FBRzVEOztHQUVHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsK0JBQWE7SUFHeEM7Ozs7O09BS0c7SUFDSCxZQUFZLE1BQXVCLEVBQUUsSUFBeUI7UUFDNUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBd0IsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUYsT0FBTyxJQUFBLHVCQUFlLEVBQ3BCO1lBQ0UsSUFBSSxFQUFFLDRCQUE0QjtZQUNsQyxLQUFLLEVBQUUsWUFBWTtTQUNwQixFQUNELGFBQWEsQ0FDZCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcENELDBCQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleVBhaXJPcHRpb25zIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgcHVia2V5VG9BZGRyZXNzIH0gZnJvbSAnQGNvc21qcy9hbWlubyc7XG5pbXBvcnQgeyBDb3Ntb3NLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtY29zbW9zJztcbmltcG9ydCB7IEJhc2VDb2luLCBDb3Ntb3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbi8qKlxuICogQ29zbW9zIGtleXMgYW5kIGFkZHJlc3MgbWFuYWdlbWVudCBmb3IgdGhlIHNoYXJlZCBDb3Ntb3MgU0RLLlxuICovXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIENvc21vc0tleVBhaXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb2luPzogUmVhZG9ubHk8QmFzZUNvaW4+O1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5IChleHRlbmRlZCBvciByYXcpLCBvciBhIHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIGNvaW4gVGhlIGNvaW4gY29uZmlndXJhdGlvbiBmb3IgdGhpcyBrZXkgcGFpclxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMsIGNvaW4/OiBSZWFkb25seTxCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICAgIHRoaXMuX2NvaW4gPSBjb2luO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX2NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29pbiBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIHRvIGRlcml2ZSBhZGRyZXNzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV0d29yayA9IHRoaXMuX2NvaW4ubmV0d29yayBhcyBDb3Ntb3NOZXR3b3JrO1xuICAgIGlmICghbmV0d29yayB8fCAhbmV0d29yay5hZGRyZXNzUHJlZml4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbmV0d29yayBjb25maWd1cmF0aW9uOiBtaXNzaW5nIGFkZHJlc3NQcmVmaXgnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhZGRyZXNzUHJlZml4ID0gbmV0d29yay5hZGRyZXNzUHJlZml4O1xuICAgIGNvbnN0IGJhc2U2NFN0cmluZyA9IEJ1ZmZlci5mcm9tKHRoaXMuZ2V0S2V5cygpLnB1Yi5zbGljZSgwLCA2NiksICdoZXgnKS50b1N0cmluZygnYmFzZTY0Jyk7XG5cbiAgICByZXR1cm4gcHVia2V5VG9BZGRyZXNzKFxuICAgICAge1xuICAgICAgICB0eXBlOiAndGVuZGVybWludC9QdWJLZXlTZWNwMjU2azEnLFxuICAgICAgICB2YWx1ZTogYmFzZTY0U3RyaW5nLFxuICAgICAgfSxcbiAgICAgIGFkZHJlc3NQcmVmaXhcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { CosmosTransaction, CosmosTransactionBuilder, CosmosTransferBuilder, StakingActivateBuilder, StakingDeactivateBuilder, StakingRedelegateBuilder, StakingWithdrawRewardsBuilder, ContractCallBuilder } from '@bitgo-beta/abstract-cosmos';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
4
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
5
+ private readonly _utils;
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ /** @inheritdoc */
8
+ from(raw: string): CosmosTransactionBuilder;
9
+ /** @inheritdoc */
10
+ getTransferBuilder(tx?: CosmosTransaction): CosmosTransferBuilder;
11
+ /** @inheritdoc */
12
+ getStakingActivateBuilder(tx?: CosmosTransaction): StakingActivateBuilder;
13
+ /** @inheritdoc */
14
+ getStakingDeactivateBuilder(tx?: CosmosTransaction): StakingDeactivateBuilder;
15
+ /** @inheritdoc */
16
+ getStakingWithdrawRewardsBuilder(tx?: CosmosTransaction): StakingWithdrawRewardsBuilder;
17
+ /** @inheritdoc */
18
+ getStakingRedelegateBuilder(tx?: CosmosTransaction): StakingRedelegateBuilder;
19
+ /** @inheritdoc */
20
+ getContractCallBuilder(tx?: CosmosTransaction): ContractCallBuilder;
21
+ /** @inheritdoc */
22
+ getWalletInitializationBuilder(): void;
23
+ /**
24
+ * Initialize the builder with the given transaction
25
+ *
26
+ * @param {CosmosTransaction | undefined} tx - the transaction used to initialize the builder
27
+ * @param {CosmosTransactionBuilder} builder - the builder to be initialized
28
+ * @returns {CosmosTransactionBuilder} the builder initialized
29
+ */
30
+ private initializeBuilder;
31
+ }
32
+ //# 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,wBAAwB,EACxB,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAG/G,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB;IAyB3C,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,2BAA2B,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,wBAAwB;IAI7E,kBAAkB;IAClB,sBAAsB,CAAC,EAAE,CAAC,EAAE,iBAAiB,GAAG,mBAAmB;IAInE,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;CAM1B"}
@@ -0,0 +1,81 @@
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 utils_1 = require("./utils");
7
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
8
+ constructor(_coinConfig) {
9
+ super(_coinConfig);
10
+ this._utils = new utils_1.Utils(_coinConfig.network);
11
+ }
12
+ /** @inheritdoc */
13
+ from(raw) {
14
+ const tx = new abstract_cosmos_1.CosmosTransaction(this._coinConfig, this._utils);
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.ContractCall:
27
+ return this.getContractCallBuilder(tx);
28
+ case sdk_core_1.TransactionType.StakingRedelegate:
29
+ return this.getStakingRedelegateBuilder(tx);
30
+ default:
31
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
32
+ }
33
+ }
34
+ catch (e) {
35
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction: ' + e.message);
36
+ }
37
+ }
38
+ /** @inheritdoc */
39
+ getTransferBuilder(tx) {
40
+ return this.initializeBuilder(tx, new abstract_cosmos_1.CosmosTransferBuilder(this._coinConfig, this._utils));
41
+ }
42
+ /** @inheritdoc */
43
+ getStakingActivateBuilder(tx) {
44
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingActivateBuilder(this._coinConfig, this._utils));
45
+ }
46
+ /** @inheritdoc */
47
+ getStakingDeactivateBuilder(tx) {
48
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingDeactivateBuilder(this._coinConfig, this._utils));
49
+ }
50
+ /** @inheritdoc */
51
+ getStakingWithdrawRewardsBuilder(tx) {
52
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingWithdrawRewardsBuilder(this._coinConfig, this._utils));
53
+ }
54
+ /** @inheritdoc */
55
+ getStakingRedelegateBuilder(tx) {
56
+ return this.initializeBuilder(tx, new abstract_cosmos_1.StakingRedelegateBuilder(this._coinConfig, this._utils));
57
+ }
58
+ /** @inheritdoc */
59
+ getContractCallBuilder(tx) {
60
+ return this.initializeBuilder(tx, new abstract_cosmos_1.ContractCallBuilder(this._coinConfig, this._utils));
61
+ }
62
+ /** @inheritdoc */
63
+ getWalletInitializationBuilder() {
64
+ throw new Error('Method not implemented.');
65
+ }
66
+ /**
67
+ * Initialize the builder with the given transaction
68
+ *
69
+ * @param {CosmosTransaction | undefined} tx - the transaction used to initialize the builder
70
+ * @param {CosmosTransactionBuilder} builder - the builder to be initialized
71
+ * @returns {CosmosTransactionBuilder} the builder initialized
72
+ */
73
+ initializeBuilder(tx, builder) {
74
+ if (tx) {
75
+ builder.initBuilder(tx);
76
+ }
77
+ return builder;
78
+ }
79
+ }
80
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpRUFTcUM7QUFFckMsbURBQStHO0FBQy9HLG1DQUFnQztBQUVoQyxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUcxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksYUFBSyxDQUFDLFdBQVcsQ0FBQyxPQUF3QixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLE1BQU0sRUFBRSxHQUFHLElBQUksbUNBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQztZQUNILFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQWUsQ0FBQyxlQUFlO29CQUNsQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUMsS0FBSywwQkFBZSxDQUFDLGlCQUFpQjtvQkFDcEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLEtBQUssMEJBQWUsQ0FBQyxlQUFlO29CQUNsQyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsS0FBSywwQkFBZSxDQUFDLFlBQVk7b0JBQy9CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxLQUFLLDBCQUFlLENBQUMsaUJBQWlCO29CQUNwQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUM7b0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDN0QsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0IsQ0FBQyxFQUFzQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSx1Q0FBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIseUJBQXlCLENBQUMsRUFBc0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksd0NBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDJCQUEyQixDQUFDLEVBQXNCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLDBDQUF3QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQ0FBZ0MsQ0FBQyxFQUFzQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSwrQ0FBNkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMkJBQTJCLENBQUMsRUFBc0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksMENBQXdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLEVBQXNCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHFDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxpQkFBaUIsQ0FBcUMsRUFBaUMsRUFBRSxPQUFVO1FBQ3pHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFsRkQsOERBa0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29zbW9zVHJhbnNhY3Rpb24sXG4gIENvc21vc1RyYW5zYWN0aW9uQnVpbGRlcixcbiAgQ29zbW9zVHJhbnNmZXJCdWlsZGVyLFxuICBTdGFraW5nQWN0aXZhdGVCdWlsZGVyLFxuICBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIsXG4gIFN0YWtpbmdSZWRlbGVnYXRlQnVpbGRlcixcbiAgU3Rha2luZ1dpdGhkcmF3UmV3YXJkc0J1aWxkZXIsXG4gIENvbnRyYWN0Q2FsbEJ1aWxkZXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWNvc21vcyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBDb3Ntb3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBwcml2YXRlIHJlYWRvbmx5IF91dGlsczogVXRpbHM7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3V0aWxzID0gbmV3IFV0aWxzKF9jb2luQ29uZmlnLm5ldHdvcmsgYXMgQ29zbW9zTmV0d29yayk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IENvc21vc1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgdHggPSBuZXcgQ29zbW9zVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpO1xuICAgIHR4LmVucmljaFRyYW5zYWN0aW9uRGV0YWlsc0Zyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0Q2FsbDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb250cmFjdENhbGxCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1JlZGVsZWdhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ1JlZGVsZWdhdGVCdWlsZGVyKHR4KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246ICcgKyBlLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBDb3Ntb3NUcmFuc2FjdGlvbik6IENvc21vc1RyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBDb3Ntb3NUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBTdGFraW5nQWN0aXZhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIodHg/OiBDb3Ntb3NUcmFuc2FjdGlvbik6IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcih0eD86IENvc21vc1RyYW5zYWN0aW9uKTogU3Rha2luZ1dpdGhkcmF3UmV3YXJkc0J1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ1dpdGhkcmF3UmV3YXJkc0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTdGFraW5nUmVkZWxlZ2F0ZUJ1aWxkZXIodHg/OiBDb3Ntb3NUcmFuc2FjdGlvbik6IFN0YWtpbmdSZWRlbGVnYXRlQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nUmVkZWxlZ2F0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRDb250cmFjdENhbGxCdWlsZGVyKHR4PzogQ29zbW9zVHJhbnNhY3Rpb24pOiBDb250cmFjdENhbGxCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IENvbnRyYWN0Q2FsbEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtDb3Ntb3NUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7Q29zbW9zVHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge0Nvc21vc1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIENvc21vc1RyYW5zYWN0aW9uQnVpbGRlcj4odHg6IENvc21vc1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkLCBidWlsZGVyOiBUKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CosmosUtils } from '@bitgo-beta/abstract-cosmos';
2
+ import { CosmosNetwork } from '@bitgo-beta/statics';
3
+ import { Coin } from '@cosmjs/stargate';
4
+ /**
5
+ * Cosmos utilities implementation using the shared Cosmos SDK
6
+ */
7
+ export declare class Utils extends CosmosUtils {
8
+ private readonly _network;
9
+ constructor(network: CosmosNetwork);
10
+ /** @inheritdoc */
11
+ isValidAddress(address: string): boolean;
12
+ /** @inheritdoc */
13
+ isValidValidatorAddress(address: string): boolean;
14
+ /** @inheritdoc */
15
+ isValidContractAddress(address: string): boolean;
16
+ /** @inheritdoc */
17
+ validateAmount(amount: Coin): void;
18
+ }
19
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC;;GAEG;AACH,qBAAa,KAAM,SAAQ,WAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,OAAO,EAAE,aAAa;IAKlC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOxC,kBAAkB;IAClB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOjD,kBAAkB;IAClB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOhD,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;CAkBnC"}
@@ -0,0 +1,48 @@
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.Utils = void 0;
7
+ const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ /**
11
+ * Cosmos utilities implementation using the shared Cosmos SDK
12
+ */
13
+ class Utils extends abstract_cosmos_1.CosmosUtils {
14
+ constructor(network) {
15
+ super();
16
+ this._network = network;
17
+ }
18
+ /** @inheritdoc */
19
+ isValidAddress(address) {
20
+ return this.isValidCosmosLikeAddressWithMemoId(address, new RegExp(`^${this._network.addressPrefix}1['qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$`));
21
+ }
22
+ /** @inheritdoc */
23
+ isValidValidatorAddress(address) {
24
+ return this.isValidBech32AddressMatchingRegex(address, new RegExp(`^${this._network.validatorPrefix}1['qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$`));
25
+ }
26
+ /** @inheritdoc */
27
+ isValidContractAddress(address) {
28
+ return this.isValidBech32AddressMatchingRegex(address, new RegExp(`^${this._network.addressPrefix}1['qpzry9x8gf2tvdw0s3jn54khce6mua7l]+$`));
29
+ }
30
+ /** @inheritdoc */
31
+ validateAmount(amount) {
32
+ if (!amount?.denom) {
33
+ throw new sdk_core_1.InvalidTransactionError('Invalid amount: missing denom');
34
+ }
35
+ if (amount.denom !== this._network.denom) {
36
+ throw new sdk_core_1.InvalidTransactionError(`Invalid amount: denom '${amount.denom}' does not match network denom '${this._network.denom}'`);
37
+ }
38
+ if (!amount?.amount) {
39
+ throw new sdk_core_1.InvalidTransactionError('Invalid amount: missing amount');
40
+ }
41
+ const amountBN = new bignumber_js_1.default(amount.amount);
42
+ if (!amountBN.isFinite() || !amountBN.isInteger() || amountBN.isLessThanOrEqualTo(0)) {
43
+ throw new sdk_core_1.InvalidTransactionError(`Invalid amount: '${amount.amount}' is not a valid positive integer`);
44
+ }
45
+ }
46
+ }
47
+ exports.Utils = Utils;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlFQUEwRDtBQUcxRCxtREFBK0Q7QUFDL0QsZ0VBQXFDO0FBRXJDOztHQUVHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsNkJBQVc7SUFHcEMsWUFBWSxPQUFzQjtRQUNoQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQzVDLE9BQU8sRUFDUCxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSwyQ0FBMkMsQ0FBQyxDQUN2RixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1QkFBdUIsQ0FBQyxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUMzQyxPQUFPLEVBQ1AsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsMkNBQTJDLENBQUMsQ0FDekYsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsc0JBQXNCLENBQUMsT0FBZTtRQUNwQyxPQUFPLElBQUksQ0FBQyxpQ0FBaUMsQ0FDM0MsT0FBTyxFQUNQLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLHdDQUF3QyxDQUFDLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxNQUFZO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0IsMEJBQTBCLE1BQU0sQ0FBQyxLQUFLLG1DQUFtQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUNoRyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksc0JBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRixNQUFNLElBQUksa0NBQXVCLENBQUMsb0JBQW9CLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxDQUFDLENBQUM7UUFDMUcsQ0FBQztJQUNILENBQUM7Q0FDRjtBQW5ERCxzQkFtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3Ntb3NVdGlscyB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWNvc21vcyc7XG5pbXBvcnQgeyBDb3Ntb3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBDb2luIH0gZnJvbSAnQGNvc21qcy9zdGFyZ2F0ZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuLyoqXG4gKiBDb3Ntb3MgdXRpbGl0aWVzIGltcGxlbWVudGF0aW9uIHVzaW5nIHRoZSBzaGFyZWQgQ29zbW9zIFNES1xuICovXG5leHBvcnQgY2xhc3MgVXRpbHMgZXh0ZW5kcyBDb3Ntb3NVdGlscyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25ldHdvcms6IENvc21vc05ldHdvcms7XG5cbiAgY29uc3RydWN0b3IobmV0d29yazogQ29zbW9zTmV0d29yaykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fbmV0d29yayA9IG5ldHdvcms7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZENvc21vc0xpa2VBZGRyZXNzV2l0aE1lbW9JZChcbiAgICAgIGFkZHJlc3MsXG4gICAgICBuZXcgUmVnRXhwKGBeJHt0aGlzLl9uZXR3b3JrLmFkZHJlc3NQcmVmaXh9MVsncXB6cnk5eDhnZjJ0dmR3MHMzam41NGtoY2U2bXVhN2xdezM4fSRgKVxuICAgICk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFZhbGlkYXRvckFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEJlY2gzMkFkZHJlc3NNYXRjaGluZ1JlZ2V4KFxuICAgICAgYWRkcmVzcyxcbiAgICAgIG5ldyBSZWdFeHAoYF4ke3RoaXMuX25ldHdvcmsudmFsaWRhdG9yUHJlZml4fTFbJ3FwenJ5OXg4Z2YydHZkdzBzM2puNTRraGNlNm11YTdsXXszOH0kYClcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRDb250cmFjdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEJlY2gzMkFkZHJlc3NNYXRjaGluZ1JlZ2V4KFxuICAgICAgYWRkcmVzcyxcbiAgICAgIG5ldyBSZWdFeHAoYF4ke3RoaXMuX25ldHdvcmsuYWRkcmVzc1ByZWZpeH0xWydxcHpyeTl4OGdmMnR2ZHcwczNqbjU0a2hjZTZtdWE3bF0rJGApXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUFtb3VudChhbW91bnQ6IENvaW4pOiB2b2lkIHtcbiAgICBpZiAoIWFtb3VudD8uZGVub20pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhbW91bnQ6IG1pc3NpbmcgZGVub20nKTtcbiAgICB9XG4gICAgaWYgKGFtb3VudC5kZW5vbSAhPT0gdGhpcy5fbmV0d29yay5kZW5vbSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBhbW91bnQ6IGRlbm9tICcke2Ftb3VudC5kZW5vbX0nIGRvZXMgbm90IG1hdGNoIG5ldHdvcmsgZGVub20gJyR7dGhpcy5fbmV0d29yay5kZW5vbX0nYFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCFhbW91bnQ/LmFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFtb3VudDogbWlzc2luZyBhbW91bnQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbW91bnRCTiA9IG5ldyBCaWdOdW1iZXIoYW1vdW50LmFtb3VudCk7XG4gICAgaWYgKCFhbW91bnRCTi5pc0Zpbml0ZSgpIHx8ICFhbW91bnRCTi5pc0ludGVnZXIoKSB8fCBhbW91bnRCTi5pc0xlc3NUaGFuT3JFcXVhbFRvKDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgYW1vdW50OiAnJHthbW91bnQuYW1vdW50fScgaXMgbm90IGEgdmFsaWQgcG9zaXRpdmUgaW50ZWdlcmApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { BitGoBase } from '@bitgo-beta/sdk-core';
2
+ /**
3
+ * Register all coins that use the shared Cosmos SDK implementation
4
+ * @param sdk BitGo instance
5
+ */
6
+ export declare function register(sdk: BitGoBase): void;
7
+ //# 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;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAM7C"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = register;
4
+ const statics_1 = require("@bitgo-beta/statics");
5
+ const cosmosSharedCoin_1 = require("./cosmosSharedCoin");
6
+ /**
7
+ * Register all coins that use the shared Cosmos SDK implementation
8
+ * @param sdk BitGo instance
9
+ */
10
+ function register(sdk) {
11
+ statics_1.coins
12
+ .filter((coin) => coin.features.includes(statics_1.CoinFeature.SHARED_COSMOS_SDK))
13
+ .forEach((coin) => {
14
+ sdk.register(coin.name, cosmosSharedCoin_1.CosmosSharedCoin.createInstance);
15
+ });
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSw0QkFNQztBQWJELGlEQUF5RDtBQUN6RCx5REFBc0Q7QUFFdEQ7OztHQUdHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLEdBQWM7SUFDckMsZUFBSztTQUNGLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3ZFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxtQ0FBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDb2luRmVhdHVyZSwgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IENvc21vc1NoYXJlZENvaW4gfSBmcm9tICcuL2Nvc21vc1NoYXJlZENvaW4nO1xuXG4vKipcbiAqIFJlZ2lzdGVyIGFsbCBjb2lucyB0aGF0IHVzZSB0aGUgc2hhcmVkIENvc21vcyBTREsgaW1wbGVtZW50YXRpb25cbiAqIEBwYXJhbSBzZGsgQml0R28gaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyKHNkazogQml0R29CYXNlKTogdm9pZCB7XG4gIGNvaW5zXG4gICAgLmZpbHRlcigoY29pbikgPT4gY29pbi5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5TSEFSRURfQ09TTU9TX1NESykpXG4gICAgLmZvckVhY2goKGNvaW4pID0+IHtcbiAgICAgIHNkay5yZWdpc3Rlcihjb2luLm5hbWUsIENvc21vc1NoYXJlZENvaW4uY3JlYXRlSW5zdGFuY2UpO1xuICAgIH0pO1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-coin-cosmos",
3
- "version": "1.0.1-alpha.7",
3
+ "version": "1.0.1-alpha.9",
4
4
  "description": "BitGo SDK coin library for Cosmos",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -40,8 +40,12 @@
40
40
  ]
41
41
  },
42
42
  "dependencies": {
43
- "@bitgo-beta/abstract-cosmos": "1.0.0-alpha.309",
44
- "@bitgo-beta/sdk-core": "2.4.1-alpha.360"
43
+ "@bitgo-beta/abstract-cosmos": "1.0.0-alpha.311",
44
+ "@bitgo-beta/sdk-core": "2.4.1-alpha.362",
45
+ "@bitgo-beta/statics": "10.0.1-alpha.362",
46
+ "@cosmjs/amino": "^0.29.5",
47
+ "@cosmjs/stargate": "^0.29.5",
48
+ "bignumber.js": "^9.1.1"
45
49
  },
46
- "gitHead": "899a224ba0032d3cb7b8cae46b4b09717d8f8590"
50
+ "gitHead": "b69ff87b8125f82410772b85f794ee92d3d9fbb1"
47
51
  }