toOperationBody method Null safety
override
Generates OperationBody XDR object.
Implementation
@override
XdrOperationBody toOperationBody() {
List<XdrSCVal> invokeArgsList = List<XdrSCVal>.empty(growable: true);
// contract id
XdrSCVal contractIDScVal = XdrSCVal(XdrSCValType.SCV_OBJECT);
XdrSCObject contractIDSCObject = XdrSCObject(XdrSCObjectType.SCO_BYTES);
contractIDSCObject.bin = XdrDataValue(Util.hexToBytes(this._contractID));
contractIDScVal.obj = contractIDSCObject;
invokeArgsList.add(contractIDScVal);
// function name
XdrSCVal functionNameScVal = XdrSCVal(XdrSCValType.SCV_SYMBOL);
functionNameScVal.sym = this._functionName;
invokeArgsList.add(functionNameScVal);
// arguments for the function call
if (this._arguments != null) {
invokeArgsList.addAll(this._arguments!);
}
// prepare function
XdrHostFunction xdrHostFunction =
XdrHostFunction(XdrHostFunctionType.HOST_FUNCTION_TYPE_INVOKE_CONTRACT);
xdrHostFunction.invokeArgs = invokeArgsList;
XdrOperationBody body =
XdrOperationBody(XdrOperationType.INVOKE_HOST_FUNCTION);
body.invokeHostFunctionOp =
XdrInvokeHostFunctionOp(xdrHostFunction, getXdrFootprint());
return body;
}