Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 27 additions & 22 deletions base/Makefile
Original file line number Diff line number Diff line change
@@ -1,31 +1,36 @@
-include .env

BASE_RPC=https://base-sepolia.cbhq.net
# BASE_RPC=https://mainnet.base.org
# BASE_RPC=https://base-sepolia.cbhq.net
BASE_RPC=https://mainnet.base.org

ifndef LEDGER_ACCOUNT
override LEDGER_ACCOUNT = 0
endif

# Update values in this section to specify token recipients / token amount
####################################################################################################
# alpha or prod
ENV_NAME=alpha
# mainnet, sepolia_alpha or sepolia_prod
ENV_NAME=mainnet

SOLANA_SOL_RECEIVER = 0x9827993b7b317eb6c74279d49074a13b33a3495a30637c86a7513922014ba424
USER_SPL_ATA = 0x6621d2d930ef7ada6260d3e0a5679a8fe81fde41262314f2efbf9c4c828550b1
USER_REMOTE_ERC20_ATA = 0x4394d16902c022f8f87c7667429bc8b2860d033e316b9f9515534505fae314e9
USER_REMOTE_ETH_ATA = 0x15e9307085f98b2e64eb3dd36b7fbafea201cc2a9fcb36c8c207e99bc7b97f30
SOLANA_SOL_RECEIVER = 0x6e0019e37547b086395a9a6834f731bab5b631004ac22a6c9102047301e40c77
USER_SPL_ATA = 0xfc6697ab185712eed628c12e499a3f4c2d4f73ced9dcc6eab8658bea86adb0e7
USER_REMOTE_ERC20_ATA = 0x7227267f49cac157705e1a5f7ac9f9933c902ae5368cbcc2a12e06d0566f826c
USER_REMOTE_ETH_ATA = 0x3e506b04e88dab39a3687fc5eb822c18f8301fc09cfe945c3394fc6baf9aef25

AMOUNT = 1000000000
####################################################################################################

BRIDGE = $(shell jq -r '.Bridge' deployments/base_sepolia_$(ENV_NAME).json)
LOCAL_SOL = $(shell jq -r '.WrappedSOL' deployments/base_sepolia_$(ENV_NAME).json)
REMOTE_SOL = $(shell jq -r '.RemoteSOL' deployments/base_sepolia_$(ENV_NAME).json)
LOCAL_SPL = $(shell jq -r '.WrappedSPL' deployments/base_sepolia_$(ENV_NAME).json)
REMOTE_SPL = $(shell jq -r '.RemoteSPL' deployments/base_sepolia_$(ENV_NAME).json)
REMOTE_ERC20 = $(shell jq -r '.RemoteERC20' deployments/base_sepolia_$(ENV_NAME).json)
REMOTE_ETH = $(shell jq -r '.RemoteETH' deployments/base_sepolia_$(ENV_NAME).json)
BRIDGE = $(shell jq -r '.Bridge' deployments/base_$(ENV_NAME).json)
LOCAL_SOL = $(shell jq -r '.WrappedSOL' deployments/base_$(ENV_NAME).json)
REMOTE_SOL = $(shell jq -r '.RemoteSOL' deployments/base_$(ENV_NAME).json)
LOCAL_SPL = $(shell jq -r '.WrappedSPL' deployments/base_$(ENV_NAME).json)
REMOTE_SPL = $(shell jq -r '.RemoteSPL' deployments/base_$(ENV_NAME).json)
REMOTE_ERC20 = $(shell jq -r '.RemoteERC20' deployments/base_$(ENV_NAME).json)
REMOTE_ETH = $(shell jq -r '.RemoteETH' deployments/base_$(ENV_NAME).json)

LOCAL_ETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
LOCAL_ERC20 = 0x62C1332822983B8412A6Ffda0fd77cd7d5733Ee9
LOCAL_ERC20 = 0x4870D23984Dd663005EB8E2b616e4Ef62630183c
# LOCAL_ERC20 = 0x62C1332822983B8412A6Ffda0fd77cd7d5733Ee9

check:
@echo $(REMOTE_ERC20)
Expand Down Expand Up @@ -72,11 +77,11 @@ create-wrapped-sol:

.PHONY: create-wrapped-spl
create-wrapped-spl:
BRIDGE_ENVIRONMENT=$(ENV_NAME) TOKEN_NAME=WrappedSPL TOKEN_SYMBOL=wSPL REMOTE_TOKEN=$(REMOTE_SPL) forge script CreateTokenScript --account testnet-admin --rpc-url $(BASE_RPC) --broadcast -vvvv
BRIDGE_ENVIRONMENT=$(ENV_NAME) TOKEN_NAME=WrappedSPL TOKEN_SYMBOL=wSPL REMOTE_TOKEN=$(REMOTE_SPL) forge script CreateTokenScript --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --rpc-url $(BASE_RPC) --broadcast -vvvv

.PHONY: create-mock-token
create-mock-token:
ADMIN=$(shell cast wallet address --account testnet-admin) forge script DeployERC20 --account testnet-admin --rpc-url $(BASE_RPC) --broadcast -vvvv
ADMIN=0x644e3DedB0e4F83Bfcf8F9992964d240224B74dc forge script DeployERC20 --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --rpc-url $(BASE_RPC) --broadcast -vvvv

.PHONY: bridge-sol-to-solana
bridge-sol-to-solana:
Expand All @@ -85,7 +90,7 @@ bridge-sol-to-solana:
REMOTE_TOKEN=$(REMOTE_SOL) \
TO=$(SOLANA_SOL_RECEIVER) \
AMOUNT=$(AMOUNT) \
forge script BridgeTokensToSolanaScript --account testnet-admin --rpc-url $(BASE_RPC) --broadcast -vvvv
forge script BridgeTokensToSolanaScript --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --rpc-url $(BASE_RPC) --broadcast -vvvv

.PHONY: bridge-spl-to-solana
bridge-spl-to-solana:
Expand All @@ -94,7 +99,7 @@ bridge-spl-to-solana:
REMOTE_TOKEN=$(REMOTE_SPL) \
TO=$(USER_SPL_ATA) \
AMOUNT=$(AMOUNT) \
forge script BridgeTokensToSolanaScript --account testnet-admin --rpc-url $(BASE_RPC) --broadcast -vvvv
forge script BridgeTokensToSolanaScript --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --rpc-url $(BASE_RPC) --broadcast -vvvv

.PHONY: bridge-erc20-to-solana
bridge-erc20-to-solana:
Expand All @@ -104,7 +109,7 @@ bridge-erc20-to-solana:
TO=$(USER_REMOTE_ERC20_ATA) \
AMOUNT=$(AMOUNT) \
NEEDS_APPROVAL=true \
forge script BridgeTokensToSolanaScript --account testnet-admin --rpc-url $(BASE_RPC) --broadcast -vvvv
forge script BridgeTokensToSolanaScript --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --rpc-url $(BASE_RPC) --broadcast -vvvv

.PHONY: bridge-eth-to-solana
bridge-eth-to-solana:
Expand All @@ -113,7 +118,7 @@ bridge-eth-to-solana:
REMOTE_TOKEN=$(REMOTE_ETH) \
TO=$(USER_REMOTE_ETH_ATA) \
AMOUNT=$(AMOUNT) \
forge script BridgeTokensToSolanaScript --account testnet-admin --rpc-url $(BASE_RPC) --broadcast -vvvv
forge script BridgeTokensToSolanaScript --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --rpc-url $(BASE_RPC) --broadcast -vvvv

.PHONY: check-root
check-root:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
type Address,
type Hash,
} from "viem";
import { baseSepolia } from "viem/chains";
import { base, baseSepolia } from "viem/chains";
import { decodeEventLog } from "viem/utils";

import { fetchBridge, getProveMessageInstruction } from "@base/bridge/bridge";
Expand All @@ -25,7 +25,7 @@ import {
getKeypairSignerFromPath,
getIdlConstant,
} from "@internal/sol";
import { CONFIGS, DEPLOY_ENVS } from "@internal/constants";
import { CONFIGS, DEPLOY_ENVS, type Config } from "@internal/constants";
import { BRIDGE_ABI } from "@internal/base/abi";

export const argsSchema = z.object({
Expand Down Expand Up @@ -82,6 +82,7 @@ export async function handleProveMessage(args: Args) {
logger.info(`Output Root: ${outputRootAddress}`);

const { event, rawProof } = await generateProof(
config,
args.transactionHash as Hash,
baseBlockNumber,
config.base.bridgeContract
Expand Down Expand Up @@ -138,12 +139,13 @@ export async function handleProveMessage(args: Args) {
}

async function generateProof(
cfg: Config,
transactionHash: Hash,
bridgeBaseBlockNumber: bigint,
baseBridgeAddress: Address
) {
const publicClient = createPublicClient({
chain: baseSepolia,
chain: cfg.base.chain,
transport: http(),
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ async function collectInteractiveOptions(
opts.amount = await getOrPromptDecimal(
opts.amount,
"Enter amount to bridge (in token units)",
0.001
0.000000001
);

opts.payerKp = await getOrPromptFilePath(
Expand Down
10 changes: 5 additions & 5 deletions scripts/src/internal/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,9 @@ export const CONFIGS = {
),

// SPLs
spl: "" as Address,
wEth: "" as Address,
wErc20: "" as Address,
spl: address("9YEGpFKedz7i8hMB7gDWQGuAfCRHUKBMCbTjnMi8vtUc"),
wEth: address("2ZCFyWM6WthDLBo41zJsMQmjJ4Kvb6yumvrbLpVh9LMX"),
wErc20: address("7qxnUBBmW8oiuz9skKkGQFvY1qRUP6zF3emA5bneyGaJ"),
},
base: {
chain: base,
Expand All @@ -163,9 +163,9 @@ export const CONFIGS = {
counterContract: "0x",

// ERC20s
erc20: "0x",
erc20: "0x4870D23984Dd663005EB8E2b616e4Ef62630183c",
wSol: "0x311935Cd80B76769bF2ecC9D8Ab7635b2139cf82",
wSpl: "0x",
wSpl: "0xcd9E97cf45BC53acC35A5aFb70458c47c214E7C7",
},
},
} as const satisfies Record<DeployEnv, Config>;
Loading