@bitgo-beta/abstract-eth 1.2.3-alpha.29 → 1.2.3-alpha.291

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