From eed94f735fa7144fe12b6c6b3ae3f98ec79ef931 Mon Sep 17 00:00:00 2001 From: Baptiste Oueriagli Date: Wed, 22 Oct 2025 00:24:57 +0200 Subject: [PATCH 1/4] feat(solana): deploy and initialize bridge and base relayer programs --- .../2025-10-20-deploy-bridge/.env | 28 ++--- .../2025-10-20-deploy-bridge/Makefile | 22 +++- .../base-relayer-deploy-artifacts.json | 116 ++++++++++++++++++ .../artifacts/bridge-deploy-artifacts.json | 116 ++++++++++++++++++ .../artifacts/fund-sol-vault.json | 64 ++++++++++ .../artifacts/init-base-relayer.json | 94 ++++++++++++++ ...e-relayer-upgrade-authority-artifacts.json | 69 +++++++++++ ...et-bridge-upgrade-authority-artifacts.json | 69 +++++++++++ 8 files changed, 563 insertions(+), 15 deletions(-) create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/base-relayer-deploy-artifacts.json create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/bridge-deploy-artifacts.json create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-base-relayer.json create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-base-relayer-upgrade-authority-artifacts.json create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-bridge-upgrade-authority-artifacts.json diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/.env b/solana/devnet-alpha/2025-10-20-deploy-bridge/.env index 5a85eaba..9f52ca5e 100644 --- a/solana/devnet-alpha/2025-10-20-deploy-bridge/.env +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/.env @@ -4,20 +4,16 @@ ANCHOR_VERSION=0.31.0 # Variables for cloning Bridge repo BRIDGE_REPO=https://github.com/base/bridge.git -BRIDGE_AUDITED_COMMIT=e9b5fe27280a +BRIDGE_COMMIT=e9b5fe27280a # Variables for deploying and sending transactions DEPLOY_ENV=testnet-alpha DEPLOYER_KP=~/.config/solana/id.json -# Signature of the deployWithMaxDataLen txs (used to generate the deployment artifacts) -BRIDGE_DEPLOY_SIGNATURE= -BASE_RELAYER_DEPLOY_SIGNATURE= - # Variables for initializing the Bridge Solana program -BRIDGE_PROGRAM_ID= -GUARDIAN= -SOL_REMOTE_TOKEN= +BRIDGE_PROGRAM_ID=6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm +GUARDIAN=2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ # MCM Authority +SOL_REMOTE_TOKEN=0x003512146Fd54b71f926C7Fd4B7bd20Fc84E22c5 BRIDGE_EIP1559_TARGET=5_000_000 BRIDGE_EIP1559_DENOMINATOR=2 BRIDGE_EIP1559_WINDOW_DURATION_SECONDS=1 @@ -25,7 +21,7 @@ BRIDGE_EIP1559_MINIMUM_BASE_FEE=1 BRIDGE_GAS_PER_CALL=125_000 BRIDGE_GAS_COST_SCALER=1_000_000 BRIDGE_GAS_COST_SCALER_DP=1_000_000 -BRIDGE_GAS_FEE_RECEIVER=2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72 # Deployer address +BRIDGE_GAS_FEE_RECEIVER=Dz7RiPP83jmH1XQFqp45p3SQJWhfWFWNgRBCMhFPmQNP BRIDGE_PROTOCOL_BLOCK_INTERVAL_REQUIREMENT=300 BRIDGE_BUFFER_MAX_CALL_BUFFER_SIZE=8192 # 8KB BRIDGE_BASE_ORACLE_THRESHOLD=2 @@ -34,8 +30,8 @@ BRIDGE_BASE_ORACLE_SIGNERS=0x20BFBCCC8aBaD55c8aA383a75838348A646eDbA0,0xfc85de3f BRIDGE_PARTNER_ORACLE_REQUIRED_THRESHOLD=0 # Variables for initializing the Base Relayer Solana program -BASE_RELAYER_PROGRAM_ID= -GUARDIAN= +BASE_RELAYER_PROGRAM_ID=ETsFnoWdJK8N7VJW6XXjiciyB2xeQfCXMQWNa85Zi9cn +GUARDIAN=2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ # MCM Authority BASE_RELAYER_EIP1559_TARGET=5_000_000 BASE_RELAYER_EIP1559_DENOMINATOR=2 BASE_RELAYER_EIP1559_WINDOW_DURATION_SECONDS=1 @@ -44,9 +40,13 @@ BASE_RELAYER_MIN_GAS_LIMIT_PER_MESSAGE=100_000 BASE_RELAYER_MAX_GAS_LIMIT_PER_MESSAGE=5_000_000 BASE_RELAYER_GAS_COST_SCALER=1_000_000 BASE_RELAYER_GAS_COST_SCALER_DP=1_000_000 -BASE_RELAYER_GAS_FEE_RECEIVER=2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72 # Deployer address +BASE_RELAYER_GAS_FEE_RECEIVER=Dz7RiPP83jmH1XQFqp45p3SQJWhfWFWNgRBCMhFPmQNP # Variables for printing the SOL vault PDA AUTHORITY=$(DEPLOYER_KP) -SOL_RECIPIENT= # SOL vault PDA -SOL_AMOUNT=0.1 \ No newline at end of file +SOL_RECIPIENT=FD2QLajrw4AN6RsAcU4f2WjrwihVBscfHSqrvh1FqBNm # SOL vault PDA +SOL_AMOUNT=0.1 + +# Signatures of the set-upgrade-authority txs (used to generate the set-upgrade-authority artifacts) +SET_BRIDGE_UPGRADE_AUTHORITY_SIGNATURE=4oYJZxVrE38e31mRwfwB7QjqcTfnvk7BW4ebFMXnuxDB18vMHrxb8EM84NHwSDefqNgDgTxjy5TLhcynKxvr8H8e +SET_BASE_RELAYER_UPGRADE_AUTHORITY_SIGNATURE=2aBvRfVuPFstjwvLxqbmXN7cgecmhRk15nJZmdA8Q3kr1tRyd1ipc9Fz77zbn74JW2bnY9kRhraNmwuxA3SyxRqM \ No newline at end of file diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile b/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile index 93e23389..3d63cad8 100644 --- a/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile @@ -35,7 +35,7 @@ step1-clone-bridge: rm -rf bridge git clone --filter=blob:none $(BRIDGE_REPO) bridge cd bridge && \ - git checkout $(BRIDGE_AUDITED_COMMIT) + git checkout $(BRIDGE_COMMIT) cd bridge/clients/ts && \ bun install && \ bun run build @@ -136,3 +136,23 @@ step5-print-sol-vault: step6-fund-sol-vault: @echo "==> Step 6: Funding SOL vault..." make sol-transfer output=artifacts/fund-sol-vault.json + +# Step 7: Transfer upgrade authorities of the bridge and base relayer programs +.PHONY: step7-transfer-upgrade-authorities +step7-transfer-upgrade-authorities: + @echo "==> Step 7: Transferring upgrade authorities of the bridge and base relayer programs..." + make sol-program-set-upgrade-authority \ + SOL_PROGRAM_ID=$(BRIDGE_PROGRAM_ID) \ + NEW_UPGRADE_AUTHORITY=$(GUARDIAN) + make sol-program-show SOL_PROGRAM_ID=$(BRIDGE_PROGRAM_ID) + make sol-program-set-upgrade-authority \ + SOL_PROGRAM_ID=$(BASE_RELAYER_PROGRAM_ID) \ + NEW_UPGRADE_AUTHORITY=$(GUARDIAN) + make sol-program-show SOL_PROGRAM_ID=$(BASE_RELAYER_PROGRAM_ID) + +# Step 8: Generate set-upgrade-authority artifacts (use solana explorer to get the signature of the set-upgrade-authority tx) +.PHONY: step8-generate-set-upgrade-authorities-artifacts +step8-generate-set-upgrade-authorities-artifacts: + @echo "==> Step 8: Generating set-upgrade-authorities artifacts..." + make sol-confirm SIG=$(SET_BRIDGE_UPGRADE_AUTHORITY_SIGNATURE) output=artifacts/set-bridge-upgrade-authority-artifacts.json + make sol-confirm SIG=$(SET_BASE_RELAYER_UPGRADE_AUTHORITY_SIGNATURE) output=artifacts/set-base-relayer-upgrade-authority-artifacts.json diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/base-relayer-deploy-artifacts.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/base-relayer-deploy-artifacts.json new file mode 100644 index 00000000..15aa65aa --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/base-relayer-deploy-artifacts.json @@ -0,0 +1,116 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "V24Ff153Np2U5CGVfPVGWtVY883G9wfAoyXRv7mQFz5AVA2mM8hmBVGBhPhNwcHUfLYiEmVTshPWJj8YPesiF7G", + "4kK2SkCrT38HuSbXifut8rzwJ5bVUPUfnxk6LqBbgqX24ZK5ar8h3xbPnJXC39k9emABRGy4p63npsQ5DxC8xppU" + ], + "message": { + "header": { + "numRequiredSignatures": 2, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 4 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "ETsFnoWdJK8N7VJW6XXjiciyB2xeQfCXMQWNa85Zi9cn", + "231cgmSHMsD86HZaQQYp9Y6Zgzzg46o2xYJw4J4ecaxt", + "GbPeyrpcZx1QPnrB1igMPvDK7h6VFEhHR8JVaYGiGXb2", + "11111111111111111111111111111111", + "BPFLoaderUpgradeab1e11111111111111111111111", + "SysvarC1ock11111111111111111111111111111111", + "SysvarRent111111111111111111111111111111111" + ], + "recentBlockhash": "B3SSeTnqwUYQMXZmzSMoQt7KnjTnpqq7S7WLqCSvNEk1", + "instructions": [ + { + "programIdIndex": 4, + "accounts": [ + 0, + 1 + ], + "data": "111184NuZo7gmbjwda8fGAim94roEJcdbYKd7Gdtpi6CbBByeanCr8u4EAFXLjnY2U8bjD", + "stackHeight": null + }, + { + "programIdIndex": 5, + "accounts": [ + 0, + 3, + 1, + 2, + 7, + 6, + 4, + 0 + ], + "data": "3Bxs42J4x6iEtSZM", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 10000, + "preBalances": [ + 205032763880, + 0, + 2098391280, + 0, + 1, + 1, + 1169280, + 1009200 + ], + "postBalances": [ + 205031612440, + 1141440, + 0, + 2098391280, + 1, + 1, + 1169280, + 1009200 + ], + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "programIdIndex": 4, + "accounts": [ + 0, + 3, + 2 + ], + "data": "11119qYqhtqT5NHTm27UYqYVeF4Lm2dwfwCnPkVvZ6nWdk5kZP2tzGt1VBLLyRd9W8hoWf", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success", + "Program BPFLoaderUpgradeab1e11111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Deployed program ETsFnoWdJK8N7VJW6XXjiciyB2xeQfCXMQWNa85Zi9cn", + "Program BPFLoaderUpgradeab1e11111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 2670 + }, + "blockTime": 1761084647, + "slot": 416191475 +} diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/bridge-deploy-artifacts.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/bridge-deploy-artifacts.json new file mode 100644 index 00000000..92d20d85 --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/bridge-deploy-artifacts.json @@ -0,0 +1,116 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "5uHCbr3GRZqywghfi7mW5iaGxqBdw3BkMEpXcyQeADgYDBY8R7aAoBEdvV5eYKJEXpZoq3V3EybD3HfGjkzro3YM", + "4vqLMGm6kmERsRDSfA3cEPYEC4RnMm2ZdbiS7yYG5zA7S9Yz4tfRHTavfQgCCARsJgr6Hick1pa9SJykvuATYHd9" + ], + "message": { + "header": { + "numRequiredSignatures": 2, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 4 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm", + "EkPiugm4hAm5pMPSoM9aTtDNxUdDXLcaVgttUQvksqkj", + "GxwFaRt1gSfS7XnVrg1h7iPsL8aUGSeYKYFEMsKPCEmz", + "11111111111111111111111111111111", + "BPFLoaderUpgradeab1e11111111111111111111111", + "SysvarC1ock11111111111111111111111111111111", + "SysvarRent111111111111111111111111111111111" + ], + "recentBlockhash": "G95Y4bgACv87Gb9ddcMYZnUxLKgFhKm1PAVKFQowjSHq", + "instructions": [ + { + "programIdIndex": 4, + "accounts": [ + 0, + 1 + ], + "data": "111184NuZo7gmbjwda8fGAim94roEJcdbYKd7Gdtpi6CbBByeanCr8u4EAFXLjnY2U8bjD", + "stackHeight": null + }, + { + "programIdIndex": 5, + "accounts": [ + 0, + 2, + 1, + 3, + 7, + 6, + 4, + 0 + ], + "data": "3Bxs4WN6jLMpcx3h", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 10000, + "preBalances": [ + 207133806600, + 0, + 0, + 6120992880, + 1, + 1, + 1169280, + 1009200 + ], + "postBalances": [ + 207132655160, + 1141440, + 6120992880, + 0, + 1, + 1, + 1169280, + 1009200 + ], + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "programIdIndex": 4, + "accounts": [ + 0, + 2, + 3 + ], + "data": "111159HsydaU3uzqG2hq9Sx6KfvrezAjfEmE3BdaWEuGA82n6u1foDH3rgMpomPUey4oS7", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success", + "Program BPFLoaderUpgradeab1e11111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Deployed program 6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm", + "Program BPFLoaderUpgradeab1e11111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 2670 + }, + "blockTime": 1761084637, + "slot": 416191448 +} diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json new file mode 100644 index 00000000..a846885c --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json @@ -0,0 +1,64 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "4tRRxR77nANdQBzr3ouuX3CgwFZkoNN5qtFDkTLXn1RhptdJFpyUQvVjoQhwezCHsv2cRFUDjTjU1B3YqBzTwGto" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "FD2QLajrw4AN6RsAcU4f2WjrwihVBscfHSqrvh1FqBNm", + "11111111111111111111111111111111" + ], + "recentBlockhash": "6Z3D9VcniHa8qW89KLY9nypJyVBYn9vvJGXrq6kxWM67", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "3Bxs411Dtc7pkFQj", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 205024976520, + 0, + 1 + ], + "postBalances": [ + 204924971520, + 100000000, + 1 + ], + "innerInstructions": [], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 150 + }, + "blockTime": 1761084995, + "slot": 416192382 +} diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-base-relayer.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-base-relayer.json new file mode 100644 index 00000000..fee34897 --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-base-relayer.json @@ -0,0 +1,94 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "D6EzmVKGiUU1hrKvnS3i3Y9vaQYF34TrH3dtnW79y7WQGtRp2kQrkggcaZQqkSTJoDbC4qJYVVt76CX8FLE3EF6" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 3 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "CbQonYpF6fuQ1UShYNEm9fmAZ3nTZWWUmyeZ9gQkGMuF", + "11111111111111111111111111111111", + "ETsFnoWdJK8N7VJW6XXjiciyB2xeQfCXMQWNa85Zi9cn", + "GbPeyrpcZx1QPnrB1igMPvDK7h6VFEhHR8JVaYGiGXb2" + ], + "recentBlockhash": "AQuj2NoVrKcBmJRMZe7dX5Z4xgen6Jb5wEKaA2qTTnpW", + "instructions": [ + { + "programIdIndex": 3, + "accounts": [ + 0, + 0, + 1, + 4, + 3, + 2 + ], + "data": "EGobdm29j93Jy1Ykas1QRvcNdsGgoTrZJJdBA9qei7nQKrvHDrnVgbwrHHwndxDfWV2vqJ5fV7XXKPsSb5nH8FTUpf1LxP28bpyNCRJLWc6xRkSFA5iq9BnUoUn1e1hifsH146NNpxY1S4kfJFFhTwP2XUsXiGXDq9mhnkTKyxBTEgBgNgsg7ZjEKV", + "stackHeight": null + } + ], + "addressTableLookups": [] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 205027041680, + 0, + 1, + 1141440, + 2098391280 + ], + "postBalances": [ + 205024976520, + 2060160, + 1, + 1141440, + 2098391280 + ], + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "11115iFkVMXPaap7j41Z1pua1WKWeEERnnUwf84CzDCxuy3qLE36dAQDESzRZiP3RSTd1t", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program ETsFnoWdJK8N7VJW6XXjiciyB2xeQfCXMQWNa85Zi9cn invoke [1]", + "Program log: Instruction: Initialize", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program ETsFnoWdJK8N7VJW6XXjiciyB2xeQfCXMQWNa85Zi9cn consumed 14370 of 200000 compute units", + "Program ETsFnoWdJK8N7VJW6XXjiciyB2xeQfCXMQWNa85Zi9cn success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 14370 + }, + "blockTime": 1761084921, + "slot": 416192189 +} diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-base-relayer-upgrade-authority-artifacts.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-base-relayer-upgrade-authority-artifacts.json new file mode 100644 index 00000000..70abf91d --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-base-relayer-upgrade-authority-artifacts.json @@ -0,0 +1,69 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "2aBvRfVuPFstjwvLxqbmXN7cgecmhRk15nJZmdA8Q3kr1tRyd1ipc9Fz77zbn74JW2bnY9kRhraNmwuxA3SyxRqM" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 2 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "GbPeyrpcZx1QPnrB1igMPvDK7h6VFEhHR8JVaYGiGXb2", + "BPFLoaderUpgradeab1e11111111111111111111111", + "2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ" + ], + "recentBlockhash": "6XtukxFKzjuLFGH2ghPDQQPUxnhL32Rr2V2TYWo6znRM", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 1, + 0, + 3 + ], + "data": "6vx8P", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 204924966520, + 2098391280, + 1, + 0 + ], + "postBalances": [ + 204924961520, + 2098391280, + 1, + 0 + ], + "innerInstructions": [], + "logMessages": [ + "Program BPFLoaderUpgradeab1e11111111111111111111111 invoke [1]", + "New authority Some(2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ)", + "Program BPFLoaderUpgradeab1e11111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 2370 + }, + "blockTime": 1761085265, + "slot": 416193085 +} diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-bridge-upgrade-authority-artifacts.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-bridge-upgrade-authority-artifacts.json new file mode 100644 index 00000000..3e86adbc --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/set-bridge-upgrade-authority-artifacts.json @@ -0,0 +1,69 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "4oYJZxVrE38e31mRwfwB7QjqcTfnvk7BW4ebFMXnuxDB18vMHrxb8EM84NHwSDefqNgDgTxjy5TLhcynKxvr8H8e" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 2 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "EkPiugm4hAm5pMPSoM9aTtDNxUdDXLcaVgttUQvksqkj", + "BPFLoaderUpgradeab1e11111111111111111111111", + "2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ" + ], + "recentBlockhash": "CU2JNHmzzKVo9KqxrD8YqqWDg5vv7QJBUyTDHUDzBmj4", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 1, + 0, + 3 + ], + "data": "6vx8P", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 204924971520, + 6120992880, + 1, + 0 + ], + "postBalances": [ + 204924966520, + 6120992880, + 1, + 0 + ], + "innerInstructions": [], + "logMessages": [ + "Program BPFLoaderUpgradeab1e11111111111111111111111 invoke [1]", + "New authority Some(2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ)", + "Program BPFLoaderUpgradeab1e11111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 2370 + }, + "blockTime": 1761085002, + "slot": 416192400 +} From 15e3058199824ca12b1e55ea2b0d39ccc262a321 Mon Sep 17 00:00:00 2001 From: Baptiste Oueriagli Date: Wed, 22 Oct 2025 01:07:44 +0200 Subject: [PATCH 2/4] chore(solana): add init-bridge.json artifact --- .../artifacts/init-bridge.json | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-bridge.json diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-bridge.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-bridge.json new file mode 100644 index 00000000..fde31feb --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/init-bridge.json @@ -0,0 +1,94 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "5LnA55YfR1GTRX2T3YPGXCbfotHmiy6fjocSwuPrMX5soNBne3bRMz68vNNcDTABgzebgnz54S8nUQK5RqAMPXC8" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 3 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "F1HSdZSs7CWSNBV4jqa977hLcuxn6fcdg8R5JuoFvM2q", + "11111111111111111111111111111111", + "6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm", + "EkPiugm4hAm5pMPSoM9aTtDNxUdDXLcaVgttUQvksqkj" + ], + "recentBlockhash": "9Kv4MgEw3piZy4AxjvxVLnnrBQuRtN3B3DRbEsTXcW2p", + "instructions": [ + { + "programIdIndex": 3, + "accounts": [ + 0, + 0, + 1, + 4, + 3, + 2 + ], + "data": "w6cHVNZ7a5rQv5VPE63MBWcxFcdsxgLGURBWWHvgRrRcnXyygG5zD3E3ER16Da2Ny2GcjerMoXJcyuhuzGWcB5M4yHyMsMDnbTWbYbDKVu49gQxsDdrak7tWtFNZkMJcxPDHyYuEr7X4Zmouq6daWvJosMs5mscEAhARc9Q6AXbBScZQU8hWJUdNya4YmAaNSsfJ7BipW7xRdApeNyApM1VbeAdPjfz44eRMCirVnz3W4cCqturmM7djk9zWeAwb9YdJfiKz15XjAs2tcGCvkKLFSVHZTQi1XFdBXWzsKWgQfbbxrmeY9wh1XfFf7o5VqN9GzRuR4U3q5GcbM1JP1qUpQYvWSN5a5HDXLJQgaBELJj1SLEbFK6F7Q1qP511yABrn6SbkFNhH3FQPrJRYmrxhJgCxaccZ65mfWgut72KhWcGBz4jUMvmUuJYf6zK4K5cirHxGWR1htbCcQnZbPyP9x2qJf1XpGeaZWSuEckq8A6oqpUx7LxqqJdT1y2Ko6pdJwDxYAim5AhEqv9kuPndMA3nAcyemtERMfdwafDysNZTDXWsRPizkTFNKWgDbqCKLMa1N5xVozoxFAxmY3Wb74qUNVFSPg2gjKsXChmsdQxRuTvH3JrKhHkd4rhqK7qbsSfuaAdb7gyrnJGHvfBhkK", + "stackHeight": null + } + ], + "addressTableLookups": [] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 205031612440, + 0, + 1, + 1141440, + 6120992880 + ], + "postBalances": [ + 205027041680, + 4565760, + 1, + 1141440, + 6120992880 + ], + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "111112RZKQ4yMXN8zMsggLRz2TsPDJenaTqTJdfM1aGrNvQQife1DPCsoWvnSMoVzkrHBq", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program 6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm invoke [1]", + "Program log: Instruction: Initialize", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program 6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm consumed 14663 of 200000 compute units", + "Program 6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 14663 + }, + "blockTime": 1761084919, + "slot": 416192185 +} \ No newline at end of file From 90893f59624193915e82ee8122611c5dac88a6ba Mon Sep 17 00:00:00 2001 From: Baptiste Oueriagli Date: Wed, 22 Oct 2025 02:05:36 +0200 Subject: [PATCH 3/4] chore(solana): add commands and update bridge commit --- .../2025-10-20-deploy-bridge/.env | 12 +- .../2025-10-20-deploy-bridge/Makefile | 27 ++-- .../artifacts/fund-gas-fee-receiver.json | 128 ++++++++++++++++++ .../artifacts/fund-sol-vault.json | 64 +++++++++ 4 files changed, 215 insertions(+), 16 deletions(-) create mode 100644 solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-gas-fee-receiver.json diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/.env b/solana/devnet-alpha/2025-10-20-deploy-bridge/.env index 9f52ca5e..ec6400f3 100644 --- a/solana/devnet-alpha/2025-10-20-deploy-bridge/.env +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/.env @@ -4,12 +4,14 @@ ANCHOR_VERSION=0.31.0 # Variables for cloning Bridge repo BRIDGE_REPO=https://github.com/base/bridge.git -BRIDGE_COMMIT=e9b5fe27280a +BRIDGE_COMMIT=24b6bcaec94e # Variables for deploying and sending transactions DEPLOY_ENV=testnet-alpha DEPLOYER_KP=~/.config/solana/id.json +GAS_FEE_RECEIVER=Dz7RiPP83jmH1XQFqp45p3SQJWhfWFWNgRBCMhFPmQNP + # Variables for initializing the Bridge Solana program BRIDGE_PROGRAM_ID=6YpL1h2a9u6LuNVi55vAes36xNszt2UDm3Zk1kj4WSBm GUARDIAN=2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ # MCM Authority @@ -21,7 +23,7 @@ BRIDGE_EIP1559_MINIMUM_BASE_FEE=1 BRIDGE_GAS_PER_CALL=125_000 BRIDGE_GAS_COST_SCALER=1_000_000 BRIDGE_GAS_COST_SCALER_DP=1_000_000 -BRIDGE_GAS_FEE_RECEIVER=Dz7RiPP83jmH1XQFqp45p3SQJWhfWFWNgRBCMhFPmQNP +BRIDGE_GAS_FEE_RECEIVER=$(GAS_FEE_RECEIVER) BRIDGE_PROTOCOL_BLOCK_INTERVAL_REQUIREMENT=300 BRIDGE_BUFFER_MAX_CALL_BUFFER_SIZE=8192 # 8KB BRIDGE_BASE_ORACLE_THRESHOLD=2 @@ -40,11 +42,11 @@ BASE_RELAYER_MIN_GAS_LIMIT_PER_MESSAGE=100_000 BASE_RELAYER_MAX_GAS_LIMIT_PER_MESSAGE=5_000_000 BASE_RELAYER_GAS_COST_SCALER=1_000_000 BASE_RELAYER_GAS_COST_SCALER_DP=1_000_000 -BASE_RELAYER_GAS_FEE_RECEIVER=Dz7RiPP83jmH1XQFqp45p3SQJWhfWFWNgRBCMhFPmQNP +BASE_RELAYER_GAS_FEE_RECEIVER=$(GAS_FEE_RECEIVER) -# Variables for printing the SOL vault PDA +# Variables for funding the SOL vault and the gas fee receiver AUTHORITY=$(DEPLOYER_KP) -SOL_RECIPIENT=FD2QLajrw4AN6RsAcU4f2WjrwihVBscfHSqrvh1FqBNm # SOL vault PDA +SOL_VAULT=6HmCU5ywhbmWtvA3LAuq4t1yMpmU6y4g3LpbjvCS5kmf SOL_AMOUNT=0.1 # Signatures of the set-upgrade-authority txs (used to generate the set-upgrade-authority artifacts) diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile b/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile index 3d63cad8..c5f7f57a 100644 --- a/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/Makefile @@ -128,19 +128,24 @@ step5-print-sol-vault: @echo "==> Step 5: Printing SOL vault..." cd bridge/scripts && \ bun cli sol bridge sol-vault \ - --bridge-program $(BRIDGE_PROGRAM_ID) \ - --remote-token $(SOL_REMOTE_TOKEN) + --bridge-program $(BRIDGE_PROGRAM_ID) -# Step 6: Print SOL vault and fund it +# Step 6: Fund SOL vault .PHONY: step6-fund-sol-vault step6-fund-sol-vault: @echo "==> Step 6: Funding SOL vault..." - make sol-transfer output=artifacts/fund-sol-vault.json + make sol-transfer SOL_RECIPIENT=$(SOL_VAULT) output=artifacts/fund-sol-vault.json -# Step 7: Transfer upgrade authorities of the bridge and base relayer programs -.PHONY: step7-transfer-upgrade-authorities -step7-transfer-upgrade-authorities: - @echo "==> Step 7: Transferring upgrade authorities of the bridge and base relayer programs..." +# Step 7: Fund the gas fee receiver +.PHONY: step7-fund-gas-fee-receiver +step7-fund-gas-fee-receiver: + @echo "==> Step 7: Funding gas fee receiver..." + make sol-transfer SOL_RECIPIENT=$(GAS_FEE_RECEIVER) output=artifacts/fund-gas-fee-receiver.json + +# Step 8: Transfer upgrade authorities of the bridge and base relayer programs +.PHONY: step8-transfer-upgrade-authorities +step8-transfer-upgrade-authorities: + @echo "==> Step 8: Transferring upgrade authorities of the bridge and base relayer programs..." make sol-program-set-upgrade-authority \ SOL_PROGRAM_ID=$(BRIDGE_PROGRAM_ID) \ NEW_UPGRADE_AUTHORITY=$(GUARDIAN) @@ -150,9 +155,9 @@ step7-transfer-upgrade-authorities: NEW_UPGRADE_AUTHORITY=$(GUARDIAN) make sol-program-show SOL_PROGRAM_ID=$(BASE_RELAYER_PROGRAM_ID) -# Step 8: Generate set-upgrade-authority artifacts (use solana explorer to get the signature of the set-upgrade-authority tx) -.PHONY: step8-generate-set-upgrade-authorities-artifacts -step8-generate-set-upgrade-authorities-artifacts: +# Step 9: Generate set-upgrade-authority artifacts (use solana explorer to get the signature of the set-upgrade-authority tx) +.PHONY: step9-generate-set-upgrade-authorities-artifacts +step9-generate-set-upgrade-authorities-artifacts: @echo "==> Step 8: Generating set-upgrade-authorities artifacts..." make sol-confirm SIG=$(SET_BRIDGE_UPGRADE_AUTHORITY_SIGNATURE) output=artifacts/set-bridge-upgrade-authority-artifacts.json make sol-confirm SIG=$(SET_BASE_RELAYER_UPGRADE_AUTHORITY_SIGNATURE) output=artifacts/set-base-relayer-upgrade-authority-artifacts.json diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-gas-fee-receiver.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-gas-fee-receiver.json new file mode 100644 index 00000000..c1c7c76e --- /dev/null +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-gas-fee-receiver.json @@ -0,0 +1,128 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "3pR53TEfdATSLDkzko9WJe37EDy9uGJRGRwVCs8mnsDJ1Cv3RZSscLf963YJK7ojnbKz43wyjwcuvF1RiV8gsmS9" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "Dz7RiPP83jmH1XQFqp45p3SQJWhfWFWNgRBCMhFPmQNP", + "11111111111111111111111111111111" + ], + "recentBlockhash": "4THvpBBmfSBUWgDqya2GSyF7quAb9aD3Lwx8tJqZgrBb", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "3Bxs4NN8M2Yn4TLb", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 204619053800, + 100450000, + 1 + ], + "postBalances": [ + 204609048800, + 110450000, + 1 + ], + "innerInstructions": [], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 150 + }, + "blockTime": 1761088975, + "slot": 416202747 +} +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "3rUb3zFY6G1APF1z5rPobKA5YMJSci8TtWN2gTPWZVWrFW1M8aBeb2TisHyURSZKAj5ba4sWT1wBLAa1euyaeW84" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "Dz7RiPP83jmH1XQFqp45p3SQJWhfWFWNgRBCMhFPmQNP", + "11111111111111111111111111111111" + ], + "recentBlockhash": "GjXMA5qncMns9KbpxUQWJgXNU18MFNNefgQRJaDzzMSh", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "3Bxs411Dtc7pkFQj", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 204609048800, + 110450000, + 1 + ], + "postBalances": [ + 204509043800, + 210450000, + 1 + ], + "innerInstructions": [], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 150 + }, + "blockTime": 1761088983, + "slot": 416202766 +} diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json index a846885c..c28979e2 100644 --- a/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/artifacts/fund-sol-vault.json @@ -62,3 +62,67 @@ "blockTime": 1761084995, "slot": 416192382 } +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "48YnWk82kuxxx8iA84CGxGvxGAKnfYLqS4WwYDG89EWLNJkPoJat3hp5YbzPmtEvvgQLA5RqvCWL5fDhPFEyWBc3" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "6HmCU5ywhbmWtvA3LAuq4t1yMpmU6y4g3LpbjvCS5kmf", + "11111111111111111111111111111111" + ], + "recentBlockhash": "4tRtYGprkhz2jcc9a9VZiwtkt9gjmki6SvRY9zqmh9Sr", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "3Bxs411Dtc7pkFQj", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 204924961520, + 0, + 1 + ], + "postBalances": [ + 204824956520, + 100000000, + 1 + ], + "innerInstructions": [], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 150 + }, + "blockTime": 1761088402, + "slot": 416201251 +} From 6768515b9f63ed59cd914e853572159b0fa2eec1 Mon Sep 17 00:00:00 2001 From: Baptiste Oueriagli Date: Wed, 22 Oct 2025 10:40:59 +0200 Subject: [PATCH 4/4] chore(solana): use full commit sha --- solana/devnet-alpha/2025-10-20-deploy-bridge/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solana/devnet-alpha/2025-10-20-deploy-bridge/.env b/solana/devnet-alpha/2025-10-20-deploy-bridge/.env index ec6400f3..56726209 100644 --- a/solana/devnet-alpha/2025-10-20-deploy-bridge/.env +++ b/solana/devnet-alpha/2025-10-20-deploy-bridge/.env @@ -4,7 +4,7 @@ ANCHOR_VERSION=0.31.0 # Variables for cloning Bridge repo BRIDGE_REPO=https://github.com/base/bridge.git -BRIDGE_COMMIT=24b6bcaec94e +BRIDGE_COMMIT=24b6bcaec94eac34524bcd0774dd6ec14dc3bf21 # Variables for deploying and sending transactions DEPLOY_ENV=testnet-alpha