@bitgo-beta/sdk-coin-atom 3.1.2-beta.205 → 3.1.2-beta.2050

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 (87) hide show
  1. package/dist/src/atom.d.ts +7 -115
  2. package/dist/src/atom.d.ts.map +1 -1
  3. package/dist/src/atom.js +12 -491
  4. package/dist/src/index.js +6 -2
  5. package/dist/src/lib/constants.d.ts +0 -6
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +10 -12
  8. package/dist/src/lib/index.d.ts +3 -8
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +33 -24
  11. package/dist/src/lib/keyPair.d.ts +3 -12
  12. package/dist/src/lib/keyPair.d.ts.map +1 -1
  13. package/dist/src/lib/keyPair.js +7 -44
  14. package/dist/src/lib/transactionBuilderFactory.d.ts +8 -11
  15. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  16. package/dist/src/lib/transactionBuilderFactory.js +21 -11
  17. package/dist/src/lib/utils.d.ts +5 -181
  18. package/dist/src/lib/utils.d.ts.map +1 -1
  19. package/dist/src/lib/utils.js +31 -546
  20. package/dist/src/tatom.d.ts +0 -8
  21. package/dist/src/tatom.d.ts.map +1 -1
  22. package/dist/src/tatom.js +1 -13
  23. package/dist/test/integration/index.d.ts +2 -0
  24. package/dist/test/integration/index.d.ts.map +1 -0
  25. package/dist/test/integration/index.js +54 -0
  26. package/dist/test/resources/atom.d.ts +291 -0
  27. package/dist/test/resources/atom.d.ts.map +1 -0
  28. package/dist/test/resources/atom.js +471 -0
  29. package/dist/test/unit/atom.d.ts +2 -0
  30. package/dist/test/unit/atom.d.ts.map +1 -0
  31. package/dist/test/unit/atom.js +552 -0
  32. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  33. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  34. package/dist/test/unit/getBuilderFactory.js +10 -0
  35. package/dist/test/unit/keyPair.d.ts +2 -0
  36. package/dist/test/unit/keyPair.d.ts.map +1 -0
  37. package/dist/test/unit/keyPair.js +93 -0
  38. package/dist/test/unit/transaction.d.ts +2 -0
  39. package/dist/test/unit/transaction.d.ts.map +1 -0
  40. package/dist/test/unit/transaction.js +220 -0
  41. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts +2 -0
  42. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts.map +1 -0
  43. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.js +171 -0
  44. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts +2 -0
  45. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts.map +1 -0
  46. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.js +140 -0
  47. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts +2 -0
  48. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts.map +1 -0
  49. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.js +93 -0
  50. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts +2 -0
  51. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts.map +1 -0
  52. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.js +141 -0
  53. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  54. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  55. package/dist/test/unit/transactionBuilder/transactionBuilder.js +100 -0
  56. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  57. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  58. package/dist/test/unit/transactionBuilder/transferBuilder.js +241 -0
  59. package/dist/test/unit/utils.d.ts +2 -0
  60. package/dist/test/unit/utils.d.ts.map +1 -0
  61. package/dist/test/unit/utils.js +85 -0
  62. package/dist/tsconfig.tsbuildinfo +1 -0
  63. package/package.json +15 -17
  64. package/.eslintignore +0 -5
  65. package/.mocharc.yml +0 -8
  66. package/CHANGELOG.md +0 -311
  67. package/dist/src/lib/StakingActivateBuilder.d.ts +0 -11
  68. package/dist/src/lib/StakingActivateBuilder.d.ts.map +0 -1
  69. package/dist/src/lib/StakingActivateBuilder.js +0 -31
  70. package/dist/src/lib/StakingDeactivateBuilder.d.ts +0 -11
  71. package/dist/src/lib/StakingDeactivateBuilder.d.ts.map +0 -1
  72. package/dist/src/lib/StakingDeactivateBuilder.js +0 -31
  73. package/dist/src/lib/StakingWithdrawRewardsBuilder.d.ts +0 -11
  74. package/dist/src/lib/StakingWithdrawRewardsBuilder.d.ts.map +0 -1
  75. package/dist/src/lib/StakingWithdrawRewardsBuilder.js +0 -31
  76. package/dist/src/lib/iface.d.ts +0 -46
  77. package/dist/src/lib/iface.d.ts.map +0 -1
  78. package/dist/src/lib/iface.js +0 -3
  79. package/dist/src/lib/transaction.d.ts +0 -58
  80. package/dist/src/lib/transaction.d.ts.map +0 -1
  81. package/dist/src/lib/transaction.js +0 -279
  82. package/dist/src/lib/transactionBuilder.d.ts +0 -78
  83. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  84. package/dist/src/lib/transactionBuilder.js +0 -179
  85. package/dist/src/lib/transferBuilder.d.ts +0 -11
  86. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  87. package/dist/src/lib/transferBuilder.js +0 -31
@@ -1,190 +1,14 @@
1
- /// <reference types="node" />
2
- import { BaseUtils, TransactionType } from '@bitgo-beta/sdk-core';
3
- import { DecodedTxRaw } from '@cosmjs/proto-signing';
1
+ import { CosmosUtils } from '@bitgo-beta/abstract-cosmos';
4
2
  import { Coin } from '@cosmjs/stargate';
5
- import { SignDoc, TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx';
6
- import { AtomTransaction, DelegateOrUndelegeteMessage, FeeData, MessageData, SendMessage, WithdrawDelegatorRewardsMessage } from './iface';
7
- export declare class Utils implements BaseUtils {
8
- private registry;
3
+ export declare class Utils extends CosmosUtils {
9
4
  /** @inheritdoc */
10
- isValidBlockId(hash: string): boolean;
11
- /** @inheritdoc */
12
- isValidPrivateKey(key: string): boolean;
5
+ isValidAddress(address: string): boolean;
13
6
  /** @inheritdoc */
14
- isValidPublicKey(key: string): boolean;
7
+ isValidValidatorAddress(address: string): boolean;
15
8
  /** @inheritdoc */
16
- isValidSignature(signature: string): boolean;
9
+ isValidContractAddress(address: string): boolean;
17
10
  /** @inheritdoc */
18
- isValidTransactionId(txId: string): boolean;
19
- /**
20
- * Checks if transaction hash is in valid black2b format
21
- */
22
- validateBlake2b(hash: string): boolean;
23
- /**
24
- * Checks if a cosmos like Bech32 address matches given regular expression and
25
- * validates memoId if present
26
- * @param {string} address
27
- * @param {RegExp} regExp Regular expression to validate the root address against after trimming the memoId
28
- * @returns {boolean} true if address is valid
29
- */
30
- protected isValidCosmosLikeAddressWithMemoId(address: string, regExp: RegExp): boolean;
31
- /**
32
- * Checks if address is valid Bech32 and matches given regular expression
33
- * @param {string} address
34
- * @param {RegExp} regExp Regular expression to validate the address against
35
- * @returns {boolean} true if address is valid
36
- */
37
- protected isValidBech32AddressMatchingRegex(address: string, regExp: RegExp): boolean;
38
- /**
39
- * Return boolean indicating whether a memo id is valid
40
- *
41
- * @param memoId memo id
42
- * @returns true if memo id is valid
43
- */
44
- isValidMemoId(memoId: string): boolean;
45
- /**
46
- * Validates if the address matches with regex @see accountAddressRegex
47
- *
48
- * @param {string} address
49
- * @returns {boolean} - the validation result
50
- */
51
- isValidAddress(address: string): boolean;
52
- /**
53
- * Validates if the address matches with regex @see accountAddressRegex
54
- *
55
- * @param {string} address
56
- * @returns {boolean} - the validation result
57
- */
58
- isValidValidatorAddress(address: string): boolean;
59
- /**
60
- * Validates whether amounts are in range
61
- *
62
- * @param {number[]} amounts - the amounts to validate
63
- * @returns {boolean} - the validation result
64
- */
65
- isValidAmounts(amounts: number[]): boolean;
66
- /**
67
- * Validates whether amount is in range
68
- * @param {number} amount
69
- * @returns {boolean} the validation result
70
- */
71
- isValidAmount(amount: number): boolean;
72
- /**
73
- * Decodes raw tx data into messages, signing info, and fee data
74
- * @param {string} txHex - raw base64 tx
75
- * @returns {DecodedTxRaw} Decoded transaction
76
- */
77
- getDecodedTxFromRawBase64(txRaw: string): DecodedTxRaw;
78
- /**
79
- * Returns the array of messages in the body of the decoded transaction
80
- * @param {DecodedTxRaw} decodedTx
81
- * @returns {EncodeObject[]} messages along with type url
82
- */
83
- private getEncodedMessagesFromDecodedTx;
84
- /**
85
- * Pulls the sequence number from a DecodedTxRaw AuthInfo property
86
- * @param {DecodedTxRaw} decodedTx
87
- * @returns {number} sequence
88
- */
89
- getSequenceFromDecodedTx(decodedTx: DecodedTxRaw): number;
90
- /**
91
- * Pulls the typeUrl from the encoded message of a DecodedTxRaw
92
- * @param {DecodedTxRaw} decodedTx
93
- * @returns {string} cosmos proto type url
94
- */
95
- getTypeUrlFromDecodedTx(decodedTx: DecodedTxRaw): string;
96
- /**
97
- * Returns the fee data from the decoded transaction
98
- * @param {DecodedTxRaw} decodedTx
99
- * @returns {FeeData} fee data
100
- */
101
- getGasBudgetFromDecodedTx(decodedTx: DecodedTxRaw): FeeData;
102
- /**
103
- * Returns the publicKey from the decoded transaction
104
- * @param {DecodedTxRaw} decodedTx
105
- * @returns {string | undefined} publicKey in hex format if it exists, undefined otherwise
106
- */
107
- getPublicKeyFromDecodedTx(decodedTx: DecodedTxRaw): string | undefined;
108
- /**
109
- * Returns the array of MessageData[] from the decoded transaction
110
- * @param {DecodedTxRaw} decodedTx
111
- * @returns {MessageData[]} Send transaction message data
112
- */
113
- getSendMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
114
- /**
115
- * Returns the array of MessageData[] from the decoded transaction
116
- * @param {DecodedTxRaw} decodedTx
117
- * @returns {MessageData[]} Delegate of undelegate transaction message data
118
- */
119
- getDelegateOrUndelegateMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
120
- /**
121
- * Returns the array of MessageData[] from the decoded transaction
122
- * @param {DecodedTxRaw} decodedTx
123
- * @returns {MessageData[]} WithdrawDelegatorRewards transaction message data
124
- */
125
- getWithdrawRewardsMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
126
- /**
127
- * Returns the array of MessageData[] from the decoded transaction
128
- * @param {DecodedTxRaw} decodedTx
129
- * @returns {MessageData[]} Delegate of undelegate transaction message data
130
- */
131
- getWithdrawDelegatorRewardsMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
132
- /**
133
- * Determines bitgo transaction type based on cosmos proto type url
134
- * @param {string} typeUrl
135
- * @returns {TransactionType | undefined} TransactionType if url is supported else undefined
136
- */
137
- getTransactionTypeFromTypeUrl(typeUrl: string): TransactionType | undefined;
138
- /**
139
- * Creates a txRaw from an atom transaction @see AtomTransaction
140
- * @Precondition atomTransaction.publicKey must be defined
141
- * @param {AtomTransaction} atomTransaction
142
- * @returns {TxRaw} Unsigned raw transaction
143
- */
144
- createTxRawFromAtomTransaction(atomTransaction: AtomTransaction): TxRaw;
145
- /**
146
- * Encodes a signature into a txRaw
147
- * @param {string} publicKeyHex publicKey in hex encoded string format
148
- * @param {string} signatureHex signature in hex encoded string format
149
- * @param {TxRaw} unsignedTx raw transaction
150
- * @returns {TxRaw} Signed raw transaction
151
- */
152
- createSignedTxRaw(publicKeyHex: string, signatureHex: string, unsignedTx: {
153
- bodyBytes: Uint8Array;
154
- authInfoBytes: Uint8Array;
155
- }): TxRaw;
156
- /**
157
- * Decodes a raw transaction into a DecodedTxRaw and checks if it has non empty signatures
158
- * @param {string} rawTransaction
159
- * @returns {boolean} true if transaction is signed else false
160
- */
161
- isSignedRawTx(rawTransaction: string): boolean;
162
- /**
163
- * Deserializes base64 enocded raw transaction string into @see AtomTransaction
164
- * @param {string} rawTx base64 enocded raw transaction string
165
- * @returns {AtomTransaction} Deserialized atomTransaction
166
- */
167
- deserializeAtomTransaction(rawTx: string): AtomTransaction;
168
- createAtomTransaction(sequence: number, messages: MessageData[], gasBudget: FeeData, publicKey?: string, memo?: string): AtomTransaction;
169
- createAtomTransactionWithHash(sequence: number, messages: MessageData[], gasBudget: FeeData, publicKey?: string, signature?: Buffer, memo?: string): AtomTransaction;
170
- validateAtomTransaction(tx: AtomTransaction): void;
171
- validateMessageData(messageData: MessageData): void;
172
- validateAmountData(amountArray: Coin[]): void;
173
11
  validateAmount(amount: Coin): void;
174
- validateGasBudget(gasBudget: FeeData): void;
175
- validateSequence(sequence: number): void;
176
- validatePublicKey(publicKey: string | undefined): void;
177
- /**
178
- * Creates a sign doc from an atom transaction @see AtomTransaction
179
- * @Precondition atomTransaction.accountNumber and atomTransaction.chainId must be defined
180
- * @param {AtomTransaction} atomTransaction
181
- * @returns {SignDoc} sign doc
182
- */
183
- createSignDoc(atomTransaction: AtomTransaction, accountNumber: number | undefined, chainId: string | undefined): SignDoc;
184
- validateDelegateOrUndelegateMessage(delegateMessage: DelegateOrUndelegeteMessage): void;
185
- validateWithdrawRewardsMessage(withdrawRewardsMessage: WithdrawDelegatorRewardsMessage): void;
186
- validateSendMessage(sendMessage: SendMessage): void;
187
- isValidHexString(hexString: string): boolean;
188
12
  }
189
13
  declare const utils: Utils;
190
14
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC,qBAAa,KAAM,SAAQ,WAAW;IACpC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,kBAAkB;IAClB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhD,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;CASnC;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}