diff --git a/src/contract/assembled_transaction.ts b/src/contract/assembled_transaction.ts index a6664d6e1..9cf5c2c99 100644 --- a/src/contract/assembled_transaction.ts +++ b/src/contract/assembled_transaction.ts @@ -330,8 +330,8 @@ export class AssembledTransaction { method: this.options.method, tx: this.built?.toXDR(), simulationResult: { - auth: this.simulationData.result?.auth.map((a) => a.toXDR("base64")), - retval: this.simulationData.result?.retval.toXDR("base64"), + auth: this.simulationData.result.auth.map((a) => a.toXDR("base64")), + retval: this.simulationData.result.retval.toXDR("base64"), }, simulationTransactionData: this.simulationData.transactionData.toXDR("base64"), @@ -532,7 +532,7 @@ export class AssembledTransaction { }; get simulationData(): { - result?: Api.SimulateHostFunctionResult; + result: Api.SimulateHostFunctionResult; transactionData: xdr.SorobanTransactionData; } { if (this.simulationResult && this.simulationTransactionData) { @@ -560,7 +560,7 @@ export class AssembledTransaction { } // add to object for serialization & deserialization - this.simulationResult = simulation.result; + this.simulationResult = simulation.result ?? { auth: [], retval: new xdr.ScVal() }; this.simulationTransactionData = simulation.transactionData.build(); return { @@ -574,7 +574,7 @@ export class AssembledTransaction { if (!this.simulationData.result) { throw new Error("No simulation result!"); } - return this.options.parseResultXdr(this.simulationData.result?.retval); + return this.options.parseResultXdr(this.simulationData.result.retval); } catch (e) { if (!implementsToString(e)) throw e; const err = this.parseError(e.toString()); @@ -827,7 +827,7 @@ export class AssembledTransaction { * returns `false`, then you need to call `signAndSend` on this transaction. */ get isReadCall(): boolean { - const authsCount = this.simulationData.result?.auth.length; + const authsCount = this.simulationData.result.auth.length; const writeLength = this.simulationData.transactionData .resources() .footprint()