public void makeTransaction(SWIGTYPE_p_Transaction__Handle handle, coin__Transaction ptx) { var s = new cipher_SecKey(); var ux = new coin__UxOut(); makeUxOutWithSecret(ux, s); makeTransactionFromUxOut(ux, s, handle, ptx); }
public void TestTransactionSerialization() { var handle = new_Transaction__Handlep(); var tx = makeTransaction(handle); var b = new GoSlice(); var err = SKY_coin_Transaction_Serialize(handle, b); Assert.AreEqual(err, SKY_OK); var handle2 = new_Transaction__Handlep(); err = SKY_coin_TransactionDeserialize(b, handle2); Assert.AreEqual(err, SKY_OK); var tx2 = new coin__Transaction(); err = SKY_coin_GetTransactionObject(handle2, tx2); Assert.AreEqual(err, SKY_OK); Assert.AreEqual(tx.isEqual(tx2), 0); }
public SWIGTYPE_p_Transactions__Handle makeTransactions(int n) { var handle = skycoin.skycoin.new_Transactions__HandlePtr(); skycoin.skycoin.SKY_coin_Create_Transactions(handle); for (int i = 0; i < n; i++) { var thandle = makeEmptyTransaction(); var ptx = new coin__Transaction(); makeTransaction(thandle, ptx); skycoin.skycoin.SKY_coin_Transactions_Add(handle, thandle); } var count = skycoin.skycoin.new_Gointp(); skycoin.skycoin.SKY_coin_Transactions_Length(handle, count); Assert.AreEqual(n, skycoin.skycoin.Gointp_value(count)); return(handle); }
public void makeTransactionFromUxOut(coin__UxOut ux, cipher_SecKey s, SWIGTYPE_p_Transaction__Handle handle, coin__Transaction ptx) { handle = makeEmptyTransaction(); var h = new cipher_SHA256(); Assert.AreEqual(skycoin.skycoin.SKY_cipher_SecKey_Verify(s), skycoin.skycoin.SKY_OK); var err = skycoin.skycoin.SKY_coin_UxOut_Hash(ux, h); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); var r = new uint(); r = skycoin.skycoin.SKY_coin_Transaction_PushInput(handle, h); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); err = skycoin.skycoin.SKY_coin_Transaction_PushOutput(handle, makeAddress(), (ulong)1e6, 50); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); err = skycoin.skycoin.SKY_coin_Transaction_PushOutput(handle, makeAddress(), (ulong)5e6, 50); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); var seckeys = new cipher_SecKeys(); seckeys.allocate(1); seckeys.setAt(0, s); err = skycoin.skycoin.SKY_coin_Transaction_SignInputs(handle, seckeys); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); err = skycoin.skycoin.SKY_coin_Transaction_UpdateHeader(handle); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); err = skycoin.skycoin.SKY_coin_GetTransactionObject(handle, ptx); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); err = skycoin.skycoin.SKY_coin_Transaction_Verify(handle); Assert.AreEqual(err, skycoin.skycoin.SKY_OK); }