umbra-protocol
umbra-protocol copied to clipboard
meta: task list for deploying Umbra on other networks
- [ ] Deploy the
UmbraandStealthKeyRegistrycontracts to0xFb2dc580Eed955B528407b4d36FfaFe3da685401and0x31fe56609C65Cd0C510E7125f051D440424D38f3, respectively- [ ] @apbendi feel free to add any details you want here about adding a network entry in the hardhat config, etc.
- [ ] Deploy the subgraph
- [ ] Add a new config file in the
configfolder - [ ] Add new
prepare:*anddeploy:*scripts to thepackage.json(or refactor so network name is an env var to remove this step?) - [ ] Deploy
- [ ] Add a new config file in the
- [ ] If necessary, update
getEthSweepGasInfoinUmbra.ts - [ ] In
frontend/src/components/models.ts:- [ ] Add an object to the
supportedChainsarray, and make surechainIdis specified as a hex string - [ ] Update the
SupportedChainIdstype with the newchainIdas a string
- [ ] Add an object to the
- [ ] ~~Add the address of the multicall contract in
frontend/src/utils/constants.ts~~ we should always be able to use the existing Multicall3 address - [ ] If supporting a testnet that should be excluded in the network dropdown, make sure to exclude it in the
chainOptionscomputed property infrontend/src/layouts/NetworkDropdown.vue - [ ] In
frontend/src/pages/FAQ.vue, update the "What networks is Umbra deployed on and what are the contract addresses?" question - [ ] In
umbra-js/src/classes/Umbra.ts:- [ ] Add a new entry to the
subgraphsobject with the subgraph URL - [ ] Add a new entry to the
chainConfigsobject with the required parameters - [ ] Determine if it's feasible to fetch announcements from logs without a subgraph, and if not, add the required check to the beginning of
fetchAllAnnouncementFromLogs - [ ] Add the new Infura URL to the
infuraUrlmethod
- [ ] Add a new entry to the
- [ ] In
umbra-js/test/Umbra.test.ts, add a test within theit('initializes correctly when passing a default chainId')test - [ ] Ensure transaction history can be fetched by address (for advanced mode)
- [ ] Ensure the transaction history API endpoint is supported on Etherscan, and if so:
- [ ] Add a
*SCAN_API_KEYenv var tofrontend/.env.example, if needed - [ ] Add a
*SCAN_API_KEYenv var toumbra-js/.env.example, if needed - [ ] In
umbra-js/src/classes/TxHistoryProvider.ts- [ ] Add a new
casein the constructor to read in the API key - [ ] Add a new
caseingetBaseUrl()to return the Etherscan API URL
- [ ] Add a new
- [ ] Add a test to
umbra-js/test/utils.test.tscalledit('looks up transaction history in <networkName>')
- [ ] If the network uses different gas metering than L1, make sure to account for that when sweeping ETH from a stealth address
- [ ] Ask Etherscan to label the contracts on the new network
- [ ] TODO add steps on how to specify the minimum send amount, based on the approach we decide on
- [ ] TODO @apbendi to add steps on what we need to do on the relayer side if we only want to support the native token vs. what to do if we also want to support other tokens
- [ ] TODO what changes, if any, do we need to make for ENS/CNS support with the new network?