@0xtorch/evm 0.0.59 → 0.0.61
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.
- package/_cjs/analyzer/analyze.js +23 -7
- package/_cjs/analyzer/analyze.js.map +1 -1
- package/_cjs/analyzer/index.js +3 -1
- package/_cjs/analyzer/index.js.map +1 -1
- package/_cjs/analyzer/json/analyze.js +34 -38
- package/_cjs/analyzer/json/analyze.js.map +1 -1
- package/_cjs/analyzer/json/components/comment.js +2 -2
- package/_cjs/analyzer/json/components/comment.js.map +1 -1
- package/_cjs/analyzer/json/components/erc1155.js +4 -6
- package/_cjs/analyzer/json/components/erc1155.js.map +1 -1
- package/_cjs/analyzer/json/components/erc20.js +4 -6
- package/_cjs/analyzer/json/components/erc20.js.map +1 -1
- package/_cjs/analyzer/json/components/erc721.js +3 -5
- package/_cjs/analyzer/json/components/erc721.js.map +1 -1
- package/_cjs/analyzer/json/components/id.js +2 -2
- package/_cjs/analyzer/json/components/id.js.map +1 -1
- package/_cjs/analyzer/json/components/internal.js +4 -6
- package/_cjs/analyzer/json/components/internal.js.map +1 -1
- package/_cjs/analyzer/json/components/logArgument.js +15 -17
- package/_cjs/analyzer/json/components/logArgument.js.map +1 -1
- package/_cjs/analyzer/json/components/transfer.js +4 -6
- package/_cjs/analyzer/json/components/transfer.js.map +1 -1
- package/_cjs/analyzer/json/condition/address.js +1 -1
- package/_cjs/analyzer/json/condition/address.js.map +1 -1
- package/_cjs/analyzer/json/condition/value.js +5 -7
- package/_cjs/analyzer/json/condition/value.js.map +1 -1
- package/_cjs/analyzer/json/generator.js +1 -1
- package/_cjs/analyzer/json/generator.js.map +1 -1
- package/_cjs/analyzer/json/schemas/generator.js +6 -2
- package/_cjs/analyzer/json/schemas/generator.js.map +1 -1
- package/_cjs/analyzer/seaport/analyze.js +82 -106
- package/_cjs/analyzer/seaport/analyze.js.map +1 -1
- package/_cjs/analyzer/swap/analyze.js +5 -7
- package/_cjs/analyzer/swap/analyze.js.map +1 -1
- package/_cjs/analyzer/swap/traderJoeLBPairSwap.js.map +1 -1
- package/_cjs/analyzer/transfer/analyze.js +11 -98
- package/_cjs/analyzer/transfer/analyze.js.map +1 -1
- package/_cjs/analyzer/utils/createTransfersByTransaction.js +52 -0
- package/_cjs/analyzer/utils/createTransfersByTransaction.js.map +1 -0
- package/_cjs/clients/externals/viem/createViemInstance.js +2 -2
- package/_cjs/clients/externals/viem/createViemInstance.js.map +1 -1
- package/_cjs/clients/externals/viem/middleware.js +3 -6
- package/_cjs/clients/externals/viem/middleware.js.map +1 -1
- package/_cjs/decoder/decode.js +3 -3
- package/_cjs/decoder/decode.js.map +1 -1
- package/_cjs/decoder/parseErc1155TransferSingleLogs.js +2 -2
- package/_cjs/decoder/parseErc1155TransferSingleLogs.js.map +1 -1
- package/_cjs/decoder/parseErc20TransferLogs.js +2 -2
- package/_cjs/decoder/parseErc20TransferLogs.js.map +1 -1
- package/_cjs/decoder/parseErc721TransferLogs.js +3 -3
- package/_cjs/decoder/parseErc721TransferLogs.js.map +1 -1
- package/_cjs/decoder/tests.js +1 -1
- package/_cjs/decoder/tests.js.map +1 -1
- package/_cjs/explorers/externals/blockscout/getInternalTransactionsByAddress.js +1 -1
- package/_cjs/explorers/externals/blockscout/getInternalTransactionsByAddress.js.map +1 -1
- package/_cjs/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js +1 -1
- package/_cjs/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js.map +1 -1
- package/_cjs/explorers/externals/etherscan/getInternalTransactionsByAddress.js +1 -1
- package/_cjs/explorers/externals/etherscan/getInternalTransactionsByAddress.js.map +1 -1
- package/_cjs/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js +1 -1
- package/_cjs/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js.map +1 -1
- package/_cjs/index.js +4 -3
- package/_cjs/index.js.map +1 -1
- package/_cjs/tests.js +6 -2
- package/_cjs/tests.js.map +1 -1
- package/_esm/analyzer/analyze.js +25 -8
- package/_esm/analyzer/analyze.js.map +1 -1
- package/_esm/analyzer/axieMarketplace/analyze.js +1 -1
- package/_esm/analyzer/axieMarketplace/analyze.js.map +1 -1
- package/_esm/analyzer/index.js +1 -0
- package/_esm/analyzer/index.js.map +1 -1
- package/_esm/analyzer/json/analyze.js +34 -38
- package/_esm/analyzer/json/analyze.js.map +1 -1
- package/_esm/analyzer/json/components/comment.js +2 -2
- package/_esm/analyzer/json/components/comment.js.map +1 -1
- package/_esm/analyzer/json/components/erc1155.js +4 -6
- package/_esm/analyzer/json/components/erc1155.js.map +1 -1
- package/_esm/analyzer/json/components/erc20.js +4 -6
- package/_esm/analyzer/json/components/erc20.js.map +1 -1
- package/_esm/analyzer/json/components/erc721.js +3 -5
- package/_esm/analyzer/json/components/erc721.js.map +1 -1
- package/_esm/analyzer/json/components/id.js +2 -2
- package/_esm/analyzer/json/components/id.js.map +1 -1
- package/_esm/analyzer/json/components/internal.js +4 -6
- package/_esm/analyzer/json/components/internal.js.map +1 -1
- package/_esm/analyzer/json/components/logArgument.js +15 -17
- package/_esm/analyzer/json/components/logArgument.js.map +1 -1
- package/_esm/analyzer/json/components/targetAsset.js +1 -1
- package/_esm/analyzer/json/components/targetAsset.js.map +1 -1
- package/_esm/analyzer/json/components/transfer.js +4 -6
- package/_esm/analyzer/json/components/transfer.js.map +1 -1
- package/_esm/analyzer/json/condition/address.js +1 -1
- package/_esm/analyzer/json/condition/address.js.map +1 -1
- package/_esm/analyzer/json/condition/value.js +5 -7
- package/_esm/analyzer/json/condition/value.js.map +1 -1
- package/_esm/analyzer/json/generator.js +1 -1
- package/_esm/analyzer/json/generator.js.map +1 -1
- package/_esm/analyzer/json/schemas/generator.js +6 -2
- package/_esm/analyzer/json/schemas/generator.js.map +1 -1
- package/_esm/analyzer/seaport/analyze.js +92 -116
- package/_esm/analyzer/seaport/analyze.js.map +1 -1
- package/_esm/analyzer/spam/analyze.js +1 -1
- package/_esm/analyzer/spam/analyze.js.map +1 -1
- package/_esm/analyzer/swap/analyze.js +5 -7
- package/_esm/analyzer/swap/analyze.js.map +1 -1
- package/_esm/analyzer/swap/traderJoeLBPairSwap.js +0 -1
- package/_esm/analyzer/swap/traderJoeLBPairSwap.js.map +1 -1
- package/_esm/analyzer/transfer/analyze.js +11 -98
- package/_esm/analyzer/transfer/analyze.js.map +1 -1
- package/_esm/analyzer/utils/createTransfersByTransaction.js +51 -0
- package/_esm/analyzer/utils/createTransfersByTransaction.js.map +1 -0
- package/_esm/clients/externals/viem/createViemInstance.js +3 -3
- package/_esm/clients/externals/viem/createViemInstance.js.map +1 -1
- package/_esm/clients/externals/viem/middleware.js +4 -7
- package/_esm/clients/externals/viem/middleware.js.map +1 -1
- package/_esm/decoder/decode.js +6 -4
- package/_esm/decoder/decode.js.map +1 -1
- package/_esm/decoder/parseErc1155TransferSingleLogs.js +2 -2
- package/_esm/decoder/parseErc1155TransferSingleLogs.js.map +1 -1
- package/_esm/decoder/parseErc20TransferLogs.js +2 -2
- package/_esm/decoder/parseErc20TransferLogs.js.map +1 -1
- package/_esm/decoder/parseErc721TransferLogs.js +3 -3
- package/_esm/decoder/parseErc721TransferLogs.js.map +1 -1
- package/_esm/decoder/tests.js +1 -2
- package/_esm/decoder/tests.js.map +1 -1
- package/_esm/explorers/definitions/etherscan.js +1 -1
- package/_esm/explorers/definitions/etherscan.js.map +1 -1
- package/_esm/explorers/externals/blockscout/getInternalTransactionsByAddress.js +1 -1
- package/_esm/explorers/externals/blockscout/getInternalTransactionsByAddress.js.map +1 -1
- package/_esm/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js +1 -1
- package/_esm/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js.map +1 -1
- package/_esm/explorers/externals/etherscan/getInternalTransactionsByAddress.js +1 -1
- package/_esm/explorers/externals/etherscan/getInternalTransactionsByAddress.js.map +1 -1
- package/_esm/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js +1 -1
- package/_esm/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js.map +1 -1
- package/_esm/index.js +1 -1
- package/_esm/index.js.map +1 -1
- package/_esm/tests.js +5 -1
- package/_esm/tests.js.map +1 -1
- package/_types/analyzer/analyze.d.ts +2 -10
- package/_types/analyzer/analyze.d.ts.map +1 -1
- package/_types/analyzer/analyzer.d.ts +1 -9
- package/_types/analyzer/analyzer.d.ts.map +1 -1
- package/_types/analyzer/axieMarketplace/analyze.d.ts +2 -9
- package/_types/analyzer/axieMarketplace/analyze.d.ts.map +1 -1
- package/_types/analyzer/fail/analyze.d.ts +2 -9
- package/_types/analyzer/fail/analyze.d.ts.map +1 -1
- package/_types/analyzer/gasFee/analyze.d.ts +2 -9
- package/_types/analyzer/gasFee/analyze.d.ts.map +1 -1
- package/_types/analyzer/index.d.ts +1 -0
- package/_types/analyzer/index.d.ts.map +1 -1
- package/_types/analyzer/json/analyze.d.ts +2 -9
- package/_types/analyzer/json/analyze.d.ts.map +1 -1
- package/_types/analyzer/json/components/comment.d.ts +1 -9
- package/_types/analyzer/json/components/comment.d.ts.map +1 -1
- package/_types/analyzer/json/components/erc1155.d.ts +2 -18
- package/_types/analyzer/json/components/erc1155.d.ts.map +1 -1
- package/_types/analyzer/json/components/erc1155Raw.d.ts +1 -9
- package/_types/analyzer/json/components/erc1155Raw.d.ts.map +1 -1
- package/_types/analyzer/json/components/erc20.d.ts +2 -18
- package/_types/analyzer/json/components/erc20.d.ts.map +1 -1
- package/_types/analyzer/json/components/erc20Raw.d.ts +1 -9
- package/_types/analyzer/json/components/erc20Raw.d.ts.map +1 -1
- package/_types/analyzer/json/components/erc721.d.ts +2 -18
- package/_types/analyzer/json/components/erc721.d.ts.map +1 -1
- package/_types/analyzer/json/components/erc721Raw.d.ts +1 -9
- package/_types/analyzer/json/components/erc721Raw.d.ts.map +1 -1
- package/_types/analyzer/json/components/id.d.ts +1 -9
- package/_types/analyzer/json/components/id.d.ts.map +1 -1
- package/_types/analyzer/json/components/internal.d.ts +2 -18
- package/_types/analyzer/json/components/internal.d.ts.map +1 -1
- package/_types/analyzer/json/components/internalRaw.d.ts +1 -9
- package/_types/analyzer/json/components/internalRaw.d.ts.map +1 -1
- package/_types/analyzer/json/components/logArgument.d.ts +2 -18
- package/_types/analyzer/json/components/logArgument.d.ts.map +1 -1
- package/_types/analyzer/json/components/logArgumentRaw.d.ts +1 -9
- package/_types/analyzer/json/components/logArgumentRaw.d.ts.map +1 -1
- package/_types/analyzer/json/components/targetAsset.d.ts +1 -9
- package/_types/analyzer/json/components/targetAsset.d.ts.map +1 -1
- package/_types/analyzer/json/components/transfer.d.ts +1 -9
- package/_types/analyzer/json/components/transfer.d.ts.map +1 -1
- package/_types/analyzer/json/condition/address.d.ts +1 -9
- package/_types/analyzer/json/condition/address.d.ts.map +1 -1
- package/_types/analyzer/json/condition/argumentValue.d.ts +1 -9
- package/_types/analyzer/json/condition/argumentValue.d.ts.map +1 -1
- package/_types/analyzer/json/condition/value.d.ts +1 -9
- package/_types/analyzer/json/condition/value.d.ts.map +1 -1
- package/_types/analyzer/json/generator.d.ts +1 -9
- package/_types/analyzer/json/generator.d.ts.map +1 -1
- package/_types/analyzer/json/schemas/generator.d.ts.map +1 -1
- package/_types/analyzer/json/types.d.ts +2 -2
- package/_types/analyzer/json/types.d.ts.map +1 -1
- package/_types/analyzer/parsers/transfer.d.ts +1 -1
- package/_types/analyzer/parsers/transfer.d.ts.map +1 -1
- package/_types/analyzer/seaport/analyze.d.ts +2 -9
- package/_types/analyzer/seaport/analyze.d.ts.map +1 -1
- package/_types/analyzer/spam/analyze.d.ts +2 -9
- package/_types/analyzer/spam/analyze.d.ts.map +1 -1
- package/_types/analyzer/swap/analyze.d.ts +2 -9
- package/_types/analyzer/swap/analyze.d.ts.map +1 -1
- package/_types/analyzer/swap/traderJoeLBPairSwap.d.ts.map +1 -1
- package/_types/analyzer/transfer/analyze.d.ts +2 -9
- package/_types/analyzer/transfer/analyze.d.ts.map +1 -1
- package/_types/analyzer/utils/createTransfersByTransaction.d.ts +5 -0
- package/_types/analyzer/utils/createTransfersByTransaction.d.ts.map +1 -0
- package/_types/chains/definitions/arbitrumOne.d.ts.map +1 -1
- package/_types/chains/definitions/astar.d.ts.map +1 -1
- package/_types/chains/definitions/avalancheC.d.ts.map +1 -1
- package/_types/chains/definitions/base.d.ts.map +1 -1
- package/_types/chains/definitions/bsc.d.ts.map +1 -1
- package/_types/chains/definitions/defineChain.d.ts.map +1 -1
- package/_types/chains/definitions/ethereum.d.ts.map +1 -1
- package/_types/chains/definitions/fantom.d.ts.map +1 -1
- package/_types/chains/definitions/linea.d.ts.map +1 -1
- package/_types/chains/definitions/mantaPacific.d.ts.map +1 -1
- package/_types/chains/definitions/mantle.d.ts.map +1 -1
- package/_types/chains/definitions/metis.d.ts.map +1 -1
- package/_types/chains/definitions/moonbeam.d.ts.map +1 -1
- package/_types/chains/definitions/moonriver.d.ts.map +1 -1
- package/_types/chains/definitions/oasys.d.ts.map +1 -1
- package/_types/chains/definitions/optimism.d.ts.map +1 -1
- package/_types/chains/definitions/polygonPos.d.ts.map +1 -1
- package/_types/chains/definitions/ronin.d.ts.map +1 -1
- package/_types/chains/externals/defillama/getBlockOfTimestamp.d.ts.map +1 -1
- package/_types/clients/definitions/defineClient.d.ts.map +1 -1
- package/_types/clients/definitions/viemClient.d.ts +14 -14
- package/_types/clients/definitions/viemClient.d.ts.map +1 -1
- package/_types/clients/externals/viem/createViemInstance.d.ts +3 -3
- package/_types/clients/externals/viem/createViemInstance.d.ts.map +1 -1
- package/_types/clients/externals/viem/estimateFeesPerGas.d.ts.map +1 -1
- package/_types/clients/externals/viem/getBalance.d.ts.map +1 -1
- package/_types/clients/externals/viem/getBlock.d.ts +1 -1
- package/_types/clients/externals/viem/getBlock.d.ts.map +1 -1
- package/_types/clients/externals/viem/getBlockNumber.d.ts.map +1 -1
- package/_types/clients/externals/viem/getEventLogs.d.ts.map +1 -1
- package/_types/clients/externals/viem/getTransaction.d.ts.map +1 -1
- package/_types/clients/externals/viem/getTransactionCount.d.ts.map +1 -1
- package/_types/clients/externals/viem/getTransactionReceipt.d.ts.map +1 -1
- package/_types/clients/externals/viem/middleware.d.ts.map +1 -1
- package/_types/clients/externals/viem/multicall.d.ts.map +1 -1
- package/_types/clients/externals/viem/readContract.d.ts.map +1 -1
- package/_types/creates/createEvmAccount.d.ts +1 -1
- package/_types/creates/createEvmAccount.d.ts.map +1 -1
- package/_types/decoder/decode.d.ts.map +1 -1
- package/_types/decoder/parseErc1155TransferSingleLogs.d.ts.map +1 -1
- package/_types/decoder/parseErc20TransferLogs.d.ts.map +1 -1
- package/_types/decoder/parseErc721TransferLogs.d.ts.map +1 -1
- package/_types/decoder/tests.d.ts +2 -39
- package/_types/decoder/tests.d.ts.map +1 -1
- package/_types/explorers/definitions/blockscout.d.ts +34 -79
- package/_types/explorers/definitions/blockscout.d.ts.map +1 -1
- package/_types/explorers/definitions/defineExplorer.d.ts.map +1 -1
- package/_types/explorers/definitions/etherscan.d.ts +34 -79
- package/_types/explorers/definitions/etherscan.d.ts.map +1 -1
- package/_types/explorers/definitions/roninExplorer.d.ts +34 -79
- package/_types/explorers/definitions/roninExplorer.d.ts.map +1 -1
- package/_types/explorers/definitions/routescan.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getBlockNumberOfTimestamp.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getContractByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getContractCreations.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getEventLogsByAddressAndTopics.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getInternalTransactionsByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getNormalTransactionsByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/getTokenTransfersByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/blockscout/middleware.d.ts.map +1 -1
- package/_types/explorers/externals/defillama/getBlockNumberOfTimestamp.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getBlockNumberOfTimestamp.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getContractByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getContractCreations.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getErc1155TokenTransfersByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getErc20TokenTransfersByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getErc721TokenTransfersByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getEventLogsByAddressAndTopics.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getInternalTransactionsByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/getNormalTransactionsByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/etherscan/middleware.d.ts.map +1 -1
- package/_types/explorers/externals/roninExplorer/getInternalTransactionByHash.d.ts.map +1 -1
- package/_types/explorers/externals/roninExplorer/getNormalTransactionsByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/roninExplorer/getTokenTransfersByAddress.d.ts.map +1 -1
- package/_types/explorers/externals/roninExplorer/middleware.d.ts.map +1 -1
- package/_types/getContractAbi.d.ts.map +1 -1
- package/_types/getTransactionDetail.d.ts.map +1 -1
- package/_types/index.d.ts +1 -1
- package/_types/index.d.ts.map +1 -1
- package/_types/tests.d.ts +5 -1
- package/_types/tests.d.ts.map +1 -1
- package/_types/types/hex.d.ts +1 -1
- package/_types/types/hex.d.ts.map +1 -1
- package/_types/types/transaction.d.ts +1 -1
- package/_types/types/transaction.d.ts.map +1 -1
- package/_types/utils/create.d.ts +3 -3
- package/_types/utils/create.d.ts.map +1 -1
- package/_types/utils/types.d.ts.map +1 -1
- package/analyzer/analyze.ts +32 -8
- package/analyzer/axieMarketplace/analyze.ts +2 -2
- package/analyzer/index.ts +1 -0
- package/analyzer/json/analyze.ts +37 -39
- package/analyzer/json/components/comment.ts +4 -2
- package/analyzer/json/components/erc1155.ts +6 -6
- package/analyzer/json/components/erc20.ts +6 -6
- package/analyzer/json/components/erc721.ts +4 -5
- package/analyzer/json/components/id.ts +4 -2
- package/analyzer/json/components/internal.ts +6 -6
- package/analyzer/json/components/logArgument.ts +16 -17
- package/analyzer/json/components/targetAsset.ts +1 -1
- package/analyzer/json/components/transfer.ts +6 -5
- package/analyzer/json/condition/address.ts +1 -1
- package/analyzer/json/condition/value.ts +8 -6
- package/analyzer/json/generator.ts +2 -2
- package/analyzer/json/schemas/generator.ts +6 -2
- package/analyzer/json/types.ts +3 -3
- package/analyzer/parsers/transfer.ts +1 -1
- package/analyzer/seaport/analyze.ts +136 -137
- package/analyzer/spam/analyze.ts +1 -1
- package/analyzer/swap/analyze.ts +6 -6
- package/analyzer/swap/traderJoeLBPairSwap.ts +0 -1
- package/analyzer/transfer/analyze.ts +11 -116
- package/analyzer/utils/createTransfersByTransaction.ts +89 -0
- package/clients/externals/viem/createViemInstance.ts +4 -3
- package/clients/externals/viem/middleware.ts +6 -7
- package/decoder/decode.ts +7 -5
- package/decoder/parseErc1155TransferSingleLogs.ts +3 -3
- package/decoder/parseErc20TransferLogs.ts +2 -2
- package/decoder/parseErc721TransferLogs.ts +3 -3
- package/decoder/tests.ts +2 -2
- package/explorers/definitions/etherscan.ts +1 -1
- package/explorers/externals/blockscout/getInternalTransactionsByAddress.ts +1 -1
- package/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.ts +1 -1
- package/explorers/externals/etherscan/getInternalTransactionsByAddress.ts +1 -1
- package/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.ts +1 -1
- package/index.ts +1 -0
- package/package.json +3 -5
- package/tests.ts +9 -1
- package/types/transaction.ts +1 -1
- package/utils/create.ts +1 -1
- package/utils/types.ts +0 -1
|
@@ -14,9 +14,9 @@ import type {
|
|
|
14
14
|
import type { Chain } from '../../chains'
|
|
15
15
|
import type {
|
|
16
16
|
DecodedLog,
|
|
17
|
-
Erc1155Transfer,
|
|
18
17
|
Erc20Transfer,
|
|
19
18
|
Erc721Transfer,
|
|
19
|
+
Erc1155Transfer,
|
|
20
20
|
InternalTransaction,
|
|
21
21
|
LowerHex,
|
|
22
22
|
TransactionDecoded,
|
|
@@ -24,12 +24,12 @@ import type {
|
|
|
24
24
|
import { toLowerHex } from '../../types'
|
|
25
25
|
import { createEvmActionSource, includesEvmAddressId } from '../../utils/create'
|
|
26
26
|
import {
|
|
27
|
-
parseErc1155TransferToActionTransferIn,
|
|
28
|
-
parseErc1155TransferToActionTransferOut,
|
|
29
27
|
parseErc20TransferToActionTransferIn,
|
|
30
28
|
parseErc20TransferToActionTransferOut,
|
|
31
29
|
parseErc721TransferToActionTransferIn,
|
|
32
30
|
parseErc721TransferToActionTransferOut,
|
|
31
|
+
parseErc1155TransferToActionTransferIn,
|
|
32
|
+
parseErc1155TransferToActionTransferOut,
|
|
33
33
|
parseInternalTransactionToActionTransferIn,
|
|
34
34
|
parseInternalTransactionToActionTransferOut,
|
|
35
35
|
} from '../parsers/transfer'
|
|
@@ -130,10 +130,9 @@ export const analyzeSeaport = async <
|
|
|
130
130
|
// 合致する internal transfer が 1 つ以下の場合は includeNativeToken を true にする
|
|
131
131
|
mut_includeNativeToken = true
|
|
132
132
|
break
|
|
133
|
-
} else {
|
|
134
|
-
// 合致する internal transfer が複数の場合は pattern 不一致として undefined を返す
|
|
135
|
-
return undefined
|
|
136
133
|
}
|
|
134
|
+
// 合致する internal transfer が複数の場合は pattern 不一致として undefined を返す
|
|
135
|
+
return undefined
|
|
137
136
|
}
|
|
138
137
|
case 1: {
|
|
139
138
|
// ERC20
|
|
@@ -155,24 +154,24 @@ export const analyzeSeaport = async <
|
|
|
155
154
|
// 合致する ERC20 transfer が 1 つの場合は mut_offerTransfers に追加
|
|
156
155
|
mut_offerTransfers.push(erc20OfferTransfers[0])
|
|
157
156
|
break
|
|
158
|
-
}
|
|
157
|
+
}
|
|
158
|
+
if (erc20OfferTransfers.length > 1) {
|
|
159
159
|
// 合致する ERC20 transfer が複数の場合は pattern 不一致として undefined を返す
|
|
160
160
|
return undefined
|
|
161
|
+
}
|
|
162
|
+
// 合致する ERC20 transfer がない場合、同一 token に対する別の transfer が存在すれば spam として処理・なければ pattern 不一致として undefined を返す
|
|
163
|
+
if (
|
|
164
|
+
erc20Transfers.some(
|
|
165
|
+
(transfer) =>
|
|
166
|
+
transfer.token.contractAddress === offerItem.token &&
|
|
167
|
+
transfer.value === amount,
|
|
168
|
+
)
|
|
169
|
+
) {
|
|
170
|
+
mut_isSpam = true
|
|
161
171
|
} else {
|
|
162
|
-
|
|
163
|
-
if (
|
|
164
|
-
erc20Transfers.some(
|
|
165
|
-
(transfer) =>
|
|
166
|
-
transfer.token.contractAddress === offerItem.token &&
|
|
167
|
-
transfer.value === amount,
|
|
168
|
-
)
|
|
169
|
-
) {
|
|
170
|
-
mut_isSpam = true
|
|
171
|
-
} else {
|
|
172
|
-
return undefined
|
|
173
|
-
}
|
|
174
|
-
break
|
|
172
|
+
return undefined
|
|
175
173
|
}
|
|
174
|
+
break
|
|
176
175
|
}
|
|
177
176
|
case 2: {
|
|
178
177
|
// ERC721
|
|
@@ -187,24 +186,24 @@ export const analyzeSeaport = async <
|
|
|
187
186
|
// 合致する ERC721 transfer が 1 つの場合は mut_offerTransfers に追加
|
|
188
187
|
mut_offerTransfers.push(erc721OfferTransfers[0])
|
|
189
188
|
break
|
|
190
|
-
}
|
|
189
|
+
}
|
|
190
|
+
if (erc721OfferTransfers.length > 1) {
|
|
191
191
|
// 合致する ERC721 transfer が複数の場合は pattern 不一致として undefined を返す
|
|
192
192
|
return undefined
|
|
193
|
+
}
|
|
194
|
+
// 合致する ERC721 transfer がない場合、同一 token に対する別の transfer が存在すれば spam として処理・なければ pattern 不一致として undefined を返す
|
|
195
|
+
if (
|
|
196
|
+
erc721Transfers.some(
|
|
197
|
+
(transfer) =>
|
|
198
|
+
transfer.token.contractAddress === offerItem.token &&
|
|
199
|
+
transfer.tokenId === offerItem.identifier,
|
|
200
|
+
)
|
|
201
|
+
) {
|
|
202
|
+
mut_isSpam = true
|
|
193
203
|
} else {
|
|
194
|
-
|
|
195
|
-
if (
|
|
196
|
-
erc721Transfers.some(
|
|
197
|
-
(transfer) =>
|
|
198
|
-
transfer.token.contractAddress === offerItem.token &&
|
|
199
|
-
transfer.tokenId === offerItem.identifier,
|
|
200
|
-
)
|
|
201
|
-
) {
|
|
202
|
-
mut_isSpam = true
|
|
203
|
-
} else {
|
|
204
|
-
return undefined
|
|
205
|
-
}
|
|
206
|
-
break
|
|
204
|
+
return undefined
|
|
207
205
|
}
|
|
206
|
+
break
|
|
208
207
|
}
|
|
209
208
|
case 3: {
|
|
210
209
|
// ERC1155
|
|
@@ -220,24 +219,24 @@ export const analyzeSeaport = async <
|
|
|
220
219
|
// 合致する ERC1155 transfer が 1 つの場合は mut_offerTransfers に追加
|
|
221
220
|
mut_offerTransfers.push(erc1155OfferTransfers[0])
|
|
222
221
|
break
|
|
223
|
-
}
|
|
222
|
+
}
|
|
223
|
+
if (erc1155OfferTransfers.length > 1) {
|
|
224
224
|
// 合致する ERC1155 transfer が複数の場合は pattern 不一致として undefined を返す
|
|
225
225
|
return undefined
|
|
226
|
+
}
|
|
227
|
+
// 合致する ERC1155 transfer がない場合、同一 token に対する別の transfer が存在すれば spam として処理・なければ pattern 不一致として undefined を返す
|
|
228
|
+
if (
|
|
229
|
+
erc1155Transfers.some(
|
|
230
|
+
(transfer) =>
|
|
231
|
+
transfer.token.contractAddress === offerItem.token &&
|
|
232
|
+
transfer.id === offerItem.identifier,
|
|
233
|
+
)
|
|
234
|
+
) {
|
|
235
|
+
mut_isSpam = true
|
|
226
236
|
} else {
|
|
227
|
-
|
|
228
|
-
if (
|
|
229
|
-
erc1155Transfers.some(
|
|
230
|
-
(transfer) =>
|
|
231
|
-
transfer.token.contractAddress === offerItem.token &&
|
|
232
|
-
transfer.id === offerItem.identifier,
|
|
233
|
-
)
|
|
234
|
-
) {
|
|
235
|
-
mut_isSpam = true
|
|
236
|
-
} else {
|
|
237
|
-
return undefined
|
|
238
|
-
}
|
|
239
|
-
break
|
|
237
|
+
return undefined
|
|
240
238
|
}
|
|
239
|
+
break
|
|
241
240
|
}
|
|
242
241
|
}
|
|
243
242
|
}
|
|
@@ -267,10 +266,9 @@ export const analyzeSeaport = async <
|
|
|
267
266
|
// 合致する internal transfer が 1 つ以下の場合は includeNativeToken を true にする
|
|
268
267
|
mut_includeNativeToken = true
|
|
269
268
|
break
|
|
270
|
-
} else {
|
|
271
|
-
// 合致する internal transfer が複数の場合は pattern 不一致として undefined を返す
|
|
272
|
-
return undefined
|
|
273
269
|
}
|
|
270
|
+
// 合致する internal transfer が複数の場合は pattern 不一致として undefined を返す
|
|
271
|
+
return undefined
|
|
274
272
|
}
|
|
275
273
|
case 1: {
|
|
276
274
|
// ERC20
|
|
@@ -292,24 +290,24 @@ export const analyzeSeaport = async <
|
|
|
292
290
|
// 合致する ERC20 transfer が 1 つの場合は mut_considerationTransfers に追加
|
|
293
291
|
mut_considerationTransfers.push(erc20ConsiderationTransfers[0])
|
|
294
292
|
break
|
|
295
|
-
}
|
|
293
|
+
}
|
|
294
|
+
if (erc20ConsiderationTransfers.length > 1) {
|
|
296
295
|
// 合致する ERC20 transfer が複数の場合は pattern 不一致として undefined を返す
|
|
297
296
|
return undefined
|
|
297
|
+
}
|
|
298
|
+
// 合致する ERC20 transfer がない場合、同一 token に対する別の transfer が存在すれば spam として処理・なければ pattern 不一致として undefined を返す
|
|
299
|
+
if (
|
|
300
|
+
erc20Transfers.some(
|
|
301
|
+
(transfer) =>
|
|
302
|
+
transfer.token.contractAddress === considerationItem.token &&
|
|
303
|
+
transfer.value === considerationItem.amount,
|
|
304
|
+
)
|
|
305
|
+
) {
|
|
306
|
+
mut_isSpam = true
|
|
298
307
|
} else {
|
|
299
|
-
|
|
300
|
-
if (
|
|
301
|
-
erc20Transfers.some(
|
|
302
|
-
(transfer) =>
|
|
303
|
-
transfer.token.contractAddress === considerationItem.token &&
|
|
304
|
-
transfer.value === considerationItem.amount,
|
|
305
|
-
)
|
|
306
|
-
) {
|
|
307
|
-
mut_isSpam = true
|
|
308
|
-
} else {
|
|
309
|
-
return undefined
|
|
310
|
-
}
|
|
311
|
-
break
|
|
308
|
+
return undefined
|
|
312
309
|
}
|
|
310
|
+
break
|
|
313
311
|
}
|
|
314
312
|
case 2: {
|
|
315
313
|
// ERC721
|
|
@@ -324,24 +322,24 @@ export const analyzeSeaport = async <
|
|
|
324
322
|
// 合致する ERC721 transfer が 1 つの場合は mut_considerationTransfers に追加
|
|
325
323
|
mut_considerationTransfers.push(erc721ConsiderationTransfers[0])
|
|
326
324
|
break
|
|
327
|
-
}
|
|
325
|
+
}
|
|
326
|
+
if (erc721ConsiderationTransfers.length > 1) {
|
|
328
327
|
// 合致する ERC721 transfer が複数の場合は pattern 不一致として undefined を返す
|
|
329
328
|
return undefined
|
|
329
|
+
}
|
|
330
|
+
// 合致する ERC721 transfer がない場合、同一 token に対する別の transfer が存在すれば spam として処理・なければ pattern 不一致として undefined を返す
|
|
331
|
+
if (
|
|
332
|
+
erc721Transfers.some(
|
|
333
|
+
(transfer) =>
|
|
334
|
+
transfer.token.contractAddress === considerationItem.token &&
|
|
335
|
+
transfer.tokenId === considerationItem.identifier,
|
|
336
|
+
)
|
|
337
|
+
) {
|
|
338
|
+
mut_isSpam = true
|
|
330
339
|
} else {
|
|
331
|
-
|
|
332
|
-
if (
|
|
333
|
-
erc721Transfers.some(
|
|
334
|
-
(transfer) =>
|
|
335
|
-
transfer.token.contractAddress === considerationItem.token &&
|
|
336
|
-
transfer.tokenId === considerationItem.identifier,
|
|
337
|
-
)
|
|
338
|
-
) {
|
|
339
|
-
mut_isSpam = true
|
|
340
|
-
} else {
|
|
341
|
-
return undefined
|
|
342
|
-
}
|
|
343
|
-
break
|
|
340
|
+
return undefined
|
|
344
341
|
}
|
|
342
|
+
break
|
|
345
343
|
}
|
|
346
344
|
case 3: {
|
|
347
345
|
// ERC1155
|
|
@@ -357,24 +355,24 @@ export const analyzeSeaport = async <
|
|
|
357
355
|
// 合致する ERC1155 transfer が 1 つの場合は mut_considerationTransfers に追加
|
|
358
356
|
mut_considerationTransfers.push(erc1155ConsiderationTransfers[0])
|
|
359
357
|
break
|
|
360
|
-
}
|
|
358
|
+
}
|
|
359
|
+
if (erc1155ConsiderationTransfers.length > 1) {
|
|
361
360
|
// 合致する ERC1155 transfer が複数の場合は pattern 不一致として undefined を返す
|
|
362
361
|
return undefined
|
|
362
|
+
}
|
|
363
|
+
// 合致する ERC1155 transfer がない場合、同一 token に対する別の transfer が存在すれば spam として処理・なければ pattern 不一致として undefined を返す
|
|
364
|
+
if (
|
|
365
|
+
erc1155Transfers.some(
|
|
366
|
+
(transfer) =>
|
|
367
|
+
transfer.token.contractAddress === considerationItem.token &&
|
|
368
|
+
transfer.id === considerationItem.identifier,
|
|
369
|
+
)
|
|
370
|
+
) {
|
|
371
|
+
mut_isSpam = true
|
|
363
372
|
} else {
|
|
364
|
-
|
|
365
|
-
if (
|
|
366
|
-
erc1155Transfers.some(
|
|
367
|
-
(transfer) =>
|
|
368
|
-
transfer.token.contractAddress === considerationItem.token &&
|
|
369
|
-
transfer.id === considerationItem.identifier,
|
|
370
|
-
)
|
|
371
|
-
) {
|
|
372
|
-
mut_isSpam = true
|
|
373
|
-
} else {
|
|
374
|
-
return undefined
|
|
375
|
-
}
|
|
376
|
-
break
|
|
373
|
+
return undefined
|
|
377
374
|
}
|
|
375
|
+
break
|
|
378
376
|
}
|
|
379
377
|
}
|
|
380
378
|
}
|
|
@@ -503,7 +501,8 @@ const generateNormalAction = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
503
501
|
}
|
|
504
502
|
if (transfer.from === recipient && transfer.to === recipient) {
|
|
505
503
|
continue
|
|
506
|
-
}
|
|
504
|
+
}
|
|
505
|
+
if (transfer.from === recipient || transfer.to === recipient) {
|
|
507
506
|
const direction = transfer.from === recipient ? 'out' : 'in'
|
|
508
507
|
switch (transfer.type) {
|
|
509
508
|
case 'InternalTransaction': {
|
|
@@ -566,9 +565,7 @@ const generateNormalAction = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
566
565
|
break
|
|
567
566
|
}
|
|
568
567
|
}
|
|
569
|
-
} else if (transfer.type
|
|
570
|
-
continue
|
|
571
|
-
} else {
|
|
568
|
+
} else if (transfer.type !== 'InternalTransaction') {
|
|
572
569
|
mut_existNoRecipientTransfer = true
|
|
573
570
|
break
|
|
574
571
|
}
|
|
@@ -599,7 +596,8 @@ const generateNormalAction = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
599
596
|
]) {
|
|
600
597
|
if (transfer.from === offerer && transfer.to === offerer) {
|
|
601
598
|
continue
|
|
602
|
-
}
|
|
599
|
+
}
|
|
600
|
+
if (transfer.from === offerer || transfer.to === offerer) {
|
|
603
601
|
const direction = transfer.from === offerer ? 'out' : 'in'
|
|
604
602
|
switch (transfer.type) {
|
|
605
603
|
case 'InternalTransaction': {
|
|
@@ -662,9 +660,7 @@ const generateNormalAction = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
662
660
|
break
|
|
663
661
|
}
|
|
664
662
|
}
|
|
665
|
-
} else if (transfer.type
|
|
666
|
-
continue
|
|
667
|
-
} else {
|
|
663
|
+
} else if (transfer.type !== 'InternalTransaction') {
|
|
668
664
|
return undefined
|
|
669
665
|
}
|
|
670
666
|
}
|
|
@@ -722,7 +718,8 @@ const generateAccountActions = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
722
718
|
) {
|
|
723
719
|
// direction: none が含まれる場合は undefined を返す
|
|
724
720
|
return undefined
|
|
725
|
-
}
|
|
721
|
+
}
|
|
722
|
+
if (
|
|
726
723
|
transfers.every(
|
|
727
724
|
(transfer) =>
|
|
728
725
|
includesEvmAddressId({
|
|
@@ -754,7 +751,8 @@ const generateAccountActions = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
754
751
|
],
|
|
755
752
|
}
|
|
756
753
|
})
|
|
757
|
-
}
|
|
754
|
+
}
|
|
755
|
+
if (
|
|
758
756
|
transfers.every((transfer) =>
|
|
759
757
|
includesEvmAddressId({
|
|
760
758
|
addresses: accountAddresses,
|
|
@@ -826,7 +824,8 @@ const generateAccountActions = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
826
824
|
],
|
|
827
825
|
},
|
|
828
826
|
]
|
|
829
|
-
}
|
|
827
|
+
}
|
|
828
|
+
if (
|
|
830
829
|
inTransfers.every((transfer) => transfer.asset.type === 'Nft') &&
|
|
831
830
|
outTransfers.every((transfer) => transfer.asset.type === 'CryptoCurrency')
|
|
832
831
|
) {
|
|
@@ -870,7 +869,8 @@ const generateAccountActions = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
870
869
|
}),
|
|
871
870
|
},
|
|
872
871
|
]
|
|
873
|
-
}
|
|
872
|
+
}
|
|
873
|
+
if (
|
|
874
874
|
inTransfers.every((transfer) => transfer.asset.type === 'CryptoCurrency') &&
|
|
875
875
|
outTransfers.every((transfer) => transfer.asset.type === 'Nft')
|
|
876
876
|
) {
|
|
@@ -914,37 +914,36 @@ const generateAccountActions = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
914
914
|
}),
|
|
915
915
|
},
|
|
916
916
|
]
|
|
917
|
-
} else {
|
|
918
|
-
// それ以外の場合は trade action 作成
|
|
919
|
-
return [
|
|
920
|
-
{
|
|
921
|
-
type: 'NormalAccountAction',
|
|
922
|
-
action: 'trade',
|
|
923
|
-
source,
|
|
924
|
-
evidence: 'contract',
|
|
925
|
-
timestamp: action.timestamp,
|
|
926
|
-
order: 0,
|
|
927
|
-
comment: action.comment,
|
|
928
|
-
app: action.app,
|
|
929
|
-
transfers: [
|
|
930
|
-
...inTransfers.map((transfer) => ({
|
|
931
|
-
from: transfer.from,
|
|
932
|
-
to: transfer.to,
|
|
933
|
-
price: transfer.price,
|
|
934
|
-
asset: transfer.asset,
|
|
935
|
-
amount: transfer.amount,
|
|
936
|
-
direction: 'in' as const,
|
|
937
|
-
})),
|
|
938
|
-
...outTransfers.map((transfer) => ({
|
|
939
|
-
from: transfer.from,
|
|
940
|
-
to: transfer.to,
|
|
941
|
-
price: transfer.price,
|
|
942
|
-
asset: transfer.asset,
|
|
943
|
-
amount: transfer.amount,
|
|
944
|
-
direction: 'out' as const,
|
|
945
|
-
})),
|
|
946
|
-
],
|
|
947
|
-
},
|
|
948
|
-
]
|
|
949
917
|
}
|
|
918
|
+
// それ以外の場合は trade action 作成
|
|
919
|
+
return [
|
|
920
|
+
{
|
|
921
|
+
type: 'NormalAccountAction',
|
|
922
|
+
action: 'trade',
|
|
923
|
+
source,
|
|
924
|
+
evidence: 'contract',
|
|
925
|
+
timestamp: action.timestamp,
|
|
926
|
+
order: 0,
|
|
927
|
+
comment: action.comment,
|
|
928
|
+
app: action.app,
|
|
929
|
+
transfers: [
|
|
930
|
+
...inTransfers.map((transfer) => ({
|
|
931
|
+
from: transfer.from,
|
|
932
|
+
to: transfer.to,
|
|
933
|
+
price: transfer.price,
|
|
934
|
+
asset: transfer.asset,
|
|
935
|
+
amount: transfer.amount,
|
|
936
|
+
direction: 'in' as const,
|
|
937
|
+
})),
|
|
938
|
+
...outTransfers.map((transfer) => ({
|
|
939
|
+
from: transfer.from,
|
|
940
|
+
to: transfer.to,
|
|
941
|
+
price: transfer.price,
|
|
942
|
+
asset: transfer.asset,
|
|
943
|
+
amount: transfer.amount,
|
|
944
|
+
direction: 'out' as const,
|
|
945
|
+
})),
|
|
946
|
+
],
|
|
947
|
+
},
|
|
948
|
+
]
|
|
950
949
|
}
|
package/analyzer/spam/analyze.ts
CHANGED
|
@@ -9,10 +9,10 @@ import type { TransactionDecoded } from '../../types'
|
|
|
9
9
|
import { createEvmAddressId } from '../../utils'
|
|
10
10
|
import { createEvmActionSource } from '../../utils/create'
|
|
11
11
|
import {
|
|
12
|
-
parseErc1155TransferToActionTransferIn,
|
|
13
12
|
parseErc20TransferToActionTransferIn,
|
|
14
13
|
parseErc20TransferToActionTransferNone,
|
|
15
14
|
parseErc721TransferToActionTransferIn,
|
|
15
|
+
parseErc1155TransferToActionTransferIn,
|
|
16
16
|
parseInternalTransactionToActionTransferNone,
|
|
17
17
|
parseTransactionValueToActionTransferNone,
|
|
18
18
|
} from '../parsers/transfer'
|
package/analyzer/swap/analyze.ts
CHANGED
|
@@ -234,16 +234,16 @@ const generateNormalAction = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
234
234
|
swap.transferOut.type === 'InternalTransaction'
|
|
235
235
|
) {
|
|
236
236
|
return generateNormalActionAtomicArbitrage(swap, chain, timestamp)
|
|
237
|
-
}
|
|
237
|
+
}
|
|
238
|
+
if (
|
|
238
239
|
swap.transferIn.type === 'Erc20Transfer' &&
|
|
239
240
|
swap.transferOut.type === 'Erc20Transfer' &&
|
|
240
241
|
swap.transferIn.token.contractAddress ===
|
|
241
242
|
swap.transferOut.token.contractAddress
|
|
242
243
|
) {
|
|
243
244
|
return generateNormalActionAtomicArbitrage(swap, chain, timestamp)
|
|
244
|
-
} else {
|
|
245
|
-
return generateNormalActionTrade(swap, chain, timestamp)
|
|
246
245
|
}
|
|
246
|
+
return generateNormalActionTrade(swap, chain, timestamp)
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
const generateNormalActionAtomicArbitrage = <
|
|
@@ -391,7 +391,7 @@ const createSwapFromUniv2SwapLog = <
|
|
|
391
391
|
)
|
|
392
392
|
|
|
393
393
|
// なければ undefined を返す
|
|
394
|
-
if (transferIn
|
|
394
|
+
if (transferIn === undefined || transferOut === undefined) {
|
|
395
395
|
return undefined
|
|
396
396
|
}
|
|
397
397
|
|
|
@@ -442,7 +442,7 @@ const createSwapFromUniv3SwapLog = <
|
|
|
442
442
|
)
|
|
443
443
|
|
|
444
444
|
// なければ undefined を返す
|
|
445
|
-
if (transferIn
|
|
445
|
+
if (transferIn === undefined || transferOut === undefined) {
|
|
446
446
|
return undefined
|
|
447
447
|
}
|
|
448
448
|
|
|
@@ -479,7 +479,7 @@ const createSwapFromTraderJoeLBPairSwapLog = <
|
|
|
479
479
|
)
|
|
480
480
|
|
|
481
481
|
// なければ undefined を返す
|
|
482
|
-
if (transferIn
|
|
482
|
+
if (transferIn === undefined || transferOut === undefined) {
|
|
483
483
|
return undefined
|
|
484
484
|
}
|
|
485
485
|
|
|
@@ -4,14 +4,8 @@ import type { Chain } from '../../chains'
|
|
|
4
4
|
import type { TransactionDecoded } from '../../types'
|
|
5
5
|
import { createEvmAddressId } from '../../utils'
|
|
6
6
|
import { createEvmActionSource } from '../../utils/create'
|
|
7
|
-
import {
|
|
8
|
-
parseErc1155TransferToActionTransferNone,
|
|
9
|
-
parseErc20TransferToActionTransferNone,
|
|
10
|
-
parseErc721TransferToActionTransferNone,
|
|
11
|
-
parseInternalTransactionToActionTransferNone,
|
|
12
|
-
parseTransactionValueToActionTransferNone,
|
|
13
|
-
} from '../parsers/transfer'
|
|
14
7
|
import type { AnalyzeParameters, AnalyzeReturnType } from '../types'
|
|
8
|
+
import { createTransfersByTransaction } from '../utils/createTransfersByTransaction'
|
|
15
9
|
|
|
16
10
|
export const analyzeTransfer = <Price extends CryptoCurrencyPrice | undefined>({
|
|
17
11
|
chain,
|
|
@@ -54,113 +48,14 @@ const generateNormalActions = <Price extends CryptoCurrencyPrice | undefined>(
|
|
|
54
48
|
chain: Chain,
|
|
55
49
|
transaction: TransactionDecoded<Price>,
|
|
56
50
|
): NormalActionTransfer[] => {
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
const mut_actions: NormalActionTransfer[] = []
|
|
68
|
-
if (value > 0 && to !== null) {
|
|
69
|
-
mut_actions.push({
|
|
70
|
-
type: 'NormalAction',
|
|
71
|
-
action: 'transfer',
|
|
72
|
-
evidence: 'none',
|
|
73
|
-
timestamp: Number(block.timestamp) * 1000,
|
|
74
|
-
comment: undefined,
|
|
75
|
-
app,
|
|
76
|
-
transfers: [
|
|
77
|
-
parseTransactionValueToActionTransferNone({
|
|
78
|
-
chain,
|
|
79
|
-
transaction,
|
|
80
|
-
}),
|
|
81
|
-
],
|
|
82
|
-
})
|
|
83
|
-
}
|
|
84
|
-
for (const internalTx of internalTransactions.filter(
|
|
85
|
-
({ value }) => value > 0,
|
|
86
|
-
)) {
|
|
87
|
-
if (internalTx.to === undefined) {
|
|
88
|
-
continue
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
mut_actions.push({
|
|
92
|
-
type: 'NormalAction',
|
|
93
|
-
action: 'transfer',
|
|
94
|
-
evidence: 'none',
|
|
95
|
-
timestamp: Number(block.timestamp) * 1000,
|
|
96
|
-
comment: undefined,
|
|
97
|
-
app,
|
|
98
|
-
transfers: [
|
|
99
|
-
parseInternalTransactionToActionTransferNone({
|
|
100
|
-
chain,
|
|
101
|
-
internalTransaction: internalTx,
|
|
102
|
-
}),
|
|
103
|
-
],
|
|
104
|
-
})
|
|
105
|
-
}
|
|
106
|
-
for (const transfer of [
|
|
107
|
-
...erc20Transfers,
|
|
108
|
-
...erc721Transfers,
|
|
109
|
-
...erc1155Transfers,
|
|
110
|
-
].sort((a, b) => a.logIndex - b.logIndex)) {
|
|
111
|
-
switch (transfer.type) {
|
|
112
|
-
case 'Erc20Transfer': {
|
|
113
|
-
mut_actions.push({
|
|
114
|
-
type: 'NormalAction',
|
|
115
|
-
action: 'transfer',
|
|
116
|
-
evidence: 'none',
|
|
117
|
-
timestamp: Number(block.timestamp) * 1000,
|
|
118
|
-
comment: undefined,
|
|
119
|
-
app,
|
|
120
|
-
transfers: [
|
|
121
|
-
parseErc20TransferToActionTransferNone({
|
|
122
|
-
chainId: chain.id,
|
|
123
|
-
transfer,
|
|
124
|
-
}),
|
|
125
|
-
],
|
|
126
|
-
})
|
|
127
|
-
break
|
|
128
|
-
}
|
|
129
|
-
case 'Erc721Transfer': {
|
|
130
|
-
mut_actions.push({
|
|
131
|
-
type: 'NormalAction',
|
|
132
|
-
action: 'transfer',
|
|
133
|
-
evidence: 'none',
|
|
134
|
-
timestamp: Number(block.timestamp) * 1000,
|
|
135
|
-
comment: undefined,
|
|
136
|
-
app,
|
|
137
|
-
transfers: [
|
|
138
|
-
parseErc721TransferToActionTransferNone({
|
|
139
|
-
chainId: chain.id,
|
|
140
|
-
transfer,
|
|
141
|
-
}),
|
|
142
|
-
],
|
|
143
|
-
})
|
|
144
|
-
break
|
|
145
|
-
}
|
|
146
|
-
case 'Erc1155Transfer': {
|
|
147
|
-
mut_actions.push({
|
|
148
|
-
type: 'NormalAction',
|
|
149
|
-
action: 'transfer',
|
|
150
|
-
evidence: 'none',
|
|
151
|
-
timestamp: Number(block.timestamp) * 1000,
|
|
152
|
-
comment: undefined,
|
|
153
|
-
app,
|
|
154
|
-
transfers: [
|
|
155
|
-
parseErc1155TransferToActionTransferNone({
|
|
156
|
-
chainId: chain.id,
|
|
157
|
-
transfer,
|
|
158
|
-
}),
|
|
159
|
-
],
|
|
160
|
-
})
|
|
161
|
-
break
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return mut_actions
|
|
51
|
+
const transfers = createTransfersByTransaction(chain, transaction)
|
|
52
|
+
return transfers.map((transfer) => ({
|
|
53
|
+
type: 'NormalAction',
|
|
54
|
+
action: 'transfer',
|
|
55
|
+
evidence: 'none',
|
|
56
|
+
timestamp: Number(transaction.block.timestamp) * 1000,
|
|
57
|
+
comment: undefined,
|
|
58
|
+
app: transaction.app,
|
|
59
|
+
transfers: [transfer],
|
|
60
|
+
}))
|
|
166
61
|
}
|