@bitgo-beta/abstract-eth 1.2.3-alpha.38 → 1.2.3-alpha.380

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 (121) hide show
  1. package/CHANGELOG.md +1722 -0
  2. package/dist/src/abstractEthLikeCoin.d.ts +18 -9
  3. package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
  4. package/dist/src/abstractEthLikeCoin.js +39 -15
  5. package/dist/src/abstractEthLikeNewCoins.d.ts +715 -0
  6. package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
  7. package/dist/src/abstractEthLikeNewCoins.js +2113 -0
  8. package/dist/src/ethLikeToken.d.ts +36 -6
  9. package/dist/src/ethLikeToken.d.ts.map +1 -1
  10. package/dist/src/ethLikeToken.js +286 -10
  11. package/dist/src/index.d.ts +2 -0
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +8 -2
  14. package/dist/src/lib/contractCall.d.ts +8 -0
  15. package/dist/src/lib/contractCall.d.ts.map +1 -0
  16. package/dist/src/lib/contractCall.js +17 -0
  17. package/dist/src/lib/iface.d.ts +133 -0
  18. package/dist/src/lib/iface.d.ts.map +1 -0
  19. package/dist/src/lib/iface.js +8 -0
  20. package/dist/src/lib/index.d.ts +16 -0
  21. package/dist/src/lib/index.d.ts.map +1 -0
  22. package/dist/src/lib/index.js +57 -0
  23. package/dist/src/lib/keyPair.d.ts +26 -0
  24. package/dist/src/lib/keyPair.d.ts.map +1 -0
  25. package/dist/src/lib/keyPair.js +65 -0
  26. package/dist/src/lib/messages/eip191/eip191Message.d.ts +12 -0
  27. package/dist/src/lib/messages/eip191/eip191Message.d.ts.map +1 -0
  28. package/dist/src/lib/messages/eip191/eip191Message.js +25 -0
  29. package/dist/src/lib/messages/eip191/eip191MessageBuilder.d.ts +19 -0
  30. package/dist/src/lib/messages/eip191/eip191MessageBuilder.d.ts.map +1 -0
  31. package/dist/src/lib/messages/eip191/eip191MessageBuilder.js +27 -0
  32. package/dist/src/lib/messages/eip191/index.d.ts +3 -0
  33. package/dist/src/lib/messages/eip191/index.d.ts.map +1 -0
  34. package/dist/src/lib/messages/eip191/index.js +19 -0
  35. package/dist/src/lib/messages/index.d.ts +3 -0
  36. package/dist/src/lib/messages/index.d.ts.map +1 -0
  37. package/dist/src/lib/messages/index.js +19 -0
  38. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  39. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  40. package/dist/src/lib/messages/messageBuilderFactory.js +20 -0
  41. package/dist/src/lib/transaction.d.ts +67 -0
  42. package/dist/src/lib/transaction.d.ts.map +1 -0
  43. package/dist/src/lib/transaction.js +142 -0
  44. package/dist/src/lib/transactionBuilder.d.ts +251 -0
  45. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  46. package/dist/src/lib/transactionBuilder.js +742 -0
  47. package/dist/src/lib/transferBuilder.d.ts +76 -0
  48. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  49. package/dist/src/lib/transferBuilder.js +307 -0
  50. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +54 -0
  51. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +1 -0
  52. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +120 -0
  53. package/dist/src/lib/transferBuilders/index.d.ts +4 -0
  54. package/dist/src/lib/transferBuilders/index.d.ts.map +1 -0
  55. package/dist/src/lib/transferBuilders/index.js +20 -0
  56. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts +17 -0
  57. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts.map +1 -0
  58. package/dist/src/lib/transferBuilders/transferBuilderERC1155.js +96 -0
  59. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts +16 -0
  60. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts.map +1 -0
  61. package/dist/src/lib/transferBuilders/transferBuilderERC721.js +81 -0
  62. package/dist/src/lib/types.d.ts +39 -0
  63. package/dist/src/lib/types.d.ts.map +1 -0
  64. package/dist/src/lib/types.js +137 -0
  65. package/dist/src/lib/utils.d.ts +270 -0
  66. package/dist/src/lib/utils.d.ts.map +1 -0
  67. package/dist/src/lib/utils.js +717 -0
  68. package/dist/src/lib/walletUtil.d.ts +32 -0
  69. package/dist/src/lib/walletUtil.d.ts.map +1 -0
  70. package/dist/src/lib/walletUtil.js +35 -0
  71. package/dist/src/types.d.ts +9 -0
  72. package/dist/src/types.d.ts.map +1 -0
  73. package/dist/src/types.js +3 -0
  74. package/dist/test/index.d.ts +2 -0
  75. package/dist/test/index.d.ts.map +1 -0
  76. package/dist/test/index.js +18 -0
  77. package/dist/test/unit/coin.d.ts +8 -0
  78. package/dist/test/unit/coin.d.ts.map +1 -0
  79. package/dist/test/unit/coin.js +577 -0
  80. package/dist/test/unit/index.d.ts +6 -0
  81. package/dist/test/unit/index.d.ts.map +1 -0
  82. package/dist/test/unit/index.js +22 -0
  83. package/dist/test/unit/messages/eip191/eip191Message.d.ts +2 -0
  84. package/dist/test/unit/messages/eip191/eip191Message.d.ts.map +1 -0
  85. package/dist/test/unit/messages/eip191/eip191Message.js +137 -0
  86. package/dist/test/unit/messages/eip191/eip191MessageBuilder.d.ts +2 -0
  87. package/dist/test/unit/messages/eip191/eip191MessageBuilder.d.ts.map +1 -0
  88. package/dist/test/unit/messages/eip191/eip191MessageBuilder.js +116 -0
  89. package/dist/test/unit/messages/fixtures.d.ts +24 -0
  90. package/dist/test/unit/messages/fixtures.d.ts.map +1 -0
  91. package/dist/test/unit/messages/fixtures.js +28 -0
  92. package/dist/test/unit/messages/index.d.ts +4 -0
  93. package/dist/test/unit/messages/index.d.ts.map +1 -0
  94. package/dist/test/unit/messages/index.js +20 -0
  95. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  96. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  97. package/dist/test/unit/messages/messageBuilderFactory.js +44 -0
  98. package/dist/test/unit/token.d.ts +2 -0
  99. package/dist/test/unit/token.d.ts.map +1 -0
  100. package/dist/test/unit/token.js +37 -0
  101. package/dist/test/unit/transaction.d.ts +3 -0
  102. package/dist/test/unit/transaction.d.ts.map +1 -0
  103. package/dist/test/unit/transaction.js +60 -0
  104. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +8 -0
  105. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +1 -0
  106. package/dist/test/unit/transactionBuilder/addressInitialization.js +95 -0
  107. package/dist/test/unit/transactionBuilder/index.d.ts +4 -0
  108. package/dist/test/unit/transactionBuilder/index.d.ts.map +1 -0
  109. package/dist/test/unit/transactionBuilder/index.js +20 -0
  110. package/dist/test/unit/transactionBuilder/send.d.ts +3 -0
  111. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  112. package/dist/test/unit/transactionBuilder/send.js +197 -0
  113. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +10 -0
  114. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +1 -0
  115. package/dist/test/unit/transactionBuilder/walletInitialization.js +124 -0
  116. package/dist/test/unit/transferBuilder.d.ts +2 -0
  117. package/dist/test/unit/transferBuilder.d.ts.map +1 -0
  118. package/dist/test/unit/transferBuilder.js +76 -0
  119. package/dist/tsconfig.tsbuildinfo +1 -8240
  120. package/index.ts +2 -0
  121. package/package.json +30 -9
@@ -0,0 +1,270 @@
1
+ import { Buffer } from 'buffer';
2
+ import { BaseCoin, BaseNetwork, EthereumNetwork } from '@bitgo-beta/statics';
3
+ import EthereumCommon from '@ethereumjs/common';
4
+ import BN from 'bn.js';
5
+ import { TransactionType } from '@bitgo-beta/sdk-core';
6
+ import { ERC1155TransferData, ERC721TransferData, FlushTokensData, NativeTransferData, SignatureParts, TokenTransferData, TransferData, TxData, WalletInitializationData, ForwarderInitializationData } from './iface';
7
+ import { KeyPair } from './keyPair';
8
+ /**
9
+ * @param network
10
+ */
11
+ export declare function getCommon(network: EthereumNetwork): EthereumCommon;
12
+ /**
13
+ * Signs the transaction using the appropriate algorithm
14
+ * and the provided common for the blockchain
15
+ *
16
+ * @param {TxData} transactionData the transaction data to sign
17
+ * @param {KeyPair} keyPair the signer's keypair
18
+ * @param {EthereumCommon} customCommon the network's custom common
19
+ * @returns {string} the transaction signed and encoded
20
+ */
21
+ export declare function signInternal(transactionData: TxData, keyPair: KeyPair, customCommon: EthereumCommon): Promise<string>;
22
+ /**
23
+ * Signs the transaction using the appropriate algorithm
24
+ *
25
+ * @param {TxData} transactionData the transaction data to sign
26
+ * @param {KeyPair} keyPair the signer's keypair
27
+ * @returns {string} the transaction signed and encoded
28
+ */
29
+ export declare function sign(transactionData: TxData, keyPair: KeyPair): Promise<string>;
30
+ /**
31
+ * Returns the contract method encoded data
32
+ *
33
+ * @param {string} to destination address
34
+ * @param {number} value Amount to tranfer
35
+ * @param {string} data aditional method call data
36
+ * @param {number} expireTime expiration time for the transaction in seconds
37
+ * @param {number} sequenceId sequence id
38
+ * @param {string} signature signature of the call
39
+ * @returns {string} -- the contract method encoded data
40
+ */
41
+ export declare function sendMultiSigData(to: string, value: string, data: string, expireTime: number, sequenceId: number, signature: string): string;
42
+ /**
43
+ * Returns the contract method encoded data
44
+ *
45
+ * @param {string} to destination address
46
+ * @param {number} value Amount to tranfer
47
+ * @param {string} tokenContractAddress the address of the erc20 token contract
48
+ * @param {number} expireTime expiration time for the transaction in seconds
49
+ * @param {number} sequenceId sequence id
50
+ * @param {string} signature signature of the call
51
+ * @returns {string} -- the contract method encoded data
52
+ */
53
+ export declare function sendMultiSigTokenData(to: string, value: string, tokenContractAddress: string, expireTime: number, sequenceId: number, signature: string): string;
54
+ /**
55
+ * Get the data required to make a flush tokens contract call
56
+ *
57
+ * @param forwarderAddress The forwarder address to flush
58
+ * @param tokenAddress The token address to flush from
59
+ */
60
+ export declare function flushTokensData(forwarderAddress: string, tokenAddress: string, forwarderVersion: number): string;
61
+ /**
62
+ * Get the data required to make a flush native coins contract call
63
+ */
64
+ export declare function flushCoinsData(): string;
65
+ /**
66
+ * Returns the create forwarder method calling data
67
+ *
68
+ * @returns {string} - the createForwarder method encoded
69
+ */
70
+ export declare function getAddressInitializationData(): string;
71
+ /**
72
+ * Returns whether or not the string is a valid Eth address
73
+ *
74
+ * @param {string} address - the tx hash to validate
75
+ * @returns {boolean} - the validation result
76
+ */
77
+ export declare function isValidEthAddress(address: string): boolean;
78
+ /**
79
+ * Returns whether or not the string is a valid amount number
80
+ *
81
+ * @param {string} amount - the string to validate
82
+ * @returns {boolean} - the validation result
83
+ */
84
+ export declare function isValidAmount(amount: string): boolean;
85
+ /**
86
+ * Returns the smart contract encoded data
87
+ *
88
+ * @param {string} data The wallet creation data to decode
89
+ * @returns {string[]} - The list of signer addresses
90
+ */
91
+ export declare function decodeWalletCreationData(data: string): WalletInitializationData;
92
+ /**
93
+ * Decode the given ABI-encoded transfer data and return parsed fields
94
+ *
95
+ * @param data The data to decode
96
+ * @param isFirstSigner whether transaction is being built for a first signer
97
+ * @returns parsed transfer data
98
+ */
99
+ export declare function decodeTransferData(data: string, isFirstSigner?: boolean): TransferData;
100
+ /**
101
+ * Decode the given ABI-encoded transfer data for the sendMultisigToken function and return parsed fields
102
+ *
103
+ * @param data The data to decode
104
+ * @param isFirstSigner whether transaction is being built for a first signer
105
+ * @returns parsed token transfer data
106
+ */
107
+ export declare function decodeTokenTransferData(data: string, isFirstSigner?: boolean): TokenTransferData;
108
+ export declare function decodeERC721TransferData(data: string): ERC721TransferData;
109
+ export declare function decodeERC1155TransferData(data: string): ERC1155TransferData;
110
+ /**
111
+ * Decode the given ABI-encoded transfer data for the sendMultisig function and return parsed fields
112
+ *
113
+ * @param data The data to decode
114
+ * @param isFirstSigner whether transaction is being built for a first signer
115
+ * @returns parsed transfer data
116
+ */
117
+ export declare function decodeNativeTransferData(data: string, isFirstSigner?: boolean): NativeTransferData;
118
+ /**
119
+ * Decode the given ABI-encoded flush tokens data and return parsed fields
120
+ *
121
+ * @param data The data to decode
122
+ * @param to Optional to parameter of tx
123
+ * @returns parsed transfer data
124
+ */
125
+ export declare function decodeFlushTokensData(data: string, to?: string): FlushTokensData;
126
+ /**
127
+ * Classify the given transaction data based as a transaction type.
128
+ * ETH transactions are defined by the first 8 bytes of the transaction data, also known as the method id
129
+ *
130
+ * @param {string} data The data to classify the transaction with
131
+ * @returns {TransactionType} The classified transaction type
132
+ */
133
+ export declare function classifyTransaction(data: string): TransactionType;
134
+ /**
135
+ *
136
+ * @param {number} num number to be converted to hex
137
+ * @returns {string} the hex number
138
+ */
139
+ export declare function numberToHexString(num: number): string;
140
+ /**
141
+ *
142
+ * @param {string} hex The hex string to be converted
143
+ * @returns {number} the resulting number
144
+ */
145
+ export declare function hexStringToNumber(hex: string): number;
146
+ /**
147
+ * Generates an address of the forwarder address to be deployed
148
+ *
149
+ * @param {string} contractAddress the address which is creating this new address
150
+ * @param {number} contractCounter the nonce of the contract address
151
+ * @returns {string} the calculated forwarder contract address
152
+ */
153
+ export declare function calculateForwarderAddress(contractAddress: string, contractCounter: number): string;
154
+ /**
155
+ * Calculate the forwarder v1 address that will be generated if `creatorAddress` creates it with salt `salt`
156
+ * and initcode `inicode using the create2 opcode
157
+ * @param {string} creatorAddress The address that is sending the tx to create a new address, hex string
158
+ * @param {string} salt The salt to create the address with using create2, hex string
159
+ * @param {string} initcode The initcode that will be deployed to the address, hex string
160
+ * @return {string} The calculated address
161
+ */
162
+ export declare function calculateForwarderV1Address(creatorAddress: string, salt: string, initcode: string): string;
163
+ /**
164
+ * Take the implementation address for the proxy contract, and get the binary initcode for the associated proxy
165
+ * @param {string} implementationAddress The address of the implementation contract for the proxy
166
+ * @return {string} Binary hex string of the proxy
167
+ */
168
+ export declare function getProxyInitcode(implementationAddress: string): string;
169
+ /**
170
+ * Convert the given signature parts to a string representation
171
+ *
172
+ * @param {SignatureParts} sig The signature to convert to string
173
+ * @returns {string} String representation of the signature
174
+ */
175
+ export declare function toStringSig(sig: SignatureParts): string;
176
+ /**
177
+ * Return whether or not the given tx data has a signature
178
+ *
179
+ * @param {TxData} txData The transaction data to check for signature
180
+ * @returns {boolean} true if the tx has a signature, else false
181
+ */
182
+ export declare function hasSignature(txData: TxData): boolean;
183
+ type RecursiveBufferOrString = string | Buffer | BN | RecursiveBufferOrString[];
184
+ /**
185
+ * Get the raw data decoded for some types
186
+ *
187
+ * @param {string[]} types ABI types definition
188
+ * @param {Buffer} serializedArgs encoded args
189
+ * @returns {Buffer[]} the decoded raw
190
+ */
191
+ export declare function getRawDecoded(types: string[], serializedArgs: Buffer): RecursiveBufferOrString[];
192
+ /**
193
+ * Get the buffered bytecode from rawData using a methodId as delimiter
194
+ *
195
+ * @param {string} methodId the hex encoded method Id
196
+ * @param {string} rawData the hex encoded raw data
197
+ * @returns {Buffer} data buffered bytecode
198
+ */
199
+ export declare function getBufferedByteCode(methodId: string, rawData: string): Buffer;
200
+ /**
201
+ * Get the statics coin object matching a given contract address if it exists
202
+ *
203
+ * @param tokenContractAddress The contract address to match against
204
+ * @param network - the coin network
205
+ * @param family - the coin family
206
+ * @returns statics BaseCoin object for the matching token
207
+ */
208
+ export declare function getToken(tokenContractAddress: string, network: BaseNetwork, family: string): Readonly<BaseCoin> | undefined;
209
+ /**
210
+ * Returns the create wallet method calling data for v1 wallets
211
+ *
212
+ * @param {string[]} walletOwners - wallet owner addresses for wallet initialization transactions
213
+ * @param {string} salt - The salt for wallet initialization transactions
214
+ * @returns {string} - the createWallet method encoded
215
+ */
216
+ export declare function getV1WalletInitializationData(walletOwners: string[], salt: string): string;
217
+ /**
218
+ * Returns the create address method calling data for v1, v2, v4 forwarders
219
+ *
220
+ * @param {string} baseAddress - The address of the wallet contract
221
+ * @param {string} salt - The salt for address initialization transactions
222
+ * @param {string} feeAddress - The fee address for the enterprise
223
+ * @returns {string} - the createForwarder method encoded
224
+ */
225
+ export declare function getV1AddressInitializationData(baseAddress: string, salt: string, feeAddress?: string): string;
226
+ /**
227
+ * Returns the create address method calling data for all forwarder versions
228
+ *
229
+ * @param {number} forwarderVersion - The version of the forwarder to create
230
+ * @param {string} baseAddress - The address of the wallet contract
231
+ * @param {string} salt - The salt for address initialization transactions
232
+ * @param {string} feeAddress - The fee address for the enterprise
233
+ * @returns {string} - the createForwarder method encoded
234
+ *
235
+ */
236
+ export declare function getAddressInitDataAllForwarderVersions(forwarderVersion: number, baseAddress: string, salt: string, feeAddress?: string): string;
237
+ /**
238
+ * Returns the createForwarderTypes and createForwarderParams for all forwarder versions
239
+ *
240
+ * @param {string} baseAddress - The address of the wallet contract
241
+ * @param {Buffer} saltBuffer - The salt for address initialization transaction
242
+ * @param {string} feeAddress - The fee address for the enterprise
243
+ * @returns {createForwarderParams: (string | Buffer)[], createForwarderTypes: string[]}
244
+ */
245
+ export declare function getCreateForwarderParamsAndTypes(baseAddress: string, saltBuffer: Buffer, feeAddress?: string): {
246
+ createForwarderParams: (string | Buffer)[];
247
+ createForwarderTypes: string[];
248
+ };
249
+ /**
250
+ * Decode the given ABI-encoded create forwarder data and return parsed fields
251
+ *
252
+ * @param data The data to decode
253
+ * @returns parsed transfer data
254
+ */
255
+ export declare function decodeForwarderCreationData(data: string): ForwarderInitializationData;
256
+ /**
257
+ * Make a query to explorer for information such as balance, token balance, solidity calls
258
+ * @param {Object} query key-value pairs of parameters to append after /api
259
+ * @param {string} token the API token to use for the request
260
+ * @param {string} explorerUrl the URL of the explorer
261
+ * @returns {Promise<Object>} response from explorer
262
+ */
263
+ export declare function recoveryBlockchainExplorerQuery(query: Record<string, string>, explorerUrl: string, token?: string): Promise<Record<string, unknown>>;
264
+ /**
265
+ * Default expire time for a contract call (1 week)
266
+ * @returns {number} Time in seconds
267
+ */
268
+ export declare function getDefaultExpireTime(): number;
269
+ export {};
270
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}