diff --git a/solana/devnet/2025-10-23-deploy-bridge/.env b/solana/devnet/2025-10-23-deploy-bridge/.env new file mode 100644 index 00000000..fee16674 --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/.env @@ -0,0 +1,54 @@ +RUST_TOOLCHAIN=1.87.0 +SOLANA_VERSION=2.1.21 +ANCHOR_VERSION=0.31.0 + +# Variables for cloning Bridge repo +BRIDGE_REPO=https://github.com/base/bridge.git +BRIDGE_COMMIT=24b6bcaec94eac34524bcd0774dd6ec14dc3bf21 + +# Variables for deploying and sending transactions +DEPLOY_ENV=testnet-alpha +DEPLOYER_KP=~/.config/solana/id.json + +GAS_FEE_RECEIVER=AFs1LCbodhvwpgX3u3URLsud6R1XMSaMiQ5LtXw4GKYT + +# Variables for initializing the Bridge Solana program +BRIDGE_PROGRAM_ID=7c6mteAcTXaQ1MFBCrnuzoZVTTAEfZwa6wgy4bqX3KXC +GUARDIAN=2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ # MCM Authority +SOL_REMOTE_TOKEN=0xCace0c896714DaF7098FFD8CC54aFCFe0338b4BC +BRIDGE_EIP1559_TARGET=5_000_000 +BRIDGE_EIP1559_DENOMINATOR=2 +BRIDGE_EIP1559_WINDOW_DURATION_SECONDS=1 +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=$(GAS_FEE_RECEIVER) +BRIDGE_PROTOCOL_BLOCK_INTERVAL_REQUIREMENT=300 +BRIDGE_BUFFER_MAX_CALL_BUFFER_SIZE=8192 # 8KB +BRIDGE_BASE_ORACLE_THRESHOLD=2 +BRIDGE_BASE_ORACLE_SIGNER_COUNT=2 +BRIDGE_BASE_ORACLE_SIGNERS=0xb03FAB6DEd1867a927Cd3E7026Aa0fe95dDb9715,0x7f7a481926dc754f5768691a17022c3fa548ed8b +BRIDGE_PARTNER_ORACLE_REQUIRED_THRESHOLD=0 + +# Variables for initializing the Base Relayer Solana program +BASE_RELAYER_PROGRAM_ID=56MBBEYAtQAdjT4e1NzHD8XaoyRSTvfgbSVVcEcHj51H +GUARDIAN=2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ # MCM Authority +BASE_RELAYER_EIP1559_TARGET=5_000_000 +BASE_RELAYER_EIP1559_DENOMINATOR=2 +BASE_RELAYER_EIP1559_WINDOW_DURATION_SECONDS=1 +BASE_RELAYER_EIP1559_MINIMUM_BASE_FEE=1 +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=$(GAS_FEE_RECEIVER) + +# Variables for funding the SOL vault and the gas fee receiver +AUTHORITY=$(DEPLOYER_KP) +SOL_VAULT=4LS6xgoSn5Ed1UcJKJbwNSsyBQY2NX7H6nJcdt979c1A +SOL_AMOUNT=0.1 + +# Signatures of the set-upgrade-authority txs (used to generate the set-upgrade-authority artifacts) +SET_BRIDGE_UPGRADE_AUTHORITY_SIGNATURE=5i1CYwJDo9jFVLsBM2aQMkzwbr41QD68kFL5CBZru7cSr7AeXGyaF52PQnWjLX6oT2VLREuV4Pv5dPdNAM2EhLrB +SET_BASE_RELAYER_UPGRADE_AUTHORITY_SIGNATURE=2f3bUQpBaZjSjmLiThv5rTSqu9QXVtweitUJXHuDd2LREjm59HuBiNWrJAJQLsyy73Dbq7cfFLdAd2Dd2nJGXkXi \ No newline at end of file diff --git a/solana/devnet/2025-10-23-deploy-bridge/.gitignore b/solana/devnet/2025-10-23-deploy-bridge/.gitignore new file mode 100644 index 00000000..d4dc7f7b --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/.gitignore @@ -0,0 +1,2 @@ +bridge/ +*keypair.json diff --git a/solana/devnet/2025-10-23-deploy-bridge/Makefile b/solana/devnet/2025-10-23-deploy-bridge/Makefile new file mode 100644 index 00000000..f4556d07 --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/Makefile @@ -0,0 +1,163 @@ +include ../.env +include .env + +include ../../Makefile + +.PHONY: install-rust +install-rust: + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + rustup toolchain install $(RUST_TOOLCHAIN) && \ + rustup default $(RUST_TOOLCHAIN) + +.PHONY: install-solana-cli +install-solana-cli: + curl -sSfL https://release.anza.xyz/v$(SOLANA_VERSION)/install | sh + +.PHONY: install-anchor +install-anchor: + cargo install --git https://github.com/coral-xyz/anchor --tag v$(ANCHOR_VERSION) anchor-cli --force + +.PHONY: install-bun +install-bun: + curl -fsSL https://bun.sh/install | bash + +.PHONY: setup-deps +setup-deps: install-rust install-solana-cli install-anchor install-bun + +## +# Deployment Workflow +## + +# Step 1: Clone and build bridge programs +.PHONY: step1-clone-bridge +step1-clone-bridge: + @echo "==> Step 1: Cloning and building bridge programs..." + rm -rf bridge + git clone --filter=blob:none $(BRIDGE_REPO) bridge + cd bridge && \ + git checkout $(BRIDGE_COMMIT) + cd bridge/clients/ts && \ + bun install && \ + bun run build + cd bridge/scripts && \ + bun install + +# Step 2: Build programs +.PHONY: step2-build-programs +step2-build-programs: + @echo "==> Step 2: Building bridge programs..." + cd bridge/solana && \ + anchor keys sync && \ + cp target/deploy/bridge-keypair.json ../../bridge-keypair.json && \ + cp target/deploy/base_relayer-keypair.json ../../base_relayer-keypair.json + cd bridge/scripts && \ + bun cli sol build \ + --deploy-env $(DEPLOY_ENV) \ + --bridge-program-kp ../../bridge-keypair.json \ + --base-relayer-program-kp ../../base_relayer-keypair.json + +# Step 3: Deploy programs +.PHONY: step3-deploy-programs +step3-deploy-programs: + @echo "==> Step 3: Deploying programs..." + make sol-confirm-cmd \ + cmd="cd bridge/scripts && \ + bun cli sol deploy \ + --deploy-env $(DEPLOY_ENV) \ + --program bridge \ + --program-kp ../../bridge-keypair.json \ + --deployer-kp $(DEPLOYER_KP)" \ + output=artifacts/bridge-deploy-artifacts.json + make sol-confirm-cmd \ + cmd="cd bridge/scripts && \ + bun cli sol deploy \ + --deploy-env $(DEPLOY_ENV) \ + --program base-relayer \ + --program-kp ../../base_relayer-keypair.json \ + --deployer-kp $(DEPLOYER_KP)" \ + output=artifacts/base-relayer-deploy-artifacts.json + +# Step 4: Initialize programs +.PHONY: step4-init-programs +step4-init-programs: + @echo "==> Step 4: Initializing programs..." + make sol-confirm-cmd \ + cmd="cd bridge/scripts && \ + bun cli sol bridge initialize \ + --program-id $(BRIDGE_PROGRAM_ID) \ + --rpc-url $(SOL_RPC_URL) \ + --payer-kp $(DEPLOYER_KP) \ + --guardian $(GUARDIAN) \ + --remote-sol-address $(SOL_REMOTE_TOKEN) \ + --eip1559-target $(BRIDGE_EIP1559_TARGET) \ + --eip1559-denominator $(BRIDGE_EIP1559_DENOMINATOR) \ + --eip1559-window-duration-seconds $(BRIDGE_EIP1559_WINDOW_DURATION_SECONDS) \ + --eip1559-minimum-base-fee $(BRIDGE_EIP1559_MINIMUM_BASE_FEE) \ + --gas-per-call $(BRIDGE_GAS_PER_CALL) \ + --gas-cost-scaler $(BRIDGE_GAS_COST_SCALER) \ + --gas-cost-scaler-dp $(BRIDGE_GAS_COST_SCALER_DP) \ + --gas-fee-receiver $(BRIDGE_GAS_FEE_RECEIVER) \ + --protocol-block-interval-requirement $(BRIDGE_PROTOCOL_BLOCK_INTERVAL_REQUIREMENT) \ + --buffer-max-call-buffer-size $(BRIDGE_BUFFER_MAX_CALL_BUFFER_SIZE) \ + --base-oracle-threshold $(BRIDGE_BASE_ORACLE_THRESHOLD) \ + --base-oracle-signer-count $(BRIDGE_BASE_ORACLE_SIGNER_COUNT) \ + --base-oracle-signers $(BRIDGE_BASE_ORACLE_SIGNERS) \ + --partner-oracle-required-threshold $(BRIDGE_PARTNER_ORACLE_REQUIRED_THRESHOLD)" \ + output=artifacts/init-bridge.json + make sol-confirm-cmd \ + cmd="cd bridge/scripts && \ + bun cli sol base-relayer initialize \ + --program-id $(BASE_RELAYER_PROGRAM_ID) \ + --rpc-url $(SOL_RPC_URL) \ + --payer-kp $(DEPLOYER_KP) \ + --guardian $(GUARDIAN) \ + --eip1559-target $(BASE_RELAYER_EIP1559_TARGET) \ + --eip1559-denominator $(BASE_RELAYER_EIP1559_DENOMINATOR) \ + --eip1559-window-duration-seconds $(BASE_RELAYER_EIP1559_WINDOW_DURATION_SECONDS) \ + --eip1559-minimum-base-fee $(BASE_RELAYER_EIP1559_MINIMUM_BASE_FEE) \ + --min-gas-limit-per-message $(BASE_RELAYER_MIN_GAS_LIMIT_PER_MESSAGE) \ + --max-gas-limit-per-message $(BASE_RELAYER_MAX_GAS_LIMIT_PER_MESSAGE) \ + --gas-cost-scaler $(BASE_RELAYER_GAS_COST_SCALER) \ + --gas-cost-scaler-dp $(BASE_RELAYER_GAS_COST_SCALER_DP) \ + --gas-fee-receiver $(BASE_RELAYER_GAS_FEE_RECEIVER)" \ + output=artifacts/init-base-relayer.json + +# Step 5: Print SOL vault +.PHONY: step5-print-sol-vault +step5-print-sol-vault: + @echo "==> Step 5: Printing SOL vault..." + cd bridge/scripts && \ + bun cli sol bridge sol-vault \ + --bridge-program $(BRIDGE_PROGRAM_ID) + +# Step 6: Fund SOL vault +.PHONY: step6-fund-sol-vault +step6-fund-sol-vault: + @echo "==> Step 6: Funding SOL vault..." + make sol-transfer SOL_RECIPIENT=$(SOL_VAULT) output=artifacts/fund-sol-vault.json + +# 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) + 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 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/2025-10-23-deploy-bridge/artifacts/base-relayer-deploy-artifacts.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/base-relayer-deploy-artifacts.json new file mode 100644 index 00000000..0b3f7466 --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/base-relayer-deploy-artifacts.json @@ -0,0 +1,116 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "2k59UnU4dQkXGdebaSrPX95QzXZNqbHEqqC7qzLitrydi1MYw5NbV9q1xdMTe976wTistASd6Lvn8ccHXbDnaKRL", + "4V15b7Bf28HwhU5WKnkPSnzVACQ9E1KdxcgXxNC9C91mjcUGDnsXbQbCfBK9HnTcfEQpRFN14NdadZn9iX68HQHY" + ], + "message": { + "header": { + "numRequiredSignatures": 2, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 4 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "56MBBEYAtQAdjT4e1NzHD8XaoyRSTvfgbSVVcEcHj51H", + "9mUcnyK4TVwHoMkyVCTiVFqWDUuRqHoAJP32pxSXCTjP", + "De6pBEXUw4DiJ9zFzfdM69BDxU8F7rVrcV3tRVhDSWc4", + "11111111111111111111111111111111", + "BPFLoaderUpgradeab1e11111111111111111111111", + "SysvarC1ock11111111111111111111111111111111", + "SysvarRent111111111111111111111111111111111" + ], + "recentBlockhash": "FAh2wWUXeWPnuMKPi7L2DdKxrxBrbJaZndoeCZuxz6mb", + "instructions": [ + { + "programIdIndex": 4, + "accounts": [ + 0, + 1 + ], + "data": "111184NuZo7gmbjwda8fGAim94roEJcdbYKd7Gdtpi6CbBByeanCr8u4EAFXLjnY2U8bjD", + "stackHeight": null + }, + { + "programIdIndex": 5, + "accounts": [ + 0, + 2, + 1, + 3, + 7, + 6, + 4, + 0 + ], + "data": "3Bxs42J4x6iEtSZM", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 10000, + "preBalances": [ + 169019364280, + 0, + 0, + 2098391280, + 1, + 1, + 1169280, + 1009200 + ], + "postBalances": [ + 169018212840, + 1141440, + 2098391280, + 0, + 1, + 1, + 1169280, + 1009200 + ], + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "programIdIndex": 4, + "accounts": [ + 0, + 2, + 3 + ], + "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 56MBBEYAtQAdjT4e1NzHD8XaoyRSTvfgbSVVcEcHj51H", + "Program BPFLoaderUpgradeab1e11111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 2670 + }, + "blockTime": 1761256231, + "slot": 416638064 +} diff --git a/solana/devnet/2025-10-23-deploy-bridge/artifacts/bridge-deploy-artifacts.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/bridge-deploy-artifacts.json new file mode 100644 index 00000000..d22a26d9 --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/bridge-deploy-artifacts.json @@ -0,0 +1,116 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "3LdJ2kUHbLf2cZkasurYP2TaRvop45jNKiewM4E5DKrhw3im2mWN3Yeq6R7fTmd9rEoHVUeMgWob3dioKig7p88X", + "55TJ1mmdpnzB7yS1vRfCRSAoJM1ivNRCi5PFbrtshZp5vZVe7yU7KqvgMYuK4zk1wmEtB5C72RZTC56MGeMGye9N" + ], + "message": { + "header": { + "numRequiredSignatures": 2, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 4 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "7c6mteAcTXaQ1MFBCrnuzoZVTTAEfZwa6wgy4bqX3KXC", + "3Tc2r6TM38kX4ogeMwRuXCQsNEeBsRpQNr3NSf8GoZbz", + "DQjcSWeU1QSaVUTGbDHSZf4fLYXwa3W9zm1nRZojAwNC", + "11111111111111111111111111111111", + "BPFLoaderUpgradeab1e11111111111111111111111", + "SysvarC1ock11111111111111111111111111111111", + "SysvarRent111111111111111111111111111111111" + ], + "recentBlockhash": "L8fLDFNtnkGJSZdetvFo1deE5bPbJC3etRXDP6dmYs8", + "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": [ + 171120407000, + 0, + 0, + 6120992880, + 1, + 1, + 1169280, + 1009200 + ], + "postBalances": [ + 171119255560, + 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 7c6mteAcTXaQ1MFBCrnuzoZVTTAEfZwa6wgy4bqX3KXC", + "Program BPFLoaderUpgradeab1e11111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 2670 + }, + "blockTime": 1761256221, + "slot": 416638036 +} diff --git a/solana/devnet/2025-10-23-deploy-bridge/artifacts/fund-gas-fee-receiver.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/fund-gas-fee-receiver.json new file mode 100644 index 00000000..662fc82e --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/fund-gas-fee-receiver.json @@ -0,0 +1,64 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "vtcC5RJBEhqjxNvkpTtdF78zR3YiXLYHJJR8rCncNejTEAix25wAmUGfu4FVwQrR5uWZzaiX9UkTJ8RngyZJmNr" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "AFs1LCbodhvwpgX3u3URLsud6R1XMSaMiQ5LtXw4GKYT", + "11111111111111111111111111111111" + ], + "recentBlockhash": "CUf2eHgnhoZqakh8crjWRGjVZ9h3ZjyiUuTU1PQGkPCV", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "3Bxs411Dtc7pkFQj", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 168911571920, + 3335600880, + 1 + ], + "postBalances": [ + 168811566920, + 3435600880, + 1 + ], + "innerInstructions": [], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 150 + }, + "blockTime": 1761256427, + "slot": 416638573 +} diff --git a/solana/devnet/2025-10-23-deploy-bridge/artifacts/fund-sol-vault.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/fund-sol-vault.json new file mode 100644 index 00000000..526c997b --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/fund-sol-vault.json @@ -0,0 +1,64 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "oTmYraoVZEkGsLsoyfb2pDTviqkwyghPtDyDTYAaaPe41VArje1CNTnH7EnUy45kcrwRFghkk8ijMpEfQi16Crw" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 1 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "4LS6xgoSn5Ed1UcJKJbwNSsyBQY2NX7H6nJcdt979c1A", + "11111111111111111111111111111111" + ], + "recentBlockhash": "6qXNNqTUCFhNu1oyf62o2YmY3pLAW3eews8Nn34Um76k", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "3Bxs411Dtc7pkFQj", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 169011576920, + 0, + 1 + ], + "postBalances": [ + 168911571920, + 100000000, + 1 + ], + "innerInstructions": [], + "logMessages": [ + "Program 11111111111111111111111111111111 invoke [1]", + "Program 11111111111111111111111111111111 success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 150 + }, + "blockTime": 1761256418, + "slot": 416638549 +} diff --git a/solana/devnet/2025-10-23-deploy-bridge/artifacts/init-base-relayer.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/init-base-relayer.json new file mode 100644 index 00000000..886ac9ef --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/init-base-relayer.json @@ -0,0 +1,94 @@ +{ + "confirmationStatus": "confirmed", + "transaction": { + "signatures": [ + "5TxuveVEcXx5AsFBKtKWTZsYApESzT5xK2MmokoeHsf1Snj7wP7ikYsL5tdRBVVSTuxbdqTaAtuEFUqgo96cfJG4" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 3 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "8YevvQPwQRsKwzaqaAujLcTs7cbZts9tBzPsXhRymbw8", + "11111111111111111111111111111111", + "56MBBEYAtQAdjT4e1NzHD8XaoyRSTvfgbSVVcEcHj51H", + "9mUcnyK4TVwHoMkyVCTiVFqWDUuRqHoAJP32pxSXCTjP" + ], + "recentBlockhash": "58M5DnjCHSGFqzcfzNtdTVQpt1r7HLi3aAT7dzz9WNAC", + "instructions": [ + { + "programIdIndex": 3, + "accounts": [ + 0, + 0, + 1, + 4, + 3, + 2 + ], + "data": "EGobdm29j93Jy1Ykas1QRvcNdsGgoTrZJJdBA9qei7nQKrvHDrnVgbwrHHwndxDfWV2vqJ5fV7XXKPsSb5nH8FTUpf1LxP28bpyNCRJLWc6xRkSFA5iq9BnUoUn1e1hifsH146NNpxY1S4gw3psWgcxzh9ggq4aTFVJYFyFEHp2eJfDfGqQWoEE9VZ", + "stackHeight": null + } + ], + "addressTableLookups": [] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 169013642080, + 0, + 1, + 1141440, + 2098391280 + ], + "postBalances": [ + 169011576920, + 2060160, + 1, + 1141440, + 2098391280 + ], + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "11115iFkVMXPaap7j41Z1pua1WA989crpL52hPgAkM7pNWYM8qg35xTUhcETYqR9xAUYQP", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program 56MBBEYAtQAdjT4e1NzHD8XaoyRSTvfgbSVVcEcHj51H invoke [1]", + "Program log: Instruction: Initialize", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program 56MBBEYAtQAdjT4e1NzHD8XaoyRSTvfgbSVVcEcHj51H consumed 11370 of 200000 compute units", + "Program 56MBBEYAtQAdjT4e1NzHD8XaoyRSTvfgbSVVcEcHj51H success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 11370 + }, + "blockTime": 1761256375, + "slot": 416638437 +} diff --git a/solana/devnet/2025-10-23-deploy-bridge/artifacts/init-bridge.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/init-bridge.json new file mode 100644 index 00000000..655d0600 --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/init-bridge.json @@ -0,0 +1,94 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "3pnudvgYaeyXXEbhuRExGbN57H1RAXAiVgZYT2ovPWki1h3WaVqdkmvfTFLqS1V6qzowb7rFsVzCtudEDf4n55WM" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 3 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "4nLSFFbRMa1dYz5kE5nNrujqjiGeMh1yMfXuP4qDGZ2g", + "11111111111111111111111111111111", + "3Tc2r6TM38kX4ogeMwRuXCQsNEeBsRpQNr3NSf8GoZbz", + "7c6mteAcTXaQ1MFBCrnuzoZVTTAEfZwa6wgy4bqX3KXC" + ], + "recentBlockhash": "323HYDQc8RM9Qex7nuqqNcaqqYWoEYsrpX9zwGFL2MGr", + "instructions": [ + { + "programIdIndex": 4, + "accounts": [ + 0, + 0, + 1, + 3, + 4, + 2 + ], + "data": "w6cHVNZ7a5rQv5VPE63MBWcxFcdsxgLGURBWWHvgRrRcnXyygG5zD3E3ER16Da2Ny2GcjerMoXJcyuhuzGWcB5M4yHyMsMDnbTWbYbDKVu49gQxsDdrak7tWjxypja2LJusxNZieSJiY8xCAdaKkBE3ijuzcGFQfZ3Qv146BMjhgjEB9eom9rwViw5fFdHnGTgkdyd3Rf2R871C3Rnh79RZbSexc1QjjymfZxaL9JmaemrKbbtoJbUemm1AsgytjB2q3Yoo6ZSuJfRKaGgSUQpE7GrPjwB9UPiebpx5HveQ8PwB4PegWeuZo1ThsEFCskx14FrbSP5TePan6rCauHDuLgqoRoSs6K1Ki4rEwexPjNzrkwFYfNQhKB1Zk4scDUyNttSw47TWAAKQrcPiS9CHQPw3H538JrfDwvoDhmL231tnHEYXuBcg3jiRXmx74zwWvWjK7tte3jfdc51pfB5STm6NaHfpkWoDoW5JHoH6ZYuTm419FtBaYQNS5ch1sqTuyhm8wpZahGNT9eAbwYRsAU6StbAFc9BVg6cun4cw5eeZyYxxKg59SC6juHWRiDGtujGnjnEzgH2ufVU1JjRU6p5N6WmxjXjr2CSYhMn7CBNucoTsRSymk6vExcms5m7STY1JrASH3esvnwPTFwaX5R", + "stackHeight": null + } + ], + "addressTableLookups": [] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 169018212840, + 0, + 1, + 6120992880, + 1141440 + ], + "postBalances": [ + 169013642080, + 4565760, + 1, + 6120992880, + 1141440 + ], + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 0, + 1 + ], + "data": "111112RZKQ4yMXN8zMsggLRz2TtSVkXjiW95ngmKm3QdFfkMF495VczRGsGgZarM7DPAXG", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program 7c6mteAcTXaQ1MFBCrnuzoZVTTAEfZwa6wgy4bqX3KXC invoke [1]", + "Program log: Instruction: Initialize", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program 7c6mteAcTXaQ1MFBCrnuzoZVTTAEfZwa6wgy4bqX3KXC consumed 14681 of 200000 compute units", + "Program 7c6mteAcTXaQ1MFBCrnuzoZVTTAEfZwa6wgy4bqX3KXC success" + ], + "preTokenBalances": [], + "postTokenBalances": [], + "rewards": [], + "loadedAddresses": { + "writable": [], + "readonly": [] + }, + "computeUnitsConsumed": 14681 + }, + "blockTime": 1761256371, + "slot": 416638427 +} diff --git a/solana/devnet/2025-10-23-deploy-bridge/artifacts/set-base-relayer-upgrade-authority-artifacts.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/set-base-relayer-upgrade-authority-artifacts.json new file mode 100644 index 00000000..c2b537d3 --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/set-base-relayer-upgrade-authority-artifacts.json @@ -0,0 +1,69 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "2f3bUQpBaZjSjmLiThv5rTSqu9QXVtweitUJXHuDd2LREjm59HuBiNWrJAJQLsyy73Dbq7cfFLdAd2Dd2nJGXkXi" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 2 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "9mUcnyK4TVwHoMkyVCTiVFqWDUuRqHoAJP32pxSXCTjP", + "BPFLoaderUpgradeab1e11111111111111111111111", + "2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ" + ], + "recentBlockhash": "CxXbLnHqpSmfvPrCm2aaPGzvLvfNNHmgmh1pAvYAoWth", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 1, + 0, + 3 + ], + "data": "6vx8P", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 168811561920, + 2098391280, + 1, + 0 + ], + "postBalances": [ + 168811556920, + 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": 1761256438, + "slot": 416638602 +} diff --git a/solana/devnet/2025-10-23-deploy-bridge/artifacts/set-bridge-upgrade-authority-artifacts.json b/solana/devnet/2025-10-23-deploy-bridge/artifacts/set-bridge-upgrade-authority-artifacts.json new file mode 100644 index 00000000..3ea4c5d1 --- /dev/null +++ b/solana/devnet/2025-10-23-deploy-bridge/artifacts/set-bridge-upgrade-authority-artifacts.json @@ -0,0 +1,69 @@ +{ + "confirmationStatus": "finalized", + "transaction": { + "signatures": [ + "5i1CYwJDo9jFVLsBM2aQMkzwbr41QD68kFL5CBZru7cSr7AeXGyaF52PQnWjLX6oT2VLREuV4Pv5dPdNAM2EhLrB" + ], + "message": { + "header": { + "numRequiredSignatures": 1, + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 2 + }, + "accountKeys": [ + "2aWsUTRfJu2hPNUYHaYJjm6C3SVPqXjtoxu2VgBXsd72", + "3Tc2r6TM38kX4ogeMwRuXCQsNEeBsRpQNr3NSf8GoZbz", + "BPFLoaderUpgradeab1e11111111111111111111111", + "2N9nKVFPHsBVazniiYNxECB2nPLcwjk3dHAJH9tkr2xQ" + ], + "recentBlockhash": "FQBzZGNX18ayjtgH57yJx77G6envHFxH5GmhNQFMWUFo", + "instructions": [ + { + "programIdIndex": 2, + "accounts": [ + 1, + 0, + 3 + ], + "data": "6vx8P", + "stackHeight": null + } + ] + } + }, + "meta": { + "err": null, + "status": { + "Ok": null + }, + "fee": 5000, + "preBalances": [ + 168811566920, + 6120992880, + 1, + 0 + ], + "postBalances": [ + 168811561920, + 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": 1761256436, + "slot": 416638596 +}