go-blockchain/testdata/v2_spending_tx_mixin0.hex
Claude a803fd1794
feat(consensus): V2 Zarcanum signature and proof verification
Add full V2 transaction verification pipeline: parse SignaturesRaw variant
vector into structured ZC signature data, verify CLSAG GGX ring signatures
per ZC input, verify BPP range proofs, and verify BGE asset surjection
proofs with correct ring construction (mul8 point arithmetic).

Fix three wire format bugs that caused V2 parsing failures:
- RefTypeGlobalIndex (tag 0x1A) uses 8-byte LE, not varint
- Raw uint64_t variant (tagUint64) uses 8-byte LE, not varint
- zarcanum_tx_data_v1 fee uses FIELD() → 8-byte LE, not VARINT_FIELD()

Add cn_point_sub to C++ bridge and Go wrapper for BGE ring construction.
Add GetZCRingOutputs to chain for fetching ZC ring member data.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-22 00:06:10 +00:00

1 line
No EOL
6.2 KiB
Text

030125101a01000000000000001acf090000000000001ac3020000000000001a44010000000000001a20020000000000001ae2000000000000001a74000000000000001a02000000000000001a48000000000000001a24000000000000001ab3000000000000001a2d000000000000001ae0000000000000001ab2000000000000001a6c000000000000001a8200000000000000aa39d0ede3e4721f05a54ce47919ef6ae1cf37a84aecd9b773feedb23b9a0422000516f9d8895614117e61b4a4f6366e058d6fa920c50390d31f7c5c9f4a4550e38e641700000b0222880b029eda2700e40b5402000000022660808c0edc6cf11fb51df6861b02b72ed708fe386adb83a5b7b656cd7a70e74aaebc0715019d359ba9cb58b60be4d2e18884c91af2dbdb63c55864e9253610c74b0d1a47697c2efb614f36dd1b224f782fbb428585f3829f139e336fe71f55c274c32d3eaafafc623bf483e858d42e8bf4ec7df064ada2e34934469cff6b626838e2ae4b0661e9660026d7094ba2c926c23c9c9cf98947c7d2c711b4ad811dea0c86a2cadbc32eab366c634a42449604dba96520470239fcf0492b6d471f136b691b7e88d3326f054e09489412048894af3b8d3efc74660b6dfb509781dc960e6865da1e62223a67fe4574c32d3eaafafc623bf483e858d42e8bf4ec7df064ada2e34934469cff6b62684d999a3b2a4e8d5f000500012b231c7700001cbbe9b248734d3c9e8f4af220bf2250e1a0a68e677a793fe708fe886da8bfaed1631797600d31d29d18826d0f44b7e5b37f7fc918cb423915db5da13a60777d43adce8ce32aa4c94708863b9af8ae2019bf177af1136097286c001037adf4b70d05b11e4bf38ad16e94ac1a1677e46807492a846895d09fca35dd0f7f83e651c5ccf9646eb733155c4b50979615b68a4b3e52da99df40c766059806ba7399c1aab2ef0c9ea0fd230976f5a98f7eec4bf1c9a1c971d59a82af19a30c59df8e56f18a075dbb8255004f443aac72738d6b8f0930646c4b16edf76976027363c9fea96b8e5ae9e1508657dbdfcb4bb9417e492893ff2124edea2dd18c0311ef730ed33ae54dd821d8634f84789f0bd27060cd1af7573930328f2382c70a0a9aa4d43e42a0404f80f99576bcdcce0a5742cab74544630b2ac6b30e1eac0e41ba49ced25b1d5f5b62e06e5394f517a2264ec783bc199ceab3cd5c98911108f92a0890a408c43db14d51f5d0e89272b8856d4d17542ba2a17d81f3a418f90d175d567c91f2d2fcab13a799bcdd0bf0ff69e2134a8311c7e7a8d90b8b57950d7be94c67659fb61eeabb1acd870480a41931875ffad43299cc5f567c5d7ae6062fd484052fe1c9f956917e0c5dfaab3c5c02942fb303e36c9f4e9b47659a130224cdcf4ad12f1910ef3c053104a438d33ad92be90aa77bb1900c3e6e50a2e30ce39df4befed03c84500bfa53847700bbfdec4adcc4d160655502a00a79dfd80f54e0928657cc147d3647082fc0e2234a33546887d79744b43be23ac218b7400445bc26f8cbdef83f5b51dee7250b5e7fdbacf7ff94c6e528ec9e2075fbbab50410279ece0a3583a6ec895809faf8b524c042b1c2f64ac2c9337b26155579348e0081981b5770263dae59143afb9209d45bebf3b6ce191c3e0aebed4f3e9cc0ac02868757a233af23e4ef5c62e4fb9cc2996b2552ab776ae0c37909851509128700d460b52e262c456d912e7fc7cd11a7551f4f7f8ee61ae8a9cddc3b814c2d5e0cd1dd2781f318c71e6424f80c8f9570ce41258ff3ffe8f7e3cb03491ce438c20adbc7473da33bd5a927f595c97ee943522899275fa8a964034e69e0e7c5b3f00c84ac680c7a81b886b1205c16f69d12a552d7282c79efd4b97091dc22295f2502497f4ea18135bda07a1df6f53b527809efeba2da7a4d8bebb4d85f26adc82b05cda1b13451c1b5ef3404493f92c29a6a7584f2520161362e037b06e938cadc0b46b164a741abd133d368ce0ab6a84332252acb2c1d291f29b0bc48b83553450837e20f063fcad2a6ccdc0cb913e0e5bbe77c231bdc53e61d501bc64a4044150da8aab857c4aaad16156002e8c482369833a3b409f22afeb7b636303c0e77a60bb615fd88374bbfa8bdc75aed0dfadc74d7217580eb8bc51c8ca58245d59a39016cea66bb5f27f7ae66e7b5f5a95053a61e72ff77bce56cc57fca99bb12f5870a0d220d684dfa07e8c920a266206f06260dc3ed54d8195b75ac573085e9638d0a45f6992d818a2deddfdc0641415f1852d70ada567034fa61adbe632ab2aaba0c971f9f7066b84c0e2f4f985f2f5f9bbf64199e0f647e4570ea60d6a8680fc0818a04a087f119ee895e8b2643b3f625ab983ac2eded89d3b808fcfff8868da0f4032e02b17be8ea0c1b33e109de1efbf1e3f77e600309f7eb9a5e0fc8c15d94dc62cd31a1849b0ea916696b69e05ffec4cb7165092ccccb043d6eb18ca7ece2fff5a5fb01b9fb37f360bde541ac167112f7b3ce23a91df5702ca75cd4c924c507305976140319b34ee0a92205e9507a3d797a9454ff2a1d4867afb7122a6695fa8de4284b0027f35eaaece35b2ac9064e7e2f3f392c05951ff455952e0c512f35cd456d2b08e2600d0471096a37d15ed923a0de5ae92e4de75887b85ef6ff395efbcb92b206ef13bb1a9e73f355be6281161f785da9855d4433723f88727fabfe1c3aece20b304bdf44f17450176e6fc57dc166cf1c6d2d6e517e6bc9580da2c3b87b725b02116c901de4ba968a4142b11bfc6f21889caafb71b08a76981e7a846010e25dfb214e0517be75a4c8407fe1d498c0d6d7a1d5e2659c060d1075d3755943d40bd9014edbc30dede4471c8078471fe6c36699396c2d507d3518ed6c2e84211cd4b7be03876b74936e5bd4d16279fd50c1d52ee57f75796651cced5dfe6fc23d0bdccd087498878a0a1069f8224d93e67fee6e1fa90ac59ef384e821eb357a7b887eac08e162c5396c54a159c84fa3a6948ad72a828ab8ed9ea2d44a26de129f5dda44074630fa57d6d0137d85ebf71cf62633204c2e35b99372b82098816596c20dab0d30a5799ba6834e6dce2fcf256bb9608e8a0a43a1a4815e11f581f276a1f11e012f075a1de906a6c92d1060f230d37ec4cfcc126527d79bde551d4aa5f7730ed903dbcf4b72ad899510c3af2a1f8ef1272b3005004c83d1a78d1490331c1003def477dfe000a1e3db05a2423e4088f908c8cd67cc4c0902ca3f72057a8684ec533bff2c53b9b52a3c0f8feabea02a2f312677b76c9bc089d51628f0a8a67580f8773122af7d76701eca0590878995051da5ecf418b67bafe1da3788b3f686eacaf1e9947a3f064e5c2bdc7768615f7f6a0ae8ecd695ab7214de82579317b2cc8a660af381928344e87372d978889cab8753ca9bd21c6ac64c518f2ab21d1887e43a2307c180bb91cbab0eca9d8915f5d24ec1171d2ec760c5979d4523810382c645192694530158f103f29b09d4ea2c2e2402a9762e09c4087b2ef7154763f1de629f2d36100693123ae53e570201e39216190d542e107d92d8b4072d8d0473b18699c91847ddb7209b398f5031ff4633ebcdee7d742202e7788e765021c96f749038d22661a305f3cc62388193657d938b2d5f3579a62d18b21d946d357a2ab2ef0922c156083bfcc9640faa2ea2e15a94139f0bf93aae0d8fe2e0aefca69bcfc3dd6e655ab8c1332c32bcdb51c615f085915845156a6ded42e6931b4546d83f098f83eb5dec408c695ca67b19b67d8f35d44e075118beb6c593b2d9b82e709a22264b7b281d2801484dc0241a0c8c4369a71b5026f06e8bca7feabfb9a60da8e094a29bdc83e2f69c596d1979312e8e93337b7cec5e849ebbe86b26568f8dee3147b2b54c48a11adcb0c3f2653c70e48ad963a1dd8210b78a43ab661afeec3ddd0500a16f77be21ad812bf180f4945026b415da02b14c57654e595188c7ecf1ba580c2ce729db2eac4e36163d897c37dae278dee23e0fc3ee0f2a0bf8a9fb2368b50902cea77b4ba6398dd27990012351dbdf56656b1c2de5dc11375037b8fa048216c88f78f4d889d96e32fa26280e0f35bbe7f64ff81d2b5e5aa676961b4bf705bd450234a0c02bc9645913f1daa4c67a3381e078d33ce29ad6c4f31c388fe9ada47106d3057b6a79bc8c1f0342aa0622135230c5f39a25e0e74495e9fe9a12e581d502023d898dbe0f3cf773b07bac7f8925779ff7141cc59ead54de95c9866f3aa3580d1b6d123170af993c9ff4f13bd40d0ace9601f75bc55c7e01f738e5515e7f2706c6636898187fe96a8960e8d9779d5c2492f0e5bfe34634a2ca74fbfb3616ac0530200816d188f9710d5bb58e4c5fdd215bc4532bea60b81e4d84906fd60e286601b6c503b4f858c76329aba30e33c35842aa39a828d672b4c22dacea3b5b8d96038aa237122b1f4cbde2c9c2da0768fc5ece932748ce9b06e39493a20e4cdc0704