@atomicfinance/bitcoin-dlc-provider 3.6.1 → 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/.nvmrc +1 -1
- 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 +72 -0
- package/dist/BitcoinDlcProvider.d.ts +17 -16
- package/dist/BitcoinDlcProvider.js +345 -315
- package/dist/BitcoinDlcProvider.js.map +1 -1
- package/dist/utils/Utils.d.ts +6 -6
- package/dist/utils/Utils.js +4 -4
- package/dist/utils/Utils.js.map +1 -1
- package/lib/BitcoinDlcProvider.ts +624 -612
- package/lib/utils/Utils.ts +19 -24
- package/package.json +10 -10
- package/yalc.lock +10 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { BufferReader, BufferWriter } from '@node-dlc/bufio';
|
|
2
|
+
import { BitcoinNetwork } from 'bitcoin-networks';
|
|
3
|
+
import { address } from 'bitcoinjs-lib';
|
|
4
|
+
|
|
5
|
+
import { MessageType } from '../MessageType';
|
|
6
|
+
|
|
7
|
+
export class AddressCache {
|
|
8
|
+
public static type = MessageType.AddressCache;
|
|
9
|
+
|
|
10
|
+
public static fromAddressCache(
|
|
11
|
+
addressesBlacklist: IAddressCache[],
|
|
12
|
+
network: BitcoinNetwork,
|
|
13
|
+
): AddressCache {
|
|
14
|
+
const instance = new AddressCache();
|
|
15
|
+
|
|
16
|
+
for (const blacklistAddress of Object.keys(addressesBlacklist)) {
|
|
17
|
+
instance.cacheSPKs.push(
|
|
18
|
+
address.toOutputScript(blacklistAddress, network),
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return instance;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public static deserialize(buf: Buffer): AddressCache {
|
|
26
|
+
const instance = new AddressCache();
|
|
27
|
+
const reader = new BufferReader(buf);
|
|
28
|
+
|
|
29
|
+
reader.readUInt16BE(); // read type
|
|
30
|
+
reader.readBigSize(); // num_cache_spks
|
|
31
|
+
|
|
32
|
+
while (!reader.eof) {
|
|
33
|
+
const cacheSPKLen = reader.readBigSize();
|
|
34
|
+
const cacheSPK = reader.readBytes(Number(cacheSPKLen));
|
|
35
|
+
|
|
36
|
+
instance.cacheSPKs.push(cacheSPK);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return instance;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public type = AddressCache.type;
|
|
43
|
+
|
|
44
|
+
public cacheSPKs: Buffer[] = [];
|
|
45
|
+
|
|
46
|
+
public toAddressCache(network: BitcoinNetwork): IAddressCache[] {
|
|
47
|
+
const addressCache: IAddressCache[] = [];
|
|
48
|
+
|
|
49
|
+
for (const cacheSPK of this.cacheSPKs) {
|
|
50
|
+
addressCache[address.fromOutputScript(cacheSPK, network)] = true;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return addressCache;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public serialize(): Buffer {
|
|
57
|
+
const writer = new BufferWriter();
|
|
58
|
+
|
|
59
|
+
writer.writeUInt16BE(this.type);
|
|
60
|
+
|
|
61
|
+
writer.writeBigSize(this.cacheSPKs.length);
|
|
62
|
+
|
|
63
|
+
for (const cacheSPK of this.cacheSPKs) {
|
|
64
|
+
writer.writeBigSize(cacheSPK.length);
|
|
65
|
+
writer.writeBytes(cacheSPK);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return writer.toBuffer();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface IAddressCache {
|
|
73
|
+
[x: string]: boolean;
|
|
74
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Value } from '@node-dlc/bitcoin';
|
|
2
|
+
import { BufferReader, BufferWriter } from '@node-dlc/bufio';
|
|
3
|
+
|
|
4
|
+
import { MessageType } from '../MessageType';
|
|
5
|
+
import { IDlcMessage } from './DlcMessage';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The BatchFundingGroup TLV contains information about the intent to
|
|
9
|
+
* enter multiple DLCs simulatenously within one batch dlc funding
|
|
10
|
+
* transaction in the contract negotiation stage of the peer protocol
|
|
11
|
+
*
|
|
12
|
+
* This is the first step toward creating a batch dlc funding transaction
|
|
13
|
+
*
|
|
14
|
+
* A DlcOffer or DlcAccept can contain one or multiple BatchFundingInfo
|
|
15
|
+
* TLVs to specify one or more groupings. This allows specification of
|
|
16
|
+
* collateral put towards different types of contracts, such as options
|
|
17
|
+
* contracts, futures contracts, or other investment types.
|
|
18
|
+
*
|
|
19
|
+
* Attributes:
|
|
20
|
+
* - tempContractIds: Temporary identifiers for contracts proposed in DlcOffers.
|
|
21
|
+
* - contractIds: Identifiers for contracts that have been accepted and are
|
|
22
|
+
* part of the funding transaction. These are derived from DlcOffers and DlcAccepts.
|
|
23
|
+
* - allocatedCollateral: The amount of collateral allocated to the contracts
|
|
24
|
+
* within this group. This is specified early in the negotiation process.
|
|
25
|
+
* - eventIds: Oracle event identifiers for the contracts in this group. These
|
|
26
|
+
* are also specified early in the negotiation process.
|
|
27
|
+
*
|
|
28
|
+
* Note: During the early stages of the negotiation protocol, only allocatedCollateral
|
|
29
|
+
* and eventIds are specified. tempContractIds and contractIds are added to the
|
|
30
|
+
* DlcAccept upon creation.
|
|
31
|
+
*/
|
|
32
|
+
export class BatchFundingGroup implements IDlcMessage {
|
|
33
|
+
public static type = MessageType.BatchFundingGroup;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Deserializes a batch_contract_info message
|
|
37
|
+
* @param buf
|
|
38
|
+
*/
|
|
39
|
+
public static deserialize(buf: Buffer): BatchFundingGroup {
|
|
40
|
+
const instance = new BatchFundingGroup();
|
|
41
|
+
const reader = new BufferReader(buf);
|
|
42
|
+
|
|
43
|
+
reader.readBigSize(); // read type
|
|
44
|
+
instance.length = reader.readBigSize();
|
|
45
|
+
|
|
46
|
+
const tempContractIdsCount = reader.readBigSize();
|
|
47
|
+
for (let i = 0; i < Number(tempContractIdsCount); i++) {
|
|
48
|
+
const length = reader.readBigSize();
|
|
49
|
+
instance.tempContractIds.push(reader.readBytes(Number(length)));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const contractIdsCount = reader.readBigSize();
|
|
53
|
+
for (let i = 0; i < Number(contractIdsCount); i++) {
|
|
54
|
+
const length = reader.readBigSize();
|
|
55
|
+
instance.contractIds.push(reader.readBytes(Number(length)));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
instance.allocatedCollateral = Value.fromSats(reader.readUInt64BE());
|
|
59
|
+
|
|
60
|
+
const eventIdsCount = reader.readBigSize();
|
|
61
|
+
for (let i = 0; i < Number(eventIdsCount); i++) {
|
|
62
|
+
const eventIdLength = reader.readBigSize();
|
|
63
|
+
const eventIdBuf = reader.readBytes(Number(eventIdLength));
|
|
64
|
+
instance.eventIds.push(eventIdBuf.toString());
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return instance;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* The type for batch_contract_info message.
|
|
72
|
+
*/
|
|
73
|
+
public type = BatchFundingGroup.type;
|
|
74
|
+
|
|
75
|
+
public length: bigint;
|
|
76
|
+
|
|
77
|
+
public tempContractIds: Buffer[] = [];
|
|
78
|
+
|
|
79
|
+
public contractIds: Buffer[] = [];
|
|
80
|
+
|
|
81
|
+
public allocatedCollateral: Value;
|
|
82
|
+
|
|
83
|
+
public eventIds: string[] = [];
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Converts batch_funding_info to JSON
|
|
87
|
+
*/
|
|
88
|
+
public toJSON(): IBatchFundingGroupJSON {
|
|
89
|
+
return {
|
|
90
|
+
type: this.type,
|
|
91
|
+
tempContractIds: this.tempContractIds.map((id) => id.toString('hex')),
|
|
92
|
+
contractIds: this.contractIds.map((id) => id.toString('hex')),
|
|
93
|
+
totalCollateral: Number(this.allocatedCollateral.sats),
|
|
94
|
+
eventIds: this.eventIds,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Serializes the batch_funding_info message into a Buffer
|
|
100
|
+
*/
|
|
101
|
+
public serialize(): Buffer {
|
|
102
|
+
const writer = new BufferWriter();
|
|
103
|
+
writer.writeBigSize(this.type);
|
|
104
|
+
|
|
105
|
+
const dataWriter = new BufferWriter();
|
|
106
|
+
|
|
107
|
+
dataWriter.writeBigSize(this.tempContractIds.length);
|
|
108
|
+
this.tempContractIds.forEach((id) => {
|
|
109
|
+
dataWriter.writeBigSize(id.length);
|
|
110
|
+
dataWriter.writeBytes(id);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
dataWriter.writeBigSize(this.contractIds.length);
|
|
114
|
+
this.contractIds.forEach((id) => {
|
|
115
|
+
dataWriter.writeBigSize(id.length);
|
|
116
|
+
dataWriter.writeBytes(id);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
dataWriter.writeUInt64BE(this.allocatedCollateral.sats);
|
|
120
|
+
|
|
121
|
+
dataWriter.writeBigSize(this.eventIds.length);
|
|
122
|
+
this.eventIds.forEach((id) => {
|
|
123
|
+
const idBuffer = Buffer.from(id);
|
|
124
|
+
dataWriter.writeBigSize(id.length);
|
|
125
|
+
dataWriter.writeBytes(idBuffer);
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
writer.writeBigSize(dataWriter.size);
|
|
129
|
+
writer.writeBytes(dataWriter.toBuffer());
|
|
130
|
+
|
|
131
|
+
return writer.toBuffer();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface IBatchFundingGroupJSON {
|
|
136
|
+
type: number;
|
|
137
|
+
tempContractIds: string[];
|
|
138
|
+
contractIds: string[];
|
|
139
|
+
totalCollateral: number;
|
|
140
|
+
eventIds: string[];
|
|
141
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { BufferReader, BufferWriter } from '@node-dlc/bufio';
|
|
2
|
+
|
|
3
|
+
import { MessageType } from '../MessageType';
|
|
4
|
+
import { IDlcMessage } from './DlcMessage';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* CetAdaptorSignatures contains CET signatures and any necessary
|
|
8
|
+
* information linking the signatures to their corresponding outcome
|
|
9
|
+
*/
|
|
10
|
+
export class CetAdaptorSignatures implements IDlcMessage {
|
|
11
|
+
public static type = MessageType.CetAdaptorSignatures;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Deserializes a cet_adaptor_signature message
|
|
15
|
+
* @param buf
|
|
16
|
+
*/
|
|
17
|
+
public static deserialize(buf: Buffer): CetAdaptorSignatures {
|
|
18
|
+
const instance = new CetAdaptorSignatures();
|
|
19
|
+
const reader = new BufferReader(buf);
|
|
20
|
+
|
|
21
|
+
const nbSignatures = Number(reader.readBigSize()); // nb_signatures
|
|
22
|
+
|
|
23
|
+
// Read exactly nbSignatures * (65 + 97) bytes to match serialize format
|
|
24
|
+
for (let i = 0; i < nbSignatures; i++) {
|
|
25
|
+
const encryptedSig = reader.readBytes(65);
|
|
26
|
+
const dleqProof = reader.readBytes(97);
|
|
27
|
+
instance.sigs.push({ encryptedSig, dleqProof });
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return instance;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The type for cet_adaptor_signature message. cet_adaptor_signature = 42774
|
|
35
|
+
*/
|
|
36
|
+
public type = CetAdaptorSignatures.type;
|
|
37
|
+
|
|
38
|
+
public length: bigint;
|
|
39
|
+
|
|
40
|
+
public sigs: ISig[] = [];
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Converts cet_adaptor_signature to JSON (canonical rust-dlc format)
|
|
44
|
+
*/
|
|
45
|
+
public toJSON(): ICetAdaptorSignaturesJSON {
|
|
46
|
+
return {
|
|
47
|
+
ecdsaAdaptorSignatures: this.sigs.map((sig) => {
|
|
48
|
+
// Combine encryptedSig and dleqProof into single signature field as expected by rust-dlc
|
|
49
|
+
const signature = Buffer.concat([sig.encryptedSig, sig.dleqProof]);
|
|
50
|
+
return {
|
|
51
|
+
signature: signature.toString('hex'),
|
|
52
|
+
};
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Serializes the cet_adaptor_signature message into a Buffer
|
|
59
|
+
*/
|
|
60
|
+
public serialize(): Buffer {
|
|
61
|
+
const writer = new BufferWriter();
|
|
62
|
+
// writer.writeBigSize(this.type);
|
|
63
|
+
|
|
64
|
+
const dataWriter = new BufferWriter();
|
|
65
|
+
dataWriter.writeBigSize(this.sigs.length);
|
|
66
|
+
|
|
67
|
+
for (const sig of this.sigs) {
|
|
68
|
+
dataWriter.writeBytes(sig.encryptedSig);
|
|
69
|
+
dataWriter.writeBytes(sig.dleqProof);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// writer.writeBigSize(dataWriter.size);
|
|
73
|
+
writer.writeBytes(dataWriter.toBuffer());
|
|
74
|
+
return writer.toBuffer();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
interface ISig {
|
|
79
|
+
encryptedSig: Buffer;
|
|
80
|
+
dleqProof: Buffer;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface ICetAdaptorSignaturesJSON {
|
|
84
|
+
ecdsaAdaptorSignatures: ISigJSON[];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface ISigJSON {
|
|
88
|
+
signature: string;
|
|
89
|
+
}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { BufferReader, BufferWriter } from '@node-dlc/bufio';
|
|
2
|
+
|
|
3
|
+
import { ContractDescriptorType, MessageType } from '../MessageType';
|
|
4
|
+
import { IDlcMessage } from './DlcMessage';
|
|
5
|
+
import { PayoutFunction, PayoutFunctionV0JSON } from './PayoutFunction';
|
|
6
|
+
import { IRoundingIntervalsJSON, RoundingIntervals } from './RoundingIntervals';
|
|
7
|
+
|
|
8
|
+
export abstract class ContractDescriptor {
|
|
9
|
+
public static deserialize(
|
|
10
|
+
buf: Buffer,
|
|
11
|
+
): EnumeratedDescriptor | NumericalDescriptor {
|
|
12
|
+
const reader = new BufferReader(buf);
|
|
13
|
+
const typeId = Number(reader.readBigSize());
|
|
14
|
+
|
|
15
|
+
switch (typeId) {
|
|
16
|
+
case ContractDescriptorType.Enumerated:
|
|
17
|
+
return EnumeratedDescriptor.deserialize(buf);
|
|
18
|
+
case ContractDescriptorType.NumericOutcome:
|
|
19
|
+
return NumericalDescriptor.deserialize(buf);
|
|
20
|
+
default:
|
|
21
|
+
throw new Error(
|
|
22
|
+
`Contract descriptor type must be Enumerated (0) or NumericOutcome (1), got ${typeId}`,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Creates a ContractDescriptor from JSON data (e.g., from test vectors)
|
|
29
|
+
* @param json JSON object representing a contract descriptor
|
|
30
|
+
*/
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
32
|
+
public static fromJSON(json: any): ContractDescriptor {
|
|
33
|
+
if (!json) {
|
|
34
|
+
throw new Error('contractDescriptor is required');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Handle enumerated contract descriptor
|
|
38
|
+
if (
|
|
39
|
+
json.enumeratedContractDescriptor ||
|
|
40
|
+
json.enumerated_contract_descriptor
|
|
41
|
+
) {
|
|
42
|
+
return EnumeratedDescriptor.fromJSON(
|
|
43
|
+
json.enumeratedContractDescriptor ||
|
|
44
|
+
json.enumerated_contract_descriptor,
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
// Handle numeric outcome contract descriptor
|
|
48
|
+
else if (
|
|
49
|
+
json.numericOutcomeContractDescriptor ||
|
|
50
|
+
json.numeric_outcome_contract_descriptor
|
|
51
|
+
) {
|
|
52
|
+
return NumericalDescriptor.fromJSON(
|
|
53
|
+
json.numericOutcomeContractDescriptor ||
|
|
54
|
+
json.numeric_outcome_contract_descriptor,
|
|
55
|
+
);
|
|
56
|
+
} else {
|
|
57
|
+
throw new Error(
|
|
58
|
+
'contractDescriptor must have either enumeratedContractDescriptor or numericOutcomeContractDescriptor',
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public abstract contractDescriptorType: ContractDescriptorType;
|
|
64
|
+
public abstract type: number; // For backward compatibility
|
|
65
|
+
public abstract toJSON(): EnumeratedDescriptorJSON | NumericalDescriptorJSON;
|
|
66
|
+
public abstract serialize(): Buffer;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* EnumeratedContractDescriptor contains information about a contract's outcomes
|
|
71
|
+
* and their corresponding payouts (for enumerated outcomes).
|
|
72
|
+
* This corresponds to the previous ContractDescriptorV0.
|
|
73
|
+
*/
|
|
74
|
+
export class EnumeratedDescriptor
|
|
75
|
+
extends ContractDescriptor
|
|
76
|
+
implements IDlcMessage {
|
|
77
|
+
public static contractDescriptorType = ContractDescriptorType.Enumerated;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Creates an EnumeratedContractDescriptor from JSON data
|
|
81
|
+
* @param json JSON object representing an enumerated contract descriptor
|
|
82
|
+
*/
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
84
|
+
public static fromJSON(json: any): EnumeratedDescriptor {
|
|
85
|
+
const instance = new EnumeratedDescriptor();
|
|
86
|
+
|
|
87
|
+
const payouts = json.payouts || [];
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
|
+
instance.outcomes = payouts.map((payout: any) => ({
|
|
90
|
+
outcome: payout.outcome,
|
|
91
|
+
localPayout: BigInt(payout.offerPayout || 0), // Use canonical offerPayout field
|
|
92
|
+
}));
|
|
93
|
+
|
|
94
|
+
return instance;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Deserializes an enumerated_contract_descriptor message
|
|
99
|
+
* @param buf
|
|
100
|
+
*/
|
|
101
|
+
public static deserialize(buf: Buffer): EnumeratedDescriptor {
|
|
102
|
+
const instance = new EnumeratedDescriptor();
|
|
103
|
+
const reader = new BufferReader(buf);
|
|
104
|
+
|
|
105
|
+
reader.readBigSize(); // read type (0)
|
|
106
|
+
const numOutcomes = Number(reader.readBigSize());
|
|
107
|
+
|
|
108
|
+
for (let i = 0; i < numOutcomes; i++) {
|
|
109
|
+
const outcomeLen = Number(reader.readBigSize());
|
|
110
|
+
const outcome = reader.readBytes(outcomeLen).toString();
|
|
111
|
+
const localPayout = reader.readUInt64BE();
|
|
112
|
+
|
|
113
|
+
instance.outcomes.push({
|
|
114
|
+
outcome,
|
|
115
|
+
localPayout,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return instance;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* The type for enumerated_contract_descriptor message - using MessageType for IDlcMessage compatibility
|
|
124
|
+
*/
|
|
125
|
+
public type = MessageType.ContractDescriptorV0; // For IDlcMessage compatibility
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* The contract descriptor type for new format
|
|
129
|
+
*/
|
|
130
|
+
public contractDescriptorType = ContractDescriptorType.Enumerated;
|
|
131
|
+
|
|
132
|
+
public outcomes: IOutcome[] = [];
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Converts enumerated_contract_descriptor to JSON
|
|
136
|
+
*/
|
|
137
|
+
public toJSON(): EnumeratedDescriptorJSON {
|
|
138
|
+
// Return enum variant format for Rust compatibility
|
|
139
|
+
return {
|
|
140
|
+
enumeratedContractDescriptor: {
|
|
141
|
+
payouts: this.outcomes.map((outcome) => ({
|
|
142
|
+
outcome: outcome.outcome,
|
|
143
|
+
offerPayout: Number(outcome.localPayout), // Use offerPayout to match Rust
|
|
144
|
+
})),
|
|
145
|
+
},
|
|
146
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
147
|
+
} as any;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Serializes the enumerated_contract_descriptor message into a Buffer
|
|
152
|
+
*/
|
|
153
|
+
public serialize(): Buffer {
|
|
154
|
+
const writer = new BufferWriter();
|
|
155
|
+
|
|
156
|
+
writer.writeBigSize(this.contractDescriptorType);
|
|
157
|
+
writer.writeBigSize(this.outcomes.length);
|
|
158
|
+
|
|
159
|
+
for (const outcome of this.outcomes) {
|
|
160
|
+
writer.writeBigSize(outcome.outcome.length);
|
|
161
|
+
writer.writeBytes(Buffer.from(outcome.outcome));
|
|
162
|
+
writer.writeUInt64BE(outcome.localPayout);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return writer.toBuffer();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* NumericOutcomeContractDescriptor contains information about a contract's outcomes
|
|
171
|
+
* and their corresponding payouts (for numeric outcomes).
|
|
172
|
+
* This corresponds to the previous ContractDescriptorV1.
|
|
173
|
+
*/
|
|
174
|
+
export class NumericalDescriptor
|
|
175
|
+
extends ContractDescriptor
|
|
176
|
+
implements IDlcMessage {
|
|
177
|
+
public static contractDescriptorType = ContractDescriptorType.NumericOutcome;
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Creates a NumericOutcomeContractDescriptor from JSON data
|
|
181
|
+
* @param json JSON object representing a numeric outcome contract descriptor
|
|
182
|
+
*/
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
184
|
+
public static fromJSON(json: any): NumericalDescriptor {
|
|
185
|
+
const instance = new NumericalDescriptor();
|
|
186
|
+
|
|
187
|
+
instance.numDigits = json.numDigits || json.num_digits || 0;
|
|
188
|
+
|
|
189
|
+
// Parse payout function using proper fromJSON method
|
|
190
|
+
instance.payoutFunction = PayoutFunction.fromJSON(
|
|
191
|
+
json.payoutFunction || json.payout_function,
|
|
192
|
+
);
|
|
193
|
+
|
|
194
|
+
// Parse rounding intervals using proper fromJSON method
|
|
195
|
+
instance.roundingIntervals = RoundingIntervals.fromJSON(
|
|
196
|
+
json.roundingIntervals || json.rounding_intervals,
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
return instance;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Deserializes a numeric_outcome_contract_descriptor message
|
|
204
|
+
* @param buf
|
|
205
|
+
*/
|
|
206
|
+
public static deserialize(buf: Buffer): NumericalDescriptor {
|
|
207
|
+
const instance = new NumericalDescriptor();
|
|
208
|
+
const reader = new BufferReader(buf);
|
|
209
|
+
|
|
210
|
+
reader.readBigSize(); // read type (1)
|
|
211
|
+
instance.numDigits = reader.readUInt16BE();
|
|
212
|
+
|
|
213
|
+
// Parse payout function - need to calculate its size to avoid consuming all bytes
|
|
214
|
+
const payoutFunctionStartPos = reader.position;
|
|
215
|
+
const tempPayoutFunction = PayoutFunction.deserialize(
|
|
216
|
+
reader.buffer.subarray(reader.position),
|
|
217
|
+
);
|
|
218
|
+
instance.payoutFunction = tempPayoutFunction;
|
|
219
|
+
|
|
220
|
+
// Skip past the payout function bytes
|
|
221
|
+
const payoutFunctionSize = tempPayoutFunction.serialize().length;
|
|
222
|
+
reader.position = payoutFunctionStartPos + payoutFunctionSize;
|
|
223
|
+
|
|
224
|
+
// Parse remaining bytes as rounding intervals
|
|
225
|
+
instance.roundingIntervals = RoundingIntervals.deserialize(
|
|
226
|
+
reader.buffer.subarray(reader.position),
|
|
227
|
+
);
|
|
228
|
+
|
|
229
|
+
return instance;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* The type for numeric_outcome_contract_descriptor message - using MessageType for IDlcMessage compatibility
|
|
234
|
+
*/
|
|
235
|
+
public type = MessageType.ContractDescriptorV1; // For IDlcMessage compatibility
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* The contract descriptor type for new format
|
|
239
|
+
*/
|
|
240
|
+
public contractDescriptorType = ContractDescriptorType.NumericOutcome;
|
|
241
|
+
|
|
242
|
+
public numDigits: number;
|
|
243
|
+
|
|
244
|
+
public payoutFunction: PayoutFunction;
|
|
245
|
+
|
|
246
|
+
public roundingIntervals: RoundingIntervals;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Validates correctness of all fields in the message
|
|
250
|
+
* https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md#the-contract_descriptor-type
|
|
251
|
+
* @throws Will throw an error if validation fails
|
|
252
|
+
*/
|
|
253
|
+
public validate(): void {
|
|
254
|
+
this.roundingIntervals.validate();
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Converts numeric_outcome_contract_descriptor to JSON
|
|
259
|
+
*/
|
|
260
|
+
public toJSON(): NumericalDescriptorJSON {
|
|
261
|
+
// Return enum variant format for Rust compatibility
|
|
262
|
+
return {
|
|
263
|
+
numericOutcomeContractDescriptor: {
|
|
264
|
+
numDigits: this.numDigits,
|
|
265
|
+
payoutFunction: this.payoutFunction.toJSON(),
|
|
266
|
+
roundingIntervals: this.roundingIntervals.toJSON(),
|
|
267
|
+
},
|
|
268
|
+
} as any;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Serializes the numeric_outcome_contract_descriptor message into a Buffer
|
|
273
|
+
*/
|
|
274
|
+
public serialize(): Buffer {
|
|
275
|
+
const writer = new BufferWriter();
|
|
276
|
+
|
|
277
|
+
writer.writeBigSize(this.contractDescriptorType);
|
|
278
|
+
writer.writeUInt16BE(this.numDigits);
|
|
279
|
+
writer.writeBytes(this.payoutFunction.serialize());
|
|
280
|
+
writer.writeBytes(this.roundingIntervals.serialize());
|
|
281
|
+
|
|
282
|
+
return writer.toBuffer();
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Legacy support - keeping old class names as aliases
|
|
287
|
+
export const ContractDescriptorV0 = EnumeratedDescriptor;
|
|
288
|
+
export const ContractDescriptorV1 = NumericalDescriptor;
|
|
289
|
+
export type ContractDescriptorV0 = EnumeratedDescriptor;
|
|
290
|
+
export type ContractDescriptorV1 = NumericalDescriptor;
|
|
291
|
+
|
|
292
|
+
interface IOutcome {
|
|
293
|
+
outcome: string;
|
|
294
|
+
localPayout: bigint;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
interface IOutcomeJSON {
|
|
298
|
+
outcome: string;
|
|
299
|
+
localPayout: number;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export interface EnumeratedDescriptorJSON {
|
|
303
|
+
type?: number; // Made optional for rust-dlc compatibility
|
|
304
|
+
contractDescriptorType?: ContractDescriptorType; // Made optional for rust-dlc compatibility
|
|
305
|
+
outcomes: IOutcomeJSON[];
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
export interface NumericalDescriptorJSON {
|
|
309
|
+
type?: number; // Made optional for rust-dlc compatibility
|
|
310
|
+
contractDescriptorType?: ContractDescriptorType; // Made optional for rust-dlc compatibility
|
|
311
|
+
numDigits: number;
|
|
312
|
+
payoutFunction: PayoutFunctionV0JSON;
|
|
313
|
+
roundingIntervals: IRoundingIntervalsJSON;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// Legacy interfaces for backward compatibility
|
|
317
|
+
export type ContractDescriptorV0JSON = EnumeratedDescriptorJSON;
|
|
318
|
+
export type ContractDescriptorV1JSON = NumericalDescriptorJSON;
|