Skip to content

Add a small Rust CLI tool to the quickstart image for non-trivial startup logic #906

@leighmcculloch

Description

@leighmcculloch

What problem does your feature solve?

The quickstart image startup scripts use shell tools like jq, stellar-xdr, and stellar-strkey to perform tasks such as computing the native asset contract address and (in the future) deploying the native asset contract for local networks (#555). As more logic is added to these scripts, they become increasingly brittle and hard to maintain.

Context: #841 (comment)

What would you like to see?

A small Rust CLI application that lives in the quickstart image and handles any logic that is not trivial enough to live in a shell script. It would:

  • Stay low level and minimal
  • Depend only on very low level components released early as part of stellar-core (e.g. stellar-xdr crate, stellar-strkey crate)
  • Compute the native asset contract address given a network ID
  • Eventually submit a transaction to deploy the native asset contract for local networks (Automatically setup native token on quickstart local networks #555)
  • Replace the current config setup that is very brittle

The intent is for this tool to be easy to update quickly when a new stellar-core is released, or even when working with an unreleased stellar-core using new XDR definitions.

What alternatives are there?

  • Continue using shell scripts: Combine jq, stellar-xdr, stellar-strkey, and other CLI tools in bash. This works but becomes brittle as more complex logic is added.
  • Ship stellar-cli with quickstart: This would provide the needed functionality but stellar-cli is much further downstream, making it harder for quickstart to quickly adopt a just-released or unreleased stellar-core.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Backlog (Not Ready)

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions