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
10 changes: 5 additions & 5 deletions config/mainnet.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"appChainParameterRegistryImplementation": "0x6e2e157cEfbc122DAd6d3EB904480f645352f905",
"deployer": "0xD0d217d895372793900898183D18d10d3261984F",
"depositSplitter": "0xf2346DC89311c636E3Cd6B6341aA5060CCc308e6",
"distributionManagerImplementation": "0xC19819B705b7e131d7ddB4663a6948b5ce7703b7",
"distributionManagerImplementation": "0xe2C4EC56bbFa07c2C250527b5706E571Ea866458",
"distributionManagerProxy": "0xcc66BB4c08F3aB6DCa12F8F866bd6301c07849f7",
"distributionManagerProxySalt": "DistributionManager_0",
"factory": "0xD7Ec545A625B263EC9db9742cFC9933A0B1840d9",
Expand All @@ -29,16 +29,16 @@
"payerRegistryImplementation": "0x567908B5c23e1fF2FF17BEA2ecca1e7337a1280B",
"payerRegistryProxy": "0xd1c78Dee5d58eCCF1cF1CAABbfc9837215f1B82B",
"payerRegistryProxySalt": "PayerRegistry_0",
"payerReportManagerImplementation": "0xF8E0c480BF36dDB128D83cAe8d049bC4cee5c1f4",
"payerReportManagerImplementation": "0xAf7Edf1d7D97bD5B9351b9a6097A63010672EebD",
"payerReportManagerProxy": "0xEf3E4F3606A297eE0E7D2346A3b0EcfA69eDb457",
"payerReportManagerProxySalt": "PayerReportManager_0",
"rateRegistryImplementation": "0xC5205D8Ff4515FDf927De62922AaC7010e3ebEE5",
"rateRegistryProxy": "0xa72d7b979349E203777f80C458DBa5543bccc815",
"rateRegistryProxySalt": "RateRegistry_0",
"settlementChainGatewayImplementation": "0xd2fD6db8c36483046dedBA8e7CAa18CB69aFfcbd",
"settlementChainId": "8453",
"settlementChainParameterRegistryAdmin1": "0x25943B130E3871273D389545178151878e3cac3e",
"settlementChainParameterRegistryAdmin2": "0x0000000000000000000000000000000000000000",
"settlementChainParameterRegistryAdmin1": "0x0bb1dE335cf9c23723ca22c1fdFa64e51C1BEd67",
"settlementChainParameterRegistryAdmin2": "0xd66a39a62a2938776022e0ca55c1b838b5604080",
"settlementChainParameterRegistryAdmin3": "0x0000000000000000000000000000000000000000",
"settlementChainParameterRegistryImplementation": "0xA7B0cC3E2F94E921EC7F93ee1055a60EBa4EcB93",
"startingParameters": {
Expand All @@ -49,7 +49,7 @@
}
},
"nodeRegistry": {
"admin": "0x25943B130E3871273D389545178151878e3cac3e",
"admin": "0xC3B4D9F4Bd0D308E672d01A826DA743bD806BCf5",
"maxCanonicalNodes": "100"
},
"payerRegistry": {
Expand Down
5 changes: 4 additions & 1 deletion script/upgrades/app-chain/BaseAppChainUpgrader.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,10 @@ abstract contract BaseAppChainUpgrader is Script {
vm.stopBroadcast();

// Output migrator address and Fireblocks note for step 2
string memory fireblocksNote = _getFireblocksNote("setMigrator");
// Use generateNote (not getNote) to always produce a fresh note from the current contract,
// avoiding stale FIREBLOCKS_NOTE env vars left over from a previous operation.
string memory contractName = _getContractName();
string memory fireblocksNote = FireblocksNote.generateNote(_environment, "setMigrator", contractName);
console.log("==========================================");
console.log("MIGRATOR_ADDRESS_FOR_STEP_2: %s", address(migrator));
console.log("FIREBLOCKS_NOTE_FOR_STEP_2: %s", fireblocksNote);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,10 @@ abstract contract BaseSettlementChainUpgrader is Script {

// Output migrator address and Fireblocks note for step 2
// Always output these, even if not using Fireblocks for Step 1, since user might use Fireblocks for Step 2
string memory fireblocksNote = _getFireblocksNote("setMigrator");
// Use generateNote (not getNote) to always produce a fresh note from the current contract,
// avoiding stale FIREBLOCKS_NOTE env vars left over from a previous operation.
string memory contractName = _getContractName();
string memory fireblocksNote = FireblocksNote.generateNote(_environment, "setMigrator", contractName);
console.log("==========================================");
console.log("MIGRATOR_ADDRESS_FOR_STEP_2: %s", migrator);
console.log("FIREBLOCKS_NOTE_FOR_STEP_2: %s", fireblocksNote);
Expand Down
19 changes: 18 additions & 1 deletion script/utils/FireblocksNote.sol
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,24 @@ library FireblocksNote {
}
} catch {}

// Generate default note: "<operation> <ContractName> on <Environment>"
return generateNote(environment_, operation_, contractName_);
}

/**
* @notice Always generates a fresh Fireblocks note from parameters, ignoring env vars
* @param environment_ The environment name (e.g., "testnet-staging")
* @param operation_ The operation being performed (e.g., "upgrade", "prepare", "bridge")
* @param contractName_ The contract name (e.g., "NodeRegistry")
* @return note_ The generated Fireblocks note
* @dev Use this instead of getNote() when the note must reflect the current contract,
* e.g. in DeployImplementationAndMigrator where a stale FIREBLOCKS_NOTE env var
* from a previous operation would produce the wrong note.
*/
function generateNote(
string memory environment_,
string memory operation_,
string memory contractName_
) internal pure returns (string memory note_) {
return string.concat(operation_, " ", contractName_, " on ", environment_);
}

Expand Down
Loading