private void GetBlockHeaderByHashTxSizes(byte[] blockHash, GetBlockHeaderByHashTxsSizeHandler handler) { var managedHash = new hash_t { hash = blockHash }; IntPtr contextPtr = CreateContext(handler, managedHash); ChainNative.kth_chain_async_block_header_by_hash_txs_size(nativeInstance_, contextPtr, managedHash, internalGetBlockHeaderByHashTxsSizeHandler_); }
private static void GetBlockHeaderByHashTxsSizeInternalHandler(IntPtr chain, IntPtr contextPtr, ErrorCode error, IntPtr blockHeader, UInt64 blockHeight, IntPtr txHashes, UInt64 blockSerializedSize) { var contextHandle = (GCHandle)contextPtr; try { var context = contextHandle.Target as Tuple <GetBlockHeaderByHashTxsSizeHandler, hash_t>; GetBlockHeaderByHashTxsSizeHandler handler = context.Item1; handler(error, new Header(blockHeader), blockHeight, new HashList(txHashes), blockSerializedSize); } finally { contextHandle.Free(); } }
public static extern void kth_chain_async_block_header_by_hash_txs_size(IntPtr chain, IntPtr ctx, hash_t hash, GetBlockHeaderByHashTxsSizeHandler handler);