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