@atomicfinance/bitcoin-dlc-provider 3.6.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nvmrc +1 -1
- package/.turbo/turbo-build.log +1 -0
- package/.turbo/turbo-test.log +0 -0
- package/.yalc/@node-dlc/messaging/.nyc_output/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
- package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
- package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/index.json +1 -0
- package/.yalc/@node-dlc/messaging/README.md +24 -0
- package/.yalc/@node-dlc/messaging/__tests__/_test-utils.ts +12 -0
- package/.yalc/@node-dlc/messaging/__tests__/chain/ChainManager.spec.ts +178 -0
- package/.yalc/@node-dlc/messaging/__tests__/compatibility/dlcspecs-compatibility.spec.ts +473 -0
- package/.yalc/@node-dlc/messaging/__tests__/compatibility/rust-dlc-cross-language.spec.ts +342 -0
- package/.yalc/@node-dlc/messaging/__tests__/compatibility/true-serialization-compatibility.spec.ts +611 -0
- package/.yalc/@node-dlc/messaging/__tests__/dlc_message_test.json +155 -0
- package/.yalc/@node-dlc/messaging/__tests__/irc/IrcMessage.spec.ts +94 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/AddressCache.spec.ts +79 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/BatchFundingGroup.spec.ts +72 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/CetAdaptorSignatures.spec.ts +57 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/ContractDescriptor.spec.ts +264 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/ContractInfo.spec.ts +419 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DigitDecompositionEventDescriptor.spec.ts +59 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcAccept.spec.ts +242 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcCancel.spec.ts +42 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcClose.spec.ts +315 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcOffer.spec.ts +527 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcSign.spec.ts +118 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/DlcTransactions.spec.ts +157 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/EnumEventDescriptor.spec.ts +50 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/EventDescriptor.spec.ts +93 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/FundingInput.spec.ts +84 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/FundingSignatures.spec.ts +83 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/NegotiationFields.spec.ts +328 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/NodeAnnouncementMessage.spec.ts +115 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAnnouncement.spec.ts +415 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAttestation.spec.ts +326 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEvent.spec.ts +143 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEventContainer.spec.ts +95 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleIdentifier.spec.ts +48 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OracleInfo.spec.ts +116 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderAccept.spec.ts +77 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderNegotiationFields.spec.ts +216 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderOffer.spec.ts +121 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/OrderPositionInfo.spec.ts +75 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutCurvePiece.spec.ts +220 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutFunction.spec.ts +101 -0
- package/.yalc/@node-dlc/messaging/__tests__/messages/RoundingIntervals.spec.ts +75 -0
- package/.yalc/@node-dlc/messaging/__tests__/serialize/F64.spec.ts +260 -0
- package/.yalc/@node-dlc/messaging/__tests__/tsconfig.json +8 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/base.css +224 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/block-navigation.js +79 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/favicon.png +0 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/index.html +201 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/MessageType.ts.html +494 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainManager.ts.html +1058 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainMemoryStore.ts.html +182 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/index.html +126 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/Address.ts.html +272 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.html +141 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.ts.html +212 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/IrcMessage.ts.html +563 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/AddressCache.ts.html +302 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/BatchFundingGroup.ts.html +503 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignatures.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignaturesV0.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractDescriptor.ts.html +1040 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractInfo.ts.html +1382 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcAccept.ts.html +1865 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCancel.ts.html +251 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcClose.ts.html +986 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCloseMetadata.ts.html +443 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcIds.ts.html +281 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInfo.ts.html +323 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcMessage.ts.html +341 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcOffer.ts.html +1895 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcSign.ts.html +1142 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcTransactions.ts.html +719 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/EventDescriptor.ts.html +947 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingInput.ts.html +728 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignatures.ts.html +374 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignaturesV0.ts.html +374 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NegotiationFields.ts.html +836 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NodeAnnouncementMessage.ts.html +515 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncement.ts.html +608 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncementV0.ts.html +605 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestation.ts.html +956 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestationV0.ts.html +770 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEvent.ts.html +830 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainer.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainerV0.ts.html +347 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventV0.ts.html +827 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifier.ts.html +314 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifierV0.ts.html +314 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfo.ts.html +1637 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfoV0.ts.html +1631 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderAccept.ts.html +557 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderIrcInfo.ts.html +380 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderMetadata.ts.html +437 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderNegotiationFields.ts.html +551 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderOffer.ts.html +1337 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderPositionInfo.ts.html +590 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutCurvePiece.ts.html +1427 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutFunction.ts.html +800 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervals.ts.html +461 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervalsV0.ts.html +482 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ScriptWitnessV0.ts.html +269 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/index.html +636 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/SerdeUtils.ts.html +1394 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/F64.ts.html +1136 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/deserializeTlv.ts.html +125 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/getTlv.ts.html +143 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/index.html +141 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/util.ts.html +179 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/index.html +111 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/validate.ts.html +182 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.css +1 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.js +2 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov-report/sorter.js +170 -0
- package/.yalc/@node-dlc/messaging/coverage/lcov.info +5394 -0
- package/.yalc/@node-dlc/messaging/dist/MessageType.d.ts +100 -0
- package/.yalc/@node-dlc/messaging/dist/MessageType.js +117 -0
- package/.yalc/@node-dlc/messaging/dist/MessageType.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.d.ts +50 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js +211 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.d.ts +14 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js +28 -0
- package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.d.ts +11 -0
- package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js +3 -0
- package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.d.ts +48 -0
- package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js +3 -0
- package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/domain/Address.d.ts +24 -0
- package/.yalc/@node-dlc/messaging/dist/domain/Address.js +46 -0
- package/.yalc/@node-dlc/messaging/dist/domain/Address.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/index.d.ts +44 -0
- package/.yalc/@node-dlc/messaging/dist/index.js +63 -0
- package/.yalc/@node-dlc/messaging/dist/index.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.d.ts +43 -0
- package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js +116 -0
- package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.d.ts +15 -0
- package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js +51 -0
- package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.d.ts +61 -0
- package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js +113 -0
- package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.d.ts +40 -0
- package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js +67 -0
- package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.d.ts +122 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js +222 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.d.ts +135 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js +304 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.d.ts +145 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js +428 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.d.ts +31 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js +51 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.d.ts +68 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js +210 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.d.ts +44 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js +74 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.d.ts +26 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js +58 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.d.ts +31 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js +61 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.d.ts +23 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js +54 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.d.ts +131 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js +418 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.d.ts +96 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js +267 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.d.ts +69 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js +149 -0
- package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.d.ts +106 -0
- package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js +209 -0
- package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.d.ts +62 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js +163 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.d.ts +36 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js +78 -0
- package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.d.ts +6 -0
- package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js +3 -0
- package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.d.ts +86 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js +185 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.d.ts +57 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js +127 -0
- package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.d.ts +76 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js +131 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.d.ts +68 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js +239 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.d.ts +90 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js +189 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.d.ts +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js +67 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.d.ts +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js +58 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.d.ts +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js +58 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.d.ts +161 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js +390 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.d.ts +161 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js +387 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.d.ts +65 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js +125 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.d.ts +42 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js +74 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.d.ts +56 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js +87 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.d.ts +69 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js +114 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.d.ts +97 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js +296 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.d.ts +50 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js +125 -0
- package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.d.ts +129 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js +327 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.d.ts +66 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js +170 -0
- package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.d.ts +52 -0
- package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js +95 -0
- package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.d.ts +29 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js +50 -0
- package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/messages/Tlv.d.ts +15 -0
- package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js +32 -0
- package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/F64.d.ts +154 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/F64.js +307 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/F64.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.d.ts +9 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js +11 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.d.ts +4 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js +23 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.d.ts +8 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js +33 -0
- package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/util.d.ts +13 -0
- package/.yalc/@node-dlc/messaging/dist/util.js +40 -0
- package/.yalc/@node-dlc/messaging/dist/util.js.map +1 -0
- package/.yalc/@node-dlc/messaging/dist/validation/validate.d.ts +4 -0
- package/.yalc/@node-dlc/messaging/dist/validation/validate.js +31 -0
- package/.yalc/@node-dlc/messaging/dist/validation/validate.js.map +1 -0
- package/.yalc/@node-dlc/messaging/lib/MessageType.ts +138 -0
- package/.yalc/@node-dlc/messaging/lib/chain/ChainManager.ts +326 -0
- package/.yalc/@node-dlc/messaging/lib/chain/ChainMemoryStore.ts +34 -0
- package/.yalc/@node-dlc/messaging/lib/chain/DlcStore.ts +11 -0
- package/.yalc/@node-dlc/messaging/lib/chain/IChainFilterChainClient.ts +57 -0
- package/.yalc/@node-dlc/messaging/lib/domain/Address.ts +64 -0
- package/.yalc/@node-dlc/messaging/lib/index.ts +44 -0
- package/.yalc/@node-dlc/messaging/lib/irc/IrcMessage.ts +161 -0
- package/.yalc/@node-dlc/messaging/lib/messages/AddressCache.ts +74 -0
- package/.yalc/@node-dlc/messaging/lib/messages/BatchFundingGroup.ts +141 -0
- package/.yalc/@node-dlc/messaging/lib/messages/CetAdaptorSignatures.ts +89 -0
- package/.yalc/@node-dlc/messaging/lib/messages/ContractDescriptor.ts +318 -0
- package/.yalc/@node-dlc/messaging/lib/messages/ContractInfo.ts +434 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcAccept.ts +595 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcCancel.ts +57 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcClose.ts +302 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcCloseMetadata.ts +121 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcIds.ts +67 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcInfo.ts +81 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcMessage.ts +87 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcOffer.ts +605 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcSign.ts +354 -0
- package/.yalc/@node-dlc/messaging/lib/messages/DlcTransactions.ts +213 -0
- package/.yalc/@node-dlc/messaging/lib/messages/EventDescriptor.ts +289 -0
- package/.yalc/@node-dlc/messaging/lib/messages/FundingInput.ts +216 -0
- package/.yalc/@node-dlc/messaging/lib/messages/FundingSignatures.ts +98 -0
- package/.yalc/@node-dlc/messaging/lib/messages/IWireMessage.ts +6 -0
- package/.yalc/@node-dlc/messaging/lib/messages/NegotiationFields.ts +252 -0
- package/.yalc/@node-dlc/messaging/lib/messages/NodeAnnouncementMessage.ts +145 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleAnnouncement.ts +176 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleAttestation.ts +292 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleEvent.ts +250 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleEventContainer.ts +89 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleIdentifier.ts +78 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OracleInfo.ts +519 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderAccept.ts +159 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderIrcInfo.ts +100 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderMetadata.ts +119 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderNegotiationFields.ts +157 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderOffer.ts +419 -0
- package/.yalc/@node-dlc/messaging/lib/messages/OrderPositionInfo.ts +170 -0
- package/.yalc/@node-dlc/messaging/lib/messages/PayoutCurvePiece.ts +449 -0
- package/.yalc/@node-dlc/messaging/lib/messages/PayoutFunction.ts +240 -0
- package/.yalc/@node-dlc/messaging/lib/messages/RoundingIntervals.ts +127 -0
- package/.yalc/@node-dlc/messaging/lib/messages/ScriptWitnessV0.ts +63 -0
- package/.yalc/@node-dlc/messaging/lib/messages/Tlv.ts +40 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/F64.ts +352 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/deserializeTlv.ts +15 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/getTlv.ts +21 -0
- package/.yalc/@node-dlc/messaging/lib/serialize/readTlvs.ts +37 -0
- package/.yalc/@node-dlc/messaging/lib/util.ts +33 -0
- package/.yalc/@node-dlc/messaging/lib/validation/validate.ts +34 -0
- package/.yalc/@node-dlc/messaging/package.json +42 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_3_test.json +210 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_5_test.json +468 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_3_of_5_test.json +1517 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_5_of_5_test.json +545 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_3_of_5_test.json +4761 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_5_of_5_test.json +2169 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_single_oracle_test.json +164 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_hyperbola_test.json +502 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_test.json +262 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_five_oracle_numerical_with_diff_test.json +4382 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_test.json +324 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_with_diff_test.json +652 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_test.json +1138 -0
- package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_with_diff_test.json +2222 -0
- package/.yalc/@node-dlc/messaging/test_vectors/oracle/external_oracle_announcements.json +0 -0
- package/.yalc/@node-dlc/messaging/test_vectors/oracle/oracle_message_test_vectors.json +115 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/accept_msg.json +1465 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test.json +12362 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test_scripts.json +57 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_test.json +2766 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_tx_test.json +2899 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg.json +163 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg_disjoint.json +352 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_chunk_msg.json +12635 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_start_msg.json +4022 -0
- package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/sign_msg.json +383 -0
- package/.yalc/@node-dlc/messaging/tsconfig.json +7 -0
- package/.yalc/@node-dlc/messaging/yalc.sig +1 -0
- package/CHANGELOG.md +83 -0
- package/dist/BitcoinDlcProvider.d.ts +17 -16
- package/dist/BitcoinDlcProvider.js +375 -317
- 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 +637 -621
- package/lib/utils/Utils.ts +19 -24
- package/package.json +13 -11
- package/yalc.lock +10 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrderOfferContainer = exports.OrderOffer = void 0;
|
|
4
|
+
const bufio_1 = require("@node-dlc/bufio");
|
|
5
|
+
const MessageType_1 = require("../MessageType");
|
|
6
|
+
const deserializeTlv_1 = require("../serialize/deserializeTlv");
|
|
7
|
+
const getTlv_1 = require("../serialize/getTlv");
|
|
8
|
+
const util_1 = require("../util");
|
|
9
|
+
const BatchFundingGroup_1 = require("./BatchFundingGroup");
|
|
10
|
+
const ContractInfo_1 = require("./ContractInfo");
|
|
11
|
+
const OrderIrcInfo_1 = require("./OrderIrcInfo");
|
|
12
|
+
const OrderMetadata_1 = require("./OrderMetadata");
|
|
13
|
+
const OrderPositionInfo_1 = require("./OrderPositionInfo");
|
|
14
|
+
const LOCKTIME_THRESHOLD = 500000000;
|
|
15
|
+
/**
|
|
16
|
+
* OrderOffer message contains information about a node and indicates its
|
|
17
|
+
* desire to enter into a new contract. This is the first step toward
|
|
18
|
+
* order negotiation. This is a simpler message than DlcOffer.
|
|
19
|
+
*/
|
|
20
|
+
class OrderOffer {
|
|
21
|
+
constructor() {
|
|
22
|
+
/**
|
|
23
|
+
* The type for order_offer message. order_offer = 62770
|
|
24
|
+
*/
|
|
25
|
+
this.type = OrderOffer.type;
|
|
26
|
+
// New fields as per dlcspecs PR #163
|
|
27
|
+
this.protocolVersion = MessageType_1.PROTOCOL_VERSION; // Default to current protocol version
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates an OrderOffer from JSON data
|
|
31
|
+
* @param json JSON object representing an order offer
|
|
32
|
+
*/
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
34
|
+
static fromJSON(json) {
|
|
35
|
+
const instance = new OrderOffer();
|
|
36
|
+
// Basic fields with field name variations
|
|
37
|
+
instance.protocolVersion =
|
|
38
|
+
json.protocolVersion || json.protocol_version || MessageType_1.PROTOCOL_VERSION;
|
|
39
|
+
instance.contractFlags = Buffer.from(json.contractFlags || json.contract_flags || '00', 'hex');
|
|
40
|
+
instance.chainHash = Buffer.from(json.chainHash || json.chain_hash, 'hex');
|
|
41
|
+
instance.temporaryContractId = Buffer.from(json.temporaryContractId || json.temporary_contract_id, 'hex');
|
|
42
|
+
// Use toBigInt helper to handle BigInt values from json-bigint
|
|
43
|
+
instance.offerCollateral = (0, util_1.toBigInt)(json.offerCollateral ||
|
|
44
|
+
json.offerCollateralSatoshis ||
|
|
45
|
+
json.offer_collateral);
|
|
46
|
+
instance.feeRatePerVb = (0, util_1.toBigInt)(json.feeRatePerVb || json.fee_rate_per_vb);
|
|
47
|
+
instance.cetLocktime = json.cetLocktime || json.cet_locktime || 0;
|
|
48
|
+
instance.refundLocktime = json.refundLocktime || json.refund_locktime || 0;
|
|
49
|
+
// Use ContractInfo.fromJSON() - proper delegation
|
|
50
|
+
instance.contractInfo = ContractInfo_1.ContractInfo.fromJSON(json.contractInfo || json.contract_info);
|
|
51
|
+
return instance;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Deserializes an order_offer message
|
|
55
|
+
* @param buf
|
|
56
|
+
*/
|
|
57
|
+
static deserialize(buf) {
|
|
58
|
+
const instance = new OrderOffer();
|
|
59
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
60
|
+
const type = reader.readUInt16BE(); // read type
|
|
61
|
+
// Validate type matches expected OrderOffer type
|
|
62
|
+
if (type !== MessageType_1.MessageType.OrderOffer) {
|
|
63
|
+
throw new Error(`Invalid message type. Expected ${MessageType_1.MessageType.OrderOffer}, got ${type}`);
|
|
64
|
+
}
|
|
65
|
+
// BACKWARD COMPATIBILITY: Detect old vs new format
|
|
66
|
+
const nextBytes = reader.buffer.subarray(reader.position, reader.position + 5);
|
|
67
|
+
const possibleProtocolVersion = nextBytes.readUInt32BE(0);
|
|
68
|
+
const possibleContractFlags = nextBytes.readUInt8(4);
|
|
69
|
+
// Heuristic: protocol_version should be 1, contract_flags should be 0
|
|
70
|
+
const isNewFormat = possibleProtocolVersion >= 1 &&
|
|
71
|
+
possibleProtocolVersion <= 10 &&
|
|
72
|
+
possibleContractFlags === 0;
|
|
73
|
+
if (isNewFormat) {
|
|
74
|
+
// New format with protocol_version
|
|
75
|
+
instance.protocolVersion = reader.readUInt32BE();
|
|
76
|
+
instance.contractFlags = reader.readBytes(1);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Old format without protocol_version
|
|
80
|
+
instance.protocolVersion = 1; // Default to version 1
|
|
81
|
+
instance.contractFlags = reader.readBytes(1);
|
|
82
|
+
}
|
|
83
|
+
instance.chainHash = reader.readBytes(32);
|
|
84
|
+
instance.temporaryContractId = reader.readBytes(32);
|
|
85
|
+
// ContractInfo is serialized as sibling type in dlcspecs PR #163 format
|
|
86
|
+
instance.contractInfo = ContractInfo_1.ContractInfo.deserialize(reader.buffer.subarray(reader.position));
|
|
87
|
+
// Skip past the ContractInfo we just read
|
|
88
|
+
const contractInfoLength = instance.contractInfo.serialize().length;
|
|
89
|
+
reader.position += contractInfoLength;
|
|
90
|
+
instance.offerCollateral = reader.readUInt64BE();
|
|
91
|
+
instance.feeRatePerVb = reader.readUInt64BE();
|
|
92
|
+
instance.cetLocktime = reader.readUInt32BE();
|
|
93
|
+
instance.refundLocktime = reader.readUInt32BE();
|
|
94
|
+
// Parse TLV stream as per dlcspecs PR #163
|
|
95
|
+
while (!reader.eof) {
|
|
96
|
+
const buf = (0, getTlv_1.getTlv)(reader);
|
|
97
|
+
const tlvReader = new bufio_1.BufferReader(buf);
|
|
98
|
+
const { type } = (0, deserializeTlv_1.deserializeTlv)(tlvReader);
|
|
99
|
+
switch (Number(type)) {
|
|
100
|
+
case MessageType_1.MessageType.OrderMetadataV0:
|
|
101
|
+
instance.metadata = OrderMetadata_1.OrderMetadataV0.deserialize(buf);
|
|
102
|
+
break;
|
|
103
|
+
case MessageType_1.MessageType.OrderIrcInfoV0:
|
|
104
|
+
instance.ircInfo = OrderIrcInfo_1.OrderIrcInfoV0.deserialize(buf);
|
|
105
|
+
break;
|
|
106
|
+
case MessageType_1.MessageType.OrderPositionInfoV0:
|
|
107
|
+
instance.positionInfo = OrderPositionInfo_1.OrderPositionInfo.deserialize(buf);
|
|
108
|
+
break;
|
|
109
|
+
case MessageType_1.MessageType.BatchFundingGroup:
|
|
110
|
+
if (!instance.batchFundingGroups) {
|
|
111
|
+
instance.batchFundingGroups = [];
|
|
112
|
+
}
|
|
113
|
+
instance.batchFundingGroups.push(BatchFundingGroup_1.BatchFundingGroup.deserialize(buf));
|
|
114
|
+
break;
|
|
115
|
+
default:
|
|
116
|
+
// Store unknown TLVs for future compatibility
|
|
117
|
+
if (!instance.unknownTlvs) {
|
|
118
|
+
instance.unknownTlvs = [];
|
|
119
|
+
}
|
|
120
|
+
instance.unknownTlvs.push({ type: Number(type), data: buf });
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return instance;
|
|
125
|
+
}
|
|
126
|
+
// Legacy property for backward compatibility
|
|
127
|
+
get offerCollateralSatoshis() {
|
|
128
|
+
return this.offerCollateral;
|
|
129
|
+
}
|
|
130
|
+
set offerCollateralSatoshis(value) {
|
|
131
|
+
this.offerCollateral = value;
|
|
132
|
+
}
|
|
133
|
+
validate() {
|
|
134
|
+
// 1. Type is set automatically in class
|
|
135
|
+
// 2. protocol_version validation
|
|
136
|
+
if (this.protocolVersion !== MessageType_1.PROTOCOL_VERSION) {
|
|
137
|
+
throw new Error(`Unsupported protocol version: ${this.protocolVersion}, expected: ${MessageType_1.PROTOCOL_VERSION}`);
|
|
138
|
+
}
|
|
139
|
+
// 3. temporary_contract_id validation
|
|
140
|
+
if (!this.temporaryContractId || this.temporaryContractId.length !== 32) {
|
|
141
|
+
throw new Error('temporaryContractId must be 32 bytes');
|
|
142
|
+
}
|
|
143
|
+
// 4. contract_flags field is ignored
|
|
144
|
+
// 5. chain_hash must be validated as input by end user
|
|
145
|
+
// 6. offer_collateral must be greater than or equal to 1000
|
|
146
|
+
if (this.offerCollateral < 1000) {
|
|
147
|
+
throw new Error('offer_collateral must be greater than or equal to 1000');
|
|
148
|
+
}
|
|
149
|
+
if (this.cetLocktime < 0) {
|
|
150
|
+
throw new Error('cet_locktime must be greater than or equal to 0');
|
|
151
|
+
}
|
|
152
|
+
if (this.refundLocktime < 0) {
|
|
153
|
+
throw new Error('refund_locktime must be greater than or equal to 0');
|
|
154
|
+
}
|
|
155
|
+
// 7. cet_locktime and refund_locktime must either both be unix timestamps, or both be block heights.
|
|
156
|
+
if (!((this.cetLocktime < LOCKTIME_THRESHOLD &&
|
|
157
|
+
this.refundLocktime < LOCKTIME_THRESHOLD) ||
|
|
158
|
+
(this.cetLocktime >= LOCKTIME_THRESHOLD &&
|
|
159
|
+
this.refundLocktime >= LOCKTIME_THRESHOLD))) {
|
|
160
|
+
throw new Error('cetLocktime and refundLocktime must be in same units');
|
|
161
|
+
}
|
|
162
|
+
// 8. cetLocktime must be less than refundLocktime
|
|
163
|
+
if (this.cetLocktime >= this.refundLocktime) {
|
|
164
|
+
throw new Error('cetLocktime must be less than refundLocktime');
|
|
165
|
+
}
|
|
166
|
+
// validate contractInfo
|
|
167
|
+
this.contractInfo.validate();
|
|
168
|
+
// totalCollateral should be > offerCollateral (logical validation)
|
|
169
|
+
if (this.contractInfo.getTotalCollateral() <= this.offerCollateral) {
|
|
170
|
+
throw new Error('totalCollateral should be greater than offerCollateral');
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Converts order_offer to JSON
|
|
175
|
+
*/
|
|
176
|
+
toJSON() {
|
|
177
|
+
const tlvs = [];
|
|
178
|
+
if (this.metadata)
|
|
179
|
+
tlvs.push(this.metadata.toJSON());
|
|
180
|
+
if (this.ircInfo)
|
|
181
|
+
tlvs.push(this.ircInfo.toJSON());
|
|
182
|
+
if (this.positionInfo)
|
|
183
|
+
tlvs.push(this.positionInfo.toJSON());
|
|
184
|
+
if (this.batchFundingGroups)
|
|
185
|
+
this.batchFundingGroups.forEach((fundingInfo) => tlvs.push(fundingInfo.toJSON()));
|
|
186
|
+
// Include unknown TLVs for debugging
|
|
187
|
+
if (this.unknownTlvs) {
|
|
188
|
+
this.unknownTlvs.forEach((tlv) => tlvs.push({ type: tlv.type, data: tlv.data.toString('hex') }));
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
type: this.type,
|
|
192
|
+
protocolVersion: this.protocolVersion,
|
|
193
|
+
temporaryContractId: this.temporaryContractId.toString('hex'),
|
|
194
|
+
contractFlags: Number(this.contractFlags[0]),
|
|
195
|
+
chainHash: this.chainHash.toString('hex'),
|
|
196
|
+
contractInfo: this.contractInfo.toJSON(),
|
|
197
|
+
offerCollateral: (0, util_1.bigIntToNumber)(this.offerCollateral),
|
|
198
|
+
offerCollateralSatoshis: (0, util_1.bigIntToNumber)(this.offerCollateral),
|
|
199
|
+
feeRatePerVb: (0, util_1.bigIntToNumber)(this.feeRatePerVb),
|
|
200
|
+
cetLocktime: this.cetLocktime,
|
|
201
|
+
refundLocktime: this.refundLocktime,
|
|
202
|
+
tlvs,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Serializes the order_offer message into a Buffer
|
|
207
|
+
*/
|
|
208
|
+
serialize() {
|
|
209
|
+
const writer = new bufio_1.BufferWriter();
|
|
210
|
+
writer.writeUInt16BE(this.type);
|
|
211
|
+
// New fields as per dlcspecs PR #163
|
|
212
|
+
writer.writeUInt32BE(this.protocolVersion);
|
|
213
|
+
writer.writeBytes(this.contractFlags);
|
|
214
|
+
writer.writeBytes(this.chainHash);
|
|
215
|
+
writer.writeBytes(this.temporaryContractId); // New field
|
|
216
|
+
writer.writeBytes(this.contractInfo.serialize());
|
|
217
|
+
writer.writeUInt64BE(this.offerCollateral);
|
|
218
|
+
writer.writeUInt64BE(this.feeRatePerVb);
|
|
219
|
+
writer.writeUInt32BE(this.cetLocktime);
|
|
220
|
+
writer.writeUInt32BE(this.refundLocktime);
|
|
221
|
+
// TLV stream as per dlcspecs PR #163
|
|
222
|
+
if (this.metadata)
|
|
223
|
+
writer.writeBytes(this.metadata.serialize());
|
|
224
|
+
if (this.ircInfo)
|
|
225
|
+
writer.writeBytes(this.ircInfo.serialize());
|
|
226
|
+
if (this.positionInfo)
|
|
227
|
+
writer.writeBytes(this.positionInfo.serialize());
|
|
228
|
+
if (this.batchFundingGroups)
|
|
229
|
+
this.batchFundingGroups.forEach((fundingInfo) => writer.writeBytes(fundingInfo.serialize()));
|
|
230
|
+
// Write unknown TLVs for forward compatibility
|
|
231
|
+
if (this.unknownTlvs) {
|
|
232
|
+
this.unknownTlvs.forEach((tlv) => {
|
|
233
|
+
writer.writeBytes(tlv.data);
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
return writer.toBuffer();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.OrderOffer = OrderOffer;
|
|
240
|
+
OrderOffer.type = MessageType_1.MessageType.OrderOffer;
|
|
241
|
+
class OrderOfferContainer {
|
|
242
|
+
constructor() {
|
|
243
|
+
this.offers = [];
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Adds an OrderOffer to the container.
|
|
247
|
+
* @param offer The OrderOffer to add.
|
|
248
|
+
*/
|
|
249
|
+
addOffer(offer) {
|
|
250
|
+
this.offers.push(offer);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Returns all OrderOffers in the container.
|
|
254
|
+
* @returns An array of OrderOffer instances.
|
|
255
|
+
*/
|
|
256
|
+
getOffers() {
|
|
257
|
+
return this.offers;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Serializes all OrderOffers in the container to a Buffer.
|
|
261
|
+
* @returns A Buffer containing the serialized OrderOffers.
|
|
262
|
+
*/
|
|
263
|
+
serialize() {
|
|
264
|
+
const writer = new bufio_1.BufferWriter();
|
|
265
|
+
// Write the number of offers in the container first.
|
|
266
|
+
writer.writeBigSize(this.offers.length);
|
|
267
|
+
// Serialize each offer and write it.
|
|
268
|
+
this.offers.forEach((offer) => {
|
|
269
|
+
const serializedOffer = offer.serialize();
|
|
270
|
+
// Optionally, write the length of the serialized offer for easier deserialization.
|
|
271
|
+
writer.writeBigSize(serializedOffer.length);
|
|
272
|
+
writer.writeBytes(serializedOffer);
|
|
273
|
+
});
|
|
274
|
+
return writer.toBuffer();
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Deserializes a Buffer into an OrderOfferContainer with OrderOffers.
|
|
278
|
+
* @param buf The Buffer to deserialize.
|
|
279
|
+
* @returns An OrderOfferContainer instance.
|
|
280
|
+
*/
|
|
281
|
+
static deserialize(buf) {
|
|
282
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
283
|
+
const container = new OrderOfferContainer();
|
|
284
|
+
const offersCount = reader.readBigSize();
|
|
285
|
+
for (let i = 0; i < offersCount; i++) {
|
|
286
|
+
// Optionally, read the length of the serialized offer if it was written during serialization.
|
|
287
|
+
const offerLength = reader.readBigSize();
|
|
288
|
+
const offerBuf = reader.readBytes(Number(offerLength));
|
|
289
|
+
const offer = OrderOffer.deserialize(offerBuf);
|
|
290
|
+
container.addOffer(offer);
|
|
291
|
+
}
|
|
292
|
+
return container;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
exports.OrderOfferContainer = OrderOfferContainer;
|
|
296
|
+
//# sourceMappingURL=OrderOffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderOffer.js","sourceRoot":"","sources":["../../lib/messages/OrderOffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { MessageType } from '../MessageType';
|
|
3
|
+
import { IDlcMessage } from './DlcMessage';
|
|
4
|
+
export type DlcParty = 'offeror' | 'acceptor' | 'neither';
|
|
5
|
+
export declare abstract class OrderPositionInfo {
|
|
6
|
+
static deserialize(buf: Buffer): OrderPositionInfo;
|
|
7
|
+
abstract type: number;
|
|
8
|
+
abstract toJSON(): IOrderPositionInfoJSON;
|
|
9
|
+
abstract serialize(): Buffer;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* OrderCsoInfo message
|
|
13
|
+
*/
|
|
14
|
+
export declare class OrderPositionInfoV0 extends OrderPositionInfo implements IDlcMessage {
|
|
15
|
+
static type: MessageType;
|
|
16
|
+
/**
|
|
17
|
+
* Deserializes an offer_dlc_v0 message
|
|
18
|
+
* @param buf
|
|
19
|
+
*/
|
|
20
|
+
static deserialize(buf: Buffer): OrderPositionInfoV0;
|
|
21
|
+
/**
|
|
22
|
+
* The type for order_metadata_v0 message. order_metadata_v0 = 62774
|
|
23
|
+
*/
|
|
24
|
+
type: MessageType;
|
|
25
|
+
length: bigint;
|
|
26
|
+
shiftForFees: DlcParty;
|
|
27
|
+
fees: bigint;
|
|
28
|
+
instrumentName: string | undefined;
|
|
29
|
+
contractSize: bigint;
|
|
30
|
+
direction: 'buy' | 'sell' | 'neither';
|
|
31
|
+
price: bigint;
|
|
32
|
+
extraPrecision: number;
|
|
33
|
+
/**
|
|
34
|
+
* Converts order_metadata_v0 to JSON
|
|
35
|
+
*/
|
|
36
|
+
toJSON(): IOrderPositionInfoJSON;
|
|
37
|
+
/**
|
|
38
|
+
* Serializes the oracle_event message into a Buffer
|
|
39
|
+
*/
|
|
40
|
+
serialize(): Buffer;
|
|
41
|
+
}
|
|
42
|
+
export interface IOrderPositionInfoJSON {
|
|
43
|
+
type: number;
|
|
44
|
+
shiftForFees: string;
|
|
45
|
+
fees: number;
|
|
46
|
+
instrumentName: string;
|
|
47
|
+
direction: string;
|
|
48
|
+
price: number;
|
|
49
|
+
extraPrecision: number;
|
|
50
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrderPositionInfoV0 = exports.OrderPositionInfo = void 0;
|
|
4
|
+
const bufio_1 = require("@node-dlc/bufio");
|
|
5
|
+
const MessageType_1 = require("../MessageType");
|
|
6
|
+
class OrderPositionInfo {
|
|
7
|
+
static deserialize(buf) {
|
|
8
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
9
|
+
const type = Number(reader.readBigSize());
|
|
10
|
+
switch (type) {
|
|
11
|
+
case MessageType_1.MessageType.OrderPositionInfoV0:
|
|
12
|
+
return OrderPositionInfoV0.deserialize(buf);
|
|
13
|
+
default:
|
|
14
|
+
throw new Error(`Order cso info TLV type must be OrderPositionInfoV0`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.OrderPositionInfo = OrderPositionInfo;
|
|
19
|
+
/**
|
|
20
|
+
* OrderCsoInfo message
|
|
21
|
+
*/
|
|
22
|
+
class OrderPositionInfoV0 extends OrderPositionInfo {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
/**
|
|
26
|
+
* The type for order_metadata_v0 message. order_metadata_v0 = 62774
|
|
27
|
+
*/
|
|
28
|
+
this.type = OrderPositionInfoV0.type;
|
|
29
|
+
this.shiftForFees = 'neither';
|
|
30
|
+
this.fees = BigInt(0);
|
|
31
|
+
this.instrumentName = undefined;
|
|
32
|
+
this.contractSize = BigInt(0);
|
|
33
|
+
this.direction = 'neither';
|
|
34
|
+
this.price = BigInt(0); // Can be BTC or USD depending on the instrument
|
|
35
|
+
this.extraPrecision = 0;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Deserializes an offer_dlc_v0 message
|
|
39
|
+
* @param buf
|
|
40
|
+
*/
|
|
41
|
+
static deserialize(buf) {
|
|
42
|
+
const instance = new OrderPositionInfoV0();
|
|
43
|
+
const reader = new bufio_1.BufferReader(buf);
|
|
44
|
+
reader.readBigSize(); // read type
|
|
45
|
+
instance.length = reader.readBigSize();
|
|
46
|
+
const encodedShiftForFees = reader.readUInt8();
|
|
47
|
+
if (encodedShiftForFees === 0) {
|
|
48
|
+
instance.shiftForFees = 'neither';
|
|
49
|
+
}
|
|
50
|
+
else if (encodedShiftForFees === 1) {
|
|
51
|
+
instance.shiftForFees = 'offeror';
|
|
52
|
+
}
|
|
53
|
+
else if (encodedShiftForFees === 2) {
|
|
54
|
+
instance.shiftForFees = 'acceptor';
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw new Error(`Invalid shift for fees value: ${encodedShiftForFees}`);
|
|
58
|
+
}
|
|
59
|
+
instance.fees = reader.readUInt64BE();
|
|
60
|
+
if (!reader.eof) {
|
|
61
|
+
const instrumentNameLength = reader.readBigSize();
|
|
62
|
+
const instrumentName = reader.readBytes(Number(instrumentNameLength));
|
|
63
|
+
instance.instrumentName = instrumentName.toString();
|
|
64
|
+
instance.contractSize = reader.readUInt64BE();
|
|
65
|
+
const direction = reader.readUInt8();
|
|
66
|
+
if (direction === 0) {
|
|
67
|
+
instance.direction = 'neither';
|
|
68
|
+
}
|
|
69
|
+
else if (direction === 1) {
|
|
70
|
+
instance.direction = 'buy';
|
|
71
|
+
}
|
|
72
|
+
else if (direction === 2) {
|
|
73
|
+
instance.direction = 'sell';
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
throw new Error(`Invalid direction value: ${direction}`);
|
|
77
|
+
}
|
|
78
|
+
instance.price = reader.readUInt64BE();
|
|
79
|
+
instance.extraPrecision = reader.readUInt16BE();
|
|
80
|
+
}
|
|
81
|
+
return instance;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Converts order_metadata_v0 to JSON
|
|
85
|
+
*/
|
|
86
|
+
toJSON() {
|
|
87
|
+
return {
|
|
88
|
+
type: this.type,
|
|
89
|
+
shiftForFees: this.shiftForFees,
|
|
90
|
+
fees: Number(this.fees),
|
|
91
|
+
instrumentName: this.instrumentName,
|
|
92
|
+
direction: this.direction,
|
|
93
|
+
price: Number(this.price),
|
|
94
|
+
extraPrecision: this.extraPrecision,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Serializes the oracle_event message into a Buffer
|
|
99
|
+
*/
|
|
100
|
+
serialize() {
|
|
101
|
+
const writer = new bufio_1.BufferWriter();
|
|
102
|
+
writer.writeBigSize(this.type);
|
|
103
|
+
const dataWriter = new bufio_1.BufferWriter();
|
|
104
|
+
dataWriter.writeUInt8(this.shiftForFees === 'neither'
|
|
105
|
+
? 0
|
|
106
|
+
: this.shiftForFees === 'offeror'
|
|
107
|
+
? 1
|
|
108
|
+
: 2);
|
|
109
|
+
dataWriter.writeUInt64BE(this.fees);
|
|
110
|
+
if (this.instrumentName) {
|
|
111
|
+
dataWriter.writeBigSize(this.instrumentName.length);
|
|
112
|
+
dataWriter.writeBytes(Buffer.from(this.instrumentName));
|
|
113
|
+
dataWriter.writeUInt64BE(this.contractSize);
|
|
114
|
+
dataWriter.writeUInt8(this.direction === 'neither' ? 0 : this.direction === 'buy' ? 1 : 2);
|
|
115
|
+
dataWriter.writeUInt64BE(this.price);
|
|
116
|
+
dataWriter.writeUInt16BE(this.extraPrecision);
|
|
117
|
+
}
|
|
118
|
+
writer.writeBigSize(dataWriter.size);
|
|
119
|
+
writer.writeBytes(dataWriter.toBuffer());
|
|
120
|
+
return writer.toBuffer();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.OrderPositionInfoV0 = OrderPositionInfoV0;
|
|
124
|
+
OrderPositionInfoV0.type = MessageType_1.MessageType.OrderPositionInfoV0;
|
|
125
|
+
//# sourceMappingURL=OrderPositionInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderPositionInfo.js","sourceRoot":"","sources":["../../lib/messages/OrderPositionInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { MessageType, PayoutCurvePieceType } from '../MessageType';
|
|
3
|
+
import { F64 } from '../serialize/F64';
|
|
4
|
+
import { IDlcMessage } from './DlcMessage';
|
|
5
|
+
export declare abstract class PayoutCurvePiece {
|
|
6
|
+
static deserialize(buf: Buffer): PolynomialPayoutCurvePiece | HyperbolaPayoutCurvePiece;
|
|
7
|
+
/**
|
|
8
|
+
* Creates a PayoutCurvePiece from JSON data
|
|
9
|
+
* @param json JSON object representing a payout curve piece
|
|
10
|
+
*/
|
|
11
|
+
static fromJSON(json: any): PayoutCurvePiece;
|
|
12
|
+
abstract payoutCurvePieceType: PayoutCurvePieceType;
|
|
13
|
+
abstract type: number;
|
|
14
|
+
abstract toJSON(): PolynomialPayoutCurvePieceJSON | HyperbolaPayoutCurvePieceJSON;
|
|
15
|
+
abstract serialize(): Buffer;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* PolynomialPayoutCurvePiece defines a polynomial curve piece for payout functions.
|
|
19
|
+
* This corresponds to type 0 in the sibling sub-type format.
|
|
20
|
+
*/
|
|
21
|
+
export declare class PolynomialPayoutCurvePiece extends PayoutCurvePiece implements IDlcMessage {
|
|
22
|
+
static payoutCurvePieceType: PayoutCurvePieceType;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a PolynomialPayoutCurvePiece from JSON data
|
|
25
|
+
* @param json JSON object representing a polynomial payout curve piece
|
|
26
|
+
*/
|
|
27
|
+
static fromJSON(json: any): PolynomialPayoutCurvePiece;
|
|
28
|
+
/**
|
|
29
|
+
* Deserializes a polynomial_payout_curve_piece message
|
|
30
|
+
* @param buf
|
|
31
|
+
*/
|
|
32
|
+
static deserialize(buf: Buffer): PolynomialPayoutCurvePiece;
|
|
33
|
+
/**
|
|
34
|
+
* The type for polynomial_payout_curve_piece message - Note: this is a sub-component, not a standalone wire message
|
|
35
|
+
*/
|
|
36
|
+
type: MessageType;
|
|
37
|
+
/**
|
|
38
|
+
* The payout curve piece type for new format
|
|
39
|
+
*/
|
|
40
|
+
payoutCurvePieceType: PayoutCurvePieceType;
|
|
41
|
+
points: IPoint[];
|
|
42
|
+
/**
|
|
43
|
+
* Converts polynomial_payout_curve_piece to JSON
|
|
44
|
+
*/
|
|
45
|
+
toJSON(): PolynomialPayoutCurvePieceJSON;
|
|
46
|
+
/**
|
|
47
|
+
* Serializes the polynomial_payout_curve_piece message into a Buffer
|
|
48
|
+
*/
|
|
49
|
+
serialize(): Buffer;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* HyperbolaPayoutCurvePiece defines a hyperbola curve piece for payout functions.
|
|
53
|
+
* This corresponds to type 1 in the sibling sub-type format.
|
|
54
|
+
* Updated to use F64 for precise f64 parameter handling.
|
|
55
|
+
*/
|
|
56
|
+
export declare class HyperbolaPayoutCurvePiece extends PayoutCurvePiece implements IDlcMessage {
|
|
57
|
+
static payoutCurvePieceType: PayoutCurvePieceType;
|
|
58
|
+
/**
|
|
59
|
+
* Helper function to safely parse F64 values from JSON
|
|
60
|
+
* Handles both number and string inputs for maximum precision
|
|
61
|
+
*/
|
|
62
|
+
private static parseF64Value;
|
|
63
|
+
/**
|
|
64
|
+
* Creates a HyperbolaPayoutCurvePiece from JSON data
|
|
65
|
+
* @param json JSON object representing a hyperbola payout curve piece
|
|
66
|
+
*/
|
|
67
|
+
static fromJSON(json: any): HyperbolaPayoutCurvePiece | null;
|
|
68
|
+
/**
|
|
69
|
+
* Deserializes a hyperbola_payout_curve_piece message
|
|
70
|
+
* @param buf
|
|
71
|
+
*/
|
|
72
|
+
static deserialize(buf: Buffer): HyperbolaPayoutCurvePiece;
|
|
73
|
+
/**
|
|
74
|
+
* The type for hyperbola_payout_curve_piece message - Note: this is a sub-component, not a standalone wire message
|
|
75
|
+
*/
|
|
76
|
+
type: MessageType;
|
|
77
|
+
payoutCurvePieceType: PayoutCurvePieceType;
|
|
78
|
+
leftEndPoint: IPayoutPoint;
|
|
79
|
+
rightEndPoint: IPayoutPoint;
|
|
80
|
+
usePositivePiece: boolean;
|
|
81
|
+
translateOutcome: F64;
|
|
82
|
+
translatePayout: F64;
|
|
83
|
+
a: F64;
|
|
84
|
+
b: F64;
|
|
85
|
+
c: F64;
|
|
86
|
+
d: F64;
|
|
87
|
+
constructor(usePositivePiece?: boolean, translateOutcome?: string | F64, translatePayout?: string | F64, a?: string | F64, b?: string | F64, c?: string | F64, d?: string | F64);
|
|
88
|
+
/**
|
|
89
|
+
* Converts hyperbola_payout_curve_piece to JSON
|
|
90
|
+
* Uses F64.toJSONValue() which preserves precision by using strings for very large numbers
|
|
91
|
+
*/
|
|
92
|
+
toJSON(): HyperbolaPayoutCurvePieceJSON;
|
|
93
|
+
/**
|
|
94
|
+
* Serializes the hyperbola_payout_curve_piece message into a Buffer
|
|
95
|
+
*/
|
|
96
|
+
serialize(): Buffer;
|
|
97
|
+
}
|
|
98
|
+
interface IPoint {
|
|
99
|
+
eventOutcome: bigint;
|
|
100
|
+
outcomePayout: bigint;
|
|
101
|
+
extraPrecision: number;
|
|
102
|
+
}
|
|
103
|
+
interface IPointJSON {
|
|
104
|
+
eventOutcome: number;
|
|
105
|
+
outcomePayout: number;
|
|
106
|
+
extraPrecision: number;
|
|
107
|
+
}
|
|
108
|
+
interface IPayoutPoint {
|
|
109
|
+
eventOutcome: bigint;
|
|
110
|
+
outcomePayout: bigint;
|
|
111
|
+
extraPrecision: number;
|
|
112
|
+
}
|
|
113
|
+
export interface PolynomialPayoutCurvePieceJSON {
|
|
114
|
+
polynomialPayoutCurvePiece: {
|
|
115
|
+
payoutPoints: IPointJSON[];
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
export interface HyperbolaPayoutCurvePieceJSON {
|
|
119
|
+
hyperbolaPayoutCurvePiece: {
|
|
120
|
+
usePositivePiece: boolean;
|
|
121
|
+
translateOutcome: number | string;
|
|
122
|
+
translatePayout: number | string;
|
|
123
|
+
a: number | string;
|
|
124
|
+
b: number | string;
|
|
125
|
+
c: number | string;
|
|
126
|
+
d: number | string;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
export {};
|