getNetworkFee

BridgeConfig의 Contract 함수인 getNetworkFeeIdxByName 와 getNetworkFeeByIdx를 통해 Bridge Network Fee를 산출합니다.

const ethers = require('ethers');

const network = "ETHEREUM"
const toNetwork = "KLAYTN"
const toNetworkHex = "0X4B4C4159544E"
const rpcUrl = "https://ethereum.publicnode.com"
const bridgeConfigContractAddress = "0xf643a4fb01cbbfb561cc906c1f37d5718ef3bba3"

const getNetworkFeeAsync = async(network, toNetwork) => {
    try {
        const provider = new ethers.providers.JsonRpcProvider(rpcUrl);

        const bridgeConfigContract = new ethers.Contract(
            bridgeConfigContractAddress,
            abiBridgeConfig,
            provider
        );

        const networkIdx = await bridgeConfigContract.getNetworkFeeIdxByName(toNetworkHex);

        if (networkIdx === ethers.constants.MaxUint32) {
            throw "not found";
        }

        const networkFee = await bridgeConfigContract.getNetworkFeeByIdx(networkIdx);

        console.log("nftFee", networkFee.nftFee.toString())
        console.log("tokenFee", networkFee.tokenFee.toString())
        console.log("setupFee", networkFee.regFee.toString())

        /**
        * nftFee 10000000000000000000
        * tokenFee 10000000000000000000
        * setupFee 20000000000000000000
        */

        return {
            result: "OK",
            networkFee: networkFee
        };

    } catch (e) {
        console.log(e);
        return {
            result: "FAIL",
            error: e.message
        };
    }
}

Last updated