Type Alias SmartContractRequest

    SmartContractRequest:
        | SmartContractBaseRequest & { address: KleverAddress; scType: 0 }
        | SmartContractBaseRequest & { address?: never; scType: 1 }
        | SmartContractBaseRequest & { address: KleverAddress; scType: 2 }

    Smart contract transaction request.

    Discriminated by scType:

    • 0 invokes an existing contract and requires a branded KleverAddress.
    • 1 deploys a new contract and must not include an address.
    • 2 upgrades an existing contract and requires a branded KleverAddress.

    Use createKleverAddress() from @klever/connect-core or another validating path to create the branded address value before building invoke/upgrade calls.