-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
158 lines (140 loc) · 6.81 KB
/
Copy path.env.example
File metadata and controls
158 lines (140 loc) · 6.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# Sentrix Testnet deployer wallet — controls EndpointV2 ownership briefly
# during the deploy script. Ownership is transferred to SENTRIX_SAFE at the
# end of the broadcast (see scripts/DeployLZ-SentrixTestnet.s.sol).
#
# WARNING: never commit a real key. Never `cat wallet.txt` to stdout (the
# plaintext leaks into shell history, scrollback, tee'd logs, terminal
# multiplexer buffers). Load via `cast wallet decrypt-keystore --interactive`
# (operator types the password at a TTY prompt; nothing echoes), or via
# `--password-file <path>` pointing at a 0600-perm file. See
# docs/runbook-step2-broadcast.md.
#
# Empty default — accidental `forge script` runs fail at vm.envUint parse
# rather than running from the zero address.
DEPLOYER_PK=
DEPLOYER_PRIVATE_KEY=
HYP_KEY=
HYP_DEPLOYER_ADDRESS=
# SentrixSafe (1-of-1 multisig) that takes EndpointV2 ownership at the end
# of the deploy script. Canonical addresses from canonical-contracts:
# Sentrix Testnet (7120): 0xc9D7a61D7C2F428F6A055916488041fD00532110
# Sentrix Mainnet (7119): 0x6272dC0C842F05542f9fF7B5443E93C0642a3b26
SENTRIX_SAFE=0xc9D7a61D7C2F428F6A055916488041fD00532110
OWNER_ADDRESS=0xc9D7a61D7C2F428F6A055916488041fD00532110
SENTRIX_SAFE_ADDRESS=0xc9D7a61D7C2F428F6A055916488041fD00532110
# Optional — only needed if running broadcast tests against mainnet, AND
# ALLOW_MAINNET_DEPLOY=1 is set explicitly.
# DEPLOYER_PK_MAINNET=
# ALLOW_MAINNET_DEPLOY=
# ============================================================================
# Circle Bridged USDC Standard — additional env vars
# ============================================================================
# See docs/stablecoin/BOOTSTRAP_ROLE_HOLDER.md for full context.
# All FiatToken + source-bridge role holders default to SentrixSafe.
# Sentrix mainnet SentrixSafe (chain 7119). DO NOT use for mainnet deploy
# until Phase 3 audit + readiness checklist complete.
SENTRIX_SAFE_MAINNET=0x6272dC0C842F05542f9fF7B5443E93C0642a3b26
# Source-chain SentrixSafe — Sepolia. NOT YET DEPLOYED. Either:
# (A) deploy SentrixSafe on Sepolia via sentrix-labs/canonical-contracts and
# paste the address here, OR
# (B) leave empty and use the Authority EOA directly (set SOURCE_ADMIN etc.
# individually). See BOOTSTRAP_ROLE_HOLDER.md.
SOURCE_SAFE_SEPOLIA=
# Source-chain SentrixSafe — Ethereum mainnet. Phase 3 only.
SOURCE_SAFE_ETHEREUM=
# Circle FiatToken (Sentrix side) role mappings.
#
# IMPORTANT — bash-style defaulting (${VAR:-$OTHER}) is ONLY expanded if you
# source this file into the shell first:
# set -a; source .env; set +a
# forge script ...
# Foundry's vm.envAddress() reads literal env values, not bash defaults.
# If you don't source-into-shell, set each value explicitly OR have the
# deploy script use vm.envOr("TOKEN_PROXY_ADMIN", vm.envAddress("SENTRIX_SAFE")).
#
# Defaults below assume shell sourcing. They map every Sentrix-side FiatToken
# role to the same SentrixSafe address. Override per role if separating role
# families (defense in depth).
TOKEN_PROXY_ADMIN=${TOKEN_PROXY_ADMIN:-$SENTRIX_SAFE}
TOKEN_OWNER=${TOKEN_OWNER:-$SENTRIX_SAFE}
TOKEN_MASTER_MINTER=${TOKEN_MASTER_MINTER:-$SENTRIX_SAFE}
TOKEN_PAUSER=${TOKEN_PAUSER:-$SENTRIX_SAFE}
TOKEN_BLACKLISTER=${TOKEN_BLACKLISTER:-$SENTRIX_SAFE}
TOKEN_RESCUER=${TOKEN_RESCUER:-$SENTRIX_SAFE}
# Source-bridge (Sepolia/Ethereum) role mappings.
# Same shell-sourcing caveat as above.
SOURCE_ADMIN=${SOURCE_ADMIN:-$SOURCE_SAFE_SEPOLIA}
SOURCE_OPERATOR=${SOURCE_OPERATOR:-$SOURCE_SAFE_SEPOLIA}
SOURCE_PAUSER=${SOURCE_PAUSER:-$SOURCE_SAFE_SEPOLIA}
# Circle hook roles. EMPTY by default. Granted by admin only at Circle handoff
# time to Circle-specified addresses (per Bridged USDC Standard spec).
SOURCE_CIRCLE_BURN_ROLE=
SOURCE_CIRCLE_ROLE_TRANSFER_ROLE=
# Other deploy targets.
SEPOLIA_RPC=
SENTRIX_TESTNET_RPC=https://testnet-rpc.sentrixchain.com
SOURCE_USDC=0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238 # Sepolia USDC (verify before mainnet swap)
SENTRIX_CHAIN_ID=7120
# ============================================================================
# Hyperlane Warp Route — Base USDC -> Sentrix sUSDC
# ============================================================================
# Never commit real private keys. HYP_KEY/DEPLOYER_PRIVATE_KEY are read by
# operator tooling only and must stay in a local .env or secret manager.
# OWNER_ADDRESS must be the SentrixSafe, not the deployer EOA. The deployer key
# is only for runtime execution and must not remain final route owner/admin.
# sUSDC is bridged USDC on Sentrix backed 1:1 by USDC locked on Base; it is not
# Circle-native USDC on Sentrix.
# Mainnet deployment is blocked by default and must not use NoopIsm.
BASE_MAINNET_RPC=
BASE_SEPOLIA_RPC=
SENTRIX_MAINNET_RPC=
SENTRIX_TESTNET_CHAIN_ID=7120
SENTRIX_MAINNET_CHAIN_ID=7119
BASE_SEPOLIA_CHAIN_ID=84532
BASE_MAINNET_CHAIN_ID=8453
BASE_USDC_MAINNET=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
BASE_USDC_SEPOLIA=0x036CbD53842c5426634e7929541eC2318f3dCF7e
BASE_SEPOLIA_USDC=0x036CbD53842c5426634e7929541eC2318f3dCF7e
# Hyperlane core addresses. Fill from official Hyperlane registry or the
# reviewed Sentrix deployment manifests before deploying the warp route.
BASE_SEPOLIA_MAILBOX=
BASE_SEPOLIA_ISM=
BASE_MAINNET_MAILBOX=
BASE_MAINNET_ISM=
SENTRIX_TESTNET_MAILBOX=0x9741D99270aF14D4baca0e387B6ac0500b9a288F
SENTRIX_TESTNET_ISM=0x28834AA535F3130f0F60571Ac7a813195aE56eC6
SENTRIX_MAINNET_MAILBOX=
SENTRIX_MAINNET_ISM=
# Known current Sentrix Testnet default ISM above is likely NoopIsm. It is
# allowed only for smoke tests / empty testnet validation, not funded bridge
# usage, real USDC, or mainnet.
# Hyperlane MultisigISM setup, testnet only.
# Validator addresses are public signer addresses only. Validator private keys
# must live on validator hosts or a secret manager, never in this repo.
# Sentrix factory is empty until a reviewed Hyperlane StaticMessageIdMultisigIsm
# factory is deployed/confirmed on Sentrix Testnet. Base Sepolia factory comes
# from the Hyperlane registry bundled with the vendored CLI.
SENTRIX_TESTNET_ISM_KIND=
BASE_SEPOLIA_ISM_KIND=
SENTRIX_TESTNET_MULTISIG_ISM=
BASE_SEPOLIA_MULTISIG_ISM=
SENTRIX_TESTNET_MULTISIG_ISM_FACTORY=
BASE_SEPOLIA_MULTISIG_ISM_FACTORY=0xfc6e546510dC9d76057F1f76633FCFfC188CB213
SENTRIX_TESTNET_MULTISIG_VALIDATORS=
BASE_SEPOLIA_MULTISIG_VALIDATORS=
SENTRIX_TESTNET_MULTISIG_THRESHOLD=1
BASE_SEPOLIA_MULTISIG_THRESHOLD=1
ALLOW_TESTNET_MULTISIG_ISM_DEPLOY=
ALLOW_TESTNET_ISM_SAFE_CALLDATA=
# Mainnet beta cap policy, expressed in 6-decimal USDC base units unless a
# script explicitly documents human units.
BRIDGE_PER_TX_CAP_USDC=
BRIDGE_DAILY_CAP_USDC=
BRIDGE_TOTAL_MINT_CAP_USDC=
# Explicit deployment gates. Testnet route deployment is enabled only for this
# testnet config path; mainnet remains unset and blocked.
ALLOW_SENTRIX_TESTNET_CORE_DEPLOY=
ALLOW_TESTNET_WARP_DEPLOY=
ALLOW_MAINNET_WARP_DEPLOY=
ALLOW_MAINNET_VERIFY=
ALLOW_MAINNET_MONITOR=