Description:
The NFT module uses env.events().publish_event() which is deprecated in favor of env.events().publish(). The deprecated method may be removed in future Soroban SDK versions, which would break compilation.
There are three calls to fix:
- Line 101-107:
mint_invoice_nft — publish_event for minting
- Line 152-157:
transfer_invoice_nft — publish_event for transfers
- Line 195-199:
burn_invoice_nft — publish_event for burning
The new format should use env.events().publish() with a tuple of topic symbols and a data struct, matching the pattern used elsewhere in the codebase (e.g., events.rs).
Why it matters: Deprecated API usage will break compilation when the SDK removes support.
Acceptance Criteria:
Relevant Files: contracts/invoice_liquidity/src/nft.rs:100-200
Description:
The NFT module uses
env.events().publish_event()which is deprecated in favor ofenv.events().publish(). The deprecated method may be removed in future Soroban SDK versions, which would break compilation.There are three calls to fix:
mint_invoice_nft—publish_eventfor mintingtransfer_invoice_nft—publish_eventfor transfersburn_invoice_nft—publish_eventfor burningThe new format should use
env.events().publish()with a tuple of topic symbols and a data struct, matching the pattern used elsewhere in the codebase (e.g.,events.rs).Why it matters: Deprecated API usage will break compilation when the SDK removes support.
Acceptance Criteria:
publish_eventcalls withpublishinnft.rs#[allow(deprecated)]annotations if presentRelevant Files:
contracts/invoice_liquidity/src/nft.rs:100-200