@atomicfinance/types 3.6.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -0
- package/.turbo/turbo-test.log +0 -0
- package/.yalc/@node-dlc/messaging/.nyc_output/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
- package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
- package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/index.json +1 -0
- package/.yalc/@node-dlc/messaging/README.md +24 -0
- package/.yalc/@node-dlc/messaging/__tests__/_test-utils.ts +12 -0
- package/.yalc/@node-dlc/messaging/__tests__/chain/ChainManager.spec.ts +178 -0
- package/.yalc/@node-dlc/messaging/__tests__/compatibility/dlcspecs-compatibility.spec.ts +473 -0
- package/.yalc/@node-dlc/messaging/__tests__/compatibility/rust-dlc-cross-language.spec.ts +342 -0
- package/.yalc/@node-dlc/messaging/__tests__/compatibility/true-serialization-compatibility.spec.ts +611 -0
- package/.yalc/@node-dlc/messaging/__tests__/dlc_message_test.json +155 -0
- package/.yalc/@node-dlc/messaging/__tests__/irc/IrcMessage.spec.ts +94 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/AddressCache.spec.ts +79 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/BatchFundingGroup.spec.ts +72 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/CetAdaptorSignatures.spec.ts +57 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/ContractDescriptor.spec.ts +264 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/ContractInfo.spec.ts +419 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DigitDecompositionEventDescriptor.spec.ts +59 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcAccept.spec.ts +242 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcCancel.spec.ts +42 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcClose.spec.ts +315 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcOffer.spec.ts +527 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcSign.spec.ts +118 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcTransactions.spec.ts +157 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/EnumEventDescriptor.spec.ts +50 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/EventDescriptor.spec.ts +93 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/FundingInput.spec.ts +84 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/FundingSignatures.spec.ts +83 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/NegotiationFields.spec.ts +328 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/NodeAnnouncementMessage.spec.ts +115 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAnnouncement.spec.ts +415 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAttestation.spec.ts +326 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEvent.spec.ts +143 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEventContainer.spec.ts +95 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleIdentifier.spec.ts +48 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleInfo.spec.ts +116 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderAccept.spec.ts +77 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderNegotiationFields.spec.ts +216 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderOffer.spec.ts +121 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderPositionInfo.spec.ts +75 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutCurvePiece.spec.ts +220 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutFunction.spec.ts +101 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/RoundingIntervals.spec.ts +75 -0
- package/.yalc/@node-dlc/messaging/__tests__/serialize/F64.spec.ts +260 -0
- package/.yalc/@node-dlc/messaging/__tests__/tsconfig.json +8 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/base.css +224 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/block-navigation.js +79 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/favicon.png +0 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/index.html +201 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/MessageType.ts.html +494 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainManager.ts.html +1058 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainMemoryStore.ts.html +182 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/index.html +126 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/Address.ts.html +272 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.html +141 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.ts.html +212 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/IrcMessage.ts.html +563 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/AddressCache.ts.html +302 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/BatchFundingGroup.ts.html +503 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignatures.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignaturesV0.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractDescriptor.ts.html +1040 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractInfo.ts.html +1382 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcAccept.ts.html +1865 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCancel.ts.html +251 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcClose.ts.html +986 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCloseMetadata.ts.html +443 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcIds.ts.html +281 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInfo.ts.html +323 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcMessage.ts.html +341 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcOffer.ts.html +1895 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcSign.ts.html +1142 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcTransactions.ts.html +719 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/EventDescriptor.ts.html +947 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingInput.ts.html +728 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignatures.ts.html +374 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignaturesV0.ts.html +374 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NegotiationFields.ts.html +836 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NodeAnnouncementMessage.ts.html +515 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncement.ts.html +608 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncementV0.ts.html +605 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestation.ts.html +956 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestationV0.ts.html +770 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEvent.ts.html +830 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainer.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainerV0.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventV0.ts.html +827 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifier.ts.html +314 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifierV0.ts.html +314 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfo.ts.html +1637 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfoV0.ts.html +1631 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderAccept.ts.html +557 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderIrcInfo.ts.html +380 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderMetadata.ts.html +437 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderNegotiationFields.ts.html +551 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderOffer.ts.html +1337 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderPositionInfo.ts.html +590 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutCurvePiece.ts.html +1427 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutFunction.ts.html +800 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervals.ts.html +461 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervalsV0.ts.html +482 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ScriptWitnessV0.ts.html +269 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/index.html +636 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/SerdeUtils.ts.html +1394 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/F64.ts.html +1136 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/deserializeTlv.ts.html +125 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/getTlv.ts.html +143 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/index.html +141 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/util.ts.html +179 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/validate.ts.html +182 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.css +1 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.js +2 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/sorter.js +170 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov.info +5394 -0
- package/.yalc/@node-dlc/messaging/dist/MessageType.d.ts +100 -0
- package/.yalc/@node-dlc/messaging/dist/MessageType.js +117 -0
- package/.yalc/@node-dlc/messaging/dist/MessageType.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.d.ts +50 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js +211 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.d.ts +14 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js +28 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.d.ts +11 -0
- package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js +3 -0
- package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.d.ts +48 -0
- package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js +3 -0
- package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/domain/Address.d.ts +24 -0
- package/.yalc/@node-dlc/messaging/dist/domain/Address.js +46 -0
- package/.yalc/@node-dlc/messaging/dist/domain/Address.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/index.d.ts +44 -0
- package/.yalc/@node-dlc/messaging/dist/index.js +63 -0
- package/.yalc/@node-dlc/messaging/dist/index.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.d.ts +43 -0
- package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js +116 -0
- package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.d.ts +15 -0
- package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js +51 -0
- package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.d.ts +61 -0
- package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js +113 -0
- package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.d.ts +40 -0
- package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js +67 -0
- package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.d.ts +122 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js +222 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.d.ts +135 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js +304 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.d.ts +145 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js +428 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.d.ts +31 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js +51 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.d.ts +68 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js +210 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.d.ts +44 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js +74 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.d.ts +26 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js +58 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.d.ts +31 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js +61 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.d.ts +23 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js +54 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.d.ts +131 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js +418 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.d.ts +96 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js +267 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.d.ts +69 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js +149 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.d.ts +106 -0
- package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js +209 -0
- package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.d.ts +62 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js +163 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.d.ts +36 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js +78 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.d.ts +6 -0
- package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js +3 -0
- package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.d.ts +86 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js +185 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.d.ts +57 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js +127 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.d.ts +76 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js +131 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.d.ts +68 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js +239 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.d.ts +90 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js +189 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.d.ts +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js +67 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.d.ts +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js +58 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.d.ts +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js +58 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.d.ts +161 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js +390 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.d.ts +161 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js +387 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.d.ts +65 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js +125 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.d.ts +42 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js +74 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.d.ts +56 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js +87 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.d.ts +69 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js +114 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.d.ts +97 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js +296 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.d.ts +50 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js +125 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.d.ts +129 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js +327 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.d.ts +66 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js +170 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.d.ts +52 -0
- package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js +95 -0
- package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.d.ts +29 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js +50 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/Tlv.d.ts +15 -0
- package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/F64.d.ts +154 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/F64.js +307 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/F64.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.d.ts +9 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js +11 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.d.ts +4 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js +23 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.d.ts +8 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js +33 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/util.d.ts +13 -0
- package/.yalc/@node-dlc/messaging/dist/util.js +40 -0
- package/.yalc/@node-dlc/messaging/dist/util.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/validation/validate.d.ts +4 -0
- package/.yalc/@node-dlc/messaging/dist/validation/validate.js +31 -0
- package/.yalc/@node-dlc/messaging/dist/validation/validate.js.map +1 -0
- package/.yalc/@node-dlc/messaging/lib/MessageType.ts +138 -0
- package/.yalc/@node-dlc/messaging/lib/chain/ChainManager.ts +326 -0
- package/.yalc/@node-dlc/messaging/lib/chain/ChainMemoryStore.ts +34 -0
- package/.yalc/@node-dlc/messaging/lib/chain/DlcStore.ts +11 -0
- package/.yalc/@node-dlc/messaging/lib/chain/IChainFilterChainClient.ts +57 -0
- package/.yalc/@node-dlc/messaging/lib/domain/Address.ts +64 -0
- package/.yalc/@node-dlc/messaging/lib/index.ts +44 -0
- package/.yalc/@node-dlc/messaging/lib/irc/IrcMessage.ts +161 -0
- package/.yalc/@node-dlc/messaging/lib/messages/AddressCache.ts +74 -0
- package/.yalc/@node-dlc/messaging/lib/messages/BatchFundingGroup.ts +141 -0
- package/.yalc/@node-dlc/messaging/lib/messages/CetAdaptorSignatures.ts +89 -0
- package/.yalc/@node-dlc/messaging/lib/messages/ContractDescriptor.ts +318 -0
- package/.yalc/@node-dlc/messaging/lib/messages/ContractInfo.ts +434 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcAccept.ts +595 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcCancel.ts +57 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcClose.ts +302 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcCloseMetadata.ts +121 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcIds.ts +67 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcInfo.ts +81 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcMessage.ts +87 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcOffer.ts +605 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcSign.ts +354 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcTransactions.ts +213 -0
- package/.yalc/@node-dlc/messaging/lib/messages/EventDescriptor.ts +289 -0
- package/.yalc/@node-dlc/messaging/lib/messages/FundingInput.ts +216 -0
- package/.yalc/@node-dlc/messaging/lib/messages/FundingSignatures.ts +98 -0
- package/.yalc/@node-dlc/messaging/lib/messages/IWireMessage.ts +6 -0
- package/.yalc/@node-dlc/messaging/lib/messages/NegotiationFields.ts +252 -0
- package/.yalc/@node-dlc/messaging/lib/messages/NodeAnnouncementMessage.ts +145 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleAnnouncement.ts +176 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleAttestation.ts +292 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleEvent.ts +250 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleEventContainer.ts +89 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleIdentifier.ts +78 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleInfo.ts +519 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderAccept.ts +159 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderIrcInfo.ts +100 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderMetadata.ts +119 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderNegotiationFields.ts +157 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderOffer.ts +419 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderPositionInfo.ts +170 -0
- package/.yalc/@node-dlc/messaging/lib/messages/PayoutCurvePiece.ts +449 -0
- package/.yalc/@node-dlc/messaging/lib/messages/PayoutFunction.ts +240 -0
- package/.yalc/@node-dlc/messaging/lib/messages/RoundingIntervals.ts +127 -0
- package/.yalc/@node-dlc/messaging/lib/messages/ScriptWitnessV0.ts +63 -0
- package/.yalc/@node-dlc/messaging/lib/messages/Tlv.ts +40 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/F64.ts +352 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/deserializeTlv.ts +15 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/getTlv.ts +21 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/readTlvs.ts +37 -0
- package/.yalc/@node-dlc/messaging/lib/util.ts +33 -0
- package/.yalc/@node-dlc/messaging/lib/validation/validate.ts +34 -0
- package/.yalc/@node-dlc/messaging/package.json +42 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_3_test.json +210 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_5_test.json +468 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_3_of_5_test.json +1517 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_5_of_5_test.json +545 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_3_of_5_test.json +4761 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_5_of_5_test.json +2169 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_single_oracle_test.json +164 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_hyperbola_test.json +502 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_test.json +262 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_five_oracle_numerical_with_diff_test.json +4382 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_test.json +324 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_with_diff_test.json +652 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_test.json +1138 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_with_diff_test.json +2222 -0
- package/.yalc/@node-dlc/messaging/test_vectors/oracle/external_oracle_announcements.json +0 -0
- package/.yalc/@node-dlc/messaging/test_vectors/oracle/oracle_message_test_vectors.json +115 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/accept_msg.json +1465 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test.json +12362 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test_scripts.json +57 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_test.json +2766 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_tx_test.json +2899 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg.json +163 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg_disjoint.json +352 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_chunk_msg.json +12635 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_start_msg.json +4022 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/sign_msg.json +383 -0
- package/.yalc/@node-dlc/messaging/tsconfig.json +7 -0
- package/.yalc/@node-dlc/messaging/yalc.sig +1 -0
- package/CHANGELOG.md +70 -0
- package/dist/dlc.d.ts +3 -3
- package/dist/models/Output.js.map +1 -1
- package/lib/dlc.ts +4 -14
- package/lib/models/Output.ts +4 -1
- package/package.json +4 -4
- package/yalc.lock +10 -0
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
import { BufferReader, BufferWriter } from '@node-dlc/bufio';
|
|
2
|
+
|
|
3
|
+
import { ContractInfoType, MessageType } from '../MessageType';
|
|
4
|
+
import {
|
|
5
|
+
ContractDescriptor,
|
|
6
|
+
ContractDescriptorV0JSON,
|
|
7
|
+
ContractDescriptorV1JSON,
|
|
8
|
+
} from './ContractDescriptor';
|
|
9
|
+
import { DlcMessage, IDlcMessage } from './DlcMessage';
|
|
10
|
+
import {
|
|
11
|
+
MultiOracleInfo,
|
|
12
|
+
MultiOracleInfoJSON,
|
|
13
|
+
OracleInfo,
|
|
14
|
+
SingleOracleInfo,
|
|
15
|
+
SingleOracleInfoJSON,
|
|
16
|
+
} from './OracleInfo';
|
|
17
|
+
|
|
18
|
+
export abstract class ContractInfo extends DlcMessage {
|
|
19
|
+
public static deserialize(
|
|
20
|
+
buf: Buffer,
|
|
21
|
+
): SingleContractInfo | DisjointContractInfo {
|
|
22
|
+
const reader = new BufferReader(buf);
|
|
23
|
+
const typeId = Number(reader.readBigSize());
|
|
24
|
+
|
|
25
|
+
switch (typeId) {
|
|
26
|
+
case ContractInfoType.Single:
|
|
27
|
+
return SingleContractInfo.deserialize(buf);
|
|
28
|
+
case ContractInfoType.Disjoint:
|
|
29
|
+
return DisjointContractInfo.deserialize(buf);
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(
|
|
32
|
+
`Contract info type must be Single (0) or Disjoint (1), got ${typeId}`,
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Creates a ContractInfo from JSON data (e.g., from test vectors)
|
|
39
|
+
* @param json JSON object representing contract info
|
|
40
|
+
*/
|
|
41
|
+
public static fromJSON(json: any): ContractInfo {
|
|
42
|
+
if (!json) {
|
|
43
|
+
throw new Error('contractInfo is required');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Check if it's a single contract info or disjoint contract info
|
|
47
|
+
if (json.singleContractInfo || json.single_contract_info) {
|
|
48
|
+
return SingleContractInfo.fromJSON(
|
|
49
|
+
json.singleContractInfo || json.single_contract_info,
|
|
50
|
+
);
|
|
51
|
+
} else if (json.disjointContractInfo || json.disjoint_contract_info) {
|
|
52
|
+
return DisjointContractInfo.fromJSON(
|
|
53
|
+
json.disjointContractInfo || json.disjoint_contract_info,
|
|
54
|
+
);
|
|
55
|
+
} else {
|
|
56
|
+
throw new Error(
|
|
57
|
+
'contractInfo must have either singleContractInfo or disjointContractInfo',
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public abstract contractInfoType: ContractInfoType;
|
|
63
|
+
public abstract totalCollateral: bigint;
|
|
64
|
+
public abstract validate(): void;
|
|
65
|
+
public abstract toJSON(): ISingleContractInfoJSON | IDisjointContractInfoJSON;
|
|
66
|
+
public abstract serialize(): Buffer;
|
|
67
|
+
|
|
68
|
+
// Method to get total collateral (for compatibility)
|
|
69
|
+
public getTotalCollateral(): bigint {
|
|
70
|
+
return this.totalCollateral;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* SingleContractInfo contains information about a contract's outcomes,
|
|
76
|
+
* their corresponding payouts, and the oracles to be used.
|
|
77
|
+
* This corresponds to the previous ContractInfoV0.
|
|
78
|
+
*/
|
|
79
|
+
export class SingleContractInfo extends ContractInfo implements IDlcMessage {
|
|
80
|
+
public static contractInfoType = ContractInfoType.Single;
|
|
81
|
+
public static type = MessageType.SingleContractInfo;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Creates a SingleContractInfo from JSON data
|
|
85
|
+
* @param json JSON object representing single contract info
|
|
86
|
+
*/
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
88
|
+
public static fromJSON(json: any): SingleContractInfo {
|
|
89
|
+
const instance = new SingleContractInfo();
|
|
90
|
+
|
|
91
|
+
instance.totalCollateral = BigInt(
|
|
92
|
+
json.totalCollateral || json.total_collateral || 0,
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
// Handle nested contractInfo structure (test vectors have double nesting)
|
|
96
|
+
const contractInfoData = json.contractInfo || json.contract_info || json;
|
|
97
|
+
|
|
98
|
+
// Parse contract descriptor using proper fromJSON method
|
|
99
|
+
instance.contractDescriptor = ContractDescriptor.fromJSON(
|
|
100
|
+
contractInfoData.contractDescriptor ||
|
|
101
|
+
contractInfoData.contract_descriptor,
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
// Parse oracle info using proper fromJSON method
|
|
105
|
+
instance.oracleInfo = OracleInfo.fromJSON(
|
|
106
|
+
contractInfoData.oracleInfo || contractInfoData.oracle_info,
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
return instance;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Deserializes a single_contract_info message
|
|
114
|
+
* @param buf
|
|
115
|
+
*/
|
|
116
|
+
public static deserialize(buf: Buffer): SingleContractInfo {
|
|
117
|
+
const instance = new SingleContractInfo();
|
|
118
|
+
const reader = new BufferReader(buf);
|
|
119
|
+
|
|
120
|
+
reader.readBigSize(); // read type (0)
|
|
121
|
+
instance.totalCollateral = reader.readUInt64BE();
|
|
122
|
+
|
|
123
|
+
// Read contract descriptor as sibling type (starts with its own type prefix)
|
|
124
|
+
instance.contractDescriptor = ContractDescriptor.deserialize(
|
|
125
|
+
reader.buffer.subarray(reader.position),
|
|
126
|
+
);
|
|
127
|
+
// Skip past the contract descriptor we just read
|
|
128
|
+
const descLength = instance.contractDescriptor.serialize().length;
|
|
129
|
+
reader.position += descLength;
|
|
130
|
+
|
|
131
|
+
// Read oracle info with rust-dlc format - discriminator + body
|
|
132
|
+
const oracleType = Number(reader.readBigSize());
|
|
133
|
+
if (oracleType === 0) {
|
|
134
|
+
// Single oracle
|
|
135
|
+
instance.oracleInfo = SingleOracleInfo.deserializeBody(
|
|
136
|
+
reader.buffer.subarray(reader.position),
|
|
137
|
+
);
|
|
138
|
+
} else if (oracleType === 1) {
|
|
139
|
+
// Multi oracle
|
|
140
|
+
instance.oracleInfo = MultiOracleInfo.deserializeBody(
|
|
141
|
+
reader.buffer.subarray(reader.position),
|
|
142
|
+
);
|
|
143
|
+
} else {
|
|
144
|
+
throw new Error(`Unknown oracle info type: ${oracleType}`);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return instance;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* The type for single_contract_info message - using MessageType for IDlcMessage compatibility
|
|
152
|
+
*/
|
|
153
|
+
public type = MessageType.SingleContractInfo;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* The contract info type for new format
|
|
157
|
+
*/
|
|
158
|
+
public contractInfoType = ContractInfoType.Single;
|
|
159
|
+
|
|
160
|
+
public totalCollateral: bigint;
|
|
161
|
+
|
|
162
|
+
public contractDescriptor: ContractDescriptor;
|
|
163
|
+
|
|
164
|
+
public oracleInfo: OracleInfo;
|
|
165
|
+
|
|
166
|
+
// Compatibility property
|
|
167
|
+
public get length(): bigint {
|
|
168
|
+
return BigInt(this.serialize().length);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Validates correctness of all fields in the message
|
|
173
|
+
* @throws Will throw an error if validation fails
|
|
174
|
+
*/
|
|
175
|
+
public validate(): void {
|
|
176
|
+
if (this.totalCollateral <= 0) {
|
|
177
|
+
throw new Error('totalCollateral must be greater than 0');
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
this.oracleInfo.validate();
|
|
181
|
+
|
|
182
|
+
// TODO: Add contract descriptor validation once available
|
|
183
|
+
// this.contractDescriptor.validate();
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Converts single_contract_info to JSON
|
|
188
|
+
*/
|
|
189
|
+
public toJSON(): ISingleContractInfoJSON {
|
|
190
|
+
// Return enum variant format for Rust compatibility
|
|
191
|
+
return {
|
|
192
|
+
singleContractInfo: {
|
|
193
|
+
totalCollateral: Number(this.totalCollateral),
|
|
194
|
+
contractInfo: {
|
|
195
|
+
contractDescriptor: this.contractDescriptor.toJSON(),
|
|
196
|
+
oracleInfo: this.oracleInfo.toJSON(),
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
} as any;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Serializes the single_contract_info message into a Buffer
|
|
204
|
+
*/
|
|
205
|
+
public serialize(): Buffer {
|
|
206
|
+
const writer = new BufferWriter();
|
|
207
|
+
|
|
208
|
+
writer.writeBigSize(this.contractInfoType);
|
|
209
|
+
writer.writeUInt64BE(this.totalCollateral);
|
|
210
|
+
writer.writeBytes(this.contractDescriptor.serialize());
|
|
211
|
+
|
|
212
|
+
// Use serializeBody() to match rust-dlc behavior - don't add extra TLV wrapper
|
|
213
|
+
if (this.oracleInfo instanceof SingleOracleInfo) {
|
|
214
|
+
writer.writeBigSize(0); // Single oracle discriminator
|
|
215
|
+
writer.writeBytes(this.oracleInfo.serializeBody());
|
|
216
|
+
} else {
|
|
217
|
+
writer.writeBigSize(1); // Multi oracle discriminator
|
|
218
|
+
writer.writeBytes(this.oracleInfo.serializeBody());
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return writer.toBuffer();
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* DisjointContractInfo contains information about multiple disjoint contract events.
|
|
227
|
+
* This corresponds to the previous ContractInfoV1.
|
|
228
|
+
*/
|
|
229
|
+
export class DisjointContractInfo extends ContractInfo implements IDlcMessage {
|
|
230
|
+
public static contractInfoType = ContractInfoType.Disjoint;
|
|
231
|
+
public static type = MessageType.DisjointContractInfo;
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Creates a DisjointContractInfo from JSON data
|
|
235
|
+
* @param json JSON object representing disjoint contract info
|
|
236
|
+
*/
|
|
237
|
+
public static fromJSON(json: any): DisjointContractInfo {
|
|
238
|
+
const instance = new DisjointContractInfo();
|
|
239
|
+
|
|
240
|
+
instance.totalCollateral = BigInt(
|
|
241
|
+
json.totalCollateral || json.total_collateral || 0,
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
// Parse contract infos array
|
|
245
|
+
const contractInfosData = json.contractInfos || json.contract_infos || [];
|
|
246
|
+
instance.contractOraclePairs = contractInfosData.map(
|
|
247
|
+
(contractInfoData: any) => ({
|
|
248
|
+
contractDescriptor: ContractDescriptor.fromJSON(
|
|
249
|
+
contractInfoData.contractDescriptor ||
|
|
250
|
+
contractInfoData.contract_descriptor,
|
|
251
|
+
),
|
|
252
|
+
oracleInfo: OracleInfo.fromJSON(
|
|
253
|
+
contractInfoData.oracleInfo || contractInfoData.oracle_info,
|
|
254
|
+
),
|
|
255
|
+
}),
|
|
256
|
+
);
|
|
257
|
+
|
|
258
|
+
return instance;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Deserializes a disjoint_contract_info message
|
|
263
|
+
* @param buf
|
|
264
|
+
*/
|
|
265
|
+
public static deserialize(buf: Buffer): DisjointContractInfo {
|
|
266
|
+
const instance = new DisjointContractInfo();
|
|
267
|
+
const reader = new BufferReader(buf);
|
|
268
|
+
|
|
269
|
+
reader.readBigSize(); // read type (1)
|
|
270
|
+
instance.totalCollateral = reader.readUInt64BE();
|
|
271
|
+
|
|
272
|
+
const numDisjointEvents = Number(reader.readBigSize());
|
|
273
|
+
|
|
274
|
+
for (let i = 0; i < numDisjointEvents; i++) {
|
|
275
|
+
// Read contract descriptor as sibling type (starts with its own type prefix)
|
|
276
|
+
const contractDescriptor = ContractDescriptor.deserialize(
|
|
277
|
+
reader.buffer.subarray(reader.position),
|
|
278
|
+
);
|
|
279
|
+
// Skip past the contract descriptor we just read
|
|
280
|
+
const descLength = contractDescriptor.serialize().length;
|
|
281
|
+
reader.position += descLength;
|
|
282
|
+
|
|
283
|
+
// Read oracle info with rust-dlc format - discriminator + body (same as SingleContractInfo)
|
|
284
|
+
const oracleType = Number(reader.readBigSize());
|
|
285
|
+
let oracleInfo: OracleInfo;
|
|
286
|
+
|
|
287
|
+
if (oracleType === 0) {
|
|
288
|
+
// Single oracle
|
|
289
|
+
oracleInfo = SingleOracleInfo.deserializeBody(
|
|
290
|
+
reader.buffer.subarray(reader.position),
|
|
291
|
+
);
|
|
292
|
+
} else if (oracleType === 1) {
|
|
293
|
+
// Multi oracle
|
|
294
|
+
oracleInfo = MultiOracleInfo.deserializeBody(
|
|
295
|
+
reader.buffer.subarray(reader.position),
|
|
296
|
+
);
|
|
297
|
+
} else {
|
|
298
|
+
throw new Error(`Unknown oracle info type: ${oracleType}`);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// Skip past the oracle info we just read
|
|
302
|
+
const oracleInfoLength = oracleInfo.serializeBody().length;
|
|
303
|
+
reader.position += oracleInfoLength;
|
|
304
|
+
|
|
305
|
+
instance.contractOraclePairs.push({ contractDescriptor, oracleInfo });
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return instance;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* The type for disjoint_contract_info message - using MessageType for IDlcMessage compatibility
|
|
313
|
+
*/
|
|
314
|
+
public type = MessageType.DisjointContractInfo;
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* The contract info type for new format
|
|
318
|
+
*/
|
|
319
|
+
public contractInfoType = ContractInfoType.Disjoint;
|
|
320
|
+
|
|
321
|
+
public totalCollateral: bigint;
|
|
322
|
+
|
|
323
|
+
public contractOraclePairs: IContractOraclePair[] = [];
|
|
324
|
+
|
|
325
|
+
// Compatibility property
|
|
326
|
+
public get length(): bigint {
|
|
327
|
+
return BigInt(this.serialize().length);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Validates correctness of all fields in the message
|
|
332
|
+
* @throws Will throw an error if validation fails
|
|
333
|
+
*/
|
|
334
|
+
public validate(): void {
|
|
335
|
+
if (this.totalCollateral <= 0) {
|
|
336
|
+
throw new Error('totalCollateral must be greater than 0');
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
if (this.contractOraclePairs.length === 0) {
|
|
340
|
+
throw new Error('contractOraclePairs cannot be empty');
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
this.contractOraclePairs.forEach((pair, index) => {
|
|
344
|
+
try {
|
|
345
|
+
pair.oracleInfo.validate();
|
|
346
|
+
// TODO: Add contract descriptor validation once available
|
|
347
|
+
// pair.contractDescriptor.validate();
|
|
348
|
+
} catch (error) {
|
|
349
|
+
throw new Error(
|
|
350
|
+
`Validation failed for contract oracle pair ${index}: ${error.message}`,
|
|
351
|
+
);
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Converts disjoint_contract_info to JSON
|
|
358
|
+
*/
|
|
359
|
+
public toJSON(): IDisjointContractInfoJSON {
|
|
360
|
+
// Return enum variant format for Rust compatibility
|
|
361
|
+
return {
|
|
362
|
+
disjointContractInfo: {
|
|
363
|
+
totalCollateral: Number(this.totalCollateral),
|
|
364
|
+
contractInfos: this.contractOraclePairs.map((pair) => ({
|
|
365
|
+
contractDescriptor: pair.contractDescriptor.toJSON(),
|
|
366
|
+
oracleInfo: pair.oracleInfo.toJSON(),
|
|
367
|
+
})),
|
|
368
|
+
},
|
|
369
|
+
} as any;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Serializes the disjoint_contract_info message into a Buffer
|
|
374
|
+
*/
|
|
375
|
+
public serialize(): Buffer {
|
|
376
|
+
const writer = new BufferWriter();
|
|
377
|
+
|
|
378
|
+
writer.writeBigSize(this.contractInfoType);
|
|
379
|
+
writer.writeUInt64BE(this.totalCollateral);
|
|
380
|
+
writer.writeBigSize(this.contractOraclePairs.length);
|
|
381
|
+
|
|
382
|
+
for (const pair of this.contractOraclePairs) {
|
|
383
|
+
writer.writeBytes(pair.contractDescriptor.serialize());
|
|
384
|
+
|
|
385
|
+
// Write oracle info with discriminator like SingleContractInfo does
|
|
386
|
+
if (pair.oracleInfo instanceof SingleOracleInfo) {
|
|
387
|
+
writer.writeBigSize(0); // Single oracle discriminator
|
|
388
|
+
writer.writeBytes(pair.oracleInfo.serializeBody());
|
|
389
|
+
} else {
|
|
390
|
+
writer.writeBigSize(1); // Multi oracle discriminator
|
|
391
|
+
writer.writeBytes(pair.oracleInfo.serializeBody());
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
return writer.toBuffer();
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// Legacy support - keeping old class names as aliases (both value and type exports)
|
|
400
|
+
export const ContractInfoV0 = SingleContractInfo;
|
|
401
|
+
export const ContractInfoV1 = DisjointContractInfo;
|
|
402
|
+
export type ContractInfoV0 = SingleContractInfo;
|
|
403
|
+
export type ContractInfoV1 = DisjointContractInfo;
|
|
404
|
+
|
|
405
|
+
interface IContractOraclePair {
|
|
406
|
+
contractDescriptor: ContractDescriptor;
|
|
407
|
+
oracleInfo: OracleInfo;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
interface IContractOraclePairJSON {
|
|
411
|
+
contractDescriptor: ContractDescriptorV0JSON | ContractDescriptorV1JSON;
|
|
412
|
+
oracleInfo: SingleOracleInfoJSON | MultiOracleInfoJSON;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
export interface ISingleContractInfoJSON {
|
|
416
|
+
type?: number; // Made optional for rust-dlc compatibility
|
|
417
|
+
contractInfoType?: ContractInfoType; // Made optional for rust-dlc compatibility
|
|
418
|
+
totalCollateral: number;
|
|
419
|
+
contractInfo: {
|
|
420
|
+
contractDescriptor: ContractDescriptorV0JSON | ContractDescriptorV1JSON;
|
|
421
|
+
oracleInfo: SingleOracleInfoJSON | MultiOracleInfoJSON;
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
export interface IDisjointContractInfoJSON {
|
|
426
|
+
type?: number; // Made optional for rust-dlc compatibility
|
|
427
|
+
contractInfoType?: ContractInfoType; // Made optional for rust-dlc compatibility
|
|
428
|
+
totalCollateral: number;
|
|
429
|
+
contractOraclePairs: IContractOraclePairJSON[];
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
// Legacy type aliases for backward compatibility (same as the new interfaces)
|
|
433
|
+
export type IContractInfoV0JSON = ISingleContractInfoJSON;
|
|
434
|
+
export type IContractInfoV1JSON = IDisjointContractInfoJSON;
|