diff --git a/deployment/lib/local-files.nu b/deployment/lib/local-files.nu index 95ad855f2..64e11ac83 100644 --- a/deployment/lib/local-files.nu +++ b/deployment/lib/local-files.nu @@ -55,8 +55,9 @@ export def write-subnet-config [dest: string, --bootstrap] { $cfg | save -f $dest } +const docker_dir = path self ../docker export def build-setup-docker-image [] { - cd docker + cd $docker_dir docker build ...[ --build-arg $"fendermint_image=($env.state.config.fendermint_image)" -t $env.state.config.setup_image @@ -123,3 +124,9 @@ export def write-recall-cli-config [] { $cfg | save -f ($env.state.config.workdir | path join "networks.toml") } + +export def update-git-submodules [] { + const ipc_dir = path self ../.. + cd $ipc_dir + git submodule update --init --recursive +} diff --git a/deployment/lib/steps.nu b/deployment/lib/steps.nu index e258015fd..a0c329519 100644 --- a/deployment/lib/steps.nu +++ b/deployment/lib/steps.nu @@ -6,6 +6,8 @@ use ./subnet.nu export def get-create-subnet-steps [get_funds_fn: closure] { [ + { name: "update_submodules" fn: { local-files update-git-submodules }} + { name: "build_setup_image" fn: { local-files build-setup-docker-image} } { name: "create_ipc_config" fn: { parent-chain write-ipc-cli-config }} diff --git a/deployment/lib/subnet.nu b/deployment/lib/subnet.nu index 5bffaaeee..0f3702c0a 100644 --- a/deployment/lib/subnet.nu +++ b/deployment/lib/subnet.nu @@ -68,16 +68,23 @@ export def send-funds [src: record, dest:record, amount: float] { ] } +def --env set-up-recall-cli [private_key: string] { + let cfg = ($env.state.config.workdir | path join "networks.toml") + $env.RECALL_NETWORK_CONFIG_FILE = $cfg + $env.RECALL_NETWORK = $env.state.config.network + $env.RECALL_PRIVATE_KEY = $private_key +} + # WARNING: this command invokes `recall` CLI on your PATH!!! export def set-network-admin [] { - let cfg = ($env.state.config.workdir | path join "networks.toml") - recall -c $cfg -n $env.state.config.network subnet config set-admin --private-key $env.state.validator0.private_key $env.state.network_admin.address + set-up-recall-cli $env.state.validator0.private_key + recall subnet config set-admin $env.state.network_admin.address } # WARNING: this command invokes `recall` CLI on your PATH!!! export def set-network-config [] { - let cfg = ($env.state.config.workdir | path join "networks.toml") - recall -c $cfg -n $env.state.config.network subnet config set --private-key $env.state.network_admin.private_key ...[ + set-up-recall-cli $env.state.validator0.private_key + recall subnet config set ...[ --blob-capacity (10 * 2 ** 40) --token-credit-rate (1e36) --blob-credit-debit-interval 600 @@ -87,3 +94,14 @@ export def set-network-config [] { --account-debit-batch-size 1000 ] } + +export def run-recall-cli-test [] { + set-up-recall-cli $env.state.faucet_owner.private_key + recall account info + recall account credit stats + recall account credit buy 2 + recall account credit stats + let addr = recall bucket create --alias test1 | tee {print} | from json | get address | inspect + recall bucket add -a $addr --key a1 ./set-up-nu.sh + recall bucket get -a $addr a1 +} diff --git a/deployment/lib/util.nu b/deployment/lib/util.nu index 7e8a9a9b6..d4a5b9958 100644 --- a/deployment/lib/util.nu +++ b/deployment/lib/util.nu @@ -1,6 +1,8 @@ -export def log [str: string, --color: string = "yellow"] { - print $"(ansi cyan)== [create-subnet] (ansi $color)($str)(ansi reset)" +export def log [str: string, + --prefix: string = "create-subnet", + --color: string = "yellow"] { + print $"(ansi cyan)== [($prefix)] (ansi $color)($str)(ansi reset)" } # Run command in setup docker image @@ -129,7 +131,8 @@ export def get-base-config [ let fendermint_commit = $fendermint_image | str replace -r ".*sha-" "" if $local_commit != $fendermint_commit { if ($env.SKIP_COMMIT_MATCH_CHECK? | is-empty) { - print $"ERROR: local commit ($local_commit) does not match fendermint image ($fendermint_image)" + print $"ERROR: local ipc commit ($local_commit) does not match fendermint image ($fendermint_image)" + print "You can disable this check by setting SKIP_COMMIT_MATCH_CHECK=true" exit 1 } } diff --git a/deployment/localnet.nu b/deployment/localnet.nu index f017cc149..494504fee 100755 --- a/deployment/localnet.nu +++ b/deployment/localnet.nu @@ -61,7 +61,6 @@ def "main run" [ let steps = [ { name: "localnet_init" fn: { localnet init-state $workdir $fendermint_image}} - { name: "update_submodules" fn: { git submodule update --init --recursive }} ...$build_fendermint_image { name: "localnet_start_anvil" fn: {localnet run-anvil $workdir}} ...(steps get-create-subnet-steps $get_funds_step) @@ -95,6 +94,11 @@ def "main run-dind" [ --workdir: string = "./localnet-data", # where to store networks.toml and state.yml ] { + let image = $"textile/recall-localnet:($tag)" + if $tag == "latest" { + docker pull $image + } + docker run ...[ --rm -d --name localnet -p 127.0.0.1:8545:8545 @@ -102,7 +106,7 @@ def "main run-dind" [ -p 127.0.0.1:8001:8001 -p 127.0.0.1:26657:26657 --privileged - $"textile/recall-localnet:($tag)" + $image ] print "Container localnet is running."