void RunAcceptorTest(string acceptorFolder, Network network) { var myKey = new Key(Encoders.Hex.DecodeData("659ed592d16a47f8b3eea2e3d918624963e20da29a83e097c0ffbf0ef1b3e8cc")); var data = AcceptorTest.Open(acceptorFolder, network); if (data.FundingOverride != null) { testOutputHelper.WriteLine("Using funding override"); data.Builder.FundingOverride = data.FundingOverride; } data.Builder.Accept(data.Offer, data.FundingTemplate.Outputs[0].Value); var accepted = data.Builder.FundAccept(myKey, data.FundingTemplate); testOutputHelper.WriteLine("---Accept message---"); testOutputHelper.WriteLine(JsonConvert.SerializeObject(accepted, TestnetSettings)); testOutputHelper.WriteLine("--------------------"); if (data.FundingOverride == null) { testOutputHelper.WriteLine("----Expected funding ----"); testOutputHelper.WriteLine(data.Builder.GetFundingTransaction().ToHex()); testOutputHelper.WriteLine("--------------------"); } data.Builder.Finalize1(data.Sign); var unsigned = data.Builder.GetFundingPSBT(); testOutputHelper.WriteLine("---Partially signed funding PSBT---"); testOutputHelper.WriteLine(unsigned.ToBase64()); testOutputHelper.WriteLine("--------------------"); if (data.OracleAttestation != null) { var outcomeSigned = data.Builder.Execute(myKey, data.OracleAttestation); testOutputHelper.WriteLine("---Signed CET---"); testOutputHelper.WriteLine(outcomeSigned.CET.ToHex()); testOutputHelper.WriteLine("--------------------"); } }
public static AcceptorTest Open(string folder, Network network) { var settings = network == Network.RegTest ? Settings : TestnetSettings; AcceptorTest t = new AcceptorTest(); var fundingOverride = Path.Combine(folder, "FundingOverride.hex"); if (File.Exists(fundingOverride)) { t.FundingOverride = Transaction.Parse(File.ReadAllText(fundingOverride), network); } t.Offer = Parse <Offer>(Path.Combine(folder, "Offer.json"), settings); t.Sign = Parse <Sign>(Path.Combine(folder, "Sign.json"), settings); var attestation = Path.Combine(folder, "OracleAttestation.hex"); if (File.Exists(attestation)) { t.OracleAttestation = new Key(Encoders.Hex.DecodeData(File.ReadAllText(attestation))); } t.Builder = new DLCTransactionBuilder(false, null, null, null, network); t.FundingTemplate = PSBT.Parse(File.ReadAllText(Path.Combine(folder, "FundingTemplate.psbt")), network); return(t); }