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; }
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)); }
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)); }
public Task <BitcoinTXSkeleton> CreateTransaction([FromBody] BitcoinTX transaction) { return(_service.CreateTransactionAsync(transaction)); }