public ITransactionSendResult txGetSendingResult(string txid) { Transaction transactionLoad = null; BytesMessage txidByteMessage = GetByteMessageFromString(txid); try { transactionLoad = _walletClient.GetTransactionByIdAsync(txidByteMessage).GetAwaiter().GetResult(); } catch (Exception exception) { return(new TransactionSendResult(TransactionStatus.Error, exception.Message, null)); } if (transactionLoad == null) { return(new TransactionSendResult(TransactionStatus.Error, "Транзакция по txid не найдена.", null)); } Block block = _walletClient.GetBlockByIdAsync(txidByteMessage).GetAwaiter().GetResult(); ByteString rawDataData = transactionLoad.RawData.Data; // var bigInteger = new BigInteger(rawDataData.ToByteArray()); // Info info = new Info(txid, transactionLoad.RawData.ToByteString().ToBase64(), DateTime.Now); return(new TransactionSendResult(TransactionStatus.Sent, null, null)); }
public void Main4Test() { Wallet.WalletClient wallet = GetMainNetWalletClient; var keyTriple = new KeyTriple("B7E85CA5910922C49DCCB92EE48DFEC13A60674845CB7152C86B88F31DA6DC67"); byte[] hashTransaction1 = StringHelper.HexStringToByteArray("a7e974c6e69fb7741bf5e08de8a2d8f6617826c59422b440de22e0612b03c393"); BytesMessage bytesMessage1 = new BytesMessage(); bytesMessage1.Value = ByteString.CopyFrom(hashTransaction1); Transaction transactionLoad1 = wallet.GetTransactionByIdAsync(bytesMessage1).GetAwaiter().GetResult(); Transaction.Types.Contract contract = transactionLoad1.RawData.Contract[0]; TransferContract transferContract = TransferContract.Parser.ParseFrom(contract.Parameter.Value.ToByteArray()); byte[] publicKeyOwner = transferContract.OwnerAddress.ToByteArray(); string encode = Base58.Encode(publicKeyOwner); byte[] transactionRaw = transactionLoad1.RawData.ToByteArray(); byte[] hash = Sha256.Hash(transactionRaw); string signBase64 = transactionLoad1.Signature[0].ToBase64(); byte[] byteArray = transactionLoad1.Signature[0].ToByteArray(); bool isSignatureValidFromBytes = new ECSigner().IsSignatureValidFromBytes(hash, byteArray, publicKeyOwner); }
public void getTransactionFromTestNetTesst() { Wallet.WalletClient wallet = GetMainNetWalletClient; // wallet.tra byte[] hashTransaction = StringHelper.HexStringToByteArray("d2e635f7c2d85cbcd343721047447b122a3c19e86f30651d8ec6ee76f744d065"); BytesMessage bytesMessage = new BytesMessage(); bytesMessage.Value = ByteString.CopyFrom(hashTransaction); // Transaction transactionLoad = wallet.GetTransactionByIdAsync(bytesMessage).GetAwaiter().GetResult(); // Transaction transactionLoad = wallet.GetTransactionByIdAsync(bytesMessage).GetAwaiter().GetResult(); NodeList nodeList = wallet.ListNodes(GetEmptyMessage); Block result = wallet.GetNowBlockAsync(GetEmptyMessage).GetAwaiter().GetResult(); //TK4BAeF72P3gop24RsoqPJynWgBBDv9fXX var keyTriple = new KeyTriple("B7E85CA5910922C49DCCB92EE48DFEC13A60674845CB7152C86B88F31DA6DC67"); byte[] addressWallet = keyTriple.GetAddressWallet(TypeNet.Main); string encode = Base58.Encode(addressWallet); Account account = new Account(); account.Address = ByteString.CopyFrom(addressWallet); Account account1 = wallet.GetAccountAsync(account).GetAwaiter().GetResult(); // new WalletExtension byte[] hashTransaction1 = StringHelper.HexStringToByteArray("a7e974c6e69fb7741bf5e08de8a2d8f6617826c59422b440de22e0612b03c393"); BytesMessage bytesMessage1 = new BytesMessage(); bytesMessage1.Value = ByteString.CopyFrom(hashTransaction1); Transaction transactionLoad1 = wallet.GetTransactionByIdAsync(bytesMessage1).GetAwaiter().GetResult(); TransferContract transferContract = TransferContract.Parser.ParseFrom(transactionLoad1.RawData.Contract[0].Parameter.Value.ToByteArray()); }
public void Main3Test() { Wallet.WalletClient wallet = GetMainNetWalletClient; var keyTriple = new KeyTriple("B7E85CA5910922C49DCCB92EE48DFEC13A60674845CB7152C86B88F31DA6DC67"); byte[] hashTransaction1 = StringHelper.HexStringToByteArray("a7e974c6e69fb7741bf5e08de8a2d8f6617826c59422b440de22e0612b03c393"); BytesMessage bytesMessage1 = new BytesMessage(); bytesMessage1.Value = ByteString.CopyFrom(hashTransaction1); Transaction transactionLoad1 = wallet.GetTransactionByIdAsync(bytesMessage1).GetAwaiter().GetResult(); TransferContract transferContract = TransferContract.Parser.ParseFrom(transactionLoad1.RawData.Contract[0].Parameter.Value.ToByteArray());; }
public void ValidateTransactionTest() { Wallet.WalletClient wallet = GetMainNetWalletClient; byte[] hashTransaction1 = StringHelper.HexStringToByteArray("a7e974c6e69fb7741bf5e08de8a2d8f6617826c59422b440de22e0612b03c393"); BytesMessage bytesMessage1 = new BytesMessage(); bytesMessage1.Value = ByteString.CopyFrom(hashTransaction1); Transaction signedTransaction = wallet.GetTransactionByIdAsync(bytesMessage1).GetAwaiter().GetResult(); Assert.IsTrue(signedTransaction.Signature.Count == signedTransaction.RawData.Contract.Count); RepeatedField <Transaction.Types.Contract> listContract = signedTransaction.RawData.Contract; byte[] hash = Sha256.Hash(signedTransaction.RawData.ToByteArray()); int count = signedTransaction.Signature.Count; if (count == 0) { Assert.Fail(); } for (int i = 0; i < count; ++i) { try { Transaction.Types.Contract contract = listContract[i]; TransferContract transferContract = TransferContract.Parser.ParseFrom(signedTransaction.RawData.Contract[i].Parameter.Value.ToByteArray()); byte[] owner = transferContract.OwnerAddress.ToByteArray(); signedTransaction.Signature[i].ToByteArray(); string signatureBase64 = Base64.ToBase64String(signedTransaction.Signature[i].ToByteArray()); byte[] address = signatureToAddress(hash, signatureBase64); if (!Arrays.AreEqual(owner, address)) { Assert.Fail(); } } catch (Exception e) { e.ToString(); Assert.Fail(); } } Assert.IsTrue(true); }
public void CalcTransactionIdTest() { Wallet.WalletClient wallet = GetMainNetWalletClient; // BytesMessage bytesMessage = BytesMessage.Parser.ParseFrom(hexStringToByteArray);; // Transaction byIdAsync = wallet.GetTransactionByIdAsync(bytesMessage).GetAwaiter().GetResult(); string transactionHashId = "f5eea816a16b1907f8b5c6394e133f285001585ce07f657240701511436ba836"; BytesMessage bytesMessage = new BytesMessage(); bytesMessage.Value = ByteString.CopyFrom(transactionHashId.FromHexToByteArray2()); Transaction transaction = wallet.GetTransactionByIdAsync(bytesMessage).GetAwaiter().GetResult(); var hashTransaction = new TransactionHelper().GetTransactionHash(transaction); string hashTransactionToHex = hashTransaction.ToHexString2(); Assert.AreEqual(transactionHashId, hashTransactionToHex); }