Skip to content

Commit

Permalink
Biome: Format and Lint
Browse files Browse the repository at this point in the history
  • Loading branch information
imsk17 committed Jun 15, 2024
1 parent 274e7d1 commit f62c1f3
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 68 deletions.
8 changes: 6 additions & 2 deletions src/chains/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,11 @@ export interface GetApprovedTokenAmount {
* @param owner - The owner of the token.
* @returns A Promise that resolves to the approved amount as a bigint.
*/
getApprovedAmount: (token: string, owner: string, spender: string) => Promise<bigint>;
getApprovedAmount: (
token: string,
owner: string,
spender: string,
) => Promise<bigint>;
}

export interface GetTxFee {
Expand Down Expand Up @@ -191,5 +195,5 @@ export interface GetEstimatedTime {
}

export interface GetBridgeAddress {
bridge:() => Promise<string>
bridge: () => Promise<string>;
}
21 changes: 13 additions & 8 deletions src/chains/ton.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export type TonHelper = GetBalance &
GetEmmetHashFromTx &
TokenInfo &
GetEstimatedTime &
GetBridgeAddress
GetBridgeAddress;

export interface TonParams {
client: TonClient;
Expand Down Expand Up @@ -264,7 +264,7 @@ export function tonHandler({
},
id: () => Promise.resolve(chainId),
async bridge() {
return await bridge.toString()
return await bridge.toString();
},
nativeCoin: () => "TON",
chainName: () => chainName,
Expand Down Expand Up @@ -341,7 +341,7 @@ export function tonHandler({
targetSymbol,
cid,
amt,
fee ? {...gasArgs, value: fee}: gasArgs
fee ? { ...gasArgs, value: fee } : gasArgs,
);
} else if (await isWrappedToken(tid)) {
await transferJetton(
Expand Down Expand Up @@ -393,9 +393,15 @@ export function tonHandler({
}
const log = loadSentInstallment(msg.body.asSlice());
const emmethash = log.tx_hash;
const txn = (await bridgeReader.getOutgoing()).get(emmethash) ?? raise("Unreachable");
const txn =
(await bridgeReader.getOutgoing()).get(emmethash) ??
raise("Unreachable");

if (destAddress === txn.to.asSlice().loadStringRefTail() && amt === txn.amount && txn.from_token.asSlice().loadStringRefTail() === fromSymbol) {
if (
destAddress === txn.to.asSlice().loadStringRefTail() &&
amt === txn.amount &&
txn.from_token.asSlice().loadStringRefTail() === fromSymbol
) {
foundTx = true;
hash = tx.hash().toString("hex");
}
Expand All @@ -404,7 +410,6 @@ export function tonHandler({
retries++;
}


return {
hash: hash,
tx: hash,
Expand All @@ -417,5 +422,5 @@ const toKey = (key: string) => {
return BigInt(`0x${sha256_sync(key).toString("hex")}`);
};
export function raise(msg: string): never {
throw new Error(msg)
}
throw new Error(msg);
}
37 changes: 19 additions & 18 deletions src/chains/web3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
isAddress,
type Provider,
type Signer,
} from 'ethers';
} from "ethers";
import type {
AddressBook,
ChainID,
Expand All @@ -23,14 +23,14 @@ import type {
SendInstallment,
TokenInfo,
ValidateAddress,
} from '.';
} from ".";
import {
EmmetAddressBook__factory,
EmmetBridge__factory,
EmmetData__factory,
WrappedERC20__factory,
} from '@emmet-contracts/web3';
import type { PayableOverrides } from '@emmet-contracts/web3/dist/common';
} from "@emmet-contracts/web3";
import type { PayableOverrides } from "@emmet-contracts/web3/dist/common";

export type Web3Helper = GetBalance &
GetProvider<Provider> &
Expand All @@ -48,7 +48,8 @@ export type Web3Helper = GetBalance &
FetchTxInfo &
ProtocolFee &
GetEmmetHashFromTx &
GetEstimatedTime & GetBridgeAddress
GetEstimatedTime &
GetBridgeAddress;

export interface Web3Params {
provider: Provider;
Expand All @@ -64,8 +65,8 @@ export async function web3Helper({
nativeCoin,
}: Web3Params): Promise<Web3Helper> {
const addrBook = EmmetAddressBook__factory.connect(addressBook, provider);
const bridgeAddr = await addrBook.get('EmmetBridge');
const emmetData = await addrBook.get('EmmetData');
const bridgeAddr = await addrBook.get("EmmetBridge");
const emmetData = await addrBook.get("EmmetData");
const bridge = EmmetBridge__factory.connect(bridgeAddr, provider);
const data = EmmetData__factory.connect(emmetData, provider);
return {
Expand All @@ -74,25 +75,25 @@ export async function web3Helper({
return await addrBook.get(contr);
},
async bridge() {
return await bridge.getAddress()
return await bridge.getAddress();
},
async txFee(targetChainId, fromToken, targetToken) {
const protocolFee = await data.protocolFee();
const ffc = await data.getForeignFeeCompensation(
targetChainId,
fromToken,
targetToken
targetToken,
);
return protocolFee.usdEquivalent + ffc;
},
async txInfo(hash) {
if (hash === '') {
if (hash === "") {
return {
timestamp: 0n,
value: 0n,
};
}
if (!hash.startsWith('0x')) {
if (!hash.startsWith("0x")) {
//biome-ignore lint/style/noParameterAssign: ignore
hash = `0x${hash}`;
}
Expand All @@ -117,8 +118,8 @@ export async function web3Helper({
if (!receipt) throw new Error(`No receipt found for tx hash: ${hash}`);
const log = receipt.logs.find((e) =>
e.topics.includes(
bridge.interface.getEvent('SendInstallment').topicHash
)
bridge.interface.getEvent("SendInstallment").topicHash,
),
);
if (!log)
throw new Error(`No send installment log found for tx hash: ${hash}`);
Expand Down Expand Up @@ -155,15 +156,15 @@ export async function web3Helper({
getApprovedAmount: async (tid, owner, spender) =>
await WrappedERC20__factory.connect(tid, provider).allowance(
owner,
spender
spender,
),
balance: (addr) => provider.getBalance(addr),
provider: () => provider,
async estimateTime(targetChain, fromToken, targetToken) {
const ts = await data.getCrossChainTokenStrategy(
targetChain,
fromToken,
targetToken
targetToken,
);
const localSteps = ts[0];
const foreignSteps = ts[1];
Expand All @@ -186,15 +187,15 @@ export async function web3Helper({
const sendGas = await bridge
.connect(signer)
.sendInstallment.estimateGas(cid, amt, fs, ts, da, {
value: fee
value: fee,
});
const tx = await bridge
.connect(signer)
.sendInstallment(cid, amt, fs, ts, da, {
...gasArgs,
value: fee,
gasLimit: sendGas
})
gasLimit: sendGas,
});
return {
hash: tx.hash,
tx: tx,
Expand Down
46 changes: 23 additions & 23 deletions src/factory/config.ts
Original file line number Diff line number Diff line change
@@ -1,62 +1,62 @@
import { ethers, JsonRpcProvider } from 'ethers';
import { TestNetRpcUri } from './rpcs';
import { Address } from '@ton/core';
import { TonClient } from '@ton/ton';
import { sha256_sync } from '@ton/crypto';
import type { ChainParams } from './types';
import { ethers, JsonRpcProvider } from "ethers";
import { TestNetRpcUri } from "./rpcs";
import { Address } from "@ton/core";
import { TonClient } from "@ton/ton";
import { sha256_sync } from "@ton/crypto";
import type { ChainParams } from "./types";

export namespace ChainFactoryConfigs {
export function TestNet() {
return {
tonParams: {
bridge: Address.parse(
'kQDbnRkkvebKKLifzmMH-oT9ggd6EWGE7G17h9VmMCzjZWeL'
"kQDbnRkkvebKKLifzmMH-oT9ggd6EWGE7G17h9VmMCzjZWeL",
),
client: new TonClient({
endpoint:
'https://testnet.toncenter.com/api/v2/jsonRPC?api_key=9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3',
"https://testnet.toncenter.com/api/v2/jsonRPC?api_key=9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3",
apiKey:
'9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3',
"9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3",
}),
nativeTokenId: BigInt(`0x${sha256_sync('TON').toString('hex')}`),
nativeTokenId: BigInt(`0x${sha256_sync("TON").toString("hex")}`),
oracle: Address.parse(
'EQAx41_27fvdX4C30RxQmzbiLeHyO090XzGHBadgGfdp5Uqd'
"EQAx41_27fvdX4C30RxQmzbiLeHyO090XzGHBadgGfdp5Uqd",
),
chainId: 65535n, // TON Testnet
burner: Address.parse(
'EQBtE7sxSqbDZwuWhxxQRzSZZ3UAm8j4mhR25iWS2xfEmZ6D'
"EQBtE7sxSqbDZwuWhxxQRzSZZ3UAm8j4mhR25iWS2xfEmZ6D",
),
chainName: 'tonTestnet',
chainName: "tonTestnet",
},
bscParams: {
chainName: 'bscTestnet',
chainName: "bscTestnet",
addressBook: ethers.getAddress(
'0x3564336Ad556295A368EEa2b2CA1a7D3f43B4029'
"0x3564336Ad556295A368EEa2b2CA1a7D3f43B4029",
),
nativeCoin: 'BNB',
nativeCoin: "BNB",
provider: new JsonRpcProvider(TestNetRpcUri.BSC),
},
polygonParams: {
addressBook: ethers.getAddress(
'0xEA844fAF9a240Ac9911c1bd2204cd1536f7859b6'
"0xEA844fAF9a240Ac9911c1bd2204cd1536f7859b6",
),
provider: new JsonRpcProvider(TestNetRpcUri.POLYGON),
// oracle: ethers.getAddress("0x95DB799744A5b36D6E7BE9AD3b451dBC5b8De673"),
chainName: 'polygon',
nativeCoin: 'MATIC',
chainName: "polygon",
nativeCoin: "MATIC",
},
ethParams: {
addressBook: ethers.getAddress(
'0x0F416Ea0661BfD7Ffb5b79259Bd98Bd4496a5558'
"0x0F416Ea0661BfD7Ffb5b79259Bd98Bd4496a5558",
),
chainName: 'sepolia',
nativeCoin: 'ETH',
chainName: "sepolia",
nativeCoin: "ETH",
provider: new JsonRpcProvider(TestNetRpcUri.ETH),
},
multisigParams: {
provider: new JsonRpcProvider(TestNetRpcUri.ETH),
address: ethers.getAddress(
'0xbFb23770aF5044C5ce4A62dE2f25Bf48691CeBbB'
"0xbFb23770aF5044C5ce4A62dE2f25Bf48691CeBbB",
),
},
} satisfies Partial<ChainParams>;
Expand Down
34 changes: 17 additions & 17 deletions src/factory/factory.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { EmmetMultisig__factory } from '@emmet-contracts/web3';
import { tonHandler } from '../chains/ton';
import { web3Helper } from '../chains/web3';
import { Chain, type ChainFactory } from './types';
import { EmmetMultisig__factory } from "@emmet-contracts/web3";
import { tonHandler } from "../chains/ton";
import { web3Helper } from "../chains/web3";
import { Chain, type ChainFactory } from "./types";

import type {
ChainInfo,
ChainNonce,
ChainParams,
HelperMap,
ParamMap,
} from './types';
import { ChainIDToDomain, type SupportedChainID } from '../explorer-utils';
} from "./types";
import { ChainIDToDomain, type SupportedChainID } from "../explorer-utils";

function mapNonceToParams(chainParams: Partial<ChainParams>): ParamMap {
const cToP: ParamMap = new Map();
Expand All @@ -26,40 +26,40 @@ export const CHAIN_INFO: ChainInfo = new Map();
CHAIN_INFO.set(Chain.POLYGON, {
constructor: web3Helper,
decimals: 18,
name: 'Polygon',
name: "Polygon",
nonce: Chain.POLYGON,
});

CHAIN_INFO.set(Chain.BSC, {
constructor: web3Helper,
decimals: 18,
name: 'BSC',
name: "BSC",
nonce: Chain.BSC,
});

CHAIN_INFO.set(Chain.ETHEREUM, {
constructor: web3Helper,
decimals: 18,
name: 'Ethereum',
name: "Ethereum",
nonce: Chain.ETHEREUM,
});

CHAIN_INFO.set(Chain.TON, {
decimals: 18,
name: 'Ton',
name: "Ton",
nonce: Chain.TON,
constructor: async (...args) => tonHandler(...args),
});

export function ChainFactoryBuilder(
chainParams: Partial<ChainParams>
chainParams: Partial<ChainParams>,
): ChainFactory {
const helpers: HelperMap<ChainNonce> = new Map();

const cToP = mapNonceToParams(chainParams);
const multisig = EmmetMultisig__factory.connect(
chainParams.multisigParams!.address,
chainParams.multisigParams?.provider
chainParams.multisigParams?.provider,
);

const inner = async <T extends ChainNonce>(chain: T) => {
Expand Down Expand Up @@ -151,7 +151,7 @@ export function ChainFactoryBuilder(
fromSymbol,
tokenSymbol,
destAddress,
gasArgs
gasArgs,
) => {
const dc = await inner(chainId as ChainNonce);
const targetChainId = await dc.id();
Expand All @@ -161,11 +161,11 @@ export function ChainFactoryBuilder(
const isValid = await dc.validateAddress(destAddress);
if (!isValid) {
throw new Error(
`Invalid destination user address for chain id: ${chainId}`
`Invalid destination user address for chain id: ${chainId}`,
);
}
const fee = await chain.txFee(targetChainId, fromSymbol, tokenSymbol)
console.log(fee)
const fee = await chain.txFee(targetChainId, fromSymbol, tokenSymbol);
console.log(fee);
return await chain.sendInstallment(
signer,
amount,
Expand All @@ -174,7 +174,7 @@ export function ChainFactoryBuilder(
tokenSymbol,
destAddress,
fee,
gasArgs
gasArgs,
);
},
};
Expand Down

0 comments on commit f62c1f3

Please sign in to comment.