id = "starkli" name = "Starkli" homepage = "https://book.starkli.rs" description = "Starkli is a command line tool for interacting with Starknet, powered by starknet-rs." executables = ["starkli"] [dotfiles] # https://book.starkli.rs/profiles — "The profiles file": "Linux and Mac: # ~/.config/starkli/profiles.toml", "Windows: %AppData%\starkli\profiles.toml" # — the XDG location on macOS as well as Linux, which is [configHome]. It is # created automatically the first time a free RPC vendor is used. paths = ["[configHome]/starkli/profiles.toml"] exclude = [] # No whole-file secret to name. Starkli's keystores and account files are # encrypted key material, but the user chooses where they live and points at # them with --keystore / --account or STARKNET_KEYSTORE / STARKNET_ACCOUNT; # ~/.starkli-wallets is a convention from the book's tutorials, not a path the # tool defines, so the catalog cannot claim it. secret = [] # Parsed at the start of a command and dropped when it exits. side_effect = false # Per https://book.starkli.rs/profiles#provider-configuration a network's # `rpc` provider takes `headers` — a list of { name, value } — which is how a # paid RPC endpoint is authenticated, so the values are API keys. The endpoint # `url` itself is left alone: like pip's index-url it is usually just a URL, # and a consumer's content scan is the right layer for the ones that embed a # key in the path. [[dotfiles.secret_paths]] file = "[configHome]/starkli/profiles.toml" match = { key_path = ["*.networks.*.provider.headers.*.value"] } [commands] format = 1 label = "Starkli" description = "Read-only contract calls and chain queries against a Starknet node. Transactions, declarations and account management are left out." quality = "ai-draft" base = "fig:starkli" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/starkli.ts" license = "MIT" [[commands.subcommand]] path = ["call"] label = "Call a contract function" description = "Call a contract function without sending a transaction." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/starkli.ts" license = "MIT" [[commands.subcommand.field]] id = "address" label = "Contract address" type = "string" position = 0 description = "Contract address." sources = ["fig"] [[commands.subcommand.field]] id = "selector" label = "Function name" type = "string" position = 1 description = "Name of the function being called." sources = ["fig"] [[commands.subcommand.field]] id = "calldata" label = "Calldata" type = "string" position = 2 description = "Raw function call arguments." multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "rpc" label = "RPC endpoint" type = "url" option = ["--rpc"] description = "Starknet JSON-RPC endpoint." sources = ["fig"] [[commands.subcommand.field]] id = "network" label = "Network" type = "string" option = ["--network"] description = "Starknet network." suggestions = [{ value = "mainnet", label = "mainnet" }, { value = "goerli-1", label = "goerli-1" }, { value = "goerli-2", label = "goerli-2" }, { value = "integration", label = "integration" }] sources = ["fig"] [[commands.subcommand.field]] id = "log_traffic" label = "Log traffic" type = "boolean" option = ["--log-traffic"] description = "Log raw request/response traffic." sources = ["fig"] [[commands.subcommand.task]] id = "call" label = "Call" fields = ["address", "selector", "calldata", "rpc", "network"] required = ["address", "selector"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["address", "selector", "calldata", "rpc", "network"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["log_traffic"] [[commands.subcommand]] path = ["block-number"] label = "Latest block number" description = "Get the latest block number." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/starkli.ts" license = "MIT" [[commands.subcommand.field]] id = "rpc" label = "RPC endpoint" type = "url" option = ["--rpc"] description = "Starknet JSON-RPC endpoint." sources = ["fig"] [[commands.subcommand.task]] id = "number" label = "Block number" fields = ["rpc"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["rpc"]