Skip to content

otigen v0.1.0-alpha.5

Pre-release
Pre-release

Choose a tag to compare

@zarah-s zarah-s released this 04 Jul 00:43

otigen v0.1.0-alpha.5

The multi-contract release. One project can now hold many contracts that
build, test, and deploy together — plus a hardening pass over the whole CLI
and a new build-time check that catches manifest mistakes before they reach a
chain.

Multi-contract workspaces

  • otigen init creates a workspace; otigen new adds a contract to it.
    Standalone single-contract projects work exactly as before.
  • otigen build and otigen test run across every contract
    (--contract <name> targets one).
  • otigen deploy builds everything, shows you the plan (network, RPC,
    account, order), then deploys in order — resolving @name references to
    real deployed addresses. Re-running skips what's already deployed.
    --dry-run previews everything offline, no password, no node needed.
  • otigen addresses lists what's deployed where. call, inspect, and
    verify accept a contract's name from anywhere in the workspace.

Your manifest can't lie anymore

otigen build now verifies that the types declared in [functions.*]
match your actual Rust code, and fails with a clear message when they don't:

function "increment": otigen.toml declares inputs [uint64],
but the code's signature is [] — update [functions.increment] to match

Requires pyde-host 0.1.0-alpha.7 (new scaffolds pin it automatically).
Constructors are recognised by the constructor attribute — any function
name works.

Errors and returns you can actually read

  • Reverts show the message your contract wrote — Reverted: erc721: nonexistent token — everywhere: view calls, transactions, deploys, and
    the console. No more wasm backtraces.
  • Write functions that return data now display it, decoded per your declared
    outputs — structs, enums, and nested vec(…) included.
  • Every scaffold command prints the same clean summary: what was created,
    the files that matter, and the next commands to run.

Smaller fixes worth knowing

  • Scaffolds pull pyde-host from crates.io / npm / the Go module registry —
    no vendored sources in your project tree.
  • devnet --json emits clean NDJSON (logs go to stderr).
  • --chain-id accepts the 0x form that pyde_chainId returns.
  • wallet password --password-stdin for scripts and CI.
  • Constructor args can be passed on the command line for a single-contract
    deploy inside a workspace (otigen deploy --contract usdc usdc USDC 6 …).
  • Devnet endpoints standardised on 127.0.0.1:9933 across all scaffolds and
    examples.

Install

Download the archive for your platform below, verify the checksum, and put
otigen on your PATH. macOS/Linux:

tar xzf otigen-v0.1.0-alpha.5-<target>.tar.gz
install -m 755 otigen-v0.1.0-alpha.5-<target>/otigen ~/.otigen/bin/otigen

Verify

cosign verify-blob \
  --certificate-identity-regexp 'https://github.com/.*' \
  --certificate-oidc-issuer-regexp 'https://token.actions.githubusercontent.com|https://github.com/login/oauth' \
  --signature <archive>.sig \
  --certificate <archive>.pem \
  <archive>.tar.gz