Skip to content

@evolution-sdk/[email protected]

Choose a tag to compare

@github-actions github-actions released this 23 Dec 21:59
· 6 commits to main since this release
2221acf

Patch Changes

  • #112 c59507e Thanks @solidsnakedev! - Add transaction chaining support via SignBuilder.chainResult()

    • Add chainResult() method to SignBuilder for building dependent transactions
    • Returns ChainResult with consumed, available UTxOs and pre-computed txHash
    • Lazy evaluation with memoization - computed on first call, cached for subsequent calls
    • Add signAndSubmit() convenience method combining sign and submit in one call
    • Remove redundant chain(), chainEffect(), chainEither() methods from TransactionBuilder
  • #110 9ddc79d Thanks @solidsnakedev! - ### Native Scripts & Multi-Sig Support

    • addSigner operation: Add required signers to transactions for multi-sig and script validation
    • Native script minting: Full support for ScriptAll, ScriptAny, ScriptNOfK, InvalidBefore, InvalidHereafter
    • Reference scripts: Use native scripts via readFrom instead of attaching them to transactions
    • Multi-sig spending: Spend from native script addresses with multi-party signing
    • Improved fee calculation: Accurate fee estimation for transactions with native scripts and reference scripts

    API Changes

    • UTxO.scriptRef type changed from ScriptRef to Script for better type safety
    • PayToAddressParams.scriptRef renamed to script for consistency
    • Wallet signTx now accepts referenceUtxos context for native script signer detection
    • Client signTx auto-fetches reference UTxOs when signing transactions with reference inputs
  • #109 0730f23 Thanks @solidsnakedev! - ### TxBuilder setValidity API

    Add setValidity() method to TxBuilder for setting transaction validity intervals:

    client.newTx()
      .setValidity({
        from: Date.now(),           // Valid after this Unix time (optional)
        to: Date.now() + 300_000    // Expires after this Unix time (optional)
      })
      .payToAddress({ ... })
      .build()
    • Times are provided as Unix milliseconds and converted to slots during transaction assembly
    • At least one of from or to must be specified
    • Validates that from < to when both are provided

    slotConfig support for devnets

    Add slotConfig parameter to createClient() for custom slot configurations:

    const slotConfig = Cluster.getSlotConfig(devnetCluster)
    const client = createClient({
      network: 0,
      slotConfig,  // Custom slot config for devnet
      provider: { ... },
      wallet: { ... }
    })

    Priority chain for slot config resolution:

    1. BuildOptions.slotConfig (per-transaction override)
    2. TxBuilderConfig.slotConfig (client default)
    3. SLOT_CONFIG_NETWORK[network] (hardcoded fallback)

    Cluster.getSlotConfig helper

    Add getSlotConfig() helper to derive slot configuration from devnet cluster genesis:

    const slotConfig = Cluster.getSlotConfig(cluster)
    // Returns: { zeroTime, zeroSlot, slotLength }