public TransactionInput CreateSetTopScoreTransactionInput(string addressFrom, string addressOwner, string privateKey, BigInteger score, HexBigInteger gas = null, HexBigInteger valueAmount = null) { var numberBytes = new IntTypeEncoder().Encode(score); var sha3 = new Nethereum.Util.Sha3Keccack(); var hash = sha3.CalculateHashFromHex(addressFrom, addressOwner, numberBytes.ToHex()); var signer = new MessageSigner(); var signature = signer.Sign(hash.HexToByteArray(), privateKey); var ethEcdsa = MessageSigner.ExtractEcdsaSignature(signature); var function = GetFunctionSetTopScore(); return(function.CreateTransactionInput(addressFrom, gas, valueAmount, score, ethEcdsa.V, ethEcdsa.R, ethEcdsa.S)); }
public TransactionInput closeRoomInput(string addressFrom, string privateKey, HexBigInteger gas, int id, HexBigInteger valueAmount = null) { var numberBytes = new IntTypeEncoder().Encode(id); var sha3 = new Nethereum.Util.Sha3Keccack(); var hash = sha3.CalculateHashFromHex(addressFrom, numberBytes.ToHex()); var signer = new MessageSigner(); var signature = signer.Sign(hash.HexToByteArray(), privateKey); var ethEcdsa = MessageSigner.ExtractEcdsaSignature(signature); object[] array = new object[] { id }; var function = closeRoomFunction(); return(function.CreateTransactionInput(addressFrom, gas, valueAmount, array)); }
public TransactionInput createUserInput(string addressFrom, string privateKey, HexBigInteger gas, string name, int pin) { var stringBytes = new StringTypeEncoder().Encode(name); var numberBytes = new IntTypeEncoder().Encode(pin); var sha3 = new Nethereum.Util.Sha3Keccack(); var hash = sha3.CalculateHashFromHex(addressFrom, numberBytes.ToHex(), stringBytes.ToHex()); var signer = new MessageSigner(); var signature = signer.Sign(hash.HexToByteArray(), privateKey); var ethEcdsa = MessageSigner.ExtractEcdsaSignature(signature); object[] array = new object[] { name, pin }; var function = createUserFunction(); return(function.CreateTransactionInput(addressFrom, array)); }
public static string Sha3ForCooperative(CooperativeSignDto cooperativeDto) { var sha3 = new Sha3Keccack(); var bob = new IntTypeEncoder() .Encode(StringToBigInteger(cooperativeDto.BobAmountWei)); var alice = new IntTypeEncoder() .Encode(StringToBigInteger(cooperativeDto.AliceAmountWei)); var output = sha3.CalculateHashFromHex(bob.ToHex(), alice.ToHex(), cooperativeDto.ChannelId); var resultHash = "0x" + output; return(resultHash); }
public void ShouldSignHash() { var address1 = "0x6A849e2036A36EB4Cd37b9aFA3c770064899f1A2"; var address2 = "0x12890D2cce102216644c59daE5baed380d84830c"; var numberBytes = new IntTypeEncoder().Encode(1); //Number is a big integer so we need 32 bytes if it was int32 it will be 4 bytes. Using the abi encoder it takes care of padding var sha3 = new Util.Sha3Keccack(); var output = sha3.CalculateHashFromHex(address1, address2, numberBytes.ToHex()); Assert.Equal("0xc11d3d2b8e0c5b8b645b9e7502751352ecaf8c3fdf3a0124dae9c1556fb2ce37", output.EnsureHexPrefix()); var signer = new MessageSigner(); var signature = signer.Sign(output.HexToByteArray(), "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7"); var ethEcdsa = MessageSigner.ExtractEcdsaSignature(signature); var adddress = signer.EcRecover(output.HexToByteArray(), signature); Assert.Equal(adddress, new EthECKey("0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7".HexToByteArray(), true).GetPublicAddress()); }
public static string Sha3ForReceipts(ReceiptDto receiptDto) { var sha3 = new Sha3Keccack(); var rec = new IntTypeEncoder() .Encode(receiptDto.ReceiptId); var epo = new IntTypeEncoder() .Encode(receiptDto.EpochId); var amo = new IntTypeEncoder() .Encode(StringToBigInteger(receiptDto.AmountWei)); var output = sha3.CalculateHashFromHex(rec.ToHex(), epo.ToHex(), amo.ToHex(), receiptDto.Address); var resultHash = "0x" + output; return(resultHash); }
public static string Sha3ForAudit(AuditSignDto auditDto) { var sha3 = new Sha3Keccack(); var bob = new IntTypeEncoder() .Encode(StringToBigInteger(auditDto.BobAmountWei)); var alice = new IntTypeEncoder() .Encode(StringToBigInteger(auditDto.AliceAmountWei)); var epoch = new IntTypeEncoder() .Encode(auditDto.EpochId); var output = sha3.CalculateHashFromHex(bob.ToHex(), alice.ToHex(), auditDto.ChannelId, epoch.ToHex()); var resultHash = "0x" + output; return(resultHash); }