Skip to content

Decode and review Soroban contract invocation semantics #111

Description

@knytcomics-ui

Category

Advanced

Summary

Extend transaction inspection beyond classic payment destinations to meaningful Soroban contract invocation details.

Current Behavior

The decoder handles payment-like operations and claimable balances. The protocol contains contract-invocation concepts, but contract invocation decoding and review are not implemented.

Problem

A destination warning can conceal the important behavior of a contract call.

Why This Matters

Soroban transactions may derive risk from functions, arguments, authorization, and asset movements rather than a simple destination.

Proposed Scope

Define a supported subset, decode contract address, function, bounded arguments, authorization context, and detectable value effects, then display a semantic summary. Ambiguous calls must be clearly Unknown.

Acceptance Criteria

  • Supported Soroban fields decode without crashing.
  • Contract and function are shown.
  • Arguments and authorization data are bounded and safely rendered.
  • Unsupported or ambiguous calls do not appear Low risk.
  • Existing classic behavior remains compatible.
  • Adversarial XDR tests are included.
  • Threat-model limitations are updated.

Technical Considerations

Relevant areas are the decoder, resolver, protocol payloads, and warning UI. Keep Stellar SDK parsing out of page-context bundles.

Testing Requirements

Test valid calls, malformed XDR, large arguments, nested values, authorization entries, and unsupported operations.

Cross-Repository Impact

Potential impact on the oracle request schema if contract semantics are scored remotely.

Out of Scope

Executing contracts, RPC simulation, or proving contract safety.

Complexity

Advanced — protocol-level decoding with security-sensitive ambiguity handling.

Impact

Critical — extends protection to a major Stellar transaction class.

Suggested Labels

advanced, security, architecture

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions