CLI for Stellar Smart Contracts.

Overview

stellar-contract-cli

CLI for running Stellar contracts locally in a test VM. Executes WASM files built using the rs-stellar-contract-sdk.

Install

cargo install stellar-contract-cli --git https://github.com/stellar/stellar-contract-cli

Usage

All values passed to --arg are the JSON representation of SCVals.

Creating a contract and invoking a function

Note that this will also put the WASM contract in storage.

stellar-contract-cli invoke --id <HEX_CONTRACTID> --file <WASMFILE> --fn <FUNCNAME> --arg '{"i32":32}' --arg '{"i32":4}'

Example using the example_add_i32 contract:

$ stellar-contract-cli invoke --id 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c --file example_add_i32.wasm --fn add --arg '{"i32":32}' --arg '{"i32":4}'

{
  "i32": 36
}

Creating a contract

Example:
stellar-contract-cli deploy --id 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c --file example_add_i32.wasm

Invoking a contract in storage

stellar-contract-cli invoke --fn add --id <HEX_CONTRACTID>  --arg '{"i32":32}' --arg '{"i32":4}'

Example:
stellar-contract-cli invoke --fn add --id 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c --arg '{"i32":32}' --arg '{"i32":4}'


stellar-contract-cli invoke --fn put --id 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c --arg '{"symbol": [69, 50, 53, 49, 57]}' --arg '{"symbol": [69, 50, 53]}'
Comments
  • First pass proposal at `soroban profile` subcommands

    First pass proposal at `soroban profile` subcommands

    Fixes https://github.com/stellar/soroban-cli/issues/173, see that for background context.

    The goal here is to make managing keys and networks easier than it currently is. The "profile" concept combines a secret key with all the other config to connect to a network into a named entity.

    For example, instead of:

    $ soroban token create \
      --name tok --symbol tok \
      --rpc-url http://localhost:8000/soroban/rpc \
      --network-passphrase 'Local Sandbox Stellar Network ; September 2022'\
      --secret-key SDA2NVFCPEBVYD7L2JQKBIFRNZYO6YTUUHLBKJOX4YQ5ORQRG3KPSLCE
    

    You could do:

    # Create a new profile
    $ soroban profile new --name local  \
      --rpc-url http://localhost:8000/soroban/rpc \
      --network-passphrase 'Local Sandbox Stellar Network ; September 2022' \
      --secret-key SDA2NVFCPEBVYD7L2JQKBIFRNZYO6YTUUHLBKJOX4YQ5ORQRG3KPSLCE
    
    # Use the new profile automatically
    $ soroban profile use local
    $ soroban token create --name tok --symbol tok
    
    # Or explicitly
    $ soroban --profile local token crate --name tok --symbol tok
    

    In this proposal the profiles are stored in .soroban/profiles.json. A default profile is always created, called sandbox, which uses the local sandbox. If a secret key is not specified (or for the sandbox), a random one is generated and stored.

    Other Ideas

    • Instead of soroban profile use and soroban profile current, have a single soroban profile default command which either prints or sets depending if an argument is passed in.
    • Make this a more general config-merging/defaults mechanism.
      • Paul: Not sure how that works with clap, though.
    • Provide presets (or pre-configured?) for futurenet etc.
      • Paul: Unclear how this works with the --rpc-url though.

    TODO

    Required

    • [x] implement profile subcommands:
      • [x] current
      • [x] ls
      • [x] new
      • [x] use
    • [x] generate secret key for new profiles, if not provided
    • [ ] auto-create sandbox profile
      • [ ] generate and store the secret key on first use
    • [ ] wire them into existing subcommands
      • [x] invoke
      • [ ] token
      • [ ] deploy
      • [ ] read
    • [ ] Decide if we need to support overriding the flags (e.g. --rpc-url) inline in the invoke (and other) subcommands, or not.

    Nice-to-have

    • [ ] maybe generalize it into config defaults system
    • [ ] maybe use toml for the file? It would be more ergonomic for people hand-editing...
    opened by paulbellamy 15
  • invoke: add --event and --event-file flags

    invoke: add --event and --event-file flags

    What

    Add new event-related flags to the invoke subcommand:

    • --events: enable printing host/debug events
    • --events-file: write events to a file instead of stdout

    Why

    1. Close #128
    2. Enable saving events to a file/pipe which in turn will be used by soroban-cli serve to subscribe to local events (a new, matching --events-file flag will be added to to sorobab-cli serve for that purpose). This is part of https://github.com/stellar/soroban-cli/issues/39

    Known limitations

    N/A

    opened by 2opremio 13
  • Restructure repository

    Restructure repository

    What

    Restructure repository so that it would support both rust and go projects.

    Why

    The Soroban-cli and the soroban-rpc are logically dependent of each other, and would ideally live at the same place. That would allow us to move the entire soroban testing that we have scattered across the Soroban-cli and go into a single location.

    Known limitations

    N/A

    opened by tsachiherman 12
  • CLI: Deploy native token contract

    CLI: Deploy native token contract

    What problem does your feature solve?

    The deployment path for native contracts is different from WASM contracts.

    What would you like to see?

    A nice interface to deploying the native token contract.

    What alternatives are there?

    TODO

    soroban-scrum 
    opened by jonjove 12
  • Embed the token spec

    Embed the token spec

    What

    Try embedding the token spec

    Why

    Do you don't need to provide the .wasm file for the token contract.

    Close https://github.com/stellar/soroban-cli/issues/172

    Status

    • [x] Test that this works with sandbox
    • [x] Test that this works with the rpc server
    opened by leighmcculloch 11
  • Add optimize sub-command using wasm-opt

    Add optimize sub-command using wasm-opt

    What

    Add optimize sub-command using wasm-opt.

    Why

    I saw @brson and @Aimeedeer's blog post about the wasm-opt crate today and after a quick test it appears to work very smoothly. Including optimization into the soroban-cli rather than instructing people to install other tools seems like it fits our philosophy of making writing effecient contracts the default.

    This PR introduces an ultra simple sub-command (soroban optimize) that runs wasm-opt across the given .wasm file with the -Oz mode, which is the same mode we currently recommend.

    I imagine we might also want to automatically run this across .wasm files as part of the deploy subcommand, although I thought doing that at this time, given that we are considering redesigning the CLI (#197), might be a bit premature.

    opened by leighmcculloch 10
  • Print event at the end of invocation

    Print event at the end of invocation

    What

    Add a print statement at the end to print out the events from host. cc @sisuresh

    Why

    To make the contract event example more meaningful. It's much better to show the event being printed than describing it as part of the host that can be retrieved.

    Known limitations

    The print relies on the Debug trait of xdr::ContractEvent, which isn't pretty. We might want to add the proper Display impl of it at the xdrgen later.

    opened by jayz22 10
  • Remove cyclical reference to quickstart on integration tests

    Remove cyclical reference to quickstart on integration tests

    What

    removed integration tests that referenced quickstart, instead the same integration test coverage is established by invoking the system-test docker image instead from gh workflow.

    Why

    The reference from tests to quickstart had potential for backwards reference, it's pinned to specific version of core/rpc and tests will need to refer different versions at different times such during release prep, when new version references are needed that quickstart doesn't have yet. Also, the e2e integration tests are mostly duplicative of same coverage done by system tests, don't need to maintain the same test code base here.

    Known limitations

    this has a dependency on system-test PR #8 to merge first, as it will provide the updated docker image used by the gh workflow here.

    opened by sreuland 6
  • Add first integration test

    Add first integration test

    What

    It tests deploying and invoking a contract against the RPC server

    Why

    There are no integration tests. Also, see stellar/quickstart#72

    Known limitations

    The way in which the quickstart container is spawned could be nicer (it may be a good idea to do it from the tests themselves).

    opened by 2opremio 6
  • Add a more generic getLedgerEntry rpc method

    Add a more generic getLedgerEntry rpc method

    What

    Add a new rpc getLedgerEntry method to supersede getContractData.

    Why

    Because the contract storage has changed with the new xdr, getContractData can no longer be used by soroban-cli to fetch the contract code. We could have added the getContractCode endpoint from the original spec. But, it's come up several times that actually getLedgerEntry is both lower-level and more useful.

    The plan will be to deprecate getContractData, and remove it in favour of getLedgerEntry in the next release.

    Todo

    • [x] Rebase this onto main
    • [ ] test this
    • [x] use the new method from soroban-cli to fetch the contract code
      • Will need two requests, one to get the code address, and a second to get the actual code.
    • [x] update the rust dependencies to include the new xdr and conversions
    • [x] update the go dependency to include the new xdr
    • [ ] Once merged: Update the api doc
    opened by paulbellamy 4
  • Code completion does not work for `soroban` command

    Code completion does not work for `soroban` command

    I tried adding the output of soroban completion to my zsh fname list, but when I used the soroban command it wasn't working. After going down an unnecessary rabbit hole, I realized it was working for soroban-cli. I'm assuming the completion script wasn't updated when the command name was changed.

    bug 
    opened by JakeUrban 4
  • Cannot seem to pass maps as args

    Cannot seem to pass maps as args

    What version are you using?

    % soroban version
    soroban 0.3.3 (dc87a2947e8bfbbea56cd3762795b527812d2d01)
    soroban-env 0.0.10 (c14805161b54ba272108ba0503057683f2a688a2)
    soroban-env interface version 26
    stellar-xdr 0.0.9 (1309e3de46fcb01743f818831de3a9ac4a5b1ab6)
    xdr next (026c9cd074bdb28ddde8ee52f2a4502d9e518a09)
    

    What did you do?

    % soroban invoke --id 45292586c32366e071465e115d8d4c45a040f5b55cd253b68c26eb7f6ad60853 --fn with --arg '{"object":{"map":[{"key":{"u32":0},"val":{"u32":1}}]}}'
    

    What did you expect to see?

    Success

    What did you see instead?

    error: parsing argument {"object":{"map":[{"key":{"u32":0},"val":{"u32":1}}]}}: parse error: expected value at line 1 column 1
    

    The contract:

    #![no_std]
    
    use soroban_sdk::{contractimpl, Env, Map, map};
    
    pub struct TestContract;
    
    #[contractimpl]
    impl TestContract {
        pub fn set_wo(env: Env) {
            let value: Map<u32, u32> = map![&env, (0, 1)];
            env.storage().set(env.invoker(), value);
        }
        pub fn set_w(env: Env, colors: Map<u32, u32>) {
            env.storage().set(env.invoker(), colors);
        }
    }
    
    bug 
    opened by tyvdh 1
  • Derive core version from go repo for e2e config

    Derive core version from go repo for e2e config

    What problem does your feature solve?

    avoid manual property setting for core version in e2e settings as recommended here - https://github.com/stellar/soroban-tools/pull/310#discussion_r1050203983

    What would you like to see?

    automated script that scrapes the core version from go repo

    What alternatives are there?

    opened by sreuland 0
  • soroban-cli, soroban-rpc: Simplify topic matching code.

    soroban-cli, soroban-rpc: Simplify topic matching code.

    What

    The topic matching code was a little convoluted given the simplified invariants it needs to maintain:

    • the topic filter needs to match the number of segments exactly (e.g. transfer/GABC/10 should not match transfer/GABC)
    • a filter segment should match the topic segment exactly or be a wildcard (*)

    Why

    Simpler code = easier to read/maintain/debug.

    Known limitations

    Both of these have unit tests, so N/A.

    opened by Shaptic 0
  • Spike: Plugin design/feasibility

    Spike: Plugin design/feasibility

    What problem does your feature solve?

    provide a design for separation of core network data model from other app related data models in the rpc, like Soroban.

    What would you like to see?

    A document with 2 or 3 high level designs as alternatives, each of which explains how application domains like Soroban can be implemented as a plugin, external to rpc, Rpc acts as API gateway to plugin for separate API paths. Present the document to team for consensus.

    What alternatives are there?

    opened by sreuland 1
Releases(v0.3.3)
  • v0.3.3(Dec 8, 2022)

  • v0.3.2(Dec 8, 2022)

    Soroban-CLI

    What's Changed

    • Use an older version of glibc for published binaries on Linux by @leighmcculloch in #303
    • Fix apt-get install failures in ci by @leighmcculloch in #301

    Soroban-RPC

    No changes.

    Full Changelog: https://github.com/stellar/soroban-tools/compare/v0.3.1...v0.3.2

    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Dec 6, 2022)

    Soroban-CLI

    What's Changed

    • Fix up readmes to fix up rust publish by @paulbellamy in https://github.com/stellar/soroban-tools/pull/295
    • Bump version to 0.3.1 by @github-actions in https://github.com/stellar/soroban-tools/pull/297

    Soroban-RPC

    No changes.

    Full Changelog: https://github.com/stellar/soroban-tools/compare/v0.3.0...v0.3.1

    Source code(tar.gz)
    Source code(zip)
    soroban-cli-0.3.1-aarch64-apple-darwin(40.18 MB)
    soroban-cli-0.3.1-aarch64-unknown-linux-gnu(39.36 MB)
    soroban-cli-0.3.1-x86_64-apple-darwin(41.95 MB)
    soroban-cli-0.3.1-x86_64-pc-windows-msvc.exe(18.79 MB)
    soroban-cli-0.3.1-x86_64-unknown-linux-gnu(38.89 MB)
  • v0.3.0(Dec 6, 2022)

    Full Changelog: https://github.com/stellar/soroban-tools/compare/v0.2.1...v0.3.0

    Soroban-CLI

    • Added type description to errors when using --arg by @waldmatias in https://github.com/stellar/soroban-tools/pull/263
    • Additional CLI support for the contract deployment changes. by @dmkozh in https://github.com/stellar/soroban-tools/pull/286
      • Adds support for soroban deploy --wasm-hash ..., as well as soroban install --wasm ...
    • Add xdr and env version to version subcommand output by @leighmcculloch in https://github.com/stellar/soroban-tools/pull/293

    General code cleanup, repository restructuring, and bugfixes

    • Inline variables in format strings by @willemneal in https://github.com/stellar/soroban-tools/pull/248
    • Update rust-version by @github-actions in https://github.com/stellar/soroban-tools/pull/246
    • Lean on workspace inheritance for deps for development by @leighmcculloch in https://github.com/stellar/soroban-tools/pull/252
    • Restructure repository by @tsachiherman in https://github.com/stellar/soroban-tools/pull/251
    • Fix Cargo.lock by @leighmcculloch in https://github.com/stellar/soroban-tools/pull/257
    • Upgrade crate-git-revision to 0.0.4 by @brson in https://github.com/stellar/soroban-tools/pull/292
    • soroban-cli: fix that the footpoint was not set correctly when deploying the wrapped token contract by @overcat in https://github.com/stellar/soroban-tools/pull/278

    Soroban-RPC

    • Add soroban-rpc version subcommand by @tsachiherman in https://github.com/stellar/soroban-tools/pull/272 and https://github.com/stellar/soroban-tools/pull/273
    • Add a new getLedgerEntry jsonrpc method by @paulbellamy in https://github.com/stellar/soroban-tools/pull/274
      • This will deprecate and replace getContractData. The new endpoint allows you to fetch any ledger entry (not just contract data ledger entries).
      • Current API Docs
    • Added new getEvents method (Currently backed by horizon) by @paulbellamy in https://github.com/stellar/soroban-tools/pull/270
      • getEvents lets you fetch and filter a range of events emitted by contract transactions.
      • Current API Docs

    Deprecations

    • getContractData jsonrpc method is deprecated in favor of the new getLedgerEntry, and will be removed in the next release.

    Moved this command into this repo from https://github.com/stellar/go

    • Update the docker building file for the soroban-rpc to match the new location by @tsachiherman in https://github.com/stellar/soroban-tools/pull/261
    • sync up with go repository by @tsachiherman in https://github.com/stellar/soroban-tools/pull/265

    Code cleanup & testing

    • Separate the daemon from the main function by @tsachiherman in https://github.com/stellar/soroban-tools/pull/267
    • Run soroban-rpc tests on ubuntu focal so stellar-core can install by @paulbellamy in https://github.com/stellar/soroban-tools/pull/289
    • updated soroban core version for integration tests by @sreuland in https://github.com/stellar/soroban-tools/pull/283
    Source code(tar.gz)
    Source code(zip)
    soroban-cli-0.3.0-aarch64-apple-darwin(40.16 MB)
    soroban-cli-0.3.0-aarch64-unknown-linux-gnu(39.37 MB)
    soroban-cli-0.3.0-x86_64-apple-darwin(41.95 MB)
    soroban-cli-0.3.0-x86_64-pc-windows-msvc.exe(18.79 MB)
    soroban-cli-0.3.0-x86_64-unknown-linux-gnu(38.89 MB)
  • v0.2.1(Nov 4, 2022)

    What's Changed

    • Fix publish binary ci job by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/249
    • Bump version to 0.2.1 by @github-actions in https://github.com/stellar/soroban-cli/pull/250

    Full Changelog: https://github.com/stellar/soroban-cli/compare/v0.2.0...v0.2.1

    Source code(tar.gz)
    Source code(zip)
    soroban-cli-0.2.1-aarch64-apple-darwin(40.43 MB)
    soroban-cli-0.2.1-aarch64-unknown-linux-gnu(39.41 MB)
    soroban-cli-0.2.1-x86_64-apple-darwin(42.15 MB)
    soroban-cli-0.2.1-x86_64-pc-windows-msvc.exe(18.98 MB)
    soroban-cli-0.2.1-x86_64-unknown-linux-gnu(39.56 MB)
  • v0.2.0(Nov 4, 2022)

    What's Changed

    • Update deps and get BytesM/StringM by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/217
    • Embed the token spec by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/214
    • Add first integration test by @2opremio in https://github.com/stellar/soroban-cli/pull/220
    • Create source account by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/219
    • Move the git revision logic to a crate by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/224
    • Group test-wasms in fixtures and use for e2e test by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/222
    • Check container is ready in e2e-test ci job by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/223
    • Publish binaries by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/229
    • Support Linux aarch64 builds by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/230
    • Add token contract e2e test by @2opremio in https://github.com/stellar/soroban-cli/pull/233
    • Add optimize sub-command using wasm-opt by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/236
    • Fix the bin name in the completion command by @fdesjardins in https://github.com/stellar/soroban-cli/pull/239
    • Enable converge on wasm-opt optimization by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/238
    • Fix jsonrpc compliance issue #151 by @paulbellamy in https://github.com/stellar/soroban-cli/pull/242
    • chore: reorg integration tests into single binary and add helper types to improve tests by @willemneal in https://github.com/stellar/soroban-cli/pull/235
    • Run CLI builds and tests on all platforms by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/237
    • Bump version to 0.2.0 by @github-actions in https://github.com/stellar/soroban-cli/pull/245

    Full Changelog: https://github.com/stellar/soroban-cli/compare/v0.1.2...v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Oct 11, 2022)

    What's Changed

    • Fix the url the invoke client connects to for the rpc by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/215
    • Bump version to 0.1.2 by @github-actions in https://github.com/stellar/soroban-cli/pull/216

    Full Changelog: https://github.com/stellar/soroban-cli/compare/v0.1.1...v0.1.2

    Binaries were retroactively built in https://github.com/stellar/soroban-cli/pull/227.

    Source code(tar.gz)
    Source code(zip)
    soroban-cli-0.1.2-aarch64-apple-darwin.tar.gz(5.19 MB)
    soroban-cli-0.1.2-x86_64-apple-darwin.tar.gz(5.64 MB)
    soroban-cli-0.1.2-x86_64-unknown-linux-gnu.tar.gz(7.46 MB)
  • v0.1.1(Oct 10, 2022)

    What's Changed

    • Change cli serve defaults and path to match quickstart docker by @paulbellamy in https://github.com/stellar/soroban-cli/pull/211
    • invoke: Improve error when invoking a token contract and no wasm is passed by @2opremio in https://github.com/stellar/soroban-cli/pull/212
    • Bump version to 0.1.1 by @github-actions in https://github.com/stellar/soroban-cli/pull/213

    Full Changelog: https://github.com/stellar/soroban-cli/compare/v0.1.0...v0.1.1

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Oct 7, 2022)

    What's Changed

    • Improve error reporting by @2opremio in https://github.com/stellar/soroban-cli/pull/110
    • Fix strval u64 parsing by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/118
    • Improve caching of Rust build artifacts and update workflows by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/120
    • Set and store LedgerInfo by @sisuresh in https://github.com/stellar/soroban-cli/pull/119
    • Add publish dry run to build on release branches by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/122
    • Separate the publish workflows and use new versions by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/123
    • Update soroban-spec, stellar-strkey, soroban-env-*, soroban-wasmi by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/125
    • Add release documentation by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/124
    • Update soroban-env by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/129
    • Forget vm before finishing host by @graydon in https://github.com/stellar/soroban-cli/pull/131
    • Revert "Forget vm before finishing host" by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/132
    • invoke: Ensure all references to the host are released before try_finish() by @2opremio in https://github.com/stellar/soroban-cli/pull/130
    • Fix output logs of events by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/139
    • Update stellar-xdr, soroban-env, soroban-spec by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/141
    • Remove usage of the VM from the invoke command by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/140
    • CLI: add basic versions of getHealth and getAccount by @paulbellamy in https://github.com/stellar/soroban-cli/pull/134
    • Update stellar-xdr, soroban-env, soroban-spec by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/143
    • Update soroban-env, soroban-spec, stellar-xdr by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/147
    • Add js sdk client headers through cors by @paulbellamy in https://github.com/stellar/soroban-cli/pull/149
    • Support debug logs by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/148
    • Update rust-version by @github-actions in https://github.com/stellar/soroban-cli/pull/150
    • Support account id auth by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/154
    • Support getting all data for contract with read command by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/155
    • Add option for choosing which account invoke happens as by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/157
    • Add xdr subcommand for decoding xdr by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/160
    • Update soroban-spec, soroban-env, stellar-xdr by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/162
    • Add source account support to serve simulate/sendTransaction by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/159
    • Update stellar-xdr, soroban-spec, soroban-env by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/164
    • Deploy contract to RPC server by @2opremio in https://github.com/stellar/soroban-cli/pull/152
    • deploy: Allow setting private key from env variable by @2opremio in https://github.com/stellar/soroban-cli/pull/168
    • Update deploy subcommand to use create_contract_from_source() by @2opremio in https://github.com/stellar/soroban-cli/pull/167
    • Extract soroban_rpc crate by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/170
    • Rename private key to secret key by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/171
    • Log errors to stderr in serve by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/163
    • Deploy token contract by @paulbellamy in https://github.com/stellar/soroban-cli/pull/166
    • Fix sequence number in deploy's transaction by @2opremio in https://github.com/stellar/soroban-cli/pull/174
    • Improve serve's txn processing error messages by @paulbellamy in https://github.com/stellar/soroban-cli/pull/175
    • Update soroban-spec, soroban-env, stellar-xdr by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/176
    • Rename soroban-cli to soroban by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/177
    • Update the sdk to 864a309b by @paulbellamy in https://github.com/stellar/soroban-cli/pull/178
    • Allow user to specify custom salt when deploying to remote rpc server by @paulbellamy in https://github.com/stellar/soroban-cli/pull/179
    • Change footprint in serve responses to use xdr by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/182
    • Invoke contract from RPC server by @2opremio in https://github.com/stellar/soroban-cli/pull/181
    • Don't print rpc status to stdout by @paulbellamy in https://github.com/stellar/soroban-cli/pull/184
    • Fix binary name in instructions in README by @willemneal in https://github.com/stellar/soroban-cli/pull/185
    • invoke: Print result when using an RPC Server by @2opremio in https://github.com/stellar/soroban-cli/pull/186
    • Update soroban-spec by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/188
    • Rename private-strkey to secret-key by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/190
    • Fix a bug in the return format of sendTransaction by @paulbellamy in https://github.com/stellar/soroban-cli/pull/195
    • Add env vars for network config flags by @paulbellamy in https://github.com/stellar/soroban-cli/pull/194
    • Swap std::thread::sleep for tokio::time::sleep by @paulbellamy in https://github.com/stellar/soroban-cli/pull/196
    • Add git sha to version information by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/198
    • Remove some unused deps by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/200
    • Add contractCode to token init footprint by @paulbellamy in https://github.com/stellar/soroban-cli/pull/201
    • Make sandbox deploy contract id optional by @paulbellamy in https://github.com/stellar/soroban-cli/pull/202
    • Inspect and use the error from simulateTransaction by @2opremio in https://github.com/stellar/soroban-cli/pull/204
    • Output the ledger footprint when invoking by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/203
    • invoke: Fix (and enforce) getContractData invocation by @2opremio in https://github.com/stellar/soroban-cli/pull/205
    • Add back ability to use --wasm in remote invoke by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/206
    • Reorder options in commands by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/207
    • Group sandbox and rpc options together by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/208
    • Update soroban-spec, soroban-env, stellar-strkey, etc by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/209
    • Bump version to 0.1.0 by @github-actions in https://github.com/stellar/soroban-cli/pull/210

    New Contributors

    • @willemneal made their first contribution in https://github.com/stellar/soroban-cli/pull/185

    Full Changelog: https://github.com/stellar/soroban-cli/compare/v0.0.4...v0.1.0

    Source code(tar.gz)
    Source code(zip)
  • v0.0.4(Sep 2, 2022)

    What's Changed

    • Bump version to 0.0.4 by @github-actions in https://github.com/stellar/soroban-cli/pull/115

    This is the same release as v0.0.3, but with a version number to match the SDK is it compatible.

    Full Changelog: https://github.com/stellar/soroban-cli/compare/v0.0.3...v0.0.4

    Source code(tar.gz)
    Source code(zip)
  • v0.0.3(Sep 2, 2022)

    What's Changed

    • Add build cache in ci by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/54
    • Fix complete ci job by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/55
    • Put ledger.json -> .soroban/ledger.json to keep all cli local files contained by @paulbellamy in https://github.com/stellar/soroban-cli/pull/57
    • Fix ci complete job (again) by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/65
    • cli serve, first pass at sandbox preflights by @paulbellamy in https://github.com/stellar/soroban-cli/pull/64
    • Support G- strkey public keys as arguments by @2opremio in https://github.com/stellar/soroban-cli/pull/71
    • Add shell autocomplete using clap_complete crate by @fdesjardins in https://github.com/stellar/soroban-cli/pull/70
    • Add links to Soroban Docs by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/66
    • Add ci workflow to set min rust-version by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/73
    • Update stellar-env-* by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/77
    • Update rust-version by @github-actions in https://github.com/stellar/soroban-cli/pull/75
    • Add a gen (codegen) sub-command by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/74
    • Add scaffolding for adding additional code gen types by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/79
    • Fix contract invoke by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/80
    • Add names to input types in spec functions by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/82
    • Update stellar-env-* by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/83
    • Use a parser independent of Vm/Host for inspecting wasm files by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/84
    • Check if rust-analyzer can parse project by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/89
    • Update cli serve api by @paulbellamy in https://github.com/stellar/soroban-cli/pull/87
    • Add sendTransaction, getTransactionStatus, and getContractData methods by @paulbellamy in https://github.com/stellar/soroban-cli/pull/92
    • Add BytesN support to spec by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/94
    • Add json output option for gen command by @tamirms in https://github.com/stellar/soroban-cli/pull/91
    • Update stellar-xdr, soroban-env-*, soroban-spec by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/95
    • Allow mixing args and xdr args by @2opremio in https://github.com/stellar/soroban-cli/pull/96
    • Improve invoke error reporting by @2opremio in https://github.com/stellar/soroban-cli/pull/98
    • Update stellar-xdr, soroban-env-*, soroban-spec by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/99
    • Fix up a couple discrepancies from the api docs by @paulbellamy in https://github.com/stellar/soroban-cli/pull/101
    • Add cors support to cli serve by @paulbellamy in https://github.com/stellar/soroban-cli/pull/102
    • Update stellar-xdr, soroban-env-*, soroban-sdk by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/103
    • Fix wasm file not found error by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/104
    • Print event at the end of invocation by @jayz22 in https://github.com/stellar/soroban-cli/pull/105
    • Fix BytesN strvals by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/106
    • Add support for hex strvals to Bytes/BytesN by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/107
    • Make read accept strval or xdr, and output strval, json, or xdr by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/108
    • Default to string output in read subcommand by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/109
    • Release automation by @graydon in https://github.com/stellar/soroban-cli/pull/111
    • Fix release automation by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/112
    • Update dependencies for release by @leighmcculloch in https://github.com/stellar/soroban-cli/pull/113
    • Bump version to 0.0.3 by @github-actions in https://github.com/stellar/soroban-cli/pull/114

    New Contributors

    • @fdesjardins made their first contribution in https://github.com/stellar/soroban-cli/pull/70
    • @github-actions made their first contribution in https://github.com/stellar/soroban-cli/pull/75
    • @tamirms made their first contribution in https://github.com/stellar/soroban-cli/pull/91
    • @jayz22 made their first contribution in https://github.com/stellar/soroban-cli/pull/105

    Full Changelog: https://github.com/stellar/soroban-cli/compare/v0.0.2...v0.0.3

    Source code(tar.gz)
    Source code(zip)
Owner
Stellar
Stellar
An automated CLI tool that optimizes gas usage in Solidity smart contracts, focusing on storage and function call efficiency.

Solidity-Gas-Optimizoor An high performance automated CLI tool that optimizes gas usage in Solidity smart contracts, focusing on storage and function

Chia Yong Kang 10 Mar 11, 2024
Single and multi-threaded custom ingestion crate for Stellar Futurenet, written in Rust.

rs-ingest Ingestion library written in rust for Futurenet rs-ingest Ingestion library written in rust for Futurenet Features Running offline Single-th

Xycloo Labs 3 Aug 14, 2023
evm2near compiles Solidity contracts into NEAR WebAssembly contracts.

EVM → NEAR evm2near is a project for compiling EVM bytecode into wasm bytecode, with the particular goal of having that wasm artifact be executable on

Aurora 125 Dec 3, 2022
Ticketed Discreet Log Contracts (DLCs) to enable instant buy-in for wager-like contracts on Bitcoin.

dlctix Ticketed Discreet Log Contracts (DLCs) to enable instant buy-in for wager-like contracts on Bitcoin. This project is part of the Backdrop Build

null 7 Feb 29, 2024
Smart contracts for Ref Finance

Ref Finance Contracts This mono repo contains the source code for the smart contracts of Ref Finance on NEAR. Contracts Contract Reference Description

Ref Finance 92 Dec 7, 2022
Skyward Finance smart-contracts

Build and Init ./build.sh near dev-deploy res/skyward.was export CONTRACT_ID=skyward.testnet near call $CONTRACT_ID new --account_id=$CONTRACT_ID Regi

Skyward Finance 777 Jan 4, 2023
Rust client to Opensea's APIs and Ethereum smart contracts

opensea.rs Rust bindings & CLI to the Opensea API and Contracts CLI Usage Run cargo r -- --help to get the top level help menu: opensea-cli 0.1.0 Choo

Georgios Konstantopoulos 226 Dec 27, 2022
A framework for creating PoC's for Solana Smart Contracts in a painless and intuitive way

Solana PoC Framework DISCLAIMER: any illegal usage of this framework is heavily discouraged. Most projects on Solana offer a more than generous bug bo

Neodyme 165 Dec 18, 2022
My code for the terra.academy course on CosmWasm smart contracts

CosmWasm Starter Pack This is a template to build smart contracts in Rust to run inside a Cosmos SDK module on all chains that enable it. To understan

Alex Incerti 0 Nov 7, 2021
Smart contracts powering Spectrum Protocol on Terra

Spectrum Core Contracts This monorepository contains the source code for the core smart contracts implementing Spectrum Protocol on the Terra blockcha

Spectrum Protocol 38 Dec 19, 2022
A template to build smart contracts in Rust to run inside a Cosmos SDK module on all chains that enable it.

CosmWasm Starter Pack This is a template to build smart contracts in Rust to run inside a Cosmos SDK module on all chains that enable it. To understan

null 1 Mar 7, 2022
Create your personal token with rust smart contracts

Solana Rust Token ?? This application written Rust using Anchor ⚓

Ritesh 6 Nov 22, 2022
This is a node implementation of Thippy, a Substrate parachain for smart contracts

Thippy ‒- A Smart Contracts Parachain This is a node implementation of Thippy, a Substrate parachain for smart contracts. Developing Smart Contracts f

Arthur·Thomas 15 Mar 16, 2022
Rust library for build smart contracts on Internet Computer, by the Spinner.Cash team.

Spinner Rust library for building smart contracts on the Internet Computer. More specifically it is used by Spinner.Cash, a decentralized layer-2 prot

Spinner 6 May 31, 2022
Rust implementation for Thippy -- a Substrate parachain for smart contracts.

Thippy ‒- A Smart Contracts Parachain This is a node implementation of Thippy, a Substrate parachain for smart contracts. Developing Smart Contracts f

Arthur·Thomas 15 Mar 16, 2022
Helpful functions and macros for developing smart contracts on NEAR Protocol.

near-contract-tools Helpful functions and macros for developing smart contracts on NEAR Protocol. This package is a collection of common tools and pat

Jacob 27 Dec 17, 2022
🖨 Template for Rust applications & smart contracts @okp4.

Rust Template Template for Rust projects @okp4. Purpose & Philosophy This repository holds the template for building Rust projects with a consistent s

OKP4 – Open Knowledge Protocol For 6 Nov 17, 2022
A gRPC-based scripting library for interacting with CosmWasm smart-contracts.

Cosmos Rust Script Smart contract scripting library to ease CosmWasm smart contract development and deployment. cosm-script is inspired by terra-rust-

null 11 Nov 3, 2022
Helpful functions and macros for developing smart contracts on NEAR Protocol.

near-contract-tools Helpful functions and macros for developing smart contracts on NEAR Protocol. This package is a collection of common tools and pat

NEARFoundation 9 Aug 3, 2022