@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,327 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HyperbolaPayoutCurvePiece = exports.PolynomialPayoutCurvePiece = exports.PayoutCurvePiece = void 0;
|
|
4
|
+
const bufio_1 = require("@node-dlc/bufio");
|
|
5
|
+
const MessageType_1 = require("../MessageType");
|
|
6
|
+
const F64_1 = require("../serialize/F64");
|
|
7
|
+
const util_1 = require("../util");
|
|
8
|
+
class PayoutCurvePiece {
|
|
9
|
+
static deserialize(buf) {
|
|
10
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
11
|
+
const typeId = Number(reader.readBigSize());
|
|
12
|
+
switch (typeId) {
|
|
13
|
+
case MessageType_1.PayoutCurvePieceType.Polynomial:
|
|
14
|
+
return PolynomialPayoutCurvePiece.deserialize(buf);
|
|
15
|
+
case MessageType_1.PayoutCurvePieceType.Hyperbola:
|
|
16
|
+
return HyperbolaPayoutCurvePiece.deserialize(buf);
|
|
17
|
+
default:
|
|
18
|
+
throw new Error(`Payout curve piece type must be Polynomial (0) or Hyperbola (1), got ${typeId}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a PayoutCurvePiece from JSON data
|
|
23
|
+
* @param json JSON object representing a payout curve piece
|
|
24
|
+
*/
|
|
25
|
+
static fromJSON(json) {
|
|
26
|
+
if (!json) {
|
|
27
|
+
throw new Error('payoutCurvePiece is required');
|
|
28
|
+
}
|
|
29
|
+
// Handle test vector format with nested types
|
|
30
|
+
if (json.polynomialPayoutCurvePiece) {
|
|
31
|
+
return PolynomialPayoutCurvePiece.fromJSON(json.polynomialPayoutCurvePiece);
|
|
32
|
+
}
|
|
33
|
+
else if (json.hyperbolaPayoutCurvePiece) {
|
|
34
|
+
return HyperbolaPayoutCurvePiece.fromJSON(json.hyperbolaPayoutCurvePiece);
|
|
35
|
+
}
|
|
36
|
+
// Handle direct format
|
|
37
|
+
else if (json.points !== undefined || json.payoutPoints !== undefined) {
|
|
38
|
+
return PolynomialPayoutCurvePiece.fromJSON(json);
|
|
39
|
+
}
|
|
40
|
+
else if (json.usePositivePiece !== undefined) {
|
|
41
|
+
return HyperbolaPayoutCurvePiece.fromJSON(json);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
throw new Error('payoutCurvePiece must be either polynomial (with points) or hyperbola (with usePositivePiece)');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.PayoutCurvePiece = PayoutCurvePiece;
|
|
49
|
+
/**
|
|
50
|
+
* PolynomialPayoutCurvePiece defines a polynomial curve piece for payout functions.
|
|
51
|
+
* This corresponds to type 0 in the sibling sub-type format.
|
|
52
|
+
*/
|
|
53
|
+
class PolynomialPayoutCurvePiece extends PayoutCurvePiece {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
/**
|
|
57
|
+
* The type for polynomial_payout_curve_piece message - Note: this is a sub-component, not a standalone wire message
|
|
58
|
+
*/
|
|
59
|
+
this.type = MessageType_1.MessageType.PolynomialPayoutCurvePiece;
|
|
60
|
+
/**
|
|
61
|
+
* The payout curve piece type for new format
|
|
62
|
+
*/
|
|
63
|
+
this.payoutCurvePieceType = MessageType_1.PayoutCurvePieceType.Polynomial;
|
|
64
|
+
this.points = [];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Creates a PolynomialPayoutCurvePiece from JSON data
|
|
68
|
+
* @param json JSON object representing a polynomial payout curve piece
|
|
69
|
+
*/
|
|
70
|
+
static fromJSON(json) {
|
|
71
|
+
const instance = new PolynomialPayoutCurvePiece();
|
|
72
|
+
const points = json.payoutPoints || json.points || [];
|
|
73
|
+
instance.points = points.map((point) => ({
|
|
74
|
+
eventOutcome: (0, util_1.toBigInt)(point.eventOutcome || point.event_outcome),
|
|
75
|
+
outcomePayout: (0, util_1.toBigInt)(point.outcomePayout || point.outcome_payout),
|
|
76
|
+
extraPrecision: point.extraPrecision || point.extra_precision || 0,
|
|
77
|
+
}));
|
|
78
|
+
return instance;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Deserializes a polynomial_payout_curve_piece message
|
|
82
|
+
* @param buf
|
|
83
|
+
*/
|
|
84
|
+
static deserialize(buf) {
|
|
85
|
+
const instance = new PolynomialPayoutCurvePiece();
|
|
86
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
87
|
+
reader.readBigSize(); // read type (0)
|
|
88
|
+
const numPts = Number(reader.readBigSize());
|
|
89
|
+
for (let i = 0; i < numPts; i++) {
|
|
90
|
+
const eventOutcome = reader.readUInt64BE();
|
|
91
|
+
const outcomePayout = reader.readUInt64BE();
|
|
92
|
+
const extraPrecision = reader.readUInt16BE();
|
|
93
|
+
instance.points.push({
|
|
94
|
+
eventOutcome,
|
|
95
|
+
outcomePayout,
|
|
96
|
+
extraPrecision,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return instance;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Converts polynomial_payout_curve_piece to JSON
|
|
103
|
+
*/
|
|
104
|
+
toJSON() {
|
|
105
|
+
return {
|
|
106
|
+
polynomialPayoutCurvePiece: {
|
|
107
|
+
payoutPoints: this.points.map((point) => {
|
|
108
|
+
return {
|
|
109
|
+
eventOutcome: (0, util_1.bigIntToNumber)(point.eventOutcome),
|
|
110
|
+
outcomePayout: (0, util_1.bigIntToNumber)(point.outcomePayout),
|
|
111
|
+
extraPrecision: Number(point.extraPrecision),
|
|
112
|
+
};
|
|
113
|
+
}),
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Serializes the polynomial_payout_curve_piece message into a Buffer
|
|
119
|
+
*/
|
|
120
|
+
serialize() {
|
|
121
|
+
const writer = new bufio_1.BufferWriter();
|
|
122
|
+
writer.writeBigSize(this.payoutCurvePieceType);
|
|
123
|
+
writer.writeBigSize(this.points.length);
|
|
124
|
+
for (const point of this.points) {
|
|
125
|
+
writer.writeUInt64BE(point.eventOutcome);
|
|
126
|
+
writer.writeUInt64BE(point.outcomePayout);
|
|
127
|
+
writer.writeUInt16BE(point.extraPrecision);
|
|
128
|
+
}
|
|
129
|
+
return writer.toBuffer();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.PolynomialPayoutCurvePiece = PolynomialPayoutCurvePiece;
|
|
133
|
+
PolynomialPayoutCurvePiece.payoutCurvePieceType = MessageType_1.PayoutCurvePieceType.Polynomial;
|
|
134
|
+
/**
|
|
135
|
+
* HyperbolaPayoutCurvePiece defines a hyperbola curve piece for payout functions.
|
|
136
|
+
* This corresponds to type 1 in the sibling sub-type format.
|
|
137
|
+
* Updated to use F64 for precise f64 parameter handling.
|
|
138
|
+
*/
|
|
139
|
+
class HyperbolaPayoutCurvePiece extends PayoutCurvePiece {
|
|
140
|
+
/**
|
|
141
|
+
* Helper function to safely parse F64 values from JSON
|
|
142
|
+
* Handles both number and string inputs for maximum precision
|
|
143
|
+
*/
|
|
144
|
+
static parseF64Value(value) {
|
|
145
|
+
// Check for basic null/undefined
|
|
146
|
+
if (value === null || value === undefined) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
if (typeof value === 'string') {
|
|
151
|
+
// Parse string directly to preserve precision
|
|
152
|
+
try {
|
|
153
|
+
return F64_1.F64.fromString(value);
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
// If fromString fails, try parsing as number
|
|
157
|
+
const numValue = parseFloat(value);
|
|
158
|
+
if (!isNaN(numValue) && isFinite(numValue)) {
|
|
159
|
+
return F64_1.F64.fromNumber(numValue);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else if (typeof value === 'number') {
|
|
164
|
+
// Parse number - handle special cases
|
|
165
|
+
if (!isFinite(value)) {
|
|
166
|
+
return null; // Reject NaN, Infinity, -Infinity
|
|
167
|
+
}
|
|
168
|
+
return F64_1.F64.fromNumber(value);
|
|
169
|
+
}
|
|
170
|
+
// Try to convert other types to number as fallback
|
|
171
|
+
const numValue = Number(value);
|
|
172
|
+
if (!isNaN(numValue) && isFinite(numValue)) {
|
|
173
|
+
return F64_1.F64.fromNumber(numValue);
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Creates a HyperbolaPayoutCurvePiece from JSON data
|
|
183
|
+
* @param json JSON object representing a hyperbola payout curve piece
|
|
184
|
+
*/
|
|
185
|
+
static fromJSON(json) {
|
|
186
|
+
if (!json || typeof json !== 'object')
|
|
187
|
+
return null;
|
|
188
|
+
// Handle both wrapped format and direct format
|
|
189
|
+
let data = json.hyperbolaPayoutCurvePiece || json.hyperbola_payout_curve_piece;
|
|
190
|
+
// If no wrapper found, assume direct format if it has the expected properties
|
|
191
|
+
if (!data &&
|
|
192
|
+
(json.usePositivePiece !== undefined ||
|
|
193
|
+
json.use_positive_piece !== undefined)) {
|
|
194
|
+
data = json;
|
|
195
|
+
}
|
|
196
|
+
if (!data)
|
|
197
|
+
return null;
|
|
198
|
+
try {
|
|
199
|
+
const usePositivePiece = data.usePositivePiece || data.use_positive_piece || false;
|
|
200
|
+
// Parse each F64 value with null check
|
|
201
|
+
const translateOutcome = this.parseF64Value(data.translateOutcome !== undefined
|
|
202
|
+
? data.translateOutcome
|
|
203
|
+
: data.translate_outcome);
|
|
204
|
+
const translatePayout = this.parseF64Value(data.translatePayout !== undefined
|
|
205
|
+
? data.translatePayout
|
|
206
|
+
: data.translate_payout);
|
|
207
|
+
const a = this.parseF64Value(data.a);
|
|
208
|
+
const b = this.parseF64Value(data.b);
|
|
209
|
+
const c = this.parseF64Value(data.c);
|
|
210
|
+
const d = this.parseF64Value(data.d);
|
|
211
|
+
// Check that all required values were parsed successfully
|
|
212
|
+
if (!translateOutcome || !translatePayout || !a || !b || !c || !d) {
|
|
213
|
+
throw new Error('Failed to parse one or more F64 values');
|
|
214
|
+
}
|
|
215
|
+
return new HyperbolaPayoutCurvePiece(usePositivePiece, translateOutcome, translatePayout, a, b, c, d);
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Deserializes a hyperbola_payout_curve_piece message
|
|
223
|
+
* @param buf
|
|
224
|
+
*/
|
|
225
|
+
static deserialize(buf) {
|
|
226
|
+
const instance = new HyperbolaPayoutCurvePiece();
|
|
227
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
228
|
+
reader.readBigSize(); // read type (1)
|
|
229
|
+
instance.usePositivePiece = reader.readUInt8() === 1;
|
|
230
|
+
// Read f64 values using F64 for precise handling - read raw 8-byte buffers
|
|
231
|
+
instance.translateOutcome = F64_1.F64.deserialize(reader.readBytes(8));
|
|
232
|
+
instance.translatePayout = F64_1.F64.deserialize(reader.readBytes(8));
|
|
233
|
+
instance.a = F64_1.F64.deserialize(reader.readBytes(8));
|
|
234
|
+
instance.b = F64_1.F64.deserialize(reader.readBytes(8));
|
|
235
|
+
instance.c = F64_1.F64.deserialize(reader.readBytes(8));
|
|
236
|
+
instance.d = F64_1.F64.deserialize(reader.readBytes(8));
|
|
237
|
+
// Note: leftEndPoint and rightEndPoint are not part of the serialization
|
|
238
|
+
// They will be set by PayoutFunction when creating from JSON
|
|
239
|
+
instance.leftEndPoint = {
|
|
240
|
+
eventOutcome: BigInt(0),
|
|
241
|
+
outcomePayout: BigInt(0),
|
|
242
|
+
extraPrecision: 0,
|
|
243
|
+
};
|
|
244
|
+
instance.rightEndPoint = {
|
|
245
|
+
eventOutcome: BigInt(0),
|
|
246
|
+
outcomePayout: BigInt(0),
|
|
247
|
+
extraPrecision: 0,
|
|
248
|
+
};
|
|
249
|
+
return instance;
|
|
250
|
+
}
|
|
251
|
+
constructor(usePositivePiece = false, translateOutcome, translatePayout, a, b, c, d) {
|
|
252
|
+
super();
|
|
253
|
+
/**
|
|
254
|
+
* The type for hyperbola_payout_curve_piece message - Note: this is a sub-component, not a standalone wire message
|
|
255
|
+
*/
|
|
256
|
+
this.type = MessageType_1.MessageType.HyperbolaPayoutCurvePiece;
|
|
257
|
+
this.payoutCurvePieceType = HyperbolaPayoutCurvePiece.payoutCurvePieceType;
|
|
258
|
+
this.usePositivePiece = usePositivePiece;
|
|
259
|
+
// Convert string inputs to F64 objects, or use existing F64 objects
|
|
260
|
+
this.translateOutcome = translateOutcome
|
|
261
|
+
? typeof translateOutcome === 'string'
|
|
262
|
+
? F64_1.F64.fromString(translateOutcome)
|
|
263
|
+
: translateOutcome
|
|
264
|
+
: F64_1.F64.fromNumber(0);
|
|
265
|
+
this.translatePayout = translatePayout
|
|
266
|
+
? typeof translatePayout === 'string'
|
|
267
|
+
? F64_1.F64.fromString(translatePayout)
|
|
268
|
+
: translatePayout
|
|
269
|
+
: F64_1.F64.fromNumber(0);
|
|
270
|
+
this.a = a
|
|
271
|
+
? typeof a === 'string'
|
|
272
|
+
? F64_1.F64.fromString(a)
|
|
273
|
+
: a
|
|
274
|
+
: F64_1.F64.fromNumber(0);
|
|
275
|
+
this.b = b
|
|
276
|
+
? typeof b === 'string'
|
|
277
|
+
? F64_1.F64.fromString(b)
|
|
278
|
+
: b
|
|
279
|
+
: F64_1.F64.fromNumber(0);
|
|
280
|
+
this.c = c
|
|
281
|
+
? typeof c === 'string'
|
|
282
|
+
? F64_1.F64.fromString(c)
|
|
283
|
+
: c
|
|
284
|
+
: F64_1.F64.fromNumber(0);
|
|
285
|
+
this.d = d
|
|
286
|
+
? typeof d === 'string'
|
|
287
|
+
? F64_1.F64.fromString(d)
|
|
288
|
+
: d
|
|
289
|
+
: F64_1.F64.fromNumber(0);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Converts hyperbola_payout_curve_piece to JSON
|
|
293
|
+
* Uses F64.toJSONValue() which preserves precision by using strings for very large numbers
|
|
294
|
+
*/
|
|
295
|
+
toJSON() {
|
|
296
|
+
return {
|
|
297
|
+
hyperbolaPayoutCurvePiece: {
|
|
298
|
+
usePositivePiece: this.usePositivePiece,
|
|
299
|
+
translateOutcome: this.translateOutcome.toJSONValue(),
|
|
300
|
+
translatePayout: this.translatePayout.toJSONValue(),
|
|
301
|
+
a: this.a.toJSONValue(),
|
|
302
|
+
b: this.b.toJSONValue(),
|
|
303
|
+
c: this.c.toJSONValue(),
|
|
304
|
+
d: this.d.toJSONValue(),
|
|
305
|
+
},
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Serializes the hyperbola_payout_curve_piece message into a Buffer
|
|
310
|
+
*/
|
|
311
|
+
serialize() {
|
|
312
|
+
const writer = new bufio_1.BufferWriter();
|
|
313
|
+
writer.writeBigSize(this.payoutCurvePieceType);
|
|
314
|
+
writer.writeUInt8(this.usePositivePiece ? 1 : 0);
|
|
315
|
+
// Write f64 values using F64 for precise handling - write raw 8-byte buffers
|
|
316
|
+
writer.writeBytes(this.translateOutcome.serialize());
|
|
317
|
+
writer.writeBytes(this.translatePayout.serialize());
|
|
318
|
+
writer.writeBytes(this.a.serialize());
|
|
319
|
+
writer.writeBytes(this.b.serialize());
|
|
320
|
+
writer.writeBytes(this.c.serialize());
|
|
321
|
+
writer.writeBytes(this.d.serialize());
|
|
322
|
+
return writer.toBuffer();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
exports.HyperbolaPayoutCurvePiece = HyperbolaPayoutCurvePiece;
|
|
326
|
+
HyperbolaPayoutCurvePiece.payoutCurvePieceType = MessageType_1.PayoutCurvePieceType.Hyperbola;
|
|
327
|
+
//# sourceMappingURL=PayoutCurvePiece.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayoutCurvePiece.js","sourceRoot":"","sources":["../../lib/messages/PayoutCurvePiece.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { MessageType } from '../MessageType';
|
|
3
|
+
import { IDlcMessage } from './DlcMessage';
|
|
4
|
+
import { HyperbolaPayoutCurvePieceJSON, PayoutCurvePiece, PolynomialPayoutCurvePieceJSON } from './PayoutCurvePiece';
|
|
5
|
+
/**
|
|
6
|
+
* PayoutFunction contains the payout curve definition for numeric outcome contracts.
|
|
7
|
+
* Updated to match rust-dlc format exactly.
|
|
8
|
+
*/
|
|
9
|
+
export declare class PayoutFunction implements IDlcMessage {
|
|
10
|
+
static type: MessageType;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a PayoutFunction from JSON data
|
|
13
|
+
* @param json JSON object representing a payout function
|
|
14
|
+
*/
|
|
15
|
+
static fromJSON(json: any): PayoutFunction;
|
|
16
|
+
/**
|
|
17
|
+
* Deserializes a payout_function message
|
|
18
|
+
* @param buf
|
|
19
|
+
*/
|
|
20
|
+
static deserialize(buf: Buffer): PayoutFunction;
|
|
21
|
+
/**
|
|
22
|
+
* The type for payout_function message. payout_function = 42790
|
|
23
|
+
*/
|
|
24
|
+
type: MessageType;
|
|
25
|
+
payoutFunctionPieces: IPayoutFunctionPiece[];
|
|
26
|
+
lastEndpoint: IPayoutPoint;
|
|
27
|
+
/**
|
|
28
|
+
* Constructor that ensures proper initialization
|
|
29
|
+
*/
|
|
30
|
+
constructor();
|
|
31
|
+
/**
|
|
32
|
+
* Converts payout_function to JSON
|
|
33
|
+
*/
|
|
34
|
+
toJSON(): PayoutFunctionJSON;
|
|
35
|
+
/**
|
|
36
|
+
* Serializes the payout_function message into a Buffer
|
|
37
|
+
*/
|
|
38
|
+
serialize(): Buffer;
|
|
39
|
+
}
|
|
40
|
+
export declare const PayoutFunctionV0: typeof PayoutFunction;
|
|
41
|
+
export type PayoutFunctionV0 = PayoutFunction;
|
|
42
|
+
interface IPayoutPoint {
|
|
43
|
+
eventOutcome: bigint;
|
|
44
|
+
outcomePayout: bigint;
|
|
45
|
+
extraPrecision: number;
|
|
46
|
+
}
|
|
47
|
+
interface IPayoutPointJSON {
|
|
48
|
+
eventOutcome: number;
|
|
49
|
+
outcomePayout: number;
|
|
50
|
+
extraPrecision: number;
|
|
51
|
+
}
|
|
52
|
+
interface IPayoutFunctionPiece {
|
|
53
|
+
endPoint: IPayoutPoint;
|
|
54
|
+
payoutCurvePiece: PayoutCurvePiece;
|
|
55
|
+
}
|
|
56
|
+
interface IPayoutFunctionPieceJSON {
|
|
57
|
+
endPoint: IPayoutPointJSON;
|
|
58
|
+
payoutCurvePiece: PolynomialPayoutCurvePieceJSON | HyperbolaPayoutCurvePieceJSON;
|
|
59
|
+
}
|
|
60
|
+
export interface PayoutFunctionJSON {
|
|
61
|
+
type?: number;
|
|
62
|
+
payoutFunctionPieces: IPayoutFunctionPieceJSON[];
|
|
63
|
+
lastEndpoint: IPayoutPointJSON;
|
|
64
|
+
}
|
|
65
|
+
export type PayoutFunctionV0JSON = PayoutFunctionJSON;
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PayoutFunctionV0 = exports.PayoutFunction = void 0;
|
|
4
|
+
const bufio_1 = require("@node-dlc/bufio");
|
|
5
|
+
const MessageType_1 = require("../MessageType");
|
|
6
|
+
const util_1 = require("../util");
|
|
7
|
+
const PayoutCurvePiece_1 = require("./PayoutCurvePiece");
|
|
8
|
+
/**
|
|
9
|
+
* PayoutFunction contains the payout curve definition for numeric outcome contracts.
|
|
10
|
+
* Updated to match rust-dlc format exactly.
|
|
11
|
+
*/
|
|
12
|
+
class PayoutFunction {
|
|
13
|
+
/**
|
|
14
|
+
* Creates a PayoutFunction from JSON data
|
|
15
|
+
* @param json JSON object representing a payout function
|
|
16
|
+
*/
|
|
17
|
+
static fromJSON(json) {
|
|
18
|
+
const instance = new PayoutFunction();
|
|
19
|
+
// Parse payout function pieces
|
|
20
|
+
const pieces = json.payoutFunctionPieces || json.payout_function_pieces || [];
|
|
21
|
+
instance.payoutFunctionPieces = pieces.map((pieceJson, index) => {
|
|
22
|
+
const piece = {
|
|
23
|
+
endPoint: {
|
|
24
|
+
eventOutcome: (0, util_1.toBigInt)(pieceJson.endPoint?.eventOutcome),
|
|
25
|
+
outcomePayout: (0, util_1.toBigInt)(pieceJson.endPoint?.outcomePayout),
|
|
26
|
+
extraPrecision: pieceJson.endPoint?.extraPrecision || 0,
|
|
27
|
+
},
|
|
28
|
+
payoutCurvePiece: PayoutCurvePiece_1.PayoutCurvePiece.fromJSON(pieceJson.payoutCurvePiece || pieceJson.payout_curve_piece),
|
|
29
|
+
};
|
|
30
|
+
// For HyperbolaPayoutCurvePiece, set the left and right end points
|
|
31
|
+
if (piece.payoutCurvePiece instanceof PayoutCurvePiece_1.HyperbolaPayoutCurvePiece) {
|
|
32
|
+
const hyperbola = piece.payoutCurvePiece;
|
|
33
|
+
// Left end point is this piece's endPoint
|
|
34
|
+
hyperbola.leftEndPoint = piece.endPoint;
|
|
35
|
+
// Right end point is the next piece's endPoint, or lastEndpoint if this is the last piece
|
|
36
|
+
if (index < pieces.length - 1) {
|
|
37
|
+
const nextPiece = pieces[index + 1];
|
|
38
|
+
hyperbola.rightEndPoint = {
|
|
39
|
+
eventOutcome: (0, util_1.toBigInt)(nextPiece.endPoint?.eventOutcome),
|
|
40
|
+
outcomePayout: (0, util_1.toBigInt)(nextPiece.endPoint?.outcomePayout),
|
|
41
|
+
extraPrecision: nextPiece.endPoint?.extraPrecision || 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Use lastEndpoint for the final piece
|
|
46
|
+
const lastEndpoint = json.lastEndpoint || json.last_endpoint || {};
|
|
47
|
+
hyperbola.rightEndPoint = {
|
|
48
|
+
eventOutcome: (0, util_1.toBigInt)(lastEndpoint.eventOutcome),
|
|
49
|
+
outcomePayout: (0, util_1.toBigInt)(lastEndpoint.outcomePayout),
|
|
50
|
+
extraPrecision: lastEndpoint.extraPrecision || 0,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return piece;
|
|
55
|
+
});
|
|
56
|
+
// Parse last endpoint
|
|
57
|
+
const lastEndpoint = json.lastEndpoint || json.last_endpoint;
|
|
58
|
+
if (lastEndpoint) {
|
|
59
|
+
instance.lastEndpoint = {
|
|
60
|
+
eventOutcome: (0, util_1.toBigInt)(lastEndpoint.eventOutcome),
|
|
61
|
+
outcomePayout: (0, util_1.toBigInt)(lastEndpoint.outcomePayout),
|
|
62
|
+
extraPrecision: lastEndpoint.extraPrecision || 0,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// Default last endpoint if not provided
|
|
67
|
+
instance.lastEndpoint = {
|
|
68
|
+
eventOutcome: BigInt(0),
|
|
69
|
+
outcomePayout: BigInt(0),
|
|
70
|
+
extraPrecision: 0,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return instance;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Deserializes a payout_function message
|
|
77
|
+
* @param buf
|
|
78
|
+
*/
|
|
79
|
+
static deserialize(buf) {
|
|
80
|
+
const instance = new PayoutFunction();
|
|
81
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
82
|
+
// Read payout function pieces (as vec)
|
|
83
|
+
const numPieces = Number(reader.readBigSize());
|
|
84
|
+
for (let i = 0; i < numPieces; i++) {
|
|
85
|
+
// Read end_point first
|
|
86
|
+
const eventOutcome = reader.readUInt64BE();
|
|
87
|
+
const outcomePayout = reader.readUInt64BE();
|
|
88
|
+
const extraPrecision = reader.readUInt16BE();
|
|
89
|
+
// Read payout curve piece
|
|
90
|
+
const payoutCurvePieceStartPos = reader.position;
|
|
91
|
+
const payoutCurvePiece = PayoutCurvePiece_1.PayoutCurvePiece.deserialize(reader.buffer.subarray(reader.position));
|
|
92
|
+
// Skip past the payout curve piece bytes
|
|
93
|
+
const payoutCurvePieceSize = payoutCurvePiece.serialize().length;
|
|
94
|
+
reader.position = payoutCurvePieceStartPos + payoutCurvePieceSize;
|
|
95
|
+
instance.payoutFunctionPieces.push({
|
|
96
|
+
endPoint: {
|
|
97
|
+
eventOutcome,
|
|
98
|
+
outcomePayout,
|
|
99
|
+
extraPrecision,
|
|
100
|
+
},
|
|
101
|
+
payoutCurvePiece,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// Read last_endpoint
|
|
105
|
+
instance.lastEndpoint = {
|
|
106
|
+
eventOutcome: reader.readUInt64BE(),
|
|
107
|
+
outcomePayout: reader.readUInt64BE(),
|
|
108
|
+
extraPrecision: reader.readUInt16BE(),
|
|
109
|
+
};
|
|
110
|
+
return instance;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Constructor that ensures proper initialization
|
|
114
|
+
*/
|
|
115
|
+
constructor() {
|
|
116
|
+
/**
|
|
117
|
+
* The type for payout_function message. payout_function = 42790
|
|
118
|
+
*/
|
|
119
|
+
this.type = PayoutFunction.type;
|
|
120
|
+
this.payoutFunctionPieces = [];
|
|
121
|
+
// Explicitly initialize arrays to handle file-linking issues
|
|
122
|
+
this.payoutFunctionPieces = [];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Converts payout_function to JSON
|
|
126
|
+
*/
|
|
127
|
+
toJSON() {
|
|
128
|
+
return {
|
|
129
|
+
payoutFunctionPieces: this.payoutFunctionPieces.map((piece) => ({
|
|
130
|
+
endPoint: {
|
|
131
|
+
eventOutcome: (0, util_1.bigIntToNumber)(piece.endPoint.eventOutcome),
|
|
132
|
+
outcomePayout: (0, util_1.bigIntToNumber)(piece.endPoint.outcomePayout),
|
|
133
|
+
extraPrecision: piece.endPoint.extraPrecision,
|
|
134
|
+
},
|
|
135
|
+
payoutCurvePiece: piece.payoutCurvePiece.toJSON(),
|
|
136
|
+
})),
|
|
137
|
+
lastEndpoint: {
|
|
138
|
+
eventOutcome: (0, util_1.bigIntToNumber)(this.lastEndpoint.eventOutcome),
|
|
139
|
+
outcomePayout: (0, util_1.bigIntToNumber)(this.lastEndpoint.outcomePayout),
|
|
140
|
+
extraPrecision: this.lastEndpoint.extraPrecision,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Serializes the payout_function message into a Buffer
|
|
146
|
+
*/
|
|
147
|
+
serialize() {
|
|
148
|
+
const writer = new bufio_1.BufferWriter();
|
|
149
|
+
// Write payout_function_pieces as vec (length + elements)
|
|
150
|
+
writer.writeBigSize(this.payoutFunctionPieces.length);
|
|
151
|
+
for (const piece of this.payoutFunctionPieces) {
|
|
152
|
+
// Write end_point first (matches rust order)
|
|
153
|
+
writer.writeUInt64BE(piece.endPoint.eventOutcome);
|
|
154
|
+
writer.writeUInt64BE(piece.endPoint.outcomePayout);
|
|
155
|
+
writer.writeUInt16BE(piece.endPoint.extraPrecision);
|
|
156
|
+
// Write payout_curve_piece second
|
|
157
|
+
writer.writeBytes(piece.payoutCurvePiece.serialize());
|
|
158
|
+
}
|
|
159
|
+
// Write last_endpoint
|
|
160
|
+
writer.writeUInt64BE(this.lastEndpoint.eventOutcome);
|
|
161
|
+
writer.writeUInt64BE(this.lastEndpoint.outcomePayout);
|
|
162
|
+
writer.writeUInt16BE(this.lastEndpoint.extraPrecision);
|
|
163
|
+
return writer.toBuffer();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.PayoutFunction = PayoutFunction;
|
|
167
|
+
PayoutFunction.type = MessageType_1.MessageType.PayoutFunction;
|
|
168
|
+
// Legacy support
|
|
169
|
+
exports.PayoutFunctionV0 = PayoutFunction;
|
|
170
|
+
//# sourceMappingURL=PayoutFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayoutFunction.js","sourceRoot":"","sources":["../../lib/messages/PayoutFunction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { MessageType } from '../MessageType';
|
|
3
|
+
import { IDlcMessage } from './DlcMessage';
|
|
4
|
+
/**
|
|
5
|
+
* RoundingIntervals defines rounding intervals for numeric outcome contracts.
|
|
6
|
+
* Updated to match dlcspecs format (no longer uses TLV).
|
|
7
|
+
*/
|
|
8
|
+
export declare class RoundingIntervals implements IDlcMessage {
|
|
9
|
+
static type: MessageType;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a RoundingIntervals from JSON data
|
|
12
|
+
* @param json JSON object representing rounding intervals
|
|
13
|
+
*/
|
|
14
|
+
static fromJSON(json: any): RoundingIntervals;
|
|
15
|
+
/**
|
|
16
|
+
* Deserializes a rounding_intervals message
|
|
17
|
+
* @param buf
|
|
18
|
+
*/
|
|
19
|
+
static deserialize(buf: Buffer): RoundingIntervals;
|
|
20
|
+
/**
|
|
21
|
+
* The type for rounding_intervals message. rounding_intervals = 42788
|
|
22
|
+
*/
|
|
23
|
+
type: MessageType;
|
|
24
|
+
intervals: IInterval[];
|
|
25
|
+
/**
|
|
26
|
+
* Validates correctness of all fields in the message
|
|
27
|
+
* https://github.com/discreetlogcontracts/dlcspecs/blob/master/NumericOutcome.md#requirements
|
|
28
|
+
* @throws Will throw an error if validation fails
|
|
29
|
+
*/
|
|
30
|
+
validate(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Converts rounding_intervals to JSON
|
|
33
|
+
*/
|
|
34
|
+
toJSON(): IRoundingIntervalsJSON;
|
|
35
|
+
/**
|
|
36
|
+
* Serializes the rounding_intervals message into a Buffer
|
|
37
|
+
*/
|
|
38
|
+
serialize(): Buffer;
|
|
39
|
+
}
|
|
40
|
+
interface IInterval {
|
|
41
|
+
beginInterval: bigint;
|
|
42
|
+
roundingMod: bigint;
|
|
43
|
+
}
|
|
44
|
+
interface IIntervalJSON {
|
|
45
|
+
beginInterval: number;
|
|
46
|
+
roundingMod: number;
|
|
47
|
+
}
|
|
48
|
+
export interface IRoundingIntervalsJSON {
|
|
49
|
+
type?: number;
|
|
50
|
+
intervals: IIntervalJSON[];
|
|
51
|
+
}
|
|
52
|
+
export {};
|