Где код, делающий OP_RETURN стандартным типом транзакции?

Я просматриваю историю биткойнов на github. Я пытаюсь найти коммит, в котором OP_RETURN стал стандартным tx. Это было включено в журнал изменений для Bitcoin Core 0.90. Любая помощь будет оценена по достоинству.

Я просматриваю Script Solver и вижу, где OP_RETURN включен как тип в шаблон, но не вижу, где он возвращает true для любого случая нулевых данных.

Спасибо.

Ответы (2)

Это PR, который сделал стандартными выходные данные OP_RETURN:

https://github.com/bitcoin/bitcoin/pull/2738

Коммит:

https://github.com/jgarzik/bitcoin/commit/a79342479f577013f2fd2573fb32585d6f4981b3

Текущий код:

https://github.com/bitcoin/bitcoin/blob/v0.11.0/src/script/standard.cpp#L56-L58

    if (GetBoolArg("-datacarrier", true))
        mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN << OP_SMALLDATA));
    mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN));

Здесь:

bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, vector<vector<unsigned char> >& vSolutionsRet)
[...]
    // Empty, provably prunable, data-carrying output
    if (GetBoolArg("-datacarrier", true))
        mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN << OP_SMALLDATA));
    mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN));

https://github.com/bitcoin/bitcoin/blob/ddd8d80c63182aefea56abf743bb9199d9602544/src/script/standard.cpp#L40