|
| 1 | +/provisioning directory structure |
| 2 | + |
| 3 | +chains |
| 4 | + icon |
| 5 | + bmc |
| 6 | + deploy.sh |
| 7 | + upgrade.sh |
| 8 | + helpers |
| 9 | + add_link.sh |
| 10 | + add_relay_to_link.sh |
| 11 | + set_fee_aggregator.sh |
| 12 | + bsh |
| 13 | + bts |
| 14 | + deploy.sh |
| 15 | + upgrade.sh |
| 16 | + helpers |
| 17 | + add_bts_to_bmc.sh |
| 18 | + add_to_blacklist.sh |
| 19 | + deploy_token.sh |
| 20 | + .. |
| 21 | + xcall |
| 22 | + ... |
| 23 | + docker |
| 24 | + docker-compose.yml |
| 25 | + Dockerfile |
| 26 | + evm |
| 27 | + bmc |
| 28 | + bsh |
| 29 | + docker |
| 30 | + bsc |
| 31 | + bmc |
| 32 | + bsh |
| 33 | + docker |
| 34 | + near |
| 35 | + docker |
| 36 | + ... |
| 37 | +config |
| 38 | + input_params.json |
| 39 | +deployments |
| 40 | + localnet |
| 41 | + iconbsc |
| 42 | + contracts |
| 43 | + users |
| 44 | + keys |
| 45 | + bmr.config.json |
| 46 | + contract_addresses.json |
| 47 | + e2e.config.json |
| 48 | + state.json |
| 49 | + iconsnow |
| 50 | + contracts... |
| 51 | + ...state.json |
| 52 | + ... |
| 53 | + mainnet |
| 54 | + contracts... |
| 55 | + ...state.json |
| 56 | + |
| 57 | + testnet |
| 58 | + iconbsc |
| 59 | + contracts... |
| 60 | + ...state.json |
| 61 | + iconnear |
| 62 | + ontracts... |
| 63 | + ...state.json |
| 64 | + ... |
| 65 | +provisions |
| 66 | + localnet.sh |
| 67 | + mainnet.sh |
| 68 | + testnet.sh |
| 69 | + i2b_full.sh |
| 70 | + i2s_link.sh |
| 71 | + upgrades |
| 72 | + hotfix_v0.0.9.sh |
| 73 | + upgrade_v0.0.10.sh |
| 74 | + ... |
| 75 | +relay |
| 76 | + docker |
| 77 | + build_relay_image.sh |
| 78 | + deploy_remote.sh |
| 79 | + run_relay.sh |
| 80 | + |
| 81 | + |
| 82 | +---------------------------------------------------------------------------------------------------------------- |
| 83 | +/provisioning/chains: |
| 84 | + holds scripts specific to chain |
| 85 | + can reuse scripts if applicable (e.g. bsc snow chains can reuse scripts present inside chains/evm) |
| 86 | + |
| 87 | +/provisioning/config |
| 88 | + holds input config necessary for deployment and configuration |
| 89 | + |
| 90 | +/provisioning/deployments |
| 91 | + holds file specific to deployment |
| 92 | + should be .gitignored |
| 93 | + holds deployment artifacts e.g. relay config as well as state variables inside state.json |
| 94 | + separate directory for separate testnet, localnet deployments |
| 95 | + |
| 96 | +/provisioning/provisions |
| 97 | + holds task-specific scripts (e.g. for full deployment of some specific chain or linking a new chain to existing deployment, etc) |
| 98 | + wraps scripts inside /provisioning/chains |
| 99 | + responsible for updating state variables, generating and placing deployment artifacts |
| 100 | + |
| 101 | +/provisioning/relay |
| 102 | + relay specific scripts |
| 103 | + |
| 104 | +---------------------------------------------------------------------------------------------------------------- |
| 105 | + |
| 106 | +With this approach, |
| 107 | +A new chain integration should include |
| 108 | + 1. addition of /provisioning/chain/ scripts (reuse if applicable) |
| 109 | + 2. addition of necessary config |
| 110 | + 3. create necessary wrapper script inside /provisioning/provisions |
| 111 | + |
| 112 | +A new script that does some specific custom task (whether called directly or through github action) |
| 113 | + 1. add script inside /provisioning/provisions for specifc task |
| 114 | + 2. script should work with the deployment's state.json (read/write) |
0 commit comments