@bitgo-beta/abstract-eth 1.0.2-beta.53 → 1.0.2-beta.531

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 (57) hide show
  1. package/CHANGELOG.md +1244 -0
  2. package/dist/src/abstractEthLikeCoin.d.ts +10 -5
  3. package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
  4. package/dist/src/abstractEthLikeCoin.js +14 -11
  5. package/dist/src/abstractEthLikeNewCoins.d.ts +625 -0
  6. package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
  7. package/dist/src/abstractEthLikeNewCoins.js +1833 -0
  8. package/dist/src/ethLikeToken.d.ts +34 -4
  9. package/dist/src/ethLikeToken.d.ts.map +1 -1
  10. package/dist/src/ethLikeToken.js +281 -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 +131 -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 +46 -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 +66 -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 +239 -0
  30. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  31. package/dist/src/lib/transactionBuilder.js +712 -0
  32. package/dist/src/lib/transferBuilder.d.ts +67 -0
  33. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  34. package/dist/src/lib/transferBuilder.js +246 -0
  35. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +52 -0
  36. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +1 -0
  37. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +114 -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 +262 -0
  51. package/dist/src/lib/utils.d.ts.map +1 -0
  52. package/dist/src/lib/utils.js +656 -0
  53. package/dist/src/lib/walletUtil.d.ts +28 -0
  54. package/dist/src/lib/walletUtil.d.ts.map +1 -0
  55. package/dist/src/lib/walletUtil.js +31 -0
  56. package/dist/tsconfig.tsbuildinfo +1 -7914
  57. package/package.json +24 -9
@@ -0,0 +1,625 @@
1
+ /// <reference types="node" />
2
+ import { AddressCoinSpecific, BitGoBase, FeeEstimateOptions, FullySignedTransaction, HalfSignedTransaction, IWallet, KeyPair, ParsedTransaction, ParseTransactionOptions, PrebuildTransactionResult, PresignTransactionOptions as BasePresignTransactionOptions, Recipient, SignTransactionOptions as BaseSignTransactionOptions, TransactionParams, TransactionRecipient, TransactionPrebuild as BaseTransactionPrebuild, TypedData, VerifyAddressOptions as BaseVerifyAddressOptions, VerifyTransactionOptions, Wallet, BuildNftTransferDataOptions } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as StaticsBaseCoin, EthereumNetwork as EthLikeNetwork } from '@bitgo-beta/statics';
4
+ import type * as EthLikeTxLib from '@ethereumjs/tx';
5
+ import type * as EthLikeCommon from '@ethereumjs/common';
6
+ import { AbstractEthLikeCoin } from './abstractEthLikeCoin';
7
+ /**
8
+ * The prebuilt hop transaction returned from the HSM
9
+ */
10
+ interface HopPrebuild {
11
+ tx: string;
12
+ id: string;
13
+ signature: string;
14
+ paymentId: string;
15
+ gasPrice: number;
16
+ gasLimit: number;
17
+ amount: number;
18
+ recipient: string;
19
+ nonce: number;
20
+ userReqSig: string;
21
+ gasPriceMax: number;
22
+ }
23
+ /**
24
+ * The extra parameters to send to platform build route for hop transactions
25
+ */
26
+ interface HopParams {
27
+ hopParams: {
28
+ gasPriceMax: number;
29
+ userReqSig: string;
30
+ paymentId: string;
31
+ };
32
+ gasLimit: number;
33
+ }
34
+ export interface EIP1559 {
35
+ maxPriorityFeePerGas: number;
36
+ maxFeePerGas: number;
37
+ }
38
+ export interface ReplayProtectionOptions {
39
+ chain: string | number;
40
+ hardfork: string;
41
+ }
42
+ export interface TransactionPrebuild extends BaseTransactionPrebuild {
43
+ hopTransaction?: HopPrebuild;
44
+ buildParams: {
45
+ recipients: Recipient[];
46
+ };
47
+ recipients: TransactionRecipient[];
48
+ nextContractSequenceId: number;
49
+ gasPrice: number;
50
+ gasLimit: number;
51
+ isBatch: boolean;
52
+ coin: string;
53
+ token?: string;
54
+ }
55
+ export interface SignFinalOptions {
56
+ txPrebuild: {
57
+ eip1559?: EIP1559;
58
+ replayProtectionOptions?: ReplayProtectionOptions;
59
+ gasPrice?: string;
60
+ gasLimit?: string;
61
+ recipients?: Recipient[];
62
+ halfSigned?: {
63
+ expireTime: number;
64
+ contractSequenceId: number;
65
+ backupKeyNonce?: number;
66
+ signature: string;
67
+ txHex?: string;
68
+ };
69
+ nextContractSequenceId?: number;
70
+ hopTransaction?: string;
71
+ backupKeyNonce?: number;
72
+ isBatch?: boolean;
73
+ txHex?: string;
74
+ expireTime?: number;
75
+ };
76
+ signingKeyNonce?: number;
77
+ walletContractAddress?: string;
78
+ prv: string;
79
+ recipients?: Recipient[];
80
+ }
81
+ export interface SignTransactionOptions extends BaseSignTransactionOptions, SignFinalOptions {
82
+ isLastSignature?: boolean;
83
+ expireTime?: number;
84
+ sequenceId?: number;
85
+ gasLimit?: number;
86
+ gasPrice?: number;
87
+ custodianTransactionId?: string;
88
+ }
89
+ export declare type SignedTransaction = HalfSignedTransaction | FullySignedTransaction;
90
+ export interface FeesUsed {
91
+ gasPrice: number;
92
+ gasLimit: number;
93
+ }
94
+ interface PrecreateBitGoOptions {
95
+ enterprise?: string;
96
+ newFeeAddress?: string;
97
+ }
98
+ export interface OfflineVaultTxInfo {
99
+ nextContractSequenceId?: string;
100
+ contractSequenceId?: string;
101
+ tx?: string;
102
+ txHex?: string;
103
+ userKey?: string;
104
+ backupKey?: string;
105
+ coin: string;
106
+ gasPrice: number;
107
+ gasLimit: number;
108
+ recipients: Recipient[];
109
+ walletContractAddress: string;
110
+ amount: string;
111
+ backupKeyNonce: number;
112
+ eip1559?: EIP1559;
113
+ replayProtectionOptions?: ReplayProtectionOptions;
114
+ halfSigned?: HalfSignedTransaction;
115
+ feesUsed?: FeesUsed;
116
+ isEvmBasedCrossChainRecovery?: boolean;
117
+ }
118
+ interface UnformattedTxInfo {
119
+ recipient: Recipient;
120
+ }
121
+ export interface RecoverOptions {
122
+ userKey: string;
123
+ backupKey: string;
124
+ walletPassphrase?: string;
125
+ walletContractAddress: string;
126
+ recoveryDestination: string;
127
+ krsProvider?: string;
128
+ gasPrice?: number;
129
+ gasLimit?: number;
130
+ eip1559?: EIP1559;
131
+ replayProtectionOptions?: ReplayProtectionOptions;
132
+ isTss?: boolean;
133
+ bitgoFeeAddress?: string;
134
+ bitgoDestinationAddress?: string;
135
+ tokenContractAddress?: string;
136
+ }
137
+ export declare type GetBatchExecutionInfoRT = {
138
+ values: [string[], string[]];
139
+ totalAmount: string;
140
+ };
141
+ export interface BuildTransactionParams {
142
+ to: string;
143
+ nonce?: number;
144
+ value: number;
145
+ data?: Buffer;
146
+ gasPrice?: number;
147
+ gasLimit?: number;
148
+ eip1559?: EIP1559;
149
+ replayProtectionOptions?: ReplayProtectionOptions;
150
+ }
151
+ export interface RecoveryInfo {
152
+ id: string;
153
+ tx: string;
154
+ backupKey?: string;
155
+ coin?: string;
156
+ }
157
+ export interface RecoverTokenTransaction {
158
+ halfSigned: {
159
+ recipient: Recipient;
160
+ expireTime: number;
161
+ contractSequenceId: number;
162
+ operationHash: string;
163
+ signature: string;
164
+ gasLimit: number;
165
+ gasPrice: number;
166
+ tokenContractAddress: string;
167
+ walletId: string;
168
+ };
169
+ }
170
+ export interface RecoverTokenOptions {
171
+ tokenContractAddress: string;
172
+ wallet: Wallet;
173
+ recipient: string;
174
+ broadcast?: boolean;
175
+ walletPassphrase?: string;
176
+ prv?: string;
177
+ }
178
+ export interface GetSendMethodArgsOptions {
179
+ recipient: Recipient;
180
+ expireTime: number;
181
+ contractSequenceId: number;
182
+ signature: string;
183
+ }
184
+ export interface SendMethodArgs {
185
+ name: string;
186
+ type: string;
187
+ value: any;
188
+ }
189
+ interface HopTransactionBuildOptions {
190
+ wallet: Wallet;
191
+ recipients: Recipient[];
192
+ walletPassphrase: string;
193
+ }
194
+ export interface BuildOptions {
195
+ hop?: boolean;
196
+ wallet?: Wallet;
197
+ recipients?: Recipient[];
198
+ walletPassphrase?: string;
199
+ [index: string]: unknown;
200
+ }
201
+ interface FeeEstimate {
202
+ gasLimitEstimate: number;
203
+ feeEstimate: number;
204
+ }
205
+ interface EthTransactionParams extends TransactionParams {
206
+ gasPrice?: number;
207
+ gasLimit?: number;
208
+ hopParams?: HopParams;
209
+ hop?: boolean;
210
+ prebuildTx?: PrebuildTransactionResult;
211
+ }
212
+ interface VerifyEthTransactionOptions extends VerifyTransactionOptions {
213
+ txPrebuild: TransactionPrebuild;
214
+ txParams: EthTransactionParams;
215
+ }
216
+ interface PresignTransactionOptions extends TransactionPrebuild, BasePresignTransactionOptions {
217
+ wallet: Wallet;
218
+ }
219
+ interface EthAddressCoinSpecifics extends AddressCoinSpecific {
220
+ forwarderVersion: number;
221
+ salt?: string;
222
+ }
223
+ export interface VerifyEthAddressOptions extends BaseVerifyAddressOptions {
224
+ baseAddress: string;
225
+ coinSpecific: EthAddressCoinSpecifics;
226
+ forwarderVersion: number;
227
+ }
228
+ export declare const optionalDeps: {
229
+ readonly ethAbi: any;
230
+ readonly ethUtil: any;
231
+ readonly EthTx: typeof EthLikeTxLib;
232
+ readonly EthCommon: typeof EthLikeCommon;
233
+ };
234
+ export declare abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
235
+ static hopTransactionSalt: string;
236
+ protected readonly sendMethodName: 'sendMultiSig' | 'sendMultiSigToken';
237
+ readonly staticsCoin?: Readonly<StaticsBaseCoin>;
238
+ protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
239
+ /**
240
+ * Method to return the coin's network object
241
+ * @returns {EthLikeNetwork | undefined}
242
+ */
243
+ getNetwork(): EthLikeNetwork | undefined;
244
+ /**
245
+ * Evaluates whether an address string is valid for this coin
246
+ * @param {string} address
247
+ * @returns {boolean} True if address is the valid ethlike adderss
248
+ */
249
+ isValidAddress(address: string): boolean;
250
+ /**
251
+ * Flag for sending data along with transactions
252
+ * @returns {boolean} True if okay to send tx data (ETH), false otherwise
253
+ */
254
+ transactionDataAllowed(): boolean;
255
+ /**
256
+ * Default expire time for a contract call (1 week)
257
+ * @returns {number} Time in seconds
258
+ */
259
+ getDefaultExpireTime(): number;
260
+ /**
261
+ * Method to get the custom chain common object based on params from recovery
262
+ * @param {number} chainId - the chain id of the custom chain
263
+ * @returns {EthLikeCommon.default}
264
+ */
265
+ static getCustomChainCommon(chainId: number): EthLikeCommon.default;
266
+ /**
267
+ * Gets correct Eth Common object based on params from either recovery or tx building
268
+ * @param {EIP1559} eip1559 - configs that specify whether we should construct an eip1559 tx
269
+ * @param {ReplayProtectionOptions} replayProtectionOptions - check if chain id supports replay protection
270
+ * @returns {EthLikeCommon.default}
271
+ */
272
+ private static getEthLikeCommon;
273
+ /**
274
+ * Method to build the tx object
275
+ * @param {BuildTransactionParams} params - params to build transaction
276
+ * @returns {EthLikeTxLib.FeeMarketEIP1559Transaction | EthLikeTxLib.Transaction}
277
+ */
278
+ static buildTransaction(params: BuildTransactionParams): EthLikeTxLib.FeeMarketEIP1559Transaction | EthLikeTxLib.Transaction;
279
+ /**
280
+ * Query explorer for the balance of an address
281
+ * @param {String} address - the ETHLike address
282
+ * @returns {BigNumber} address balance
283
+ */
284
+ queryAddressBalance(address: string): Promise<any>;
285
+ /**
286
+ * @param {Recipient[]} recipients - the recipients of the transaction
287
+ * @param {number} expireTime - the expire time of the transaction
288
+ * @param {number} contractSequenceId - the contract sequence id of the transaction
289
+ * @returns {string}
290
+ */
291
+ getOperationSha3ForExecuteAndConfirm(recipients: Recipient[], expireTime: number, contractSequenceId: number): string;
292
+ /**
293
+ * Get transfer operation for coin
294
+ * @param {Recipient} recipient - recipient info
295
+ * @param {number} expireTime - expiry time
296
+ * @param {number} contractSequenceId - sequence id
297
+ * @returns {Array} operation array
298
+ */
299
+ getOperation(recipient: Recipient, expireTime: number, contractSequenceId: number): (string | Buffer)[][];
300
+ /**
301
+ * Queries the contract (via explorer API) for the next sequence ID
302
+ * @param {String} address - address of the contract
303
+ * @returns {Promise<Number>} sequence ID
304
+ */
305
+ querySequenceId(address: string): Promise<number>;
306
+ /**
307
+ * Recover an unsupported token from a BitGo multisig wallet
308
+ * This builds a half-signed transaction, for which there will be an admin route to co-sign and broadcast. Optionally
309
+ * the user can set params.broadcast = true and the half-signed tx will be sent to BitGo for cosigning and broadcasting
310
+ * @param {RecoverTokenOptions} params
311
+ * @param {Wallet} params.wallet - the wallet to recover the token from
312
+ * @param {string} params.tokenContractAddress - the contract address of the unsupported token
313
+ * @param {string} params.recipient - the destination address recovered tokens should be sent to
314
+ * @param {string} params.walletPassphrase - the wallet passphrase
315
+ * @param {string} params.prv - the xprv
316
+ * @param {boolean} params.broadcast - if true, we will automatically submit the half-signed tx to BitGo for cosigning and broadcasting
317
+ * @returns {Promise<RecoverTokenTransaction>}
318
+ */
319
+ recoverToken(params: RecoverTokenOptions): Promise<RecoverTokenTransaction>;
320
+ /**
321
+ * Ensure either enterprise or newFeeAddress is passed, to know whether to create new key or use enterprise key
322
+ * @param {PrecreateBitGoOptions} params
323
+ * @param {string} params.enterprise {String} the enterprise id to associate with this key
324
+ * @param {string} params.newFeeAddress {Boolean} create a new fee address (enterprise not needed in this case)
325
+ * @returns {void}
326
+ */
327
+ preCreateBitGo(params: PrecreateBitGoOptions): void;
328
+ /**
329
+ * Queries public block explorer to get the next ETHLike coin's nonce that should be used for the given ETH address
330
+ * @param {string} address
331
+ * @returns {Promise<number>}
332
+ */
333
+ getAddressNonce(address: string): Promise<number>;
334
+ /**
335
+ * Helper function for recover()
336
+ * This transforms the unsigned transaction information into a format the BitGo offline vault expects
337
+ * @param {UnformattedTxInfo} txInfo - tx info
338
+ * @param {EthLikeTxLib.Transaction | EthLikeTxLib.FeeMarketEIP1559Transaction} ethTx - the ethereumjs tx object
339
+ * @param {string} userKey - the user's key
340
+ * @param {string} backupKey - the backup key
341
+ * @param {Buffer} gasPrice - gas price for the tx
342
+ * @param {number} gasLimit - gas limit for the tx
343
+ * @param {EIP1559} eip1559 - eip1559 params
344
+ * @param {ReplayProtectionOptions} replayProtectionOptions - replay protection options
345
+ * @returns {Promise<OfflineVaultTxInfo>}
346
+ */
347
+ formatForOfflineVault(txInfo: UnformattedTxInfo, ethTx: EthLikeTxLib.Transaction | EthLikeTxLib.FeeMarketEIP1559Transaction, userKey: string, backupKey: string, gasPrice: Buffer, gasLimit: number, eip1559?: EIP1559, replayProtectionOptions?: ReplayProtectionOptions): Promise<OfflineVaultTxInfo>;
348
+ /**
349
+ * Helper function for recover()
350
+ * This transforms the unsigned transaction information into a format the BitGo offline vault expects
351
+ * @param {UnformattedTxInfo} txInfo - tx info
352
+ * @param {EthLikeTxLib.Transaction | EthLikeTxLib.FeeMarketEIP1559Transaction} ethTx - the ethereumjs tx object
353
+ * @param {string} userKey - the user's key
354
+ * @param {string} backupKey - the backup key
355
+ * @param {Buffer} gasPrice - gas price for the tx
356
+ * @param {number} gasLimit - gas limit for the tx
357
+ * @param {number} backupKeyNonce - the nonce of the backup key address
358
+ * @param {EIP1559} eip1559 - eip1559 params
359
+ * @param {ReplayProtectionOptions} replayProtectionOptions - replay protection options
360
+ * @returns {Promise<OfflineVaultTxInfo>}
361
+ */
362
+ formatForOfflineVaultTSS(txInfo: UnformattedTxInfo, ethTx: EthLikeTxLib.Transaction | EthLikeTxLib.FeeMarketEIP1559Transaction, userKey: string, backupKey: string, gasPrice: Buffer, gasLimit: number, backupKeyNonce: number, eip1559?: EIP1559, replayProtectionOptions?: ReplayProtectionOptions): OfflineVaultTxInfo;
363
+ /**
364
+ * Check whether the gas price passed in by user are within our max and min bounds
365
+ * If they are not set, set them to the defaults
366
+ * @param {number} userGasPrice - user defined gas price
367
+ * @returns {number} the gas price to use for this transaction
368
+ */
369
+ setGasPrice(userGasPrice?: number): number;
370
+ /**
371
+ * Check whether gas limit passed in by user are within our max and min bounds
372
+ * If they are not set, set them to the defaults
373
+ * @param {number} userGasLimit user defined gas limit
374
+ * @returns {number} the gas limit to use for this transaction
375
+ */
376
+ setGasLimit(userGasLimit?: number): number;
377
+ /**
378
+ * Helper function for signTransaction for the rare case that SDK is doing the second signature
379
+ * Note: we are expecting this to be called from the offline vault
380
+ * @param {SignFinalOptions.txPrebuild} params.txPrebuild
381
+ * @param {string} params.prv
382
+ * @returns {{txHex: string}}
383
+ */
384
+ signFinalEthLike(params: SignFinalOptions): Promise<FullySignedTransaction>;
385
+ /**
386
+ * Assemble half-sign prebuilt transaction
387
+ * @param {SignTransactionOptions} params
388
+ */
389
+ signTransaction(params: SignTransactionOptions): Promise<SignedTransaction>;
390
+ /**
391
+ * Method to validate recovery params
392
+ * @param {RecoverOptions} params
393
+ * @returns {void}
394
+ */
395
+ validateRecoveryParams(params: RecoverOptions): void;
396
+ /**
397
+ * Method to sign tss recovery transaction
398
+ * @param {ECDSA.KeyCombined} userKeyCombined
399
+ * @param {ECDSA.KeyCombined} backupKeyCombined
400
+ * @param {string} txHex
401
+ * @param {Object} options
402
+ * @param {EcdsaTypes.SerializedNtilde} options.rangeProofChallenge
403
+ * @returns {Promise<ECDSAMethodTypes.Signature>}
404
+ */
405
+ private signRecoveryTSS;
406
+ /**
407
+ * Helper which combines key shares of user and backup
408
+ * @param {string} userPublicOrPrivateKeyShare
409
+ * @param {string} backupPrivateOrPublicKeyShare
410
+ * @param {string} walletPassphrase
411
+ * @returns {[ECDSAMethodTypes.KeyCombined, ECDSAMethodTypes.KeyCombined]}
412
+ */
413
+ private getKeyCombinedFromTssKeyShares;
414
+ /**
415
+ * Helper which Adds signatures to tx object and re-serializes tx
416
+ * @param {EthLikeCommon.default} ethCommon
417
+ * @param {EthLikeTxLib.FeeMarketEIP1559Transaction | EthLikeTxLib.Transaction} tx
418
+ * @param {ECDSAMethodTypes.Signature} signature
419
+ * @returns {EthLikeTxLib.FeeMarketEIP1559Transaction | EthLikeTxLib.Transaction}
420
+ */
421
+ private getSignedTxFromSignature;
422
+ /**
423
+ * Builds a funds recovery transaction without BitGo
424
+ * @param params
425
+ * @param {string} params.userKey - [encrypted] xprv
426
+ * @param {string} params.backupKey - [encrypted] xprv or xpub if the xprv is held by a KRS provider
427
+ * @param {string} params.walletPassphrase - used to decrypt userKey and backupKey
428
+ * @param {string} params.walletContractAddress - the ETH address of the wallet contract
429
+ * @param {string} params.krsProvider - necessary if backup key is held by KRS
430
+ * @param {string} params.recoveryDestination - target address to send recovered funds to
431
+ * @param {string} params.bitgoFeeAddress - wrong chain wallet fee address for evm based cross chain recovery txn
432
+ * @param {string} params.bitgoDestinationAddress - target bitgo address where fee will be sent for evm based cross chain recovery txn
433
+ */
434
+ recover(params: RecoverOptions): Promise<RecoveryInfo | OfflineVaultTxInfo>;
435
+ /**
436
+ * Builds a funds recovery transaction without BitGo for non-TSS transaction
437
+ * @param params
438
+ * @param {string} params.userKey [encrypted] xprv or xpub
439
+ * @param {string} params.backupKey [encrypted] xprv or xpub if the xprv is held by a KRS provider
440
+ * @param {string} params.walletPassphrase used to decrypt userKey and backupKey
441
+ * @param {string} params.walletContractAddress the EthLike address of the wallet contract
442
+ * @param {string} params.krsProvider necessary if backup key is held by KRS
443
+ * @param {string} params.recoveryDestination target address to send recovered funds to
444
+ * @param {string} params.bitgoFeeAddress wrong chain wallet fee address for evm based cross chain recovery txn
445
+ * @param {string} params.bitgoDestinationAddress target bitgo address where fee will be sent for evm based cross chain recovery txn
446
+ * @returns {Promise<RecoveryInfo | OfflineVaultTxInfo>}
447
+ */
448
+ protected recoverEthLike(params: RecoverOptions): Promise<RecoveryInfo | OfflineVaultTxInfo>;
449
+ /**
450
+ * Builds a unsigned (for cold, custody wallet) or
451
+ * half-signed (for hot wallet) evm cross chain recovery transaction with
452
+ * same expected arguments as recover method.
453
+ * This helps recover funds from evm based wrong chain.
454
+ * @param {RecoverOptions} params
455
+ * @returns {Promise<RecoveryInfo | OfflineVaultTxInfo>}
456
+ */
457
+ protected recoverEthLikeforEvmBasedRecovery(params: RecoverOptions): Promise<RecoveryInfo | OfflineVaultTxInfo>;
458
+ /**
459
+ * Query explorer for the balance of an address for a token
460
+ * @param {string} tokenContractAddress - address where the token smart contract is hosted
461
+ * @param {string} walletContractAddress - address of the wallet
462
+ * @returns {BigNumber} token balaance in base units
463
+ */
464
+ queryAddressTokenBalance(tokenContractAddress: string, walletContractAddress: string): Promise<any>;
465
+ recoverEthLikeTokenforEvmBasedRecovery(params: RecoverOptions, bitgoFeeAddressNonce: number, gasLimit: any, gasPrice: any, userKey: any, userSigningKey: any): Promise<OfflineVaultTxInfo>;
466
+ /**
467
+ * Validate evm based cross chain recovery params
468
+ * @param params {RecoverOptions}
469
+ * @returns {void}
470
+ */
471
+ validateEvmBasedRecoveryParams(params: RecoverOptions): void;
472
+ /**
473
+ * Return types, values, and total amount in wei to send in a batch transaction, using the method signature
474
+ * `distributeBatch(address[], uint256[])`
475
+ * @param {Recipient[]} recipients - transaction recipients
476
+ * @returns {GetBatchExecutionInfoRT} information needed to execute the batch transaction
477
+ */
478
+ getBatchExecutionInfo(recipients: Recipient[]): GetBatchExecutionInfoRT;
479
+ /**
480
+ * Get the data required to make an ETH function call defined by the given types and values
481
+ *
482
+ * @param {string} functionName - The name of the function being called, e.g. transfer
483
+ * @param types The types of the function call in order
484
+ * @param values The values of the function call in order
485
+ * @return {Buffer} The combined data for the function call
486
+ */
487
+ getMethodCallData: (functionName: any, types: any, values: any) => Buffer;
488
+ /**
489
+ * Build arguments to call the send method on the wallet contract
490
+ * @param txInfo
491
+ */
492
+ getSendMethodArgs(txInfo: GetSendMethodArgsOptions): SendMethodArgs[];
493
+ /**
494
+ * Recovers a tx with TSS key shares
495
+ * same expected arguments as recover method, but with TSS key shares
496
+ */
497
+ protected recoverTSS(params: RecoverOptions): Promise<RecoveryInfo | OfflineVaultTxInfo>;
498
+ recoveryBlockchainExplorerQuery(query: Record<string, string>): Promise<any>;
499
+ /**
500
+ * Creates the extra parameters needed to build a hop transaction
501
+ * @param buildParams The original build parameters
502
+ * @returns extra parameters object to merge with the original build parameters object and send to the platform
503
+ */
504
+ createHopTransactionParams(buildParams: HopTransactionBuildOptions): Promise<HopParams>;
505
+ /**
506
+ * Validates that the hop prebuild from the HSM is valid and correct
507
+ * @param {IWallet} wallet - The wallet that the prebuild is for
508
+ * @param {HopPrebuild} hopPrebuild - The prebuild to validate
509
+ * @param {Object} originalParams - The original parameters passed to prebuildTransaction
510
+ * @param {Recipient[]} originalParams.recipients - The original recipients array
511
+ * @returns {void}
512
+ * @throws Error if The prebuild is invalid
513
+ */
514
+ validateHopPrebuild(wallet: IWallet, hopPrebuild: HopPrebuild, originalParams?: {
515
+ recipients: Recipient[];
516
+ }): Promise<void>;
517
+ /**
518
+ * Gets the hop digest for the user to sign. This is validated in the HSM to prove that the user requested this tx
519
+ * @param {string[]} paramsArr - The parameters to hash together for the digest
520
+ * @returns {Buffer}
521
+ */
522
+ private static getHopDigest;
523
+ /**
524
+ * Modify prebuild before sending it to the server. Add things like hop transaction params
525
+ * @param {BuildOptions} buildParams - The whitelisted parameters for this prebuild
526
+ * @param {boolean} buildParams.hop - True if this should prebuild a hop tx, else false
527
+ * @param {Recipient[]} buildParams.recipients - The recipients array of this transaction
528
+ * @param {Wallet} buildParams.wallet - The wallet sending this tx
529
+ * @param {string} buildParams.walletPassphrase - the passphrase for this wallet
530
+ * @returns {Promise<BuildOptions>}
531
+ */
532
+ getExtraPrebuildParams(buildParams: BuildOptions): Promise<BuildOptions>;
533
+ /**
534
+ * Modify prebuild after receiving it from the server. Add things like nlocktime
535
+ * @param {TransactionPrebuild} params - The prebuild to modify
536
+ * @returns {TransactionPrebuild} The modified prebuild
537
+ */
538
+ postProcessPrebuild(params: TransactionPrebuild): Promise<TransactionPrebuild>;
539
+ /**
540
+ * Coin-specific things done before signing a transaction, i.e. verification
541
+ * @param {PresignTransactionOptions} params
542
+ * @returns {Promise<PresignTransactionOptions>}
543
+ */
544
+ presignTransaction(params: PresignTransactionOptions): Promise<PresignTransactionOptions>;
545
+ /**
546
+ * Fetch fee estimate information from the server
547
+ * @param {Object} params - The params passed into the function
548
+ * @param {boolean} [params.hop] - True if we should estimate fee for a hop transaction
549
+ * @param {string} [params.recipient] - The recipient of the transaction to estimate a send to
550
+ * @param {string} [params.data] - The ETH tx data to estimate a send for
551
+ * @returns {Object} The fee info returned from the server
552
+ */
553
+ feeEstimate(params: FeeEstimateOptions): Promise<FeeEstimate>;
554
+ /**
555
+ * Generate secp256k1 key pair
556
+ *
557
+ * @param {Buffer} seed
558
+ * @returns {KeyPair} object with generated pub and prv
559
+ */
560
+ generateKeyPair(seed: Buffer): KeyPair;
561
+ parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
562
+ /**
563
+ * Make sure an address is a wallet address and throw an error if it's not.
564
+ * @param {Object} params
565
+ * @param {string} params.address - The derived address string on the network
566
+ * @param {Object} params.coinSpecific - Coin-specific details for the address such as a forwarderVersion
567
+ * @param {string} params.baseAddress - The base address of the wallet on the network
568
+ * @throws {InvalidAddressError}
569
+ * @throws {InvalidAddressVerificationObjectPropertyError}
570
+ * @throws {UnexpectedAddressError}
571
+ * @returns {boolean} True iff address is a wallet address
572
+ */
573
+ isWalletAddress(params: VerifyEthAddressOptions): Promise<boolean>;
574
+ /**
575
+ *
576
+ * @param {TransactionPrebuild} txPrebuild
577
+ * @returns {boolean}
578
+ */
579
+ verifyCoin(txPrebuild: TransactionPrebuild): boolean;
580
+ /**
581
+ * Verify if a tss transaction is valid
582
+ *
583
+ * @param {VerifyEthTransactionOptions} params
584
+ * @param {TransactionParams} params.txParams - params object passed to send
585
+ * @param {TransactionPrebuild} params.txPrebuild - prebuild object returned by server
586
+ * @param {Wallet} params.wallet - Wallet object to obtain keys to verify against
587
+ * @returns {boolean}
588
+ */
589
+ verifyTssTransaction(params: VerifyEthTransactionOptions): boolean;
590
+ /**
591
+ * Verify that a transaction prebuild complies with the original intention
592
+ *
593
+ * @param {VerifyEthTransactionOptions} params
594
+ * @param {TransactionParams} params.txParams - params object passed to send
595
+ * @param {TransactionPrebuild} params.txPrebuild - prebuild object returned by server
596
+ * @param {Wallet} params.wallet - Wallet object to obtain keys to verify against
597
+ * @returns {boolean}
598
+ */
599
+ verifyTransaction(params: VerifyEthTransactionOptions): Promise<boolean>;
600
+ /**
601
+ * Check if address is valid eth address
602
+ * @param address
603
+ * @returns {boolean}
604
+ */
605
+ private isETHAddress;
606
+ /**
607
+ * Transform message to accommodate specific blockchain requirements.
608
+ * @param {string} message - the message to prepare
609
+ * @return {string} the prepared message.
610
+ */
611
+ encodeMessage(message: string): string;
612
+ /**
613
+ * Transform the Typed data to accomodate the blockchain requirements (EIP-712)
614
+ * @param {TypedData} typedData - the typed data to prepare
615
+ * @return {Buffer} a buffer of the result
616
+ */
617
+ encodeTypedData(typedData: TypedData): Buffer;
618
+ /**
619
+ * Build the data to transfer an ERC-721 or ERC-1155 token to another address
620
+ * @param params
621
+ */
622
+ buildNftTransferData(params: BuildNftTransferDataOptions): string;
623
+ }
624
+ export {};
625
+ //# sourceMappingURL=abstractEthLikeNewCoins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractEthLikeNewCoins.d.ts","sourceRoot":"","sources":["../../src/abstractEthLikeNewCoins.ts"],"names":[],"mappings":"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"}