Skip to content

v0.5.0

Latest

Choose a tag to compare

@deszhou deszhou released this 29 Jul 20:57
c61d477

Added

  • Added tronz-rpc-types, a network-independent crate for TRON domain types,
    protobuf messages, and codecs. tronz-provider::types remains a compatible
    re-export, and committed generated code removes protoc from normal builds.
  • Added multi-key TronWallet support, strict owner-key routing, multisig
    permissions, unsigned transaction builds, and multi-signer helpers.
  • Added composable provider layers, DynProvider, custom fillers, gRPC
    middleware, and named ReadProvider/WalletProvider stacks.
  • Added EnergyFiller, which estimates contract energy and applies the current
    chain price, configurable margin, bounds, cache, and failure policy.
  • Added configurable pending-transaction polling, receipt success checks, and
    solidified receipt support.
  • Added TronWeb-compatible message signing, TIP-712 typed data, synchronous
    signer support, and PBKDF2 keystore decryption.
  • Added provider-bound tron_sol! improvements, Forge artifact deployment,
    event ranges and watchers, anonymous events, and typed TRC20/TRC721 call
    builders.
  • Added BlockInfo::new, contract fee-limit controls, ABI lookup helpers, and
    additional primitive conversions.

Changed (Breaking)

  • TransportErrorKind::Grpc is replaced by transport-neutral
    Rpc { code: RpcStatusCode, message }; Connect now boxes its source error.
    Use is_rpc() and status_code() instead of is_grpc() and tonic::Code.
  • Recommended fillers now use dynamic EnergyFiller pricing instead of a flat
    fee limit. Use with_fee_limit to keep a fixed limit.
  • Providers erase their transport inside RootProvider. TronProvider drops
    its transport associated type, is object-safe and unsealed, and requires only
    root(). FilledProvider<T, F> becomes FilledProvider<F>.
  • TronTransport and SolidityTransport are object-safe and no longer require
    Clone or an error associated type.
  • SignerFiller is replaced by WalletFiller; TronSigner::sign_hash now takes
    &B256, and provider signing uses TronWallet.
  • Transaction and block lookups return Option when the requested value is not
    present.
  • TxFiller::status and FillerStatus are removed.
  • Contract caller also selects the sender for writes; deployments use from.
  • send_transaction rejects requests without an owner.
  • Log::topics is private and Log::new validates the four-topic limit.
  • Keystore KDF parameters now use KdfparamsType;
    tronz::signer_aws moves to tronz::signers::aws; and
    TronAbiConversionError requires tronz-abi/alloy.
  • ContractType is exhaustive so adding an operation without a transport route
    fails at compile time.

Fixed

  • Verify node-built transactions, contracts, permission IDs, and locally
    computed transaction IDs before signing.
  • Distinguish missing transactions and blocks from malformed node responses.
  • Preserve the transaction ID when a broadcast outcome is ambiguous and never
    retry a broadcast automatically.
  • Make pending timeouts cover total wall-clock time and continue polling through
    transient node failures while preserving the last error.
  • Fixed keystore validation, Forge bytecode deployment, contract fee limits,
    dynamic contract sends, typed event decode errors, anonymous events, and the
    TRC721 four-argument safeTransferFrom overload.

Changed

  • ProviderBuilder::new() installs recommended fillers; default() installs
    none. Custom transports connect with connect_transport.
  • on_grpc* is deprecated in favor of connect_grpc*. Pending transaction
    await_* aliases are deprecated in favor of receipt-oriented names.
  • The facade full feature now includes mnemonic, keystore, and TIP-712 support.