Пример #1
0
        private void FetchBlockHeaderByHashTxSizes(byte[] blockHash, FetchBlockHeaderByHashTxsSizeHandler handler)
        {
            var managedHash = new hash_t
            {
                hash = blockHash
            };
            IntPtr contextPtr = CreateContext(handler, managedHash);

            ChainNative.chain_fetch_block_header_by_hash_txs_size(nativeInstance_, contextPtr, managedHash, internalFetchBlockHeaderByHashTxsSizeHandler_);
        }
Пример #2
0
        private static void FetchBlockHeaderByHashTxsSizeInternalHandler(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 <FetchBlockHeaderByHashTxsSizeHandler, hash_t>;
                FetchBlockHeaderByHashTxsSizeHandler handler = context.Item1;
                handler(error, new Header(blockHeader), blockHeight, new HashList(txHashes), blockSerializedSize);
            }
            finally
            {
                contextHandle.Free();
            }
        }
Пример #3
0
 public static extern void chain_fetch_block_header_by_hash_txs_size(IntPtr chain, IntPtr ctx, hash_t hash, FetchBlockHeaderByHashTxsSizeHandler handler);