sendOperation static method
Future<Map<String, Object?> >
sendOperation(
- String server,
- List<
OperationModel> operations, - SoftSigner signer,
- int offset, [
- dynamic blockHead,
- dynamic preapply,
- dynamic gasEstimation,
Implementation
static Future<Map<String, Object?>> sendOperation(String server,
List<OperationModel> operations, SoftSigner signer, int offset,
[blockHead, preapply, gasEstimation]) async {
var _blockHead =
blockHead ?? await TezosNodeReader.getBlockAtOffset(server, offset);
var blockHash = _blockHead['hash'].toString().substring(0, 51);
var forgedOperationGroup =
await forgeOperations(server, blockHash, operations);
var opSignature = signer.signOperation(Uint8List.fromList(hex.decode(
TezosConstants.OperationGroupWatermark + forgedOperationGroup)));
var signedOpGroup = Uint8List.fromList(
hex.decode(forgedOperationGroup) + opSignature.toList());
var base58signature = TezosMessageUtils.readSignatureWithHint(
opSignature, signer.getSignerCurve());
var opPair = {'bytes': signedOpGroup, 'signature': base58signature};
var appliedOp = await preapplyOperation(
server, blockHash, _blockHead['protocol'], operations, opPair);
if (preapply != null &&
preapply &&
gasEstimation != null &&
gasEstimation) {
return {
'opPair': opPair,
'gasEstimation': operations[0].fee.toString(),
};
}
if (preapply != null && preapply) return opPair;
var injectedOperation = await injectOperation(server, opPair);
return {'appliedOp': appliedOp[0], 'operationGroupID': injectedOperation};
}