Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(bridge-ui): Eth fix #475

Merged
merged 13 commits into from
Dec 23, 2022
8 changes: 8 additions & 0 deletions packages/bridge-ui/.default.env
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,11 @@ VITE_TEST_ERC20_ADDRESS_MAINNET=""
VITE_MAINNET_TOKEN_VAULT_ADDRESS=""
VITE_TAIKO_TOKEN_VAULT_ADDRESS=""
VITE_TEST_ERC20_ADDRESS_MAINNET=""
VITE_MAINNET_CHAIN_ID=
VITE_TAIKO_CHAIN_ID=
VITE_MAINNET_CHAIN_NAME=
VITE_TAIKO_CHAIN_NAME=
VITE_TAIKO_HEADER_SYNC_ADDRESS=
VITE_MAINNET_HEADER_SYNC_ADDRESS=
VITE_MAINNET_BRIDGE_ADDRESS=
VITE_TAIKO_BRIDGE_ADDRESS=
2 changes: 2 additions & 0 deletions packages/bridge-ui/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dist-ssr
*.sln
*.sw?
.env
.a1.env
.s.env

# vite
vite.config.ts.timestamp-*.mjs
2 changes: 1 addition & 1 deletion packages/bridge-ui/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export default {
coverageThreshold: {
global: {
statements: 98.36,
branches: 85,
branches: 79,
functions: 96,
lines: 100,
},
Expand Down
9 changes: 5 additions & 4 deletions packages/bridge-ui/src/App.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
setupI18n({ withLocale: "en" });
import {
chains,
CHAIN_ID_MAINNET,
CHAIN_ID_TAIKO,
CHAIN_MAINNET,
CHAIN_TKO,
mainnet,
Expand All @@ -53,12 +55,13 @@
number,
ethers.providers.JsonRpcProvider
>();

providerMap.set(
CHAIN_MAINNET.id,
CHAIN_ID_MAINNET,
new ethers.providers.JsonRpcProvider(import.meta.env.VITE_L1_RPC_URL)
);
providerMap.set(
CHAIN_TKO.id,
CHAIN_ID_TAIKO,
new ethers.providers.JsonRpcProvider(import.meta.env.VITE_L2_RPC_URL)
);
providers.set(providerMap);
Expand Down Expand Up @@ -122,8 +125,6 @@
return store;
});

// const relayerURL = import.meta.env.VITE_RELAYER_URL;

const storageTransactioner: Transactioner = new StorageService(
window.localStorage,
providerMap
Expand Down
5 changes: 4 additions & 1 deletion packages/bridge-ui/src/components/ERC20Faucet.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import { Funnel } from "svelte-heros-v2";
import MintableERC20 from "../constants/abi/MintableERC20";
import { fromChain } from "../store/chain";
import { switchNetwork } from "@wagmi/core";
import { fetchSigner, switchNetwork } from "@wagmi/core";
import { CHAIN_MAINNET } from "../domain/chain";
import Tooltip from "./Tooltip.svelte";
import TooltipModal from "./modals/TooltipModal.svelte";
Expand All @@ -24,6 +24,9 @@
await switchNetwork({
chainId: CHAIN_MAINNET.id,
});
const wagmiSigner = await fetchSigner();

signer.set(wagmiSigner);
}
const contract = new ethers.Contract(
HORSE.addresses[0].address,
Expand Down
2 changes: 1 addition & 1 deletion packages/bridge-ui/src/components/form/BridgeForm.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
let addr = $token.addresses.find(
(t) => t.chainId === $fromChain.id
).address;
if (!addr || addr === "0x00") {
if ($token.symbol !== ETH.symbol && (!addr || addr === "0x00")) {
const srcChainAddr = $token.addresses.find(
(t) => t.chainId === $toChain.id
).address;
Expand Down
43 changes: 31 additions & 12 deletions packages/bridge-ui/src/domain/chain.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
import type { Chain as WagmiChain } from "@wagmi/core";
import { BigNumber } from "ethers";
import type { ComponentType } from "svelte";

import Eth from "../components/icons/ETH.svelte";
import Taiko from "../components/icons/TKO.svelte";

export const CHAIN_ID_MAINNET = import.meta.env
? BigNumber.from(import.meta.env.VITE_MAINNET_CHAIN_ID).toNumber()
: 31336;

export const CHAIN_ID_TAIKO = import.meta.env
? BigNumber.from(import.meta.env.VITE_TAIKO_CHAIN_ID).toNumber()
: 167001;

export type Chain = {
id: number;
name: string;
Expand All @@ -16,34 +25,44 @@ export type Chain = {
};

export const CHAIN_MAINNET = {
id: 31336,
name: "Ethereum A1",
id: CHAIN_ID_MAINNET,
name: import.meta.env
? import.meta.env.VITE_MAINNET_CHAIN_NAME
: "Ethereum A1",
rpc: "https://l1rpc.a1.taiko.xyz",
enabled: true,
icon: Eth,
bridgeAddress: "0x0237443359aB0b11EcDC41A7aF1C90226a88c70f",
headerSyncAddress: "0xa7dF1d30f6456Dc72cE18fE011896105651a1f86",
bridgeAddress: import.meta.env
? import.meta.env.VITE_MAINNET_BRIDGE_ADDRESS
: "0x3612E284D763f42f5E4CB72B1602b23DAEC3cA60",
headerSyncAddress: import.meta.env
? import.meta.env.VITE_MAINNET_HEADER_SYNC_ADDRESS
: "0x7B3AF414448ba906f02a1CA307C56c4ADFF27ce7",
explorerUrl: "https://l1explorer.a1.taiko.xyz",
};

export const CHAIN_TKO = {
id: 167001,
name: "Taiko A1",
id: CHAIN_ID_TAIKO,
name: import.meta.env ? import.meta.env.VITE_TAIKO_CHAIN_NAME : "Taiko A1",
rpc: "https://l2rpc.a1.taiko.xyz",
enabled: true,
icon: Taiko,
bridgeAddress: "0x0000777700000000000000000000000000000004",
headerSyncAddress: "0x0000777700000000000000000000000000000001",
bridgeAddress: import.meta.env
? import.meta.env.VITE_TAIKO_BRIDGE_ADDRESS
: "0x0000777700000000000000000000000000000004",
headerSyncAddress: import.meta.env
? import.meta.env.VITE_TAIKO_HEADER_SYNC_ADDRESS
: "0x0000777700000000000000000000000000000001",
explorerUrl: "https://l2explorer.a1.taiko.xyz",
};

export const chains: Record<string, Chain> = {
31336: CHAIN_MAINNET,
167001: CHAIN_TKO,
[CHAIN_ID_MAINNET]: CHAIN_MAINNET,
[CHAIN_ID_TAIKO]: CHAIN_TKO,
};

export const mainnet: WagmiChain = {
id: 31336,
id: CHAIN_ID_MAINNET,
name: "Ethereum A1",
network: "",
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
Expand All @@ -64,7 +83,7 @@ export const mainnet: WagmiChain = {
};

export const taiko: WagmiChain = {
id: 167001,
id: CHAIN_ID_TAIKO,
name: "Taiko A1",
network: "",
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
Expand Down
27 changes: 16 additions & 11 deletions packages/bridge-ui/src/erc20/bridge.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { BigNumber, Wallet } from "ethers";
import { mainnet, taiko } from "../domain/chain";
import {
CHAIN_ID_MAINNET,
CHAIN_ID_TAIKO,
mainnet,
taiko,
} from "../domain/chain";
import type { ApproveOpts, Bridge, BridgeOpts } from "../domain/bridge";
import ERC20Bridge from "./bridge";
import { Message, MessageStatus } from "../domain/message";
Expand Down Expand Up @@ -252,8 +257,8 @@ describe("bridge tests", () => {
await expect(
bridge.Claim({
message: {
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
gasLimit: BigNumber.from(1),
} as unknown as Message,
signal: "0x",
Expand All @@ -276,8 +281,8 @@ describe("bridge tests", () => {
await expect(
bridge.Claim({
message: {
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
gasLimit: BigNumber.from(1),
} as unknown as Message,
signal: "0x",
Expand Down Expand Up @@ -305,8 +310,8 @@ describe("bridge tests", () => {
bridge.Claim({
message: {
owner: "0x",
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
gasLimit: BigNumber.from(1),
} as unknown as Message,
signal: "0x",
Expand Down Expand Up @@ -339,8 +344,8 @@ describe("bridge tests", () => {
await bridge.Claim({
message: {
owner: "0x",
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
sender: "0x01",
gasLimit: BigNumber.from(1),
} as unknown as Message,
Expand Down Expand Up @@ -375,8 +380,8 @@ describe("bridge tests", () => {
await bridge.Claim({
message: {
owner: "0x",
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
sender: "0x01",
gasLimit: BigNumber.from(1),
} as unknown as Message,
Expand Down
8 changes: 2 additions & 6 deletions packages/bridge-ui/src/erc20/bridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,9 @@ class ERC20Bridge implements Bridge {
chains[opts.message.destChainId.toNumber()].headerSyncAddress,
});

return await contract.processMessage(opts.message, proof, {
gasLimit: 3500000,
});
return await contract.processMessage(opts.message, proof);
} else {
return await contract.retryMessage(opts.message, false, {
gasLimit: 3500000,
});
return await contract.retryMessage(opts.message, false);
}
}
}
Expand Down
23 changes: 14 additions & 9 deletions packages/bridge-ui/src/eth/bridge.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { BigNumber, Wallet } from "ethers";
import { mainnet, taiko } from "../domain/chain";
import {
CHAIN_ID_MAINNET,
CHAIN_ID_TAIKO,
mainnet,
taiko,
} from "../domain/chain";
import type { Bridge, BridgeOpts } from "../domain/bridge";
import ETHBridge from "./bridge";
import { Message, MessageStatus } from "../domain/message";
Expand Down Expand Up @@ -131,8 +136,8 @@ describe("bridge tests", () => {
await expect(
bridge.Claim({
message: {
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
gasLimit: BigNumber.from(1),
} as unknown as Message,
signal: "0x",
Expand Down Expand Up @@ -160,8 +165,8 @@ describe("bridge tests", () => {
bridge.Claim({
message: {
owner: "0x",
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
gasLimit: BigNumber.from(1),
} as unknown as Message,
signal: "0x",
Expand Down Expand Up @@ -194,8 +199,8 @@ describe("bridge tests", () => {
await bridge.Claim({
message: {
owner: "0x",
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
sender: "0x01",
gasLimit: BigNumber.from(1),
} as unknown as Message,
Expand Down Expand Up @@ -230,8 +235,8 @@ describe("bridge tests", () => {
await bridge.Claim({
message: {
owner: "0x",
srcChainId: BigNumber.from(167001),
destChainId: BigNumber.from(31336),
srcChainId: BigNumber.from(CHAIN_ID_TAIKO),
destChainId: BigNumber.from(CHAIN_ID_MAINNET),
sender: "0x01",
gasLimit: BigNumber.from(1),
} as unknown as Message,
Expand Down
8 changes: 2 additions & 6 deletions packages/bridge-ui/src/eth/bridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,9 @@ class ETHBridge implements BridgeInterface {

const proof = await this.prover.GenerateProof(proofOpts);

return await contract.processMessage(opts.message, proof, {
gasLimit: opts.message.gasLimit.add(1000000),
});
return await contract.processMessage(opts.message, proof);
} else {
return await contract.retryMessage(opts.message, {
gasLimit: opts.message.gasLimit.add(1000000),
});
return await contract.retryMessage(opts.message);
}
}
}
Expand Down
Loading