getNodeHome
customNhid 함수를 통해 nodehome network에 등록되어있는 토큰인지 검사하고 getToNetwork를 활용하여 목적지 네트워크에 브릿지가 가능한지 체크합니다.
const ethers = require('ethers');
const network = "ETHEREUM"
const toNetwork = "KLAYTN"
const contract_address = "0xdF9c65B589e1286D4361EcFFa516e1fbfA4526df"
const typed = "token"
const rpcUrl = "https://ethereum.publicnode.com"
const toNetworkHex = "0X4B4C4159544E"
const bridgeConfigContractAddress = "0xf643a4fb01cbbfb561cc906c1f37d5718ef3bba3"
const getNodeHomeAsync = async(network, toNetwork, contract_address, typed) => {
try {
const provider = new ethers.providers.JsonRpcProvider(rpcUrl);
const bridgeConfigContract = new ethers.Contract(
bridgeConfigContractAddress,
abiBridgeConfig,
provider
);
const customNhidResponse = await bridgeConfigContract.customNhid(contract_address);
const customNhid = BigInt(customNhidResponse).toString(16);
if (customNhid != "0") { // customNhid가 0이면 노드홈체인에 등록안되어 있는 상태
const getTokNetworkResponse = await bridgeConfigContract.getToNetwork(contract_address, toNetworkHex);
const getTokNetwork = parseInt(getTokNetworkResponse, 16) // getToNetwork가 0이면 setup 등록된값이있으면 move로 bridge 가능
return {
result: "OK",
type: getTokNetwork !== "0" ? typed : "setup",
};
} else {
return {
result: "OK",
type: "setup"
};
}
} catch (e) {
return {
result: "FAIL",
error: e.message
};
}
}
Last updated