new file: Interchain-message/.eslintrc.js new file: Interchain-message/.gitignore new file: Interchain-message/.prettierrc new file: Interchain-message/.solhint.json new file: Interchain-message/.solhintignore new file: Interchain-message/contracts/interfaces/IBridge.sol new file: Interchain-message/contracts/interfaces/IMessageBus.sol new file: Interchain-message/contracts/interfaces/IMessageReceiverApp.sol new file: Interchain-message/contracts/interfaces/IUniswapRouterV3.sol new file: Interchain-message/contracts/interfaces/IWETH.sol new file: Interchain-message/contracts/message/apps/BridgeSwap.sol new file: Interchain-message/contracts/message/apps/RubicRouterV2.sol new file: Interchain-message/contracts/message/apps/RubicRouterV2ETH.sol new file: Interchain-message/contracts/message/apps/SwapBase.sol new file: Interchain-message/contracts/message/apps/TransferSwapInch.sol new file: Interchain-message/contracts/message/apps/TransferSwapV2.sol new file: Interchain-message/contracts/message/apps/TransferSwapV3.sol new file: Interchain-message/contracts/message/framework/MessageReceiverApp.sol new file: Interchain-message/contracts/message/framework/MessageSenderApp.sol new file: Interchain-message/contracts/message/libraries/MessageSenderLib.sol new file: Interchain-message/contracts/message/libraries/MsgDataTypes.sol new file: Interchain-message/contracts/test/MessageBusSender.sol new file: Interchain-message/contracts/test/TestERC20.sol new file: Interchain-message/contracts/test/TestMessages.sol new file: Interchain-message/contracts/test/WETH9.sol new file: Interchain-message/deployments/Readme.md new file: Interchain-message/executor/config/cbridge.toml new file: Interchain-message/executor/config/executor.toml new file: Interchain-message/executor/eth-ks/signer.json new file: Interchain-message/hardhat.config.ts new file: Interchain-message/package-lock.json new file: Interchain-message/package.json new file: Interchain-message/reports/contract_sizes.txt new file: Interchain-message/reports/gas_usage/summary.txt new file: Interchain-message/scripts/deploy/deploy.js new file: Interchain-message/scripts/deploy/deployAVAX.ts new file: Interchain-message/scripts/deploy/deployArbitrum.ts new file: Interchain-message/scripts/deploy/deployAurora.ts new file: Interchain-message/scripts/deploy/deployBSC.ts new file: Interchain-message/scripts/deploy/deployEth.ts new file: Interchain-message/scripts/deploy/deployFantom.ts new file: Interchain-message/scripts/deploy/deployPoly.ts new file: Interchain-message/scripts/privateKey.js new file: Interchain-message/scripts/sendTx/avaxToFantomBridge.js new file: Interchain-message/scripts/sendTx/avaxToFantomNativeV2.js new file: Interchain-message/test/RubicCrossChainBridge.spec.ts new file: Interchain-message/test/RubicCrossChainV2.spec.ts new file: Interchain-message/test/RubicCrossChainV3.spec.ts new file: Interchain-message/test/RubicFallback.spec.ts new file: Interchain-message/test/RubicSettings.spec.ts new file: Interchain-message/test/shared/consts.ts new file: Interchain-message/test/shared/fixtures.ts new file: Interchain-message/test/shared/utils.ts new file: Interchain-message/tsconfig.json deleted: Rubic-Inter-chain-Message-develop.zip deleted: proxy-instant-trades-master.zip deleted: rubic-app-master.zip deleted: rubic-sdk-master.zip
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { IUniswapV2Router02 } from '../../typechain';
 | |
| import { IUniswapRouterV3 } from '../../typechain';
 | |
| import UniV2JSON from '@uniswap/v2-periphery/build/UniswapV2Router02.json';
 | |
| import UniV3JSON from '@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json';
 | |
| import { ethers } from 'hardhat';
 | |
| import { Wallet } from '@ethersproject/wallet';
 | |
| 
 | |
| export const getRouterV2 = async function (
 | |
|     wallet: Wallet,
 | |
|     routerAddress: string
 | |
| ): Promise<IUniswapV2Router02> {
 | |
|     const routerFactory = ethers.ContractFactory.fromSolidity(UniV2JSON);
 | |
|     let router = routerFactory.attach(routerAddress) as IUniswapV2Router02;
 | |
|     router = router.connect(wallet);
 | |
| 
 | |
|     return router;
 | |
| };
 | |
| 
 | |
| // not used
 | |
| // export const createPoolV2 = async function (
 | |
| //     wallet: Wallet,
 | |
| //     routerAddress: string,
 | |
| //     token: string,
 | |
| //     tokenAmount = ethers.utils.parseEther('100')
 | |
| // ): Promise<IUniswapV2Router02> {
 | |
| //     const router = await getRouterV2(wallet, routerAddress);
 | |
| //
 | |
| //     await router.addLiquidityETH(
 | |
| //         token,
 | |
| //         tokenAmount,
 | |
| //         tokenAmount,
 | |
| //         ethers.utils.parseEther('100'),
 | |
| //         await router.signer.getAddress(),
 | |
| //         DEADLINE,
 | |
| //         { value: ethers.utils.parseEther('100') }
 | |
| //     );
 | |
| //
 | |
| //     return router;
 | |
| // };
 | |
| 
 | |
| export const getRouterV3 = async function (
 | |
|     wallet: Wallet,
 | |
|     routerAddressV3: string
 | |
| ): Promise<IUniswapRouterV3> {
 | |
|     const routerFactoryV3 = ethers.ContractFactory.fromSolidity(UniV3JSON);
 | |
|     let routerV3 = routerFactoryV3.attach(routerAddressV3) as IUniswapRouterV3;
 | |
|     routerV3 = routerV3.connect(wallet);
 | |
| 
 | |
|     return routerV3;
 | |
| };
 | |
| 
 | |
| export function hexStringToByteArray(hexString) {
 | |
|     if (hexString.length % 2 !== 0) {
 | |
|         // eslint-disable-next-line @typescript-eslint/no-throw-literal
 | |
|         throw 'Must have an even number of hex digits to convert to bytes';
 | |
|     }
 | |
|     var numBytes = hexString.length / 2;
 | |
|     var byteArray = new Uint8Array(numBytes);
 | |
|     for (var i = 0; i < numBytes; i++) {
 | |
|         byteArray[i] = parseInt(hexString.substr(i * 2, 2), 16);
 | |
|     }
 | |
|     return byteArray;
 | |
| }
 |