예제 #1
0
    virtual void startInput(
        const uint8_t *p
    ) {
        if(dump) {
            printf(
                "    input[%" PRIu64 "] = {\n\n",
                nbInputs++
            );

            static uint256_t gNullHash;
            LOAD(uint256_t, upTXHash, p);
            LOAD(uint32_t, upOutputIndex, p);
            LOAD_VARINT(inputScriptSize, p);
            showScript(p, inputScriptSize, 0, "        ");

            isGenTX = (0==memcmp(gNullHash.v, upTXHash.v, sizeof(gNullHash)));
            if(isGenTX) {
                uint64_t reward = getBaseReward(currBlock);
                printf("        generation transaction\n");
                printf("        based on block height, reward = %.8f\n", satoshisToNormaForm(reward));
                printf("        hex dump of coinbase follows:\n\n");
                canonicalHexDump(p, inputScriptSize, "        ");
                valueIn += reward;
            }
        }
    }
예제 #2
0
    // Called when a TX input is encountered
    virtual void startInput(
        const uint8_t *p
    ) {
        printf(
            "%sinput%d = {\n",
            spaces,
            (int)inputId
        );
        push();

        static uint256_t gNullHash;
        LOAD(uint256_t, upTXHash, p);
        LOAD(uint32_t, upOutputIndex, p);
        LOAD_VARINT(inputScriptSize, p);

        printf("%sscript = '\n", spaces);
            pop();
                showScript(p, inputScriptSize, 0, (const char *)spaces);
            push();
        printf("%s'\n", spaces);

        p += inputScriptSize;
        LOAD(uint32_t, sequence, p);
        printf("%snsequence = %" PRIu32 "\n",spaces, sequence);

        isCoinBase = (0==memcmp(gNullHash.v, upTXHash.v, sizeof(gNullHash)));
        if(isCoinBase) {
            uint64_t value = getBaseReward(currBlock);
            printf("%sisCoinBase = true\n", spaces);
            printf(
                "%svalue = %" PRIu64 " # %.08f\n",
                spaces,
                value,
                satoshisToNormaForm(value)
            );
            printf("%scoinBase = '\n", spaces);
            push();
                canonicalHexDump(
                    p,
                    inputScriptSize,
                    (const char *)spaces
                );
            pop();
            printf("%s'\n", spaces);
        }
    }
예제 #3
0
파일: csv.cpp 프로젝트: Devba/blockparser
 virtual void startInput(
     const uint8_t *p
 )
 {
     if (active)
     {
         static uint256_t gNullHash;
         LOAD(uint256_t, upTXHash, p);
         if (0==memcmp(gNullHash.v, upTXHash.v, sizeof(gNullHash))) {
             genTx = 1;
             uint64_t reward = getBaseReward(blkID);
             totalTxInput += reward;
         }
         else
         {
             genTx = 0;
         }
     }
 }