Page MenuHomePhabricator

[Chronik] Fix: Missing entry for "burned" NFT1 GROUP token for NFT1 CHILD GENESIS txs
ClosedPublic

Authored by tobias_ruck on Jan 15 2024, 23:12.

Details

Summary

NFT1 CHILD GENESIS txs require a NFT1 GROUP token to be "burned" in the first input.

Currently, we don't create an entry for those, which results in a tx with token inputs that don't have a corresponding entry, which we don't want.

This diff uses the bare_burn map to add an entry to fix this.

Test Plan

cargo test -p bitcoinsuite-slp --test test_verify_slp_genesis

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

tobias_ruck updated this revision to Diff 44211.

push right branch

Tail of the build log:

    Checking bitcoinsuite-core v0.1.0 (/work/chronik/bitcoinsuite-core)
    Checking tokio v1.32.0
   Compiling link-cplusplus v1.0.9
   Compiling backtrace v0.3.68
   Compiling cxx v1.0.106
   Compiling bindgen v0.65.1
    Checking cobs v0.2.3
    Checking data-encoding v2.4.0
    Checking try-lock v0.2.4
    Checking utf-8 v0.7.6
    Checking http-body v0.4.5
    Checking tower-layer v0.3.2
    Checking ryu v1.0.15
    Checking tungstenite v0.20.0
    Checking want v0.3.1
    Checking stable-eyre v0.2.2
    Checking postcard v1.0.6
    Checking pin-project v1.1.3
    Checking abc-rust-error v0.1.0 (/work/chronik/abc-rust-error)
    Checking socket2 v0.4.9
    Checking mime v0.3.17
    Checking topo_sort v0.4.0
    Checking bitcoinsuite-slp v0.1.0 (/work/chronik/bitcoinsuite-slp)
    Checking smallvec v1.11.2
    Checking bimap v0.6.3
   Compiling prost v0.11.9
    Checking seahash v4.1.0
    Checking httpdate v1.0.3
    Checking axum-core v0.3.4
    Checking parking_lot_core v0.9.9
    Checking serde_json v1.0.105
    Checking serde_urlencoded v0.7.1
    Checking futures-executor v0.3.28
   Compiling prost-types v0.11.9
    Checking serde_path_to_error v0.1.14
   Compiling pyo3 v0.20.2
    Checking base64 v0.21.2
    Checking sync_wrapper v0.1.2
    Checking matchit v0.7.2
    Checking futures v0.3.28
    Checking parking_lot v0.12.1
    Checking memoffset v0.9.0
    Checking unindent v0.2.3
   Compiling prost-build v0.11.9
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
   Compiling chronik-lib v0.1.0 (/work/chronik/chronik-lib)
    Checking tokio-tungstenite v0.20.0
    Checking tower v0.4.13
    Checking hyper v0.14.27
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking axum v0.6.20
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
    Checking chronik-http v0.1.0 (/work/chronik/chronik-http)
    Finished dev [unoptimized + debuginfo] target(s) in 4m 22s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

    Checking cobs v0.2.3
    Checking utf-8 v0.7.6
    Checking http v0.2.9
    Checking bitcoinsuite-core v0.1.0 (/work/chronik/bitcoinsuite-core)
    Checking tokio v1.32.0
   Compiling link-cplusplus v1.0.9
   Compiling backtrace v0.3.68
   Compiling cxx v1.0.106
    Checking tower-layer v0.3.2
    Checking data-encoding v2.4.0
   Compiling bindgen v0.65.1
    Checking ryu v1.0.15
    Checking http-body v0.4.5
    Checking tungstenite v0.20.0
    Checking postcard v1.0.6
    Checking want v0.3.1
    Checking pin-project v1.1.3
    Checking socket2 v0.4.9
    Checking smallvec v1.11.2
    Checking bitcoinsuite-slp v0.1.0 (/work/chronik/bitcoinsuite-slp)
    Checking stable-eyre v0.2.2
    Checking abc-rust-error v0.1.0 (/work/chronik/abc-rust-error)
    Checking mime v0.3.17
    Checking bimap v0.6.3
    Checking seahash v4.1.0
    Checking httpdate v1.0.3
    Checking topo_sort v0.4.0
    Checking parking_lot_core v0.9.9
    Checking axum-core v0.3.4
    Checking serde_urlencoded v0.7.1
    Checking serde_json v1.0.105
    Checking futures-executor v0.3.28
   Compiling prost v0.11.9
    Checking serde_path_to_error v0.1.14
   Compiling pyo3 v0.20.2
   Compiling prost-types v0.11.9
    Checking sync_wrapper v0.1.2
    Checking base64 v0.21.2
    Checking matchit v0.7.2
    Checking futures v0.3.28
    Checking parking_lot v0.12.1
    Checking memoffset v0.9.0
    Checking unindent v0.2.3
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
   Compiling chronik-lib v0.1.0 (/work/chronik/chronik-lib)
   Compiling prost-build v0.11.9
    Checking hyper v0.14.27
    Checking tower v0.4.13
    Checking tokio-tungstenite v0.20.0
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking axum v0.6.20
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
    Checking chronik-http v0.1.0 (/work/chronik/chronik-http)
    Finished dev [unoptimized + debuginfo] target(s) in 4m 17s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

    Checking cobs v0.2.3
    Checking http v0.2.9
    Checking bitcoinsuite-core v0.1.0 (/work/chronik/bitcoinsuite-core)
    Checking tokio v1.32.0
    Checking ryu v1.0.15
   Compiling link-cplusplus v1.0.9
   Compiling backtrace v0.3.68
   Compiling cxx v1.0.106
    Checking data-encoding v2.4.0
    Checking try-lock v0.2.4
   Compiling bindgen v0.65.1
    Checking tower-layer v0.3.2
    Checking want v0.3.1
    Checking http-body v0.4.5
    Checking tungstenite v0.20.0
    Checking postcard v1.0.6
    Checking pin-project v1.1.3
    Checking socket2 v0.4.9
    Checking bimap v0.6.3
    Checking stable-eyre v0.2.2
    Checking bitcoinsuite-slp v0.1.0 (/work/chronik/bitcoinsuite-slp)
    Checking abc-rust-error v0.1.0 (/work/chronik/abc-rust-error)
    Checking topo_sort v0.4.0
    Checking seahash v4.1.0
    Checking mime v0.3.17
    Checking httpdate v1.0.3
    Checking smallvec v1.11.2
   Compiling prost v0.11.9
    Checking serde_json v1.0.105
    Checking serde_urlencoded v0.7.1
    Checking axum-core v0.3.4
    Checking parking_lot_core v0.9.9
    Checking futures-executor v0.3.28
    Checking serde_path_to_error v0.1.14
   Compiling pyo3 v0.20.2
   Compiling prost-types v0.11.9
    Checking matchit v0.7.2
    Checking sync_wrapper v0.1.2
    Checking base64 v0.21.2
    Checking futures v0.3.28
    Checking parking_lot v0.12.1
    Checking memoffset v0.9.0
    Checking unindent v0.2.3
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
   Compiling chronik-lib v0.1.0 (/work/chronik/chronik-lib)
   Compiling prost-build v0.11.9
    Checking tokio-tungstenite v0.20.0
    Checking tower v0.4.13
    Checking hyper v0.14.27
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.6.20
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
    Checking chronik-http v0.1.0 (/work/chronik/chronik-http)
    Finished dev [unoptimized + debuginfo] target(s) in 4m 16s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::from_be_bytes (line 123) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::from_be_hex (line 318) ... ok
test chronik/bitcoinsuite-core/src/bytes.rs - bytes::read_bytes (line 19) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::digest (line 76) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::from_le_slice (line 242) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::from_le_hex (line 289) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::hex_be (line 190) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::hex_le (line 168) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_be_bytes (line 150) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_be_vec (line 225) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_le_vec (line 208) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_le_bytes (line 138) ... ok
test chronik/bitcoinsuite-core/src/script/opcode.rs - script::opcode::opcode_number_to_name (line 86) ... ok
test chronik/bitcoinsuite-core/src/script/opcode.rs - script::opcode::Opcode (line 12) ... ok
test chronik/bitcoinsuite-core/src/script/opcode.rs - script::opcode::Opcode::number (line 75) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey (line 13) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey::array (line 47) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey::as_slice (line 37) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey::hex (line 57) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey_variant.rs - script::pubkey_variant::PubKeyVariant (line 14) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::bytecode (line 126) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::is_opreturn (line 159) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2pk (line 76) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2pk_uncompressed (line 98) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2pkh (line 36) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::hex (line 148) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2sh (line 56) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::iter_ops (line 174) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::to_vec (line 137) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::variant (line 223) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::freeze (line 135) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_opcodes (line 28) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_bytecode (line 44) ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey::array (line 50) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_slp_pushdata (line 116) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::with_capacity (line 17) ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey (line 13) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_pushdata (line 58) ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey::as_slice (line 40) ... ok
test chronik/bitcoinsuite-core/src/tx/tx.rs - tx::tx::Tx (line 34) - compile fail ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey::hex (line 60) ... ok
test chronik/bitcoinsuite-core/src/script/variant.rs - script::variant::ScriptVariant::from_type_and_payload (line 94) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::new (line 47) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::as_bytes (line 89) ... ok
test chronik/bitcoinsuite-core/src/script/variant.rs - script::variant::ScriptVariant::to_script (line 108) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::from_tx (line 59) ... ok
test chronik/bitcoinsuite-core/src/tx/tx.rs - tx::tx::Tx (line 14) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::to_bytes (line 74) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::to_vec (line 104) ... ok

test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.88s

   Doc-tests bitcoinsuite-slp

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1
This revision is now accepted and ready to land.Jan 16 2024, 07:57