public BlockCypherBitcoinTX(BitcoinTX tx)
 {
     if (tx == null)
     {
         return;
     }
     base.BlockHeight   = tx.BlockHeight;
     base.Hash          = tx.Hash;
     base.Addresses     = tx.Addresses;
     base.Total         = tx.Total;
     base.Fees          = tx.Fees;
     base.Size          = tx.Size;
     base.Preference    = tx.Preference;
     base.RelayedBy     = tx.RelayedBy;
     base.Ver           = tx.Ver;
     base.LockTime      = tx.LockTime;
     base.Confirmations = tx.Confirmations;
     BlockCypherInputs  = tx.Inputs;
     BlockCypherOutputs = tx.Outputs;
     base.OptInRbf      = tx.OptInRbf;
     base.Confidence    = tx.Confidence;
     base.Confirmed     = tx.Confirmed;
     base.ReceiveCount  = tx.ReceiveCount;
     base.ChangeAddress = tx.ChangeAddress;
     base.BlockHash     = tx.BlockHash;
     base.BlockIndex    = tx.BlockIndex;
     base.DataProtocol  = tx.DataProtocol;
     base.Hex           = tx.Hex;
 }
Exemple #2
0
        public async Task TestBitcoinTest()
        {
            var service = factory.GetService(CoinTypes.Bitcoin, true);

            var blockchain = await service.GetBlockchainInfoAsync();

            Log.Debug($"Block Height: {blockchain.Height}");
            Assert.True(blockchain.Height > 0);

            var addressRecord = await service.GetBalanceAsync(BITCOIN_TESTNET_ADDRESS_1);

            Log.Debug($"Balance: {addressRecord.Balance}");
            Assert.True(addressRecord.Balance > 0);
            Assert.Equal(addressRecord.Address, BITCOIN_TESTNET_ADDRESS_1);

            var trans = await service.GetTransactionsAsync(BITCOIN_TESTNET_ADDRESS_1, 0, blockchain.Height);

            var count = trans.Count();

            Assert.True(count > 0);
            Assert.Contains(trans, t => t.Value > 0);
            foreach (var tranHash in trans.Select(t => t.Hash))
            {
                var trx = await service.GetTransactionAsync(tranHash);

                Log.Debug(JsonConvert.SerializeObject(trx));
                Assert.Equal(trx.Hash, tranHash);
                Assert.True(trx.Inputs.Count > 0);
                Assert.True(trx.Outputs.Count > 0);
            }
            var tx = new BitcoinTX()
            {
                Inputs = new List <BitcoinTXInput> {
                    new BitcoinTXInput {
                        Addresses = new List <string> {
                            BITCOIN_TESTNET_ADDRESS_1
                        }
                    }, new BitcoinTXInput {
                        Addresses = new List <string> {
                            BITCOIN_TESTNET_ADDRESS_2
                        }
                    }
                },
                Outputs = new List <BitcoinTXOutput> {
                    new BitcoinTXOutput {
                        Addresses = new List <string> {
                            BITCOIN_TESTNET_ADDRESS_2
                        }, Value = 1000
                    }
                },
                ChangeAddress = BITCOIN_TESTNET_ADDRESS_1
            };
            var txResult = await service.CreateTransactionAsync(tx);

            foreach (var i in txResult.Tx.Inputs)
            {
                Log.Debug($"Input : {JsonConvert.SerializeObject(i)}");
            }
            foreach (var o in txResult.Tx.Outputs)
            {
                Log.Debug($"Output : {JsonConvert.SerializeObject(o)}");
            }
            Assert.Contains(txResult.Tx.Inputs, t => t.Addresses.Any(a => a.Equals(BITCOIN_TESTNET_ADDRESS_1)));
            Assert.Contains(txResult.Tx.Outputs, t => t.Addresses.Any(a => a.Equals(BITCOIN_TESTNET_ADDRESS_1)));
        }
 public async Task <BitcoinTXSkeleton> CreateTransactionAsync(BitcoinTX transaction)
 {
     return(await Post <BitcoinTX, BitcoinTXSkeleton>($"/v1/{_coinType}/{_network}/newtransaction", transaction));
 }
Exemple #4
0
        public async Task <BitcoinTXSkeleton> CreateTransactionAsync(BitcoinTX transaction)
        {
            var tx = new BlockCypherBitcoinTX(transaction);

            return(await Post <BlockCypherBitcoinTX, BlockCypherBitcoinTXSkeleton>($"/v1/{_coinType}/{_network}/txs/new?token={_token}", tx));
        }
Exemple #5
0
 public Task <BitcoinTXSkeleton> CreateTransaction([FromBody] BitcoinTX transaction)
 {
     return(_service.CreateTransactionAsync(transaction));
 }