Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        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);
        }