diff --git a/.env.example b/.env.example index e263d7d..e81b4f5 100644 --- a/.env.example +++ b/.env.example @@ -1,18 +1,18 @@ ## Address of the safe of interest # Can be overriden -SAFE = "" +SAFE="" ## Chain id of the safe of interest # Can be overriden -CHAIN_ID = "" +CHAIN_ID="" ## Address which has the right to push transactions on Gnosis front: it could be a Gnosis signer, or a ## delegate which has been added -SENDER = "" +SENDER="" ## Private key of the sender -PRIVATE_KEY = "" +PRIVATE_KEY="" ## Address of the delegate which has been added to the safe -DELEGATE_ADDRESS = "" +DELEGATE_ADDRESS="" ## Address of the delegator who gave safe access to the delegate -DELEGATOR_ADDRESS = "" +DELEGATOR_ADDRESS="" ## You may also use this repo to execute transactions that were signed by Gnosis signers: in this case ## you need to specify an URI associated to the network and a mnemonic diff --git a/foundry.toml b/foundry.toml index cb79b49..76c5d96 100644 --- a/foundry.toml +++ b/foundry.toml @@ -10,7 +10,15 @@ via_ir = false sizes = true optimizer_runs=1000 solc_version = '0.8.25' -fs_permissions = [{ access = "read-write", path = "./scripts/foundry/transaction.json"}, { access = "read-write", path = "./scripts/foundry/transactions.json"}, { access = "read-write", path = "./lib/angle-tokens/scripts"}, { access = "read-write", path = "./scripts/proposals/transmuter/selectors.json"}, { access = "read-write", path = "./scripts/foundry/transmuter/updateFacets/selectors_replace.json"}, { access = "read-write", path = "./scripts/foundry/transmuter/updateFacets/selectors_add.json"}] +fs_permissions = [ + { access = "read-write", path = "./scripts/foundry/transaction.json" }, + { access = "read-write", path = "./scripts/foundry/transactions.json" }, + { access = "read-write", path = "./lib/angle-tokens/scripts"}, + { access = "read-write", path = "./scripts/proposals/transmuter/selectors.json"}, + { access = "read-write", path = "./scripts/foundry/transmuter/updateFacets/selectors_replace.json"}, + { access = "read-write", path = "./scripts/foundry/transmuter/updateFacets/selectors_add.json"}, + { access = "read", path = "./node_modules/@angleprotocol/sdk/dist/src/registry/registry.json" } +] ffi = true diff --git a/helpers/foundryMultiChainScript.sh b/helpers/foundryMultiChainScript.sh new file mode 100755 index 0000000..61d8db3 --- /dev/null +++ b/helpers/foundryMultiChainScript.sh @@ -0,0 +1,190 @@ +#! /bin/bash + +function usage { + echo "bash foundryMultiChainScript.sh " + echo "Lists all chains where Merkl DistributionCreator is deployed and allows selection" + echo "Example: bash foundryMultiChainScript.sh scripts/foundry/merkl/UpgradeDistributionCreator.s.sol" + echo "" +} + +# Get list of chain IDs where DistributionCreator is deployed +function get_available_chains() { + local registry_file="node_modules/@angleprotocol/sdk/dist/src/registry/registry.json" + if [ ! -f "$registry_file" ]; then + echo "Registry file not found!" + exit 1 + fi + + jq -r 'to_entries | .[] | select(.value.Merkl.DistributionCreator != null) | .key' "$registry_file" +} + +# Get list of chains to deploy to, handling exclusions +function get_selected_chains() { + local chain_ids=("$@") + local selected_chains=() + local exclude_chain_ids=(314) # Default exclusions: filecoin, avalanche + + read -p "Do you want to run the script on all chains? (y/n) -- Note: ChainIDs 314 is already excluded by default: " deploy_all + + if [[ "$deploy_all" == "y" ]]; then + for chain_id in "${chain_ids[@]}"; do + if [[ ! " ${exclude_chain_ids[@]} " =~ " ${chain_id} " ]]; then + selected_chains+=("$chain_id") + fi + done + else + read -p "Enter chain IDs to exclude (space-separated), or press enter to continue: " -a additional_exclude + exclude_chain_ids+=("${additional_exclude[@]}") + + for chain_id in "${chain_ids[@]}"; do + if [[ ! " ${exclude_chain_ids[@]} " =~ " ${chain_id} " ]]; then + selected_chains+=("$chain_id") + fi + done + fi + + printf "%s " "${selected_chains[@]}" +} + +# Get verification string for a specific chain +function get_verify_string() { + local chain_id=$1 + local verify_string="" + + local verifier_type_var="VERIFIER_TYPE_${chain_id}" + local verifier_type=$(eval "echo \$$verifier_type_var") + + if [ ! -z "${verifier_type}" ]; then + verify_string="--verify --verifier ${verifier_type}" + + # Add verifier URL if present + local verifier_url_var="VERIFIER_URL_${chain_id}" + local verifier_url=$(eval "echo \$$verifier_url_var") + if [ ! -z "${verifier_url}" ]; then + verify_string="${verify_string} --verifier-url ${verifier_url}" + fi + + # Add API key if present + local verifier_api_key_var="VERIFIER_API_KEY_${chain_id}" + local verifier_api_key=$(eval "echo \$$verifier_api_key_var") + if [ ! -z "${verifier_api_key}" ]; then + verify_string="${verify_string} --verifier-api-key ${verifier_api_key}" + fi + fi + + echo "$verify_string" +} + +# Get compilation flags for a specific chain +function get_compile_flags() { + local chain_id=$1 + + if [[ "$chain_id" == "30" || "$chain_id" == "122" || "$chain_id" == "592" || "$chain_id" == "1284" || "$chain_id" == "42793" ]]; then + echo "--evm-version london" + elif [[ "$chain_id" == "196" || "$chain_id" == "250" || "$chain_id" == "1329" || "$chain_id" == "3776" || "$chain_id" == "480" || "$chain_id" == "2046399126" ]]; then + echo "--legacy" + else + echo "" + fi +} + +function main { + # Check if script path is provided + if [ -z "$1" ]; then + usage + exit 1 + fi + + FOUNDRY_SCRIPT="$1" + + # Verify the script exists + if [ ! -f "$FOUNDRY_SCRIPT" ]; then + echo "Error: Script file '$FOUNDRY_SCRIPT' not found!" + exit 1 + fi + + # Path to the registry file + registry_file="node_modules/@angleprotocol/sdk/dist/src/registry/registry.json" + + if [ ! -f "$registry_file" ]; then + echo "Registry file not found!" + exit 1 + fi + + + # Store chain IDs in an array + chain_ids=() + while IFS= read -r chain_id; do + chain_ids+=("$chain_id") + done <<< "$(jq -r 'to_entries | .[] | select(.value.Merkl.DistributionCreator != null) | .key' "$registry_file")" + + # Display all chains + echo "Chain IDs where Merkl DistributionCreator is deployed: ${chain_ids[@]}" + + echo "" + selected_chains=($(get_selected_chains "${chain_ids[@]}")) + + source .env + rm -f scripts/foundry/transaction.json + echo '{}' > scripts/foundry/transactions.json + + # Initialize arrays for tracking deployment status + successful_chains=() + failed_chains=() + + # Prompt user for broadcast and verify options + read -p "Do you want to broadcast the transaction? (y/n): " broadcast_choice + + # Set flags based on user input + if [ "$broadcast_choice" == "y" ]; then + broadcast_flag="--broadcast" + read -p "Do you want to verify the transaction? (y/n): " verify_choice + else + broadcast_flag="" + fi + + # Run forge script for each selected chain + for chain_id in "${selected_chains[@]}"; do + echo "Running forge script for chain ID: $chain_id" + rpc_url_var="ETH_NODE_URI_${chain_id}" + rpc_url=$(eval "echo \$$rpc_url_var") + + # Verification string based on chain-specific environment variables + if [ "$verify_choice" == "y" ]; then + verify_string=$(get_verify_string "$chain_id") + else + verify_string="" + fi + + # Compilation specific flags + compile_flags=$(get_compile_flags "$chain_id") + + cmd="forge script $FOUNDRY_SCRIPT $broadcast_flag --rpc-url $rpc_url $compile_flags $verify_string" + echo "Running command: $cmd" + if eval $cmd && [ -f "scripts/foundry/transaction.json" ]; then + successful_chains+=("$chain_id") + else + failed_chains+=("$chain_id") + fi + + # Create a new JSON object with chain ID as key and transaction data as value + if [ -f "scripts/foundry/transaction.json" ]; then + jq -s '.[0] * {("'$chain_id'"): .[1]}' \ + scripts/foundry/transactions.json \ + scripts/foundry/transaction.json > scripts/foundry/transactions.json.tmp + + mv scripts/foundry/transactions.json.tmp scripts/foundry/transactions.json + rm -f scripts/foundry/transaction.json + fi + done + + # Display final deployment status + if [ ${#successful_chains[@]} -gt 0 ]; then + echo -e "\n✅ Deployment successful on chains: ${successful_chains[*]}" + fi + if [ ${#failed_chains[@]} -gt 0 ]; then + echo -e "\n❌ Deployment issues on chains: ${failed_chains[*]}" + fi +} + +main "$@" \ No newline at end of file diff --git a/lib/utils b/lib/utils index d4a8da3..53dafaf 160000 --- a/lib/utils +++ b/lib/utils @@ -1 +1 @@ -Subproject commit d4a8da343cd8de28885ec5a2352d3be1cbd3b0ec +Subproject commit 53dafafba5ca39c7e519b919f90d04dd316f643f diff --git a/package.json b/package.json index 2734d2b..2cd6613 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "create-tx": "bash helpers/createTx.sh", "submit:foundry": "hardhat run ./scripts/submitFoundryTx.ts", "submit-multiple:foundry": "hardhat run ./scripts/submitMultipleFoundryTx.ts", + "deploy-multiple:foundry": "chmod +x ./helpers/foundryMultiChainScript.sh && bash helpers/foundryMultiChainScript.sh", "test": "forge test -vvvv", "prettier": "prettier --write ." }, diff --git a/scripts/foundry/Constants.s.sol b/scripts/foundry/Constants.s.sol index cb89813..8bc7f09 100644 --- a/scripts/foundry/Constants.s.sol +++ b/scripts/foundry/Constants.s.sol @@ -14,7 +14,7 @@ import "./Interfaces.s.sol"; CONSTANTS //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ -uint256 constant CHAIN_SOURCE = CHAIN_ETHEREUM; +uint256 constant CHAIN_SOURCE = Constants.CHAIN_ETHEREUM; uint64 constant twoPoint5Rate = 782997666703977344; uint64 constant fourRate = 1243680713969297408; @@ -69,7 +69,6 @@ MultiSend constant multiSendMode = MultiSend(0x40A2aCCbd92BCA938b02010E17A5b8929 MultiSend constant multiSendBlast = MultiSend(0x40A2aCCbd92BCA938b02010E17A5b8929b49130D); MultiSend constant multiSendXLayer = MultiSend(0x40A2aCCbd92BCA938b02010E17A5b8929b49130D); - // MultiSend constant multiSendStarknet = MultiSend(); // MultiSend constant multiSendNear = MultiSend(); // MultiSend constant multiSendSolana = MultiSend(); @@ -83,4 +82,4 @@ address constant BC3M = 0x2F123cF3F37CE3328CC9B5b8415f9EC5109b45e7; address constant XEVT = 0x3Ee320c9F73a84D1717557af00695A34b26d1F1d; address constant USDM = 0x59D9356E565Ab3A36dD77763Fc0d87fEaf85508C; address constant STEAK_USDC = 0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB; -address constant USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; \ No newline at end of file +address constant USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; diff --git a/scripts/foundry/Utils.s.sol b/scripts/foundry/Utils.s.sol index b969b3d..52015f3 100644 --- a/scripts/foundry/Utils.s.sol +++ b/scripts/foundry/Utils.s.sol @@ -3,15 +3,15 @@ pragma solidity ^0.8.19; import "forge-std/Script.sol"; -import {IAgToken} from "borrow/interfaces/IAgToken.sol"; -import {MultiSend} from "safe/libraries/MultiSend.sol"; -import {Safe, Enum} from "safe/Safe.sol"; -import {ITransmuter} from "transmuter/interfaces/ITransmuter.sol"; +import { IAgToken } from "borrow/interfaces/IAgToken.sol"; +import { MultiSend } from "safe/libraries/MultiSend.sol"; +import { Safe, Enum } from "safe/Safe.sol"; +import { ITransmuter } from "transmuter/interfaces/ITransmuter.sol"; import "./Constants.s.sol"; -import {IAngle} from "./Constants.s.sol"; -import {CoreBorrow} from "borrow/coreBorrow/CoreBorrow.sol"; -import {ProxyAdmin} from "oz/proxy/transparent/ProxyAdmin.sol"; -import {CommonUtils} from "utils/src/CommonUtils.sol"; +import { IAngle } from "./Constants.s.sol"; +import { CoreBorrow } from "borrow/coreBorrow/CoreBorrow.sol"; +import { ProxyAdmin } from "oz/proxy/transparent/ProxyAdmin.sol"; +import { CommonUtils } from "utils/src/CommonUtils.sol"; import { MockSafe } from "../../test/mock/MockSafe.sol"; /// @title Utils @@ -26,7 +26,7 @@ contract Utils is Script, CommonUtils { address[] private safes; function setUp() public virtual { - setUpForks(); + // setUpForks(); } function _serializeJson( @@ -82,10 +82,23 @@ contract Utils is Script, CommonUtils { } else { safe = _chainToContract(args.targetedChainIds[args.currentChain], args.safeType); } - return SafeTransaction(payloadMultiSend, multiSend, args.totalValue, args.targetedChainIds[args.currentChain], uint256(Enum.Operation.DelegateCall), safe); + return + SafeTransaction( + payloadMultiSend, + multiSend, + args.totalValue, + args.targetedChainIds[args.currentChain], + uint256(Enum.Operation.DelegateCall), + safe + ); } - function _wrap(Transaction[] memory transactions, ContractType safeType, uint256 chainId, address chainSafe) internal returns (MultiSendTransactions[] memory) { + function _wrap( + Transaction[] memory transactions, + ContractType safeType, + uint256 chainId, + address chainSafe + ) internal returns (MultiSendTransactions[] memory) { // get all unique chainIds uint256[] memory targetedChainIds = new uint256[](transactions.length); uint256 targetedChainIdsLength = 0; @@ -116,28 +129,42 @@ contract Utils is Script, CommonUtils { if (transaction.chainId == targetedChainIds[i]) { totalValue += transaction.value; bytes memory internalTx = abi.encodePacked( - uint8(transaction.operation), transaction.to, transaction.value, transaction.data.length, transaction.data + uint8(transaction.operation), + transaction.to, + transaction.value, + transaction.data.length, + transaction.data ); chainTransactions = abi.encodePacked(chainTransactions, internalTx); - internalTransactions[count++] = SafeTransaction(transaction.data, transaction.to, transaction.value, transaction.chainId, transaction.operation, chainSafe); + internalTransactions[count++] = SafeTransaction( + transaction.data, + transaction.to, + transaction.value, + transaction.chainId, + transaction.operation, + chainSafe + ); } } assembly ("memory-safe") { mstore(internalTransactions, count) } - multiSendTransactions[i].transaction = _createMultiSendTransaction(Args(totalValue, targetedChainIds, chainTransactions, i, chainSafe, safeType, chainId)); + multiSendTransactions[i].transaction = _createMultiSendTransaction( + Args(totalValue, targetedChainIds, chainTransactions, i, chainSafe, safeType, chainId) + ); multiSendTransactions[i].internalTransactions = internalTransactions; } return multiSendTransactions; } - function _wrap(Transaction[] memory transactions, ContractType safeType) internal returns (MultiSendTransactions[] memory) { + function _wrap( + Transaction[] memory transactions, + ContractType safeType + ) internal returns (MultiSendTransactions[] memory) { return _wrap(transactions, safeType, 0, address(0)); } - function _serializeJson( - MultiSendTransactions[] memory transactions - ) internal { + function _serializeJson(MultiSendTransactions[] memory transactions) internal { string memory txJson = "chain"; string memory json = ""; string memory output; @@ -177,7 +204,11 @@ contract Utils is Script, CommonUtils { string memory jsonOperations = "operation"; string memory operationsOutput; for (uint256 i; i < transactions.length; i++) { - operationsOutput = vm.serializeUint(jsonOperations, vm.toString(i), transactions[i].transaction.operation); + operationsOutput = vm.serializeUint( + jsonOperations, + vm.toString(i), + transactions[i].transaction.operation + ); } vm.serializeString(txJson, "operation", operationsOutput); } @@ -190,7 +221,6 @@ contract Utils is Script, CommonUtils { output = vm.serializeString(txJson, "safe", safesOutput); } - // internal txs string memory internalTxJson = "internal"; string memory internalOutput; @@ -207,7 +237,11 @@ contract Utils is Script, CommonUtils { string memory jsonTargets = string.concat("to", ".", vm.toString(i)); string memory targetsOutput; for (uint256 j; j < transactions[i].internalTransactions.length; j++) { - targetsOutput = vm.serializeAddress(jsonTargets, vm.toString(j), transactions[i].internalTransactions[j].to); + targetsOutput = vm.serializeAddress( + jsonTargets, + vm.toString(j), + transactions[i].internalTransactions[j].to + ); } chainOutput = vm.serializeString(jsonChain, "to", targetsOutput); } @@ -215,7 +249,11 @@ contract Utils is Script, CommonUtils { string memory jsonValues = string.concat("value", ".", vm.toString(i)); string memory valuesOutput; for (uint256 j; j < transactions[i].internalTransactions.length; j++) { - valuesOutput = vm.serializeUint(jsonValues, vm.toString(j), transactions[i].internalTransactions[j].value); + valuesOutput = vm.serializeUint( + jsonValues, + vm.toString(j), + transactions[i].internalTransactions[j].value + ); } chainOutput = vm.serializeString(jsonChain, "value", valuesOutput); } @@ -223,7 +261,11 @@ contract Utils is Script, CommonUtils { string memory jsonDatas = string.concat("data", ".", vm.toString(i)); string memory datasOutput; for (uint256 j; j < transactions[i].internalTransactions.length; j++) { - datasOutput = vm.serializeBytes(jsonDatas, vm.toString(j), transactions[i].internalTransactions[j].data); + datasOutput = vm.serializeBytes( + jsonDatas, + vm.toString(j), + transactions[i].internalTransactions[j].data + ); } chainOutput = vm.serializeString(jsonChain, "data", datasOutput); } @@ -231,7 +273,11 @@ contract Utils is Script, CommonUtils { string memory jsonOperations = string.concat("operation", ".", vm.toString(i)); string memory operationsOutput; for (uint256 j; j < transactions[i].internalTransactions.length; j++) { - operationsOutput = vm.serializeUint(jsonOperations, vm.toString(j), transactions[i].internalTransactions[j].operation); + operationsOutput = vm.serializeUint( + jsonOperations, + vm.toString(j), + transactions[i].internalTransactions[j].operation + ); } chainOutput = vm.serializeString(jsonChain, "operation", operationsOutput); } @@ -243,7 +289,7 @@ contract Utils is Script, CommonUtils { vm.writeJson(transactionOutput, "./scripts/foundry/transactions.json"); } - function _deserializeJson() internal returns(SafeTransaction[] memory) { + function _deserializeJson() internal returns (SafeTransaction[] memory) { string memory json = vm.readFile("./scripts/foundry/transactions.json"); { string memory calldataKey = ".transaction.data"; @@ -307,83 +353,90 @@ contract Utils is Script, CommonUtils { } SafeTransaction[] memory transactions = new SafeTransaction[](calldatas.length); for (uint256 i = 0; i < calldatas.length; i++) { - transactions[i] = SafeTransaction(calldatas[i], targets[i], values[i], chainIds[i], operations[i], safes[i]); + transactions[i] = SafeTransaction( + calldatas[i], + targets[i], + values[i], + chainIds[i], + operations[i], + safes[i] + ); } return transactions; } function _chainToMultiSend(uint256 chain) internal pure returns (MultiSend) { - if (chain == CHAIN_ETHEREUM) return multiSendEthereum; - else if (chain == CHAIN_POLYGON) return multiSendPolygon; - else if (chain == CHAIN_ARBITRUM) return multiSendArbitrum; - else if (chain == CHAIN_OPTIMISM) return multiSendOptimism; - else if (chain == CHAIN_AVALANCHE) return multiSendAvalanche; - else if (chain == CHAIN_GNOSIS) return multiSendGnosis; - else if (chain == CHAIN_BNB) return multiSendBNB; - else if (chain == CHAIN_POLYGONZKEVM) return multiSendPolygonZkEVM; - else if (chain == CHAIN_BASE) return multiSendBase; - else if (chain == CHAIN_CELO) return multiSendCelo; - else if (chain == CHAIN_LINEA) return multiSendLinea; - else if (chain == CHAIN_MANTLE) return multiSendMantle; - else if (chain == CHAIN_MODE) return multiSendMode; - else if (chain == CHAIN_BLAST) return multiSendBlast; - else if (chain == CHAIN_XLAYER) return multiSendXLayer; + if (chain == Constants.CHAIN_ETHEREUM) return multiSendEthereum; + else if (chain == Constants.CHAIN_POLYGON) return multiSendPolygon; + else if (chain == Constants.CHAIN_ARBITRUM) return multiSendArbitrum; + else if (chain == Constants.CHAIN_OPTIMISM) return multiSendOptimism; + else if (chain == Constants.CHAIN_AVALANCHE) return multiSendAvalanche; + else if (chain == Constants.CHAIN_GNOSIS) return multiSendGnosis; + else if (chain == Constants.CHAIN_BNB) return multiSendBNB; + else if (chain == Constants.CHAIN_POLYGONZKEVM) return multiSendPolygonZkEVM; + else if (chain == Constants.CHAIN_BASE) return multiSendBase; + else if (chain == Constants.CHAIN_CELO) return multiSendCelo; + else if (chain == Constants.CHAIN_LINEA) return multiSendLinea; + else if (chain == Constants.CHAIN_MANTLE) return multiSendMantle; + else if (chain == Constants.CHAIN_MODE) return multiSendMode; + else if (chain == Constants.CHAIN_BLAST) return multiSendBlast; + else if (chain == Constants.CHAIN_XLAYER) return multiSendXLayer; else revert("chain not supported"); } function implEURA(uint256 chain) public view returns (address) { - if (chain == CHAIN_ARBITRUM) return address(0x1a23b27aC7775B6220dC4F816b5c6A629E371f19); - else if (chain == CHAIN_AVALANCHE) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); - else if (chain == CHAIN_BASE) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); - else if (chain == CHAIN_BNB) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); - else if (chain == CHAIN_CELO) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); - else if (chain == CHAIN_ETHEREUM) return address(0xc3ef7ed4F97450Ae8dA2473068375788BdeB5c5c); - else if (chain == CHAIN_GNOSIS) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); - else if (chain == CHAIN_LINEA) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); - else if (chain == CHAIN_OPTIMISM) return address(0x67AA77342bE08935380eBece796A0F4f19F16444); - else if (chain == CHAIN_POLYGON) return address(0x09f143d3Af1Af9af6AB6BCe1B53fc5a8dc1baA79); - else if (chain == CHAIN_POLYGONZKEVM) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); + if (chain == Constants.CHAIN_ARBITRUM) return address(0x1a23b27aC7775B6220dC4F816b5c6A629E371f19); + else if (chain == Constants.CHAIN_AVALANCHE) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); + else if (chain == Constants.CHAIN_BASE) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); + else if (chain == Constants.CHAIN_BNB) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); + else if (chain == Constants.CHAIN_CELO) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); + else if (chain == Constants.CHAIN_ETHEREUM) return address(0xc3ef7ed4F97450Ae8dA2473068375788BdeB5c5c); + else if (chain == Constants.CHAIN_GNOSIS) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); + else if (chain == Constants.CHAIN_LINEA) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); + else if (chain == Constants.CHAIN_OPTIMISM) return address(0x67AA77342bE08935380eBece796A0F4f19F16444); + else if (chain == Constants.CHAIN_POLYGON) return address(0x09f143d3Af1Af9af6AB6BCe1B53fc5a8dc1baA79); + else if (chain == Constants.CHAIN_POLYGONZKEVM) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); else revert("chain not supported"); } function implUSDA(uint256 chain) public view returns (address) { - if (chain == CHAIN_ARBITRUM) return address(0x1a23b27aC7775B6220dC4F816b5c6A629E371f19); - else if (chain == CHAIN_AVALANCHE) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); - else if (chain == CHAIN_BASE) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); - else if (chain == CHAIN_BNB) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); - else if (chain == CHAIN_CELO) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); - else if (chain == CHAIN_ETHEREUM) return address(0x028e1f0DB25DAF4ce8C895215deAfbCE7A873b24); - else if (chain == CHAIN_GNOSIS) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); - else if (chain == CHAIN_LINEA) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); - else if (chain == CHAIN_OPTIMISM) return address(0x67AA77342bE08935380eBece796A0F4f19F16444); - else if (chain == CHAIN_POLYGON) return address(0x04A7d169C5b14d2e29A3bA8b5071dDA5E365c199); - else if (chain == CHAIN_POLYGONZKEVM) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); + if (chain == Constants.CHAIN_ARBITRUM) return address(0x1a23b27aC7775B6220dC4F816b5c6A629E371f19); + else if (chain == Constants.CHAIN_AVALANCHE) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); + else if (chain == Constants.CHAIN_BASE) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); + else if (chain == Constants.CHAIN_BNB) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); + else if (chain == Constants.CHAIN_CELO) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); + else if (chain == Constants.CHAIN_ETHEREUM) return address(0x028e1f0DB25DAF4ce8C895215deAfbCE7A873b24); + else if (chain == Constants.CHAIN_GNOSIS) return address(0xA0E088Fb02A8d5a71d337B88B7629b0413f53de4); + else if (chain == Constants.CHAIN_LINEA) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); + else if (chain == Constants.CHAIN_OPTIMISM) return address(0x67AA77342bE08935380eBece796A0F4f19F16444); + else if (chain == Constants.CHAIN_POLYGON) return address(0x04A7d169C5b14d2e29A3bA8b5071dDA5E365c199); + else if (chain == Constants.CHAIN_POLYGONZKEVM) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); else revert("chain not supported"); } function implStakedStablecoin(uint256 chain) public view returns (address) { - if (chain == CHAIN_ARBITRUM) return address(0xDAcf64fe735F5333474C9aE8000120002327a55A); - else if (chain == CHAIN_AVALANCHE) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); - else if (chain == CHAIN_BASE) return address(0x1899D4cC1BFf96038f9E8f5ecc898c70E2ff72ee); - else if (chain == CHAIN_BNB) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); - else if (chain == CHAIN_CELO) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); - else if (chain == CHAIN_ETHEREUM) return address(0x25B0a02C8050943483aE5d68165Ebcb47EB01148); - else if (chain == CHAIN_GNOSIS) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); - else if (chain == CHAIN_LINEA) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); - else if (chain == CHAIN_OPTIMISM) return address(0xa25c30044142d2fA243E7Fd3a6a9713117b3c396); - else if (chain == CHAIN_POLYGON) return address(0xA87D4F27F49D335ab1deEe6b9c43404414Bee214); - else if (chain == CHAIN_POLYGONZKEVM) return address(0x1899D4cC1BFf96038f9E8f5ecc898c70E2ff72ee); + if (chain == Constants.CHAIN_ARBITRUM) return address(0xDAcf64fe735F5333474C9aE8000120002327a55A); + else if (chain == Constants.CHAIN_AVALANCHE) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); + else if (chain == Constants.CHAIN_BASE) return address(0x1899D4cC1BFf96038f9E8f5ecc898c70E2ff72ee); + else if (chain == Constants.CHAIN_BNB) return address(0xb5eCAa1a867FeCCD6d87604bc16a2b6B53D706BF); + else if (chain == Constants.CHAIN_CELO) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); + else if (chain == Constants.CHAIN_ETHEREUM) return address(0x25B0a02C8050943483aE5d68165Ebcb47EB01148); + else if (chain == Constants.CHAIN_GNOSIS) return address(0xc42b7A34Cb37eE450cc8059B10D839e4753229d5); + else if (chain == Constants.CHAIN_LINEA) return address(0xE9169817EdBFe5FCF629eD8b3C2a34E2a50ec84C); + else if (chain == Constants.CHAIN_OPTIMISM) return address(0xa25c30044142d2fA243E7Fd3a6a9713117b3c396); + else if (chain == Constants.CHAIN_POLYGON) return address(0xA87D4F27F49D335ab1deEe6b9c43404414Bee214); + else if (chain == Constants.CHAIN_POLYGONZKEVM) return address(0x1899D4cC1BFf96038f9E8f5ecc898c70E2ff72ee); else revert("chain not supported"); } function _chainTo1InchAggregator(uint256 chain) internal pure returns (address) { if ( - chain == CHAIN_ETHEREUM || - chain == CHAIN_POLYGON || - chain == CHAIN_ARBITRUM || - chain == CHAIN_OPTIMISM || - chain == CHAIN_AVALANCHE || - chain == CHAIN_GNOSIS + chain == Constants.CHAIN_ETHEREUM || + chain == Constants.CHAIN_POLYGON || + chain == Constants.CHAIN_ARBITRUM || + chain == Constants.CHAIN_OPTIMISM || + chain == Constants.CHAIN_AVALANCHE || + chain == Constants.CHAIN_GNOSIS ) return 0x111111125421cA6dc452d289314280a0f8842A65; else revert("chain not supported"); } @@ -406,15 +459,15 @@ contract Utils is Script, CommonUtils { } function implRouter(uint256 chain) public view returns (address) { - if (chain == CHAIN_ARBITRUM) return address(0x3Ee021f6f91911b8a2af6047889C54CC4983f78D); - else if (chain == CHAIN_OPTIMISM) return address(0x4Fa745FCCC04555F2AFA8874cd23961636CdF982); - else if (chain == CHAIN_AVALANCHE) return address(0xFC48E39fed51F2937c8CE7eE95eD9181c2790ab1); - else if (chain == CHAIN_BASE) return address(0x874f1686E8F89374A40196B54F435Cc1A72d04e4); - else if (chain == CHAIN_CELO) return address(0x892bf71463Bd9fa57f3c2266aB74dbe1B96DECEa); - else if (chain == CHAIN_GNOSIS) return address(0xbDD9a43790BFe85DA12a9EfBf0eaFD8135538c99); - else if (chain == CHAIN_LINEA) return address(0x52F0C256E58c579Bf9E41e4332669b4f7C7209c5); - else if (chain == CHAIN_POLYGON) return address(0x05E08E1BF31C1882822Cc48D7d51d6fe49Bca9c2); - else if (chain == CHAIN_ETHEREUM) return address(0x042d98c63f642797C132B3e99C20fF6F751aaD3a); + if (chain == Constants.CHAIN_ARBITRUM) return address(0x3Ee021f6f91911b8a2af6047889C54CC4983f78D); + else if (chain == Constants.CHAIN_OPTIMISM) return address(0x4Fa745FCCC04555F2AFA8874cd23961636CdF982); + else if (chain == Constants.CHAIN_AVALANCHE) return address(0xFC48E39fed51F2937c8CE7eE95eD9181c2790ab1); + else if (chain == Constants.CHAIN_BASE) return address(0x874f1686E8F89374A40196B54F435Cc1A72d04e4); + else if (chain == Constants.CHAIN_CELO) return address(0x892bf71463Bd9fa57f3c2266aB74dbe1B96DECEa); + else if (chain == Constants.CHAIN_GNOSIS) return address(0xbDD9a43790BFe85DA12a9EfBf0eaFD8135538c99); + else if (chain == Constants.CHAIN_LINEA) return address(0x52F0C256E58c579Bf9E41e4332669b4f7C7209c5); + else if (chain == Constants.CHAIN_POLYGON) return address(0x05E08E1BF31C1882822Cc48D7d51d6fe49Bca9c2); + else if (chain == Constants.CHAIN_ETHEREUM) return address(0x042d98c63f642797C132B3e99C20fF6F751aaD3a); else revert("chain not supported"); } } diff --git a/scripts/foundry/governance/RevokeMultiSig.s.sol b/scripts/foundry/governance/RevokeMultiSig.s.sol index 35e4f14..d7fd03d 100644 --- a/scripts/foundry/governance/RevokeMultiSig.s.sol +++ b/scripts/foundry/governance/RevokeMultiSig.s.sol @@ -32,12 +32,12 @@ contract RevokeMultiSig is Utils { bytes32 guardianRole = core.GUARDIAN_ROLE(); if ( - chainId == CHAIN_ETHEREUM || - chainId == CHAIN_POLYGON || - chainId == CHAIN_ARBITRUM || - chainId == CHAIN_OPTIMISM || - chainId == CHAIN_AVALANCHE || - chainId == CHAIN_BNB + chainId == Constants.CHAIN_ETHEREUM || + chainId == Constants.CHAIN_POLYGON || + chainId == Constants.CHAIN_ARBITRUM || + chainId == Constants.CHAIN_OPTIMISM || + chainId == Constants.CHAIN_AVALANCHE || + chainId == Constants.CHAIN_BNB ) { /** Add minting agEUR privilege to the on chain governance */ { @@ -100,7 +100,7 @@ contract RevokeMultiSig is Utils { // transactions = abi.encodePacked(transactions, internalTx); // } - if (chainId == CHAIN_ETHEREUM) { + if (chainId == Constants.CHAIN_ETHEREUM) { { to = _chainToContract(chainId, ContractType.Angle); bytes memory data = abi.encodeWithSelector( diff --git a/scripts/foundry/merkl/UpgradeDistributionCreator.s.sol b/scripts/foundry/merkl/UpgradeDistributionCreator.s.sol new file mode 100644 index 0000000..eaf5e3d --- /dev/null +++ b/scripts/foundry/merkl/UpgradeDistributionCreator.s.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.19; + +import { TransparentUpgradeableProxy, ITransparentUpgradeableProxy } from "oz/proxy/transparent/TransparentUpgradeableProxy.sol"; +import { MultiSend, Utils } from "../Utils.s.sol"; +import { Enum } from "safe/Safe.sol"; +import { DistributionCreator } from "lib/merkl-contracts/contracts/DistributionCreator.sol"; +import "../Constants.s.sol"; + +contract UpgradeDistributionCreator is Utils { + function run() external { + uint256 chainId = block.chainid; + uint256 privateKey = vm.envUint("MERKL_PRIVATE_KEY"); + address distributionCreator = _chainToContract(chainId, ContractType.DistributionCreator); + vm.startBroadcast(privateKey); + address distributionCreatorImpl = address(new DistributionCreator()); + vm.stopBroadcast(); + + bytes memory payload = abi.encodeWithSelector( + ITransparentUpgradeableProxy.upgradeTo.selector, + distributionCreatorImpl + ); + + try this.chainToContract(chainId, ContractType.AngleLabsMultisig) returns (address safe) { + _serializeJson( + chainId, + distributionCreator, // target address (the proxy) + 0, // value + payload, // direct upgrade call + Enum.Operation.Call, // standard call (not delegate) + hex"", // signature + safe // safe address + ); + } catch {} + } +} diff --git a/scripts/foundry/router/UpgradeRouter.s.sol b/scripts/foundry/router/UpgradeRouter.s.sol index 96a378e..2ffc8b8 100644 --- a/scripts/foundry/router/UpgradeRouter.s.sol +++ b/scripts/foundry/router/UpgradeRouter.s.sol @@ -19,7 +19,7 @@ contract UpgradeRouter is Utils { address routerImpl = implRouter(chainId); /** END complete */ - if (chainId == CHAIN_LINEA) { + if (chainId == Constants.CHAIN_LINEA) { { bytes memory data = abi.encodeWithSelector(ITransparentUpgradeableProxy.upgradeTo.selector, routerImpl); address to = router; diff --git a/scripts/foundry/transaction.json b/scripts/foundry/transaction.json deleted file mode 100644 index aade331..0000000 --- a/scripts/foundry/transaction.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "additionalData": "0x", - "chainId": 1, - "data": "0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000056f005bedd878cbfaf4dc53ec272a291a6a4c2259369d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247ee84349000000000000000000000000a9bbbdde822789f123667044443dc7001fb43c01000a10f87f55d89eb2a89c264ebe46c90785a10b77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247ee84349000000000000000000000000a9bbbdde822789f123667044443dc7001fb43c01005bedd878cbfaf4dc53ec272a291a6a4c2259369d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000442b1da9cf00000000000000000000000059d9356e565ab3a36dd77763fc0d87feaf85508c00000000000000000000000078a42aa9b25cd00823ebb34dddcf38224d99e0c8000a10f87f55d89eb2a89c264ebe46c90785a10b77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000442b1da9cf0000000000000000000000003ee320c9f73a84d1717557af00695a34b26d1f1d0000000000000000000000003ee320c9f73a84d1717557af00695a34b26d1f1d0054b96fee8208ea7ace3d415e5c14798112909794000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c49a49e83d000000000000000000000000beef01735c132ada46aa9aa4c54623caa92a64cb000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000014dc9380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005bedd878cbfaf4dc53ec272a291a6a4c2259369d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c49a49e83d00000000000000000000000059d9356e565ab3a36dd77763fc0d87feaf85508c000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001dcd6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a10f87f55d89eb2a89c264ebe46c90785a10b77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c49a49e83d0000000000000000000000003ee320c9f73a84d1717557af00695a34b26d1f1d0000000000000000000000001abaea1f7c830bd89acc67ec4af516284b1bc33c00000000000000000000000000000000000000000000000000000000077359400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "operation": 1, - "safe": "0x0C2553e4B9dFA9f83b1A6D3EAB96c4bAaB42d430", - "to": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "value": 0 -} \ No newline at end of file diff --git a/scripts/foundry/transactions.json b/scripts/foundry/transactions.json index 774cc64..d1fd457 100644 --- a/scripts/foundry/transactions.json +++ b/scripts/foundry/transactions.json @@ -1,260 +1,308 @@ { - "internalTransactions": { - "0": { - "chainId": 1, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564ec0b13b2271e212e1a74d55d51932bd52a002961000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0x0C2553e4B9dFA9f83b1A6D3EAB96c4bAaB42d430", - "to": { - "0": "0xEc0B13b2271E212E1a74D55D51932BD52A002961" - }, - "value": { - "0": 0 - } - }, - "1": { - "chainId": 10, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564c69e66109943faf5cbda22f360b7eb7c27bb5c88000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0xD245678e417aEE2d91763F6f4eFE570FF52fD080", - "to": { - "0": "0xc69e66109943fAF5Cbda22F360b7eB7c27Bb5C88" - }, - "value": { - "0": 0 - } - }, - "10": { - "chainId": 59144, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c56407c89cc845d046aead377dddc61114aa9d920ac0000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0x007475B60d88B02663D6f975927b70BB4335e4b3", - "to": { - "0": "0x07C89CC845D046aEad377DddC61114AA9D920Ac0" - }, - "value": { - "0": 0 - } - }, - "2": { - "chainId": 56, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c56452f0c256e58c579bf9e41e4332669b4f7c7209c5000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0x371Ac6dB8063e6076890ef032A4A3cFCF226F548", - "to": { - "0": "0x52F0C256E58c579Bf9E41e4332669b4f7C7209c5" - }, - "value": { - "0": 0 - } - }, - "3": { - "chainId": 100, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5644dd4758f594b60551dc64f30289204d34ccd077d000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0xf0A31faec2B4fC6396c65B1aF1F6A71E653f11F0", - "to": { - "0": "0x4DD4758F594B60551dC64f30289204D34cCd077D" - }, - "value": { - "0": 0 - } - }, - "4": { - "chainId": 137, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564e70575daab2b1b3fa9658fa76cc506fcb0007169000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0x3b9D32D0822A6351F415BeaB05251c1457FF6f8D", - "to": { - "0": "0xe70575daaB2B1b3fa9658fa76cC506fcB0007169" - }, - "value": { - "0": 0 - } - }, - "5": { - "chainId": 1101, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5641e5b48c08d6b5efe0792d04f27602bd90026514a000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0x10DeF8a92c51C8082087356186a1485301078DCd", - "to": { - "0": "0x1E5B48c08D6b5efE0792d04f27602bD90026514a" - }, - "value": { - "0": 0 - } - }, - "6": { - "chainId": 8453, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5641a42a30dcba20a22b69c40098d89cb7304f429b9000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0xe4BB74804edf5280c9203f034036f7CB15196078", - "to": { - "0": "0x1A42a30dCbA20A22b69C40098d89cB7304f429B9" - }, - "value": { - "0": 0 - } - }, - "7": { - "chainId": 42161, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5648f4245d2efec45af24e5fa35f07172a830fc0ade000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0x55F01DDaE74b60e3c255BD2f619FEbdFce560a9C", - "to": { - "0": "0x8f4245D2eFEC45aF24E5Fa35f07172a830Fc0aDE" - }, - "value": { - "0": 0 - } - }, - "8": { - "chainId": 42220, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564dd6a0a00fe3353e813f3b3864694d55d2a7ce11c000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0x434153aA505959BCD5aAa7c17445EB8d835086f5", - "to": { - "0": "0xdD6A0A00fE3353e813F3B3864694D55D2a7cE11C" - }, - "value": { - "0": 0 - } - }, - "9": { - "chainId": 43114, - "data": { - "0": "0xeb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564c492fbae68ce6c5e14c7ed5cd8a59babd5c90e4c000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 0 - }, - "safe": "0xCcD44983f597aE4d4E2B70CF979597D63a10870D", - "to": { - "0": "0xC492fBAe68cE6C5E14C7ed5cd8a59babD5c90e4C" - }, - "value": { - "0": 0 - } - } - }, - "transaction": { - "chainId": { - "0": 1, - "1": 10, - "10": 59144, - "2": 56, - "3": 100, - "4": 137, - "5": 1101, - "6": 8453, - "7": 42161, - "8": 42220, - "9": 43114 - }, - "data": { - "0": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f900ec0b13b2271e212e1a74d55d51932bd52a002961000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564ec0b13b2271e212e1a74d55d51932bd52a00296100000000000000000000000000000000000000000000000000000000000000", - "1": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f900c69e66109943faf5cbda22f360b7eb7c27bb5c88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564c69e66109943faf5cbda22f360b7eb7c27bb5c8800000000000000000000000000000000000000000000000000000000000000", - "10": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f90007c89cc845d046aead377dddc61114aa9d920ac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c56407c89cc845d046aead377dddc61114aa9d920ac000000000000000000000000000000000000000000000000000000000000000", - "2": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f90052f0c256e58c579bf9e41e4332669b4f7c7209c5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c56452f0c256e58c579bf9e41e4332669b4f7c7209c500000000000000000000000000000000000000000000000000000000000000", - "3": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f9004dd4758f594b60551dc64f30289204d34ccd077d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5644dd4758f594b60551dc64f30289204d34ccd077d00000000000000000000000000000000000000000000000000000000000000", - "4": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f900e70575daab2b1b3fa9658fa76cc506fcb0007169000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564e70575daab2b1b3fa9658fa76cc506fcb000716900000000000000000000000000000000000000000000000000000000000000", - "5": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f9001e5b48c08d6b5efe0792d04f27602bd90026514a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5641e5b48c08d6b5efe0792d04f27602bd90026514a00000000000000000000000000000000000000000000000000000000000000", - "6": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f9001a42a30dcba20a22b69c40098d89cb7304f429b9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5641a42a30dcba20a22b69c40098d89cb7304f429b900000000000000000000000000000000000000000000000000000000000000", - "7": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f9008f4245d2efec45af24e5fa35f07172a830fc0ade000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c5648f4245d2efec45af24e5fa35f07172a830fc0ade00000000000000000000000000000000000000000000000000000000000000", - "8": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f900dd6a0a00fe3353e813f3b3864694d55d2a7ce11c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564dd6a0a00fe3353e813f3b3864694d55d2a7ce11c00000000000000000000000000000000000000000000000000000000000000", - "9": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f900c492fbae68ce6c5e14c7ed5cd8a59babd5c90e4c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4eb8d72b7000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000028c4df24680fe23ad109401a4a200de3994ad3c564c492fbae68ce6c5e14c7ed5cd8a59babd5c90e4c00000000000000000000000000000000000000000000000000000000000000" - }, - "operation": { - "0": 1, - "1": 1, - "10": 1, - "2": 1, - "3": 1, - "4": 1, - "5": 1, - "6": 1, - "7": 1, - "8": 1, - "9": 1 - }, - "safe": { - "0": "0x0C2553e4B9dFA9f83b1A6D3EAB96c4bAaB42d430", - "1": "0xD245678e417aEE2d91763F6f4eFE570FF52fD080", - "10": "0x007475B60d88B02663D6f975927b70BB4335e4b3", - "2": "0x371Ac6dB8063e6076890ef032A4A3cFCF226F548", - "3": "0xf0A31faec2B4fC6396c65B1aF1F6A71E653f11F0", - "4": "0x3b9D32D0822A6351F415BeaB05251c1457FF6f8D", - "5": "0x10DeF8a92c51C8082087356186a1485301078DCd", - "6": "0xe4BB74804edf5280c9203f034036f7CB15196078", - "7": "0x55F01DDaE74b60e3c255BD2f619FEbdFce560a9C", - "8": "0x434153aA505959BCD5aAa7c17445EB8d835086f5", - "9": "0xCcD44983f597aE4d4E2B70CF979597D63a10870D" - }, - "to": { - "0": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "1": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "10": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "2": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "3": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "4": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "5": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "6": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "7": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "8": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "9": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" - }, - "value": { - "0": 0, - "1": 0, - "10": 0, - "2": 0, - "3": 0, - "4": 0, - "5": 0, - "6": 0, - "7": 0, - "8": 0, - "9": 0 - } + "1": { + "additionalData": "0x", + "chainId": 1, + "data": "0x3659cfe6000000000000000000000000bbef7b6921e6b0ca1aa2c32bbf54056ce319dc8a", + "operation": 0, + "safe": "0x529619a10129396a2F642cae32099C1eA7FA2834", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "10": { + "additionalData": "0x", + "chainId": 10, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x17a7F6a839fea3b716b43f9414ffc93131878BD2", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "30": { + "additionalData": "0x", + "chainId": 30, + "data": "0x3659cfe6000000000000000000000000bb291c44594f6afb7254b5537988839791a3b0f0", + "operation": 0, + "safe": "0x8b449bd5936B1A056D89eDe011075fa2906B2F94", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "56": { + "additionalData": "0x", + "chainId": 56, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0x2Dd2290EabdB5654609352Cc267C9BAc82d01877", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "100": { + "additionalData": "0x", + "chainId": 100, + "data": "0x3659cfe6000000000000000000000000bbef7b6921e6b0ca1aa2c32bbf54056ce319dc8a", + "operation": 0, + "safe": "0xf4b426A9849933c83041D6554cb39955ddA5c767", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "108": { + "additionalData": "0x", + "chainId": 108, + "data": "0x3659cfe6000000000000000000000000bbef7b6921e6b0ca1aa2c32bbf54056ce319dc8a", + "operation": 0, + "safe": "0x916685b590233bA10C0B52b3FAE6B0e75e9Ab477", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "122": { + "additionalData": "0x", + "chainId": 122, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0x167f9bAF9B6C45370E7C5032557E6500cda37328", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "137": { + "additionalData": "0x", + "chainId": 137, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0xc0c07644631543c3af2fA7230D387C5fA418a131", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "169": { + "additionalData": "0x", + "chainId": 169, + "data": "0x3659cfe6000000000000000000000000bbef7b6921e6b0ca1aa2c32bbf54056ce319dc8a", + "operation": 0, + "safe": "0x9A40Ed6Af46EdFccBAf26425E6c8E23590C4762B", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "196": { + "additionalData": "0x", + "chainId": 196, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0xAFebb5bA21a29a8C0Cf78e3CdE2552DFD4a6cc3E", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "250": { + "additionalData": "0x", + "chainId": 250, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x8b449bd5936B1A056D89eDe011075fa2906B2F94", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "252": { + "additionalData": "0x", + "chainId": 252, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0xEa4d19e9c2A3FAf206cf7BB1A29B9AAE8E9FAA3d", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "324": { + "additionalData": "0x", + "chainId": 324, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x3d3Fd37af3aEaBD0154230AdcfC9C177E13142c8", + "to": "0xb2FFe1D404D284243a80BEa2D3DeB1a0108d9B9f", + "value": 0 + }, + "480": { + "additionalData": "0x", + "chainId": 480, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0xC760C15AeCB840084F2eb4906E3E5A8dbA667742", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "592": { + "additionalData": "0x", + "chainId": 592, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x15416200C0846a58C0a494fEd93362853dC90907", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "1101": { + "additionalData": "0x", + "chainId": 1101, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0x9439B96E39dA5AD7EAA75d7a136383D1D9737055", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "1116": { + "additionalData": "0x", + "chainId": 1116, + "data": "0x3659cfe6000000000000000000000000bbef7b6921e6b0ca1aa2c32bbf54056ce319dc8a", + "operation": 0, + "safe": "0x916685b590233bA10C0B52b3FAE6B0e75e9Ab477", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "1135": { + "additionalData": "0x", + "chainId": 1135, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0x4D5cd2a35e7B55397c912104671d61274653FddF", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "1284": { + "additionalData": "0x", + "chainId": 1284, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x8b449bd5936B1A056D89eDe011075fa2906B2F94", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "1329": { + "additionalData": "0x", + "chainId": 1329, + "data": "0x3659cfe6000000000000000000000000becc2491a56352da0dae161bd9d555d0ccb158b2", + "operation": 0, + "safe": "0x8b449bd5936B1A056D89eDe011075fa2906B2F94", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "3776": { + "additionalData": "0x", + "chainId": 3776, + "data": "0x3659cfe6000000000000000000000000a19f68db9d866e363efdca62ef8d57ae28d4cc43", + "operation": 0, + "safe": "0xB3f80A99ff0E1506C47B65565F0c33EB4bB34Cd5", + "to": "0xd411d0B1115e83bf9110758c61153daAADBDc84F", + "value": 0 + }, + "5000": { + "additionalData": "0x", + "chainId": 5000, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0xe5cFa764F35eB0Ce24b4599EDd50882C1833d20F", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "8453": { + "additionalData": "0x", + "chainId": 8453, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0x19c41F6607b2C0e80E84BaadaF886b17565F278e", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "13371": { + "additionalData": "0x", + "chainId": 13371, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0xA82cc51D3d5723c0534C8A8476d740d0288099cb", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "34443": { + "additionalData": "0x", + "chainId": 34443, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x222D18309000BDCB4261F746Af48C9Ea84B8c532", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "42161": { + "additionalData": "0x", + "chainId": 42161, + "data": "0x3659cfe6000000000000000000000000bbef7b6921e6b0ca1aa2c32bbf54056ce319dc8a", + "operation": 0, + "safe": "0x3350bef226F7BdCA874C5561320aB7EF9DC89E70", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "42220": { + "additionalData": "0x", + "chainId": 42220, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0xEa4d19e9c2A3FAf206cf7BB1A29B9AAE8E9FAA3d", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "42793": { + "additionalData": "0x", + "chainId": 42793, + "data": "0x3659cfe6000000000000000000000000a7c167f58833c5e25848837f45a1372491a535ed", + "operation": 0, + "safe": "0x1D4Bb009e38411d8621caa51CFe774725fF0049c", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "59144": { + "additionalData": "0x", + "chainId": 59144, + "data": "0x3659cfe6000000000000000000000000bbef7b6921e6b0ca1aa2c32bbf54056ce319dc8a", + "operation": 0, + "safe": "0x65e043c894F15A899FD18d454BeeAd577e792B81", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "60808": { + "additionalData": "0x", + "chainId": 60808, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0xEa4d19e9c2A3FAf206cf7BB1A29B9AAE8E9FAA3d", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "81457": { + "additionalData": "0x", + "chainId": 81457, + "data": "0x3659cfe6000000000000000000000000becc2491a56352da0dae161bd9d555d0ccb158b2", + "operation": 0, + "safe": "0xb2846F05b58c8e29Aa971297A04aA947CF89cC46", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "167000": { + "additionalData": "0x", + "chainId": 167000, + "data": "0x3659cfe6000000000000000000000000bb291c44594f6afb7254b5537988839791a3b0f0", + "operation": 0, + "safe": "0xEa4d19e9c2A3FAf206cf7BB1A29B9AAE8E9FAA3d", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "534352": { + "additionalData": "0x", + "chainId": 534352, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x700714a7Dc596295aACC7b09D4b9BcE2c3A1Ec2C", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 + }, + "2046399126": { + "additionalData": "0x", + "chainId": 2046399126, + "data": "0x3659cfe6000000000000000000000000d411d0b1115e83bf9110758c61153daaadbdc84f", + "operation": 0, + "safe": "0x86e889A214f6A24Cf141C4b0c12231837f119F55", + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": 0 } -} \ No newline at end of file +} diff --git a/scripts/foundry/transmuter/TransmuterCrosschainActivation.s.sol b/scripts/foundry/transmuter/TransmuterCrosschainActivation.s.sol index 60dda49..15b7b60 100644 --- a/scripts/foundry/transmuter/TransmuterCrosschainActivation.s.sol +++ b/scripts/foundry/transmuter/TransmuterCrosschainActivation.s.sol @@ -45,7 +45,7 @@ contract TransmuterCrosschainActivation is Utils { address to; uint256 value = 0; - if (chainId != CHAIN_ARBITRUM) { + if (chainId != Constants.CHAIN_ARBITRUM) { to = address(treasury); bytes memory data = abi.encodeWithSelector(IAddMinter.addMinter.selector, address(transmuter)); uint256 dataLength = data.length; @@ -87,7 +87,7 @@ contract TransmuterCrosschainActivation is Utils { // // TODO only on BASE // // No minter role - // if (chainId == CHAIN_BASE) { + // if (chainId == Constants.CHAIN_BASE) { // address receiver = 0xa9bbbDDe822789F123667044443dc7001fb43C01; // uint256 amount = 100_000 ether; diff --git a/test/transmuter/TransmuterCrosschainActivationTest.t.sol b/test/transmuter/TransmuterCrosschainActivationTest.t.sol index c160702..182f22d 100644 --- a/test/transmuter/TransmuterCrosschainActivationTest.t.sol +++ b/test/transmuter/TransmuterCrosschainActivationTest.t.sol @@ -59,7 +59,7 @@ contract TransmuterCrosschainActivationTest is BaseTest { } // // No minter role - // if (chainId == CHAIN_BASE) { + // if (chainId == Constants.CHAIN_BASE) { // assertGe(agToken.balanceOf(receiver), amount); // } diff --git a/yarn.lock b/yarn.lock index a2387e5..1ed1224 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,24 @@ # yarn lockfile v1 +"@adraffy/ens-normalize@^1.10.1": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33" + integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg== + "@angleprotocol/sdk@^v2.28.19": - version "2.28.19" - resolved "https://npm.pkg.github.com/download/@angleprotocol/sdk/2.28.19/2f7a23045c30ff8a246a7d0a7b17bb4d491a8d5e#2f7a23045c30ff8a246a7d0a7b17bb4d491a8d5e" - integrity sha512-2Db7OVy7iVMyKVvdlJBupsHIJJhLwUVNIyvfY7B1z5SrigXeIAM/SBjVzduqKEDsRPhPvlEWASsRlf6zt5+JRQ== + version "2.34.7" + resolved "https://npm.pkg.github.com/download/@angleprotocol/sdk/2.34.7/453c7b34d2f939013dfe0b6d4d886fcafa1ba9d7#453c7b34d2f939013dfe0b6d4d886fcafa1ba9d7" + integrity sha512-LiwZ/mDNNFuoDmAsWLc1DDwA7mYglHfyHH0NPuCtwDiT1XKrlSpBqnAKqffS6xsEgqtUeeH5hs8AvFu5+k2d2Q== dependencies: "@apollo/client" "^3.7.17" "@typechain/ethers-v5" "^10.0.0" - "@types/lodash" "^4.14.180" + "@types/lodash" "^4.17.13" + axios "^1.7.7" + bun-types "^1.1.27" + class-transformer "^0.5.1" + class-validator "^0.14.1" + cross-fetch "^4.0.0" ethers "^5.6.4" graphql "^15.7.1" graphql-request "^3.6.1" @@ -17,8 +27,10 @@ keccak256 "^1.0.6" lodash "^4.17.21" merkletreejs "^0.3.10" + reflect-metadata "^0.2.2" tiny-invariant "^1.1.0" typechain "^8.3.2" + viem "^2.21.54" "@apollo/client@^3.7.17": version "3.10.5" @@ -1303,11 +1315,28 @@ dependencies: "@noble/hashes" "1.4.0" +"@noble/curves@1.7.0", "@noble/curves@^1.4.0", "@noble/curves@^1.6.0", "@noble/curves@~1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.7.0.tgz#0512360622439256df892f21d25b388f52505e45" + integrity sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw== + dependencies: + "@noble/hashes" "1.6.0" + "@noble/hashes@1.4.0", "@noble/hashes@~1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== +"@noble/hashes@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.0.tgz#d4bfb516ad6e7b5111c216a5cc7075f4cf19e6c5" + integrity sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ== + +"@noble/hashes@1.6.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.1.tgz#df6e5943edcea504bac61395926d6fd67869a0d5" + integrity sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1453,6 +1482,11 @@ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g== +"@scure/base@~1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.1.tgz#dd0b2a533063ca612c17aa9ad26424a2ff5aa865" + integrity sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ== + "@scure/bip32@1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67" @@ -1462,6 +1496,15 @@ "@noble/hashes" "~1.4.0" "@scure/base" "~1.1.6" +"@scure/bip32@1.6.0", "@scure/bip32@^1.5.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.6.0.tgz#6dbc6b4af7c9101b351f41231a879d8da47e0891" + integrity sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA== + dependencies: + "@noble/curves" "~1.7.0" + "@noble/hashes" "~1.6.0" + "@scure/base" "~1.2.1" + "@scure/bip39@1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" @@ -1470,6 +1513,14 @@ "@noble/hashes" "~1.4.0" "@scure/base" "~1.1.6" +"@scure/bip39@1.5.0", "@scure/bip39@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.5.0.tgz#c8f9533dbd787641b047984356531d84485f19be" + integrity sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A== + dependencies: + "@noble/hashes" "~1.6.0" + "@scure/base" "~1.2.1" + "@sentry/core@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" @@ -1884,10 +1935,10 @@ "@types/level-errors" "*" "@types/node" "*" -"@types/lodash@^4.14.180": - version "4.17.5" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.5.tgz#e6c29b58e66995d57cd170ce3e2a61926d55ee04" - integrity sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw== +"@types/lodash@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.13.tgz#786e2d67cfd95e32862143abe7463a7f90c300eb" + integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg== "@types/lru-cache@^5.1.0": version "5.1.1" @@ -1929,6 +1980,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== +"@types/node@~20.12.8": + version "20.12.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.14.tgz#0c5cf7ef26aedfd64b0539bba9380ed1f57dcc77" + integrity sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg== + dependencies: + undici-types "~5.26.4" + "@types/pbkdf2@^3.0.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" @@ -1953,6 +2011,18 @@ dependencies: "@types/node" "*" +"@types/validator@^13.11.8": + version "13.12.2" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.2.tgz#760329e756e18a4aab82fc502b51ebdfebbe49f5" + integrity sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA== + +"@types/ws@~8.5.10": + version "8.5.13" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" + integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "20.2.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" @@ -2189,6 +2259,11 @@ abbrev@1.0.x: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU= +abitype@1.0.7, abitype@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.7.tgz#876a0005d211e1c9132825d45bcee7b46416b284" + integrity sha512-ZfYYSktDQUwc2eduYu8C4wOs+RDPmnRYMh7zNfzeMtGGgb0U+6tLGjixUic6mXf5xKKCcgT5Qp6cv39tOARVFw== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -2587,6 +2662,15 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" +axios@^1.7.7: + version "1.7.9" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a" + integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -2963,6 +3047,14 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +bun-types@^1.1.27: + version "1.1.38" + resolved "https://registry.yarnpkg.com/bun-types/-/bun-types-1.1.38.tgz#221160a568004b4c60b48234f4fe574d74aad2f2" + integrity sha512-iglB2t9z1Hc6DIuwwscwWj/csx22QlCZ96QbcqQfiy1wmuZ38srQLI/fDVkFHAo2+KL7aJZGVWF+nAWrR6Njig== + dependencies: + "@types/node" "~20.12.8" + "@types/ws" "~8.5.10" + bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -3278,6 +3370,11 @@ class-is@^1.1.0: resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== +class-transformer@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" + integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3288,6 +3385,15 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +class-validator@^0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.1.tgz#ff2411ed8134e9d76acfeb14872884448be98110" + integrity sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ== + dependencies: + "@types/validator" "^13.11.8" + libphonenumber-js "^1.10.53" + validator "^13.9.0" + clean-css@4.2.x: version "4.2.4" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" @@ -3651,6 +3757,13 @@ cross-fetch@^3.0.6: dependencies: node-fetch "^2.6.12" +cross-fetch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== + dependencies: + node-fetch "^2.6.12" + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -4794,6 +4907,11 @@ eventemitter3@4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== +eventemitter3@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + events@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -5137,6 +5255,11 @@ follow-redirects@^1.12.1, follow-redirects@^1.14.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== +follow-redirects@^1.15.6: + version "1.15.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -6548,6 +6671,11 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isows@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7" + integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -6867,6 +6995,11 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libphonenumber-js@^1.10.53: + version "1.11.16" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.11.16.tgz#3aa64a8a95ffc59253a5df3009940a9604a02102" + integrity sha512-Noyazmt0yOvnG0OeRY45Cd1ur8G7Z0HWVkuCuKe+yysGNxPQwBAODBQQ40j0AIagi9ZWurfmmZWNlpg4h4W+XQ== + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -7857,6 +7990,19 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +ox@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ox/-/ox-0.1.2.tgz#0f791be2ccabeaf4928e6d423498fe1c8094e560" + integrity sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww== + dependencies: + "@adraffy/ens-normalize" "^1.10.1" + "@noble/curves" "^1.6.0" + "@noble/hashes" "^1.5.0" + "@scure/bip32" "^1.5.0" + "@scure/bip39" "^1.4.0" + abitype "^1.0.6" + eventemitter3 "5.0.1" + p-cancelable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" @@ -8315,6 +8461,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -8577,6 +8728,11 @@ reduce-flatten@^2.0.0: resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== +reflect-metadata@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" @@ -10120,6 +10276,11 @@ underscore@^1.8.3: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -10322,6 +10483,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validator@^13.9.0: + version "13.12.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" + integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== + varint@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" @@ -10341,6 +10507,21 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +viem@^2.21.54: + version "2.21.54" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.54.tgz#76d6f86ab8809078f1ac140ac1a2beadbc86b9f6" + integrity sha512-G9mmtbua3UtnVY9BqAtWdNp+3AO+oWhD0B9KaEsZb6gcrOWgmA4rz02yqEMg+qW9m6KgKGie7q3zcHqJIw6AqA== + dependencies: + "@noble/curves" "1.7.0" + "@noble/hashes" "1.6.1" + "@scure/bip32" "1.6.0" + "@scure/bip39" "1.5.0" + abitype "1.0.7" + isows "1.0.6" + ox "0.1.2" + webauthn-p256 "0.0.10" + ws "8.18.0" + vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" @@ -11136,6 +11317,14 @@ web3@^1.0.0-beta.34, web3@^1.2.5, web3@^1.6.0: web3-shh "1.7.0" web3-utils "1.7.0" +webauthn-p256@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.10.tgz#877e75abe8348d3e14485932968edf3325fd2fdd" + integrity sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA== + dependencies: + "@noble/curves" "^1.4.0" + "@noble/hashes" "^1.4.0" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -11323,6 +11512,11 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + ws@^3.0.0: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"