import { createBridge, ChainKind, BridgeAPI } from "@omni-bridge/core"
import { createEvmBuilder } from "@omni-bridge/evm"
const bridge = createBridge({ network: "mainnet" })
const evm = createEvmBuilder({ network: "mainnet", chain: ChainKind.Eth })
const api = new BridgeAPI("mainnet")
// Initiate transfer
const validated = await bridge.validateTransfer({
token: "eth:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
amount: 1_000_000n,
sender: "eth:0x...",
recipient: "near:alice.near",
fee: 0n,
nativeFee: 0n,
})
const tx = evm.buildTransfer(validated)
const hash = await wallet.sendTransaction(tx)
// Track until complete
let lastStatus = ""
while (true) {
const statuses = await api.getTransferStatus({ transactionHash: hash })
const latest = statuses[statuses.length - 1]
if (latest !== lastStatus) {
console.log(`Status: ${latest}`)
lastStatus = latest
}
if (latest === "Finalised" || latest === "Claimed") {
console.log("Done!")
break
}
await new Promise(r => setTimeout(r, 15_000))
}