public static string CalculateCreate2Address(string address, string saltHex, string byteCodeHex) { if (string.IsNullOrEmpty(address)) { throw new System.ArgumentException($"'{nameof(address)}' cannot be null or empty.", nameof(address)); } if (string.IsNullOrEmpty(saltHex)) { throw new System.ArgumentException($"'{nameof(saltHex)}' cannot be null or empty.", nameof(saltHex)); } if(saltHex.EnsureHexPrefix().Length != 66) { throw new System.ArgumentException($"'{nameof(saltHex)}' needs to be 32 bytes", nameof(saltHex)); } var sha3 = new Sha3Keccack(); return sha3.CalculateHashFromHex("0xff", address, saltHex, sha3.CalculateHashFromHex(byteCodeHex)).Substring(24).ConvertToEthereumChecksumAddress(); }
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 CalculateTransactionHash(string rawSignedTransaction) { var sha3 = new Sha3Keccack(); return(sha3.CalculateHashFromHex(rawSignedTransaction)); }