Skip to content

[CT-16] Implement cross-contract tokenization call pattern in opsce crate #815

@yusuftomilola

Description

@yusuftomilola

Problem

The assetsup and multisig_transfer contracts operate independently with no cross-contract communication. A tokenized asset transfer approved by the multisig wallet cannot automatically invoke transfer_tokens() on the assetsup contract.

Proposed Solution

Create contracts/opsce/src/cross_contract.rs. Implement a client interface that allows multisig_transfer to call assetsups transfer_tokens() via Soroban cross-contract invocation.

Acceptance Criteria

  • A AssetsUpClient struct defined using Sorobans contractclient macro targeting the assetsup contract interface
  • multisig_execute_token_transfer(env, wallet_id, tx_id, assetsup_contract_id) invokes transfer_tokens on the assetsup contract after multisig approval
  • Correct authorization (require_auth) passed through the cross-contract call
  • If the cross-contract call fails, the entire multisig execution reverts
  • The assetsup_contract_id is stored in the multisig wallet config and changeable by the wallet admin
  • Unit tests mock the cross-contract call using Soroban test utilities

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions