From 75485f421977cfa6182a92edb6f8e04663edf217 Mon Sep 17 00:00:00 2001 From: lyambo Date: Wed, 20 Sep 2023 09:21:43 -0400 Subject: [PATCH] add multisend to abi decoder --- .../chain-state/evm/models/transaction.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/bitcore-node/src/providers/chain-state/evm/models/transaction.ts b/packages/bitcore-node/src/providers/chain-state/evm/models/transaction.ts index 262a6911150..7958d7fbea9 100644 --- a/packages/bitcore-node/src/providers/chain-state/evm/models/transaction.ts +++ b/packages/bitcore-node/src/providers/chain-state/evm/models/transaction.ts @@ -17,6 +17,7 @@ import { partition } from '../../../../utils/partition'; import { ERC20Abi } from '../abi/erc20'; import { ERC721Abi } from '../abi/erc721'; import { InvoiceAbi } from '../abi/invoice'; +import { MultisendAbi } from '../abi/multisend'; import { MultisigAbi } from '../abi/multisig'; import { BaseEVMStateProvider } from '../api/csp'; @@ -51,6 +52,12 @@ function getMultisigDecoder() { return MultisigDecoder; } +const MultisendDecoder = requireUncached('abi-decoder'); +MultisendDecoder.addABI(MultisendAbi); +function getMultisendDecoder() { + return MultisendDecoder; +} + @LoggifyClass export class EVMTransactionModel extends BaseTransaction { constructor(storage: StorageService = Storage) { @@ -346,6 +353,15 @@ export class EVMTransactionModel extends BaseTransaction { }; } } catch (e) {} + try { + const multisendData: IAbiDecodeResponse = getMultisendDecoder().decodeMethod(input); + if (multisendData) { + return { + type: 'MUTLISEND', + ...multisendData + }; + } + } catch (e) {} try { const multisigData: IAbiDecodeResponse = getMultisigDecoder().decodeMethod(input); if (multisigData) {