From 91b88b60ec35a6518badf586a14f61eb63bff213 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Wed, 21 Jul 2021 12:01:09 -0500 Subject: [PATCH] Add large digits test in DLCOracle (#3432) * Add large digits test in DLCOracle * Add issue in comment --- .../bitcoins/dlc/oracle/DLCOracleTest.scala | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/dlc-oracle-test/src/test/scala/org/bitcoins/dlc/oracle/DLCOracleTest.scala b/dlc-oracle-test/src/test/scala/org/bitcoins/dlc/oracle/DLCOracleTest.scala index 66cc34adae..61a3e6b582 100644 --- a/dlc-oracle-test/src/test/scala/org/bitcoins/dlc/oracle/DLCOracleTest.scala +++ b/dlc-oracle-test/src/test/scala/org/bitcoins/dlc/oracle/DLCOracleTest.scala @@ -493,6 +493,39 @@ class DLCOracleTest extends DLCOracleFixture { } } + it must "create and sign a decomp event with a large num digits" in { + dlcOracle: DLCOracle => + //trying make sure we don't regress on + //https://github.com/bitcoin-s/bitcoin-s/issues/3431 + + val outcome = 30816 + val numDigits = 18 + val eventName = "test" + for { + announcement <- + dlcOracle.createNewDigitDecompEvent(eventName = eventName, + maturationTime = futureTime, + base = UInt16(2), + isSigned = false, + numDigits = numDigits, + unit = "units", + precision = Int32.zero) + + _ = assert(announcement.validateSignature) + + eventTLV = announcement.eventTLV + + event <- dlcOracle.signDigits(eventName, outcome) + } yield { + event match { + case _: PendingOracleEvent | _: CompletedEnumV0OracleEvent => + fail(s"Shouldn't be pending/enum after signDigits()") + case c: CompletedDigitDecompositionV0OracleEvent => + assert(c.outcomeBase10 == outcome) + } + } + } + it must "correctly track pending events" in { dlcOracle: DLCOracle => val outcome = enumOutcomes.head for {