Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
shunjizhan committed Jul 5, 2024
1 parent dda7ad3 commit 8ef6051
Show file tree
Hide file tree
Showing 5 changed files with 218 additions and 232 deletions.
14 changes: 7 additions & 7 deletions src/__tests__/relay.test.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
import { AcalaJsonRpcProvider } from '@acala-network/eth-providers';
import { CHAIN_ID_ACALA } from '@certusone/wormhole-sdk';
import { ERC20__factory } from '@acala-network/asset-router/dist/typechain-types';
import { ROUTER_TOKEN_INFO } from '@acala-network/asset-router/dist/consts';
import { describe, expect, it } from 'vitest';

import { ETH_RPC } from '../consts';
import { TEST_ADDR_RELAYER } from './testConsts';
import { VAA_TRANSFER_10_USDC_ETH_TO_ACALA } from './vaa';
import { VAA_10_USDC_ETH_TO_ACALA } from './vaa';
import { relay } from './testUtils';

const provider = new AcalaJsonRpcProvider(ETH_RPC.LOCAL);

const USDC_ADDR = '0x07DF96D1341A7d16Ba1AD431E2c847d978BC2bCe';
const USDC_ADDR = ROUTER_TOKEN_INFO.usdc.acalaAddr;
const USER_ADDR = '0xBbBBa9Ebe50f9456E106e6ef2992179182889999';

describe('/relay', () => {
it('relay USDC to user', async () => {
const dai = ERC20__factory.connect(USDC_ADDR, provider);
const curBalRelayer = (await dai.balanceOf(USER_ADDR)).toBigInt();
const usdc = ERC20__factory.connect(USDC_ADDR, provider);
const curBalRelayer = (await usdc.balanceOf(USER_ADDR)).toBigInt();
console.log({ curBalRelayer });

const result = await relay({
targetChain: CHAIN_ID_ACALA,
signedVAA: VAA_TRANSFER_10_USDC_ETH_TO_ACALA,
signedVAA: VAA_10_USDC_ETH_TO_ACALA,
});
expect(result.data?.status).to.eq(1);

const afterBalRelayer = (await dai.balanceOf(USER_ADDR)).toBigInt();
const afterBalRelayer = (await usdc.balanceOf(USER_ADDR)).toBigInt();
console.log({ afterBalRelayer });

expect(afterBalRelayer - curBalRelayer).to.eq(10467941n); // 10.467941 USDC
Expand Down
224 changes: 0 additions & 224 deletions src/__tests__/route.test.ts

This file was deleted.

63 changes: 63 additions & 0 deletions src/__tests__/routeWormhole.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import { AcalaJsonRpcProvider } from '@acala-network/eth-providers';
import { CHAIN_ID_AVAX } from '@certusone/wormhole-sdk';
import { ERC20__factory } from '@certusone/wormhole-sdk/lib/cjs/ethers-contracts';
import { ROUTER_TOKEN_INFO } from '@acala-network/asset-router/dist/consts';
import { Wallet } from 'ethers';
import { describe, expect, it } from 'vitest';

import { ETH_RPC, PARA_ID } from '../consts';
import {
TEST_ADDR_RELAYER,
TEST_ADDR_USER,
TEST_KEY,
} from './testConsts';
import {
routeWormhole,
shouldRouteWormhole,
transferToRouter,
} from './testUtils';

const USDC_ADDR = ROUTER_TOKEN_INFO.usdc.acalaAddr;
const USDC_ORIGIN_ADDR = ROUTER_TOKEN_INFO.usdc.originAddr;

const provider = new AcalaJsonRpcProvider(ETH_RPC.LOCAL);
const relayer = new Wallet(TEST_KEY.RELAYER, provider);

describe('/routeWormhole', () => {
const usdc = ERC20__factory.connect(USDC_ADDR, provider);

it('when should route', async () => {
const routeWhArgs = {
targetChainId: String(CHAIN_ID_AVAX),
destAddr: TEST_ADDR_USER,
fromParaId: PARA_ID.BASILISK,
originAddr: USDC_ORIGIN_ADDR,
};

const res = await shouldRouteWormhole(routeWhArgs);
const { routerAddr } = res.data;

console.log('xcming to router ...');
await transferToRouter(routerAddr, relayer);

const curBalRelayer = (await usdc.balanceOf(TEST_ADDR_RELAYER)).toBigInt();
console.log({ curBalRelayer });

console.log('routing ...');
const routeRes = await routeWormhole(routeWhArgs);
const txHash = routeRes.data;
console.log(`route finished! txHash: ${txHash}`);

// router should be destroyed
expect((await usdc.balanceOf(routerAddr)).toBigInt()).to.eq(0n);
const routerCode = await provider.getCode(routerAddr);
expect(routerCode).to.eq('0x');

const afterBalRelayer = (await usdc.balanceOf(TEST_ADDR_RELAYER)).toBigInt();
console.log({ afterBalRelayer });

expect(afterBalRelayer - curBalRelayer).to.eq(40000000000000000n);
});

// describe.skip('when should not route', () => {})
});
Loading

0 comments on commit 8ef6051

Please sign in to comment.