This scenario is mainly used to create zk-contract or update zk-contracts.
Update zk contract
This method is use to sign and broadcast zk transaction.
typeSendTransactionHash= { hash:string;};typeSignedZkappCommand= { signedData:string; // results of JSON.stringify( signZkappCommand().data )};typeSendZkTransactionResult=SendTransactionResult|SignedZkappCommandinterfaceProviderErrorextendsError { message:string; code:number; data?:unknown;}interfaceSendTransactionArgs {readonly onlySign?:boolean; // auro-extension-wallet support from V2.2.16. readonly nonce?:number; // auro-extension-wallet support from V2.3.0. readonly transaction:string|object;readonly feePayer?: {readonly fee?:number;readonly memo?:string; };}constupdateResult:SendZkTransactionResult|ProviderError=awaitwindow.mina?.sendTransaction({ onlySign: onlySign,// only sign zkCommond, not broadcast. transaction: transactionJSON,// this is zk commond, create by zkApp. feePayer: { // option. fee: fee, memo: memo }, });console.log(updateResult);
Here is an demo of update a zk contract. To create a zkApp contract, you need to use o1js to sign first, then use Auro Wallet to sign the result of o1js signed. The created zkApp contract demo is here.