@bitgo-beta/abstract-cosmos 1.0.1-beta.13 → 1.0.1-beta.1300

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 (48) hide show
  1. package/dist/resources/MsgCompiled.d.ts +1212 -0
  2. package/dist/resources/MsgCompiled.js +2761 -0
  3. package/dist/src/cosmosCoin.d.ts +140 -7
  4. package/dist/src/cosmosCoin.d.ts.map +1 -1
  5. package/dist/src/cosmosCoin.js +554 -119
  6. package/dist/src/index.js +6 -2
  7. package/dist/src/lib/ContractCallBuilder.d.ts +13 -0
  8. package/dist/src/lib/ContractCallBuilder.d.ts.map +1 -0
  9. package/dist/src/lib/ContractCallBuilder.js +61 -0
  10. package/dist/src/lib/StakingActivateBuilder.d.ts +13 -0
  11. package/dist/src/lib/StakingActivateBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/StakingActivateBuilder.js +61 -0
  13. package/dist/src/lib/StakingDeactivateBuilder.d.ts +13 -0
  14. package/dist/src/lib/StakingDeactivateBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/StakingDeactivateBuilder.js +61 -0
  16. package/dist/src/lib/StakingRedelegateBuilder.d.ts +13 -0
  17. package/dist/src/lib/StakingRedelegateBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/StakingRedelegateBuilder.js +61 -0
  19. package/dist/src/lib/StakingWithdrawRewardsBuilder.d.ts +13 -0
  20. package/dist/src/lib/StakingWithdrawRewardsBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/StakingWithdrawRewardsBuilder.js +61 -0
  22. package/dist/src/lib/constants.d.ts +4 -0
  23. package/dist/src/lib/constants.d.ts.map +1 -1
  24. package/dist/src/lib/constants.js +6 -2
  25. package/dist/src/lib/iface.d.ts +70 -7
  26. package/dist/src/lib/iface.d.ts.map +1 -1
  27. package/dist/src/lib/iface.js +18 -1
  28. package/dist/src/lib/index.d.ts +7 -1
  29. package/dist/src/lib/index.d.ts.map +1 -1
  30. package/dist/src/lib/index.js +43 -5
  31. package/dist/src/lib/keyPair.js +9 -10
  32. package/dist/src/lib/transaction.d.ts +19 -8
  33. package/dist/src/lib/transaction.d.ts.map +1 -1
  34. package/dist/src/lib/transaction.js +159 -73
  35. package/dist/src/lib/transactionBuilder.d.ts +41 -12
  36. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  37. package/dist/src/lib/transactionBuilder.js +105 -4
  38. package/dist/src/lib/transferBuilder.d.ts +13 -0
  39. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  40. package/dist/src/lib/transferBuilder.js +61 -0
  41. package/dist/src/lib/utils.d.ts +225 -18
  42. package/dist/src/lib/utils.d.ts.map +1 -1
  43. package/dist/src/lib/utils.js +545 -34
  44. package/dist/tsconfig.tsbuildinfo +1 -10808
  45. package/package.json +18 -11
  46. package/.eslintignore +0 -5
  47. package/.mocharc.yml +0 -8
  48. package/CHANGELOG.md +0 -17
@@ -1,7 +1,10 @@
1
- /// <reference types="node" />
2
- import { BaseCoin, BitGoBase, KeyPair, MPCAlgorithm, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
1
+ import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, ExplanationResult, KeyPair, MPCAlgorithm, MultisigType, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
3
2
  import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo-beta/statics';
3
+ import { Coin } from '@cosmjs/stargate';
4
+ import { Buffer } from 'buffer';
4
5
  import { Hash } from 'crypto';
6
+ import * as request from 'superagent';
7
+ import { CosmosKeyPair, CosmosLikeCoinRecoveryOutput, CosmosTransaction, GasAmountDetails, RecoveryOptions, CosmosTransactionBuilder, KeyShares } from './lib';
5
8
  /**
6
9
  * Cosmos accounts support memo Id based addresses
7
10
  */
@@ -9,10 +12,14 @@ interface AddressDetails {
9
12
  address: string;
10
13
  memoId?: string | undefined;
11
14
  }
12
- export declare class CosmosCoin extends BaseCoin {
15
+ export declare class CosmosCoin<CustomMessage = never> extends BaseCoin {
13
16
  protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
14
17
  protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
15
18
  static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
19
+ /**
20
+ * Creates an instance of TransactionBuilderFactory for the coin specific sdk
21
+ */
22
+ getBuilder(): any;
16
23
  /** @inheritDoc **/
17
24
  getBaseFactor(): string | number;
18
25
  /** @inheritDoc **/
@@ -23,24 +30,137 @@ export declare class CosmosCoin extends BaseCoin {
23
30
  getFullName(): string;
24
31
  /** @inheritDoc */
25
32
  supportsTss(): boolean;
33
+ /** inherited doc */
34
+ getDefaultMultisigType(): MultisigType;
26
35
  /** @inheritDoc **/
27
36
  getMPCAlgorithm(): MPCAlgorithm;
28
37
  /** @inheritDoc **/
29
38
  isValidPub(pub: string): boolean;
30
39
  /** @inheritDoc **/
31
40
  isValidPrv(prv: string): boolean;
32
- verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
33
41
  isValidAddress(address: string): boolean;
34
- signTransaction(params: SignTransactionOptions): Promise<SignedTransaction>;
42
+ /**
43
+ * Builds a funds recovery transaction without BitGo
44
+ * @param {RecoveryOptions} params parameters needed to construct and
45
+ * (maybe) sign the transaction
46
+ *
47
+ * @returns {CosmosLikeCoinRecoveryOutput} the serialized transaction hex string and index
48
+ * of the address being swept
49
+ */
50
+ recover(params: RecoveryOptions): Promise<CosmosLikeCoinRecoveryOutput>;
51
+ /**
52
+ * Validates the recovery parameters
53
+ */
54
+ private validateRecoveryParams;
55
+ /**
56
+ * Checks if this is an unsigned sweep operation
57
+ */
58
+ private isUnsignedSweep;
59
+ /**
60
+ * Gets sender details including address, public key and key shares
61
+ */
62
+ private getSenderDetails;
63
+ /**
64
+ * Gets key shares from recovery parameters
65
+ */
66
+ private getKeyShares;
67
+ /**
68
+ * Processes account balances and validates sufficient funds
69
+ */
70
+ private processBalances;
71
+ /**
72
+ * Builds transaction messages for all balances
73
+ */
74
+ private buildTransactionMessages;
75
+ /**
76
+ * Builds and signs the transaction
77
+ */
78
+ private buildAndSignTransaction;
79
+ /**
80
+ * Signs the transaction with MPC
81
+ */
82
+ /**
83
+ * Signs the transaction using MPC (Multi-Party Computation)
84
+ * @param unsignedTransaction The unsigned transaction to sign
85
+ * @param txnBuilder The transaction builder instance
86
+ * @param keyShares The key shares for MPC signing
87
+ * @param publicKey The public key for verification
88
+ * @returns The signed transaction output
89
+ * @throws Error if validation fails or signing process encounters an error
90
+ */
91
+ protected signTransactionWithMpc(unsignedTransaction: CosmosTransaction<CustomMessage>, txnBuilder: CosmosTransactionBuilder, keyShares: KeyShares, publicKey: string): Promise<CosmosLikeCoinRecoveryOutput>;
92
+ /**
93
+ * Builds a redelegate transaction
94
+ * @param {RecoveryOptions} params parameters needed to construct and
95
+ * (maybe) sign the transaction
96
+ *
97
+ * @returns {CosmosLikeCoinRecoveryOutput} the serialized transaction hex string
98
+ */
99
+ redelegate(params: RecoveryOptions & {
100
+ validatorSrcAddress: string;
101
+ validatorDstAddress: string;
102
+ amountToRedelegate: string;
103
+ }): Promise<CosmosLikeCoinRecoveryOutput>;
104
+ /** @inheritDoc **/
105
+ verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
106
+ /** @inheritDoc **/
107
+ explainTransaction(options: {
108
+ txHex: string;
109
+ }): Promise<ExplanationResult>;
110
+ /**
111
+ * Sign a transaction with a single private key
112
+ * @param params parameters in the form of { txPrebuild: {txHex}, prv }
113
+ * @returns signed transaction in the form of { txHex }
114
+ */
115
+ signTransaction(params: SignTransactionOptions & {
116
+ txPrebuild: {
117
+ txHex: string;
118
+ };
119
+ prv: string;
120
+ }): Promise<SignedTransaction>;
35
121
  /** @inheritDoc **/
36
122
  parseTransaction(params: ParseTransactionOptions & {
37
123
  txHex: string;
38
124
  }): Promise<ParsedTransaction>;
125
+ /**
126
+ * Get the public node url from the Environments constant we have defined
127
+ */
128
+ protected getPublicNodeUrl(): string;
129
+ /**
130
+ * Get account number from public node
131
+ */
132
+ protected getAccountFromNode(senderAddress: string): Promise<request.Response>;
133
+ /**
134
+ * Get balance from public node
135
+ */
136
+ protected getBalanceFromNode(senderAddress: string): Promise<request.Response>;
137
+ /**
138
+ * Get chain id from public node
139
+ */
140
+ protected getChainIdFromNode(): Promise<request.Response>;
141
+ /**
142
+ * Helper to fetch account balance
143
+ */
144
+ protected getAccountBalance(senderAddress: string): Promise<Coin[]>;
145
+ /**
146
+ * Helper to fetch chainId
147
+ */
148
+ protected getChainId(): Promise<string>;
149
+ /**
150
+ * Helper to fetch account number
151
+ */
152
+ protected getAccountDetails(senderAddress: string): Promise<string[]>;
39
153
  /** @inheritDoc **/
40
154
  generateKeyPair(seed?: Buffer): KeyPair;
155
+ /**
156
+ * Retrieves the address from a public key.
157
+ * @param {string} pubKey - The public key.
158
+ * @returns {string} The corresponding address.
159
+ */
41
160
  getAddressFromPublicKey(pubKey: string): string;
42
161
  /** @inheritDoc **/
43
162
  isWalletAddress(params: VerifyAddressOptions): Promise<boolean>;
163
+ /** @inheritDoc **/
44
164
  getHashFunction(): Hash;
45
165
  /**
46
166
  * Process address into address and memo id
@@ -56,8 +176,21 @@ export declare class CosmosCoin extends BaseCoin {
56
176
  * @returns true if memo id is valid
57
177
  */
58
178
  isValidMemoId(memoId: string): boolean;
59
- private getKeyCombinedFromTssKeyShares;
60
- private signRecoveryTSS;
179
+ /**
180
+ * Helper method to return the respective coin's base unit
181
+ */
182
+ getDenomination(): string;
183
+ /**
184
+ * Helper method to fetch gas amount details for respective coin
185
+ */
186
+ getGasAmountDetails(): GasAmountDetails;
187
+ /**
188
+ * Helper method to get key pair for individual coin
189
+ * @param publicKey
190
+ */
191
+ getKeyPair(publicKey: string): CosmosKeyPair;
192
+ /** @inheritDoc **/
193
+ auditDecryptedKey({ multiSigType, publicKey, prv }: AuditDecryptedKeyParams): void;
61
194
  }
62
195
  export {};
63
196
  //# sourceMappingURL=cosmosCoin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosmosCoin.d.ts","sourceRoot":"","sources":["../../src/cosmosCoin.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EAOT,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EAEtB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EAAc,IAAI,EAAe,MAAM,QAAQ,CAAC;AAQvD;;GAEG;AACH,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AASD,qBAAa,UAAW,SAAQ,QAAQ;IACtC,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;IAI1F,mBAAmB;IACnB,aAAa,IAAI,MAAM,GAAG,MAAM;IAIhC,mBAAmB;IACnB,QAAQ,IAAI,MAAM;IAIlB,mBAAmB;IACnB,SAAS,IAAI,UAAU;IAIvB,mBAAmB;IACnB,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,mBAAmB;IACnB,eAAe,IAAI,YAAY;IAI/B,mBAAmB;IACnB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,mBAAmB;IACnB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI3E,mBAAmB;IACb,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgCvG,mBAAmB;IACnB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAcvC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI/C,mBAAmB;IACb,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAarE,eAAe,IAAI,IAAI;IAIvB;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;IA4ClD;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUtC,OAAO,CAAC,8BAA8B;YAiExB,eAAe;CAwF9B"}
1
+ {"version":3,"file":"cosmosCoin.d.ts","sourceRoot":"","sources":["../../src/cosmosCoin.ts"],"names":[],"mappings":"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"}