@arkade-os/sdk Documentation - v0.5.0-rc.11
    Preparing search index...

    Type Alias ContractEvent

    ContractEvent:
        | {
            contract: Contract;
            contractScript: string;
            timestamp: number;
            type: "vtxo_received";
            vtxos: ContractVtxo[];
        }
        | {
            contract: Contract;
            contractScript: string;
            timestamp: number;
            type: "vtxo_spent";
            vtxos: ContractVtxo[];
        }
        | {
            contractScript: string;
            timestamp: number;
            type: "vtxo_received";
            vtxos: VirtualCoin[];
        }
        | {
            contractScript: string;
            timestamp: number;
            type: "vtxo_spent";
            vtxos: VirtualCoin[];
        }
        | { timestamp: number; type: "connection_reset" }

    Event emitted when contract-related changes occur.

    A watch-only script reports the same vtxo_received / vtxo_spent types but carries no contract, and cannot: annotation needs one. That absence is the ownership boundary, and the compiler enforces it — reading event.contract unnarrowed by isContractVtxoEvent fails.