public void DoTransactionTest() { MicroCashAddress address1 = new MicroCashAddress("micro(QSM3PKS3EOZBUZO4A)cash"); MicroCashAddress address2 = new MicroCashAddress("micro(IZ2P65UBDJKTV6ZIN)cash"); MicroCashAddress address3 = new MicroCashAddress("micro(R7MEB3HTYHB55XLO2)cash"); MicroCashAddress address4 = new MicroCashAddress("micro(JZBHXGUIISIID5JWS)cash"); try { //feed the 3 seed accounts SendTX(m_ThinUser.m_Accounts[0], address2.GetAddressBytes(), 50); SendTX(m_ThinUser.m_Accounts[0], address3.GetAddressBytes(), 50); SendTX(m_ThinUser.m_Accounts[0], address4.GetAddressBytes(), 50); //send 50 to #3 so it has 100 SendTX(m_ThinUser.m_Accounts[1], address3.GetAddressBytes(), 50); //send 100 to #4 so it has 150 SendTX(m_ThinUser.m_Accounts[2], address4.GetAddressBytes(), 100); //send 50 back to #2 and #3 SendTX(m_ThinUser.m_Accounts[3], address2.GetAddressBytes(), 50); SendTX(m_ThinUser.m_Accounts[3], address3.GetAddressBytes(), 50); //send back SendTX(m_ThinUser.m_Accounts[1], address1.GetAddressBytes(), 50); SendTX(m_ThinUser.m_Accounts[2], address1.GetAddressBytes(), 50); SendTX(m_ThinUser.m_Accounts[3], address1.GetAddressBytes(), 50); } catch (Exception exception) { MessageBox.Show(exception.Message); } }
internal SendTxResult SendTx(MicroCashAddress address, double amount, byte[] info) { MicroCashTransaction tx = new MicroCashTransaction(); Array.Copy(m_KeyPair.PublicKeyBytes, 1, tx.m_Extra1, 0, 64); //this isnt always sent, but may as well just copy it tx.m_dwAddressID = this.AddressId; if (tx.m_dwAddressID == 0) { tx.m_dwType = 1; } tx.m_FromAddress = m_KeyPair.GetAddressBytes(); tx.m_RecvAddress = address.GetAddressBytes(); tx.m_qAmount = (Int64)(amount * 10000); if (info != null) { int nLen = info.Length; if (nLen > 8) nLen = 8; for (int x = 0; x < 8; x++) tx.m_Info[x] = 0; Array.Copy(info, tx.m_Info, nLen); } byte[] hash = tx.GetHash(false); //string s = MicroCashFunctions.ToHex(hash); tx.m_Signature = m_KeyPair.Sign(hash); MicroCashRpcClient mcrpc = new MicroCashRpcClient(GlobalSettings.RpcUrl); SendTransactionRpcResponse sendtx = mcrpc.SendTransaction(MicroCashHelper.ToHex(tx.GetByteBuffer(true))); SendTxResult result = new SendTxResult(); result.IsSent = sendtx.sent; result.ErrorMessage = mcrpc.ErrorMessage; return result; }