ido: port "CldIdo00" signature + announcement permanentLiquidityMinFee
Sync the IDO indexer to libriften 48aa1f7 (+ follow-ups): - IDO_SIGNATURE 20->10 bytes: [0x08 "CldIdo00" 0x75] (was OP_PUSH18 "CauldronIdo-2026Q2"). The separate "CauldronIdo0" announcement signature is folded into the same 8 raw bytes, so IDO_PREINIT_ANNOUNCEMENT_SIGNATURE = 6a 4c b9 + "CldIdo00"; is_preinit_broadcast is now length-agnostic. Electrum mempool filters track automatically (they reference the constants). - Recompile the 3 affected contracts from templates: IDO initiator 233->231, IDO preinit 1469->1465, offering launcher 630->628. IDO_POSTLAUNCH_CONTRACT and the other offering contracts are byte-identical and left as-is. - Announcement OP_RETURN carries permanentLiquidityMinFee as a 2-byte field at data[166..168]; mainData is now 185 bytes. Read minFee from the announcement rather than the (unreadable) postlaunch copy. Fix the source of the two "free" postlaunch params: - Output #7 (ido initiator bytecode storage) is P2SH32, so the partial bytecode cannot be read back from it. Drop the impossible extraction (extract_params_from_partial_ido_initiator_bytecode + PartialPostlaunchExtractedParams). extract_data_from_storage_script_ with_data_and_size is kept for its valid callers (revealed redeem scripts, bare bcmr storages). - orbPoolParamsCategory now comes from the ORB IdoParams NFT commitment (output #10). The commitment parse is moved above the params construction so the value is available; the now-tautological orbPoolParamsCategory vs NFT check is removed. - Verification is the existing output #7 rebuild: build the expected bytecode from the announcement values plus the NFT-sourced orbPoolParamsCategory, hash to P2SH32, and compare. Since minFee is a 2-byte announcement field it always fits the postlaunch's 2-byte push, so build_partial_postlaunch_bytecode stays infallible. - Tests: preinit_detect -> legacy_preinit_announcement_not_detected (legacy fixture must no longer be detected under the new signature); replace the extraction round-trip test with a structural check of the partial postlaunch bytecode layout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
15c1b034b5
commit
eb10a8dc70
1 changed files with 120 additions and 186 deletions
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue