/// <summary> /// Hash returns the network-specific transaction hash for a signed transaction. /// </summary> /// <param name="request"></param> /// <returns></returns> public JObject ConstructionHash(ConstructionHashRequest request) { if (request.NetworkIdentifier?.Blockchain?.ToLower() != "neo n3") { return(Error.NETWORK_IDENTIFIER_INVALID.ToJson()); } if (request.NetworkIdentifier?.Network?.ToLower() != network) { return(Error.NETWORK_IDENTIFIER_INVALID.ToJson()); } NeoTransaction neoTx; try { neoTx = Convert.FromBase64String(request.SignedTransaction).AsSerializable <NeoTransaction>(); // base64 } catch (Exception) { return(Error.TX_DESERIALIZE_ERROR.ToJson()); } var hash = neoTx.Hash.ToString(); ConstructionHashResponse response = new ConstructionHashResponse(new TransactionIdentifier(hash)); return(response.ToJson()); }
/// <summary> /// Hash returns the network-specific transaction hash for a signed transaction. /// </summary> /// <param name="request"></param> /// <returns></returns> public JObject ConstructionHash(ConstructionHashRequest request) { NeoTransaction neoTx; try { neoTx = NeoTransaction.DeserializeFrom(request.SignedTransaction.HexToBytes()); } catch (Exception) { return(Error.TX_DESERIALIZE_ERROR.ToJson()); } var hash = neoTx.Hash.ToString(); ConstructionHashResponse response = new ConstructionHashResponse(hash); return(response.ToJson()); }