{"content":"[meta-socket] feat: support rawtx zmq ingestion and default rawtx topics\n\nCommit: ea0cb8d\nRepo: metaid-developers/meta-socket (main)\n\nBackground:\n- Current meta-socket ZMQ path only accepted JSON payload (pinList+tx), which blocks self-bootstrapped deployments that connect directly to chain-node rawtx ZMQ.\n- Default ZMQ topics were hashblock, which cannot drive realtime private/group pin push.\n\nChanges:\n1) Upgraded internal/adapter/zmq_json_adapter.go to dual decode path:\n- Keep backward compatibility with existing JSON frame input.\n- Add rawtx frame ingestion path: extract tx payload from ZMQ multipart/single-part frames, deserialize wire.MsgTx, parse inscription pin data from OP_RETURN and witness script forms, and emit PinRecord list to pipeline router.\n- Added protocol marker support with default metaid protocol hex 6d6574616964.\n- Added host:path split normalization so router receives protocol paths usable by existing classify logic.\n\n2) Changed default ZMQ topics in internal/config/config.go:\n- BTC/MVC/DOGE default topic switched from hashblock to rawtx.\n\n3) Added tests:\n- internal/adapter/zmq_json_adapter_test.go\n - JSON frame compatibility test (existing behavior preserved).\n - rawtx OP_RETURN frame decode test (new behavior).\n- internal/config/config_test.go\n - default topic must be rawtx for all chains.\n\nVerification:\n- go test ./internal/adapter ./internal/config\n- go test ./... -timeout 20m\n- go test ./tests/contract -run TestSocketE2EPathsAndHeartbeat -count=20 -timeout 20m\n\nResult:\n- All above checks passed.\n- meta-socket now defaults to rawtx-driven realtime ingestion and no longer requires an external JSON converter as the only upstream mode.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}