@arcana/ca-sdk
Version:
Arcana Network's chain abstraction SDK for unified balance in Web3 apps
34 lines (33 loc) • 916 B
JavaScript
import { getTokenTxFunction } from "../../utils";
const isERC20TokenTransfer = (input) => {
if (input.evm.tx) {
const { data, to } = input.evm.tx;
if (!data) {
return false;
}
const token = input.chainList.getTokenByAddress(input.chain.id, to);
const isTokenSupported = !!token;
if (isTokenSupported && data) {
const { functionName } = getTokenTxFunction(data);
if (functionName === "transfer") {
return true;
}
}
}
return false;
};
const isNativeTokenTransfer = (input) => {
if (input.evm.tx) {
const { value } = input.evm.tx;
if (!value)
return false;
try {
return BigInt(value) > 0n;
}
catch {
return false;
}
}
return false;
};
export { isERC20TokenTransfer, isNativeTokenTransfer };