Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

meta: task list for deploying Umbra on other networks #281

Open
32 tasks
mds1 opened this issue Jan 21, 2022 · 0 comments
Open
32 tasks

meta: task list for deploying Umbra on other networks #281

mds1 opened this issue Jan 21, 2022 · 0 comments

Comments

@mds1
Copy link
Collaborator

mds1 commented Jan 21, 2022

  • Deploy the Umbra and StealthKeyRegistry contracts to 0xFb2dc580Eed955B528407b4d36FfaFe3da685401 and 0x31fe56609C65Cd0C510E7125f051D440424D38f3, 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 config folder
    • Add new prepare:* and deploy:* scripts to the package.json (or refactor so network name is an env var to remove this step?)
    • Deploy
  • If necessary, update getEthSweepGasInfo in Umbra.ts
  • In frontend/src/components/models.ts:
    • Add an object to the supportedChains array, and make sure chainId is specified as a hex string
    • Update the SupportedChainIds type with the new chainId as a string
  • 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 chainOptions computed property in frontend/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 subgraphs object with the subgraph URL
    • Add a new entry to the chainConfigs object 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 infuraUrl method
  • In umbra-js/test/Umbra.test.ts, add a test within the it('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_KEY env var to frontend/.env.example, if needed
    • Add a *SCAN_API_KEY env var to umbra-js/.env.example, if needed
    • In umbra-js/src/classes/TxHistoryProvider.ts
      • Add a new case in the constructor to read in the API key
      • Add a new case in getBaseUrl() to return the Etherscan API URL
    • Add a test to umbra-js/test/utils.test.ts called it('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?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 📋 Backlog
Development

No branches or pull requests

1 participant