{"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainManager.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainManager.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":50}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":46}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":34}},"5":{"start":{"line":7,"column":26},"end":{"line":7,"column":64}},"6":{"start":{"line":8,"column":15},"end":{"line":8,"column":33}},"7":{"start":{"line":10,"column":0},"end":{"line":14,"column":62}},"8":{"start":{"line":11,"column":4},"end":{"line":11,"column":54}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":52}},"10":{"start":{"line":13,"column":4},"end":{"line":13,"column":50}},"11":{"start":{"line":21,"column":8},"end":{"line":21,"column":16}},"12":{"start":{"line":22,"column":8},"end":{"line":22,"column":29}},"13":{"start":{"line":23,"column":8},"end":{"line":23,"column":43}},"14":{"start":{"line":24,"column":8},"end":{"line":24,"column":33}},"15":{"start":{"line":25,"column":8},"end":{"line":25,"column":39}},"16":{"start":{"line":33,"column":8},"end":{"line":33,"column":55}},"17":{"start":{"line":35,"column":8},"end":{"line":39,"column":9}},"18":{"start":{"line":36,"column":12},"end":{"line":36,"column":55}},"19":{"start":{"line":37,"column":12},"end":{"line":37,"column":49}},"20":{"start":{"line":38,"column":12},"end":{"line":38,"column":52}},"21":{"start":{"line":40,"column":8},"end":{"line":40,"column":46}},"22":{"start":{"line":41,"column":8},"end":{"line":41,"column":42}},"23":{"start":{"line":43,"column":8},"end":{"line":43,"column":28}},"24":{"start":{"line":46,"column":21},"end":{"line":46,"column":63}},"25":{"start":{"line":47,"column":22},"end":{"line":47,"column":73}},"26":{"start":{"line":48,"column":8},"end":{"line":48,"column":50}},"27":{"start":{"line":49,"column":8},"end":{"line":49,"column":56}},"28":{"start":{"line":52,"column":21},"end":{"line":52,"column":63}},"29":{"start":{"line":53,"column":22},"end":{"line":53,"column":73}},"30":{"start":{"line":54,"column":8},"end":{"line":54,"column":51}},"31":{"start":{"line":55,"column":8},"end":{"line":55,"column":56}},"32":{"start":{"line":58,"column":8},"end":{"line":58,"column":92}},"33":{"start":{"line":59,"column":8},"end":{"line":59,"column":63}},"34":{"start":{"line":60,"column":8},"end":{"line":60,"column":47}},"35":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"36":{"start":{"line":62,"column":12},"end":{"line":62,"column":58}},"37":{"start":{"line":64,"column":8},"end":{"line":64,"column":56}},"38":{"start":{"line":65,"column":8},"end":{"line":65,"column":91}},"39":{"start":{"line":68,"column":8},"end":{"line":68,"column":93}},"40":{"start":{"line":69,"column":8},"end":{"line":69,"column":64}},"41":{"start":{"line":70,"column":8},"end":{"line":70,"column":56}},"42":{"start":{"line":71,"column":8},"end":{"line":71,"column":68}},"43":{"start":{"line":72,"column":8},"end":{"line":72,"column":29}},"44":{"start":{"line":73,"column":24},"end":{"line":73,"column":82}},"45":{"start":{"line":75,"column":8},"end":{"line":82,"column":9}},"46":{"start":{"line":76,"column":12},"end":{"line":76,"column":33}},"47":{"start":{"line":79,"column":29},"end":{"line":79,"column":104}},"48":{"start":{"line":79,"column":61},"end":{"line":79,"column":103}},"49":{"start":{"line":80,"column":12},"end":{"line":81,"column":37}},"50":{"start":{"line":81,"column":16},"end":{"line":81,"column":37}},"51":{"start":{"line":83,"column":8},"end":{"line":85,"column":9}},"52":{"start":{"line":84,"column":12},"end":{"line":84,"column":59}},"53":{"start":{"line":86,"column":8},"end":{"line":86,"column":56}},"54":{"start":{"line":87,"column":8},"end":{"line":87,"column":92}},"55":{"start":{"line":90,"column":8},"end":{"line":90,"column":60}},"56":{"start":{"line":91,"column":8},"end":{"line":91,"column":39}},"57":{"start":{"line":92,"column":8},"end":{"line":92,"column":43}},"58":{"start":{"line":93,"column":8},"end":{"line":93,"column":72}},"59":{"start":{"line":94,"column":8},"end":{"line":94,"column":66}},"60":{"start":{"line":95,"column":8},"end":{"line":100,"column":9}},"61":{"start":{"line":97,"column":12},"end":{"line":99,"column":13}},"62":{"start":{"line":98,"column":16},"end":{"line":98,"column":123}},"63":{"start":{"line":101,"column":8},"end":{"line":101,"column":106}},"64":{"start":{"line":103,"column":8},"end":{"line":103,"column":51}},"65":{"start":{"line":106,"column":8},"end":{"line":109,"column":9}},"66":{"start":{"line":107,"column":12},"end":{"line":107,"column":85}},"67":{"start":{"line":108,"column":12},"end":{"line":108,"column":19}},"68":{"start":{"line":110,"column":27},"end":{"line":110,"column":89}},"69":{"start":{"line":110,"column":58},"end":{"line":110,"column":88}},"70":{"start":{"line":111,"column":28},"end":{"line":111,"column":130}},"71":{"start":{"line":111,"column":60},"end":{"line":111,"column":126}},"72":{"start":{"line":112,"column":8},"end":{"line":112,"column":69}},"73":{"start":{"line":113,"column":8},"end":{"line":114,"column":19}},"74":{"start":{"line":114,"column":12},"end":{"line":114,"column":19}},"75":{"start":{"line":115,"column":31},"end":{"line":115,"column":33}},"76":{"start":{"line":116,"column":20},"end":{"line":116,"column":48}},"77":{"start":{"line":117,"column":8},"end":{"line":144,"column":9}},"78":{"start":{"line":117,"column":21},"end":{"line":117,"column":22}},"79":{"start":{"line":118,"column":27},"end":{"line":118,"column":40}},"80":{"start":{"line":119,"column":12},"end":{"line":121,"column":13}},"81":{"start":{"line":120,"column":16},"end":{"line":120,"column":118}},"82":{"start":{"line":122,"column":12},"end":{"line":143,"column":13}},"83":{"start":{"line":123,"column":29},"end":{"line":123,"column":109}},"84":{"start":{"line":124,"column":16},"end":{"line":142,"column":17}},"85":{"start":{"line":125,"column":31},"end":{"line":125,"column":99}},"86":{"start":{"line":126,"column":20},"end":{"line":127,"column":52}},"87":{"start":{"line":127,"column":24},"end":{"line":127,"column":52}},"88":{"start":{"line":128,"column":20},"end":{"line":129,"column":57}},"89":{"start":{"line":129,"column":24},"end":{"line":129,"column":57}},"90":{"start":{"line":130,"column":20},"end":{"line":135,"column":21}},"91":{"start":{"line":133,"column":38},"end":{"line":133,"column":83}},"92":{"start":{"line":134,"column":24},"end":{"line":134,"column":66}},"93":{"start":{"line":145,"column":8},"end":{"line":145,"column":67}},"94":{"start":{"line":146,"column":8},"end":{"line":149,"column":9}},"95":{"start":{"line":147,"column":12},"end":{"line":147,"column":61}},"96":{"start":{"line":148,"column":12},"end":{"line":148,"column":19}},"97":{"start":{"line":150,"column":8},"end":{"line":150,"column":57}},"98":{"start":{"line":153,"column":19},"end":{"line":153,"column":61}},"99":{"start":{"line":154,"column":8},"end":{"line":157,"column":9}},"100":{"start":{"line":155,"column":12},"end":{"line":155,"column":64}},"101":{"start":{"line":156,"column":12},"end":{"line":156,"column":19}},"102":{"start":{"line":158,"column":30},"end":{"line":158,"column":73}},"103":{"start":{"line":159,"column":8},"end":{"line":159,"column":84}},"104":{"start":{"line":160,"column":20},"end":{"line":160,"column":52}},"105":{"start":{"line":161,"column":16},"end":{"line":161,"column":17}},"106":{"start":{"line":162,"column":8},"end":{"line":196,"column":9}},"107":{"start":{"line":163,"column":12},"end":{"line":163,"column":40}},"108":{"start":{"line":164,"column":12},"end":{"line":166,"column":13}},"109":{"start":{"line":165,"column":16},"end":{"line":165,"column":150}},"110":{"start":{"line":168,"column":12},"end":{"line":170,"column":13}},"111":{"start":{"line":169,"column":16},"end":{"line":169,"column":92}},"112":{"start":{"line":171,"column":12},"end":{"line":171,"column":34}},"113":{"start":{"line":172,"column":30},"end":{"line":172,"column":83}},"114":{"start":{"line":173,"column":29},"end":{"line":173,"column":74}},"115":{"start":{"line":174,"column":26},"end":{"line":174,"column":68}},"116":{"start":{"line":175,"column":12},"end":{"line":188,"column":13}},"117":{"start":{"line":176,"column":16},"end":{"line":187,"column":17}},"118":{"start":{"line":177,"column":34},"end":{"line":177,"column":96}},"119":{"start":{"line":178,"column":20},"end":{"line":182,"column":21}},"120":{"start":{"line":180,"column":35},"end":{"line":180,"column":82}},"121":{"start":{"line":181,"column":24},"end":{"line":181,"column":82}},"122":{"start":{"line":185,"column":20},"end":{"line":185,"column":105}},"123":{"start":{"line":186,"column":20},"end":{"line":186,"column":52}},"124":{"start":{"line":189,"column":12},"end":{"line":194,"column":13}},"125":{"start":{"line":190,"column":16},"end":{"line":190,"column":66}},"126":{"start":{"line":191,"column":16},"end":{"line":192,"column":26}},"127":{"start":{"line":192,"column":20},"end":{"line":192,"column":26}},"128":{"start":{"line":193,"column":16},"end":{"line":193,"column":66}},"129":{"start":{"line":195,"column":12},"end":{"line":195,"column":16}},"130":{"start":{"line":197,"column":8},"end":{"line":197,"column":67}},"131":{"start":{"line":200,"column":8},"end":{"line":207,"column":9}},"132":{"start":{"line":201,"column":12},"end":{"line":206,"column":13}},"133":{"start":{"line":202,"column":16},"end":{"line":205,"column":17}},"134":{"start":{"line":203,"column":34},"end":{"line":203,"column":76}},"135":{"start":{"line":204,"column":20},"end":{"line":204,"column":67}},"136":{"start":{"line":210,"column":0},"end":{"line":210,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":1},"end":{"line":10,"column":2}},"loc":{"start":{"line":10,"column":22},"end":{"line":14,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":47},"end":{"line":26,"column":5}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":33},"end":{"line":44,"column":5}},"line":32},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":4},"end":{"line":45,"column":5}},"loc":{"start":{"line":45,"column":38},"end":{"line":50,"column":5}},"line":45},"4":{"name":"(anonymous_4)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":39},"end":{"line":56,"column":5}},"line":51},"5":{"name":"(anonymous_5)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":41},"end":{"line":66,"column":5}},"line":57},"6":{"name":"(anonymous_6)","decl":{"start":{"line":67,"column":4},"end":{"line":67,"column":5}},"loc":{"start":{"line":67,"column":46},"end":{"line":88,"column":5}},"line":67},"7":{"name":"(anonymous_7)","decl":{"start":{"line":79,"column":52},"end":{"line":79,"column":53}},"loc":{"start":{"line":79,"column":61},"end":{"line":79,"column":103}},"line":79},"8":{"name":"(anonymous_8)","decl":{"start":{"line":89,"column":4},"end":{"line":89,"column":5}},"loc":{"start":{"line":89,"column":41},"end":{"line":104,"column":5}},"line":89},"9":{"name":"(anonymous_9)","decl":{"start":{"line":105,"column":4},"end":{"line":105,"column":5}},"loc":{"start":{"line":105,"column":38},"end":{"line":151,"column":5}},"line":105},"10":{"name":"(anonymous_10)","decl":{"start":{"line":110,"column":46},"end":{"line":110,"column":47}},"loc":{"start":{"line":110,"column":58},"end":{"line":110,"column":88}},"line":110},"11":{"name":"(anonymous_11)","decl":{"start":{"line":111,"column":46},"end":{"line":111,"column":47}},"loc":{"start":{"line":111,"column":60},"end":{"line":111,"column":126}},"line":111},"12":{"name":"(anonymous_12)","decl":{"start":{"line":152,"column":4},"end":{"line":152,"column":5}},"loc":{"start":{"line":152,"column":44},"end":{"line":198,"column":5}},"line":152},"13":{"name":"(anonymous_13)","decl":{"start":{"line":199,"column":4},"end":{"line":199,"column":5}},"loc":{"start":{"line":199,"column":53},"end":{"line":208,"column":5}},"line":199}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":15},"end":{"line":14,"column":60}},"type":"binary-expr","locations":[{"start":{"line":14,"column":15},"end":{"line":14,"column":32}},{"start":{"line":14,"column":37},"end":{"line":14,"column":59}}],"line":14},"1":{"loc":{"start":{"line":32,"column":16},"end":{"line":32,"column":31}},"type":"default-arg","locations":[{"start":{"line":32,"column":30},"end":{"line":32,"column":31}}],"line":32},"2":{"loc":{"start":{"line":35,"column":8},"end":{"line":39,"column":9}},"type":"if","locations":[{"start":{"line":35,"column":8},"end":{"line":39,"column":9}},{"start":{"line":35,"column":8},"end":{"line":39,"column":9}}],"line":35},"3":{"loc":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},{"start":{"line":61,"column":8},"end":{"line":63,"column":9}}],"line":61},"4":{"loc":{"start":{"line":75,"column":8},"end":{"line":82,"column":9}},"type":"if","locations":[{"start":{"line":75,"column":8},"end":{"line":82,"column":9}},{"start":{"line":75,"column":8},"end":{"line":82,"column":9}}],"line":75},"5":{"loc":{"start":{"line":80,"column":12},"end":{"line":81,"column":37}},"type":"if","locations":[{"start":{"line":80,"column":12},"end":{"line":81,"column":37}},{"start":{"line":80,"column":12},"end":{"line":81,"column":37}}],"line":80},"6":{"loc":{"start":{"line":83,"column":8},"end":{"line":85,"column":9}},"type":"if","locations":[{"start":{"line":83,"column":8},"end":{"line":85,"column":9}},{"start":{"line":83,"column":8},"end":{"line":85,"column":9}}],"line":83},"7":{"loc":{"start":{"line":89,"column":24},"end":{"line":89,"column":39}},"type":"default-arg","locations":[{"start":{"line":89,"column":38},"end":{"line":89,"column":39}}],"line":89},"8":{"loc":{"start":{"line":95,"column":8},"end":{"line":100,"column":9}},"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":100,"column":9}},{"start":{"line":95,"column":8},"end":{"line":100,"column":9}}],"line":95},"9":{"loc":{"start":{"line":106,"column":8},"end":{"line":109,"column":9}},"type":"if","locations":[{"start":{"line":106,"column":8},"end":{"line":109,"column":9}},{"start":{"line":106,"column":8},"end":{"line":109,"column":9}}],"line":106},"10":{"loc":{"start":{"line":111,"column":67},"end":{"line":111,"column":125}},"type":"cond-expr","locations":[{"start":{"line":111,"column":120},"end":{"line":111,"column":121}},{"start":{"line":111,"column":124},"end":{"line":111,"column":125}}],"line":111},"11":{"loc":{"start":{"line":113,"column":8},"end":{"line":114,"column":19}},"type":"if","locations":[{"start":{"line":113,"column":8},"end":{"line":114,"column":19}},{"start":{"line":113,"column":8},"end":{"line":114,"column":19}}],"line":113},"12":{"loc":{"start":{"line":119,"column":12},"end":{"line":121,"column":13}},"type":"if","locations":[{"start":{"line":119,"column":12},"end":{"line":121,"column":13}},{"start":{"line":119,"column":12},"end":{"line":121,"column":13}}],"line":119},"13":{"loc":{"start":{"line":122,"column":12},"end":{"line":143,"column":13}},"type":"if","locations":[{"start":{"line":122,"column":12},"end":{"line":143,"column":13}},{"start":{"line":122,"column":12},"end":{"line":143,"column":13}}],"line":122},"14":{"loc":{"start":{"line":126,"column":20},"end":{"line":127,"column":52}},"type":"if","locations":[{"start":{"line":126,"column":20},"end":{"line":127,"column":52}},{"start":{"line":126,"column":20},"end":{"line":127,"column":52}}],"line":126},"15":{"loc":{"start":{"line":128,"column":20},"end":{"line":129,"column":57}},"type":"if","locations":[{"start":{"line":128,"column":20},"end":{"line":129,"column":57}},{"start":{"line":128,"column":20},"end":{"line":129,"column":57}}],"line":128},"16":{"loc":{"start":{"line":128,"column":24},"end":{"line":128,"column":64}},"type":"binary-expr","locations":[{"start":{"line":128,"column":24},"end":{"line":128,"column":28}},{"start":{"line":128,"column":32},"end":{"line":128,"column":64}}],"line":128},"17":{"loc":{"start":{"line":130,"column":20},"end":{"line":135,"column":21}},"type":"if","locations":[{"start":{"line":130,"column":20},"end":{"line":135,"column":21}},{"start":{"line":130,"column":20},"end":{"line":135,"column":21}}],"line":130},"18":{"loc":{"start":{"line":130,"column":24},"end":{"line":132,"column":53}},"type":"binary-expr","locations":[{"start":{"line":130,"column":24},"end":{"line":130,"column":28}},{"start":{"line":131,"column":24},"end":{"line":131,"column":54}},{"start":{"line":132,"column":24},"end":{"line":132,"column":53}}],"line":130},"19":{"loc":{"start":{"line":146,"column":8},"end":{"line":149,"column":9}},"type":"if","locations":[{"start":{"line":146,"column":8},"end":{"line":149,"column":9}},{"start":{"line":146,"column":8},"end":{"line":149,"column":9}}],"line":146},"20":{"loc":{"start":{"line":154,"column":8},"end":{"line":157,"column":9}},"type":"if","locations":[{"start":{"line":154,"column":8},"end":{"line":157,"column":9}},{"start":{"line":154,"column":8},"end":{"line":157,"column":9}}],"line":154},"21":{"loc":{"start":{"line":164,"column":12},"end":{"line":166,"column":13}},"type":"if","locations":[{"start":{"line":164,"column":12},"end":{"line":166,"column":13}},{"start":{"line":164,"column":12},"end":{"line":166,"column":13}}],"line":164},"22":{"loc":{"start":{"line":168,"column":12},"end":{"line":170,"column":13}},"type":"if","locations":[{"start":{"line":168,"column":12},"end":{"line":170,"column":13}},{"start":{"line":168,"column":12},"end":{"line":170,"column":13}}],"line":168},"23":{"loc":{"start":{"line":178,"column":20},"end":{"line":182,"column":21}},"type":"if","locations":[{"start":{"line":178,"column":20},"end":{"line":182,"column":21}},{"start":{"line":178,"column":20},"end":{"line":182,"column":21}}],"line":178},"24":{"loc":{"start":{"line":189,"column":12},"end":{"line":194,"column":13}},"type":"if","locations":[{"start":{"line":189,"column":12},"end":{"line":194,"column":13}},{"start":{"line":189,"column":12},"end":{"line":194,"column":13}}],"line":189},"25":{"loc":{"start":{"line":191,"column":16},"end":{"line":192,"column":26}},"type":"if","locations":[{"start":{"line":191,"column":16},"end":{"line":192,"column":26}},{"start":{"line":191,"column":16},"end":{"line":192,"column":26}}],"line":191},"26":{"loc":{"start":{"line":202,"column":16},"end":{"line":205,"column":17}},"type":"if","locations":[{"start":{"line":202,"column":16},"end":{"line":205,"column":17}},{"start":{"line":202,"column":16},"end":{"line":205,"column":17}}],"line":202}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":9,"12":9,"13":9,"14":9,"15":9,"16":6,"17":6,"18":6,"19":6,"20":6,"21":6,"22":6,"23":6,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":0,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":6,"56":6,"57":6,"58":6,"59":6,"60":6,"61":6,"62":4,"63":6,"64":6,"65":6,"66":0,"67":0,"68":6,"69":4,"70":6,"71":4,"72":6,"73":6,"74":2,"75":4,"76":4,"77":4,"78":4,"79":4,"80":4,"81":0,"82":4,"83":4,"84":4,"85":4,"86":4,"87":2,"88":4,"89":0,"90":4,"91":0,"92":0,"93":4,"94":4,"95":2,"96":2,"97":2,"98":2,"99":2,"100":0,"101":0,"102":2,"103":2,"104":2,"105":2,"106":2,"107":2,"108":2,"109":0,"110":2,"111":0,"112":2,"113":2,"114":2,"115":2,"116":2,"117":4,"118":4,"119":4,"120":2,"121":2,"122":0,"123":0,"124":2,"125":2,"126":2,"127":2,"128":0,"129":0,"130":2,"131":2,"132":2,"133":2,"134":2,"135":2,"136":1},"f":{"0":1,"1":9,"2":6,"3":0,"4":0,"5":0,"6":2,"7":2,"8":6,"9":6,"10":4,"11":4,"12":2,"13":2},"b":{"0":[1,1],"1":[6],"2":[6,0],"3":[0,0],"4":[0,2],"5":[2,0],"6":[2,0],"7":[0],"8":[6,0],"9":[0,6],"10":[4,0],"11":[2,4],"12":[0,4],"13":[4,0],"14":[2,2],"15":[0,4],"16":[4,2],"17":[0,4],"18":[4,2,2],"19":[2,2],"20":[0,2],"21":[0,2],"22":[0,2],"23":[2,2],"24":[2,0],"25":[2,0],"26":[2,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainManager.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tx } from '@node-dlc/bitcoin';\nimport { Block, Transaction } from 'bitcoinjs-lib';\nimport { EventEmitter } from 'events';\n\nimport { DlcTransactionsV0 } from '../messages/DlcTransactions';\nimport { sleep } from '../util';\nimport { IDlcStore } from './DlcStore';\nimport {\n  HasHash,\n  HasHeight,\n  IChainFilterChainClient,\n} from './IChainFilterChainClient';\n\nexport enum SyncState {\n  Unsynced,\n  Syncing,\n  Synced,\n}\n\nexport interface ILogger {\n  area: string;\n  instance: string;\n  trace(...args: any[]): void;\n  debug(...args: any[]): void;\n  info(...args: any[]): void;\n  warn(...args: any[]): void;\n  error(...args: any[]): void;\n  sub(area: string, instance?: string): ILogger;\n}\n\n/**\n * ChainManager validates and stores dlc txs\n * from chain updates\n */\nexport class ChainManager extends EventEmitter {\n  public blockHeight: number;\n  public started = false;\n  public syncState: SyncState;\n  public isSynchronizing: boolean;\n  public chainClient: IChainFilterChainClient;\n  public logger: ILogger;\n  public dlcStore: IDlcStore;\n  public dlcTxsList: DlcTransactionsV0[];\n\n  constructor(\n    logger: ILogger,\n    chainClient: IChainFilterChainClient,\n    dlcStore: IDlcStore,\n  ) {\n    super();\n    this.logger = logger.sub('dlcmgr');\n    this.dlcStore = dlcStore;\n    this.chainClient = chainClient;\n  }\n\n  /**\n   * Starts the chain manager. This method will load information\n   * from the chain store, determine when the last information\n   * was obtained, validate the existing messages\n   */\n  public async start(blockHeight = 0): Promise<void> {\n    this.logger.info('starting dlc state manager');\n\n    // wait for chain sync to complete\n    if (this.chainClient) {\n      this.logger.info('waiting for chain sync');\n      await this.chainClient.waitForSync();\n      this.logger.info('chain sync complete');\n    }\n\n    await this._restoreState(blockHeight);\n    this.syncState = SyncState.Synced;\n\n    // flag that the manager has now started\n    this.started = true;\n  }\n\n  public async updateFundBroadcast(dlcTxs: DlcTransactionsV0): Promise<void> {\n    const info = await this.chainClient.getBlockchainInfo();\n    const block = await this.chainClient.getBlock(info.bestblockhash);\n\n    dlcTxs.fundBroadcastHeight = block.height;\n\n    await this.dlcStore.saveDlcTransactions(dlcTxs);\n  }\n\n  public async updateCloseBroadcast(dlcTxs: DlcTransactionsV0): Promise<void> {\n    const info = await this.chainClient.getBlockchainInfo();\n    const block = await this.chainClient.getBlock(info.bestblockhash);\n\n    dlcTxs.closeBroadcastHeight = block.height;\n\n    await this.dlcStore.saveDlcTransactions(dlcTxs);\n  }\n\n  public async updateFundEpoch(\n    dlcTxs: DlcTransactionsV0,\n    block: HasHeight & HasHash,\n  ): Promise<void> {\n    this.logger.info(\n      `updating fund epoch on dlc ${dlcTxs.contractId.toString('hex')}`,\n    );\n    dlcTxs.fundEpoch.hash = Buffer.from(block.hash, 'hex');\n    dlcTxs.fundEpoch.height = block.height;\n\n    if (dlcTxs.fundBroadcastHeight === 0) {\n      dlcTxs.fundBroadcastHeight = block.height - 1;\n    }\n\n    await this.dlcStore.saveDlcTransactions(dlcTxs);\n\n    this.logger.info(\n      `fund epoch updated on dlc ${dlcTxs.contractId.toString('hex')}`,\n    );\n  }\n\n  public async updateCloseEpoch(\n    dlcTxs: DlcTransactionsV0,\n    tx: Tx,\n    block: HasHeight & HasHash,\n  ): Promise<void> {\n    this.logger.info(\n      `updating close epoch on dlc ${dlcTxs.contractId.toString('hex')}`,\n    );\n    dlcTxs.closeEpoch.hash = Buffer.from(block.hash, 'hex');\n    dlcTxs.closeEpoch.height = Number(block.height);\n    dlcTxs.closeTxHash = Buffer.from(tx.txId.toString(), 'hex');\n    dlcTxs.closeType = 3; // Default to cooperative close if txid not refund or cet txid\n\n    const _dlcTxs = await this.dlcStore.findDlcTransactions(dlcTxs.contractId);\n\n    // figure out if it's execute, refund or mutual close\n    if (tx.txId.toString() === dlcTxs.refundTx.txId.toString()) {\n      dlcTxs.closeType = 2;\n    } else {\n      const cetIndex = _dlcTxs.cets.findIndex(\n        (cet) => tx.txId.toString() === cet.txId.toString(),\n      );\n      if (cetIndex >= 0) dlcTxs.closeType = 1;\n    }\n\n    if (dlcTxs.closeBroadcastHeight === 0) {\n      dlcTxs.closeBroadcastHeight = block.height - 1;\n    }\n\n    await this.dlcStore.saveDlcTransactions(dlcTxs);\n\n    this.logger.info(\n      `close epoch updated on dlc ${dlcTxs.contractId.toString('hex')}`,\n    );\n  }\n\n  private async _restoreState(blockHeight = 0): Promise<void> {\n    this.logger.info('retrieving dlc state from store');\n    this.blockHeight = blockHeight;\n    this.syncState = SyncState.Syncing;\n    this.dlcTxsList = await this.dlcStore.findDlcTransactionsList();\n    this.logger.info('found %d dlcs', this.dlcTxsList.length);\n\n    if (blockHeight === 0) {\n      // find best block height\n      for (const dlcTxs of this.dlcTxsList) {\n        this.blockHeight = Math.max(\n          Math.max(this.blockHeight, dlcTxs.fundEpoch.height),\n          dlcTxs.closeEpoch.height,\n        );\n      }\n    }\n\n    this.logger.info(\"highest block %d found from %d dlcs\", this.blockHeight, this.dlcTxsList.length); // prettier-ignore\n\n    // validate all utxos\n    await this._validateUtxos(this.dlcTxsList);\n  }\n\n  private async _validateUtxos(_dlcTxsList: DlcTransactionsV0[]) {\n    if (!this.chainClient) {\n      this.logger.info('skipping utxo validation, no chain_client configured');\n      return;\n    }\n\n    const dlcTxsList = _dlcTxsList.filter(\n      (dlcTxs) => dlcTxs.closeEpoch.height === 0,\n    );\n\n    const dlcTxsCount = dlcTxsList.reduce(\n      (acc, msg) => acc + (msg instanceof DlcTransactionsV0 ? 1 : 0),\n      0,\n    );\n    this.logger.info('validating %d funding utxos', dlcTxsCount);\n\n    if (!dlcTxsCount) return;\n\n    const dlcTxsToVerify: DlcTransactionsV0[] = [];\n\n    const oct = Math.trunc(dlcTxsCount / 16);\n    for (let i = 0; i < dlcTxsList.length; i++) {\n      const dlcTxs = dlcTxsList[i];\n      if ((i + 1) % oct === 0) {\n        this.logger.info(\n          'validating funding utxos %s% complete',\n          (((i + 1) / dlcTxsCount) * 100).toFixed(2),\n        );\n      }\n      if (dlcTxs instanceof DlcTransactionsV0) {\n        const utxo = await this.chainClient.getUtxo(\n          dlcTxs.fundTx.txId.toString(),\n          dlcTxs.fundTxVout,\n        );\n\n        try {\n          const tx = await this.chainClient.getTransaction(\n            dlcTxs.fundTx.txId.toString(),\n          );\n          if (!utxo) dlcTxsToVerify.push(dlcTxs);\n\n          if (utxo && Number(utxo.confirmations) === 0)\n            this.updateFundBroadcast(dlcTxs);\n\n          if (\n            utxo &&\n            Number(utxo.confirmations) > 0 &&\n            dlcTxs.fundEpoch.height === 0\n          ) {\n            const block = await this.chainClient.getBlock(tx.blockhash);\n            await this.updateFundEpoch(dlcTxs, block);\n          }\n        } catch (e) {\n          /**\n           * tx doesn't exist\n           * fund tx wasn't broadcast in the first place\n           */\n        }\n      }\n    }\n    this.logger.info('validating funding utxos 100% complete');\n\n    if (dlcTxsToVerify.length === 0) {\n      this.logger.info('no closing utxos to validate');\n      return;\n    }\n\n    await this._validateClosingUtxos(dlcTxsToVerify);\n  }\n\n  private async _validateClosingUtxos(dlcTxsList: DlcTransactionsV0[]) {\n    let info = await this.chainClient.getBlockchainInfo();\n\n    if (this.blockHeight === 0) {\n      this.logger.info('cannot sync from block height 0');\n      return;\n    }\n\n    let numBlocksToSync = Math.max(info.blocks - this.blockHeight, 0);\n    this.logger.info('validating %d blocks for closing utxos', numBlocksToSync);\n    const oct = Math.trunc(numBlocksToSync / 16);\n    let i = 0;\n    while (info.blocks > this.blockHeight) {\n      await sleep(10);\n\n      if ((i + 1) % oct === 0) {\n        this.logger.info(\n          'validating block %s, closing utxos %s% complete',\n          this.blockHeight,\n          (((i + 1) / numBlocksToSync) * 100).toFixed(2),\n        );\n      }\n\n      // Log every 10 blocks\n      if (this.blockHeight % 10 === 0) {\n        this.logger.info(\n          'Validating block %s for closing utxos',\n          this.blockHeight,\n        );\n      }\n\n      this.blockHeight += 1;\n\n      const blockHash = await this.chainClient.getBlockHash(this.blockHeight);\n      const blockBuf = await this.chainClient.getRawBlock(blockHash);\n\n      const block = Block.fromBuffer(blockBuf);\n      for (const transaction of block.transactions) {\n        try {\n          const bjsTx = Transaction.fromBuffer(transaction.toBuffer());\n          if (!bjsTx.isCoinbase()) {\n            // ignore coinbase txs for outpoint check\n            const tx = Tx.fromBuffer(transaction.toBuffer());\n            await this._checkOutpoints(dlcTxsList, tx, block.getId());\n          }\n        } catch (e) {\n          this.logger.error(\n            'Invalid tx for validating closing utxo: %s',\n            transaction.toHex(),\n          );\n          this.logger.trace('Error: ', e);\n        }\n      }\n\n      if (info.blocks === this.blockHeight) {\n        info = await this.chainClient.getBlockchainInfo();\n        if (info.blocks === this.blockHeight) break;\n        numBlocksToSync += info.blocks - this.blockHeight;\n      }\n\n      i++;\n    }\n\n    this.logger.info('validating closing utxos 100% complete');\n  }\n\n  private async _checkOutpoints(\n    dlcTxsList: DlcTransactionsV0[],\n    tx: Tx,\n    blockHash: string,\n  ) {\n    for (const dlcTxs of dlcTxsList) {\n      for (const input of tx.inputs) {\n        if (dlcTxs.fundTx.txId.toString() === input.outpoint.txid.toString()) {\n          const block = await this.chainClient.getBlock(blockHash);\n          await this.updateCloseEpoch(dlcTxs, tx, block);\n        }\n      }\n    }\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5987585e1e54fae4f2de41c05cfa747ebfd69ff6","contentHash":"e0b9f59e7b1de7c99699ba62ad8b15b730d1960f706d9c6bbf2b8e5cc19843fb"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcTransactions.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcTransactions.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":81}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":46}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":9,"column":23},"end":{"line":9,"column":52}},"6":{"start":{"line":10,"column":21},"end":{"line":10,"column":50}},"7":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"8":{"start":{"line":13,"column":16},"end":{"line":13,"column":69}},"9":{"start":{"line":15,"column":16},"end":{"line":15,"column":83}},"10":{"start":{"line":19,"column":0},"end":{"line":19,"column":42}},"11":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"12":{"start":{"line":30,"column":8},"end":{"line":30,"column":43}},"13":{"start":{"line":31,"column":8},"end":{"line":34,"column":10}},"14":{"start":{"line":35,"column":8},"end":{"line":35,"column":37}},"15":{"start":{"line":36,"column":8},"end":{"line":36,"column":23}},"16":{"start":{"line":37,"column":8},"end":{"line":40,"column":10}},"17":{"start":{"line":41,"column":8},"end":{"line":41,"column":44}},"18":{"start":{"line":42,"column":8},"end":{"line":42,"column":27}},"19":{"start":{"line":43,"column":8},"end":{"line":43,"column":38}},"20":{"start":{"line":50,"column":25},"end":{"line":50,"column":48}},"21":{"start":{"line":51,"column":23},"end":{"line":51,"column":52}},"22":{"start":{"line":52,"column":8},"end":{"line":52,"column":30}},"23":{"start":{"line":53,"column":8},"end":{"line":53,"column":51}},"24":{"start":{"line":54,"column":26},"end":{"line":54,"column":47}},"25":{"start":{"line":55,"column":8},"end":{"line":55,"column":108}},"26":{"start":{"line":56,"column":8},"end":{"line":56,"column":52}},"27":{"start":{"line":57,"column":25},"end":{"line":57,"column":45}},"28":{"start":{"line":58,"column":27},"end":{"line":58,"column":48}},"29":{"start":{"line":59,"column":8},"end":{"line":62,"column":10}},"30":{"start":{"line":63,"column":8},"end":{"line":63,"column":61}},"31":{"start":{"line":64,"column":28},"end":{"line":64,"column":49}},"32":{"start":{"line":65,"column":8},"end":{"line":65,"column":112}},"33":{"start":{"line":66,"column":24},"end":{"line":66,"column":44}},"34":{"start":{"line":67,"column":8},"end":{"line":75,"column":9}},"35":{"start":{"line":67,"column":21},"end":{"line":67,"column":22}},"36":{"start":{"line":68,"column":27},"end":{"line":68,"column":48}},"37":{"start":{"line":69,"column":12},"end":{"line":74,"column":13}},"38":{"start":{"line":70,"column":16},"end":{"line":70,"column":115}},"39":{"start":{"line":73,"column":16},"end":{"line":73,"column":41}},"40":{"start":{"line":76,"column":26},"end":{"line":76,"column":46}},"41":{"start":{"line":77,"column":28},"end":{"line":77,"column":49}},"42":{"start":{"line":78,"column":8},"end":{"line":81,"column":10}},"43":{"start":{"line":82,"column":8},"end":{"line":82,"column":52}},"44":{"start":{"line":83,"column":8},"end":{"line":83,"column":48}},"45":{"start":{"line":84,"column":8},"end":{"line":84,"column":62}},"46":{"start":{"line":85,"column":8},"end":{"line":85,"column":24}},"47":{"start":{"line":91,"column":8},"end":{"line":110,"column":10}},"48":{"start":{"line":102,"column":41},"end":{"line":102,"column":72}},"49":{"start":{"line":116,"column":23},"end":{"line":116,"column":49}},"50":{"start":{"line":117,"column":8},"end":{"line":117,"column":40}},"51":{"start":{"line":118,"column":8},"end":{"line":118,"column":43}},"52":{"start":{"line":119,"column":8},"end":{"line":119,"column":61}},"53":{"start":{"line":120,"column":8},"end":{"line":120,"column":51}},"54":{"start":{"line":121,"column":8},"end":{"line":121,"column":46}},"55":{"start":{"line":122,"column":8},"end":{"line":122,"column":47}},"56":{"start":{"line":123,"column":8},"end":{"line":123,"column":52}},"57":{"start":{"line":124,"column":8},"end":{"line":124,"column":55}},"58":{"start":{"line":125,"column":8},"end":{"line":125,"column":63}},"59":{"start":{"line":126,"column":8},"end":{"line":126,"column":53}},"60":{"start":{"line":127,"column":8},"end":{"line":127,"column":46}},"61":{"start":{"line":128,"column":8},"end":{"line":131,"column":9}},"62":{"start":{"line":129,"column":12},"end":{"line":129,"column":57}},"63":{"start":{"line":130,"column":12},"end":{"line":130,"column":47}},"64":{"start":{"line":132,"column":8},"end":{"line":132,"column":48}},"65":{"start":{"line":133,"column":8},"end":{"line":133,"column":53}},"66":{"start":{"line":134,"column":8},"end":{"line":134,"column":44}},"67":{"start":{"line":135,"column":8},"end":{"line":135,"column":42}},"68":{"start":{"line":136,"column":8},"end":{"line":136,"column":56}},"69":{"start":{"line":137,"column":8},"end":{"line":137,"column":33}},"70":{"start":{"line":140,"column":0},"end":{"line":140,"column":46}},"71":{"start":{"line":141,"column":0},"end":{"line":141,"column":69}},"72":{"start":{"line":142,"column":23},"end":{"line":153,"column":1}},"73":{"start":{"line":143,"column":4},"end":{"line":152,"column":5}},"74":{"start":{"line":145,"column":12},"end":{"line":145,"column":34}},"75":{"start":{"line":147,"column":12},"end":{"line":147,"column":33}},"76":{"start":{"line":149,"column":12},"end":{"line":149,"column":38}},"77":{"start":{"line":151,"column":12},"end":{"line":151,"column":31}},"78":{"start":{"line":155,"column":0},"end":{"line":160,"column":62}},"79":{"start":{"line":156,"column":4},"end":{"line":156,"column":56}},"80":{"start":{"line":157,"column":4},"end":{"line":157,"column":62}},"81":{"start":{"line":158,"column":4},"end":{"line":158,"column":60}},"82":{"start":{"line":159,"column":4},"end":{"line":159,"column":70}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":46},"end":{"line":17,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":44,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":46},"end":{"line":86,"column":5}},"line":49},"3":{"name":"(anonymous_3)","decl":{"start":{"line":90,"column":4},"end":{"line":90,"column":5}},"loc":{"start":{"line":90,"column":13},"end":{"line":111,"column":5}},"line":90},"4":{"name":"(anonymous_4)","decl":{"start":{"line":102,"column":32},"end":{"line":102,"column":33}},"loc":{"start":{"line":102,"column":41},"end":{"line":102,"column":72}},"line":102},"5":{"name":"(anonymous_5)","decl":{"start":{"line":115,"column":4},"end":{"line":115,"column":5}},"loc":{"start":{"line":115,"column":16},"end":{"line":138,"column":5}},"line":115},"6":{"name":"(anonymous_6)","decl":{"start":{"line":142,"column":23},"end":{"line":142,"column":24}},"loc":{"start":{"line":142,"column":38},"end":{"line":153,"column":1}},"line":142},"7":{"name":"(anonymous_7)","decl":{"start":{"line":155,"column":1},"end":{"line":155,"column":2}},"loc":{"start":{"line":155,"column":22},"end":{"line":160,"column":1}},"line":155}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":28},"end":{"line":8,"column":44}},"type":"default-arg","locations":[{"start":{"line":8,"column":40},"end":{"line":8,"column":44}}],"line":8},"1":{"loc":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"type":"switch","locations":[{"start":{"line":12,"column":12},"end":{"line":13,"column":69}},{"start":{"line":14,"column":12},"end":{"line":15,"column":83}}],"line":11},"2":{"loc":{"start":{"line":49,"column":28},"end":{"line":49,"column":44}},"type":"default-arg","locations":[{"start":{"line":49,"column":40},"end":{"line":49,"column":44}}],"line":49},"3":{"loc":{"start":{"line":69,"column":12},"end":{"line":74,"column":13}},"type":"if","locations":[{"start":{"line":69,"column":12},"end":{"line":74,"column":13}},{"start":{"line":69,"column":12},"end":{"line":74,"column":13}}],"line":69},"4":{"loc":{"start":{"line":69,"column":16},"end":{"line":69,"column":36}},"type":"binary-expr","locations":[{"start":{"line":69,"column":16},"end":{"line":69,"column":25}},{"start":{"line":69,"column":29},"end":{"line":69,"column":36}}],"line":69},"5":{"loc":{"start":{"line":143,"column":4},"end":{"line":152,"column":5}},"type":"switch","locations":[{"start":{"line":144,"column":8},"end":{"line":145,"column":34}},{"start":{"line":146,"column":8},"end":{"line":147,"column":33}},{"start":{"line":148,"column":8},"end":{"line":149,"column":38}},{"start":{"line":150,"column":8},"end":{"line":151,"column":31}}],"line":143},"6":{"loc":{"start":{"line":160,"column":15},"end":{"line":160,"column":60}},"type":"binary-expr","locations":[{"start":{"line":160,"column":15},"end":{"line":160,"column":32}},{"start":{"line":160,"column":37},"end":{"line":160,"column":59}}],"line":160}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":2,"6":2,"7":2,"8":2,"9":0,"10":1,"11":8,"12":8,"13":8,"14":8,"15":8,"16":8,"17":8,"18":8,"19":8,"20":6,"21":6,"22":6,"23":6,"24":6,"25":6,"26":6,"27":6,"28":6,"29":6,"30":6,"31":6,"32":6,"33":6,"34":6,"35":6,"36":8,"37":8,"38":7,"39":1,"40":6,"41":6,"42":6,"43":6,"44":6,"45":6,"46":6,"47":1,"48":2,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":2,"63":2,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":0,"75":0,"76":0,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1},"f":{"0":2,"1":8,"2":6,"3":1,"4":2,"5":1,"6":1,"7":1},"b":{"0":[1],"1":[2,0],"2":[4],"3":[7,1],"4":[8,2],"5":[0,0,0,1],"6":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcTransactions.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcTransactions.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tx } from '@node-dlc/bitcoin';\nimport { BufferReader, BufferWriter, StreamReader } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class DlcTransactions {\n  public static deserialize(buf: Buffer, parseCets = true): DlcTransactionsV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcTransactionsV0:\n        return DlcTransactionsV0.deserialize(buf, parseCets);\n      default:\n        throw new Error(`Dlc Transactions type must be DlcTransactionsV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract toJSON(): IDlcTransactionsV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcTransactions message contains information about state of DLC\n * contract such as fundtx and closetx\n */\nexport class DlcTransactionsV0 extends DlcTransactions implements IDlcMessage {\n  public static type = MessageType.DlcTransactionsV0;\n\n  /**\n   * Deserializes an offer_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer, parseCets = true): DlcTransactionsV0 {\n    const instance = new DlcTransactionsV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n\n    instance.contractId = reader.readBytes(32);\n\n    const fundTxLen = reader.readUInt16BE();\n    instance.fundTx = Tx.decode(\n      StreamReader.fromBuffer(reader.readBytes(fundTxLen)),\n    );\n\n    instance.fundTxVout = reader.readUInt32BE();\n\n    const fundHash = reader.readBytes(32);\n    const fundHeight = reader.readUInt32BE();\n    instance.fundEpoch = {\n      hash: fundHash,\n      height: fundHeight,\n    };\n\n    instance.fundBroadcastHeight = reader.readUInt32BE();\n\n    const refundTxLen = reader.readUInt16BE();\n    instance.refundTx = Tx.decode(\n      StreamReader.fromBuffer(reader.readBytes(refundTxLen)),\n    );\n\n    const numCets = reader.readBigSize(); // num_cets\n    for (let i = 0; i < numCets; i++) {\n      const cetLen = reader.readUInt16BE();\n      if (parseCets || i === 0) {\n        instance.cets.push(\n          Tx.decode(StreamReader.fromBuffer(reader.readBytes(cetLen))),\n        );\n      } else {\n        reader.readBytes(cetLen);\n      }\n    }\n\n    const closeHash = reader.readBytes(32);\n    const closeHeight = reader.readUInt32BE();\n    instance.closeEpoch = {\n      hash: closeHash,\n      height: closeHeight,\n    };\n\n    instance.closeTxHash = reader.readBytes(32);\n\n    instance.closeType = reader.readUInt8();\n\n    instance.closeBroadcastHeight = reader.readUInt32BE();\n\n    return instance;\n  }\n\n  /**\n   * The type for offer_dlc_v0 message. offer_dlc_v0 = 42778\n   */\n  public type = DlcTransactionsV0.type;\n\n  public contractId: Buffer;\n\n  public fundTx: Tx;\n\n  public fundTxVout: number;\n\n  public fundEpoch: BlockEpoch = {\n    hash: Buffer.alloc(32),\n    height: 0,\n  };\n\n  public fundBroadcastHeight = 0;\n\n  public refundTx: Tx;\n\n  public cets: Tx[] = [];\n\n  public closeEpoch: BlockEpoch = {\n    hash: Buffer.alloc(32),\n    height: 0,\n  };\n\n  public closeTxHash: Buffer = Buffer.alloc(32);\n\n  public closeType: CloseType = 0;\n\n  public closeBroadcastHeight = 0;\n\n  /**\n   * Converts dlc_transactions_v0 to JSON\n   */\n  public toJSON(): IDlcTransactionsV0JSON {\n    return {\n      type: this.type,\n      contractId: this.contractId.toString('hex'),\n      fundTx: this.fundTx.serialize().toString('hex'),\n      fundTxVout: this.fundTxVout,\n      fundEpoch: {\n        hash: this.fundEpoch.hash.toString('hex'),\n        height: this.fundEpoch.height,\n      },\n      fundBroadcastHeight: this.fundBroadcastHeight,\n      refundTx: this.refundTx.serialize().toString('hex'),\n      cets: this.cets.map((cet) => cet.serialize().toString('hex')),\n      closeEpoch: {\n        hash: this.closeEpoch.hash.toString('hex'),\n        height: this.closeEpoch.height,\n      },\n      closeTxHash: this.closeTxHash.toString('hex'),\n      closeType: closeTypeToStr(this.closeType),\n      closeBroadcastHeight: this.closeBroadcastHeight,\n    };\n  }\n\n  /**\n   * Serializes the dlc_transactions_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.contractId);\n    writer.writeUInt16BE(this.fundTx.serialize().length);\n    writer.writeBytes(this.fundTx.serialize());\n    writer.writeUInt32BE(this.fundTxVout);\n    writer.writeBytes(this.fundEpoch.hash);\n    writer.writeUInt32BE(this.fundEpoch.height);\n    writer.writeUInt32BE(this.fundBroadcastHeight);\n    writer.writeUInt16BE(this.refundTx.serialize().length);\n    writer.writeBytes(this.refundTx.serialize());\n\n    writer.writeBigSize(this.cets.length);\n    for (const cet of this.cets) {\n      writer.writeUInt16BE(cet.serialize().length);\n      writer.writeBytes(cet.serialize());\n    }\n\n    writer.writeBytes(this.closeEpoch.hash);\n    writer.writeUInt32BE(this.closeEpoch.height);\n    writer.writeBytes(this.closeTxHash);\n    writer.writeUInt8(this.closeType);\n    writer.writeUInt32BE(this.closeBroadcastHeight);\n\n    return writer.toBuffer();\n  }\n}\n\nconst closeTypeToStr = (closeType: CloseType): string => {\n  switch (closeType) {\n    case CloseType.ExecuteClose:\n      return 'ExecuteClose';\n    case CloseType.RefundClose:\n      return 'RefundClose';\n    case CloseType.CooperativeClose:\n      return 'CooperativeClose';\n    default:\n      return 'NotClosed';\n  }\n};\n\nexport interface IDlcTransactionsV0JSON {\n  type: number;\n  contractId: string;\n  fundTx: string;\n  fundTxVout: number;\n  fundEpoch: IBlockEpochJSON;\n  fundBroadcastHeight: number;\n  refundTx: string;\n  cets: string[];\n  closeEpoch: IBlockEpochJSON;\n  closeTxHash: string;\n  closeType: string;\n  closeBroadcastHeight: number;\n}\n\nexport interface IBlockEpochJSON {\n  hash: string;\n  height: number;\n}\n\nexport interface BlockEpoch {\n  hash: Buffer;\n  height: number;\n}\n\nexport enum CloseType {\n  NotClosed = 0,\n  ExecuteClose = 1,\n  RefundClose = 2,\n  CooperativeClose = 3,\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e570e257b3e63cdcf98ff19005a17fc011ab1e1e","contentHash":"012a19eb92f9a65a8c36814711fccf8b6b45ee5796721198fcd222a562b81f32"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/MessageType.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/MessageType.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":9,"column":0},"end":{"line":65,"column":68}},"3":{"start":{"line":10,"column":4},"end":{"line":10,"column":74}},"4":{"start":{"line":11,"column":4},"end":{"line":11,"column":74}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":86}},"6":{"start":{"line":13,"column":4},"end":{"line":13,"column":86}},"7":{"start":{"line":14,"column":4},"end":{"line":14,"column":70}},"8":{"start":{"line":15,"column":4},"end":{"line":15,"column":70}},"9":{"start":{"line":16,"column":4},"end":{"line":16,"column":70}},"10":{"start":{"line":17,"column":4},"end":{"line":17,"column":74}},"11":{"start":{"line":18,"column":4},"end":{"line":18,"column":86}},"12":{"start":{"line":19,"column":4},"end":{"line":19,"column":84}},"13":{"start":{"line":20,"column":4},"end":{"line":20,"column":72}},"14":{"start":{"line":21,"column":4},"end":{"line":21,"column":90}},"15":{"start":{"line":22,"column":4},"end":{"line":22,"column":88}},"16":{"start":{"line":23,"column":4},"end":{"line":23,"column":116}},"17":{"start":{"line":24,"column":4},"end":{"line":24,"column":84}},"18":{"start":{"line":25,"column":4},"end":{"line":25,"column":84}},"19":{"start":{"line":26,"column":4},"end":{"line":26,"column":84}},"20":{"start":{"line":27,"column":4},"end":{"line":27,"column":74}},"21":{"start":{"line":28,"column":4},"end":{"line":28,"column":90}},"22":{"start":{"line":29,"column":4},"end":{"line":29,"column":84}},"23":{"start":{"line":30,"column":4},"end":{"line":30,"column":78}},"24":{"start":{"line":31,"column":4},"end":{"line":31,"column":98}},"25":{"start":{"line":32,"column":4},"end":{"line":32,"column":96}},"26":{"start":{"line":33,"column":4},"end":{"line":33,"column":102}},"27":{"start":{"line":34,"column":4},"end":{"line":34,"column":84}},"28":{"start":{"line":35,"column":4},"end":{"line":35,"column":66}},"29":{"start":{"line":36,"column":4},"end":{"line":36,"column":68}},"30":{"start":{"line":37,"column":4},"end":{"line":37,"column":64}},"31":{"start":{"line":38,"column":4},"end":{"line":38,"column":66}},"32":{"start":{"line":39,"column":4},"end":{"line":39,"column":68}},"33":{"start":{"line":43,"column":4},"end":{"line":43,"column":80}},"34":{"start":{"line":44,"column":4},"end":{"line":44,"column":62}},"35":{"start":{"line":45,"column":4},"end":{"line":45,"column":64}},"36":{"start":{"line":49,"column":4},"end":{"line":49,"column":82}},"37":{"start":{"line":53,"column":4},"end":{"line":53,"column":70}},"38":{"start":{"line":54,"column":4},"end":{"line":54,"column":72}},"39":{"start":{"line":55,"column":4},"end":{"line":55,"column":76}},"40":{"start":{"line":56,"column":4},"end":{"line":56,"column":74}},"41":{"start":{"line":57,"column":4},"end":{"line":57,"column":84}},"42":{"start":{"line":58,"column":4},"end":{"line":58,"column":94}},"43":{"start":{"line":59,"column":4},"end":{"line":59,"column":94}},"44":{"start":{"line":60,"column":4},"end":{"line":60,"column":70}},"45":{"start":{"line":61,"column":4},"end":{"line":61,"column":80}},"46":{"start":{"line":62,"column":4},"end":{"line":62,"column":70}},"47":{"start":{"line":63,"column":4},"end":{"line":63,"column":78}},"48":{"start":{"line":64,"column":4},"end":{"line":64,"column":92}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":1},"end":{"line":9,"column":2}},"loc":{"start":{"line":9,"column":24},"end":{"line":65,"column":1}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":65,"column":17},"end":{"line":65,"column":66}},"type":"binary-expr","locations":[{"start":{"line":65,"column":17},"end":{"line":65,"column":36}},{"start":{"line":65,"column":41},"end":{"line":65,"column":65}}],"line":65}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/MessageType.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/MessageType.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,WA+EX;AA/ED,WAAY,WAAW;IACrB,qEAAsB,CAAA;IACtB,qEAAsB,CAAA;IAEtB,iFAA4B,CAAA;IAC5B,iFAA4B,CAAA;IAE5B,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IAEpB,qEAAsB,CAAA;IAEtB,iFAA4B,CAAA;IAC5B,+EAA2B,CAAA;IAC3B,mEAAqB,CAAA;IAErB,qFAA8B,CAAA;IAE9B,mFAA6B,CAAA;IAC7B,+GAA2C,CAAA;IAE3C,+EAA2B,CAAA;IAC3B,+EAA2B,CAAA;IAC3B,+EAA2B,CAAA;IAE3B,qEAAsB,CAAA;IAEtB,qFAA8B,CAAA;IAE9B,+EAA2B,CAAA;IAE3B,yEAAwB,CAAA;IAExB,6FAAkC,CAAA;IAClC,2FAAiC,CAAA;IACjC,iGAAoC,CAAA;IAEpC,+EAA2B,CAAA;IAE3B,6DAAkB,CAAA;IAClB,+DAAmB,CAAA;IACnB,2DAAiB,CAAA;IAEjB,6DAAkB,CAAA;IAClB,+DAAmB,CAAA;IAEnB;;OAEG;IACH,2EAAyB,CAAA;IACzB,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IAEjB;;OAEG;IACH,6EAA0B,CAAA;IAE1B;;OAEG;IACH,iEAAoB,CAAA;IACpB,mEAAqB,CAAA;IACrB,uEAAuB,CAAA;IACvB,qEAAsB,CAAA;IACtB,+EAA2B,CAAA;IAE3B,yFAAgC,CAAA;IAChC,yFAAgC,CAAA;IAEhC,iEAAoB,CAAA;IAEpB,2EAAyB,CAAA;IAEzB,iEAAoB,CAAA;IAEpB,yEAAwB,CAAA;IACxB,uFAA+B,CAAA;AACjC,CAAC,EA/EW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QA+EtB","sourcesContent":["/**\n * Defined in DLC Messaging Spec\n * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md\n */\nexport enum MessageType {\n  ContractInfoV0 = 55342,\n  ContractInfoV1 = 55344,\n\n  ContractDescriptorV0 = 42768,\n  ContractDescriptorV1 = 42784,\n\n  OracleInfoV0 = 42770,\n  OracleInfoV1 = 42786,\n  OracleInfoV2 = 55340,\n\n  OracleParamsV0 = 55338,\n\n  OracleAnnouncementV0 = 55332,\n  OracleAttestationV0 = 55400,\n  OracleEventV0 = 55330,\n\n  OracleEventContainerV0 = 61632,\n\n  EnumEventDescriptorV0 = 55302,\n  DigitDecompositionEventDescriptorV0 = 55306,\n\n  NegotiationFieldsV0 = 55334,\n  NegotiationFieldsV1 = 55336,\n  NegotiationFieldsV2 = 55346,\n\n  FundingInputV0 = 42772,\n\n  CetAdaptorSignaturesV0 = 42774,\n\n  FundingSignaturesV0 = 42776,\n\n  PayoutFunctionV0 = 42790,\n\n  PolynomialPayoutCurvePiece = 42792, // TODO: Temporary type\n  HyperbolaPayoutCurvePiece = 42794, // TODO: Temporary type\n  OldHyperbolaPayoutCurvePiece = 42796, // TODO: Remove once all existing contracts have passed\n\n  RoundingIntervalsV0 = 42788,\n\n  DlcOfferV0 = 42778,\n  DlcAcceptV0 = 42780,\n  DlcSignV0 = 42782,\n\n  DlcCloseV0 = 52170, // TODO: Temporary type\n  DlcCancelV0 = 52172,\n\n  /**\n   * Dlc Storage Types\n   */\n  DlcTransactionsV0 = 61230,\n  DlcIdsV0 = 61232,\n  DlcInfoV0 = 61234,\n\n  /**\n   * Oracle Identifier\n   */\n  OracleIdentifierV0 = 61472,\n\n  /**\n   * Order Message Types\n   */\n  OrderOfferV0 = 62770,\n  OrderAcceptV0 = 62772,\n  OrderMetadataV0 = 62774,\n  OrderIrcInfoV0 = 62776,\n  OrderPositionInfoV0 = 62778,\n\n  OrderNegotiationFieldsV0 = 65334,\n  OrderNegotiationFieldsV1 = 65336,\n\n  AddressCache = 65132,\n\n  BatchFundingGroup = 65430,\n\n  IrcMessageV0 = 59314,\n\n  NodeAnnouncement = 51394,\n  NodeAnnouncementAddress = 51396,\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4a42dd14520e0a54ad0b2d7c529058c8c471b757","contentHash":"7e9824c36bf38f7665401790e467119a9b0c16dc8311a631bea3f00e86edee18"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/util.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/util.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":61}},"3":{"start":{"line":5,"column":36},"end":{"line":5,"column":59}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":22}}},"fnMap":{"0":{"name":"sleep","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":14}},"loc":{"start":{"line":4,"column":19},"end":{"line":6,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":36},"end":{"line":5,"column":59}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":2,"3":2,"4":1},"f":{"0":2,"1":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/util.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAFD,sBAEC","sourcesContent":["export function sleep(ms: number): Promise<void> {\n  return new Promise((resolve) => setTimeout(resolve, ms));\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"278ecbbf9093d7e94a7bcbb2b3080b4f61e8f306","contentHash":"d0d8453fee23981f010d8dbe1dbf6be62546e06eb243ac2f23508ad352568c02"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainMemoryStore.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainMemoryStore.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"2":{"start":{"line":9,"column":8},"end":{"line":9,"column":33}},"3":{"start":{"line":12,"column":8},"end":{"line":12,"column":33}},"4":{"start":{"line":15,"column":8},"end":{"line":15,"column":49}},"5":{"start":{"line":18,"column":8},"end":{"line":18,"column":44}},"6":{"start":{"line":21,"column":8},"end":{"line":21,"column":70}},"7":{"start":{"line":24,"column":8},"end":{"line":24,"column":40}},"8":{"start":{"line":27,"column":0},"end":{"line":27,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":18},"end":{"line":10,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":35},"end":{"line":13,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":36},"end":{"line":16,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":42},"end":{"line":19,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":47},"end":{"line":22,"column":5}},"line":20},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":44},"end":{"line":25,"column":5}},"line":23}},"branchMap":{},"s":{"0":1,"1":1,"2":6,"3":0,"4":8,"5":2,"6":6,"7":0,"8":1},"f":{"0":6,"1":0,"2":8,"3":2,"4":6,"5":0},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainMemoryStore.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/ChainMemoryStore.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,MAAa,gBAAgB;IAA7B;QACU,YAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAyBzD,CAAC;IAvBC,IAAW,wBAAwB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,uBAAuB;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,UAAkB;QAElB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,eAAkC;QAElC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,UAAkB;QACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;CACF;AA1BD,4CA0BC","sourcesContent":["/* eslint-disable @typescript-eslint/require-await */\nimport { DlcTransactionsV0 } from '../messages/DlcTransactions';\nimport { IDlcStore } from './DlcStore';\n\n/**\n * In-memory implementation of the IDlcStore.\n */\nexport class ChainMemoryStore implements IDlcStore {\n  private _dlcTxs = new Map<Buffer, DlcTransactionsV0>();\n\n  public get dlcTransactionsListCount(): number {\n    return this._dlcTxs.size;\n  }\n\n  public async findDlcTransactionsList(): Promise<DlcTransactionsV0[]> {\n    return Array.from(this._dlcTxs.values());\n  }\n\n  public async findDlcTransactions(\n    contractId: Buffer,\n  ): Promise<DlcTransactionsV0> {\n    return this._dlcTxs.get(contractId);\n  }\n\n  public async saveDlcTransactions(\n    dlcTransactions: DlcTransactionsV0,\n  ): Promise<void> {\n    this._dlcTxs.set(dlcTransactions.contractId, dlcTransactions);\n  }\n\n  public async deleteDlcTransactions(contractId: Buffer): Promise<void> {\n    this._dlcTxs.delete(contractId);\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"865243fd58e8a8c00781471a480b8195f7097339","contentHash":"12465804f1ec38b583b4c7eeb9b9b9df1c571e24368cf54b8040de63fe7d6317"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/irc/IrcMessage.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/irc/IrcMessage.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":82}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":21},"end":{"line":7,"column":24}},"6":{"start":{"line":10,"column":23},"end":{"line":10,"column":52}},"7":{"start":{"line":11,"column":21},"end":{"line":11,"column":50}},"8":{"start":{"line":12,"column":8},"end":{"line":17,"column":9}},"9":{"start":{"line":14,"column":16},"end":{"line":14,"column":53}},"10":{"start":{"line":16,"column":16},"end":{"line":16,"column":73}},"11":{"start":{"line":20,"column":0},"end":{"line":20,"column":32}},"12":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"13":{"start":{"line":27,"column":8},"end":{"line":27,"column":38}},"14":{"start":{"line":30,"column":26},"end":{"line":30,"column":28}},"15":{"start":{"line":31,"column":25},"end":{"line":31,"column":52}},"16":{"start":{"line":32,"column":31},"end":{"line":32,"column":67}},"17":{"start":{"line":33,"column":23},"end":{"line":33,"column":52}},"18":{"start":{"line":34,"column":23},"end":{"line":34,"column":33}},"19":{"start":{"line":35,"column":28},"end":{"line":35,"column":67}},"20":{"start":{"line":36,"column":8},"end":{"line":46,"column":9}},"21":{"start":{"line":36,"column":21},"end":{"line":36,"column":22}},"22":{"start":{"line":37,"column":35},"end":{"line":37,"column":36}},"23":{"start":{"line":38,"column":29},"end":{"line":38,"column":47}},"24":{"start":{"line":39,"column":12},"end":{"line":39,"column":61}},"25":{"start":{"line":40,"column":12},"end":{"line":40,"column":61}},"26":{"start":{"line":41,"column":12},"end":{"line":41,"column":41}},"27":{"start":{"line":42,"column":12},"end":{"line":42,"column":37}},"28":{"start":{"line":43,"column":12},"end":{"line":43,"column":45}},"29":{"start":{"line":44,"column":12},"end":{"line":44,"column":95}},"30":{"start":{"line":45,"column":12},"end":{"line":45,"column":37}},"31":{"start":{"line":47,"column":8},"end":{"line":47,"column":25}},"32":{"start":{"line":50,"column":20},"end":{"line":50,"column":36}},"33":{"start":{"line":51,"column":8},"end":{"line":51,"column":52}},"34":{"start":{"line":58,"column":25},"end":{"line":58,"column":43}},"35":{"start":{"line":59,"column":23},"end":{"line":59,"column":52}},"36":{"start":{"line":60,"column":8},"end":{"line":60,"column":29}},"37":{"start":{"line":61,"column":8},"end":{"line":61,"column":47}},"38":{"start":{"line":62,"column":8},"end":{"line":62,"column":55}},"39":{"start":{"line":63,"column":8},"end":{"line":63,"column":55}},"40":{"start":{"line":64,"column":8},"end":{"line":64,"column":50}},"41":{"start":{"line":65,"column":8},"end":{"line":65,"column":50}},"42":{"start":{"line":66,"column":8},"end":{"line":66,"column":47}},"43":{"start":{"line":67,"column":8},"end":{"line":67,"column":51}},"44":{"start":{"line":68,"column":24},"end":{"line":68,"column":45}},"45":{"start":{"line":69,"column":8},"end":{"line":69,"column":50}},"46":{"start":{"line":70,"column":8},"end":{"line":70,"column":24}},"47":{"start":{"line":73,"column":23},"end":{"line":73,"column":49}},"48":{"start":{"line":74,"column":8},"end":{"line":74,"column":49}},"49":{"start":{"line":75,"column":8},"end":{"line":75,"column":49}},"50":{"start":{"line":76,"column":8},"end":{"line":76,"column":44}},"51":{"start":{"line":77,"column":8},"end":{"line":77,"column":39}},"52":{"start":{"line":78,"column":8},"end":{"line":78,"column":45}},"53":{"start":{"line":79,"column":8},"end":{"line":79,"column":47}},"54":{"start":{"line":80,"column":8},"end":{"line":80,"column":37}},"55":{"start":{"line":81,"column":8},"end":{"line":81,"column":33}},"56":{"start":{"line":87,"column":23},"end":{"line":87,"column":49}},"57":{"start":{"line":88,"column":8},"end":{"line":88,"column":39}},"58":{"start":{"line":89,"column":27},"end":{"line":89,"column":53}},"59":{"start":{"line":90,"column":8},"end":{"line":90,"column":53}},"60":{"start":{"line":91,"column":8},"end":{"line":91,"column":53}},"61":{"start":{"line":92,"column":8},"end":{"line":92,"column":48}},"62":{"start":{"line":93,"column":8},"end":{"line":93,"column":46}},"63":{"start":{"line":94,"column":8},"end":{"line":94,"column":43}},"64":{"start":{"line":95,"column":8},"end":{"line":95,"column":49}},"65":{"start":{"line":96,"column":8},"end":{"line":96,"column":51}},"66":{"start":{"line":97,"column":8},"end":{"line":97,"column":41}},"67":{"start":{"line":98,"column":8},"end":{"line":98,"column":45}},"68":{"start":{"line":99,"column":8},"end":{"line":99,"column":49}},"69":{"start":{"line":100,"column":8},"end":{"line":100,"column":33}},"70":{"start":{"line":103,"column":0},"end":{"line":103,"column":36}},"71":{"start":{"line":104,"column":0},"end":{"line":104,"column":59}},"72":{"start":{"line":107,"column":8},"end":{"line":107,"column":45}},"73":{"start":{"line":108,"column":8},"end":{"line":108,"column":45}},"74":{"start":{"line":109,"column":8},"end":{"line":109,"column":33}},"75":{"start":{"line":110,"column":8},"end":{"line":110,"column":35}},"76":{"start":{"line":111,"column":8},"end":{"line":111,"column":29}},"77":{"start":{"line":112,"column":8},"end":{"line":112,"column":25}},"78":{"start":{"line":115,"column":0},"end":{"line":115,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":28},"end":{"line":18,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":28,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":4},"end":{"line":29,"column":5}},"loc":{"start":{"line":29,"column":35},"end":{"line":48,"column":5}},"line":29},"3":{"name":"(anonymous_3)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":35},"end":{"line":52,"column":5}},"line":49},"4":{"name":"(anonymous_4)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":28},"end":{"line":71,"column":5}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":26},"end":{"line":82,"column":5}},"line":72},"6":{"name":"(anonymous_6)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":16},"end":{"line":101,"column":5}},"line":86},"7":{"name":"(anonymous_7)","decl":{"start":{"line":106,"column":4},"end":{"line":106,"column":5}},"loc":{"start":{"line":106,"column":83},"end":{"line":113,"column":5}},"line":106}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":17,"column":9}},"type":"switch","locations":[{"start":{"line":13,"column":12},"end":{"line":14,"column":53}},{"start":{"line":15,"column":12},"end":{"line":16,"column":73}}],"line":12}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1,"12":7,"13":7,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":5,"23":5,"24":5,"25":5,"26":5,"27":5,"28":5,"29":5,"30":5,"31":1,"32":0,"33":0,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":1},"f":{"0":0,"1":7,"2":1,"3":0,"4":1,"5":0,"6":1,"7":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/irc/IrcMessage.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/irc/IrcMessage.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\nimport { crc32c } from '@node-dlc/checksum';\n\nimport { MessageType } from '../MessageType';\n\nconst MAX_DATA_LEN = 190;\n\nexport abstract class IrcMessage {\n  public static deserialize(buf: Buffer): IrcMessageV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.IrcMessageV0:\n        return IrcMessageV0.deserialize(buf);\n      default:\n        throw new Error(`Irc message type must be IrcMessageV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * IrcMessage contains information for Irc message packet.\n */\nexport class IrcMessageV0 extends IrcMessage {\n  public static type = MessageType.IrcMessageV0;\n\n  public static fromBuffer(buf: Buffer, pubkey: Buffer): IrcMessageV0[] {\n    const instances: IrcMessageV0[] = [];\n\n    const checksum = crc32c(buf);\n\n    const sequenceLength = Math.ceil(buf.length / MAX_DATA_LEN);\n\n    const reader = new BufferReader(buf);\n    const bufLen = buf.length;\n\n    const currentTime = Math.floor(new Date().getTime() / 1000);\n\n    for (let i = 0; i < sequenceLength; i++) {\n      const sequenceNumber = i;\n      const instance = new IrcMessageV0();\n\n      instance.sequenceLength = BigInt(sequenceLength);\n      instance.sequenceNumber = BigInt(sequenceNumber);\n      instance.checksum = checksum;\n      instance.pubkey = pubkey;\n      instance.timestamp = currentTime;\n      instance.data = reader.readBytes(\n        Math.min(MAX_DATA_LEN, bufLen - reader.position),\n      );\n\n      instances.push(instance);\n    }\n\n    return instances;\n  }\n\n  public static fromString(str: string, pubkey: Buffer): IrcMessageV0[] {\n    const buf = Buffer.from(str);\n\n    return IrcMessageV0.fromBuffer(buf, pubkey);\n  }\n\n  /**\n   * Deserializes an irc message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): IrcMessageV0 {\n    const instance = new IrcMessageV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n\n    instance.length = reader.readBigSize();\n\n    instance.sequenceLength = reader.readBigSize();\n    instance.sequenceNumber = reader.readBigSize();\n\n    instance.checksum = reader.readUInt32BE();\n\n    instance.signature = reader.readBytes(64);\n    instance.pubkey = reader.readBytes(33);\n    instance.timestamp = reader.readUInt32BE();\n\n    const dataLen = reader.readUInt16BE();\n    instance.data = reader.readBytes(dataLen);\n\n    return instance;\n  }\n\n  public type = IrcMessageV0.type;\n\n  public length: bigint;\n\n  public sequenceLength: bigint;\n\n  public sequenceNumber: bigint;\n\n  public checksum: number;\n\n  public signature: Buffer;\n\n  public pubkey: Buffer;\n\n  public timestamp: number;\n\n  public data: Buffer;\n\n  public serializeWithoutSig(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.sequenceLength);\n    writer.writeBigSize(this.sequenceNumber);\n    writer.writeUInt64BE(this.checksum);\n    writer.writeBytes(this.pubkey);\n    writer.writeUInt32BE(this.timestamp);\n    writer.writeUInt16BE(this.data.length);\n    writer.writeBytes(this.data);\n\n    return writer.toBuffer();\n  }\n\n  /**\n   * Serializes the irc_message_v0\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.sequenceLength);\n    dataWriter.writeBigSize(this.sequenceNumber);\n    dataWriter.writeUInt32BE(this.checksum);\n    dataWriter.writeBytes(this.signature);\n    dataWriter.writeBytes(this.pubkey);\n    dataWriter.writeUInt32BE(this.timestamp);\n    dataWriter.writeUInt16BE(this.data.length);\n    dataWriter.writeBytes(this.data);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport class IrcMessageWithoutSig {\n  constructor(\n    readonly sequenceLength: bigint,\n    readonly sequenceNumber: bigint,\n    readonly checksum: number,\n    readonly signature: Buffer,\n    readonly pubkey: Buffer,\n    readonly data: Buffer,\n  ) {}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a256b87e15c57ac40b98461cbf35067e12777266","contentHash":"e5f5f50997dd9df396047652a06b25efc04ac2ca15719382df5ed7e70a39fa6d"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/AddressCache.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/AddressCache.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":38}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":28}},"7":{"start":{"line":13,"column":25},"end":{"line":13,"column":43}},"8":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"9":{"start":{"line":15,"column":12},"end":{"line":15,"column":103}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":24}},"11":{"start":{"line":20,"column":25},"end":{"line":20,"column":43}},"12":{"start":{"line":21,"column":23},"end":{"line":21,"column":52}},"13":{"start":{"line":22,"column":8},"end":{"line":22,"column":30}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":29}},"15":{"start":{"line":24,"column":8},"end":{"line":28,"column":9}},"16":{"start":{"line":25,"column":32},"end":{"line":25,"column":52}},"17":{"start":{"line":26,"column":29},"end":{"line":26,"column":66}},"18":{"start":{"line":27,"column":12},"end":{"line":27,"column":46}},"19":{"start":{"line":29,"column":8},"end":{"line":29,"column":24}},"20":{"start":{"line":32,"column":29},"end":{"line":32,"column":31}},"21":{"start":{"line":33,"column":8},"end":{"line":35,"column":9}},"22":{"start":{"line":34,"column":12},"end":{"line":34,"column":93}},"23":{"start":{"line":36,"column":8},"end":{"line":36,"column":28}},"24":{"start":{"line":39,"column":23},"end":{"line":39,"column":49}},"25":{"start":{"line":40,"column":8},"end":{"line":40,"column":40}},"26":{"start":{"line":41,"column":8},"end":{"line":41,"column":51}},"27":{"start":{"line":42,"column":8},"end":{"line":45,"column":9}},"28":{"start":{"line":43,"column":12},"end":{"line":43,"column":49}},"29":{"start":{"line":44,"column":12},"end":{"line":44,"column":40}},"30":{"start":{"line":46,"column":8},"end":{"line":46,"column":33}},"31":{"start":{"line":49,"column":0},"end":{"line":49,"column":36}},"32":{"start":{"line":50,"column":0},"end":{"line":50,"column":59}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":18},"end":{"line":11,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":57},"end":{"line":18,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":28},"end":{"line":30,"column":5}},"line":19},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":28},"end":{"line":37,"column":5}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":16},"end":{"line":47,"column":5}},"line":38}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":4,"6":4,"7":1,"8":1,"9":2,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":2,"19":1,"20":1,"21":1,"22":2,"23":1,"24":1,"25":1,"26":1,"27":1,"28":2,"29":2,"30":1,"31":1,"32":1},"f":{"0":4,"1":1,"2":1,"3":1,"4":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/AddressCache.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/AddressCache.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,iDAAwC;AAExC,gDAA6C;AAE7C,MAAa,YAAY;IAAzB;QAmCS,SAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAEzB,cAAS,GAAa,EAAE,CAAC;IA0BlC,CAAC;IA5DQ,MAAM,CAAC,gBAAgB,CAC5B,kBAAmC,EACnC,OAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAEpC,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YAC9D,QAAQ,CAAC,SAAS,CAAC,IAAI,CACrB,uBAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAClD,CAAC;SACH;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY;QACnC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,iBAAiB;QAEvC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAClB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YAEvD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACnC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAMM,cAAc,CAAC,OAAuB;QAC3C,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,YAAY,CAAC,uBAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;SAClE;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAElC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE3C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA9DH,oCA+DC;AA9De,iBAAI,GAAG,yBAAW,CAAC,YAAY,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\nimport { BitcoinNetwork } from 'bitcoin-networks';\nimport { address } from 'bitcoinjs-lib';\n\nimport { MessageType } from '../MessageType';\n\nexport class AddressCache {\n  public static type = MessageType.AddressCache;\n\n  public static fromAddressCache(\n    addressesBlacklist: IAddressCache[],\n    network: BitcoinNetwork,\n  ): AddressCache {\n    const instance = new AddressCache();\n\n    for (const blacklistAddress of Object.keys(addressesBlacklist)) {\n      instance.cacheSPKs.push(\n        address.toOutputScript(blacklistAddress, network),\n      );\n    }\n\n    return instance;\n  }\n\n  public static deserialize(buf: Buffer): AddressCache {\n    const instance = new AddressCache();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    reader.readBigSize(); // num_cache_spks\n\n    while (!reader.eof) {\n      const cacheSPKLen = reader.readBigSize();\n      const cacheSPK = reader.readBytes(Number(cacheSPKLen));\n\n      instance.cacheSPKs.push(cacheSPK);\n    }\n\n    return instance;\n  }\n\n  public type = AddressCache.type;\n\n  public cacheSPKs: Buffer[] = [];\n\n  public toAddressCache(network: BitcoinNetwork): IAddressCache[] {\n    const addressCache: IAddressCache[] = [];\n\n    for (const cacheSPK of this.cacheSPKs) {\n      addressCache[address.fromOutputScript(cacheSPK, network)] = true;\n    }\n\n    return addressCache;\n  }\n\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    writer.writeUInt16BE(this.type);\n\n    writer.writeBigSize(this.cacheSPKs.length);\n\n    for (const cacheSPK of this.cacheSPKs) {\n      writer.writeBigSize(cacheSPK.length);\n      writer.writeBytes(cacheSPK);\n    }\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IAddressCache {\n  [x: string]: boolean;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8e7c3a0638cd0c90bed6186577c76bf7bf5ed549","contentHash":"a03a9e69e3f5aca7d64f8244a97bc106489b6f5147f3c45f010046bbf0b329cb"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/index.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/index.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":12,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":52}},"4":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"5":{"start":{"line":6,"column":6},"end":{"line":6,"column":68}},"6":{"start":{"line":6,"column":51},"end":{"line":6,"column":63}},"7":{"start":{"line":8,"column":4},"end":{"line":8,"column":39}},"8":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"9":{"start":{"line":10,"column":26},"end":{"line":10,"column":33}},"10":{"start":{"line":11,"column":4},"end":{"line":11,"column":17}},"11":{"start":{"line":13,"column":19},"end":{"line":15,"column":1}},"12":{"start":{"line":14,"column":4},"end":{"line":14,"column":126}},"13":{"start":{"line":14,"column":21},"end":{"line":14,"column":126}},"14":{"start":{"line":14,"column":95},"end":{"line":14,"column":126}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":62}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":55}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":51}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":66}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":51}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":51}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":58}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":63}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":68}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":64}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":58}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":55}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":55}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":54}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":62}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":52}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":53}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":56}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":54}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":53}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":61}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":61}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":58}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":65}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":63}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":69}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":66}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":65}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":68}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":59}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":64}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":58}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":57}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":68}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":56}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":63}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":58}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":59}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":62}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":60}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":65}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":61}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":48}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":9,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":38},"end":{"line":6,"column":39}},"loc":{"start":{"line":6,"column":49},"end":{"line":6,"column":65}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":6},"end":{"line":9,"column":7}},"loc":{"start":{"line":9,"column":28},"end":{"line":12,"column":1}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":50},"end":{"line":13,"column":51}},"loc":{"start":{"line":13,"column":71},"end":{"line":15,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":12,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":12,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":12,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":9,"column":1}},{"start":{"line":9,"column":6},"end":{"line":12,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},{"start":{"line":5,"column":4},"end":{"line":7,"column":5}}],"line":5},"4":{"loc":{"start":{"line":5,"column":8},"end":{"line":5,"column":85}},"type":"binary-expr","locations":[{"start":{"line":5,"column":8},"end":{"line":5,"column":13}},{"start":{"line":5,"column":18},"end":{"line":5,"column":84}}],"line":5},"5":{"loc":{"start":{"line":5,"column":18},"end":{"line":5,"column":84}},"type":"cond-expr","locations":[{"start":{"line":5,"column":34},"end":{"line":5,"column":47}},{"start":{"line":5,"column":50},"end":{"line":5,"column":84}}],"line":5},"6":{"loc":{"start":{"line":5,"column":50},"end":{"line":5,"column":84}},"type":"binary-expr","locations":[{"start":{"line":5,"column":50},"end":{"line":5,"column":63}},{"start":{"line":5,"column":67},"end":{"line":5,"column":84}}],"line":5},"7":{"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},{"start":{"line":10,"column":4},"end":{"line":10,"column":33}}],"line":10},"8":{"loc":{"start":{"line":13,"column":19},"end":{"line":15,"column":1}},"type":"binary-expr","locations":[{"start":{"line":13,"column":20},"end":{"line":13,"column":24}},{"start":{"line":13,"column":28},"end":{"line":13,"column":45}},{"start":{"line":13,"column":50},"end":{"line":15,"column":1}}],"line":13},"9":{"loc":{"start":{"line":14,"column":21},"end":{"line":14,"column":126}},"type":"if","locations":[{"start":{"line":14,"column":21},"end":{"line":14,"column":126}},{"start":{"line":14,"column":21},"end":{"line":14,"column":126}}],"line":14},"10":{"loc":{"start":{"line":14,"column":25},"end":{"line":14,"column":93}},"type":"binary-expr","locations":[{"start":{"line":14,"column":25},"end":{"line":14,"column":40}},{"start":{"line":14,"column":44},"end":{"line":14,"column":93}}],"line":14}},"s":{"0":1,"1":83,"2":83,"3":83,"4":83,"5":83,"6":34,"7":83,"8":0,"9":0,"10":0,"11":1,"12":43,"13":83,"14":83,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1},"f":{"0":83,"1":34,"2":0,"3":43},"b":{"0":[1,1,1],"1":[1,0],"2":[83,0],"3":[83,0],"4":[83,83],"5":[0,83],"6":[83,0],"7":[0,0],"8":[1,1,1],"9":[83,0],"10":[83,83]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/index.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,mDAAiC;AACjC,kEAAgD;AAChD,mDAAiC;AACjC,mDAAiC;AACjC,0DAAwC;AACxC,+DAA6C;AAC7C,oEAAkD;AAClD,gEAA8C;AAC9C,0DAAwC;AACxC,uDAAqC;AACrC,uDAAqC;AACrC,sDAAoC;AACpC,8DAA4C;AAC5C,oDAAkC;AAClC,qDAAmC;AACnC,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,6DAA2C;AAC3C,6DAA2C;AAC3C,0DAAwC;AACxC,iEAA+C;AAC/C,+DAA6C;AAC7C,qEAAmD;AACnD,kEAAgD;AAChD,iEAA+C;AAC/C,oEAAkD;AAClD,2DAAyC;AACzC,gEAA8C;AAC9C,0DAAwC;AACxC,yDAAuC;AACvC,oEAAkD;AAClD,wDAAsC;AACtC,+DAA6C;AAC7C,0DAAwC;AACxC,2DAAyC;AACzC,8DAA4C;AAC5C,4DAA0C;AAC1C,iEAA+C;AAC/C,6DAA2C;AAC3C,gDAA8B;AAC9B,wDAAsC","sourcesContent":["export * from './chain/ChainManager';\nexport * from './chain/DlcStore';\nexport * from './chain/IChainFilterChainClient';\nexport * from './domain/Address';\nexport * from './irc/IrcMessage';\nexport * from './messages/AddressCache';\nexport * from './messages/BatchFundingGroup';\nexport * from './messages/CetAdaptorSignaturesV0';\nexport * from './messages/ContractDescriptor';\nexport * from './messages/ContractInfo';\nexport * from './messages/DlcAccept';\nexport * from './messages/DlcCancel';\nexport * from './messages/DlcClose';\nexport * from './messages/DlcCloseMetadata';\nexport * from './messages/DlcIds';\nexport * from './messages/DlcInfo';\nexport * from './messages/DlcMessage';\nexport * from './messages/DlcOffer';\nexport * from './messages/DlcSign';\nexport * from './messages/DlcTransactions';\nexport * from './messages/EventDescriptor';\nexport * from './messages/FundingInput';\nexport * from './messages/FundingSignaturesV0';\nexport * from './messages/NegotiationFields';\nexport * from './messages/NodeAnnouncementMessage';\nexport * from './messages/OracleAnnouncementV0';\nexport * from './messages/OracleAttestationV0';\nexport * from './messages/OracleEventContainerV0';\nexport * from './messages/OracleEventV0';\nexport * from './messages/OracleIdentifierV0';\nexport * from './messages/OracleInfoV0';\nexport * from './messages/OrderAccept';\nexport * from './messages/OrderNegotiationFields';\nexport * from './messages/OrderOffer';\nexport * from './messages/OrderPositionInfo';\nexport * from './messages/OrderIrcInfo';\nexport * from './messages/OrderMetadata';\nexport * from './messages/PayoutCurvePiece';\nexport * from './messages/PayoutFunction';\nexport * from './messages/RoundingIntervalsV0';\nexport * from './messages/ScriptWitnessV0';\nexport * from './MessageType';\nexport * from './validation/validate';\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2258acab757e22672e53cd1d2565485f3766307d","contentHash":"5327f0c74ed7d8045678c0561a2a97c5288675d55c0ab575f59924b450a41571"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/DlcStore.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/DlcStore.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/DlcStore.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/DlcStore.ts"],"names":[],"mappings":"","sourcesContent":["import { DlcTransactionsV0 } from '../messages/DlcTransactions';\n\n/**\n * Interface for storing, finding, and deleting dlc messages.\n */\nexport interface IDlcStore {\n  findDlcTransactionsList(): Promise<DlcTransactionsV0[]>;\n  findDlcTransactions(contractId: Buffer): Promise<DlcTransactionsV0>;\n  saveDlcTransactions(dlcTransactions: DlcTransactionsV0): Promise<void>;\n  deleteDlcTransactions(contractId: Buffer): Promise<void>;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1c0fdb27acd5de34973a5dcf178dc6674e55fb3a","contentHash":"bed65b56698ab97ab1c70c319f00cb2a7c7cc2415caab983646f6ddc41855c5d"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/IChainFilterChainClient.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/IChainFilterChainClient.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/IChainFilterChainClient.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/chain/IChainFilterChainClient.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * The interface required by the Chainfilter to perform on-chain validation checks\n * of messages. A simplified interface is required by the Chainfilter. The actual\n * chain client implementation may offer a broader set of feautures. Additionally,\n * an adapter could be constructred to make an chain client conform to that required\n * by the Chainfilter.\n */\nexport interface IChainFilterChainClient {\n  getBlockchainInfo(): Promise<HasBlocks & HasBestBlockHash>;\n  getBlockHash(height: number): Promise<string>;\n  getBlock(hash: string): Promise<HasTxStrings & HasHeight & HasHash>;\n  getRawBlock(hash: string): Promise<Buffer>;\n  getTransaction(txId: string): Promise<HasTransaction>;\n  getUtxo(txId: string, voutIdx: number): Promise<HasConfirmations>;\n  waitForSync(): Promise<boolean>;\n}\n\nexport type HasBlocks = {\n  blocks: number;\n};\n\nexport type HasBestBlockHash = {\n  bestblockhash: string;\n};\n\nexport type HasTxStrings = {\n  tx: string[];\n};\n\nexport type HasHeight = {\n  height: number;\n};\n\nexport type HasHash = {\n  hash: string;\n};\n\nexport type HasTransaction = {\n  txid: string;\n  blockhash: string;\n};\n\nexport type HasScriptPubKey = {\n  scriptPubKey: HasHex;\n};\n\nexport type HasValue = {\n  value: number;\n};\n\nexport type HasConfirmations = {\n  confirmations: string;\n};\n\nexport type HasHex = {\n  hex: string;\n};\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8102c152eccf3b16f3c18ed85f35d821a1a3996d","contentHash":"c29bdbeac0de9ab64fe96da5c488432d2e6d912cdd3b8c61904876f697116e85"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/domain/Address.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/domain/Address.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":29}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":29}},"7":{"start":{"line":11,"column":24},"end":{"line":11,"column":44}},"8":{"start":{"line":12,"column":24},"end":{"line":12,"column":57}},"9":{"start":{"line":13,"column":21},"end":{"line":13,"column":39}},"10":{"start":{"line":14,"column":21},"end":{"line":14,"column":42}},"11":{"start":{"line":15,"column":25},"end":{"line":15,"column":48}},"12":{"start":{"line":16,"column":8},"end":{"line":16,"column":24}},"13":{"start":{"line":22,"column":8},"end":{"line":22,"column":33}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":25}},"15":{"start":{"line":24,"column":8},"end":{"line":24,"column":25}},"16":{"start":{"line":27,"column":8},"end":{"line":27,"column":43}},"17":{"start":{"line":33,"column":23},"end":{"line":33,"column":49}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":39}},"19":{"start":{"line":35,"column":27},"end":{"line":35,"column":53}},"20":{"start":{"line":36,"column":8},"end":{"line":36,"column":50}},"21":{"start":{"line":37,"column":8},"end":{"line":37,"column":54}},"22":{"start":{"line":38,"column":8},"end":{"line":38,"column":44}},"23":{"start":{"line":39,"column":8},"end":{"line":39,"column":45}},"24":{"start":{"line":40,"column":8},"end":{"line":40,"column":49}},"25":{"start":{"line":41,"column":8},"end":{"line":41,"column":33}},"26":{"start":{"line":44,"column":0},"end":{"line":44,"column":26}},"27":{"start":{"line":45,"column":0},"end":{"line":45,"column":65}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":17,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":28},"end":{"line":25,"column":5}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":15},"end":{"line":28,"column":5}},"line":26},"3":{"name":"(anonymous_3)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":16},"end":{"line":42,"column":5}},"line":32}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":2,"14":2,"15":2,"16":0,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1},"f":{"0":1,"1":2,"2":0,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/domain/Address.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/domain/Address.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAE7C,MAAa,OAAO;IAGX,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,gBAAgB;QACtC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAElC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAEnC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAcD;;OAEG;IACH,YAAY,IAAY,EAAE,IAAY;QAf/B,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAgBzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,QAAQ;QACb,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA1DH,0BA2DC;AA1De,YAAI,GAAG,yBAAW,CAAC,uBAAuB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\n\nexport class Address {\n  public static type = MessageType.NodeAnnouncementAddress;\n\n  public static deserialize(buf: Buffer): Address {\n    const reader = new BufferReader(buf);\n    reader.readBigSize(); // read off type\n    reader.readBigSize(); // read size\n\n    const hostLen = reader.readBigSize();\n    const hostBuf = reader.readBytes(Number(hostLen));\n    const host = hostBuf.toString();\n    const port = reader.readUInt16BE();\n\n    const instance = new Address(host, port);\n\n    return instance;\n  }\n\n  public type = Address.type;\n\n  /**\n   * String notation representation of the host\n   */\n  public host: string;\n\n  /**\n   * Port number\n   */\n  public port: number;\n\n  /**\n   * Base class representing a network address\n   */\n  constructor(host: string, port: number) {\n    this.host = host;\n    this.port = port;\n  }\n\n  public toString(): string {\n    return `${this.host}:${this.port}`;\n  }\n\n  /**\n   * Serializes the dlc_transactions_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.host.length);\n    dataWriter.writeBytes(Buffer.from(this.host));\n    dataWriter.writeUInt16BE(this.port);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"64a0885922fd6b02302a757d18f48a2825662f56","contentHash":"9a86b9dadd5fae9fef680778b2c9be930dde44981cea1e99f080af02b6ead834"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/BatchFundingGroup.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/BatchFundingGroup.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":46}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":37,"column":8},"end":{"line":37,"column":43}},"6":{"start":{"line":38,"column":8},"end":{"line":38,"column":34}},"7":{"start":{"line":39,"column":8},"end":{"line":39,"column":30}},"8":{"start":{"line":40,"column":8},"end":{"line":40,"column":27}},"9":{"start":{"line":47,"column":25},"end":{"line":47,"column":48}},"10":{"start":{"line":48,"column":23},"end":{"line":48,"column":52}},"11":{"start":{"line":49,"column":8},"end":{"line":49,"column":29}},"12":{"start":{"line":50,"column":8},"end":{"line":50,"column":47}},"13":{"start":{"line":51,"column":37},"end":{"line":51,"column":57}},"14":{"start":{"line":52,"column":8},"end":{"line":55,"column":9}},"15":{"start":{"line":52,"column":21},"end":{"line":52,"column":22}},"16":{"start":{"line":53,"column":27},"end":{"line":53,"column":47}},"17":{"start":{"line":54,"column":12},"end":{"line":54,"column":76}},"18":{"start":{"line":56,"column":33},"end":{"line":56,"column":53}},"19":{"start":{"line":57,"column":8},"end":{"line":60,"column":9}},"20":{"start":{"line":57,"column":21},"end":{"line":57,"column":22}},"21":{"start":{"line":58,"column":27},"end":{"line":58,"column":47}},"22":{"start":{"line":59,"column":12},"end":{"line":59,"column":72}},"23":{"start":{"line":61,"column":8},"end":{"line":61,"column":87}},"24":{"start":{"line":62,"column":30},"end":{"line":62,"column":50}},"25":{"start":{"line":63,"column":8},"end":{"line":67,"column":9}},"26":{"start":{"line":63,"column":21},"end":{"line":63,"column":22}},"27":{"start":{"line":64,"column":34},"end":{"line":64,"column":54}},"28":{"start":{"line":65,"column":31},"end":{"line":65,"column":70}},"29":{"start":{"line":66,"column":12},"end":{"line":66,"column":58}},"30":{"start":{"line":68,"column":8},"end":{"line":68,"column":24}},"31":{"start":{"line":74,"column":8},"end":{"line":80,"column":10}},"32":{"start":{"line":76,"column":62},"end":{"line":76,"column":80}},"33":{"start":{"line":77,"column":54},"end":{"line":77,"column":72}},"34":{"start":{"line":86,"column":23},"end":{"line":86,"column":49}},"35":{"start":{"line":87,"column":8},"end":{"line":87,"column":39}},"36":{"start":{"line":88,"column":27},"end":{"line":88,"column":53}},"37":{"start":{"line":89,"column":8},"end":{"line":89,"column":61}},"38":{"start":{"line":90,"column":8},"end":{"line":93,"column":11}},"39":{"start":{"line":91,"column":12},"end":{"line":91,"column":47}},"40":{"start":{"line":92,"column":12},"end":{"line":92,"column":38}},"41":{"start":{"line":94,"column":8},"end":{"line":94,"column":57}},"42":{"start":{"line":95,"column":8},"end":{"line":98,"column":11}},"43":{"start":{"line":96,"column":12},"end":{"line":96,"column":47}},"44":{"start":{"line":97,"column":12},"end":{"line":97,"column":38}},"45":{"start":{"line":99,"column":8},"end":{"line":99,"column":64}},"46":{"start":{"line":100,"column":8},"end":{"line":100,"column":54}},"47":{"start":{"line":101,"column":8},"end":{"line":105,"column":11}},"48":{"start":{"line":102,"column":29},"end":{"line":102,"column":44}},"49":{"start":{"line":103,"column":12},"end":{"line":103,"column":47}},"50":{"start":{"line":104,"column":12},"end":{"line":104,"column":44}},"51":{"start":{"line":106,"column":8},"end":{"line":106,"column":45}},"52":{"start":{"line":107,"column":8},"end":{"line":107,"column":49}},"53":{"start":{"line":108,"column":8},"end":{"line":108,"column":33}},"54":{"start":{"line":111,"column":0},"end":{"line":111,"column":46}},"55":{"start":{"line":112,"column":0},"end":{"line":112,"column":69}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":18},"end":{"line":41,"column":5}},"line":33},"1":{"name":"(anonymous_1)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":28},"end":{"line":69,"column":5}},"line":46},"2":{"name":"(anonymous_2)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":13},"end":{"line":81,"column":5}},"line":73},"3":{"name":"(anonymous_3)","decl":{"start":{"line":76,"column":54},"end":{"line":76,"column":55}},"loc":{"start":{"line":76,"column":62},"end":{"line":76,"column":80}},"line":76},"4":{"name":"(anonymous_4)","decl":{"start":{"line":77,"column":46},"end":{"line":77,"column":47}},"loc":{"start":{"line":77,"column":54},"end":{"line":77,"column":72}},"line":77},"5":{"name":"(anonymous_5)","decl":{"start":{"line":85,"column":4},"end":{"line":85,"column":5}},"loc":{"start":{"line":85,"column":16},"end":{"line":109,"column":5}},"line":85},"6":{"name":"(anonymous_6)","decl":{"start":{"line":90,"column":37},"end":{"line":90,"column":38}},"loc":{"start":{"line":90,"column":45},"end":{"line":93,"column":9}},"line":90},"7":{"name":"(anonymous_7)","decl":{"start":{"line":95,"column":33},"end":{"line":95,"column":34}},"loc":{"start":{"line":95,"column":41},"end":{"line":98,"column":9}},"line":95},"8":{"name":"(anonymous_8)","decl":{"start":{"line":101,"column":30},"end":{"line":101,"column":31}},"loc":{"start":{"line":101,"column":38},"end":{"line":105,"column":9}},"line":101}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":15,"6":15,"7":15,"8":15,"9":12,"10":12,"11":12,"12":12,"13":12,"14":12,"15":12,"16":5,"17":5,"18":12,"19":12,"20":12,"21":5,"22":5,"23":12,"24":12,"25":12,"26":12,"27":54,"28":54,"29":54,"30":12,"31":2,"32":0,"33":0,"34":19,"35":19,"36":19,"37":19,"38":19,"39":15,"40":15,"41":19,"42":19,"43":15,"44":15,"45":19,"46":19,"47":19,"48":77,"49":77,"50":77,"51":19,"52":19,"53":19,"54":1,"55":1},"f":{"0":15,"1":12,"2":2,"3":0,"4":0,"5":19,"6":15,"7":15,"8":77},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/BatchFundingGroup.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/BatchFundingGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Value } from '@node-dlc/bitcoin';\nimport { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * The BatchFundingGroup TLV contains information about the intent to\n * enter multiple DLCs simulatenously within one batch dlc funding\n * transaction in the contract negotiation stage of the peer protocol\n *\n * This is the first step toward creating a batch dlc funding transaction\n *\n * A DlcOffer or DlcAccept can contain one or multiple BatchFundingInfo\n * TLVs to specify one or more groupings. This allows specification of\n * collateral put towards different types of contracts, such as options\n * contracts, futures contracts, or other investment types.\n *\n * Attributes:\n * - tempContractIds: Temporary identifiers for contracts proposed in DlcOffers.\n * - contractIds: Identifiers for contracts that have been accepted and are\n *   part of the funding transaction. These are derived from DlcOffers and DlcAccepts.\n * - allocatedCollateral: The amount of collateral allocated to the contracts\n *   within this group. This is specified early in the negotiation process.\n * - eventIds: Oracle event identifiers for the contracts in this group. These\n *   are also specified early in the negotiation process.\n *\n * Note: During the early stages of the negotiation protocol, only allocatedCollateral\n * and eventIds are specified. tempContractIds and contractIds are added to the\n * DlcAccept upon creation.\n */\nexport class BatchFundingGroup implements IDlcMessage {\n  public static type = MessageType.BatchFundingGroup;\n\n  /**\n   * Deserializes a batch_contract_info message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): BatchFundingGroup {\n    const instance = new BatchFundingGroup();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    const tempContractIdsCount = reader.readBigSize();\n    for (let i = 0; i < Number(tempContractIdsCount); i++) {\n      const length = reader.readBigSize();\n      instance.tempContractIds.push(reader.readBytes(Number(length)));\n    }\n\n    const contractIdsCount = reader.readBigSize();\n    for (let i = 0; i < Number(contractIdsCount); i++) {\n      const length = reader.readBigSize();\n      instance.contractIds.push(reader.readBytes(Number(length)));\n    }\n\n    instance.allocatedCollateral = Value.fromSats(reader.readUInt64BE());\n\n    const eventIdsCount = reader.readBigSize();\n    for (let i = 0; i < Number(eventIdsCount); i++) {\n      const eventIdLength = reader.readBigSize();\n      const eventIdBuf = reader.readBytes(Number(eventIdLength));\n      instance.eventIds.push(eventIdBuf.toString());\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for batch_contract_info message.\n   */\n  public type = BatchFundingGroup.type;\n\n  public length: bigint;\n\n  public tempContractIds: Buffer[] = [];\n\n  public contractIds: Buffer[] = [];\n\n  public allocatedCollateral: Value;\n\n  public eventIds: string[] = [];\n\n  /**\n   * Converts batch_funding_info to JSON\n   */\n  public toJSON(): IBatchFundingGroupJSON {\n    return {\n      type: this.type,\n      tempContractIds: this.tempContractIds.map((id) => id.toString('hex')),\n      contractIds: this.contractIds.map((id) => id.toString('hex')),\n      totalCollateral: Number(this.allocatedCollateral.sats),\n      eventIds: this.eventIds,\n    };\n  }\n\n  /**\n   * Serializes the batch_funding_info message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n\n    dataWriter.writeBigSize(this.tempContractIds.length);\n    this.tempContractIds.forEach((id) => {\n      dataWriter.writeBigSize(id.length);\n      dataWriter.writeBytes(id);\n    });\n\n    dataWriter.writeBigSize(this.contractIds.length);\n    this.contractIds.forEach((id) => {\n      dataWriter.writeBigSize(id.length);\n      dataWriter.writeBytes(id);\n    });\n\n    dataWriter.writeUInt64BE(this.allocatedCollateral.sats);\n\n    dataWriter.writeBigSize(this.eventIds.length);\n    this.eventIds.forEach((id) => {\n      const idBuffer = Buffer.from(id);\n      dataWriter.writeBigSize(id.length);\n      dataWriter.writeBytes(idBuffer);\n    });\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IBatchFundingGroupJSON {\n  type: number;\n  tempContractIds: string[];\n  contractIds: string[];\n  totalCollateral: number;\n  eventIds: string[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8c9520ad2de8f29f75f3ee623a611c092d773927","contentHash":"dfb1d8cb74b955724718bf9b9e22ed47a3e53c7d39dc3aabc07c43668e667a38"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignaturesV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignaturesV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":40}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":15,"column":8},"end":{"line":15,"column":48}},"5":{"start":{"line":16,"column":8},"end":{"line":16,"column":23}},"6":{"start":{"line":23,"column":25},"end":{"line":23,"column":53}},"7":{"start":{"line":24,"column":23},"end":{"line":24,"column":52}},"8":{"start":{"line":25,"column":8},"end":{"line":25,"column":29}},"9":{"start":{"line":26,"column":8},"end":{"line":26,"column":47}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":29}},"11":{"start":{"line":28,"column":8},"end":{"line":32,"column":9}},"12":{"start":{"line":29,"column":33},"end":{"line":29,"column":53}},"13":{"start":{"line":30,"column":30},"end":{"line":30,"column":50}},"14":{"start":{"line":31,"column":12},"end":{"line":31,"column":60}},"15":{"start":{"line":33,"column":8},"end":{"line":33,"column":24}},"16":{"start":{"line":39,"column":8},"end":{"line":47,"column":10}},"17":{"start":{"line":42,"column":16},"end":{"line":45,"column":18}},"18":{"start":{"line":53,"column":23},"end":{"line":53,"column":49}},"19":{"start":{"line":54,"column":8},"end":{"line":54,"column":39}},"20":{"start":{"line":55,"column":27},"end":{"line":55,"column":53}},"21":{"start":{"line":56,"column":8},"end":{"line":56,"column":50}},"22":{"start":{"line":57,"column":8},"end":{"line":60,"column":9}},"23":{"start":{"line":58,"column":12},"end":{"line":58,"column":52}},"24":{"start":{"line":59,"column":12},"end":{"line":59,"column":49}},"25":{"start":{"line":61,"column":8},"end":{"line":61,"column":45}},"26":{"start":{"line":62,"column":8},"end":{"line":62,"column":49}},"27":{"start":{"line":63,"column":8},"end":{"line":63,"column":33}},"28":{"start":{"line":66,"column":0},"end":{"line":66,"column":56}},"29":{"start":{"line":67,"column":0},"end":{"line":67,"column":79}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":18},"end":{"line":17,"column":5}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":28},"end":{"line":34,"column":5}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":13},"end":{"line":48,"column":5}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":41,"column":32},"end":{"line":41,"column":33}},"loc":{"start":{"line":41,"column":41},"end":{"line":46,"column":13}},"line":41},"4":{"name":"(anonymous_4)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":16},"end":{"line":64,"column":5}},"line":52}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":51,"5":51,"6":47,"7":47,"8":47,"9":47,"10":47,"11":47,"12":138,"13":138,"14":138,"15":47,"16":2,"17":6,"18":26,"19":26,"20":26,"21":26,"22":26,"23":75,"24":75,"25":26,"26":26,"27":26,"28":1,"29":1},"f":{"0":51,"1":47,"2":2,"3":6,"4":26},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignaturesV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignaturesV0.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C;;;GAGG;AACH,MAAa,sBAAsB;IAAnC;QAwBE;;WAEG;QACI,SAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;QAInC,SAAI,GAAW,EAAE,CAAC;IAoC3B,CAAC;IAhEC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,gBAAgB;QAEtC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAClB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;SACjD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1B,OAAO;oBACL,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC9C,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACzC,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACxC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACtC;QAED,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAlEH,wDAmEC;AAlEe,2BAAI,GAAG,yBAAW,CAAC,sBAAsB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * CetAdaptorSignatures V0 contains CET signatures and any necessary\n * information linking the signatures to their corresponding outcome\n */\nexport class CetAdaptorSignaturesV0 implements IDlcMessage {\n  public static type = MessageType.CetAdaptorSignaturesV0;\n\n  /**\n   * Deserializes a cet_adaptor_signature_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): CetAdaptorSignaturesV0 {\n    const instance = new CetAdaptorSignaturesV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    reader.readBigSize(); // nb_signatures\n\n    while (!reader.eof) {\n      const encryptedSig = reader.readBytes(65);\n      const dleqProof = reader.readBytes(97);\n      instance.sigs.push({ encryptedSig, dleqProof });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for cet_adaptor_signature message. cet_adaptor_signature = 42774\n   */\n  public type = CetAdaptorSignaturesV0.type;\n\n  public length: bigint;\n\n  public sigs: ISig[] = [];\n\n  /**\n   * Converts cet_adaptor_signature to JSON\n   */\n  public toJSON(): ICetAdaptorSignaturesV0JSON {\n    return {\n      type: this.type,\n      sigs: this.sigs.map((sig) => {\n        return {\n          encryptedSig: sig.encryptedSig.toString('hex'),\n          dleqProof: sig.dleqProof.toString('hex'),\n        };\n      }),\n    };\n  }\n\n  /**\n   * Serializes the cet_adaptor_signature message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.sigs.length);\n\n    for (const sig of this.sigs) {\n      dataWriter.writeBytes(sig.encryptedSig);\n      dataWriter.writeBytes(sig.dleqProof);\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n    return writer.toBuffer();\n  }\n}\n\ninterface ISig {\n  encryptedSig: Buffer;\n  dleqProof: Buffer;\n}\n\nexport interface ICetAdaptorSignaturesV0JSON {\n  type: number;\n  sigs: ISigJSON[];\n}\n\nexport interface ISigJSON {\n  encryptedSig: string;\n  dleqProof: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"740fe06cab95968c421836c993218d67414f67ef","contentHash":"92cb7234a7294fbc9f1574afa2ebc0b56a77f85b19807c9d1f8e289046a94019"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractDescriptor.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractDescriptor.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":98}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":25},"end":{"line":7,"column":52}},"6":{"start":{"line":8,"column":30},"end":{"line":8,"column":62}},"7":{"start":{"line":11,"column":23},"end":{"line":11,"column":52}},"8":{"start":{"line":12,"column":21},"end":{"line":12,"column":49}},"9":{"start":{"line":13,"column":8},"end":{"line":20,"column":9}},"10":{"start":{"line":15,"column":16},"end":{"line":15,"column":61}},"11":{"start":{"line":17,"column":16},"end":{"line":17,"column":61}},"12":{"start":{"line":19,"column":16},"end":{"line":19,"column":117}},"13":{"start":{"line":23,"column":0},"end":{"line":23,"column":48}},"14":{"start":{"line":30,"column":8},"end":{"line":30,"column":28}},"15":{"start":{"line":34,"column":8},"end":{"line":34,"column":46}},"16":{"start":{"line":35,"column":8},"end":{"line":35,"column":27}},"17":{"start":{"line":42,"column":25},"end":{"line":42,"column":51}},"18":{"start":{"line":43,"column":23},"end":{"line":43,"column":52}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":29}},"20":{"start":{"line":45,"column":8},"end":{"line":45,"column":47}},"21":{"start":{"line":46,"column":8},"end":{"line":46,"column":29}},"22":{"start":{"line":47,"column":8},"end":{"line":52,"column":9}},"23":{"start":{"line":48,"column":12},"end":{"line":51,"column":15}},"24":{"start":{"line":53,"column":8},"end":{"line":53,"column":24}},"25":{"start":{"line":59,"column":8},"end":{"line":67,"column":10}},"26":{"start":{"line":62,"column":16},"end":{"line":65,"column":18}},"27":{"start":{"line":73,"column":23},"end":{"line":73,"column":49}},"28":{"start":{"line":74,"column":8},"end":{"line":74,"column":39}},"29":{"start":{"line":75,"column":27},"end":{"line":75,"column":53}},"30":{"start":{"line":76,"column":8},"end":{"line":76,"column":54}},"31":{"start":{"line":77,"column":8},"end":{"line":80,"column":9}},"32":{"start":{"line":78,"column":12},"end":{"line":78,"column":51}},"33":{"start":{"line":79,"column":12},"end":{"line":79,"column":58}},"34":{"start":{"line":81,"column":8},"end":{"line":81,"column":45}},"35":{"start":{"line":82,"column":8},"end":{"line":82,"column":49}},"36":{"start":{"line":83,"column":8},"end":{"line":83,"column":33}},"37":{"start":{"line":86,"column":0},"end":{"line":86,"column":52}},"38":{"start":{"line":87,"column":0},"end":{"line":87,"column":75}},"39":{"start":{"line":94,"column":8},"end":{"line":94,"column":28}},"40":{"start":{"line":98,"column":8},"end":{"line":98,"column":46}},"41":{"start":{"line":105,"column":25},"end":{"line":105,"column":51}},"42":{"start":{"line":106,"column":23},"end":{"line":106,"column":52}},"43":{"start":{"line":107,"column":8},"end":{"line":107,"column":29}},"44":{"start":{"line":108,"column":8},"end":{"line":108,"column":47}},"45":{"start":{"line":109,"column":8},"end":{"line":109,"column":51}},"46":{"start":{"line":110,"column":8},"end":{"line":110,"column":108}},"47":{"start":{"line":111,"column":8},"end":{"line":111,"column":121}},"48":{"start":{"line":112,"column":8},"end":{"line":112,"column":24}},"49":{"start":{"line":120,"column":8},"end":{"line":120,"column":42}},"50":{"start":{"line":126,"column":8},"end":{"line":131,"column":10}},"51":{"start":{"line":137,"column":23},"end":{"line":137,"column":49}},"52":{"start":{"line":138,"column":8},"end":{"line":138,"column":39}},"53":{"start":{"line":139,"column":27},"end":{"line":139,"column":53}},"54":{"start":{"line":140,"column":8},"end":{"line":140,"column":49}},"55":{"start":{"line":141,"column":8},"end":{"line":141,"column":63}},"56":{"start":{"line":142,"column":8},"end":{"line":142,"column":66}},"57":{"start":{"line":143,"column":8},"end":{"line":143,"column":45}},"58":{"start":{"line":144,"column":8},"end":{"line":144,"column":49}},"59":{"start":{"line":145,"column":8},"end":{"line":145,"column":33}},"60":{"start":{"line":148,"column":0},"end":{"line":148,"column":52}},"61":{"start":{"line":149,"column":0},"end":{"line":149,"column":75}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":28},"end":{"line":21,"column":5}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":4},"end":{"line":29,"column":5}},"loc":{"start":{"line":29,"column":18},"end":{"line":36,"column":5}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":4},"end":{"line":41,"column":5}},"loc":{"start":{"line":41,"column":28},"end":{"line":54,"column":5}},"line":41},"3":{"name":"(anonymous_3)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":13},"end":{"line":68,"column":5}},"line":58},"4":{"name":"(anonymous_4)","decl":{"start":{"line":61,"column":40},"end":{"line":61,"column":41}},"loc":{"start":{"line":61,"column":53},"end":{"line":66,"column":13}},"line":61},"5":{"name":"(anonymous_5)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":16},"end":{"line":84,"column":5}},"line":72},"6":{"name":"(anonymous_6)","decl":{"start":{"line":93,"column":4},"end":{"line":93,"column":5}},"loc":{"start":{"line":93,"column":18},"end":{"line":99,"column":5}},"line":93},"7":{"name":"(anonymous_7)","decl":{"start":{"line":104,"column":4},"end":{"line":104,"column":5}},"loc":{"start":{"line":104,"column":28},"end":{"line":113,"column":5}},"line":104},"8":{"name":"(anonymous_8)","decl":{"start":{"line":119,"column":4},"end":{"line":119,"column":5}},"loc":{"start":{"line":119,"column":15},"end":{"line":121,"column":5}},"line":119},"9":{"name":"(anonymous_9)","decl":{"start":{"line":125,"column":4},"end":{"line":125,"column":5}},"loc":{"start":{"line":125,"column":13},"end":{"line":132,"column":5}},"line":125},"10":{"name":"(anonymous_10)","decl":{"start":{"line":136,"column":4},"end":{"line":136,"column":5}},"loc":{"start":{"line":136,"column":16},"end":{"line":146,"column":5}},"line":136}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":8},"end":{"line":20,"column":9}},"type":"switch","locations":[{"start":{"line":14,"column":12},"end":{"line":15,"column":61}},{"start":{"line":16,"column":12},"end":{"line":17,"column":61}},{"start":{"line":18,"column":12},"end":{"line":19,"column":117}}],"line":13}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":58,"8":58,"9":58,"10":56,"11":2,"12":0,"13":1,"14":57,"15":57,"16":57,"17":56,"18":56,"19":56,"20":56,"21":56,"22":56,"23":168,"24":56,"25":3,"26":9,"27":28,"28":28,"29":28,"30":28,"31":28,"32":84,"33":84,"34":28,"35":28,"36":28,"37":1,"38":1,"39":5,"40":5,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1},"f":{"0":58,"1":57,"2":56,"3":3,"4":9,"5":28,"6":5,"7":2,"8":2,"9":2,"10":1},"b":{"0":[56,2,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractDescriptor.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractDescriptor.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAC7C,gDAA6C;AAE7C,qDAAwE;AACxE,+DAG+B;AAE/B,MAAsB,kBAAkB;IAC/B,MAAM,CAAC,WAAW,CACvB,GAAW;QAEX,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,oBAAoB;gBACnC,OAAO,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,yBAAW,CAAC,oBAAoB;gBACnC,OAAO,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C;gBACE,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;SACL;IACH,CAAC;CASF;AA3BD,gDA2BC;AAED;;;GAGG;AACH,MAAa,oBACX,SAAQ,kBAAkB;IAD5B;;QA2BE;;WAEG;QACI,SAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;QAIjC,aAAQ,GAAe,EAAE,CAAC;IAqCnC,CAAC;IAlEC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,eAAe;QAErC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAClB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE;aACnC,CAAC,CAAC;SACJ;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtC,OAAO;oBACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACxC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;iBACzC,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE9C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC/C;QAED,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAtEH,oDAuEC;AApEe,yBAAI,GAAG,yBAAW,CAAC,oBAAoB,CAAC;AAsExD;;;GAGG;AACH,MAAa,oBACX,SAAQ,kBAAkB;IAD5B;;QAyBE;;WAEG;QACI,SAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAgD1C,CAAC;IAvEC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;QAEzD,QAAQ,CAAC,cAAc,GAAG,+BAAc,CAAC,WAAW,CAAC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,CAAC;QACrE,QAAQ,CAAC,iBAAiB,GAAG,yCAAmB,CAAC,WAAW,CAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,CACf,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAeD;;;;OAIG;IACI,QAAQ;QACb,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC5C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;SACnD,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;QACvD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA3EH,oDA4EC;AAzEe,yBAAI,GAAG,yBAAW,CAAC,oBAAoB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport { PayoutFunction, PayoutFunctionV0JSON } from './PayoutFunction';\nimport {\n  IRoundingIntervalsV0JSON,\n  RoundingIntervalsV0,\n} from './RoundingIntervalsV0';\n\nexport abstract class ContractDescriptor {\n  public static deserialize(\n    buf: Buffer,\n  ): ContractDescriptorV0 | ContractDescriptorV1 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.ContractDescriptorV0:\n        return ContractDescriptorV0.deserialize(buf);\n      case MessageType.ContractDescriptorV1:\n        return ContractDescriptorV1.deserialize(buf);\n      default:\n        throw new Error(\n          `Contract Descriptor TLV type must be ContractDescriptorV0 or ContractDescriptorV1`,\n        );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON(): ContractDescriptorV0JSON | ContractDescriptorV1JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * ContractDescriptor V0 contains information about a contract's outcomes\n * and their corresponding payouts.\n */\nexport class ContractDescriptorV0\n  extends ContractDescriptor\n  implements IDlcMessage {\n  public static type = MessageType.ContractDescriptorV0;\n\n  /**\n   * Deserializes an contract_descriptor_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): ContractDescriptorV0 {\n    const instance = new ContractDescriptorV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    reader.readBigSize(); // num_outcomes\n\n    while (!reader.eof) {\n      instance.outcomes.push({\n        outcome: reader.readBytes(32),\n        localPayout: reader.readUInt64BE(),\n      });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for contract_descriptor_v0 message. contract_descriptor_v0 = 42768\n   */\n  public type = ContractDescriptorV0.type;\n\n  public length: bigint;\n\n  public outcomes: IOutcome[] = [];\n\n  /**\n   * Converts contract_descriptor_v0 to JSON\n   */\n  public toJSON(): ContractDescriptorV0JSON {\n    return {\n      type: this.type,\n      outcomes: this.outcomes.map((outcome) => {\n        return {\n          outcome: outcome.outcome.toString('hex'),\n          localPayout: Number(outcome.localPayout),\n        };\n      }),\n    };\n  }\n\n  /**\n   * Serializes the contract_descriptor_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.outcomes.length);\n\n    for (const outcome of this.outcomes) {\n      dataWriter.writeBytes(outcome.outcome);\n      dataWriter.writeUInt64BE(outcome.localPayout);\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * ContractDescriptor V1 contains information about a contract's outcomes\n * and their corresponding payouts.\n */\nexport class ContractDescriptorV1\n  extends ContractDescriptor\n  implements IDlcMessage {\n  public static type = MessageType.ContractDescriptorV1;\n\n  /**\n   * Deserializes an contract_descriptor_v1 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): ContractDescriptorV1 {\n    const instance = new ContractDescriptorV1();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.numDigits = reader.readUInt16BE(); // num_digits\n\n    instance.payoutFunction = PayoutFunction.deserialize(getTlv(reader));\n    instance.roundingIntervals = RoundingIntervalsV0.deserialize(\n      getTlv(reader),\n    );\n\n    return instance;\n  }\n\n  /**\n   * The type for contract_descriptor_v1 message. contract_descriptor_v1 = 42784\n   */\n  public type = ContractDescriptorV1.type;\n\n  public length: bigint;\n\n  public numDigits: number;\n\n  public payoutFunction: PayoutFunction;\n\n  public roundingIntervals: RoundingIntervalsV0;\n\n  /**\n   * Validates correctness of all fields in the message\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md#the-contract_descriptor-type\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    this.roundingIntervals.validate();\n  }\n\n  /**\n   * Converts contract_descriptor_v1 to JSON\n   */\n  public toJSON(): ContractDescriptorV1JSON {\n    return {\n      type: this.type,\n      numDigits: this.numDigits,\n      payoutFunction: this.payoutFunction.toJSON(),\n      roundingIntervals: this.roundingIntervals.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the contract_descriptor_v1 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt16BE(this.numDigits);\n    dataWriter.writeBytes(this.payoutFunction.serialize());\n    dataWriter.writeBytes(this.roundingIntervals.serialize());\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\ninterface IOutcome {\n  outcome: Buffer;\n  localPayout: bigint;\n}\n\ninterface IOutcomeJSON {\n  outcome: string;\n  localPayout: number;\n}\n\nexport interface ContractDescriptorV0JSON {\n  type: number;\n  outcomes: IOutcomeJSON[];\n}\n\nexport interface ContractDescriptorV1JSON {\n  type: number;\n  numDigits: number;\n  payoutFunction: PayoutFunctionV0JSON;\n  roundingIntervals: IRoundingIntervalsV0JSON;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a060d365e2c6abf645e5cd10ac7a8d8f44903437","contentHash":"fee42764503a30afd9a76647eece425e2b96b1ac79d0a6d7cf4eacb119c00de3"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/getTlv.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/getTlv.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":42}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":7,"column":17},"end":{"line":7,"column":37}},"4":{"start":{"line":8,"column":19},"end":{"line":8,"column":39}},"5":{"start":{"line":9,"column":17},"end":{"line":9,"column":49}},"6":{"start":{"line":10,"column":19},"end":{"line":10,"column":45}},"7":{"start":{"line":11,"column":4},"end":{"line":11,"column":30}},"8":{"start":{"line":12,"column":4},"end":{"line":12,"column":32}},"9":{"start":{"line":13,"column":4},"end":{"line":13,"column":28}},"10":{"start":{"line":14,"column":4},"end":{"line":14,"column":29}},"11":{"start":{"line":16,"column":0},"end":{"line":16,"column":24}},"12":{"start":{"line":18,"column":4},"end":{"line":18,"column":25}},"13":{"start":{"line":19,"column":19},"end":{"line":19,"column":39}},"14":{"start":{"line":20,"column":4},"end":{"line":20,"column":37}},"15":{"start":{"line":22,"column":0},"end":{"line":22,"column":26}}},"fnMap":{"0":{"name":"getTlv","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":15}},"loc":{"start":{"line":6,"column":24},"end":{"line":15,"column":1}},"line":6},"1":{"name":"skipTlv","decl":{"start":{"line":17,"column":9},"end":{"line":17,"column":16}},"loc":{"start":{"line":17,"column":25},"end":{"line":21,"column":1}},"line":17}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":435,"4":435,"5":435,"6":435,"7":435,"8":435,"9":435,"10":435,"11":1,"12":2,"13":2,"14":2,"15":1},"f":{"0":435,"1":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/getTlv.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/getTlv.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,uBAAuB;AACvB,SAAgB,MAAM,CAAC,MAAoB;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;IAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAXD,wBAWC;AAED,SAAgB,OAAO,CAAC,MAAoB;IAC1C,MAAM,CAAC,WAAW,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC;AAJD,0BAIC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\n// TODO: add unit tests\nexport function getTlv(reader: BufferReader): Buffer {\n  const type = reader.readBigSize();\n  const length = reader.readBigSize();\n  const body = reader.readBytes(Number(length));\n\n  const writer = new BufferWriter();\n  writer.writeBigSize(type);\n  writer.writeBigSize(length);\n  writer.writeBytes(body);\n\n  return writer.toBuffer();\n}\n\nexport function skipTlv(reader: BufferReader): void {\n  reader.readBigSize();\n  const length = reader.readBigSize();\n  reader.readBytes(Number(length));\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e14e7938ecce3482c703552fbd065c3da38e9cf5","contentHash":"ae16f2f8721a52d940b4f70071e9afd50fdfd7bd9a1defe200ad903920ebf303"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutFunction.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutFunction.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":59}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":27},"end":{"line":7,"column":56}},"6":{"start":{"line":10,"column":23},"end":{"line":10,"column":52}},"7":{"start":{"line":11,"column":21},"end":{"line":11,"column":49}},"8":{"start":{"line":12,"column":8},"end":{"line":17,"column":9}},"9":{"start":{"line":14,"column":16},"end":{"line":14,"column":57}},"10":{"start":{"line":16,"column":16},"end":{"line":16,"column":85}},"11":{"start":{"line":20,"column":0},"end":{"line":20,"column":40}},"12":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"13":{"start":{"line":30,"column":8},"end":{"line":30,"column":42}},"14":{"start":{"line":31,"column":8},"end":{"line":31,"column":25}},"15":{"start":{"line":38,"column":25},"end":{"line":38,"column":47}},"16":{"start":{"line":39,"column":23},"end":{"line":39,"column":52}},"17":{"start":{"line":40,"column":8},"end":{"line":40,"column":29}},"18":{"start":{"line":41,"column":8},"end":{"line":41,"column":47}},"19":{"start":{"line":42,"column":8},"end":{"line":42,"column":30}},"20":{"start":{"line":43,"column":8},"end":{"line":43,"column":50}},"21":{"start":{"line":44,"column":8},"end":{"line":44,"column":56}},"22":{"start":{"line":45,"column":8},"end":{"line":45,"column":57}},"23":{"start":{"line":46,"column":8},"end":{"line":57,"column":9}},"24":{"start":{"line":47,"column":37},"end":{"line":47,"column":114}},"25":{"start":{"line":48,"column":29},"end":{"line":48,"column":49}},"26":{"start":{"line":49,"column":35},"end":{"line":49,"column":55}},"27":{"start":{"line":50,"column":35},"end":{"line":50,"column":56}},"28":{"start":{"line":51,"column":12},"end":{"line":56,"column":15}},"29":{"start":{"line":58,"column":8},"end":{"line":58,"column":24}},"30":{"start":{"line":64,"column":8},"end":{"line":77,"column":10}},"31":{"start":{"line":70,"column":16},"end":{"line":75,"column":18}},"32":{"start":{"line":83,"column":23},"end":{"line":83,"column":49}},"33":{"start":{"line":84,"column":8},"end":{"line":84,"column":39}},"34":{"start":{"line":85,"column":27},"end":{"line":85,"column":53}},"35":{"start":{"line":86,"column":8},"end":{"line":86,"column":53}},"36":{"start":{"line":87,"column":8},"end":{"line":87,"column":48}},"37":{"start":{"line":88,"column":8},"end":{"line":88,"column":54}},"38":{"start":{"line":89,"column":8},"end":{"line":89,"column":55}},"39":{"start":{"line":90,"column":8},"end":{"line":95,"column":9}},"40":{"start":{"line":91,"column":12},"end":{"line":91,"column":70}},"41":{"start":{"line":92,"column":12},"end":{"line":92,"column":52}},"42":{"start":{"line":93,"column":12},"end":{"line":93,"column":58}},"43":{"start":{"line":94,"column":12},"end":{"line":94,"column":59}},"44":{"start":{"line":96,"column":8},"end":{"line":96,"column":45}},"45":{"start":{"line":97,"column":8},"end":{"line":97,"column":49}},"46":{"start":{"line":98,"column":8},"end":{"line":98,"column":33}},"47":{"start":{"line":101,"column":0},"end":{"line":101,"column":44}},"48":{"start":{"line":102,"column":0},"end":{"line":102,"column":67}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":28},"end":{"line":18,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":32,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":28},"end":{"line":59,"column":5}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":13},"end":{"line":78,"column":5}},"line":63},"4":{"name":"(anonymous_4)","decl":{"start":{"line":69,"column":36},"end":{"line":69,"column":37}},"loc":{"start":{"line":69,"column":47},"end":{"line":76,"column":13}},"line":69},"5":{"name":"(anonymous_5)","decl":{"start":{"line":82,"column":4},"end":{"line":82,"column":5}},"loc":{"start":{"line":82,"column":16},"end":{"line":99,"column":5}},"line":82}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":17,"column":9}},"type":"switch","locations":[{"start":{"line":13,"column":12},"end":{"line":14,"column":57}},{"start":{"line":15,"column":12},"end":{"line":16,"column":85}}],"line":12}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":2,"7":2,"8":2,"9":2,"10":0,"11":1,"12":7,"13":7,"14":7,"15":3,"16":3,"17":3,"18":3,"19":3,"20":3,"21":3,"22":3,"23":3,"24":7,"25":7,"26":7,"27":7,"28":7,"29":3,"30":2,"31":6,"32":2,"33":2,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":4,"41":4,"42":4,"43":4,"44":2,"45":2,"46":2,"47":1,"48":1},"f":{"0":2,"1":7,"2":3,"3":2,"4":6,"5":2},"b":{"0":[2,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutFunction.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutFunction.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  HyperbolaPayoutCurvePieceJSON,\n  PayoutCurvePiece,\n  PolynomialPayoutCurvePieceJSON,\n} from './PayoutCurvePiece';\n\nexport abstract class PayoutFunction {\n  public static deserialize(buf: Buffer): PayoutFunctionV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.PayoutFunctionV0:\n        return PayoutFunctionV0.deserialize(buf);\n      default:\n        throw new Error(`Payout function TLV type must be PayoutFunctionV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON(): PayoutFunctionV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * PayoutFunction V0\n */\nexport class PayoutFunctionV0 extends PayoutFunction implements IDlcMessage {\n  public static type = MessageType.PayoutFunctionV0;\n\n  /**\n   * Deserializes an payout_function_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): PayoutFunctionV0 {\n    const instance = new PayoutFunctionV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize(); // need to fix this\n    reader.readUInt16BE(); // num_pieces\n    instance.endpoint0 = reader.readBigSize();\n    instance.endpointPayout0 = reader.readBigSize();\n    instance.extraPrecision0 = reader.readUInt16BE();\n\n    while (!reader.eof) {\n      const payoutCurvePiece = PayoutCurvePiece.deserialize(getTlv(reader));\n      const endpoint = reader.readBigSize();\n      const endpointPayout = reader.readBigSize();\n      const extraPrecision = reader.readUInt16BE();\n\n      instance.pieces.push({\n        payoutCurvePiece,\n        endpoint,\n        endpointPayout,\n        extraPrecision,\n      });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for payout_function_v0 message. payout_function_v0 = 42790\n   */\n  public type = PayoutFunctionV0.type;\n\n  public length: bigint;\n\n  public endpoint0: bigint;\n  public endpointPayout0: bigint;\n  public extraPrecision0: number;\n\n  public pieces: IPayoutCurvePieces[] = [];\n\n  /**\n   * Converts payout_function_v0 to JSON\n   */\n  public toJSON(): PayoutFunctionV0JSON {\n    return {\n      type: this.type,\n      endpoint0: Number(this.endpoint0),\n      endpointPayout0: Number(this.endpointPayout0),\n      extraPrecision0: this.extraPrecision0,\n      pieces: this.pieces.map((piece) => {\n        return {\n          payoutCurvePiece: piece.payoutCurvePiece.toJSON(),\n          endpoint: Number(piece.endpoint),\n          endpointPayout: Number(piece.endpointPayout),\n          extraPrecision: piece.extraPrecision,\n        };\n      }),\n    };\n  }\n\n  /**\n   * Serializes the payout_function_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt16BE(this.pieces.length);\n    dataWriter.writeBigSize(this.endpoint0);\n    dataWriter.writeBigSize(this.endpointPayout0);\n    dataWriter.writeUInt16BE(this.extraPrecision0);\n\n    for (const piece of this.pieces) {\n      dataWriter.writeBytes(piece.payoutCurvePiece.serialize());\n      dataWriter.writeBigSize(piece.endpoint);\n      dataWriter.writeBigSize(piece.endpointPayout);\n      dataWriter.writeUInt16BE(piece.extraPrecision);\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\ninterface IPayoutCurvePieces {\n  payoutCurvePiece: PayoutCurvePiece;\n  endpoint: bigint;\n  endpointPayout: bigint;\n  extraPrecision: number;\n}\n\ninterface IPayoutCurvePiecesJSON {\n  payoutCurvePiece:\n    | PolynomialPayoutCurvePieceJSON\n    | HyperbolaPayoutCurvePieceJSON;\n  endpoint: number;\n  endpointPayout: number;\n  extraPrecision: number;\n}\n\nexport interface PayoutFunctionV0JSON {\n  type: number;\n  endpoint0: number;\n  endpointPayout0: number;\n  extraPrecision0: number;\n  pieces: IPayoutCurvePiecesJSON[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6d28cdf5dfd594cdc507820ce555b8d3749d6776","contentHash":"e6346367c1613f95b92443f189914db26093d404c9c168a72d96b358c307486d"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutCurvePiece.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutCurvePiece.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":107}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":49}},"6":{"start":{"line":10,"column":8},"end":{"line":19,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":67}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":66}},"9":{"start":{"line":16,"column":16},"end":{"line":16,"column":66}},"10":{"start":{"line":18,"column":16},"end":{"line":18,"column":124}},"11":{"start":{"line":22,"column":0},"end":{"line":22,"column":44}},"12":{"start":{"line":28,"column":8},"end":{"line":28,"column":28}},"13":{"start":{"line":32,"column":8},"end":{"line":32,"column":52}},"14":{"start":{"line":33,"column":8},"end":{"line":33,"column":25}},"15":{"start":{"line":40,"column":25},"end":{"line":40,"column":57}},"16":{"start":{"line":41,"column":23},"end":{"line":41,"column":52}},"17":{"start":{"line":42,"column":8},"end":{"line":42,"column":29}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":47}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":30}},"20":{"start":{"line":45,"column":8},"end":{"line":54,"column":9}},"21":{"start":{"line":46,"column":33},"end":{"line":46,"column":53}},"22":{"start":{"line":47,"column":34},"end":{"line":47,"column":54}},"23":{"start":{"line":48,"column":35},"end":{"line":48,"column":56}},"24":{"start":{"line":49,"column":12},"end":{"line":53,"column":15}},"25":{"start":{"line":55,"column":8},"end":{"line":55,"column":24}},"26":{"start":{"line":61,"column":8},"end":{"line":70,"column":10}},"27":{"start":{"line":64,"column":16},"end":{"line":68,"column":18}},"28":{"start":{"line":76,"column":23},"end":{"line":76,"column":49}},"29":{"start":{"line":77,"column":8},"end":{"line":77,"column":39}},"30":{"start":{"line":78,"column":27},"end":{"line":78,"column":53}},"31":{"start":{"line":79,"column":8},"end":{"line":79,"column":53}},"32":{"start":{"line":80,"column":8},"end":{"line":84,"column":9}},"33":{"start":{"line":81,"column":12},"end":{"line":81,"column":56}},"34":{"start":{"line":82,"column":12},"end":{"line":82,"column":57}},"35":{"start":{"line":83,"column":12},"end":{"line":83,"column":59}},"36":{"start":{"line":85,"column":8},"end":{"line":85,"column":45}},"37":{"start":{"line":86,"column":8},"end":{"line":86,"column":49}},"38":{"start":{"line":87,"column":8},"end":{"line":87,"column":33}},"39":{"start":{"line":90,"column":0},"end":{"line":90,"column":64}},"40":{"start":{"line":91,"column":0},"end":{"line":91,"column":87}},"41":{"start":{"line":97,"column":8},"end":{"line":97,"column":28}},"42":{"start":{"line":101,"column":8},"end":{"line":101,"column":51}},"43":{"start":{"line":108,"column":25},"end":{"line":108,"column":56}},"44":{"start":{"line":109,"column":23},"end":{"line":109,"column":52}},"45":{"start":{"line":110,"column":8},"end":{"line":110,"column":29}},"46":{"start":{"line":111,"column":8},"end":{"line":111,"column":47}},"47":{"start":{"line":112,"column":8},"end":{"line":112,"column":61}},"48":{"start":{"line":113,"column":8},"end":{"line":113,"column":65}},"49":{"start":{"line":114,"column":8},"end":{"line":114,"column":57}},"50":{"start":{"line":115,"column":8},"end":{"line":115,"column":72}},"51":{"start":{"line":116,"column":8},"end":{"line":116,"column":64}},"52":{"start":{"line":117,"column":8},"end":{"line":117,"column":56}},"53":{"start":{"line":118,"column":8},"end":{"line":118,"column":71}},"54":{"start":{"line":119,"column":8},"end":{"line":119,"column":50}},"55":{"start":{"line":120,"column":8},"end":{"line":120,"column":42}},"56":{"start":{"line":121,"column":8},"end":{"line":121,"column":57}},"57":{"start":{"line":122,"column":8},"end":{"line":122,"column":50}},"58":{"start":{"line":123,"column":8},"end":{"line":123,"column":42}},"59":{"start":{"line":124,"column":8},"end":{"line":124,"column":57}},"60":{"start":{"line":125,"column":8},"end":{"line":125,"column":50}},"61":{"start":{"line":126,"column":8},"end":{"line":126,"column":42}},"62":{"start":{"line":127,"column":8},"end":{"line":127,"column":57}},"63":{"start":{"line":128,"column":8},"end":{"line":128,"column":50}},"64":{"start":{"line":129,"column":8},"end":{"line":129,"column":42}},"65":{"start":{"line":130,"column":8},"end":{"line":130,"column":57}},"66":{"start":{"line":131,"column":8},"end":{"line":131,"column":24}},"67":{"start":{"line":137,"column":8},"end":{"line":158,"column":10}},"68":{"start":{"line":164,"column":23},"end":{"line":164,"column":49}},"69":{"start":{"line":165,"column":8},"end":{"line":165,"column":39}},"70":{"start":{"line":166,"column":27},"end":{"line":166,"column":53}},"71":{"start":{"line":167,"column":8},"end":{"line":167,"column":61}},"72":{"start":{"line":168,"column":8},"end":{"line":168,"column":65}},"73":{"start":{"line":169,"column":8},"end":{"line":169,"column":55}},"74":{"start":{"line":170,"column":8},"end":{"line":170,"column":70}},"75":{"start":{"line":171,"column":8},"end":{"line":171,"column":64}},"76":{"start":{"line":172,"column":8},"end":{"line":172,"column":54}},"77":{"start":{"line":173,"column":8},"end":{"line":173,"column":69}},"78":{"start":{"line":174,"column":8},"end":{"line":174,"column":50}},"79":{"start":{"line":175,"column":8},"end":{"line":175,"column":40}},"80":{"start":{"line":176,"column":8},"end":{"line":176,"column":55}},"81":{"start":{"line":177,"column":8},"end":{"line":177,"column":50}},"82":{"start":{"line":178,"column":8},"end":{"line":178,"column":40}},"83":{"start":{"line":179,"column":8},"end":{"line":179,"column":55}},"84":{"start":{"line":180,"column":8},"end":{"line":180,"column":50}},"85":{"start":{"line":181,"column":8},"end":{"line":181,"column":40}},"86":{"start":{"line":182,"column":8},"end":{"line":182,"column":55}},"87":{"start":{"line":183,"column":8},"end":{"line":183,"column":50}},"88":{"start":{"line":184,"column":8},"end":{"line":184,"column":40}},"89":{"start":{"line":185,"column":8},"end":{"line":185,"column":55}},"90":{"start":{"line":186,"column":8},"end":{"line":186,"column":45}},"91":{"start":{"line":187,"column":8},"end":{"line":187,"column":49}},"92":{"start":{"line":188,"column":8},"end":{"line":188,"column":33}},"93":{"start":{"line":191,"column":0},"end":{"line":191,"column":62}},"94":{"start":{"line":192,"column":0},"end":{"line":192,"column":85}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":20,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":18},"end":{"line":34,"column":5}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":28},"end":{"line":56,"column":5}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":13},"end":{"line":71,"column":5}},"line":60},"4":{"name":"(anonymous_4)","decl":{"start":{"line":63,"column":36},"end":{"line":63,"column":37}},"loc":{"start":{"line":63,"column":47},"end":{"line":69,"column":13}},"line":63},"5":{"name":"(anonymous_5)","decl":{"start":{"line":75,"column":4},"end":{"line":75,"column":5}},"loc":{"start":{"line":75,"column":16},"end":{"line":88,"column":5}},"line":75},"6":{"name":"(anonymous_6)","decl":{"start":{"line":96,"column":4},"end":{"line":96,"column":5}},"loc":{"start":{"line":96,"column":18},"end":{"line":102,"column":5}},"line":96},"7":{"name":"(anonymous_7)","decl":{"start":{"line":107,"column":4},"end":{"line":107,"column":5}},"loc":{"start":{"line":107,"column":28},"end":{"line":132,"column":5}},"line":107},"8":{"name":"(anonymous_8)","decl":{"start":{"line":136,"column":4},"end":{"line":136,"column":5}},"loc":{"start":{"line":136,"column":13},"end":{"line":159,"column":5}},"line":136},"9":{"name":"(anonymous_9)","decl":{"start":{"line":163,"column":4},"end":{"line":163,"column":5}},"loc":{"start":{"line":163,"column":16},"end":{"line":189,"column":5}},"line":163}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":19,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":67}},{"start":{"line":13,"column":12},"end":{"line":14,"column":66}},{"start":{"line":15,"column":12},"end":{"line":16,"column":66}},{"start":{"line":17,"column":12},"end":{"line":18,"column":124}}],"line":10},"1":{"loc":{"start":{"line":167,"column":30},"end":{"line":167,"column":59}},"type":"cond-expr","locations":[{"start":{"line":167,"column":54},"end":{"line":167,"column":55}},{"start":{"line":167,"column":58},"end":{"line":167,"column":59}}],"line":167},"2":{"loc":{"start":{"line":168,"column":30},"end":{"line":168,"column":63}},"type":"cond-expr","locations":[{"start":{"line":168,"column":58},"end":{"line":168,"column":59}},{"start":{"line":168,"column":62},"end":{"line":168,"column":63}}],"line":168},"3":{"loc":{"start":{"line":171,"column":30},"end":{"line":171,"column":62}},"type":"cond-expr","locations":[{"start":{"line":171,"column":57},"end":{"line":171,"column":58}},{"start":{"line":171,"column":61},"end":{"line":171,"column":62}}],"line":171},"4":{"loc":{"start":{"line":174,"column":30},"end":{"line":174,"column":48}},"type":"cond-expr","locations":[{"start":{"line":174,"column":43},"end":{"line":174,"column":44}},{"start":{"line":174,"column":47},"end":{"line":174,"column":48}}],"line":174},"5":{"loc":{"start":{"line":177,"column":30},"end":{"line":177,"column":48}},"type":"cond-expr","locations":[{"start":{"line":177,"column":43},"end":{"line":177,"column":44}},{"start":{"line":177,"column":47},"end":{"line":177,"column":48}}],"line":177},"6":{"loc":{"start":{"line":180,"column":30},"end":{"line":180,"column":48}},"type":"cond-expr","locations":[{"start":{"line":180,"column":43},"end":{"line":180,"column":44}},{"start":{"line":180,"column":47},"end":{"line":180,"column":48}}],"line":180},"7":{"loc":{"start":{"line":183,"column":30},"end":{"line":183,"column":48}},"type":"cond-expr","locations":[{"start":{"line":183,"column":43},"end":{"line":183,"column":44}},{"start":{"line":183,"column":47},"end":{"line":183,"column":48}}],"line":183}},"s":{"0":1,"1":1,"2":1,"3":1,"4":7,"5":7,"6":7,"7":6,"8":0,"9":1,"10":0,"11":1,"12":8,"13":8,"14":8,"15":7,"16":7,"17":7,"18":7,"19":7,"20":7,"21":14,"22":14,"23":14,"24":14,"25":7,"26":6,"27":12,"28":4,"29":4,"30":4,"31":4,"32":4,"33":8,"34":8,"35":8,"36":4,"37":4,"38":4,"39":1,"40":1,"41":7,"42":7,"43":3,"44":3,"45":3,"46":3,"47":3,"48":3,"49":3,"50":3,"51":3,"52":3,"53":3,"54":3,"55":3,"56":3,"57":3,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":3,"65":3,"66":3,"67":0,"68":3,"69":3,"70":3,"71":3,"72":3,"73":3,"74":3,"75":3,"76":3,"77":3,"78":3,"79":3,"80":3,"81":3,"82":3,"83":3,"84":3,"85":3,"86":3,"87":3,"88":3,"89":3,"90":3,"91":3,"92":3,"93":1,"94":1},"f":{"0":7,"1":8,"2":7,"3":6,"4":12,"5":4,"6":7,"7":3,"8":0,"9":3},"b":{"0":[6,0,1,0],"1":[3,0],"2":[3,0],"3":[1,2],"4":[2,1],"5":[2,1],"6":[2,1],"7":[2,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutCurvePiece.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/PayoutCurvePiece.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class PayoutCurvePiece {\n  public static deserialize(\n    buf: Buffer,\n  ): PolynomialPayoutCurvePiece | HyperbolaPayoutCurvePiece {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.PolynomialPayoutCurvePiece:\n        return PolynomialPayoutCurvePiece.deserialize(buf);\n      case MessageType.HyperbolaPayoutCurvePiece:\n        return HyperbolaPayoutCurvePiece.deserialize(buf);\n      case MessageType.OldHyperbolaPayoutCurvePiece:\n        return HyperbolaPayoutCurvePiece.deserialize(buf);\n      default:\n        throw new Error(\n          `Payout function TLV type must be PolynomialPayoutCurvePiece or HyperbolaPayoutCurvePiece`,\n        );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON():\n    | PolynomialPayoutCurvePieceJSON\n    | HyperbolaPayoutCurvePieceJSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * PolynomialPayoutCurvePiece\n */\nexport class PolynomialPayoutCurvePiece\n  extends PayoutCurvePiece\n  implements IDlcMessage {\n  public static type = MessageType.PolynomialPayoutCurvePiece;\n\n  /**\n   * Deserializes an polynomial_payout_curve_piece message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): PolynomialPayoutCurvePiece {\n    const instance = new PolynomialPayoutCurvePiece();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize(); // need to fix this\n    reader.readUInt16BE(); // num_pts\n\n    while (!reader.eof) {\n      const eventOutcome = reader.readBigSize();\n      const outcomePayout = reader.readBigSize();\n      const extraPrecision = reader.readUInt16BE();\n\n      instance.points.push({\n        eventOutcome,\n        outcomePayout,\n        extraPrecision,\n      });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for polynomial_payout_curve_piece message. polynomial_payout_curve_piece = ???\n   */\n  public type = PolynomialPayoutCurvePiece.type;\n\n  public length: bigint;\n\n  public points: IPoint[] = [];\n\n  /**\n   * Converts polynomial_payout_curve_piece to JSON\n   */\n  public toJSON(): PolynomialPayoutCurvePieceJSON {\n    return {\n      type: this.type,\n      points: this.points.map((point) => {\n        return {\n          eventOutcome: Number(point.eventOutcome),\n          outcomePayout: Number(point.outcomePayout),\n          extraPrecision: Number(point.extraPrecision),\n        };\n      }),\n    };\n  }\n\n  /**\n   * Serializes the polynomial_payout_curve_piece message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt16BE(this.points.length);\n\n    for (const point of this.points) {\n      dataWriter.writeBigSize(point.eventOutcome);\n      dataWriter.writeBigSize(point.outcomePayout);\n      dataWriter.writeUInt16BE(point.extraPrecision);\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * HyperbolaPayoutCurvePiece\n */\nexport class HyperbolaPayoutCurvePiece\n  extends PayoutCurvePiece\n  implements IDlcMessage {\n  public static type = MessageType.HyperbolaPayoutCurvePiece;\n\n  /**\n   * Deserializes an hyperbola_payout_curve_piece message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): HyperbolaPayoutCurvePiece {\n    const instance = new HyperbolaPayoutCurvePiece();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize(); // need to fix this\n    instance.usePositivePiece = reader.readUInt8() === 1;\n    instance.translateOutcomeSign = reader.readUInt8() === 1;\n    instance.translateOutcome = reader.readBigSize();\n    instance.translateOutcomeExtraPrecision = reader.readUInt16BE();\n    instance.translatePayoutSign = reader.readUInt8() === 1;\n    instance.translatePayout = reader.readBigSize();\n    instance.translatePayoutExtraPrecision = reader.readUInt16BE();\n    instance.aSign = reader.readUInt8() === 1;\n    instance.a = reader.readBigSize();\n    instance.aExtraPrecision = reader.readUInt16BE();\n    instance.bSign = reader.readUInt8() === 1;\n    instance.b = reader.readBigSize();\n    instance.bExtraPrecision = reader.readUInt16BE();\n    instance.cSign = reader.readUInt8() === 1;\n    instance.c = reader.readBigSize();\n    instance.cExtraPrecision = reader.readUInt16BE();\n    instance.dSign = reader.readUInt8() === 1;\n    instance.d = reader.readBigSize();\n    instance.dExtraPrecision = reader.readUInt16BE();\n\n    return instance;\n  }\n\n  /**\n   * The type for hyperbola_payout_curve_piece message. hyperbola_payout_curve_piece = ???\n   */\n  public type = HyperbolaPayoutCurvePiece.type;\n\n  public length: bigint;\n\n  public usePositivePiece: boolean;\n\n  public translateOutcomeSign: boolean;\n\n  public translateOutcome: bigint;\n\n  public translateOutcomeExtraPrecision: number;\n\n  public translatePayoutSign: boolean;\n\n  public translatePayout: bigint;\n\n  public translatePayoutExtraPrecision: number;\n\n  public aSign: boolean;\n\n  public a: bigint;\n\n  public aExtraPrecision: number;\n\n  public bSign: boolean;\n\n  public b: bigint;\n\n  public bExtraPrecision: number;\n\n  public cSign: boolean;\n\n  public c: bigint;\n\n  public cExtraPrecision: number;\n\n  public dSign: boolean;\n\n  public d: bigint;\n\n  public dExtraPrecision: number;\n\n  /**\n   * Converts hyperbola_payout_curve_piece to JSON\n   */\n  public toJSON(): HyperbolaPayoutCurvePieceJSON {\n    return {\n      type: this.type,\n      usePositivePiece: this.usePositivePiece,\n      translateOutcomeSign: this.translateOutcomeSign,\n      translateOutcome: Number(this.translateOutcome),\n      translateOutcomeExtraPrecision: this.translateOutcomeExtraPrecision,\n      translatePayoutSign: this.translatePayoutSign,\n      translatePayout: Number(this.translatePayout),\n      translatePayoutExtraPrecision: this.translatePayoutExtraPrecision,\n      aSign: this.aSign,\n      a: Number(this.a),\n      aExtraPrecision: this.aExtraPrecision,\n      bSign: this.bSign,\n      b: Number(this.b),\n      bExtraPrecision: this.bExtraPrecision,\n      cSign: this.cSign,\n      c: Number(this.c),\n      cExtraPrecision: this.cExtraPrecision,\n      dSign: this.dSign,\n      d: Number(this.d),\n      dExtraPrecision: this.dExtraPrecision,\n    };\n  }\n\n  /**\n   * Serializes the hyperbola_payout_curve_piece message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n\n    dataWriter.writeUInt8(this.usePositivePiece ? 1 : 0);\n    dataWriter.writeUInt8(this.translateOutcomeSign ? 1 : 0);\n    dataWriter.writeBigSize(this.translateOutcome);\n    dataWriter.writeUInt16BE(this.translateOutcomeExtraPrecision);\n    dataWriter.writeUInt8(this.translatePayoutSign ? 1 : 0);\n    dataWriter.writeBigSize(this.translatePayout);\n    dataWriter.writeUInt16BE(this.translatePayoutExtraPrecision);\n    dataWriter.writeUInt8(this.aSign ? 1 : 0);\n    dataWriter.writeBigSize(this.a);\n    dataWriter.writeUInt16BE(this.aExtraPrecision);\n    dataWriter.writeUInt8(this.bSign ? 1 : 0);\n    dataWriter.writeBigSize(this.b);\n    dataWriter.writeUInt16BE(this.bExtraPrecision);\n    dataWriter.writeUInt8(this.cSign ? 1 : 0);\n    dataWriter.writeBigSize(this.c);\n    dataWriter.writeUInt16BE(this.cExtraPrecision);\n    dataWriter.writeUInt8(this.dSign ? 1 : 0);\n    dataWriter.writeBigSize(this.d);\n    dataWriter.writeUInt16BE(this.dExtraPrecision);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\ninterface IPoint {\n  eventOutcome: bigint;\n  outcomePayout: bigint;\n  extraPrecision: number;\n}\n\ninterface IPointJSON {\n  eventOutcome: number;\n  outcomePayout: number;\n  extraPrecision: number;\n}\n\nexport interface PolynomialPayoutCurvePieceJSON {\n  type: number;\n  points: IPointJSON[];\n}\n\nexport interface HyperbolaPayoutCurvePieceJSON {\n  type: number;\n  usePositivePiece: boolean;\n  translateOutcomeSign: boolean;\n  translateOutcome: number;\n  translateOutcomeExtraPrecision: number;\n  translatePayoutSign: boolean;\n  translatePayout: number;\n  translatePayoutExtraPrecision: number;\n  aSign: boolean;\n  a: number;\n  aExtraPrecision: number;\n  bSign: boolean;\n  b: number;\n  bExtraPrecision: number;\n  cSign: boolean;\n  c: number;\n  cExtraPrecision: number;\n  dSign: boolean;\n  d: number;\n  dExtraPrecision: number;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"eb97471e04110f1884f0dbea0f37f92711d7c37a","contentHash":"0770d0031e8f5d03c262dddc60ed313390261fbd63112900e45916cd465966ba"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervalsV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervalsV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":14,"column":8},"end":{"line":14,"column":45}},"5":{"start":{"line":15,"column":8},"end":{"line":15,"column":28}},"6":{"start":{"line":22,"column":25},"end":{"line":22,"column":50}},"7":{"start":{"line":23,"column":23},"end":{"line":23,"column":52}},"8":{"start":{"line":24,"column":8},"end":{"line":24,"column":29}},"9":{"start":{"line":25,"column":8},"end":{"line":25,"column":47}},"10":{"start":{"line":26,"column":8},"end":{"line":26,"column":30}},"11":{"start":{"line":27,"column":8},"end":{"line":31,"column":9}},"12":{"start":{"line":28,"column":34},"end":{"line":28,"column":54}},"13":{"start":{"line":29,"column":32},"end":{"line":29,"column":52}},"14":{"start":{"line":30,"column":12},"end":{"line":30,"column":68}},"15":{"start":{"line":32,"column":8},"end":{"line":32,"column":24}},"16":{"start":{"line":41,"column":8},"end":{"line":45,"column":9}},"17":{"start":{"line":42,"column":12},"end":{"line":44,"column":13}},"18":{"start":{"line":43,"column":16},"end":{"line":43,"column":70}},"19":{"start":{"line":47,"column":8},"end":{"line":51,"column":9}},"20":{"start":{"line":47,"column":21},"end":{"line":47,"column":22}},"21":{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},"22":{"start":{"line":49,"column":16},"end":{"line":49,"column":73}},"23":{"start":{"line":57,"column":8},"end":{"line":65,"column":10}},"24":{"start":{"line":60,"column":16},"end":{"line":63,"column":18}},"25":{"start":{"line":71,"column":23},"end":{"line":71,"column":49}},"26":{"start":{"line":72,"column":8},"end":{"line":72,"column":39}},"27":{"start":{"line":73,"column":27},"end":{"line":73,"column":53}},"28":{"start":{"line":74,"column":8},"end":{"line":74,"column":56}},"29":{"start":{"line":75,"column":8},"end":{"line":78,"column":9}},"30":{"start":{"line":76,"column":12},"end":{"line":76,"column":60}},"31":{"start":{"line":77,"column":12},"end":{"line":77,"column":58}},"32":{"start":{"line":79,"column":8},"end":{"line":79,"column":45}},"33":{"start":{"line":80,"column":8},"end":{"line":80,"column":49}},"34":{"start":{"line":81,"column":8},"end":{"line":81,"column":33}},"35":{"start":{"line":84,"column":0},"end":{"line":84,"column":50}},"36":{"start":{"line":85,"column":0},"end":{"line":85,"column":73}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":18},"end":{"line":16,"column":5}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":28},"end":{"line":33,"column":5}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":15},"end":{"line":52,"column":5}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":56,"column":4},"end":{"line":56,"column":5}},"loc":{"start":{"line":56,"column":13},"end":{"line":66,"column":5}},"line":56},"4":{"name":"(anonymous_4)","decl":{"start":{"line":59,"column":42},"end":{"line":59,"column":43}},"loc":{"start":{"line":59,"column":56},"end":{"line":64,"column":13}},"line":59},"5":{"name":"(anonymous_5)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":16},"end":{"line":82,"column":5}},"line":70}},"branchMap":{"0":{"loc":{"start":{"line":42,"column":12},"end":{"line":44,"column":13}},"type":"if","locations":[{"start":{"line":42,"column":12},"end":{"line":44,"column":13}},{"start":{"line":42,"column":12},"end":{"line":44,"column":13}}],"line":42},"1":{"loc":{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},"type":"if","locations":[{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},{"start":{"line":48,"column":12},"end":{"line":50,"column":13}}],"line":48}},"s":{"0":1,"1":1,"2":1,"3":1,"4":12,"5":12,"6":7,"7":7,"8":7,"9":7,"10":7,"11":7,"12":10,"13":10,"14":10,"15":7,"16":5,"17":7,"18":1,"19":4,"20":4,"21":2,"22":1,"23":2,"24":4,"25":6,"26":6,"27":6,"28":6,"29":6,"30":8,"31":8,"32":6,"33":6,"34":6,"35":1,"36":1},"f":{"0":12,"1":7,"2":5,"3":2,"4":4,"5":6},"b":{"0":[1,6],"1":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervalsV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervalsV0.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C;;GAEG;AACH,MAAa,mBAAmB;IAAhC;QAyBE;;WAEG;QACI,SAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QAIhC,cAAS,GAAgB,EAAE,CAAC;IA4DrC,CAAC;IAzFC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,yBAAyB;QAEhD,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAClB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAEzC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;SACzD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWD;;;;OAIG;IACI,QAAQ;QACb,oCAAoC;QACpC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,QAAQ,CAAC,aAAa,GAAG,CAAC,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACvD;SACF;QAED,2CAA2C;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC9C,IACE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EACtE;gBACA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC1D;SACF;IACH,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACzC,OAAO;oBACL,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAC7C,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;iBAC1C,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAChD,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SAC/C;QAED,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA3FH,kDA4FC;AA3Fe,wBAAI,GAAG,yBAAW,CAAC,mBAAmB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * RoundingIntervals V0\n */\nexport class RoundingIntervalsV0 implements IDlcMessage {\n  public static type = MessageType.RoundingIntervalsV0;\n\n  /**\n   * Deserializes an rounding_intervals_v0 tlv\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): RoundingIntervalsV0 {\n    const instance = new RoundingIntervalsV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    reader.readUInt16BE(); // num_rounding_intervals\n\n    while (!reader.eof) {\n      const beginInterval = reader.readBigSize();\n      const roundingMod = reader.readBigSize();\n\n      instance.intervals.push({ beginInterval, roundingMod });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for rounding_intervals_v0 tlv. rounding_intervals_v0 = 42788\n   */\n  public type = RoundingIntervalsV0.type;\n\n  public length: bigint;\n\n  public intervals: IInterval[] = [];\n\n  /**\n   * Validates correctness of all fields in the message\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/NumericOutcome.md#requirements\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // 1. Intervals must be non-negative\n    for (const interval of this.intervals) {\n      if (interval.beginInterval < 0) {\n        throw new Error('beginInterval must be non-negative');\n      }\n    }\n\n    // 2. Intervals must be strictly increasing\n    for (let i = 1; i < this.intervals.length; ++i) {\n      if (\n        this.intervals[i - 1].beginInterval >= this.intervals[i].beginInterval\n      ) {\n        throw new Error(`Intervals must be strictly increasing`);\n      }\n    }\n  }\n\n  /**\n   * Converts rounding_intervals_v0 to JSON\n   */\n  public toJSON(): IRoundingIntervalsV0JSON {\n    return {\n      type: this.type,\n      intervals: this.intervals.map((interval) => {\n        return {\n          beginInterval: Number(interval.beginInterval),\n          roundingMod: Number(interval.roundingMod),\n        };\n      }),\n    };\n  }\n\n  /**\n   * Serializes the rounding_intervals_v0 tlv into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt16BE(this.intervals.length);\n\n    for (const interval of this.intervals) {\n      dataWriter.writeBigSize(interval.beginInterval);\n      dataWriter.writeBigSize(interval.roundingMod);\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\ninterface IInterval {\n  beginInterval: bigint;\n  roundingMod: bigint;\n}\n\ninterface IIntervalJSON {\n  beginInterval: number;\n  roundingMod: number;\n}\n\nexport interface IRoundingIntervalsV0JSON {\n  type: number;\n  intervals: IIntervalJSON[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"674c187389ec6a8b3e55f851777cef3df8d00dbc","contentHash":"4977f84bcdc0dd71115f9051cb5c77203811af6de6bf8359b39e02e56348f459"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractInfo.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractInfo.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":80}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":29},"end":{"line":7,"column":60}},"6":{"start":{"line":8,"column":21},"end":{"line":8,"column":44}},"7":{"start":{"line":9,"column":23},"end":{"line":9,"column":48}},"8":{"start":{"line":12,"column":23},"end":{"line":12,"column":52}},"9":{"start":{"line":13,"column":21},"end":{"line":13,"column":49}},"10":{"start":{"line":14,"column":8},"end":{"line":21,"column":9}},"11":{"start":{"line":16,"column":16},"end":{"line":16,"column":55}},"12":{"start":{"line":18,"column":16},"end":{"line":18,"column":55}},"13":{"start":{"line":20,"column":16},"end":{"line":20,"column":99}},"14":{"start":{"line":24,"column":0},"end":{"line":24,"column":36}},"15":{"start":{"line":34,"column":8},"end":{"line":34,"column":40}},"16":{"start":{"line":41,"column":25},"end":{"line":41,"column":45}},"17":{"start":{"line":42,"column":23},"end":{"line":42,"column":52}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":29}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":47}},"20":{"start":{"line":45,"column":8},"end":{"line":45,"column":57}},"21":{"start":{"line":46,"column":8},"end":{"line":46,"column":120}},"22":{"start":{"line":47,"column":8},"end":{"line":47,"column":100}},"23":{"start":{"line":48,"column":8},"end":{"line":48,"column":24}},"24":{"start":{"line":56,"column":8},"end":{"line":56,"column":35}},"25":{"start":{"line":57,"column":8},"end":{"line":87,"column":9}},"26":{"start":{"line":60,"column":43},"end":{"line":61,"column":39}},"27":{"start":{"line":62,"column":16},"end":{"line":62,"column":46}},"28":{"start":{"line":64,"column":16},"end":{"line":68,"column":17}},"29":{"start":{"line":65,"column":20},"end":{"line":67,"column":21}},"30":{"start":{"line":66,"column":24},"end":{"line":66,"column":141}},"31":{"start":{"line":69,"column":16},"end":{"line":86,"column":17}},"32":{"start":{"line":72,"column":48},"end":{"line":73,"column":44}},"33":{"start":{"line":74,"column":24},"end":{"line":75,"column":137}},"34":{"start":{"line":75,"column":28},"end":{"line":75,"column":137}},"35":{"start":{"line":78,"column":44},"end":{"line":79,"column":40}},"36":{"start":{"line":80,"column":24},"end":{"line":82,"column":25}},"37":{"start":{"line":81,"column":28},"end":{"line":81,"column":129}},"38":{"start":{"line":83,"column":24},"end":{"line":83,"column":30}},"39":{"start":{"line":85,"column":24},"end":{"line":85,"column":120}},"40":{"start":{"line":93,"column":8},"end":{"line":98,"column":10}},"41":{"start":{"line":104,"column":23},"end":{"line":104,"column":49}},"42":{"start":{"line":105,"column":8},"end":{"line":105,"column":39}},"43":{"start":{"line":106,"column":27},"end":{"line":106,"column":53}},"44":{"start":{"line":107,"column":8},"end":{"line":107,"column":55}},"45":{"start":{"line":108,"column":8},"end":{"line":108,"column":67}},"46":{"start":{"line":109,"column":8},"end":{"line":109,"column":59}},"47":{"start":{"line":110,"column":8},"end":{"line":110,"column":45}},"48":{"start":{"line":111,"column":8},"end":{"line":111,"column":49}},"49":{"start":{"line":112,"column":8},"end":{"line":112,"column":33}},"50":{"start":{"line":115,"column":0},"end":{"line":115,"column":40}},"51":{"start":{"line":116,"column":0},"end":{"line":116,"column":63}},"52":{"start":{"line":126,"column":8},"end":{"line":126,"column":40}},"53":{"start":{"line":127,"column":8},"end":{"line":127,"column":38}},"54":{"start":{"line":134,"column":25},"end":{"line":134,"column":45}},"55":{"start":{"line":135,"column":23},"end":{"line":135,"column":52}},"56":{"start":{"line":136,"column":8},"end":{"line":136,"column":29}},"57":{"start":{"line":137,"column":8},"end":{"line":137,"column":47}},"58":{"start":{"line":138,"column":8},"end":{"line":138,"column":57}},"59":{"start":{"line":139,"column":8},"end":{"line":139,"column":29}},"60":{"start":{"line":140,"column":8},"end":{"line":144,"column":9}},"61":{"start":{"line":141,"column":39},"end":{"line":141,"column":120}},"62":{"start":{"line":142,"column":31},"end":{"line":142,"column":100}},"63":{"start":{"line":143,"column":12},"end":{"line":143,"column":82}},"64":{"start":{"line":145,"column":8},"end":{"line":145,"column":24}},"65":{"start":{"line":153,"column":8},"end":{"line":176,"column":11}},"66":{"start":{"line":154,"column":12},"end":{"line":154,"column":45}},"67":{"start":{"line":155,"column":12},"end":{"line":175,"column":13}},"68":{"start":{"line":158,"column":47},"end":{"line":158,"column":76}},"69":{"start":{"line":159,"column":20},"end":{"line":159,"column":50}},"70":{"start":{"line":160,"column":20},"end":{"line":174,"column":21}},"71":{"start":{"line":163,"column":52},"end":{"line":165,"column":48}},"72":{"start":{"line":166,"column":28},"end":{"line":167,"column":141}},"73":{"start":{"line":167,"column":32},"end":{"line":167,"column":141}},"74":{"start":{"line":169,"column":48},"end":{"line":170,"column":44}},"75":{"start":{"line":171,"column":28},"end":{"line":173,"column":29}},"76":{"start":{"line":172,"column":32},"end":{"line":172,"column":133}},"77":{"start":{"line":182,"column":8},"end":{"line":191,"column":10}},"78":{"start":{"line":186,"column":16},"end":{"line":189,"column":18}},"79":{"start":{"line":197,"column":23},"end":{"line":197,"column":49}},"80":{"start":{"line":198,"column":8},"end":{"line":198,"column":39}},"81":{"start":{"line":199,"column":27},"end":{"line":199,"column":53}},"82":{"start":{"line":200,"column":8},"end":{"line":200,"column":55}},"83":{"start":{"line":201,"column":8},"end":{"line":201,"column":65}},"84":{"start":{"line":202,"column":8},"end":{"line":206,"column":9}},"85":{"start":{"line":203,"column":55},"end":{"line":203,"column":73}},"86":{"start":{"line":204,"column":12},"end":{"line":204,"column":66}},"87":{"start":{"line":205,"column":12},"end":{"line":205,"column":58}},"88":{"start":{"line":207,"column":8},"end":{"line":207,"column":45}},"89":{"start":{"line":208,"column":8},"end":{"line":208,"column":49}},"90":{"start":{"line":209,"column":8},"end":{"line":209,"column":33}},"91":{"start":{"line":212,"column":0},"end":{"line":212,"column":40}},"92":{"start":{"line":213,"column":0},"end":{"line":213,"column":63}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":28},"end":{"line":22,"column":5}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":18},"end":{"line":35,"column":5}},"line":30},"2":{"name":"(anonymous_2)","decl":{"start":{"line":40,"column":4},"end":{"line":40,"column":5}},"loc":{"start":{"line":40,"column":28},"end":{"line":49,"column":5}},"line":40},"3":{"name":"(anonymous_3)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":15},"end":{"line":88,"column":5}},"line":55},"4":{"name":"(anonymous_4)","decl":{"start":{"line":92,"column":4},"end":{"line":92,"column":5}},"loc":{"start":{"line":92,"column":13},"end":{"line":99,"column":5}},"line":92},"5":{"name":"(anonymous_5)","decl":{"start":{"line":103,"column":4},"end":{"line":103,"column":5}},"loc":{"start":{"line":103,"column":16},"end":{"line":113,"column":5}},"line":103},"6":{"name":"(anonymous_6)","decl":{"start":{"line":122,"column":4},"end":{"line":122,"column":5}},"loc":{"start":{"line":122,"column":18},"end":{"line":128,"column":5}},"line":122},"7":{"name":"(anonymous_7)","decl":{"start":{"line":133,"column":4},"end":{"line":133,"column":5}},"loc":{"start":{"line":133,"column":28},"end":{"line":146,"column":5}},"line":133},"8":{"name":"(anonymous_8)","decl":{"start":{"line":152,"column":4},"end":{"line":152,"column":5}},"loc":{"start":{"line":152,"column":15},"end":{"line":177,"column":5}},"line":152},"9":{"name":"(anonymous_9)","decl":{"start":{"line":153,"column":41},"end":{"line":153,"column":42}},"loc":{"start":{"line":153,"column":57},"end":{"line":176,"column":9}},"line":153},"10":{"name":"(anonymous_10)","decl":{"start":{"line":181,"column":4},"end":{"line":181,"column":5}},"loc":{"start":{"line":181,"column":13},"end":{"line":192,"column":5}},"line":181},"11":{"name":"(anonymous_11)","decl":{"start":{"line":185,"column":62},"end":{"line":185,"column":63}},"loc":{"start":{"line":185,"column":79},"end":{"line":190,"column":13}},"line":185},"12":{"name":"(anonymous_12)","decl":{"start":{"line":196,"column":4},"end":{"line":196,"column":5}},"loc":{"start":{"line":196,"column":16},"end":{"line":210,"column":5}},"line":196}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":21,"column":9}},"type":"switch","locations":[{"start":{"line":15,"column":12},"end":{"line":16,"column":55}},{"start":{"line":17,"column":12},"end":{"line":18,"column":55}},{"start":{"line":19,"column":12},"end":{"line":20,"column":99}}],"line":14},"1":{"loc":{"start":{"line":57,"column":8},"end":{"line":87,"column":9}},"type":"switch","locations":[{"start":{"line":58,"column":12},"end":{"line":86,"column":17}}],"line":57},"2":{"loc":{"start":{"line":65,"column":20},"end":{"line":67,"column":21}},"type":"if","locations":[{"start":{"line":65,"column":20},"end":{"line":67,"column":21}},{"start":{"line":65,"column":20},"end":{"line":67,"column":21}}],"line":65},"3":{"loc":{"start":{"line":69,"column":16},"end":{"line":86,"column":17}},"type":"switch","locations":[{"start":{"line":70,"column":20},"end":{"line":83,"column":30}},{"start":{"line":84,"column":20},"end":{"line":85,"column":120}}],"line":69},"4":{"loc":{"start":{"line":74,"column":24},"end":{"line":75,"column":137}},"type":"if","locations":[{"start":{"line":74,"column":24},"end":{"line":75,"column":137}},{"start":{"line":74,"column":24},"end":{"line":75,"column":137}}],"line":74},"5":{"loc":{"start":{"line":80,"column":24},"end":{"line":82,"column":25}},"type":"if","locations":[{"start":{"line":80,"column":24},"end":{"line":82,"column":25}},{"start":{"line":80,"column":24},"end":{"line":82,"column":25}}],"line":80},"6":{"loc":{"start":{"line":155,"column":12},"end":{"line":175,"column":13}},"type":"switch","locations":[{"start":{"line":156,"column":16},"end":{"line":174,"column":21}}],"line":155},"7":{"loc":{"start":{"line":160,"column":20},"end":{"line":174,"column":21}},"type":"switch","locations":[{"start":{"line":161,"column":24},"end":{"line":173,"column":29}}],"line":160},"8":{"loc":{"start":{"line":166,"column":28},"end":{"line":167,"column":141}},"type":"if","locations":[{"start":{"line":166,"column":28},"end":{"line":167,"column":141}},{"start":{"line":166,"column":28},"end":{"line":167,"column":141}}],"line":166},"9":{"loc":{"start":{"line":171,"column":28},"end":{"line":173,"column":29}},"type":"if","locations":[{"start":{"line":171,"column":28},"end":{"line":173,"column":29}},{"start":{"line":171,"column":28},"end":{"line":173,"column":29}}],"line":171}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":55,"9":55,"10":55,"11":55,"12":0,"13":0,"14":1,"15":60,"16":56,"17":56,"18":56,"19":56,"20":56,"21":56,"22":56,"23":56,"24":25,"25":24,"26":2,"27":2,"28":2,"29":2,"30":1,"31":1,"32":1,"33":1,"34":1,"35":0,"36":0,"37":0,"38":0,"39":0,"40":5,"41":27,"42":27,"43":27,"44":27,"45":27,"46":27,"47":27,"48":27,"49":27,"50":1,"51":1,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":1,"92":1},"f":{"0":55,"1":60,"2":56,"3":25,"4":5,"5":27,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"b":{"0":[55,0,0],"1":[2],"2":[1,1],"3":[1,0],"4":[1,0],"5":[0,0],"6":[0],"7":[0],"8":[0,0],"9":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractInfo.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ContractInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport {\n  ContractDescriptor,\n  ContractDescriptorV0JSON,\n  ContractDescriptorV1,\n  ContractDescriptorV1JSON,\n} from './ContractDescriptor';\nimport { DlcMessage, IDlcMessage } from './DlcMessage';\nimport { DigitDecompositionEventDescriptorV0 } from './EventDescriptor';\nimport { OracleEventV0 } from './OracleEventV0';\nimport { OracleInfoV0, OracleInfoV0JSON } from './OracleInfoV0';\n\nexport abstract class ContractInfo extends DlcMessage {\n  public static deserialize(buf: Buffer): ContractInfoV0 | ContractInfoV1 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.ContractInfoV0:\n        return ContractInfoV0.deserialize(buf);\n      case MessageType.ContractInfoV1:\n        return ContractInfoV1.deserialize(buf);\n      default:\n        throw new Error(\n          `Contract info TLV type must be ContractInfoV0 or ContractInfoV1`,\n        );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract totalCollateral: bigint;\n\n  public abstract validate(): void;\n\n  public abstract toJSON(): IContractInfoV0JSON | IContractInfoV1JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * ContractInfo V0 contains information about a contract's outcomes,\n * their corresponding payouts, and the oracles to be used.\n */\nexport class ContractInfoV0 implements IDlcMessage {\n  public static type = MessageType.ContractInfoV0;\n\n  /**\n   * Deserializes an contract_info_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): ContractInfoV0 {\n    const instance = new ContractInfoV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.totalCollateral = reader.readUInt64BE();\n    instance.contractDescriptor = ContractDescriptor.deserialize(\n      getTlv(reader),\n    );\n    instance.oracleInfo = OracleInfoV0.deserialize(getTlv(reader));\n\n    return instance;\n  }\n\n  /**\n   * The type for contract_info_v0 message. contract_info_v0 = 55342\n   */\n  public type = ContractInfoV0.type;\n\n  public length: bigint;\n\n  public totalCollateral: bigint;\n\n  public contractDescriptor: ContractDescriptor;\n\n  public oracleInfo: OracleInfoV0;\n\n  /**\n   * Validates correctness of all fields in the message\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md#the-contract_info-type\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    this.oracleInfo.validate();\n    switch (this.contractDescriptor.type) {\n      case MessageType.ContractDescriptorV1:\n        // eslint-disable-next-line no-case-declarations\n        const contractDescriptor = this\n          .contractDescriptor as ContractDescriptorV1;\n        contractDescriptor.validate();\n\n        // roundingmod should not be greater than totalCollateral\n        for (const interval of contractDescriptor.roundingIntervals.intervals) {\n          if (interval.roundingMod > this.totalCollateral) {\n            throw new Error(\n              `Rounding modulus ${interval.roundingMod} is greater than total collateral ${this.totalCollateral}`,\n            );\n          }\n        }\n\n        switch (this.oracleInfo.announcement.oracleEvent.eventDescriptor.type) {\n          case MessageType.DigitDecompositionEventDescriptorV0:\n            // eslint-disable-next-line no-case-declarations\n            const eventDescriptor = this.oracleInfo.announcement.oracleEvent\n              .eventDescriptor as DigitDecompositionEventDescriptorV0;\n            if (eventDescriptor.nbDigits !== contractDescriptor.numDigits)\n              throw new Error(\n                'DigitDecompositionEventDescriptorV0 and ContractDescriptorV1 must have the same numDigits',\n              );\n\n            // Sanity check. Shouldn't be hit since there are other validations which should catch this in OracleEventV0.\n            // eslint-disable-next-line no-case-declarations\n            const oracleEvent = this.oracleInfo.announcement\n              .oracleEvent as OracleEventV0;\n            if (\n              oracleEvent.oracleNonces.length !== contractDescriptor.numDigits\n            ) {\n              throw new Error(\n                'oracleEvent.oracleNonces.length and contractDescriptor.numDigits must be the same',\n              );\n            }\n            break;\n          default:\n            throw new Error(\n              'Only ContractDescriptorV1 can be used with DigitDecompositionEventDescriptor',\n            );\n        }\n    }\n  }\n\n  /**\n   * Converts contract_info_v0 to JSON\n   */\n  public toJSON(): IContractInfoV0JSON {\n    return {\n      type: this.type,\n      totalCollateral: Number(this.totalCollateral),\n      contractDescriptor: this.contractDescriptor.toJSON(),\n      oracleInfo: this.oracleInfo.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the contract_info_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n\n    dataWriter.writeUInt64BE(this.totalCollateral);\n    dataWriter.writeBytes(this.contractDescriptor.serialize());\n    dataWriter.writeBytes(this.oracleInfo.serialize());\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * ContractInfo V1 contains information about a contract's outcomes,\n * their corresponding payouts, and the oracles to be used.\n */\nexport class ContractInfoV1 implements IDlcMessage {\n  public static type = MessageType.ContractInfoV1;\n\n  /**\n   * Deserializes an contract_info_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): ContractInfoV1 {\n    const instance = new ContractInfoV1();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.totalCollateral = reader.readUInt64BE();\n\n    reader.readBigSize(); // read num_disjoint_events\n    while (!reader.eof) {\n      const contractDescriptor = ContractDescriptor.deserialize(getTlv(reader));\n      const oracleInfo = OracleInfoV0.deserialize(getTlv(reader));\n\n      instance.contractOraclePairs.push({ contractDescriptor, oracleInfo });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for contract_info_v1 message. contract_info_v0 = 55342\n   */\n  public type = ContractInfoV1.type;\n\n  public length: bigint;\n\n  public totalCollateral: bigint;\n\n  public contractOraclePairs: IContractOraclePair[] = [];\n\n  /**\n   * Validates correctness of all fields in the message\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md#the-contract_info-type\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    this.contractOraclePairs.forEach((oraclePair) => {\n      oraclePair.oracleInfo.validate();\n      switch (oraclePair.contractDescriptor.type) {\n        case MessageType.ContractDescriptorV1:\n          // eslint-disable-next-line no-case-declarations\n          const contractDescriptor = oraclePair.contractDescriptor as ContractDescriptorV1;\n          contractDescriptor.validate();\n\n          switch (\n            oraclePair.oracleInfo.announcement.oracleEvent.eventDescriptor.type\n          ) {\n            case MessageType.DigitDecompositionEventDescriptorV0:\n              // eslint-disable-next-line no-case-declarations\n              const eventDescriptor = oraclePair.oracleInfo.announcement\n                .oracleEvent\n                .eventDescriptor as DigitDecompositionEventDescriptorV0;\n              if (eventDescriptor.nbDigits !== contractDescriptor.numDigits)\n                throw new Error(\n                  'DigitDecompositionEventDescriptorV0 and ContractDescriptorV1 must have the same numDigits',\n                );\n              // eslint-disable-next-line no-case-declarations\n              const oracleEvent = oraclePair.oracleInfo.announcement\n                .oracleEvent as OracleEventV0;\n              if (\n                oracleEvent.oracleNonces.length !== contractDescriptor.numDigits\n              ) {\n                throw new Error(\n                  'oracleEvent.oracleNonces.length and contractDescriptor.numDigits must be the same',\n                );\n              }\n          }\n      }\n    });\n  }\n\n  /**\n   * Converts contract_info_v1 to JSON\n   */\n  public toJSON(): IContractInfoV1JSON {\n    return {\n      type: this.type,\n      totalCollateral: Number(this.totalCollateral),\n      contractOraclePairs: this.contractOraclePairs.map((oraclePairs) => {\n        return {\n          contractDescriptor: oraclePairs.contractDescriptor.toJSON(),\n          oracleInfo: oraclePairs.oracleInfo.toJSON(),\n        };\n      }),\n    };\n  }\n\n  /**\n   * Serializes the contract_info_v1 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt64BE(this.totalCollateral);\n    dataWriter.writeBigSize(this.contractOraclePairs.length);\n\n    for (const contractOraclePair of this.contractOraclePairs) {\n      const { contractDescriptor, oracleInfo } = contractOraclePair;\n      dataWriter.writeBytes(contractDescriptor.serialize());\n      dataWriter.writeBytes(oracleInfo.serialize());\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\ninterface IContractOraclePair {\n  contractDescriptor: ContractDescriptor;\n  oracleInfo: OracleInfoV0;\n}\n\ninterface IContractOraclePairJSON {\n  contractDescriptor: ContractDescriptorV0JSON | ContractDescriptorV1JSON;\n  oracleInfo: OracleInfoV0JSON;\n}\n\nexport interface IContractInfoV0JSON {\n  type: number;\n  totalCollateral: number;\n  contractDescriptor: ContractDescriptorV0JSON | ContractDescriptorV1JSON;\n  oracleInfo: OracleInfoV0JSON;\n}\n\nexport interface IContractInfoV1JSON {\n  type: number;\n  totalCollateral: number;\n  contractOraclePairs: IContractOraclePairJSON[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4d4d8240b00e410af06aedcc856f5adf25ef0aa8","contentHash":"35bbfffcc27d9a004caf4b558647111903098b428ed58154d014b606c1029ad7"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcMessage.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcMessage.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":29},"end":{"line":6,"column":60}},"5":{"start":{"line":7,"column":23},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":20},"end":{"line":8,"column":42}},"7":{"start":{"line":9,"column":19},"end":{"line":9,"column":40}},"8":{"start":{"line":10,"column":19},"end":{"line":10,"column":40}},"9":{"start":{"line":11,"column":18},"end":{"line":11,"column":38}},"10":{"start":{"line":12,"column":34},"end":{"line":12,"column":70}},"11":{"start":{"line":13,"column":31},"end":{"line":13,"column":64}},"12":{"start":{"line":14,"column":30},"end":{"line":14,"column":62}},"13":{"start":{"line":15,"column":22},"end":{"line":15,"column":46}},"14":{"start":{"line":16,"column":21},"end":{"line":16,"column":44}},"15":{"start":{"line":19,"column":23},"end":{"line":19,"column":52}},"16":{"start":{"line":20,"column":21},"end":{"line":20,"column":50}},"17":{"start":{"line":21,"column":8},"end":{"line":50,"column":9}},"18":{"start":{"line":23,"column":16},"end":{"line":23,"column":82}},"19":{"start":{"line":25,"column":16},"end":{"line":25,"column":82}},"20":{"start":{"line":27,"column":16},"end":{"line":27,"column":70}},"21":{"start":{"line":29,"column":16},"end":{"line":29,"column":70}},"22":{"start":{"line":31,"column":16},"end":{"line":31,"column":66}},"23":{"start":{"line":33,"column":16},"end":{"line":33,"column":68}},"24":{"start":{"line":35,"column":16},"end":{"line":35,"column":62}},"25":{"start":{"line":37,"column":16},"end":{"line":37,"column":64}},"26":{"start":{"line":39,"column":16},"end":{"line":39,"column":60}},"27":{"start":{"line":41,"column":16},"end":{"line":41,"column":62}},"28":{"start":{"line":43,"column":16},"end":{"line":43,"column":82}},"29":{"start":{"line":45,"column":16},"end":{"line":45,"column":84}},"30":{"start":{"line":47,"column":16},"end":{"line":47,"column":90}},"31":{"start":{"line":49,"column":16},"end":{"line":49,"column":60}},"32":{"start":{"line":53,"column":0},"end":{"line":53,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":28},"end":{"line":51,"column":5}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":8},"end":{"line":50,"column":9}},"type":"switch","locations":[{"start":{"line":22,"column":12},"end":{"line":23,"column":82}},{"start":{"line":24,"column":12},"end":{"line":25,"column":82}},{"start":{"line":26,"column":12},"end":{"line":27,"column":70}},{"start":{"line":28,"column":12},"end":{"line":29,"column":70}},{"start":{"line":30,"column":12},"end":{"line":31,"column":66}},{"start":{"line":32,"column":12},"end":{"line":33,"column":68}},{"start":{"line":34,"column":12},"end":{"line":35,"column":62}},{"start":{"line":36,"column":12},"end":{"line":37,"column":64}},{"start":{"line":38,"column":12},"end":{"line":39,"column":60}},{"start":{"line":40,"column":12},"end":{"line":41,"column":62}},{"start":{"line":42,"column":12},"end":{"line":43,"column":82}},{"start":{"line":44,"column":12},"end":{"line":45,"column":84}},{"start":{"line":46,"column":12},"end":{"line":47,"column":90}},{"start":{"line":48,"column":12},"end":{"line":49,"column":60}}],"line":21}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":1},"f":{"0":0},"b":{"0":[0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcMessage.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcMessage.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAE/C,gDAA6C;AAC7C,6DAG8B;AAC9B,iDAAgE;AAChE,2CAA0C;AAC1C,yCAAwC;AACxC,yCAAwC;AACxC,uCAAsC;AACtC,uEAAoE;AACpE,iEAA8D;AAC9D,+DAA4D;AAC5D,+CAA8C;AAC9C,6CAA4C;AAO5C,MAAsB,UAAU;IACvB,MAAM,CAAC,WAAW,CACvB,GAAW;QAeX,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,oBAAoB;gBACnC,OAAO,yCAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,yBAAW,CAAC,oBAAoB;gBACnC,OAAO,yCAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,yBAAW,CAAC,cAAc;gBAC7B,OAAO,6BAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACzC,KAAK,yBAAW,CAAC,cAAc;gBAC7B,OAAO,6BAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACzC,KAAK,yBAAW,CAAC,YAAY;gBAC3B,OAAO,yBAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACvC,KAAK,yBAAW,CAAC,aAAa;gBAC5B,OAAO,2BAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxC,KAAK,yBAAW,CAAC,UAAU;gBACzB,OAAO,qBAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,KAAK,yBAAW,CAAC,WAAW;gBAC1B,OAAO,uBAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,yBAAW,CAAC,SAAS;gBACxB,OAAO,mBAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,KAAK,yBAAW,CAAC,UAAU;gBACzB,OAAO,qBAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,KAAK,yBAAW,CAAC,mBAAmB;gBAClC,OAAO,yCAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,yBAAW,CAAC,oBAAoB;gBACnC,OAAO,2CAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,yBAAW,CAAC,gBAAgB;gBAC/B,OAAO,iDAAuB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC/C;IACH,CAAC;CAKF;AAxDD,gCAwDC","sourcesContent":["import { BufferReader } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport {\n  ContractDescriptorV0,\n  ContractDescriptorV1,\n} from './ContractDescriptor';\nimport { ContractInfoV0, ContractInfoV1 } from './ContractInfo';\nimport { DlcAcceptV0 } from './DlcAccept';\nimport { DlcCloseV0 } from './DlcClose';\nimport { DlcOfferV0 } from './DlcOffer';\nimport { DlcSignV0 } from './DlcSign';\nimport { NodeAnnouncementMessage } from './NodeAnnouncementMessage';\nimport { OracleAnnouncementV0 } from './OracleAnnouncementV0';\nimport { OracleAttestationV0 } from './OracleAttestationV0';\nimport { OrderAcceptV0 } from './OrderAccept';\nimport { OrderOfferV0 } from './OrderOffer';\n\nexport interface IDlcMessage {\n  type: MessageType;\n  serialize(): Buffer;\n}\n\nexport abstract class DlcMessage {\n  public static deserialize(\n    buf: Buffer,\n  ):\n    | ContractDescriptorV0\n    | ContractDescriptorV1\n    | ContractInfoV0\n    | ContractInfoV1\n    | OrderOfferV0\n    | OrderAcceptV0\n    | DlcOfferV0\n    | DlcAcceptV0\n    | DlcSignV0\n    | DlcCloseV0\n    | OracleAttestationV0\n    | OracleAnnouncementV0\n    | NodeAnnouncementMessage {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.ContractDescriptorV0:\n        return ContractDescriptorV0.deserialize(buf);\n      case MessageType.ContractDescriptorV1:\n        return ContractDescriptorV1.deserialize(buf);\n      case MessageType.ContractInfoV0:\n        return ContractInfoV0.deserialize(buf);\n      case MessageType.ContractInfoV1:\n        return ContractInfoV1.deserialize(buf);\n      case MessageType.OrderOfferV0:\n        return OrderOfferV0.deserialize(buf);\n      case MessageType.OrderAcceptV0:\n        return OrderAcceptV0.deserialize(buf);\n      case MessageType.DlcOfferV0:\n        return DlcOfferV0.deserialize(buf);\n      case MessageType.DlcAcceptV0:\n        return DlcAcceptV0.deserialize(buf);\n      case MessageType.DlcSignV0:\n        return DlcSignV0.deserialize(buf);\n      case MessageType.DlcCloseV0:\n        return DlcCloseV0.deserialize(buf);\n      case MessageType.OracleAttestationV0:\n        return OracleAttestationV0.deserialize(buf);\n      case MessageType.OracleAnnouncementV0:\n        return OracleAnnouncementV0.deserialize(buf);\n      case MessageType.NodeAnnouncement:\n        return NodeAnnouncementMessage.deserialize(buf);\n      default:\n        throw new Error(`Dlc Message type invalid`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract serialize(): Buffer;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"70814add9a5a7f941b04fbe64737a3295a2d23cf","contentHash":"223d0eb1eb64b992fb6d51541037370e60c0a48ab1804b9cdc84a5e2a48c4169"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcAccept.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcAccept.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":109}},"4":{"start":{"line":7,"column":18},"end":{"line":7,"column":46}},"5":{"start":{"line":8,"column":16},"end":{"line":8,"column":42}},"6":{"start":{"line":9,"column":17},"end":{"line":9,"column":44}},"7":{"start":{"line":10,"column":24},"end":{"line":10,"column":48}},"8":{"start":{"line":11,"column":20},"end":{"line":11,"column":57}},"9":{"start":{"line":12,"column":22},"end":{"line":12,"column":47}},"10":{"start":{"line":13,"column":25},"end":{"line":13,"column":63}},"11":{"start":{"line":14,"column":17},"end":{"line":14,"column":47}},"12":{"start":{"line":15,"column":28},"end":{"line":15,"column":58}},"13":{"start":{"line":16,"column":33},"end":{"line":16,"column":68}},"14":{"start":{"line":17,"column":23},"end":{"line":17,"column":48}},"15":{"start":{"line":18,"column":28},"end":{"line":18,"column":58}},"16":{"start":{"line":21,"column":23},"end":{"line":21,"column":52}},"17":{"start":{"line":22,"column":21},"end":{"line":22,"column":50}},"18":{"start":{"line":23,"column":8},"end":{"line":28,"column":9}},"19":{"start":{"line":25,"column":16},"end":{"line":25,"column":63}},"20":{"start":{"line":27,"column":16},"end":{"line":27,"column":79}},"21":{"start":{"line":31,"column":0},"end":{"line":31,"column":30}},"22":{"start":{"line":40,"column":8},"end":{"line":40,"column":28}},"23":{"start":{"line":44,"column":8},"end":{"line":44,"column":37}},"24":{"start":{"line":45,"column":8},"end":{"line":45,"column":32}},"25":{"start":{"line":52,"column":25},"end":{"line":52,"column":42}},"26":{"start":{"line":53,"column":23},"end":{"line":53,"column":52}},"27":{"start":{"line":54,"column":8},"end":{"line":54,"column":30}},"28":{"start":{"line":55,"column":8},"end":{"line":55,"column":55}},"29":{"start":{"line":56,"column":8},"end":{"line":56,"column":66}},"30":{"start":{"line":57,"column":8},"end":{"line":57,"column":54}},"31":{"start":{"line":58,"column":29},"end":{"line":58,"column":50}},"32":{"start":{"line":59,"column":8},"end":{"line":59,"column":60}},"33":{"start":{"line":60,"column":8},"end":{"line":60,"column":56}},"34":{"start":{"line":61,"column":33},"end":{"line":61,"column":54}},"35":{"start":{"line":62,"column":8},"end":{"line":64,"column":9}},"36":{"start":{"line":62,"column":21},"end":{"line":62,"column":22}},"37":{"start":{"line":63,"column":12},"end":{"line":63,"column":113}},"38":{"start":{"line":65,"column":29},"end":{"line":65,"column":50}},"39":{"start":{"line":66,"column":8},"end":{"line":66,"column":60}},"40":{"start":{"line":67,"column":8},"end":{"line":67,"column":56}},"41":{"start":{"line":68,"column":8},"end":{"line":74,"column":9}},"42":{"start":{"line":69,"column":12},"end":{"line":69,"column":127}},"43":{"start":{"line":72,"column":12},"end":{"line":72,"column":42}},"44":{"start":{"line":73,"column":12},"end":{"line":73,"column":91}},"45":{"start":{"line":75,"column":8},"end":{"line":75,"column":56}},"46":{"start":{"line":76,"column":8},"end":{"line":76,"column":117}},"47":{"start":{"line":77,"column":8},"end":{"line":91,"column":9}},"48":{"start":{"line":78,"column":24},"end":{"line":78,"column":52}},"49":{"start":{"line":79,"column":30},"end":{"line":79,"column":59}},"50":{"start":{"line":80,"column":29},"end":{"line":80,"column":76}},"51":{"start":{"line":81,"column":12},"end":{"line":90,"column":13}},"52":{"start":{"line":83,"column":20},"end":{"line":85,"column":21}},"53":{"start":{"line":84,"column":24},"end":{"line":84,"column":57}},"54":{"start":{"line":86,"column":20},"end":{"line":86,"column":109}},"55":{"start":{"line":87,"column":20},"end":{"line":87,"column":26}},"56":{"start":{"line":89,"column":20},"end":{"line":89,"column":26}},"57":{"start":{"line":92,"column":8},"end":{"line":92,"column":24}},"58":{"start":{"line":100,"column":27},"end":{"line":102,"column":21}},"59":{"start":{"line":103,"column":31},"end":{"line":103,"column":92}},"60":{"start":{"line":104,"column":30},"end":{"line":104,"column":95}},"61":{"start":{"line":105,"column":30},"end":{"line":105,"column":95}},"62":{"start":{"line":106,"column":8},"end":{"line":110,"column":10}},"63":{"start":{"line":120,"column":8},"end":{"line":125,"column":9}},"64":{"start":{"line":121,"column":12},"end":{"line":121,"column":69}},"65":{"start":{"line":124,"column":12},"end":{"line":124,"column":52}},"66":{"start":{"line":126,"column":8},"end":{"line":131,"column":9}},"67":{"start":{"line":127,"column":12},"end":{"line":127,"column":69}},"68":{"start":{"line":130,"column":12},"end":{"line":130,"column":52}},"69":{"start":{"line":134,"column":8},"end":{"line":141,"column":9}},"70":{"start":{"line":135,"column":12},"end":{"line":137,"column":13}},"71":{"start":{"line":136,"column":16},"end":{"line":136,"column":78}},"72":{"start":{"line":140,"column":12},"end":{"line":140,"column":74}},"73":{"start":{"line":143,"column":31},"end":{"line":143,"column":85}},"74":{"start":{"line":143,"column":65},"end":{"line":143,"column":84}},"75":{"start":{"line":144,"column":8},"end":{"line":146,"column":9}},"76":{"start":{"line":145,"column":12},"end":{"line":145,"column":61}},"77":{"start":{"line":148,"column":8},"end":{"line":148,"column":64}},"78":{"start":{"line":148,"column":46},"end":{"line":148,"column":62}},"79":{"start":{"line":150,"column":30},"end":{"line":153,"column":21}},"80":{"start":{"line":151,"column":26},"end":{"line":151,"column":38}},"81":{"start":{"line":152,"column":12},"end":{"line":152,"column":75}},"82":{"start":{"line":154,"column":8},"end":{"line":156,"column":9}},"83":{"start":{"line":155,"column":12},"end":{"line":155,"column":91}},"84":{"start":{"line":162,"column":21},"end":{"line":162,"column":23}},"85":{"start":{"line":163,"column":8},"end":{"line":167,"column":9}},"86":{"start":{"line":164,"column":12},"end":{"line":166,"column":15}},"87":{"start":{"line":165,"column":16},"end":{"line":165,"column":45}},"88":{"start":{"line":168,"column":8},"end":{"line":182,"column":10}},"89":{"start":{"line":175,"column":61},"end":{"line":175,"column":75}},"90":{"start":{"line":188,"column":23},"end":{"line":188,"column":49}},"91":{"start":{"line":189,"column":8},"end":{"line":189,"column":40}},"92":{"start":{"line":190,"column":8},"end":{"line":190,"column":47}},"93":{"start":{"line":191,"column":8},"end":{"line":191,"column":60}},"94":{"start":{"line":192,"column":8},"end":{"line":192,"column":46}},"95":{"start":{"line":193,"column":8},"end":{"line":193,"column":52}},"96":{"start":{"line":194,"column":8},"end":{"line":194,"column":42}},"97":{"start":{"line":195,"column":8},"end":{"line":195,"column":50}},"98":{"start":{"line":196,"column":8},"end":{"line":196,"column":56}},"99":{"start":{"line":197,"column":8},"end":{"line":199,"column":9}},"100":{"start":{"line":198,"column":12},"end":{"line":198,"column":56}},"101":{"start":{"line":200,"column":8},"end":{"line":200,"column":52}},"102":{"start":{"line":201,"column":8},"end":{"line":201,"column":42}},"103":{"start":{"line":202,"column":8},"end":{"line":202,"column":50}},"104":{"start":{"line":203,"column":8},"end":{"line":203,"column":58}},"105":{"start":{"line":204,"column":8},"end":{"line":204,"column":48}},"106":{"start":{"line":205,"column":8},"end":{"line":205,"column":62}},"107":{"start":{"line":206,"column":8},"end":{"line":207,"column":105}},"108":{"start":{"line":207,"column":12},"end":{"line":207,"column":105}},"109":{"start":{"line":207,"column":61},"end":{"line":207,"column":103}},"110":{"start":{"line":208,"column":8},"end":{"line":208,"column":33}},"111":{"start":{"line":211,"column":8},"end":{"line":211,"column":255}},"112":{"start":{"line":214,"column":0},"end":{"line":214,"column":34}},"113":{"start":{"line":215,"column":0},"end":{"line":215,"column":57}},"114":{"start":{"line":218,"column":8},"end":{"line":218,"column":45}},"115":{"start":{"line":219,"column":8},"end":{"line":219,"column":65}},"116":{"start":{"line":220,"column":8},"end":{"line":220,"column":43}},"117":{"start":{"line":221,"column":8},"end":{"line":221,"column":35}},"118":{"start":{"line":222,"column":8},"end":{"line":222,"column":45}},"119":{"start":{"line":223,"column":8},"end":{"line":223,"column":43}},"120":{"start":{"line":224,"column":8},"end":{"line":224,"column":35}},"121":{"start":{"line":225,"column":8},"end":{"line":225,"column":45}},"122":{"start":{"line":226,"column":8},"end":{"line":226,"column":51}},"123":{"start":{"line":227,"column":8},"end":{"line":227,"column":53}},"124":{"start":{"line":230,"column":0},"end":{"line":230,"column":52}},"125":{"start":{"line":233,"column":8},"end":{"line":233,"column":26}},"126":{"start":{"line":240,"column":8},"end":{"line":240,"column":34}},"127":{"start":{"line":247,"column":8},"end":{"line":247,"column":28}},"128":{"start":{"line":254,"column":23},"end":{"line":254,"column":49}},"129":{"start":{"line":256,"column":8},"end":{"line":256,"column":49}},"130":{"start":{"line":258,"column":8},"end":{"line":263,"column":11}},"131":{"start":{"line":259,"column":37},"end":{"line":259,"column":55}},"132":{"start":{"line":261,"column":12},"end":{"line":261,"column":57}},"133":{"start":{"line":262,"column":12},"end":{"line":262,"column":48}},"134":{"start":{"line":264,"column":8},"end":{"line":264,"column":33}},"135":{"start":{"line":272,"column":23},"end":{"line":272,"column":52}},"136":{"start":{"line":273,"column":26},"end":{"line":273,"column":50}},"137":{"start":{"line":274,"column":29},"end":{"line":274,"column":49}},"138":{"start":{"line":275,"column":8},"end":{"line":280,"column":9}},"139":{"start":{"line":275,"column":21},"end":{"line":275,"column":22}},"140":{"start":{"line":276,"column":33},"end":{"line":276,"column":53}},"141":{"start":{"line":277,"column":30},"end":{"line":277,"column":68}},"142":{"start":{"line":278,"column":27},"end":{"line":278,"column":70}},"143":{"start":{"line":279,"column":12},"end":{"line":279,"column":40}},"144":{"start":{"line":281,"column":8},"end":{"line":281,"column":25}},"145":{"start":{"line":284,"column":0},"end":{"line":284,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":46},"end":{"line":29,"column":5}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":18},"end":{"line":46,"column":5}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":46},"end":{"line":93,"column":5}},"line":51},"4":{"name":"(anonymous_4)","decl":{"start":{"line":99,"column":4},"end":{"line":99,"column":5}},"loc":{"start":{"line":99,"column":26},"end":{"line":111,"column":5}},"line":99},"5":{"name":"(anonymous_5)","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":5}},"loc":{"start":{"line":117,"column":15},"end":{"line":157,"column":5}},"line":117},"6":{"name":"(anonymous_6)","decl":{"start":{"line":143,"column":54},"end":{"line":143,"column":55}},"loc":{"start":{"line":143,"column":65},"end":{"line":143,"column":84}},"line":143},"7":{"name":"(anonymous_7)","decl":{"start":{"line":148,"column":35},"end":{"line":148,"column":36}},"loc":{"start":{"line":148,"column":46},"end":{"line":148,"column":62}},"line":148},"8":{"name":"(anonymous_8)","decl":{"start":{"line":150,"column":56},"end":{"line":150,"column":57}},"loc":{"start":{"line":150,"column":79},"end":{"line":153,"column":9}},"line":150},"9":{"name":"(anonymous_9)","decl":{"start":{"line":161,"column":4},"end":{"line":161,"column":5}},"loc":{"start":{"line":161,"column":13},"end":{"line":183,"column":5}},"line":161},"10":{"name":"(anonymous_10)","decl":{"start":{"line":164,"column":44},"end":{"line":164,"column":45}},"loc":{"start":{"line":164,"column":55},"end":{"line":166,"column":13}},"line":164},"11":{"name":"(anonymous_11)","decl":{"start":{"line":175,"column":50},"end":{"line":175,"column":51}},"loc":{"start":{"line":175,"column":61},"end":{"line":175,"column":75}},"line":175},"12":{"name":"(anonymous_12)","decl":{"start":{"line":187,"column":4},"end":{"line":187,"column":5}},"loc":{"start":{"line":187,"column":16},"end":{"line":209,"column":5}},"line":187},"13":{"name":"(anonymous_13)","decl":{"start":{"line":207,"column":44},"end":{"line":207,"column":45}},"loc":{"start":{"line":207,"column":61},"end":{"line":207,"column":103}},"line":207},"14":{"name":"(anonymous_14)","decl":{"start":{"line":210,"column":4},"end":{"line":210,"column":5}},"loc":{"start":{"line":210,"column":18},"end":{"line":212,"column":5}},"line":210},"15":{"name":"(anonymous_15)","decl":{"start":{"line":217,"column":4},"end":{"line":217,"column":5}},"loc":{"start":{"line":217,"column":181},"end":{"line":228,"column":5}},"line":217},"16":{"name":"(anonymous_16)","decl":{"start":{"line":232,"column":4},"end":{"line":232,"column":5}},"loc":{"start":{"line":232,"column":18},"end":{"line":234,"column":5}},"line":232},"17":{"name":"(anonymous_17)","decl":{"start":{"line":239,"column":4},"end":{"line":239,"column":5}},"loc":{"start":{"line":239,"column":22},"end":{"line":241,"column":5}},"line":239},"18":{"name":"(anonymous_18)","decl":{"start":{"line":246,"column":4},"end":{"line":246,"column":5}},"loc":{"start":{"line":246,"column":17},"end":{"line":248,"column":5}},"line":246},"19":{"name":"(anonymous_19)","decl":{"start":{"line":253,"column":4},"end":{"line":253,"column":5}},"loc":{"start":{"line":253,"column":16},"end":{"line":265,"column":5}},"line":253},"20":{"name":"(anonymous_20)","decl":{"start":{"line":258,"column":29},"end":{"line":258,"column":30}},"loc":{"start":{"line":258,"column":41},"end":{"line":263,"column":9}},"line":258},"21":{"name":"(anonymous_21)","decl":{"start":{"line":271,"column":4},"end":{"line":271,"column":5}},"loc":{"start":{"line":271,"column":46},"end":{"line":282,"column":5}},"line":271}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":20,"column":28},"end":{"line":20,"column":44}},"type":"default-arg","locations":[{"start":{"line":20,"column":40},"end":{"line":20,"column":44}}],"line":20},"4":{"loc":{"start":{"line":23,"column":8},"end":{"line":28,"column":9}},"type":"switch","locations":[{"start":{"line":24,"column":12},"end":{"line":25,"column":63}},{"start":{"line":26,"column":12},"end":{"line":27,"column":79}}],"line":23},"5":{"loc":{"start":{"line":51,"column":28},"end":{"line":51,"column":44}},"type":"default-arg","locations":[{"start":{"line":51,"column":40},"end":{"line":51,"column":44}}],"line":51},"6":{"loc":{"start":{"line":68,"column":8},"end":{"line":74,"column":9}},"type":"if","locations":[{"start":{"line":68,"column":8},"end":{"line":74,"column":9}},{"start":{"line":68,"column":8},"end":{"line":74,"column":9}}],"line":68},"7":{"loc":{"start":{"line":81,"column":12},"end":{"line":90,"column":13}},"type":"switch","locations":[{"start":{"line":82,"column":16},"end":{"line":87,"column":26}},{"start":{"line":88,"column":16},"end":{"line":89,"column":26}}],"line":81},"8":{"loc":{"start":{"line":83,"column":20},"end":{"line":85,"column":21}},"type":"if","locations":[{"start":{"line":83,"column":20},"end":{"line":85,"column":21}},{"start":{"line":83,"column":20},"end":{"line":85,"column":21}}],"line":83},"9":{"loc":{"start":{"line":134,"column":8},"end":{"line":141,"column":9}},"type":"if","locations":[{"start":{"line":134,"column":8},"end":{"line":141,"column":9}},{"start":{"line":134,"column":8},"end":{"line":141,"column":9}}],"line":134},"10":{"loc":{"start":{"line":135,"column":12},"end":{"line":137,"column":13}},"type":"if","locations":[{"start":{"line":135,"column":12},"end":{"line":137,"column":13}},{"start":{"line":135,"column":12},"end":{"line":137,"column":13}}],"line":135},"11":{"loc":{"start":{"line":135,"column":16},"end":{"line":135,"column":78}},"type":"binary-expr","locations":[{"start":{"line":135,"column":16},"end":{"line":135,"column":45}},{"start":{"line":135,"column":49},"end":{"line":135,"column":78}}],"line":135},"12":{"loc":{"start":{"line":144,"column":8},"end":{"line":146,"column":9}},"type":"if","locations":[{"start":{"line":144,"column":8},"end":{"line":146,"column":9}},{"start":{"line":144,"column":8},"end":{"line":146,"column":9}}],"line":144},"13":{"loc":{"start":{"line":154,"column":8},"end":{"line":156,"column":9}},"type":"if","locations":[{"start":{"line":154,"column":8},"end":{"line":156,"column":9}},{"start":{"line":154,"column":8},"end":{"line":156,"column":9}}],"line":154},"14":{"loc":{"start":{"line":163,"column":8},"end":{"line":167,"column":9}},"type":"if","locations":[{"start":{"line":163,"column":8},"end":{"line":167,"column":9}},{"start":{"line":163,"column":8},"end":{"line":167,"column":9}}],"line":163},"15":{"loc":{"start":{"line":206,"column":8},"end":{"line":207,"column":105}},"type":"if","locations":[{"start":{"line":206,"column":8},"end":{"line":207,"column":105}},{"start":{"line":206,"column":8},"end":{"line":207,"column":105}}],"line":206},"16":{"loc":{"start":{"line":271,"column":28},"end":{"line":271,"column":44}},"type":"default-arg","locations":[{"start":{"line":271,"column":40},"end":{"line":271,"column":44}}],"line":271}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":7,"17":7,"18":7,"19":6,"20":1,"21":1,"22":33,"23":33,"24":33,"25":14,"26":14,"27":14,"28":14,"29":14,"30":14,"31":14,"32":14,"33":14,"34":14,"35":14,"36":14,"37":14,"38":14,"39":14,"40":14,"41":14,"42":12,"43":2,"44":2,"45":14,"46":14,"47":14,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":0,"57":14,"58":1,"59":1,"60":1,"61":1,"62":1,"63":7,"64":7,"65":1,"66":6,"67":6,"68":1,"69":5,"70":4,"71":1,"72":1,"73":3,"74":4,"75":3,"76":1,"77":2,"78":2,"79":0,"80":0,"81":0,"82":0,"83":0,"84":1,"85":1,"86":0,"87":0,"88":1,"89":1,"90":13,"91":13,"92":13,"93":13,"94":13,"95":13,"96":13,"97":13,"98":13,"99":13,"100":13,"101":13,"102":13,"103":13,"104":13,"105":13,"106":13,"107":13,"108":1,"109":1,"110":13,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":2,"126":4,"127":0,"128":3,"129":3,"130":3,"131":6,"132":6,"133":6,"134":3,"135":1,"136":1,"137":1,"138":1,"139":1,"140":2,"141":2,"142":2,"143":2,"144":1,"145":1},"f":{"0":1,"1":7,"2":33,"3":14,"4":1,"5":7,"6":4,"7":2,"8":0,"9":1,"10":0,"11":1,"12":13,"13":1,"14":1,"15":1,"16":2,"17":4,"18":0,"19":3,"20":6,"21":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[2],"4":[6,1],"5":[8],"6":[12,2],"7":[1,0],"8":[1,0],"9":[4,1],"10":[1,3],"11":[4,1],"12":[1,2],"13":[0,0],"14":[0,1],"15":[1,12],"16":[1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcAccept.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcAccept.ts"],"names":[],"mappings":"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","sourcesContent":["import { Script } from '@node-dlc/bitcoin';\nimport { BufferReader, BufferWriter } from '@node-dlc/bufio';\nimport { hash160 } from '@node-dlc/crypto';\nimport { BitcoinNetwork } from 'bitcoin-networks';\nimport { address } from 'bitcoinjs-lib';\nimport secp256k1 from 'secp256k1';\n\nimport { MessageType } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv, skipTlv } from '../serialize/getTlv';\nimport { BatchFundingGroup, IBatchFundingGroupJSON } from './BatchFundingGroup';\nimport {\n  CetAdaptorSignaturesV0,\n  ICetAdaptorSignaturesV0JSON,\n} from './CetAdaptorSignaturesV0';\nimport { IDlcMessage } from './DlcMessage';\nimport { FundingInputV0, IFundingInputV0JSON } from './FundingInput';\nimport {\n  INegotiationFieldsV0JSON,\n  INegotiationFieldsV1JSON,\n  INegotiationFieldsV2JSON,\n  NegotiationFields,\n} from './NegotiationFields';\n\nexport abstract class DlcAccept implements IDlcMessage {\n  public static deserialize(buf: Buffer, parseCets = true): DlcAcceptV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcAcceptV0:\n        return DlcAcceptV0.deserialize(buf, parseCets);\n      default:\n        throw new Error(`Dlc Accept message type must be DlcAcceptV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract getAddresses(network: BitcoinNetwork): IDlcAcceptV0Addresses;\n\n  public abstract toJSON(): IDlcAcceptV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcAccept contains information about a node and indicates its\n * acceptance of the new DLC, as well as its CET and refund\n * transaction signatures. This is the second step toward creating\n * the funding transaction and closing transactions.\n */\nexport class DlcAcceptV0 extends DlcAccept implements IDlcMessage {\n  public static type = MessageType.DlcAcceptV0;\n\n  /**\n   * Deserializes an oracle_info message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer, parseCets = true): DlcAcceptV0 {\n    const instance = new DlcAcceptV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    instance.tempContractId = reader.readBytes(32);\n    instance.acceptCollateralSatoshis = reader.readUInt64BE();\n    instance.fundingPubKey = reader.readBytes(33);\n    const payoutSPKLen = reader.readUInt16BE();\n    instance.payoutSPK = reader.readBytes(payoutSPKLen);\n    instance.payoutSerialId = reader.readUInt64BE();\n    const fundingInputsLen = reader.readUInt16BE();\n    for (let i = 0; i < fundingInputsLen; i++) {\n      instance.fundingInputs.push(FundingInputV0.deserialize(getTlv(reader)));\n    }\n    const changeSPKLen = reader.readUInt16BE();\n    instance.changeSPK = reader.readBytes(changeSPKLen);\n    instance.changeSerialId = reader.readUInt64BE();\n    if (parseCets) {\n      instance.cetSignatures = CetAdaptorSignaturesV0.deserialize(\n        getTlv(reader),\n      );\n    } else {\n      skipTlv(reader);\n      instance.cetSignatures = new CetAdaptorSignaturesV0();\n    }\n    instance.refundSignature = reader.readBytes(64);\n    instance.negotiationFields = NegotiationFields.deserialize(getTlv(reader));\n\n    while (!reader.eof) {\n      const buf = getTlv(reader);\n      const tlvReader = new BufferReader(buf);\n      const { type } = deserializeTlv(tlvReader);\n\n      switch (Number(type)) {\n        case MessageType.BatchFundingGroup:\n          if (!instance.batchFundingGroups) {\n            instance.batchFundingGroups = [];\n          }\n          instance.batchFundingGroups.push(BatchFundingGroup.deserialize(buf));\n          break;\n        default:\n          break;\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for accept_channel message. accept_channel = 33\n   */\n  public type = DlcAcceptV0.type;\n\n  public tempContractId: Buffer;\n\n  public acceptCollateralSatoshis: bigint;\n\n  public fundingPubKey: Buffer;\n\n  public payoutSPK: Buffer;\n\n  public payoutSerialId: bigint;\n\n  public fundingInputs: FundingInputV0[] = [];\n\n  public changeSPK: Buffer;\n\n  public changeSerialId: bigint;\n\n  public cetSignatures: CetAdaptorSignaturesV0;\n\n  public refundSignature: Buffer;\n\n  public negotiationFields: NegotiationFields;\n\n  public batchFundingGroups?: BatchFundingGroup[];\n\n  /**\n   * Get funding, change and payout address from DlcOffer\n   * @param network Bitcoin Network\n   * @returns {IDlcOfferV0Addresses}\n   */\n  public getAddresses(network: BitcoinNetwork): IDlcAcceptV0Addresses {\n    const fundingSPK = Script.p2wpkhLock(hash160(this.fundingPubKey))\n      .serialize()\n      .slice(1);\n    const fundingAddress = address.fromOutputScript(fundingSPK, network);\n    const changeAddress = address.fromOutputScript(this.changeSPK, network);\n    const payoutAddress = address.fromOutputScript(this.payoutSPK, network);\n\n    return {\n      fundingAddress,\n      changeAddress,\n      payoutAddress,\n    };\n  }\n\n  /**\n   * Validates correctness of all fields\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Protocol.md#the-accept_dlc-message\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // 1. Type is set automatically in class\n    // 2. payout_spk and change_spk must be standard script pubkeys\n\n    try {\n      address.fromOutputScript(this.payoutSPK);\n    } catch (e) {\n      throw new Error('payoutSPK is invalid');\n    }\n\n    try {\n      address.fromOutputScript(this.changeSPK);\n    } catch (e) {\n      throw new Error('changeSPK is invalid');\n    }\n\n    // 3. funding_pubkey must be a valid secp256k1 pubkey in compressed format\n    // https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki#background-on-ecdsa-signatures\n\n    if (secp256k1.publicKeyVerify(Buffer.from(this.fundingPubKey))) {\n      if (this.fundingPubKey[0] != 0x02 && this.fundingPubKey[0] != 0x03) {\n        throw new Error('fundingPubKey must be in compressed format');\n      }\n    } else {\n      throw new Error('fundingPubKey is not a valid secp256k1 key');\n    }\n\n    // 4. inputSerialId must be unique for each input\n\n    const inputSerialIds = this.fundingInputs.map(\n      (input: FundingInputV0) => input.inputSerialId,\n    );\n\n    if (new Set(inputSerialIds).size !== inputSerialIds.length) {\n      throw new Error('inputSerialIds must be unique');\n    }\n\n    // 5. Ensure funding inputs are segwit\n    this.fundingInputs.forEach((input: FundingInputV0) => input.validate());\n\n    // validate funding amount\n    const fundingAmount = this.fundingInputs.reduce((acc, fundingInput) => {\n      const input = fundingInput as FundingInputV0;\n      return acc + input.prevTx.outputs[input.prevTxVout].value.sats;\n    }, BigInt(0));\n    if (this.acceptCollateralSatoshis >= fundingAmount) {\n      throw new Error(\n        'fundingAmount must be greater than acceptCollateralSatoshis',\n      );\n    }\n  }\n\n  /**\n   * Converts dlc_accept_v0 to JSON\n   */\n  public toJSON(): IDlcAcceptV0JSON {\n    const tlvs = [];\n\n    if (this.batchFundingGroups) {\n      this.batchFundingGroups.forEach((group) => {\n        tlvs.push(group.serialize());\n      });\n    }\n\n    return {\n      type: this.type,\n      tempContractId: this.tempContractId.toString('hex'),\n      acceptCollateralSatoshis: Number(this.acceptCollateralSatoshis),\n      fundingPubKey: this.fundingPubKey.toString('hex'),\n      payoutSPK: this.payoutSPK.toString('hex'),\n      payoutSerialId: Number(this.payoutSerialId),\n      fundingInputs: this.fundingInputs.map((input) => input.toJSON()),\n      changeSPK: this.changeSPK.toString('hex'),\n      changeSerialId: Number(this.changeSerialId),\n      cetSignatures: this.cetSignatures.toJSON(),\n      refundSignature: this.refundSignature.toString('hex'),\n      negotiationFields: this.negotiationFields.toJSON(),\n      tlvs,\n    };\n  }\n\n  /**\n   * Serializes the accept_channel message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.tempContractId);\n    writer.writeUInt64BE(this.acceptCollateralSatoshis);\n    writer.writeBytes(this.fundingPubKey);\n    writer.writeUInt16BE(this.payoutSPK.length);\n    writer.writeBytes(this.payoutSPK);\n    writer.writeUInt64BE(this.payoutSerialId);\n    writer.writeUInt16BE(this.fundingInputs.length);\n\n    for (const fundingInput of this.fundingInputs) {\n      writer.writeBytes(fundingInput.serialize());\n    }\n\n    writer.writeUInt16BE(this.changeSPK.length);\n    writer.writeBytes(this.changeSPK);\n    writer.writeUInt64BE(this.changeSerialId);\n    writer.writeBytes(this.cetSignatures.serialize());\n    writer.writeBytes(this.refundSignature);\n    writer.writeBytes(this.negotiationFields.serialize());\n\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        writer.writeBytes(fundingInfo.serialize()),\n      );\n\n    return writer.toBuffer();\n  }\n\n  public withoutSigs(): DlcAcceptWithoutSigs {\n    return new DlcAcceptWithoutSigs(\n      this.tempContractId,\n      this.acceptCollateralSatoshis,\n      this.fundingPubKey,\n      this.payoutSPK,\n      this.payoutSerialId,\n      this.fundingInputs,\n      this.changeSPK,\n      this.changeSerialId,\n      this.negotiationFields,\n      this.batchFundingGroups,\n    );\n  }\n}\n\nexport class DlcAcceptWithoutSigs {\n  constructor(\n    readonly tempContractId: Buffer,\n    readonly acceptCollateralSatoshis: bigint,\n    readonly fundingPubKey: Buffer,\n    readonly payoutSPK: Buffer,\n    readonly payoutSerialId: bigint,\n    readonly fundingInputs: FundingInputV0[],\n    readonly changeSPK: Buffer,\n    readonly changeSerialId: bigint,\n    readonly negotiationFields: NegotiationFields,\n    readonly batchFundingGroups?: BatchFundingGroup[],\n  ) {}\n}\n\nexport interface IDlcAcceptV0JSON {\n  type: number;\n  tempContractId: string;\n  acceptCollateralSatoshis: number;\n  fundingPubKey: string;\n  payoutSPK: string;\n  payoutSerialId: number;\n  fundingInputs: IFundingInputV0JSON[];\n  changeSPK: string;\n  changeSerialId: number;\n  cetSignatures: ICetAdaptorSignaturesV0JSON;\n  refundSignature: string;\n  negotiationFields:\n    | INegotiationFieldsV0JSON\n    | INegotiationFieldsV1JSON\n    | INegotiationFieldsV2JSON;\n  tlvs: IBatchFundingGroupJSON[];\n}\n\nexport interface IDlcAcceptV0Addresses {\n  fundingAddress: string;\n  changeAddress: string;\n  payoutAddress: string;\n}\n\nexport class DlcAcceptContainer {\n  private accepts: DlcAccept[] = [];\n\n  /**\n   * Adds a DlcAccept to the container.\n   * @param accept The DlcAccept to add.\n   */\n  public addAccept(accept: DlcAccept): void {\n    this.accepts.push(accept);\n  }\n\n  /**\n   * Returns all DlcAccepts in the container.\n   * @returns An array of DlcAccept instances.\n   */\n  public getAccepts(): DlcAccept[] {\n    return this.accepts;\n  }\n\n  /**\n   * Serializes all DlcAccepts in the container to a Buffer.\n   * @returns A Buffer containing the serialized DlcAccepts.\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    // Write the number of accepts in the container first.\n    writer.writeBigSize(this.accepts.length);\n    // Serialize each accept and write it.\n    this.accepts.forEach((accept) => {\n      const serializedAccept = accept.serialize();\n      // Optionally, write the length of the serialized accept for easier deserialization.\n      writer.writeBigSize(serializedAccept.length);\n      writer.writeBytes(serializedAccept);\n    });\n    return writer.toBuffer();\n  }\n\n  /**\n   * Deserializes a Buffer into a DlcAcceptContainer with DlcAccepts.\n   * @param buf The Buffer to deserialize.\n   * @returns A DlcAcceptContainer instance.\n   */\n  public static deserialize(buf: Buffer, parseCets = true): DlcAcceptContainer {\n    const reader = new BufferReader(buf);\n    const container = new DlcAcceptContainer();\n    const acceptsCount = reader.readBigSize();\n    for (let i = 0; i < acceptsCount; i++) {\n      const acceptLength = reader.readBigSize();\n      const acceptBuf = reader.readBytes(Number(acceptLength));\n      const accept = DlcAccept.deserialize(acceptBuf, parseCets); // Adjust based on actual implementation.\n      container.addAccept(accept);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e38e8eb49e35714d6d6b63e43e93bd9df3cb9140","contentHash":"abaab4ce985e8c251d37d48b180679aff18ce95e47737127b1a40d165c42ba1d"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/deserializeTlv.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/deserializeTlv.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"2":{"start":{"line":5,"column":17},"end":{"line":5,"column":37}},"3":{"start":{"line":6,"column":19},"end":{"line":6,"column":39}},"4":{"start":{"line":7,"column":17},"end":{"line":7,"column":49}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":34}},"6":{"start":{"line":10,"column":0},"end":{"line":10,"column":40}}},"fnMap":{"0":{"name":"deserializeTlv","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":23}},"loc":{"start":{"line":4,"column":32},"end":{"line":9,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":1,"2":12,"3":12,"4":12,"5":12,"6":1},"f":{"0":12},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/deserializeTlv.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/deserializeTlv.ts"],"names":[],"mappings":";;;AAEA,SAAgB,cAAc,CAAC,MAAoB;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAND,wCAMC","sourcesContent":["import { BufferReader } from '@node-dlc/bufio';\n\nexport function deserializeTlv(reader: BufferReader): ITlv {\n  const type = reader.readBigSize();\n  const length = reader.readBigSize();\n  const body = reader.readBytes(Number(length));\n\n  return { type, length, body };\n}\n\ninterface ITlv {\n  type: bigint;\n  length: bigint;\n  body: Buffer;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"85b7da89e4d407cce4522b7c84469852e792cf51","contentHash":"971ddcbe650257068480be207ab95950fb5d54bec4f2dcc209fcf59da65020ea"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingInput.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingInput.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":55}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":46}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":9,"column":23},"end":{"line":9,"column":52}},"6":{"start":{"line":10,"column":21},"end":{"line":10,"column":49}},"7":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"8":{"start":{"line":13,"column":16},"end":{"line":13,"column":55}},"9":{"start":{"line":15,"column":16},"end":{"line":15,"column":89}},"10":{"start":{"line":19,"column":0},"end":{"line":19,"column":36}},"11":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"12":{"start":{"line":30,"column":8},"end":{"line":30,"column":40}},"13":{"start":{"line":37,"column":25},"end":{"line":37,"column":45}},"14":{"start":{"line":38,"column":23},"end":{"line":38,"column":52}},"15":{"start":{"line":39,"column":8},"end":{"line":39,"column":29}},"16":{"start":{"line":40,"column":8},"end":{"line":40,"column":47}},"17":{"start":{"line":41,"column":8},"end":{"line":41,"column":55}},"18":{"start":{"line":42,"column":26},"end":{"line":42,"column":47}},"19":{"start":{"line":43,"column":8},"end":{"line":43,"column":108}},"20":{"start":{"line":44,"column":8},"end":{"line":44,"column":52}},"21":{"start":{"line":45,"column":8},"end":{"line":45,"column":74}},"22":{"start":{"line":46,"column":8},"end":{"line":46,"column":55}},"23":{"start":{"line":47,"column":32},"end":{"line":47,"column":53}},"24":{"start":{"line":48,"column":8},"end":{"line":48,"column":66}},"25":{"start":{"line":49,"column":8},"end":{"line":49,"column":24}},"26":{"start":{"line":52,"column":8},"end":{"line":57,"column":9}},"27":{"start":{"line":53,"column":12},"end":{"line":53,"column":48}},"28":{"start":{"line":56,"column":12},"end":{"line":56,"column":21}},"29":{"start":{"line":66,"column":8},"end":{"line":67,"column":59}},"30":{"start":{"line":67,"column":12},"end":{"line":67,"column":59}},"31":{"start":{"line":73,"column":8},"end":{"line":81,"column":10}},"32":{"start":{"line":87,"column":23},"end":{"line":87,"column":49}},"33":{"start":{"line":88,"column":8},"end":{"line":88,"column":39}},"34":{"start":{"line":89,"column":27},"end":{"line":89,"column":53}},"35":{"start":{"line":90,"column":8},"end":{"line":90,"column":53}},"36":{"start":{"line":91,"column":8},"end":{"line":91,"column":65}},"37":{"start":{"line":92,"column":8},"end":{"line":92,"column":55}},"38":{"start":{"line":93,"column":8},"end":{"line":93,"column":50}},"39":{"start":{"line":94,"column":8},"end":{"line":94,"column":54}},"40":{"start":{"line":95,"column":8},"end":{"line":95,"column":53}},"41":{"start":{"line":96,"column":8},"end":{"line":96,"column":59}},"42":{"start":{"line":97,"column":8},"end":{"line":97,"column":49}},"43":{"start":{"line":98,"column":8},"end":{"line":98,"column":45}},"44":{"start":{"line":99,"column":8},"end":{"line":99,"column":49}},"45":{"start":{"line":100,"column":8},"end":{"line":100,"column":33}},"46":{"start":{"line":103,"column":0},"end":{"line":103,"column":40}},"47":{"start":{"line":104,"column":0},"end":{"line":104,"column":63}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":28},"end":{"line":17,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":31,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":28},"end":{"line":50,"column":5}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":22},"end":{"line":58,"column":5}},"line":51},"4":{"name":"(anonymous_4)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":15},"end":{"line":68,"column":5}},"line":63},"5":{"name":"(anonymous_5)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":13},"end":{"line":82,"column":5}},"line":72},"6":{"name":"(anonymous_6)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":16},"end":{"line":101,"column":5}},"line":86}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"type":"switch","locations":[{"start":{"line":12,"column":12},"end":{"line":13,"column":55}},{"start":{"line":14,"column":12},"end":{"line":15,"column":89}}],"line":11},"1":{"loc":{"start":{"line":52,"column":8},"end":{"line":57,"column":9}},"type":"if","locations":[{"start":{"line":52,"column":8},"end":{"line":57,"column":9}},{"start":{"line":52,"column":8},"end":{"line":57,"column":9}}],"line":52},"2":{"loc":{"start":{"line":66,"column":8},"end":{"line":67,"column":59}},"type":"if","locations":[{"start":{"line":66,"column":8},"end":{"line":67,"column":59}},{"start":{"line":66,"column":8},"end":{"line":67,"column":59}}],"line":66}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":10,"6":10,"7":10,"8":10,"9":0,"10":1,"11":92,"12":92,"13":89,"14":89,"15":89,"16":89,"17":89,"18":89,"19":89,"20":89,"21":89,"22":89,"23":89,"24":89,"25":89,"26":0,"27":0,"28":0,"29":4,"30":4,"31":6,"32":32,"33":32,"34":32,"35":32,"36":32,"37":32,"38":32,"39":32,"40":32,"41":32,"42":32,"43":32,"44":32,"45":32,"46":1,"47":1},"f":{"0":10,"1":92,"2":89,"3":0,"4":4,"5":6,"6":32},"b":{"0":[10,0],"1":[0,0],"2":[4,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingInput.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { Sequence, Tx } from '@node-dlc/bitcoin';\nimport { BufferReader, BufferWriter, StreamReader } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class FundingInput {\n  public static deserialize(buf: Buffer): FundingInputV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.FundingInputV0:\n        return FundingInputV0.deserialize(buf);\n      default:\n        throw new Error(\n          `FundingInput function TLV type must be FundingInputV0`,\n        );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON(): IFundingInputV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * FundingInput V0 contains information about a specific input to be used\n * in a funding transaction, as well as its corresponding on-chain UTXO.\n */\nexport class FundingInputV0 extends FundingInput implements IDlcMessage {\n  public static type = MessageType.FundingInputV0;\n\n  /**\n   * Deserializes an funding_input_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): FundingInputV0 {\n    const instance = new FundingInputV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.inputSerialId = reader.readUInt64BE();\n    const prevTxLen = reader.readUInt16BE();\n    instance.prevTx = Tx.decode(\n      StreamReader.fromBuffer(reader.readBytes(prevTxLen)),\n    );\n    instance.prevTxVout = reader.readUInt32BE();\n    instance.sequence = new Sequence(reader.readUInt32LE());\n    instance.maxWitnessLen = reader.readUInt16BE();\n    const redeemScriptLen = reader.readUInt16BE();\n    instance.redeemScript = reader.readBytes(redeemScriptLen);\n\n    return instance;\n  }\n\n  /**\n   * The type for funding_input_v0 message. funding_input_v0 = 42772\n   */\n  public type = FundingInputV0.type;\n\n  public length: bigint;\n\n  public inputSerialId: bigint;\n\n  public prevTx: Tx;\n\n  public prevTxVout: number;\n\n  public sequence: Sequence;\n\n  public maxWitnessLen: number;\n\n  public redeemScript: Buffer;\n\n  public scriptSigLength(): number {\n    if (this.redeemScript.length > 0) {\n      return 1 + this.redeemScript.length;\n    } else {\n      return 0;\n    }\n  }\n\n  /**\n   * Validates correctness of all fields\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // 1. Type is set automatically in class\n    // 2. Ensure inputs are segwit\n    if (!this.prevTx.isSegWit) throw new Error('fundingInput must be segwit');\n  }\n\n  /**\n   * Converts funding_input_v0 to JSON\n   */\n  public toJSON(): IFundingInputV0JSON {\n    return {\n      type: this.type,\n      inputSerialId: Number(this.inputSerialId),\n      prevTx: this.prevTx.serialize().toString('hex'),\n      prevTxVout: this.prevTxVout,\n      sequence: this.sequence.value,\n      maxWitnessLen: this.maxWitnessLen,\n      redeemScript: this.redeemScript.toString('hex'),\n    };\n  }\n\n  /**\n   * Serializes the funding_input_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt64BE(this.inputSerialId);\n    dataWriter.writeUInt16BE(this.prevTx.serialize().length);\n    dataWriter.writeBytes(this.prevTx.serialize());\n    dataWriter.writeUInt32BE(this.prevTxVout);\n    dataWriter.writeUInt32BE(this.sequence.value);\n    dataWriter.writeUInt16BE(this.maxWitnessLen);\n    dataWriter.writeUInt16BE(this.redeemScript.length);\n    dataWriter.writeBytes(this.redeemScript);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IFundingInputV0JSON {\n  type: number;\n  inputSerialId: number;\n  prevTx: string;\n  prevTxVout: number;\n  sequence: number;\n  maxWitnessLen: number;\n  redeemScript: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f22b2f7a2492d51af970b4f8e77f2980fde4f2a3","contentHash":"49c8335fd2311e2333bb648c837c7fec5a0e3a4c5e077e4df3ba56ade5fbbb82"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NegotiationFields.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NegotiationFields.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":125}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":30},"end":{"line":7,"column":62}},"6":{"start":{"line":10,"column":23},"end":{"line":10,"column":52}},"7":{"start":{"line":11,"column":21},"end":{"line":11,"column":49}},"8":{"start":{"line":12,"column":8},"end":{"line":21,"column":9}},"9":{"start":{"line":14,"column":16},"end":{"line":14,"column":60}},"10":{"start":{"line":16,"column":16},"end":{"line":16,"column":60}},"11":{"start":{"line":18,"column":16},"end":{"line":18,"column":60}},"12":{"start":{"line":20,"column":16},"end":{"line":20,"column":135}},"13":{"start":{"line":24,"column":0},"end":{"line":24,"column":46}},"14":{"start":{"line":31,"column":8},"end":{"line":31,"column":28}},"15":{"start":{"line":35,"column":8},"end":{"line":35,"column":45}},"16":{"start":{"line":42,"column":25},"end":{"line":42,"column":50}},"17":{"start":{"line":43,"column":23},"end":{"line":43,"column":52}},"18":{"start":{"line":44,"column":8},"end":{"line":44,"column":29}},"19":{"start":{"line":45,"column":8},"end":{"line":45,"column":47}},"20":{"start":{"line":46,"column":8},"end":{"line":46,"column":24}},"21":{"start":{"line":52,"column":8},"end":{"line":54,"column":10}},"22":{"start":{"line":60,"column":23},"end":{"line":60,"column":49}},"23":{"start":{"line":61,"column":8},"end":{"line":61,"column":39}},"24":{"start":{"line":62,"column":8},"end":{"line":62,"column":31}},"25":{"start":{"line":63,"column":8},"end":{"line":63,"column":33}},"26":{"start":{"line":66,"column":0},"end":{"line":66,"column":50}},"27":{"start":{"line":67,"column":0},"end":{"line":67,"column":73}},"28":{"start":{"line":74,"column":8},"end":{"line":74,"column":28}},"29":{"start":{"line":78,"column":8},"end":{"line":78,"column":45}},"30":{"start":{"line":85,"column":25},"end":{"line":85,"column":50}},"31":{"start":{"line":86,"column":23},"end":{"line":86,"column":52}},"32":{"start":{"line":87,"column":8},"end":{"line":87,"column":29}},"33":{"start":{"line":88,"column":8},"end":{"line":88,"column":47}},"34":{"start":{"line":89,"column":8},"end":{"line":89,"column":121}},"35":{"start":{"line":90,"column":8},"end":{"line":90,"column":24}},"36":{"start":{"line":96,"column":8},"end":{"line":99,"column":10}},"37":{"start":{"line":105,"column":23},"end":{"line":105,"column":49}},"38":{"start":{"line":106,"column":8},"end":{"line":106,"column":39}},"39":{"start":{"line":107,"column":27},"end":{"line":107,"column":53}},"40":{"start":{"line":108,"column":8},"end":{"line":108,"column":66}},"41":{"start":{"line":109,"column":8},"end":{"line":109,"column":45}},"42":{"start":{"line":110,"column":8},"end":{"line":110,"column":49}},"43":{"start":{"line":111,"column":8},"end":{"line":111,"column":33}},"44":{"start":{"line":114,"column":0},"end":{"line":114,"column":50}},"45":{"start":{"line":115,"column":0},"end":{"line":115,"column":73}},"46":{"start":{"line":122,"column":8},"end":{"line":122,"column":28}},"47":{"start":{"line":126,"column":8},"end":{"line":126,"column":45}},"48":{"start":{"line":127,"column":8},"end":{"line":127,"column":40}},"49":{"start":{"line":134,"column":25},"end":{"line":134,"column":50}},"50":{"start":{"line":135,"column":23},"end":{"line":135,"column":52}},"51":{"start":{"line":136,"column":8},"end":{"line":136,"column":29}},"52":{"start":{"line":137,"column":8},"end":{"line":137,"column":47}},"53":{"start":{"line":138,"column":8},"end":{"line":138,"column":29}},"54":{"start":{"line":139,"column":8},"end":{"line":141,"column":9}},"55":{"start":{"line":140,"column":12},"end":{"line":140,"column":109}},"56":{"start":{"line":142,"column":8},"end":{"line":142,"column":24}},"57":{"start":{"line":148,"column":8},"end":{"line":151,"column":10}},"58":{"start":{"line":150,"column":77},"end":{"line":150,"column":91}},"59":{"start":{"line":157,"column":23},"end":{"line":157,"column":49}},"60":{"start":{"line":158,"column":8},"end":{"line":158,"column":39}},"61":{"start":{"line":159,"column":27},"end":{"line":159,"column":53}},"62":{"start":{"line":160,"column":8},"end":{"line":160,"column":67}},"63":{"start":{"line":161,"column":8},"end":{"line":163,"column":9}},"64":{"start":{"line":162,"column":12},"end":{"line":162,"column":65}},"65":{"start":{"line":164,"column":8},"end":{"line":164,"column":45}},"66":{"start":{"line":165,"column":8},"end":{"line":165,"column":49}},"67":{"start":{"line":166,"column":8},"end":{"line":166,"column":33}},"68":{"start":{"line":169,"column":0},"end":{"line":169,"column":50}},"69":{"start":{"line":170,"column":0},"end":{"line":170,"column":73}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":28},"end":{"line":22,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":18},"end":{"line":36,"column":5}},"line":30},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":4},"end":{"line":41,"column":5}},"loc":{"start":{"line":41,"column":28},"end":{"line":47,"column":5}},"line":41},"3":{"name":"(anonymous_3)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":13},"end":{"line":55,"column":5}},"line":51},"4":{"name":"(anonymous_4)","decl":{"start":{"line":59,"column":4},"end":{"line":59,"column":5}},"loc":{"start":{"line":59,"column":16},"end":{"line":64,"column":5}},"line":59},"5":{"name":"(anonymous_5)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":18},"end":{"line":79,"column":5}},"line":73},"6":{"name":"(anonymous_6)","decl":{"start":{"line":84,"column":4},"end":{"line":84,"column":5}},"loc":{"start":{"line":84,"column":28},"end":{"line":91,"column":5}},"line":84},"7":{"name":"(anonymous_7)","decl":{"start":{"line":95,"column":4},"end":{"line":95,"column":5}},"loc":{"start":{"line":95,"column":13},"end":{"line":100,"column":5}},"line":95},"8":{"name":"(anonymous_8)","decl":{"start":{"line":104,"column":4},"end":{"line":104,"column":5}},"loc":{"start":{"line":104,"column":16},"end":{"line":112,"column":5}},"line":104},"9":{"name":"(anonymous_9)","decl":{"start":{"line":121,"column":4},"end":{"line":121,"column":5}},"loc":{"start":{"line":121,"column":18},"end":{"line":128,"column":5}},"line":121},"10":{"name":"(anonymous_10)","decl":{"start":{"line":133,"column":4},"end":{"line":133,"column":5}},"loc":{"start":{"line":133,"column":28},"end":{"line":143,"column":5}},"line":133},"11":{"name":"(anonymous_11)","decl":{"start":{"line":147,"column":4},"end":{"line":147,"column":5}},"loc":{"start":{"line":147,"column":13},"end":{"line":152,"column":5}},"line":147},"12":{"name":"(anonymous_12)","decl":{"start":{"line":150,"column":66},"end":{"line":150,"column":67}},"loc":{"start":{"line":150,"column":77},"end":{"line":150,"column":91}},"line":150},"13":{"name":"(anonymous_13)","decl":{"start":{"line":156,"column":4},"end":{"line":156,"column":5}},"loc":{"start":{"line":156,"column":16},"end":{"line":167,"column":5}},"line":156}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":21,"column":9}},"type":"switch","locations":[{"start":{"line":13,"column":12},"end":{"line":14,"column":60}},{"start":{"line":15,"column":12},"end":{"line":16,"column":60}},{"start":{"line":17,"column":12},"end":{"line":18,"column":60}},{"start":{"line":19,"column":12},"end":{"line":20,"column":135}}],"line":12}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":40,"7":40,"8":40,"9":36,"10":3,"11":1,"12":0,"13":1,"14":37,"15":37,"16":36,"17":36,"18":36,"19":36,"20":36,"21":1,"22":17,"23":17,"24":17,"25":17,"26":1,"27":1,"28":4,"29":4,"30":3,"31":3,"32":3,"33":3,"34":3,"35":3,"36":0,"37":3,"38":3,"39":3,"40":3,"41":3,"42":3,"43":3,"44":1,"45":1,"46":2,"47":2,"48":2,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":2,"56":1,"57":0,"58":0,"59":1,"60":1,"61":1,"62":1,"63":1,"64":2,"65":1,"66":1,"67":1,"68":1,"69":1},"f":{"0":40,"1":37,"2":36,"3":1,"4":17,"5":4,"6":3,"7":0,"8":3,"9":2,"10":1,"11":0,"12":0,"13":1},"b":{"0":[36,3,1,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NegotiationFields.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NegotiationFields.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport { RoundingIntervalsV0 } from './RoundingIntervalsV0';\nimport { IRoundingIntervalsV0JSON } from './RoundingIntervalsV0';\n\nexport abstract class NegotiationFields {\n  public static deserialize(\n    buf: Buffer,\n  ): NegotiationFieldsV0 | NegotiationFieldsV1 | NegotiationFieldsV2 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.NegotiationFieldsV0:\n        return NegotiationFieldsV0.deserialize(buf);\n      case MessageType.NegotiationFieldsV1:\n        return NegotiationFieldsV1.deserialize(buf);\n      case MessageType.NegotiationFieldsV2:\n        return NegotiationFieldsV2.deserialize(buf);\n      default:\n        throw new Error(\n          `Negotiation fields TLV type must be NegotiationFieldsV0, NegotiationFieldsV1 or NegotiationFieldsV2`,\n        );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON():\n    | INegotiationFieldsV0JSON\n    | INegotiationFieldsV1JSON\n    | INegotiationFieldsV2JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * NegotiationFields V0 contains preferences of the accepter of a DLC\n * which are taken into account during DLC construction.\n */\nexport class NegotiationFieldsV0\n  extends NegotiationFields\n  implements IDlcMessage {\n  public static type = MessageType.NegotiationFieldsV0;\n\n  /**\n   * Deserializes an negotiation_fields_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): NegotiationFieldsV0 {\n    const instance = new NegotiationFieldsV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    return instance;\n  }\n\n  /**\n   * The type for negotiation_fields_v0 message. negotiation_fields_v0 = 55334\n   */\n  public type = NegotiationFieldsV0.type;\n\n  public length: bigint;\n\n  /**\n   * Converts negotiation_fields_v0 to JSON\n   */\n  public toJSON(): INegotiationFieldsV0JSON {\n    return {\n      type: this.type,\n    };\n  }\n\n  /**\n   * Serializes the negotiation_fields_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n    writer.writeBigSize(0);\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * NegotiationFields V1 contains preferences of the acceptor of a DLC\n * which are taken into account during DLC construction.\n */\nexport class NegotiationFieldsV1\n  extends NegotiationFields\n  implements IDlcMessage {\n  public static type = MessageType.NegotiationFieldsV1;\n\n  /**\n   * Deserializes an negotiation_fields_v1 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): NegotiationFieldsV1 {\n    const instance = new NegotiationFieldsV1();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.roundingIntervals = RoundingIntervalsV0.deserialize(\n      getTlv(reader),\n    );\n\n    return instance;\n  }\n\n  /**\n   * The type for negotiation_fields_v1 message. negotiation_fields_v1 = 55336\n   */\n  public type = NegotiationFieldsV1.type;\n\n  public length: bigint;\n\n  public roundingIntervals: RoundingIntervalsV0;\n\n  /**\n   * Converts negotiation_fields_v1 to JSON\n   */\n  public toJSON(): INegotiationFieldsV1JSON {\n    return {\n      type: this.type,\n      roundingIntervals: this.roundingIntervals.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the negotiation_fields_v1 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBytes(this.roundingIntervals.serialize());\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * NegotiationFields V2 contains preferences of the acceptor of a DLC\n * which are taken into account during DLC construction.\n */\nexport class NegotiationFieldsV2\n  extends NegotiationFields\n  implements IDlcMessage {\n  public static type = MessageType.NegotiationFieldsV2;\n\n  /**\n   * Deserializes an negotiation_fields_v1 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): NegotiationFieldsV2 {\n    const instance = new NegotiationFieldsV2();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    reader.readBigSize(); // num_disjoint_events\n\n    while (!reader.eof) {\n      instance.negotiationFieldsList.push(\n        NegotiationFields.deserialize(getTlv(reader)),\n      );\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for negotiation_fields_v2 message. negotiation_fields_v2 = 55346\n   */\n  public type = NegotiationFieldsV2.type;\n\n  public length: bigint;\n\n  public negotiationFieldsList: NegotiationFields[] = [];\n\n  /**\n   * Converts negotiation_fields_v2 to JSON\n   */\n  public toJSON(): INegotiationFieldsV2JSON {\n    return {\n      type: this.type,\n      negotiationFieldsList: this.negotiationFieldsList.map((field) =>\n        field.toJSON(),\n      ),\n    };\n  }\n\n  /**\n   * Serializes the negotiation_fields_v2 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.negotiationFieldsList.length);\n\n    for (const negotiationFields of this.negotiationFieldsList) {\n      dataWriter.writeBytes(negotiationFields.serialize());\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n    return writer.toBuffer();\n  }\n}\n\nexport interface INegotiationFieldsV0JSON {\n  type: number;\n}\n\nexport interface INegotiationFieldsV1JSON {\n  type: number;\n  roundingIntervals: IRoundingIntervalsV0JSON;\n}\n\nexport interface INegotiationFieldsV2JSON {\n  type: number;\n  negotiationFieldsList:\n    | INegotiationFieldsV0JSON[]\n    | INegotiationFieldsV1JSON[]\n    | INegotiationFieldsV2JSON[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9be90dfe1c4b1032f7b42f7feb99b72ba680d0ce","contentHash":"48859a6433e44baf5cfc05cc19235b187279230638c69341ed120c0b8f242545"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcClose.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcClose.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":47}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":23},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":30},"end":{"line":8,"column":62}},"7":{"start":{"line":11,"column":23},"end":{"line":11,"column":52}},"8":{"start":{"line":12,"column":21},"end":{"line":12,"column":50}},"9":{"start":{"line":13,"column":8},"end":{"line":18,"column":9}},"10":{"start":{"line":15,"column":16},"end":{"line":15,"column":51}},"11":{"start":{"line":17,"column":16},"end":{"line":17,"column":77}},"12":{"start":{"line":21,"column":0},"end":{"line":21,"column":28}},"13":{"start":{"line":28,"column":8},"end":{"line":28,"column":28}},"14":{"start":{"line":32,"column":8},"end":{"line":32,"column":36}},"15":{"start":{"line":33,"column":8},"end":{"line":33,"column":32}},"16":{"start":{"line":40,"column":25},"end":{"line":40,"column":41}},"17":{"start":{"line":41,"column":23},"end":{"line":41,"column":52}},"18":{"start":{"line":42,"column":8},"end":{"line":42,"column":30}},"19":{"start":{"line":43,"column":8},"end":{"line":43,"column":51}},"20":{"start":{"line":44,"column":8},"end":{"line":44,"column":55}},"21":{"start":{"line":45,"column":8},"end":{"line":45,"column":61}},"22":{"start":{"line":46,"column":8},"end":{"line":46,"column":62}},"23":{"start":{"line":47,"column":8},"end":{"line":47,"column":59}},"24":{"start":{"line":48,"column":33},"end":{"line":48,"column":54}},"25":{"start":{"line":49,"column":8},"end":{"line":51,"column":9}},"26":{"start":{"line":49,"column":21},"end":{"line":49,"column":22}},"27":{"start":{"line":50,"column":12},"end":{"line":50,"column":113}},"28":{"start":{"line":52,"column":8},"end":{"line":52,"column":121}},"29":{"start":{"line":53,"column":8},"end":{"line":53,"column":24}},"30":{"start":{"line":59,"column":23},"end":{"line":59,"column":49}},"31":{"start":{"line":60,"column":8},"end":{"line":60,"column":40}},"32":{"start":{"line":61,"column":8},"end":{"line":61,"column":43}},"33":{"start":{"line":62,"column":8},"end":{"line":62,"column":47}},"34":{"start":{"line":63,"column":8},"end":{"line":63,"column":55}},"35":{"start":{"line":64,"column":8},"end":{"line":64,"column":56}},"36":{"start":{"line":65,"column":8},"end":{"line":65,"column":53}},"37":{"start":{"line":66,"column":8},"end":{"line":66,"column":56}},"38":{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},"39":{"start":{"line":68,"column":12},"end":{"line":68,"column":56}},"40":{"start":{"line":70,"column":8},"end":{"line":70,"column":62}},"41":{"start":{"line":71,"column":8},"end":{"line":71,"column":33}},"42":{"start":{"line":80,"column":31},"end":{"line":80,"column":85}},"43":{"start":{"line":80,"column":65},"end":{"line":80,"column":84}},"44":{"start":{"line":81,"column":8},"end":{"line":83,"column":9}},"45":{"start":{"line":82,"column":12},"end":{"line":82,"column":61}},"46":{"start":{"line":85,"column":8},"end":{"line":85,"column":64}},"47":{"start":{"line":85,"column":46},"end":{"line":85,"column":62}},"48":{"start":{"line":91,"column":8},"end":{"line":100,"column":10}},"49":{"start":{"line":98,"column":61},"end":{"line":98,"column":75}},"50":{"start":{"line":103,"column":0},"end":{"line":103,"column":32}},"51":{"start":{"line":104,"column":0},"end":{"line":104,"column":55}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":28},"end":{"line":19,"column":5}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":18},"end":{"line":34,"column":5}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":28},"end":{"line":54,"column":5}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":16},"end":{"line":72,"column":5}},"line":58},"4":{"name":"(anonymous_4)","decl":{"start":{"line":77,"column":4},"end":{"line":77,"column":5}},"loc":{"start":{"line":77,"column":15},"end":{"line":86,"column":5}},"line":77},"5":{"name":"(anonymous_5)","decl":{"start":{"line":80,"column":54},"end":{"line":80,"column":55}},"loc":{"start":{"line":80,"column":65},"end":{"line":80,"column":84}},"line":80},"6":{"name":"(anonymous_6)","decl":{"start":{"line":85,"column":35},"end":{"line":85,"column":36}},"loc":{"start":{"line":85,"column":46},"end":{"line":85,"column":62}},"line":85},"7":{"name":"(anonymous_7)","decl":{"start":{"line":90,"column":4},"end":{"line":90,"column":5}},"loc":{"start":{"line":90,"column":13},"end":{"line":101,"column":5}},"line":90},"8":{"name":"(anonymous_8)","decl":{"start":{"line":98,"column":50},"end":{"line":98,"column":51}},"loc":{"start":{"line":98,"column":61},"end":{"line":98,"column":75}},"line":98}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":8},"end":{"line":18,"column":9}},"type":"switch","locations":[{"start":{"line":14,"column":12},"end":{"line":15,"column":51}},{"start":{"line":16,"column":12},"end":{"line":17,"column":77}}],"line":13},"1":{"loc":{"start":{"line":81,"column":8},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":81,"column":8},"end":{"line":83,"column":9}},{"start":{"line":81,"column":8},"end":{"line":83,"column":9}}],"line":81}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2,"8":2,"9":2,"10":1,"11":1,"12":1,"13":11,"14":11,"15":11,"16":3,"17":3,"18":3,"19":3,"20":3,"21":3,"22":3,"23":3,"24":3,"25":3,"26":3,"27":3,"28":3,"29":3,"30":3,"31":3,"32":3,"33":3,"34":3,"35":3,"36":3,"37":3,"38":3,"39":3,"40":3,"41":3,"42":2,"43":3,"44":2,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1},"f":{"0":2,"1":11,"2":3,"3":3,"4":2,"5":3,"6":1,"7":1,"8":1},"b":{"0":[1,1],"1":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcClose.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcClose.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport { FundingInputV0, IFundingInputV0JSON } from './FundingInput';\nimport {\n  FundingSignaturesV0,\n  IFundingSignaturesV0JSON,\n} from './FundingSignaturesV0';\n\nexport abstract class DlcClose {\n  public static deserialize(buf: Buffer): DlcCloseV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcCloseV0:\n        return DlcCloseV0.deserialize(buf);\n      default:\n        throw new Error(`DLC Close message type must be DlcCloseV0`); // This is a temporary measure while protocol is being developed\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract toJSON(): IDlcCloseV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcClose message contains information about a node and indicates its\n * desire to close an existing contract.\n */\nexport class DlcCloseV0 extends DlcClose implements IDlcMessage {\n  public static type = MessageType.DlcCloseV0;\n\n  /**\n   * Deserializes an close_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcCloseV0 {\n    const instance = new DlcCloseV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    instance.contractId = reader.readBytes(32);\n    instance.closeSignature = reader.readBytes(64);\n    instance.offerPayoutSatoshis = reader.readUInt64BE();\n    instance.acceptPayoutSatoshis = reader.readUInt64BE();\n    instance.fundInputSerialId = reader.readUInt64BE();\n    const fundingInputsLen = reader.readUInt16BE();\n    for (let i = 0; i < fundingInputsLen; i++) {\n      instance.fundingInputs.push(FundingInputV0.deserialize(getTlv(reader)));\n    }\n    instance.fundingSignatures = FundingSignaturesV0.deserialize(\n      getTlv(reader),\n    );\n\n    return instance;\n  }\n\n  /**\n   * The type for close_dlc_v0 message. close_dlc_v0 = 52170 // TODO\n   */\n  public type = DlcCloseV0.type;\n\n  public contractId: Buffer;\n\n  public closeSignature: Buffer;\n\n  public offerPayoutSatoshis: bigint;\n\n  public acceptPayoutSatoshis: bigint;\n\n  public fundInputSerialId: bigint;\n\n  public fundingInputs: FundingInputV0[] = [];\n\n  public fundingSignatures: FundingSignaturesV0;\n\n  /**\n   * Serializes the close_dlc_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.contractId);\n    writer.writeBytes(this.closeSignature);\n    writer.writeUInt64BE(this.offerPayoutSatoshis);\n    writer.writeUInt64BE(this.acceptPayoutSatoshis);\n    writer.writeUInt64BE(this.fundInputSerialId);\n    writer.writeUInt16BE(this.fundingInputs.length);\n\n    for (const fundingInput of this.fundingInputs) {\n      writer.writeBytes(fundingInput.serialize());\n    }\n    writer.writeBytes(this.fundingSignatures.serialize());\n\n    return writer.toBuffer();\n  }\n\n  /**\n   * Validates correctness of all fields\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // Type is set automatically in class\n\n    // Ensure input serial ids are unique\n    const inputSerialIds = this.fundingInputs.map(\n      (input: FundingInputV0) => input.inputSerialId,\n    );\n\n    if (new Set(inputSerialIds).size !== inputSerialIds.length) {\n      throw new Error('inputSerialIds must be unique');\n    }\n\n    // Ensure funding inputs are segwit\n    this.fundingInputs.forEach((input: FundingInputV0) => input.validate());\n  }\n\n  /**\n   * Converts dlc_close_v0 to JSON\n   */\n  public toJSON(): IDlcCloseV0JSON {\n    return {\n      type: this.type,\n      contractId: this.contractId.toString('hex'),\n      closeSignature: this.closeSignature.toString('hex'),\n      offerPayoutSatoshis: Number(this.offerPayoutSatoshis),\n      acceptPayoutSatoshis: Number(this.acceptPayoutSatoshis),\n      fundInputSerialId: Number(this.fundInputSerialId),\n      fundingInputs: this.fundingInputs.map((input) => input.toJSON()),\n      fundingSignatures: this.fundingSignatures.toJSON(),\n    };\n  }\n}\n\nexport interface IDlcCloseV0JSON {\n  type: number;\n  contractId: string;\n  closeSignature: string;\n  offerPayoutSatoshis: number;\n  acceptPayoutSatoshis: number;\n  fundInputSerialId: number;\n  fundingInputs: IFundingInputV0JSON[];\n  fundingSignatures: IFundingSignaturesV0JSON;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8af4db32a3f62d254b013372a3153335813673b5","contentHash":"16731fe206b596e7597c2bc3279446126b1c5fee6f1553192aa5d8b16f749abd"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignaturesV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignaturesV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":26},"end":{"line":6,"column":54}},"5":{"start":{"line":16,"column":8},"end":{"line":16,"column":45}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":34}},"7":{"start":{"line":24,"column":25},"end":{"line":24,"column":50}},"8":{"start":{"line":25,"column":23},"end":{"line":25,"column":52}},"9":{"start":{"line":26,"column":8},"end":{"line":26,"column":29}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":47}},"11":{"start":{"line":28,"column":29},"end":{"line":28,"column":50}},"12":{"start":{"line":29,"column":8},"end":{"line":37,"column":9}},"13":{"start":{"line":29,"column":21},"end":{"line":29,"column":22}},"14":{"start":{"line":30,"column":39},"end":{"line":30,"column":60}},"15":{"start":{"line":31,"column":36},"end":{"line":31,"column":38}},"16":{"start":{"line":32,"column":12},"end":{"line":35,"column":13}},"17":{"start":{"line":32,"column":25},"end":{"line":32,"column":26}},"18":{"start":{"line":33,"column":32},"end":{"line":33,"column":84}},"19":{"start":{"line":34,"column":16},"end":{"line":34,"column":93}},"20":{"start":{"line":36,"column":12},"end":{"line":36,"column":59}},"21":{"start":{"line":38,"column":8},"end":{"line":38,"column":24}},"22":{"start":{"line":44,"column":8},"end":{"line":49,"column":10}},"23":{"start":{"line":47,"column":16},"end":{"line":47,"column":73}},"24":{"start":{"line":47,"column":55},"end":{"line":47,"column":71}},"25":{"start":{"line":55,"column":23},"end":{"line":55,"column":49}},"26":{"start":{"line":56,"column":8},"end":{"line":56,"column":39}},"27":{"start":{"line":57,"column":27},"end":{"line":57,"column":53}},"28":{"start":{"line":58,"column":8},"end":{"line":58,"column":62}},"29":{"start":{"line":59,"column":8},"end":{"line":64,"column":9}},"30":{"start":{"line":60,"column":12},"end":{"line":60,"column":61}},"31":{"start":{"line":61,"column":12},"end":{"line":63,"column":13}},"32":{"start":{"line":62,"column":16},"end":{"line":62,"column":66}},"33":{"start":{"line":65,"column":8},"end":{"line":65,"column":45}},"34":{"start":{"line":66,"column":8},"end":{"line":66,"column":49}},"35":{"start":{"line":67,"column":8},"end":{"line":67,"column":33}},"36":{"start":{"line":70,"column":0},"end":{"line":70,"column":50}},"37":{"start":{"line":71,"column":0},"end":{"line":71,"column":73}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":18},"end":{"line":18,"column":5}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":28},"end":{"line":39,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":43,"column":4},"end":{"line":43,"column":5}},"loc":{"start":{"line":43,"column":13},"end":{"line":50,"column":5}},"line":43},"3":{"name":"(anonymous_3)","decl":{"start":{"line":46,"column":54},"end":{"line":46,"column":55}},"loc":{"start":{"line":46,"column":74},"end":{"line":48,"column":13}},"line":46},"4":{"name":"(anonymous_4)","decl":{"start":{"line":47,"column":42},"end":{"line":47,"column":43}},"loc":{"start":{"line":47,"column":55},"end":{"line":47,"column":71}},"line":47},"5":{"name":"(anonymous_5)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":16},"end":{"line":68,"column":5}},"line":54}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":26,"6":26,"7":26,"8":26,"9":26,"10":26,"11":26,"12":26,"13":26,"14":26,"15":26,"16":26,"17":26,"18":52,"19":52,"20":26,"21":26,"22":2,"23":2,"24":4,"25":15,"26":15,"27":15,"28":15,"29":15,"30":15,"31":15,"32":30,"33":15,"34":15,"35":15,"36":1,"37":1},"f":{"0":26,"1":26,"2":2,"3":2,"4":4,"5":15},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignaturesV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignaturesV0.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAE7C,uDAA0E;AAE1E;;;GAGG;AACH,MAAa,mBAAmB;IAAhC;QA4BE;;WAEG;QACI,SAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QAIhC,oBAAe,GAAwB,EAAE,CAAC;IAqCnD,CAAC;IArEC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,eAAe,GAAsB,EAAE,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,OAAO,GAAG,iCAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnD,eAAe,CAAC,IAAI,CAAC,iCAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;aAC5D;YACD,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAChD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;gBAC3D,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QAEtC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAEtD,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;YAClD,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACjD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;gBAC5C,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;aACnD;SACF;QAED,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAvEH,kDAwEC;AAvEe,wBAAI,GAAG,yBAAW,CAAC,mBAAmB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\nimport { IScriptWitnessV0JSON, ScriptWitnessV0 } from './ScriptWitnessV0';\n\n/**\n * FundingSignatures V0 contains signatures of the funding transaction\n * and any necessary information linking the signatures to their inputs.\n */\nexport class FundingSignaturesV0 implements IDlcMessage {\n  public static type = MessageType.FundingSignaturesV0;\n\n  /**\n   * Deserializes an funding_signatures_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): FundingSignaturesV0 {\n    const instance = new FundingSignaturesV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    const numWitnesses = reader.readUInt16BE();\n\n    for (let i = 0; i < numWitnesses; i++) {\n      const numWitnessElements = reader.readUInt16BE();\n      const witnessElements: ScriptWitnessV0[] = [];\n      for (let j = 0; j < numWitnessElements; j++) {\n        const witness = ScriptWitnessV0.getWitness(reader);\n        witnessElements.push(ScriptWitnessV0.deserialize(witness));\n      }\n      instance.witnessElements.push(witnessElements);\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for funding_signatures_v0 message. funding_signatures_v0 = 42776\n   */\n  public type = FundingSignaturesV0.type;\n\n  public length: bigint;\n\n  public witnessElements: ScriptWitnessV0[][] = [];\n\n  /**\n   * Converts funding_signatures_v0 to JSON\n   */\n  public toJSON(): IFundingSignaturesV0JSON {\n    return {\n      type: this.type,\n      witnessElements: this.witnessElements.map((witnessElement) => {\n        return witnessElement.map((witness) => witness.toJSON());\n      }),\n    };\n  }\n\n  /**\n   * Serializes the funding_signatures_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n\n    dataWriter.writeUInt16BE(this.witnessElements.length);\n\n    for (const witnessElements of this.witnessElements) {\n      dataWriter.writeUInt16BE(witnessElements.length);\n      for (const witnessElement of witnessElements) {\n        dataWriter.writeBytes(witnessElement.serialize());\n      }\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IFundingSignaturesV0JSON {\n  type: number;\n  witnessElements: IScriptWitnessV0JSON[][];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"86039076600999dc8c0eae7e3cd7ab281ccd916d","contentHash":"7625ff67a72cc72640644a61b2b310cada8a976e9ae9d868da93a0b513e2145c"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ScriptWitnessV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ScriptWitnessV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":17,"column":25},"end":{"line":17,"column":46}},"4":{"start":{"line":18,"column":23},"end":{"line":18,"column":52}},"5":{"start":{"line":19,"column":8},"end":{"line":19,"column":48}},"6":{"start":{"line":20,"column":8},"end":{"line":20,"column":61}},"7":{"start":{"line":21,"column":8},"end":{"line":21,"column":24}},"8":{"start":{"line":24,"column":23},"end":{"line":24,"column":44}},"9":{"start":{"line":25,"column":21},"end":{"line":25,"column":53}},"10":{"start":{"line":26,"column":23},"end":{"line":26,"column":49}},"11":{"start":{"line":27,"column":8},"end":{"line":27,"column":37}},"12":{"start":{"line":28,"column":8},"end":{"line":28,"column":32}},"13":{"start":{"line":29,"column":8},"end":{"line":29,"column":33}},"14":{"start":{"line":35,"column":8},"end":{"line":37,"column":10}},"15":{"start":{"line":43,"column":23},"end":{"line":43,"column":49}},"16":{"start":{"line":44,"column":8},"end":{"line":44,"column":50}},"17":{"start":{"line":45,"column":8},"end":{"line":45,"column":40}},"18":{"start":{"line":46,"column":8},"end":{"line":46,"column":33}},"19":{"start":{"line":49,"column":0},"end":{"line":49,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":28},"end":{"line":22,"column":5}},"line":16},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":30},"end":{"line":30,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":13},"end":{"line":38,"column":5}},"line":34},"3":{"name":"(anonymous_3)","decl":{"start":{"line":42,"column":4},"end":{"line":42,"column":5}},"loc":{"start":{"line":42,"column":16},"end":{"line":47,"column":5}},"line":42}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":52,"4":52,"5":52,"6":52,"7":52,"8":52,"9":52,"10":52,"11":52,"12":52,"13":52,"14":4,"15":30,"16":30,"17":30,"18":30,"19":1},"f":{"0":52,"1":52,"2":4,"3":30},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ScriptWitnessV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/ScriptWitnessV0.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D;;;;;GAKG;AACH,MAAa,eAAe;IAC1B;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAErD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAoB;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAMD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;SACtC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAElC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACF;AAlDD,0CAkDC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\n/**\n * ScriptWitness is the data for a witness element in a witness stack.\n * An empty witness_stack is an error, as every input must be Segwit.\n * Witness elements should not include their length as part of the witness\n * data.\n */\nexport class ScriptWitnessV0 {\n  /**\n   * Deserializes an script_witness_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): ScriptWitnessV0 {\n    const instance = new ScriptWitnessV0();\n    const reader = new BufferReader(buf);\n\n    instance.length = reader.readUInt16BE();\n    instance.witness = reader.readBytes(instance.length);\n\n    return instance;\n  }\n\n  public static getWitness(reader: BufferReader): Buffer {\n    const length = reader.readUInt16BE();\n    const body = reader.readBytes(Number(length));\n\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(length);\n    writer.writeBytes(body);\n\n    return writer.toBuffer();\n  }\n\n  public length: number;\n\n  public witness: Buffer;\n\n  /**\n   * Converts script_witness_v0 to JSON\n   */\n  public toJSON(): IScriptWitnessV0JSON {\n    return {\n      witness: this.witness.toString('hex'),\n    };\n  }\n\n  /**\n   * Serializes the script_witness_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    writer.writeUInt16BE(this.witness.length);\n    writer.writeBytes(this.witness);\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IScriptWitnessV0JSON {\n  witness: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6e4bb063cfbeeb98f141a47e798403b1d09201ab","contentHash":"7bdd98f376252547d94d05895756f929d9284573cd2d9cb207992250d91a8edb"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcOffer.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcOffer.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":104}},"4":{"start":{"line":7,"column":18},"end":{"line":7,"column":46}},"5":{"start":{"line":8,"column":16},"end":{"line":8,"column":42}},"6":{"start":{"line":9,"column":17},"end":{"line":9,"column":44}},"7":{"start":{"line":10,"column":24},"end":{"line":10,"column":48}},"8":{"start":{"line":11,"column":20},"end":{"line":11,"column":57}},"9":{"start":{"line":12,"column":22},"end":{"line":12,"column":47}},"10":{"start":{"line":13,"column":25},"end":{"line":13,"column":63}},"11":{"start":{"line":14,"column":17},"end":{"line":14,"column":47}},"12":{"start":{"line":15,"column":28},"end":{"line":15,"column":58}},"13":{"start":{"line":16,"column":23},"end":{"line":16,"column":48}},"14":{"start":{"line":17,"column":23},"end":{"line":17,"column":48}},"15":{"start":{"line":18,"column":23},"end":{"line":18,"column":48}},"16":{"start":{"line":19,"column":24},"end":{"line":19,"column":50}},"17":{"start":{"line":20,"column":28},"end":{"line":20,"column":58}},"18":{"start":{"line":21,"column":0},"end":{"line":21,"column":39}},"19":{"start":{"line":24,"column":23},"end":{"line":24,"column":52}},"20":{"start":{"line":25,"column":21},"end":{"line":25,"column":50}},"21":{"start":{"line":26,"column":8},"end":{"line":31,"column":9}},"22":{"start":{"line":28,"column":16},"end":{"line":28,"column":51}},"23":{"start":{"line":30,"column":16},"end":{"line":30,"column":77}},"24":{"start":{"line":34,"column":0},"end":{"line":34,"column":28}},"25":{"start":{"line":42,"column":8},"end":{"line":42,"column":28}},"26":{"start":{"line":46,"column":8},"end":{"line":46,"column":36}},"27":{"start":{"line":47,"column":8},"end":{"line":47,"column":32}},"28":{"start":{"line":54,"column":25},"end":{"line":54,"column":41}},"29":{"start":{"line":55,"column":23},"end":{"line":55,"column":52}},"30":{"start":{"line":56,"column":8},"end":{"line":56,"column":30}},"31":{"start":{"line":57,"column":8},"end":{"line":57,"column":53}},"32":{"start":{"line":58,"column":8},"end":{"line":58,"column":50}},"33":{"start":{"line":59,"column":8},"end":{"line":59,"column":102}},"34":{"start":{"line":60,"column":8},"end":{"line":60,"column":54}},"35":{"start":{"line":61,"column":29},"end":{"line":61,"column":50}},"36":{"start":{"line":62,"column":8},"end":{"line":62,"column":60}},"37":{"start":{"line":63,"column":8},"end":{"line":63,"column":56}},"38":{"start":{"line":64,"column":8},"end":{"line":64,"column":65}},"39":{"start":{"line":65,"column":33},"end":{"line":65,"column":54}},"40":{"start":{"line":66,"column":8},"end":{"line":68,"column":9}},"41":{"start":{"line":66,"column":21},"end":{"line":66,"column":22}},"42":{"start":{"line":67,"column":12},"end":{"line":67,"column":111}},"43":{"start":{"line":69,"column":29},"end":{"line":69,"column":50}},"44":{"start":{"line":70,"column":8},"end":{"line":70,"column":60}},"45":{"start":{"line":71,"column":8},"end":{"line":71,"column":56}},"46":{"start":{"line":72,"column":8},"end":{"line":72,"column":60}},"47":{"start":{"line":73,"column":8},"end":{"line":73,"column":54}},"48":{"start":{"line":74,"column":8},"end":{"line":74,"column":53}},"49":{"start":{"line":75,"column":8},"end":{"line":75,"column":56}},"50":{"start":{"line":76,"column":8},"end":{"line":99,"column":9}},"51":{"start":{"line":77,"column":24},"end":{"line":77,"column":52}},"52":{"start":{"line":78,"column":30},"end":{"line":78,"column":59}},"53":{"start":{"line":79,"column":29},"end":{"line":79,"column":76}},"54":{"start":{"line":80,"column":12},"end":{"line":98,"column":13}},"55":{"start":{"line":82,"column":20},"end":{"line":82,"column":89}},"56":{"start":{"line":83,"column":20},"end":{"line":83,"column":26}},"57":{"start":{"line":85,"column":20},"end":{"line":85,"column":86}},"58":{"start":{"line":86,"column":20},"end":{"line":86,"column":26}},"59":{"start":{"line":88,"column":20},"end":{"line":88,"column":99}},"60":{"start":{"line":89,"column":20},"end":{"line":89,"column":26}},"61":{"start":{"line":91,"column":20},"end":{"line":93,"column":21}},"62":{"start":{"line":92,"column":24},"end":{"line":92,"column":57}},"63":{"start":{"line":94,"column":20},"end":{"line":94,"column":109}},"64":{"start":{"line":95,"column":20},"end":{"line":95,"column":26}},"65":{"start":{"line":97,"column":20},"end":{"line":97,"column":26}},"66":{"start":{"line":100,"column":8},"end":{"line":100,"column":24}},"67":{"start":{"line":108,"column":27},"end":{"line":110,"column":21}},"68":{"start":{"line":111,"column":31},"end":{"line":111,"column":92}},"69":{"start":{"line":112,"column":30},"end":{"line":112,"column":95}},"70":{"start":{"line":113,"column":30},"end":{"line":113,"column":95}},"71":{"start":{"line":114,"column":8},"end":{"line":118,"column":10}},"72":{"start":{"line":130,"column":8},"end":{"line":135,"column":9}},"73":{"start":{"line":131,"column":12},"end":{"line":131,"column":69}},"74":{"start":{"line":134,"column":12},"end":{"line":134,"column":61}},"75":{"start":{"line":136,"column":8},"end":{"line":141,"column":9}},"76":{"start":{"line":137,"column":12},"end":{"line":137,"column":69}},"77":{"start":{"line":140,"column":12},"end":{"line":140,"column":61}},"78":{"start":{"line":144,"column":8},"end":{"line":151,"column":9}},"79":{"start":{"line":145,"column":12},"end":{"line":147,"column":13}},"80":{"start":{"line":146,"column":16},"end":{"line":146,"column":78}},"81":{"start":{"line":150,"column":12},"end":{"line":150,"column":74}},"82":{"start":{"line":153,"column":8},"end":{"line":155,"column":9}},"83":{"start":{"line":154,"column":12},"end":{"line":154,"column":95}},"84":{"start":{"line":156,"column":8},"end":{"line":158,"column":9}},"85":{"start":{"line":157,"column":12},"end":{"line":157,"column":79}},"86":{"start":{"line":159,"column":8},"end":{"line":161,"column":9}},"87":{"start":{"line":160,"column":12},"end":{"line":160,"column":82}},"88":{"start":{"line":166,"column":8},"end":{"line":171,"column":9}},"89":{"start":{"line":170,"column":12},"end":{"line":170,"column":84}},"90":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"91":{"start":{"line":174,"column":12},"end":{"line":174,"column":76}},"92":{"start":{"line":177,"column":31},"end":{"line":177,"column":85}},"93":{"start":{"line":177,"column":65},"end":{"line":177,"column":84}},"94":{"start":{"line":178,"column":8},"end":{"line":180,"column":9}},"95":{"start":{"line":179,"column":12},"end":{"line":179,"column":61}},"96":{"start":{"line":182,"column":8},"end":{"line":184,"column":9}},"97":{"start":{"line":183,"column":12},"end":{"line":183,"column":87}},"98":{"start":{"line":186,"column":8},"end":{"line":186,"column":37}},"99":{"start":{"line":188,"column":8},"end":{"line":190,"column":9}},"100":{"start":{"line":189,"column":12},"end":{"line":189,"column":86}},"101":{"start":{"line":192,"column":30},"end":{"line":195,"column":21}},"102":{"start":{"line":193,"column":26},"end":{"line":193,"column":38}},"103":{"start":{"line":194,"column":12},"end":{"line":194,"column":75}},"104":{"start":{"line":196,"column":8},"end":{"line":198,"column":9}},"105":{"start":{"line":197,"column":12},"end":{"line":197,"column":90}},"106":{"start":{"line":204,"column":21},"end":{"line":204,"column":23}},"107":{"start":{"line":205,"column":8},"end":{"line":206,"column":46}},"108":{"start":{"line":206,"column":12},"end":{"line":206,"column":46}},"109":{"start":{"line":207,"column":8},"end":{"line":208,"column":45}},"110":{"start":{"line":208,"column":12},"end":{"line":208,"column":45}},"111":{"start":{"line":209,"column":8},"end":{"line":210,"column":50}},"112":{"start":{"line":210,"column":12},"end":{"line":210,"column":50}},"113":{"start":{"line":211,"column":8},"end":{"line":212,"column":94}},"114":{"start":{"line":212,"column":12},"end":{"line":212,"column":94}},"115":{"start":{"line":212,"column":61},"end":{"line":212,"column":92}},"116":{"start":{"line":213,"column":8},"end":{"line":230,"column":10}},"117":{"start":{"line":222,"column":61},"end":{"line":222,"column":75}},"118":{"start":{"line":236,"column":23},"end":{"line":236,"column":49}},"119":{"start":{"line":237,"column":8},"end":{"line":237,"column":40}},"120":{"start":{"line":238,"column":8},"end":{"line":238,"column":46}},"121":{"start":{"line":239,"column":8},"end":{"line":239,"column":42}},"122":{"start":{"line":240,"column":8},"end":{"line":240,"column":57}},"123":{"start":{"line":241,"column":8},"end":{"line":241,"column":46}},"124":{"start":{"line":242,"column":8},"end":{"line":242,"column":52}},"125":{"start":{"line":243,"column":8},"end":{"line":243,"column":42}},"126":{"start":{"line":244,"column":8},"end":{"line":244,"column":50}},"127":{"start":{"line":245,"column":8},"end":{"line":245,"column":59}},"128":{"start":{"line":246,"column":8},"end":{"line":246,"column":56}},"129":{"start":{"line":247,"column":8},"end":{"line":249,"column":9}},"130":{"start":{"line":248,"column":12},"end":{"line":248,"column":56}},"131":{"start":{"line":250,"column":8},"end":{"line":250,"column":52}},"132":{"start":{"line":251,"column":8},"end":{"line":251,"column":42}},"133":{"start":{"line":252,"column":8},"end":{"line":252,"column":50}},"134":{"start":{"line":253,"column":8},"end":{"line":253,"column":54}},"135":{"start":{"line":254,"column":8},"end":{"line":254,"column":48}},"136":{"start":{"line":255,"column":8},"end":{"line":255,"column":47}},"137":{"start":{"line":256,"column":8},"end":{"line":256,"column":50}},"138":{"start":{"line":257,"column":8},"end":{"line":258,"column":57}},"139":{"start":{"line":258,"column":12},"end":{"line":258,"column":57}},"140":{"start":{"line":259,"column":8},"end":{"line":260,"column":56}},"141":{"start":{"line":260,"column":12},"end":{"line":260,"column":56}},"142":{"start":{"line":261,"column":8},"end":{"line":262,"column":61}},"143":{"start":{"line":262,"column":12},"end":{"line":262,"column":61}},"144":{"start":{"line":263,"column":8},"end":{"line":264,"column":105}},"145":{"start":{"line":264,"column":12},"end":{"line":264,"column":105}},"146":{"start":{"line":264,"column":61},"end":{"line":264,"column":103}},"147":{"start":{"line":265,"column":8},"end":{"line":265,"column":33}},"148":{"start":{"line":268,"column":0},"end":{"line":268,"column":32}},"149":{"start":{"line":269,"column":0},"end":{"line":269,"column":55}},"150":{"start":{"line":272,"column":8},"end":{"line":272,"column":25}},"151":{"start":{"line":279,"column":8},"end":{"line":279,"column":32}},"152":{"start":{"line":286,"column":8},"end":{"line":286,"column":27}},"153":{"start":{"line":293,"column":23},"end":{"line":293,"column":49}},"154":{"start":{"line":295,"column":8},"end":{"line":295,"column":48}},"155":{"start":{"line":297,"column":8},"end":{"line":302,"column":11}},"156":{"start":{"line":298,"column":36},"end":{"line":298,"column":53}},"157":{"start":{"line":300,"column":12},"end":{"line":300,"column":56}},"158":{"start":{"line":301,"column":12},"end":{"line":301,"column":47}},"159":{"start":{"line":303,"column":8},"end":{"line":303,"column":33}},"160":{"start":{"line":311,"column":23},"end":{"line":311,"column":52}},"161":{"start":{"line":312,"column":26},"end":{"line":312,"column":49}},"162":{"start":{"line":313,"column":28},"end":{"line":313,"column":48}},"163":{"start":{"line":314,"column":8},"end":{"line":320,"column":9}},"164":{"start":{"line":314,"column":21},"end":{"line":314,"column":22}},"165":{"start":{"line":316,"column":32},"end":{"line":316,"column":52}},"166":{"start":{"line":317,"column":29},"end":{"line":317,"column":66}},"167":{"start":{"line":318,"column":26},"end":{"line":318,"column":56}},"168":{"start":{"line":319,"column":12},"end":{"line":319,"column":38}},"169":{"start":{"line":321,"column":8},"end":{"line":321,"column":25}},"170":{"start":{"line":324,"column":0},"end":{"line":324,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":28},"end":{"line":32,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":4},"end":{"line":41,"column":5}},"loc":{"start":{"line":41,"column":18},"end":{"line":48,"column":5}},"line":41},"3":{"name":"(anonymous_3)","decl":{"start":{"line":53,"column":4},"end":{"line":53,"column":5}},"loc":{"start":{"line":53,"column":28},"end":{"line":101,"column":5}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":107,"column":4},"end":{"line":107,"column":5}},"loc":{"start":{"line":107,"column":26},"end":{"line":119,"column":5}},"line":107},"5":{"name":"(anonymous_5)","decl":{"start":{"line":125,"column":4},"end":{"line":125,"column":5}},"loc":{"start":{"line":125,"column":15},"end":{"line":199,"column":5}},"line":125},"6":{"name":"(anonymous_6)","decl":{"start":{"line":177,"column":54},"end":{"line":177,"column":55}},"loc":{"start":{"line":177,"column":65},"end":{"line":177,"column":84}},"line":177},"7":{"name":"(anonymous_7)","decl":{"start":{"line":192,"column":56},"end":{"line":192,"column":57}},"loc":{"start":{"line":192,"column":79},"end":{"line":195,"column":9}},"line":192},"8":{"name":"(anonymous_8)","decl":{"start":{"line":203,"column":4},"end":{"line":203,"column":5}},"loc":{"start":{"line":203,"column":13},"end":{"line":231,"column":5}},"line":203},"9":{"name":"(anonymous_9)","decl":{"start":{"line":212,"column":44},"end":{"line":212,"column":45}},"loc":{"start":{"line":212,"column":61},"end":{"line":212,"column":92}},"line":212},"10":{"name":"(anonymous_10)","decl":{"start":{"line":222,"column":50},"end":{"line":222,"column":51}},"loc":{"start":{"line":222,"column":61},"end":{"line":222,"column":75}},"line":222},"11":{"name":"(anonymous_11)","decl":{"start":{"line":235,"column":4},"end":{"line":235,"column":5}},"loc":{"start":{"line":235,"column":16},"end":{"line":266,"column":5}},"line":235},"12":{"name":"(anonymous_12)","decl":{"start":{"line":264,"column":44},"end":{"line":264,"column":45}},"loc":{"start":{"line":264,"column":61},"end":{"line":264,"column":103}},"line":264},"13":{"name":"(anonymous_13)","decl":{"start":{"line":271,"column":4},"end":{"line":271,"column":5}},"loc":{"start":{"line":271,"column":18},"end":{"line":273,"column":5}},"line":271},"14":{"name":"(anonymous_14)","decl":{"start":{"line":278,"column":4},"end":{"line":278,"column":5}},"loc":{"start":{"line":278,"column":20},"end":{"line":280,"column":5}},"line":278},"15":{"name":"(anonymous_15)","decl":{"start":{"line":285,"column":4},"end":{"line":285,"column":5}},"loc":{"start":{"line":285,"column":16},"end":{"line":287,"column":5}},"line":285},"16":{"name":"(anonymous_16)","decl":{"start":{"line":292,"column":4},"end":{"line":292,"column":5}},"loc":{"start":{"line":292,"column":16},"end":{"line":304,"column":5}},"line":292},"17":{"name":"(anonymous_17)","decl":{"start":{"line":297,"column":28},"end":{"line":297,"column":29}},"loc":{"start":{"line":297,"column":39},"end":{"line":302,"column":9}},"line":297},"18":{"name":"(anonymous_18)","decl":{"start":{"line":310,"column":4},"end":{"line":310,"column":5}},"loc":{"start":{"line":310,"column":28},"end":{"line":322,"column":5}},"line":310}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":26,"column":8},"end":{"line":31,"column":9}},"type":"switch","locations":[{"start":{"line":27,"column":12},"end":{"line":28,"column":51}},{"start":{"line":29,"column":12},"end":{"line":30,"column":77}}],"line":26},"4":{"loc":{"start":{"line":80,"column":12},"end":{"line":98,"column":13}},"type":"switch","locations":[{"start":{"line":81,"column":16},"end":{"line":83,"column":26}},{"start":{"line":84,"column":16},"end":{"line":86,"column":26}},{"start":{"line":87,"column":16},"end":{"line":89,"column":26}},{"start":{"line":90,"column":16},"end":{"line":95,"column":26}},{"start":{"line":96,"column":16},"end":{"line":97,"column":26}}],"line":80},"5":{"loc":{"start":{"line":91,"column":20},"end":{"line":93,"column":21}},"type":"if","locations":[{"start":{"line":91,"column":20},"end":{"line":93,"column":21}},{"start":{"line":91,"column":20},"end":{"line":93,"column":21}}],"line":91},"6":{"loc":{"start":{"line":144,"column":8},"end":{"line":151,"column":9}},"type":"if","locations":[{"start":{"line":144,"column":8},"end":{"line":151,"column":9}},{"start":{"line":144,"column":8},"end":{"line":151,"column":9}}],"line":144},"7":{"loc":{"start":{"line":145,"column":12},"end":{"line":147,"column":13}},"type":"if","locations":[{"start":{"line":145,"column":12},"end":{"line":147,"column":13}},{"start":{"line":145,"column":12},"end":{"line":147,"column":13}}],"line":145},"8":{"loc":{"start":{"line":145,"column":16},"end":{"line":145,"column":78}},"type":"binary-expr","locations":[{"start":{"line":145,"column":16},"end":{"line":145,"column":45}},{"start":{"line":145,"column":49},"end":{"line":145,"column":78}}],"line":145},"9":{"loc":{"start":{"line":153,"column":8},"end":{"line":155,"column":9}},"type":"if","locations":[{"start":{"line":153,"column":8},"end":{"line":155,"column":9}},{"start":{"line":153,"column":8},"end":{"line":155,"column":9}}],"line":153},"10":{"loc":{"start":{"line":156,"column":8},"end":{"line":158,"column":9}},"type":"if","locations":[{"start":{"line":156,"column":8},"end":{"line":158,"column":9}},{"start":{"line":156,"column":8},"end":{"line":158,"column":9}}],"line":156},"11":{"loc":{"start":{"line":159,"column":8},"end":{"line":161,"column":9}},"type":"if","locations":[{"start":{"line":159,"column":8},"end":{"line":161,"column":9}},{"start":{"line":159,"column":8},"end":{"line":161,"column":9}}],"line":159},"12":{"loc":{"start":{"line":166,"column":8},"end":{"line":171,"column":9}},"type":"if","locations":[{"start":{"line":166,"column":8},"end":{"line":171,"column":9}},{"start":{"line":166,"column":8},"end":{"line":171,"column":9}}],"line":166},"13":{"loc":{"start":{"line":166,"column":14},"end":{"line":169,"column":66}},"type":"binary-expr","locations":[{"start":{"line":166,"column":15},"end":{"line":166,"column":60}},{"start":{"line":167,"column":12},"end":{"line":167,"column":60}},{"start":{"line":168,"column":13},"end":{"line":168,"column":59}},{"start":{"line":169,"column":16},"end":{"line":169,"column":65}}],"line":166},"14":{"loc":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"type":"if","locations":[{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},{"start":{"line":173,"column":8},"end":{"line":175,"column":9}}],"line":173},"15":{"loc":{"start":{"line":178,"column":8},"end":{"line":180,"column":9}},"type":"if","locations":[{"start":{"line":178,"column":8},"end":{"line":180,"column":9}},{"start":{"line":178,"column":8},"end":{"line":180,"column":9}}],"line":178},"16":{"loc":{"start":{"line":182,"column":8},"end":{"line":184,"column":9}},"type":"if","locations":[{"start":{"line":182,"column":8},"end":{"line":184,"column":9}},{"start":{"line":182,"column":8},"end":{"line":184,"column":9}}],"line":182},"17":{"loc":{"start":{"line":188,"column":8},"end":{"line":190,"column":9}},"type":"if","locations":[{"start":{"line":188,"column":8},"end":{"line":190,"column":9}},{"start":{"line":188,"column":8},"end":{"line":190,"column":9}}],"line":188},"18":{"loc":{"start":{"line":196,"column":8},"end":{"line":198,"column":9}},"type":"if","locations":[{"start":{"line":196,"column":8},"end":{"line":198,"column":9}},{"start":{"line":196,"column":8},"end":{"line":198,"column":9}}],"line":196},"19":{"loc":{"start":{"line":205,"column":8},"end":{"line":206,"column":46}},"type":"if","locations":[{"start":{"line":205,"column":8},"end":{"line":206,"column":46}},{"start":{"line":205,"column":8},"end":{"line":206,"column":46}}],"line":205},"20":{"loc":{"start":{"line":207,"column":8},"end":{"line":208,"column":45}},"type":"if","locations":[{"start":{"line":207,"column":8},"end":{"line":208,"column":45}},{"start":{"line":207,"column":8},"end":{"line":208,"column":45}}],"line":207},"21":{"loc":{"start":{"line":209,"column":8},"end":{"line":210,"column":50}},"type":"if","locations":[{"start":{"line":209,"column":8},"end":{"line":210,"column":50}},{"start":{"line":209,"column":8},"end":{"line":210,"column":50}}],"line":209},"22":{"loc":{"start":{"line":211,"column":8},"end":{"line":212,"column":94}},"type":"if","locations":[{"start":{"line":211,"column":8},"end":{"line":212,"column":94}},{"start":{"line":211,"column":8},"end":{"line":212,"column":94}}],"line":211},"23":{"loc":{"start":{"line":257,"column":8},"end":{"line":258,"column":57}},"type":"if","locations":[{"start":{"line":257,"column":8},"end":{"line":258,"column":57}},{"start":{"line":257,"column":8},"end":{"line":258,"column":57}}],"line":257},"24":{"loc":{"start":{"line":259,"column":8},"end":{"line":260,"column":56}},"type":"if","locations":[{"start":{"line":259,"column":8},"end":{"line":260,"column":56}},{"start":{"line":259,"column":8},"end":{"line":260,"column":56}}],"line":259},"25":{"loc":{"start":{"line":261,"column":8},"end":{"line":262,"column":61}},"type":"if","locations":[{"start":{"line":261,"column":8},"end":{"line":262,"column":61}},{"start":{"line":261,"column":8},"end":{"line":262,"column":61}}],"line":261},"26":{"loc":{"start":{"line":263,"column":8},"end":{"line":264,"column":105}},"type":"if","locations":[{"start":{"line":263,"column":8},"end":{"line":264,"column":105}},{"start":{"line":263,"column":8},"end":{"line":264,"column":105}}],"line":263}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":4,"20":4,"21":4,"22":3,"23":1,"24":1,"25":36,"26":36,"27":36,"28":10,"29":10,"30":10,"31":10,"32":10,"33":10,"34":10,"35":10,"36":10,"37":10,"38":10,"39":10,"40":10,"41":10,"42":10,"43":10,"44":10,"45":10,"46":10,"47":10,"48":10,"49":10,"50":10,"51":5,"52":5,"53":5,"54":5,"55":1,"56":1,"57":1,"58":1,"59":2,"60":2,"61":1,"62":1,"63":1,"64":1,"65":0,"66":10,"67":1,"68":1,"69":1,"70":1,"71":1,"72":18,"73":18,"74":1,"75":17,"76":17,"77":1,"78":16,"79":15,"80":1,"81":1,"82":14,"83":1,"84":13,"85":1,"86":12,"87":1,"88":11,"89":1,"90":10,"91":2,"92":8,"93":9,"94":8,"95":1,"96":7,"97":1,"98":6,"99":6,"100":3,"101":3,"102":3,"103":3,"104":3,"105":0,"106":3,"107":3,"108":2,"109":3,"110":2,"111":3,"112":2,"113":3,"114":2,"115":2,"116":3,"117":3,"118":12,"119":12,"120":12,"121":12,"122":12,"123":12,"124":12,"125":12,"126":12,"127":12,"128":12,"129":12,"130":12,"131":12,"132":12,"133":12,"134":12,"135":12,"136":12,"137":12,"138":12,"139":1,"140":12,"141":1,"142":12,"143":3,"144":12,"145":1,"146":1,"147":12,"148":1,"149":1,"150":2,"151":4,"152":0,"153":3,"154":3,"155":3,"156":6,"157":6,"158":6,"159":3,"160":1,"161":1,"162":1,"163":1,"164":1,"165":2,"166":2,"167":2,"168":2,"169":1,"170":1},"f":{"0":1,"1":4,"2":36,"3":10,"4":1,"5":18,"6":9,"7":3,"8":3,"9":2,"10":3,"11":12,"12":1,"13":2,"14":4,"15":0,"16":3,"17":6,"18":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[3,1],"4":[1,1,2,1,0],"5":[1,0],"6":[15,1],"7":[1,14],"8":[15,15],"9":[1,13],"10":[1,12],"11":[1,11],"12":[1,10],"13":[11,10,2,1],"14":[2,8],"15":[1,7],"16":[1,6],"17":[3,3],"18":[0,3],"19":[2,1],"20":[2,1],"21":[2,1],"22":[2,1],"23":[1,11],"24":[1,11],"25":[3,9],"26":[1,11]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcOffer.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcOffer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Script } from '@node-dlc/bitcoin';\nimport { BufferReader, BufferWriter } from '@node-dlc/bufio';\nimport { hash160 } from '@node-dlc/crypto';\nimport { BitcoinNetwork } from 'bitcoin-networks';\nimport { address } from 'bitcoinjs-lib';\nimport secp256k1 from 'secp256k1';\n\nimport { MessageType } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport { BatchFundingGroup, IBatchFundingGroupJSON } from './BatchFundingGroup';\nimport {\n  ContractInfo,\n  IContractInfoV0JSON,\n  IContractInfoV1JSON,\n} from './ContractInfo';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  FundingInput,\n  FundingInputV0,\n  IFundingInputV0JSON,\n} from './FundingInput';\nimport {\n  IOrderIrcInfoJSON,\n  OrderIrcInfo,\n  OrderIrcInfoV0,\n} from './OrderIrcInfo';\nimport {\n  IOrderMetadataJSON,\n  OrderMetadata,\n  OrderMetadataV0,\n} from './OrderMetadata';\nimport { IOrderPositionInfoJSON, OrderPositionInfo } from './OrderPositionInfo';\n\nexport const LOCKTIME_THRESHOLD = 500000000;\nexport abstract class DlcOffer {\n  public static deserialize(buf: Buffer): DlcOfferV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcOfferV0:\n        return DlcOfferV0.deserialize(buf);\n      default:\n        throw new Error(`DLC Offer message type must be DlcOfferV0`); // This is a temporary measure while protocol is being developed\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract getAddresses(network: BitcoinNetwork): IDlcOfferV0Addresses;\n\n  public abstract validate(): void;\n\n  public abstract toJSON(): IDlcOfferV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcOffer message contains information about a node and indicates its\n * desire to enter into a new contract. This is the first step toward\n * creating the funding transaction and CETs.\n */\nexport class DlcOfferV0 extends DlcOffer implements IDlcMessage {\n  public static type = MessageType.DlcOfferV0;\n\n  /**\n   * Deserializes an offer_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcOfferV0 {\n    const instance = new DlcOfferV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    instance.contractFlags = reader.readBytes(1);\n    instance.chainHash = reader.readBytes(32);\n    instance.contractInfo = ContractInfo.deserialize(getTlv(reader));\n    instance.fundingPubKey = reader.readBytes(33);\n    const payoutSPKLen = reader.readUInt16BE();\n    instance.payoutSPK = reader.readBytes(payoutSPKLen);\n    instance.payoutSerialId = reader.readUInt64BE();\n    instance.offerCollateralSatoshis = reader.readUInt64BE();\n    const fundingInputsLen = reader.readUInt16BE();\n\n    for (let i = 0; i < fundingInputsLen; i++) {\n      instance.fundingInputs.push(FundingInput.deserialize(getTlv(reader)));\n    }\n\n    const changeSPKLen = reader.readUInt16BE();\n    instance.changeSPK = reader.readBytes(changeSPKLen);\n    instance.changeSerialId = reader.readUInt64BE();\n    instance.fundOutputSerialId = reader.readUInt64BE();\n    instance.feeRatePerVb = reader.readUInt64BE();\n    instance.cetLocktime = reader.readUInt32BE();\n    instance.refundLocktime = reader.readUInt32BE();\n\n    while (!reader.eof) {\n      const buf = getTlv(reader);\n      const tlvReader = new BufferReader(buf);\n      const { type } = deserializeTlv(tlvReader);\n\n      switch (Number(type)) {\n        case MessageType.OrderMetadataV0:\n          instance.metadata = OrderMetadataV0.deserialize(buf);\n          break;\n        case MessageType.OrderIrcInfoV0:\n          instance.ircInfo = OrderIrcInfoV0.deserialize(buf);\n          break;\n        case MessageType.OrderPositionInfoV0:\n          instance.positionInfo = OrderPositionInfo.deserialize(buf);\n          break;\n        case MessageType.BatchFundingGroup:\n          if (!instance.batchFundingGroups) {\n            instance.batchFundingGroups = [];\n          }\n          instance.batchFundingGroups.push(BatchFundingGroup.deserialize(buf));\n          break;\n        default:\n          break;\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for offer_dlc_v0 message. offer_dlc_v0 = 42778\n   */\n  public type = DlcOfferV0.type;\n\n  public contractFlags: Buffer;\n\n  public chainHash: Buffer;\n\n  public contractInfo: ContractInfo;\n\n  public fundingPubKey: Buffer;\n\n  public payoutSPK: Buffer;\n\n  public payoutSerialId: bigint;\n\n  public offerCollateralSatoshis: bigint;\n\n  public fundingInputs: FundingInput[] = [];\n\n  public changeSPK: Buffer;\n\n  public changeSerialId: bigint;\n\n  public fundOutputSerialId: bigint;\n\n  public feeRatePerVb: bigint;\n\n  public cetLocktime: number;\n\n  public refundLocktime: number;\n\n  public metadata?: OrderMetadata;\n\n  public ircInfo?: OrderIrcInfo;\n\n  public positionInfo?: OrderPositionInfo;\n\n  public batchFundingGroups?: BatchFundingGroup[];\n\n  /**\n   * Get funding, change and payout address from DlcOffer\n   * @param network Bitcoin Network\n   * @returns {IDlcOfferV0Addresses}\n   */\n  public getAddresses(network: BitcoinNetwork): IDlcOfferV0Addresses {\n    const fundingSPK = Script.p2wpkhLock(hash160(this.fundingPubKey))\n      .serialize()\n      .slice(1);\n    const fundingAddress = address.fromOutputScript(fundingSPK, network);\n    const changeAddress = address.fromOutputScript(this.changeSPK, network);\n    const payoutAddress = address.fromOutputScript(this.payoutSPK, network);\n\n    return {\n      fundingAddress,\n      changeAddress,\n      payoutAddress,\n    };\n  }\n\n  /**\n   * Validates correctness of all fields in DlcOffer\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Protocol.md#the-offer_dlc-message\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // 1. Type is set automatically in class\n    // 2. contract_flags field is ignored\n    // 3. chain_hash must be validated as input by end user\n    // 4. payout_spk and change_spk must be standard script pubkeys\n\n    try {\n      address.fromOutputScript(this.payoutSPK);\n    } catch (e) {\n      throw new Error('DlcOffer payoutSPK is invalid');\n    }\n\n    try {\n      address.fromOutputScript(this.changeSPK);\n    } catch (e) {\n      throw new Error('DlcOffer changeSPK is invalid');\n    }\n\n    // 5. funding_pubkey must be a valid secp256k1 pubkey in compressed format\n    // https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki#background-on-ecdsa-signatures\n\n    if (secp256k1.publicKeyVerify(Buffer.from(this.fundingPubKey))) {\n      if (this.fundingPubKey[0] != 0x02 && this.fundingPubKey[0] != 0x03) {\n        throw new Error('fundingPubKey must be in compressed format');\n      }\n    } else {\n      throw new Error('fundingPubKey is not a valid secp256k1 key');\n    }\n\n    // 6. offer_collateral_satoshis must be greater than or equal to 1000\n    if (this.offerCollateralSatoshis < 1000) {\n      throw new Error(\n        'offer_collateral_satoshis must be greater than or equal to 1000',\n      );\n    }\n\n    if (this.cetLocktime < 0) {\n      throw new Error('cet_locktime must be greater than or equal to 0');\n    }\n\n    if (this.refundLocktime < 0) {\n      throw new Error('refund_locktime must be greater than or equal to 0');\n    }\n\n    // 7. cet_locktime and refund_locktime must either both be unix timestamps, or both be block heights.\n    // https://en.bitcoin.it/wiki/NLockTime\n    // https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki#detailed-specification\n    // https://github.com/bitcoin/bitcoin/blob/master/src/script/script.h#L39\n    if (\n      !(\n        (this.cetLocktime < LOCKTIME_THRESHOLD &&\n          this.refundLocktime < LOCKTIME_THRESHOLD) ||\n        (this.cetLocktime >= LOCKTIME_THRESHOLD &&\n          this.refundLocktime >= LOCKTIME_THRESHOLD)\n      )\n    ) {\n      throw new Error('cetLocktime and refundLocktime must be in same units');\n    }\n\n    // 8. cetLocktime must be less than refundLocktime\n    if (this.cetLocktime >= this.refundLocktime) {\n      throw new Error('cetLocktime must be less than refundLocktime');\n    }\n\n    // 9. inputSerialId must be unique for each input\n\n    const inputSerialIds = this.fundingInputs.map(\n      (input: FundingInputV0) => input.inputSerialId,\n    );\n\n    if (new Set(inputSerialIds).size !== inputSerialIds.length) {\n      throw new Error('inputSerialIds must be unique');\n    }\n\n    // 10. changeSerialId and fundOutputSerialID must be different\n\n    if (this.changeSerialId === this.fundOutputSerialId) {\n      throw new Error(\n        'changeSerialId and fundOutputSerialId must be different',\n      );\n    }\n\n    // validate contractInfo\n    this.contractInfo.validate();\n\n    // totalCollaterial should be > offerCollaterial (logical validation)\n    if (this.contractInfo.totalCollateral <= this.offerCollateralSatoshis) {\n      throw new Error('totalCollateral should be greater than offerCollateral');\n    }\n\n    // validate funding amount\n    const fundingAmount = this.fundingInputs.reduce((acc, fundingInput) => {\n      const input = fundingInput as FundingInputV0;\n      return acc + input.prevTx.outputs[input.prevTxVout].value.sats;\n    }, BigInt(0));\n    if (this.offerCollateralSatoshis >= fundingAmount) {\n      throw new Error(\n        'fundingAmount must be greater than offerCollateralSatoshis',\n      );\n    }\n  }\n\n  /**\n   * Converts dlc_offer_v0 to JSON\n   */\n  public toJSON(): IDlcOfferV0JSON {\n    const tlvs = [];\n\n    if (this.metadata) tlvs.push(this.metadata.toJSON());\n    if (this.ircInfo) tlvs.push(this.ircInfo.toJSON());\n    if (this.positionInfo) tlvs.push(this.positionInfo.toJSON());\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        tlvs.push(fundingInfo.toJSON()),\n      );\n\n    return {\n      type: this.type,\n      contractFlags: this.contractFlags.toString('hex'),\n      chainHash: this.chainHash.toString('hex'),\n      contractInfo: this.contractInfo.toJSON(),\n      fundingPubKey: this.fundingPubKey.toString('hex'),\n      payoutSPK: this.payoutSPK.toString('hex'),\n      payoutSerialId: Number(this.payoutSerialId),\n      offerCollateralSatoshis: Number(this.offerCollateralSatoshis),\n      fundingInputs: this.fundingInputs.map((input) => input.toJSON()),\n      changeSPK: this.changeSPK.toString('hex'),\n      changeSerialId: Number(this.changeSerialId),\n      fundOutputSerialId: Number(this.fundOutputSerialId),\n      feeRatePerVb: Number(this.feeRatePerVb),\n      cetLocktime: this.cetLocktime,\n      refundLocktime: this.refundLocktime,\n      tlvs,\n    };\n  }\n\n  /**\n   * Serializes the offer_dlc_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.contractFlags);\n    writer.writeBytes(this.chainHash);\n    writer.writeBytes(this.contractInfo.serialize());\n    writer.writeBytes(this.fundingPubKey);\n    writer.writeUInt16BE(this.payoutSPK.length);\n    writer.writeBytes(this.payoutSPK);\n    writer.writeUInt64BE(this.payoutSerialId);\n    writer.writeUInt64BE(this.offerCollateralSatoshis);\n    writer.writeUInt16BE(this.fundingInputs.length);\n\n    for (const fundingInput of this.fundingInputs) {\n      writer.writeBytes(fundingInput.serialize());\n    }\n\n    writer.writeUInt16BE(this.changeSPK.length);\n    writer.writeBytes(this.changeSPK);\n    writer.writeUInt64BE(this.changeSerialId);\n    writer.writeUInt64BE(this.fundOutputSerialId);\n    writer.writeUInt64BE(this.feeRatePerVb);\n    writer.writeUInt32BE(this.cetLocktime);\n    writer.writeUInt32BE(this.refundLocktime);\n\n    if (this.metadata) writer.writeBytes(this.metadata.serialize());\n    if (this.ircInfo) writer.writeBytes(this.ircInfo.serialize());\n    if (this.positionInfo) writer.writeBytes(this.positionInfo.serialize());\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        writer.writeBytes(fundingInfo.serialize()),\n      );\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IDlcOfferV0JSON {\n  type: number;\n  contractFlags: string;\n  chainHash: string;\n  contractInfo: IContractInfoV0JSON | IContractInfoV1JSON;\n  fundingPubKey: string;\n  payoutSPK: string;\n  payoutSerialId: number;\n  offerCollateralSatoshis: number;\n  fundingInputs: IFundingInputV0JSON[];\n  changeSPK: string;\n  changeSerialId: number;\n  fundOutputSerialId: number;\n  feeRatePerVb: number;\n  cetLocktime: number;\n  refundLocktime: number;\n  tlvs: (\n    | IOrderMetadataJSON\n    | IOrderIrcInfoJSON\n    | IOrderPositionInfoJSON\n    | IBatchFundingGroupJSON\n  )[];\n}\n\nexport interface IDlcOfferV0Addresses {\n  fundingAddress: string;\n  changeAddress: string;\n  payoutAddress: string;\n}\n\nexport class DlcOfferContainer {\n  private offers: DlcOffer[] = [];\n\n  /**\n   * Adds a DlcOffer to the container.\n   * @param offer The DlcOffer to add.\n   */\n  public addOffer(offer: DlcOffer): void {\n    this.offers.push(offer);\n  }\n\n  /**\n   * Returns all DlcOffers in the container.\n   * @returns An array of DlcOffer instances.\n   */\n  public getOffers(): DlcOffer[] {\n    return this.offers;\n  }\n\n  /**\n   * Serializes all DlcOffers in the container to a Buffer.\n   * @returns A Buffer containing the serialized DlcOffers.\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    // Write the number of offers in the container first.\n    writer.writeBigSize(this.offers.length);\n    // Serialize each offer and write it.\n    this.offers.forEach((offer) => {\n      const serializedOffer = offer.serialize();\n      // Optionally, write the length of the serialized offer for easier deserialization.\n      writer.writeBigSize(serializedOffer.length);\n      writer.writeBytes(serializedOffer);\n    });\n    return writer.toBuffer();\n  }\n\n  /**\n   * Deserializes a Buffer into a DlcOfferContainer with DlcOffers.\n   * @param buf The Buffer to deserialize.\n   * @returns A DlcOfferContainer instance.\n   */\n  public static deserialize(buf: Buffer): DlcOfferContainer {\n    const reader = new BufferReader(buf);\n    const container = new DlcOfferContainer();\n    const offersCount = reader.readBigSize();\n    for (let i = 0; i < offersCount; i++) {\n      // Optionally, read the length of the serialized offer if it was written during serialization.\n      const offerLength = reader.readBigSize();\n      const offerBuf = reader.readBytes(Number(offerLength));\n      const offer = DlcOffer.deserialize(offerBuf); // This needs to be adjusted based on actual implementation.\n      container.addOffer(offer);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0f8b5e3dc6aaa9ada345e033a89ae0037d583d5e","contentHash":"134c7fee6c648acbbf855e4f6bfc48ddd9a1ca645afb7bfcb55a8ada9f52ee09"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderIrcInfo.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderIrcInfo.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":55}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":49}},"6":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":55}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":82}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":36}},"10":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"11":{"start":{"line":30,"column":8},"end":{"line":30,"column":40}},"12":{"start":{"line":37,"column":25},"end":{"line":37,"column":45}},"13":{"start":{"line":38,"column":23},"end":{"line":38,"column":52}},"14":{"start":{"line":39,"column":8},"end":{"line":39,"column":29}},"15":{"start":{"line":40,"column":8},"end":{"line":40,"column":47}},"16":{"start":{"line":41,"column":27},"end":{"line":41,"column":47}},"17":{"start":{"line":42,"column":24},"end":{"line":42,"column":60}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":43}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":47}},"20":{"start":{"line":45,"column":8},"end":{"line":45,"column":24}},"21":{"start":{"line":51,"column":8},"end":{"line":55,"column":10}},"22":{"start":{"line":61,"column":23},"end":{"line":61,"column":49}},"23":{"start":{"line":62,"column":8},"end":{"line":62,"column":39}},"24":{"start":{"line":63,"column":27},"end":{"line":63,"column":53}},"25":{"start":{"line":64,"column":8},"end":{"line":64,"column":50}},"26":{"start":{"line":65,"column":8},"end":{"line":65,"column":54}},"27":{"start":{"line":66,"column":8},"end":{"line":66,"column":43}},"28":{"start":{"line":67,"column":8},"end":{"line":67,"column":45}},"29":{"start":{"line":68,"column":8},"end":{"line":68,"column":49}},"30":{"start":{"line":69,"column":8},"end":{"line":69,"column":33}},"31":{"start":{"line":72,"column":0},"end":{"line":72,"column":40}},"32":{"start":{"line":73,"column":0},"end":{"line":73,"column":63}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":16,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":31,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":28},"end":{"line":46,"column":5}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":50,"column":4},"end":{"line":50,"column":5}},"loc":{"start":{"line":50,"column":13},"end":{"line":56,"column":5}},"line":50},"4":{"name":"(anonymous_4)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":16},"end":{"line":70,"column":5}},"line":60}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":55}},{"start":{"line":13,"column":12},"end":{"line":14,"column":82}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1,"10":4,"11":4,"12":3,"13":3,"14":3,"15":3,"16":3,"17":3,"18":3,"19":3,"20":3,"21":3,"22":3,"23":3,"24":3,"25":3,"26":3,"27":3,"28":3,"29":3,"30":3,"31":1,"32":1},"f":{"0":0,"1":4,"2":3,"3":3,"4":3},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderIrcInfo.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderIrcInfo.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C,MAAsB,YAAY;IACzB,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,cAAc;gBAC7B,OAAO,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACzC;gBACE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACrE;IACH,CAAC;CAOF;AAnBD,oCAmBC;AAED;;;;GAIG;AACH,MAAa,cAAe,SAAQ,YAAY;IAAhD;;QAuBE;;WAEG;QACI,SAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAoCpC,CAAC;IA3DC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEvC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEnC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAaD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA7DH,wCA8DC;AA7De,mBAAI,GAAG,yBAAW,CAAC,cAAc,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class OrderIrcInfo {\n  public static deserialize(buf: Buffer): OrderIrcInfo {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.OrderIrcInfoV0:\n        return OrderIrcInfoV0.deserialize(buf);\n      default:\n        throw new Error(`Order irc info TLV type must be OrderIrcInfoV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract toJSON(): IOrderIrcInfoJSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * OrderMetadata message contains information about a node and indicates its\n * desire to enter into a new contract. This is the first step toward\n * order negotiation.\n */\nexport class OrderIrcInfoV0 extends OrderIrcInfo implements IDlcMessage {\n  public static type = MessageType.OrderIrcInfoV0;\n\n  /**\n   * Deserializes an offer_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderIrcInfoV0 {\n    const instance = new OrderIrcInfoV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    const nickLength = reader.readBigSize();\n    const nickBuf = reader.readBytes(Number(nickLength));\n    instance.nick = nickBuf.toString();\n\n    instance.pubKey = reader.readBytes(33);\n\n    return instance;\n  }\n\n  /**\n   * The type for order_metadata_v0 message. order_metadata_v0 = 62774\n   */\n  public type = OrderIrcInfoV0.type;\n\n  public length: bigint;\n\n  public nick: string;\n\n  public pubKey: Buffer;\n\n  /**\n   * Converts order_metadata_v0 to JSON\n   */\n  public toJSON(): IOrderIrcInfoJSON {\n    return {\n      type: this.type,\n      nick: this.nick,\n      pubKey: this.pubKey.toString('hex'),\n    };\n  }\n\n  /**\n   * Serializes the oracle_event message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.nick.length);\n    dataWriter.writeBytes(Buffer.from(this.nick));\n    dataWriter.writeBytes(this.pubKey);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderIrcInfoJSON {\n  type: number;\n  nick: string;\n  pubKey: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"056f497606b4b0e1a73960f6ce163ef336b0877e","contentHash":"48145cc847b82b905f61f080e43bb9e140c12d5386dff98e802c628cdb7d49d4"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderMetadata.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderMetadata.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":57}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":49}},"6":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":56}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":83}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":38}},"10":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"11":{"start":{"line":30,"column":8},"end":{"line":30,"column":41}},"12":{"start":{"line":34,"column":8},"end":{"line":34,"column":27}},"13":{"start":{"line":38,"column":8},"end":{"line":38,"column":26}},"14":{"start":{"line":45,"column":25},"end":{"line":45,"column":46}},"15":{"start":{"line":46,"column":23},"end":{"line":46,"column":52}},"16":{"start":{"line":47,"column":8},"end":{"line":47,"column":29}},"17":{"start":{"line":48,"column":8},"end":{"line":48,"column":47}},"18":{"start":{"line":49,"column":30},"end":{"line":49,"column":50}},"19":{"start":{"line":50,"column":27},"end":{"line":50,"column":66}},"20":{"start":{"line":51,"column":8},"end":{"line":51,"column":49}},"21":{"start":{"line":52,"column":8},"end":{"line":55,"column":9}},"22":{"start":{"line":53,"column":12},"end":{"line":53,"column":55}},"23":{"start":{"line":54,"column":12},"end":{"line":54,"column":54}},"24":{"start":{"line":56,"column":8},"end":{"line":56,"column":24}},"25":{"start":{"line":62,"column":8},"end":{"line":67,"column":10}},"26":{"start":{"line":73,"column":23},"end":{"line":73,"column":49}},"27":{"start":{"line":74,"column":8},"end":{"line":74,"column":39}},"28":{"start":{"line":75,"column":27},"end":{"line":75,"column":53}},"29":{"start":{"line":76,"column":8},"end":{"line":76,"column":53}},"30":{"start":{"line":77,"column":8},"end":{"line":77,"column":57}},"31":{"start":{"line":78,"column":8},"end":{"line":78,"column":49}},"32":{"start":{"line":79,"column":8},"end":{"line":79,"column":48}},"33":{"start":{"line":80,"column":8},"end":{"line":80,"column":45}},"34":{"start":{"line":81,"column":8},"end":{"line":81,"column":49}},"35":{"start":{"line":82,"column":8},"end":{"line":82,"column":33}},"36":{"start":{"line":85,"column":0},"end":{"line":85,"column":42}},"37":{"start":{"line":86,"column":0},"end":{"line":86,"column":65}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":16,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":39,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":28},"end":{"line":57,"column":5}},"line":44},"3":{"name":"(anonymous_3)","decl":{"start":{"line":61,"column":4},"end":{"line":61,"column":5}},"loc":{"start":{"line":61,"column":13},"end":{"line":68,"column":5}},"line":61},"4":{"name":"(anonymous_4)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":16},"end":{"line":83,"column":5}},"line":72}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":56}},{"start":{"line":13,"column":12},"end":{"line":14,"column":83}}],"line":10},"1":{"loc":{"start":{"line":52,"column":8},"end":{"line":55,"column":9}},"type":"if","locations":[{"start":{"line":52,"column":8},"end":{"line":55,"column":9}},{"start":{"line":52,"column":8},"end":{"line":55,"column":9}}],"line":52}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1,"10":6,"11":6,"12":6,"13":6,"14":5,"15":5,"16":5,"17":5,"18":5,"19":5,"20":5,"21":5,"22":3,"23":3,"24":5,"25":4,"26":4,"27":4,"28":4,"29":4,"30":4,"31":4,"32":4,"33":4,"34":4,"35":4,"36":1,"37":1},"f":{"0":0,"1":6,"2":5,"3":4,"4":4},"b":{"0":[0,0],"1":[3,2]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderMetadata.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderMetadata.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C,MAAsB,aAAa;IAC1B,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,eAAe;gBAC9B,OAAO,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C;gBACE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACtE;IACH,CAAC;CAOF;AAnBD,sCAmBC;AAED;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,aAAa;IAAlD;;QAyBE;;WAEG;QACI,SAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QAYnC;;WAEG;QACI,cAAS,GAAG,CAAC,CAAC;QAErB;;WAEG;QACI,aAAQ,GAAG,CAAC,CAAC;IAgCtB,CAAC;IA7EC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAC3C,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;SAC3C;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IA2BD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA/EH,0CAgFC;AA/Ee,oBAAI,GAAG,yBAAW,CAAC,eAAe,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class OrderMetadata {\n  public static deserialize(buf: Buffer): OrderMetadata {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.OrderMetadataV0:\n        return OrderMetadataV0.deserialize(buf);\n      default:\n        throw new Error(`Order metadata TLV type must be OrderMetadataV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract toJSON(): IOrderMetadataJSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * OrderMetadata message contains information about a node and indicates its\n * desire to enter into a new contract. This is the first step toward\n * order negotiation.\n */\nexport class OrderMetadataV0 extends OrderMetadata implements IDlcMessage {\n  public static type = MessageType.OrderMetadataV0;\n\n  /**\n   * Deserializes an offer_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderMetadataV0 {\n    const instance = new OrderMetadataV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    const offerIdLength = reader.readBigSize();\n    const offerIdBuf = reader.readBytes(Number(offerIdLength));\n    instance.offerId = offerIdBuf.toString();\n\n    if (!reader.eof) {\n      instance.createdAt = reader.readUInt32BE();\n      instance.goodTill = reader.readUInt32BE();\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for order_metadata_v0 message. order_metadata_v0 = 62774\n   */\n  public type = OrderMetadataV0.type;\n\n  public length: bigint;\n\n  /**\n   * offerId is a unique identifier for an offer\n   * It can be used for updating liquidity for a particular category\n   * For example, how much liquidity is remaining for a particular strategy\n   * which a market maker is providing liquidity for\n   */\n  public offerId: string;\n\n  /**\n   * Timestamp for order creation\n   */\n  public createdAt = 0;\n\n  /**\n   * Amount of time order is good untill\n   */\n  public goodTill = 0;\n\n  /**\n   * Converts order_metadata_v0 to JSON\n   */\n  public toJSON(): IOrderMetadataJSON {\n    return {\n      type: this.type,\n      offerId: this.offerId,\n      createdAt: this.createdAt,\n      goodTill: this.goodTill,\n    };\n  }\n\n  /**\n   * Serializes the oracle_event message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.offerId.length);\n    dataWriter.writeBytes(Buffer.from(this.offerId));\n    dataWriter.writeUInt32BE(this.createdAt);\n    dataWriter.writeUInt32BE(this.goodTill);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderMetadataJSON {\n  type: number;\n  offerId: string;\n  createdAt: number;\n  goodTill: number;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4602f0c36fce2873b642b8763188db6adc4ed0d7","contentHash":"3d9e6e8c64abf3519be600668fe43f285917729bbb79c7c8bbb4e8b217d646f1"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderPositionInfo.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderPositionInfo.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":65}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":49}},"6":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":60}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":87}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":46}},"10":{"start":{"line":24,"column":8},"end":{"line":24,"column":28}},"11":{"start":{"line":28,"column":8},"end":{"line":28,"column":45}},"12":{"start":{"line":29,"column":8},"end":{"line":29,"column":38}},"13":{"start":{"line":30,"column":8},"end":{"line":30,"column":30}},"14":{"start":{"line":31,"column":8},"end":{"line":31,"column":40}},"15":{"start":{"line":32,"column":8},"end":{"line":32,"column":38}},"16":{"start":{"line":33,"column":8},"end":{"line":33,"column":35}},"17":{"start":{"line":34,"column":8},"end":{"line":34,"column":31}},"18":{"start":{"line":35,"column":8},"end":{"line":35,"column":32}},"19":{"start":{"line":42,"column":25},"end":{"line":42,"column":50}},"20":{"start":{"line":43,"column":23},"end":{"line":43,"column":52}},"21":{"start":{"line":44,"column":8},"end":{"line":44,"column":29}},"22":{"start":{"line":45,"column":8},"end":{"line":45,"column":47}},"23":{"start":{"line":46,"column":36},"end":{"line":46,"column":54}},"24":{"start":{"line":47,"column":8},"end":{"line":58,"column":9}},"25":{"start":{"line":48,"column":12},"end":{"line":48,"column":46}},"26":{"start":{"line":50,"column":13},"end":{"line":58,"column":9}},"27":{"start":{"line":51,"column":12},"end":{"line":51,"column":46}},"28":{"start":{"line":53,"column":13},"end":{"line":58,"column":9}},"29":{"start":{"line":54,"column":12},"end":{"line":54,"column":47}},"30":{"start":{"line":57,"column":12},"end":{"line":57,"column":84}},"31":{"start":{"line":59,"column":8},"end":{"line":59,"column":46}},"32":{"start":{"line":60,"column":8},"end":{"line":80,"column":9}},"33":{"start":{"line":61,"column":41},"end":{"line":61,"column":61}},"34":{"start":{"line":62,"column":35},"end":{"line":62,"column":81}},"35":{"start":{"line":63,"column":12},"end":{"line":63,"column":64}},"36":{"start":{"line":64,"column":12},"end":{"line":64,"column":58}},"37":{"start":{"line":65,"column":30},"end":{"line":65,"column":48}},"38":{"start":{"line":66,"column":12},"end":{"line":77,"column":13}},"39":{"start":{"line":67,"column":16},"end":{"line":67,"column":47}},"40":{"start":{"line":69,"column":17},"end":{"line":77,"column":13}},"41":{"start":{"line":70,"column":16},"end":{"line":70,"column":43}},"42":{"start":{"line":72,"column":17},"end":{"line":77,"column":13}},"43":{"start":{"line":73,"column":16},"end":{"line":73,"column":44}},"44":{"start":{"line":76,"column":16},"end":{"line":76,"column":73}},"45":{"start":{"line":78,"column":12},"end":{"line":78,"column":51}},"46":{"start":{"line":79,"column":12},"end":{"line":79,"column":60}},"47":{"start":{"line":81,"column":8},"end":{"line":81,"column":24}},"48":{"start":{"line":87,"column":8},"end":{"line":95,"column":10}},"49":{"start":{"line":101,"column":23},"end":{"line":101,"column":49}},"50":{"start":{"line":102,"column":8},"end":{"line":102,"column":39}},"51":{"start":{"line":103,"column":27},"end":{"line":103,"column":53}},"52":{"start":{"line":104,"column":8},"end":{"line":108,"column":21}},"53":{"start":{"line":109,"column":8},"end":{"line":109,"column":44}},"54":{"start":{"line":110,"column":8},"end":{"line":117,"column":9}},"55":{"start":{"line":111,"column":12},"end":{"line":111,"column":64}},"56":{"start":{"line":112,"column":12},"end":{"line":112,"column":68}},"57":{"start":{"line":113,"column":12},"end":{"line":113,"column":56}},"58":{"start":{"line":114,"column":12},"end":{"line":114,"column":103}},"59":{"start":{"line":115,"column":12},"end":{"line":115,"column":49}},"60":{"start":{"line":116,"column":12},"end":{"line":116,"column":58}},"61":{"start":{"line":118,"column":8},"end":{"line":118,"column":45}},"62":{"start":{"line":119,"column":8},"end":{"line":119,"column":49}},"63":{"start":{"line":120,"column":8},"end":{"line":120,"column":33}},"64":{"start":{"line":123,"column":0},"end":{"line":123,"column":50}},"65":{"start":{"line":124,"column":0},"end":{"line":124,"column":73}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":16,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":18},"end":{"line":36,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":4},"end":{"line":41,"column":5}},"loc":{"start":{"line":41,"column":28},"end":{"line":82,"column":5}},"line":41},"3":{"name":"(anonymous_3)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":13},"end":{"line":96,"column":5}},"line":86},"4":{"name":"(anonymous_4)","decl":{"start":{"line":100,"column":4},"end":{"line":100,"column":5}},"loc":{"start":{"line":100,"column":16},"end":{"line":121,"column":5}},"line":100}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":60}},{"start":{"line":13,"column":12},"end":{"line":14,"column":87}}],"line":10},"1":{"loc":{"start":{"line":47,"column":8},"end":{"line":58,"column":9}},"type":"if","locations":[{"start":{"line":47,"column":8},"end":{"line":58,"column":9}},{"start":{"line":47,"column":8},"end":{"line":58,"column":9}}],"line":47},"2":{"loc":{"start":{"line":50,"column":13},"end":{"line":58,"column":9}},"type":"if","locations":[{"start":{"line":50,"column":13},"end":{"line":58,"column":9}},{"start":{"line":50,"column":13},"end":{"line":58,"column":9}}],"line":50},"3":{"loc":{"start":{"line":53,"column":13},"end":{"line":58,"column":9}},"type":"if","locations":[{"start":{"line":53,"column":13},"end":{"line":58,"column":9}},{"start":{"line":53,"column":13},"end":{"line":58,"column":9}}],"line":53},"4":{"loc":{"start":{"line":60,"column":8},"end":{"line":80,"column":9}},"type":"if","locations":[{"start":{"line":60,"column":8},"end":{"line":80,"column":9}},{"start":{"line":60,"column":8},"end":{"line":80,"column":9}}],"line":60},"5":{"loc":{"start":{"line":66,"column":12},"end":{"line":77,"column":13}},"type":"if","locations":[{"start":{"line":66,"column":12},"end":{"line":77,"column":13}},{"start":{"line":66,"column":12},"end":{"line":77,"column":13}}],"line":66},"6":{"loc":{"start":{"line":69,"column":17},"end":{"line":77,"column":13}},"type":"if","locations":[{"start":{"line":69,"column":17},"end":{"line":77,"column":13}},{"start":{"line":69,"column":17},"end":{"line":77,"column":13}}],"line":69},"7":{"loc":{"start":{"line":72,"column":17},"end":{"line":77,"column":13}},"type":"if","locations":[{"start":{"line":72,"column":17},"end":{"line":77,"column":13}},{"start":{"line":72,"column":17},"end":{"line":77,"column":13}}],"line":72},"8":{"loc":{"start":{"line":104,"column":30},"end":{"line":108,"column":19}},"type":"cond-expr","locations":[{"start":{"line":105,"column":14},"end":{"line":105,"column":15}},{"start":{"line":106,"column":14},"end":{"line":108,"column":19}}],"line":104},"9":{"loc":{"start":{"line":106,"column":14},"end":{"line":108,"column":19}},"type":"cond-expr","locations":[{"start":{"line":107,"column":18},"end":{"line":107,"column":19}},{"start":{"line":108,"column":18},"end":{"line":108,"column":19}}],"line":106},"10":{"loc":{"start":{"line":110,"column":8},"end":{"line":117,"column":9}},"type":"if","locations":[{"start":{"line":110,"column":8},"end":{"line":117,"column":9}},{"start":{"line":110,"column":8},"end":{"line":117,"column":9}}],"line":110},"11":{"loc":{"start":{"line":114,"column":34},"end":{"line":114,"column":101}},"type":"cond-expr","locations":[{"start":{"line":114,"column":65},"end":{"line":114,"column":66}},{"start":{"line":114,"column":69},"end":{"line":114,"column":101}}],"line":114},"12":{"loc":{"start":{"line":114,"column":69},"end":{"line":114,"column":101}},"type":"cond-expr","locations":[{"start":{"line":114,"column":96},"end":{"line":114,"column":97}},{"start":{"line":114,"column":100},"end":{"line":114,"column":101}}],"line":114}},"s":{"0":1,"1":1,"2":1,"3":1,"4":3,"5":3,"6":3,"7":3,"8":0,"9":1,"10":15,"11":15,"12":15,"13":15,"14":15,"15":15,"16":15,"17":15,"18":15,"19":7,"20":7,"21":7,"22":7,"23":7,"24":7,"25":0,"26":7,"27":5,"28":2,"29":1,"30":1,"31":6,"32":6,"33":3,"34":3,"35":3,"36":3,"37":3,"38":3,"39":2,"40":1,"41":1,"42":0,"43":0,"44":0,"45":3,"46":3,"47":6,"48":3,"49":8,"50":8,"51":8,"52":8,"53":8,"54":8,"55":2,"56":2,"57":2,"58":2,"59":2,"60":2,"61":8,"62":8,"63":8,"64":1,"65":1},"f":{"0":3,"1":15,"2":7,"3":3,"4":8},"b":{"0":[3,0],"1":[0,7],"2":[5,2],"3":[1,1],"4":[3,3],"5":[2,1],"6":[1,0],"7":[0,0],"8":[0,8],"9":[3,5],"10":[2,6],"11":[1,1],"12":[1,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderPositionInfo.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderPositionInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport type DlcParty = 'offeror' | 'acceptor' | 'neither';\n\nexport abstract class OrderPositionInfo {\n  public static deserialize(buf: Buffer): OrderPositionInfo {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.OrderPositionInfoV0:\n        return OrderPositionInfoV0.deserialize(buf);\n      default:\n        throw new Error(`Order cso info TLV type must be OrderPositionInfoV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract toJSON(): IOrderPositionInfoJSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * OrderCsoInfo message\n */\nexport class OrderPositionInfoV0\n  extends OrderPositionInfo\n  implements IDlcMessage {\n  public static type = MessageType.OrderPositionInfoV0;\n\n  /**\n   * Deserializes an offer_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderPositionInfoV0 {\n    const instance = new OrderPositionInfoV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    const encodedShiftForFees = reader.readUInt8();\n    if (encodedShiftForFees === 0) {\n      instance.shiftForFees = 'neither';\n    } else if (encodedShiftForFees === 1) {\n      instance.shiftForFees = 'offeror';\n    } else if (encodedShiftForFees === 2) {\n      instance.shiftForFees = 'acceptor';\n    } else {\n      throw new Error(`Invalid shift for fees value: ${encodedShiftForFees}`);\n    }\n\n    instance.fees = reader.readUInt64BE();\n\n    if (!reader.eof) {\n      const instrumentNameLength = reader.readBigSize();\n      const instrumentName = reader.readBytes(Number(instrumentNameLength));\n      instance.instrumentName = instrumentName.toString();\n\n      instance.contractSize = reader.readUInt64BE();\n\n      const direction = reader.readUInt8();\n      if (direction === 0) {\n        instance.direction = 'neither';\n      } else if (direction === 1) {\n        instance.direction = 'buy';\n      } else if (direction === 2) {\n        instance.direction = 'sell';\n      } else {\n        throw new Error(`Invalid direction value: ${direction}`);\n      }\n\n      instance.price = reader.readUInt64BE();\n\n      instance.extraPrecision = reader.readUInt16BE();\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for order_metadata_v0 message. order_metadata_v0 = 62774\n   */\n  public type = OrderPositionInfoV0.type;\n\n  public length: bigint;\n\n  public shiftForFees: DlcParty = 'neither';\n\n  public fees = BigInt(0);\n\n  public instrumentName: string | undefined = undefined;\n\n  public contractSize = BigInt(0);\n\n  public direction: 'buy' | 'sell' | 'neither' = 'neither';\n\n  public price = BigInt(0); // Can be BTC or USD depending on the instrument\n\n  public extraPrecision = 0;\n\n  /**\n   * Converts order_metadata_v0 to JSON\n   */\n  public toJSON(): IOrderPositionInfoJSON {\n    return {\n      type: this.type,\n      shiftForFees: this.shiftForFees,\n      fees: Number(this.fees),\n      instrumentName: this.instrumentName,\n      direction: this.direction,\n      price: Number(this.price),\n      extraPrecision: this.extraPrecision,\n    };\n  }\n\n  /**\n   * Serializes the oracle_event message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt8(\n      this.shiftForFees === 'neither'\n        ? 0\n        : this.shiftForFees === 'offeror'\n        ? 1\n        : 2,\n    );\n    dataWriter.writeUInt64BE(this.fees);\n\n    if (this.instrumentName) {\n      dataWriter.writeBigSize(this.instrumentName.length);\n      dataWriter.writeBytes(Buffer.from(this.instrumentName));\n\n      dataWriter.writeUInt64BE(this.contractSize);\n\n      dataWriter.writeUInt8(\n        this.direction === 'neither' ? 0 : this.direction === 'buy' ? 1 : 2,\n      );\n\n      dataWriter.writeUInt64BE(this.price);\n\n      dataWriter.writeUInt16BE(this.extraPrecision);\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderPositionInfoJSON {\n  type: number;\n  shiftForFees: string;\n  fees: number;\n  instrumentName: string;\n  direction: string;\n  price: number;\n  extraPrecision: number;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7fcfc9ac9dd78f5efacbbd0b504c82f6ced33af2","contentHash":"998469d7dc5f9c1b882bc3371985206202f40769189ecbda0efe9b6e8b3d1066"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcSign.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcSign.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":72}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":25},"end":{"line":6,"column":63}},"5":{"start":{"line":7,"column":17},"end":{"line":7,"column":47}},"6":{"start":{"line":8,"column":28},"end":{"line":8,"column":58}},"7":{"start":{"line":9,"column":33},"end":{"line":9,"column":68}},"8":{"start":{"line":10,"column":30},"end":{"line":10,"column":62}},"9":{"start":{"line":13,"column":23},"end":{"line":13,"column":52}},"10":{"start":{"line":14,"column":21},"end":{"line":14,"column":50}},"11":{"start":{"line":15,"column":8},"end":{"line":20,"column":9}},"12":{"start":{"line":17,"column":16},"end":{"line":17,"column":50}},"13":{"start":{"line":19,"column":16},"end":{"line":19,"column":75}},"14":{"start":{"line":23,"column":0},"end":{"line":23,"column":26}},"15":{"start":{"line":31,"column":8},"end":{"line":31,"column":28}},"16":{"start":{"line":35,"column":8},"end":{"line":35,"column":35}},"17":{"start":{"line":42,"column":25},"end":{"line":42,"column":40}},"18":{"start":{"line":43,"column":23},"end":{"line":43,"column":52}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":30}},"20":{"start":{"line":45,"column":8},"end":{"line":45,"column":51}},"21":{"start":{"line":46,"column":8},"end":{"line":46,"column":123}},"22":{"start":{"line":47,"column":8},"end":{"line":47,"column":56}},"23":{"start":{"line":48,"column":8},"end":{"line":48,"column":121}},"24":{"start":{"line":49,"column":8},"end":{"line":63,"column":9}},"25":{"start":{"line":50,"column":24},"end":{"line":50,"column":52}},"26":{"start":{"line":51,"column":30},"end":{"line":51,"column":59}},"27":{"start":{"line":52,"column":29},"end":{"line":52,"column":76}},"28":{"start":{"line":53,"column":12},"end":{"line":62,"column":13}},"29":{"start":{"line":55,"column":20},"end":{"line":57,"column":21}},"30":{"start":{"line":56,"column":24},"end":{"line":56,"column":57}},"31":{"start":{"line":58,"column":20},"end":{"line":58,"column":109}},"32":{"start":{"line":59,"column":20},"end":{"line":59,"column":26}},"33":{"start":{"line":61,"column":20},"end":{"line":61,"column":26}},"34":{"start":{"line":64,"column":8},"end":{"line":64,"column":24}},"35":{"start":{"line":70,"column":21},"end":{"line":70,"column":23}},"36":{"start":{"line":71,"column":8},"end":{"line":75,"column":9}},"37":{"start":{"line":72,"column":12},"end":{"line":74,"column":15}},"38":{"start":{"line":73,"column":16},"end":{"line":73,"column":45}},"39":{"start":{"line":76,"column":8},"end":{"line":83,"column":10}},"40":{"start":{"line":89,"column":23},"end":{"line":89,"column":49}},"41":{"start":{"line":90,"column":8},"end":{"line":90,"column":40}},"42":{"start":{"line":91,"column":8},"end":{"line":91,"column":43}},"43":{"start":{"line":92,"column":8},"end":{"line":92,"column":58}},"44":{"start":{"line":93,"column":8},"end":{"line":93,"column":48}},"45":{"start":{"line":94,"column":8},"end":{"line":94,"column":62}},"46":{"start":{"line":95,"column":8},"end":{"line":96,"column":105}},"47":{"start":{"line":96,"column":12},"end":{"line":96,"column":105}},"48":{"start":{"line":96,"column":61},"end":{"line":96,"column":103}},"49":{"start":{"line":97,"column":8},"end":{"line":97,"column":33}},"50":{"start":{"line":100,"column":0},"end":{"line":100,"column":30}},"51":{"start":{"line":101,"column":0},"end":{"line":101,"column":53}},"52":{"start":{"line":104,"column":8},"end":{"line":104,"column":24}},"53":{"start":{"line":111,"column":8},"end":{"line":111,"column":30}},"54":{"start":{"line":118,"column":8},"end":{"line":118,"column":26}},"55":{"start":{"line":125,"column":23},"end":{"line":125,"column":49}},"56":{"start":{"line":127,"column":8},"end":{"line":127,"column":47}},"57":{"start":{"line":129,"column":8},"end":{"line":134,"column":11}},"58":{"start":{"line":130,"column":35},"end":{"line":130,"column":51}},"59":{"start":{"line":132,"column":12},"end":{"line":132,"column":55}},"60":{"start":{"line":133,"column":12},"end":{"line":133,"column":46}},"61":{"start":{"line":135,"column":8},"end":{"line":135,"column":33}},"62":{"start":{"line":143,"column":23},"end":{"line":143,"column":52}},"63":{"start":{"line":144,"column":26},"end":{"line":144,"column":48}},"64":{"start":{"line":145,"column":27},"end":{"line":145,"column":47}},"65":{"start":{"line":146,"column":8},"end":{"line":152,"column":9}},"66":{"start":{"line":146,"column":21},"end":{"line":146,"column":22}},"67":{"start":{"line":148,"column":31},"end":{"line":148,"column":51}},"68":{"start":{"line":149,"column":28},"end":{"line":149,"column":64}},"69":{"start":{"line":150,"column":25},"end":{"line":150,"column":53}},"70":{"start":{"line":151,"column":12},"end":{"line":151,"column":36}},"71":{"start":{"line":153,"column":8},"end":{"line":153,"column":25}},"72":{"start":{"line":156,"column":0},"end":{"line":156,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":28},"end":{"line":21,"column":5}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":18},"end":{"line":36,"column":5}},"line":30},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":4},"end":{"line":41,"column":5}},"loc":{"start":{"line":41,"column":28},"end":{"line":65,"column":5}},"line":41},"3":{"name":"(anonymous_3)","decl":{"start":{"line":69,"column":4},"end":{"line":69,"column":5}},"loc":{"start":{"line":69,"column":13},"end":{"line":84,"column":5}},"line":69},"4":{"name":"(anonymous_4)","decl":{"start":{"line":72,"column":44},"end":{"line":72,"column":45}},"loc":{"start":{"line":72,"column":55},"end":{"line":74,"column":13}},"line":72},"5":{"name":"(anonymous_5)","decl":{"start":{"line":88,"column":4},"end":{"line":88,"column":5}},"loc":{"start":{"line":88,"column":16},"end":{"line":98,"column":5}},"line":88},"6":{"name":"(anonymous_6)","decl":{"start":{"line":96,"column":44},"end":{"line":96,"column":45}},"loc":{"start":{"line":96,"column":61},"end":{"line":96,"column":103}},"line":96},"7":{"name":"(anonymous_7)","decl":{"start":{"line":103,"column":4},"end":{"line":103,"column":5}},"loc":{"start":{"line":103,"column":18},"end":{"line":105,"column":5}},"line":103},"8":{"name":"(anonymous_8)","decl":{"start":{"line":110,"column":4},"end":{"line":110,"column":5}},"loc":{"start":{"line":110,"column":18},"end":{"line":112,"column":5}},"line":110},"9":{"name":"(anonymous_9)","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":5}},"loc":{"start":{"line":117,"column":15},"end":{"line":119,"column":5}},"line":117},"10":{"name":"(anonymous_10)","decl":{"start":{"line":124,"column":4},"end":{"line":124,"column":5}},"loc":{"start":{"line":124,"column":16},"end":{"line":136,"column":5}},"line":124},"11":{"name":"(anonymous_11)","decl":{"start":{"line":129,"column":27},"end":{"line":129,"column":28}},"loc":{"start":{"line":129,"column":37},"end":{"line":134,"column":9}},"line":129},"12":{"name":"(anonymous_12)","decl":{"start":{"line":142,"column":4},"end":{"line":142,"column":5}},"loc":{"start":{"line":142,"column":28},"end":{"line":154,"column":5}},"line":142}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":8},"end":{"line":20,"column":9}},"type":"switch","locations":[{"start":{"line":16,"column":12},"end":{"line":17,"column":50}},{"start":{"line":18,"column":12},"end":{"line":19,"column":75}}],"line":15},"1":{"loc":{"start":{"line":53,"column":12},"end":{"line":62,"column":13}},"type":"switch","locations":[{"start":{"line":54,"column":16},"end":{"line":59,"column":26}},{"start":{"line":60,"column":16},"end":{"line":61,"column":26}}],"line":53},"2":{"loc":{"start":{"line":55,"column":20},"end":{"line":57,"column":21}},"type":"if","locations":[{"start":{"line":55,"column":20},"end":{"line":57,"column":21}},{"start":{"line":55,"column":20},"end":{"line":57,"column":21}}],"line":55},"3":{"loc":{"start":{"line":71,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":75,"column":9}},{"start":{"line":71,"column":8},"end":{"line":75,"column":9}}],"line":71},"4":{"loc":{"start":{"line":95,"column":8},"end":{"line":96,"column":105}},"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":96,"column":105}},{"start":{"line":95,"column":8},"end":{"line":96,"column":105}}],"line":95}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":4,"10":4,"11":4,"12":3,"13":1,"14":1,"15":15,"16":15,"17":8,"18":8,"19":8,"20":8,"21":8,"22":8,"23":8,"24":8,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":0,"34":8,"35":1,"36":1,"37":0,"38":0,"39":1,"40":10,"41":10,"42":10,"43":10,"44":10,"45":10,"46":10,"47":1,"48":1,"49":10,"50":1,"51":1,"52":2,"53":4,"54":0,"55":3,"56":3,"57":3,"58":6,"59":6,"60":6,"61":3,"62":1,"63":1,"64":1,"65":1,"66":1,"67":2,"68":2,"69":2,"70":2,"71":1,"72":1},"f":{"0":4,"1":15,"2":8,"3":1,"4":0,"5":10,"6":1,"7":2,"8":4,"9":0,"10":3,"11":6,"12":1},"b":{"0":[3,1],"1":[1,0],"2":[1,0],"3":[0,1],"4":[1,9]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcSign.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcSign.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport { BatchFundingGroup, IBatchFundingGroupJSON } from './BatchFundingGroup';\nimport {\n  CetAdaptorSignaturesV0,\n  ICetAdaptorSignaturesV0JSON,\n} from './CetAdaptorSignaturesV0';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  FundingSignaturesV0,\n  IFundingSignaturesV0JSON,\n} from './FundingSignaturesV0';\n\nexport abstract class DlcSign {\n  public static deserialize(buf: Buffer): DlcSignV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcSignV0:\n        return DlcSignV0.deserialize(buf);\n      default:\n        throw new Error(`Dlc Sign message type must be DlcSignV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract toJSON(): IDlcSignV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcSign gives all of the initiator's signatures, which allows the\n * receiver to broadcast the funding transaction with both parties being\n * fully committed to all closing transactions.\n */\nexport class DlcSignV0 extends DlcSign implements IDlcMessage {\n  public static type = MessageType.DlcSignV0;\n\n  /**\n   * Deserializes an sign_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcSignV0 {\n    const instance = new DlcSignV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    instance.contractId = reader.readBytes(32);\n    instance.cetSignatures = CetAdaptorSignaturesV0.deserialize(getTlv(reader));\n    instance.refundSignature = reader.readBytes(64);\n    instance.fundingSignatures = FundingSignaturesV0.deserialize(\n      getTlv(reader),\n    );\n\n    while (!reader.eof) {\n      const buf = getTlv(reader);\n      const tlvReader = new BufferReader(buf);\n      const { type } = deserializeTlv(tlvReader);\n\n      switch (Number(type)) {\n        case MessageType.BatchFundingGroup:\n          if (!instance.batchFundingGroups) {\n            instance.batchFundingGroups = [];\n          }\n          instance.batchFundingGroups.push(BatchFundingGroup.deserialize(buf));\n          break;\n        default:\n          break;\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for sign_dlc_v0 message. sign_dlc_v0 = 42782\n   */\n  public type = DlcSignV0.type;\n\n  public contractId: Buffer;\n\n  public cetSignatures: CetAdaptorSignaturesV0;\n\n  public refundSignature: Buffer;\n\n  public fundingSignatures: FundingSignaturesV0;\n\n  public batchFundingGroups?: BatchFundingGroup[];\n\n  /**\n   * Converts sign_dlc_v0 to JSON\n   */\n  public toJSON(): IDlcSignV0JSON {\n    const tlvs = [];\n\n    if (this.batchFundingGroups) {\n      this.batchFundingGroups.forEach((group) => {\n        tlvs.push(group.serialize());\n      });\n    }\n\n    return {\n      type: this.type,\n      contractId: this.contractId.toString('hex'),\n      cetSignatures: this.cetSignatures.toJSON(),\n      refundSignature: this.refundSignature.toString('hex'),\n      fundingSignatures: this.fundingSignatures.toJSON(),\n      tlvs,\n    };\n  }\n\n  /**\n   * Serializes the sign_dlc_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.contractId);\n    writer.writeBytes(this.cetSignatures.serialize());\n    writer.writeBytes(this.refundSignature);\n    writer.writeBytes(this.fundingSignatures.serialize());\n\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        writer.writeBytes(fundingInfo.serialize()),\n      );\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IDlcSignV0JSON {\n  type: number;\n  contractId: string;\n  cetSignatures: ICetAdaptorSignaturesV0JSON;\n  refundSignature: string;\n  fundingSignatures: IFundingSignaturesV0JSON;\n  tlvs: IBatchFundingGroupJSON[];\n}\n\nexport class DlcSignContainer {\n  private signs: DlcSign[] = [];\n\n  /**\n   * Adds a DlcSign to the container.\n   * @param sign The DlcSign to add.\n   */\n  public addSign(sign: DlcSign): void {\n    this.signs.push(sign);\n  }\n\n  /**\n   * Returns all DlcSigns in the container.\n   * @returns An array of DlcSign instances.\n   */\n  public getSigns(): DlcSign[] {\n    return this.signs;\n  }\n\n  /**\n   * Serializes all DlcSigns in the container to a Buffer.\n   * @returns A Buffer containing the serialized DlcSigns.\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    // Write the number of signs in the container first.\n    writer.writeBigSize(this.signs.length);\n    // Serialize each sign and write it.\n    this.signs.forEach((sign) => {\n      const serializedSign = sign.serialize();\n      // Optionally, write the length of the serialized sign for easier deserialization.\n      writer.writeBigSize(serializedSign.length);\n      writer.writeBytes(serializedSign);\n    });\n    return writer.toBuffer();\n  }\n\n  /**\n   * Deserializes a Buffer into a DlcSignContainer with DlcSigns.\n   * @param buf The Buffer to deserialize.\n   * @returns A DlcSignContainer instance.\n   */\n  public static deserialize(buf: Buffer): DlcSignContainer {\n    const reader = new BufferReader(buf);\n    const container = new DlcSignContainer();\n    const signsCount = reader.readBigSize();\n    for (let i = 0; i < signsCount; i++) {\n      // Optionally, read the length of the serialized sign if it was written during serialization.\n      const signLength = reader.readBigSize();\n      const signBuf = reader.readBytes(Number(signLength));\n      const sign = DlcSign.deserialize(signBuf); // Adjust based on actual implementation.\n      container.addSign(sign);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4a1f094bccad5afab931527861324f6e738002ff","contentHash":"73b31a306c29ad4b85d21e2050fa2a519e02945e25108734ec34a1b3b20800b2"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NodeAnnouncementMessage.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NodeAnnouncementMessage.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":12,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":52}},"4":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"5":{"start":{"line":6,"column":6},"end":{"line":6,"column":68}},"6":{"start":{"line":6,"column":51},"end":{"line":6,"column":63}},"7":{"start":{"line":8,"column":4},"end":{"line":8,"column":39}},"8":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"9":{"start":{"line":10,"column":26},"end":{"line":10,"column":33}},"10":{"start":{"line":11,"column":4},"end":{"line":11,"column":17}},"11":{"start":{"line":13,"column":25},"end":{"line":17,"column":2}},"12":{"start":{"line":14,"column":4},"end":{"line":14,"column":72}},"13":{"start":{"line":16,"column":4},"end":{"line":16,"column":21}},"14":{"start":{"line":18,"column":19},"end":{"line":24,"column":1}},"15":{"start":{"line":19,"column":4},"end":{"line":19,"column":42}},"16":{"start":{"line":19,"column":31},"end":{"line":19,"column":42}},"17":{"start":{"line":20,"column":17},"end":{"line":20,"column":19}},"18":{"start":{"line":21,"column":4},"end":{"line":21,"column":141}},"19":{"start":{"line":21,"column":21},"end":{"line":21,"column":141}},"20":{"start":{"line":21,"column":40},"end":{"line":21,"column":141}},"21":{"start":{"line":21,"column":109},"end":{"line":21,"column":141}},"22":{"start":{"line":22,"column":4},"end":{"line":22,"column":36}},"23":{"start":{"line":23,"column":4},"end":{"line":23,"column":18}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":62}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":41}},"26":{"start":{"line":27,"column":16},"end":{"line":27,"column":42}},"27":{"start":{"line":28,"column":17},"end":{"line":28,"column":44}},"28":{"start":{"line":29,"column":15},"end":{"line":29,"column":56}},"29":{"start":{"line":30,"column":18},"end":{"line":30,"column":46}},"30":{"start":{"line":31,"column":22},"end":{"line":31,"column":47}},"31":{"start":{"line":32,"column":17},"end":{"line":32,"column":47}},"32":{"start":{"line":43,"column":8},"end":{"line":43,"column":63}},"33":{"start":{"line":50,"column":8},"end":{"line":50,"column":28}},"34":{"start":{"line":53,"column":25},"end":{"line":53,"column":54}},"35":{"start":{"line":54,"column":23},"end":{"line":54,"column":56}},"36":{"start":{"line":55,"column":8},"end":{"line":55,"column":30}},"37":{"start":{"line":56,"column":8},"end":{"line":56,"column":50}},"38":{"start":{"line":57,"column":21},"end":{"line":57,"column":42}},"39":{"start":{"line":58,"column":8},"end":{"line":58,"column":81}},"40":{"start":{"line":59,"column":8},"end":{"line":59,"column":51}},"41":{"start":{"line":60,"column":8},"end":{"line":60,"column":47}},"42":{"start":{"line":61,"column":8},"end":{"line":61,"column":48}},"43":{"start":{"line":62,"column":8},"end":{"line":62,"column":46}},"44":{"start":{"line":63,"column":8},"end":{"line":63,"column":32}},"45":{"start":{"line":64,"column":8},"end":{"line":64,"column":30}},"46":{"start":{"line":65,"column":8},"end":{"line":68,"column":9}},"47":{"start":{"line":66,"column":28},"end":{"line":66,"column":87}},"48":{"start":{"line":67,"column":12},"end":{"line":67,"column":45}},"49":{"start":{"line":69,"column":8},"end":{"line":69,"column":24}},"50":{"start":{"line":77,"column":22},"end":{"line":77,"column":47}},"51":{"start":{"line":78,"column":8},"end":{"line":78,"column":37}},"52":{"start":{"line":84,"column":21},"end":{"line":84,"column":54}},"53":{"start":{"line":85,"column":8},"end":{"line":85,"column":65}},"54":{"start":{"line":88,"column":31},"end":{"line":88,"column":55}},"55":{"start":{"line":89,"column":28},"end":{"line":89,"column":49}},"56":{"start":{"line":91,"column":31},"end":{"line":91,"column":33}},"57":{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},"58":{"start":{"line":93,"column":12},"end":{"line":93,"column":53}},"59":{"start":{"line":97,"column":29},"end":{"line":97,"column":97}},"60":{"start":{"line":97,"column":53},"end":{"line":97,"column":61}},"61":{"start":{"line":97,"column":84},"end":{"line":97,"column":93}},"62":{"start":{"line":98,"column":20},"end":{"line":107,"column":24}},"63":{"start":{"line":108,"column":23},"end":{"line":108,"column":66}},"64":{"start":{"line":109,"column":8},"end":{"line":109,"column":40}},"65":{"start":{"line":110,"column":8},"end":{"line":110,"column":42}},"66":{"start":{"line":111,"column":8},"end":{"line":111,"column":42}},"67":{"start":{"line":112,"column":8},"end":{"line":113,"column":46}},"68":{"start":{"line":113,"column":12},"end":{"line":113,"column":46}},"69":{"start":{"line":114,"column":8},"end":{"line":114,"column":45}},"70":{"start":{"line":115,"column":8},"end":{"line":115,"column":39}},"71":{"start":{"line":116,"column":8},"end":{"line":116,"column":41}},"72":{"start":{"line":117,"column":8},"end":{"line":117,"column":38}},"73":{"start":{"line":118,"column":8},"end":{"line":118,"column":43}},"74":{"start":{"line":119,"column":8},"end":{"line":121,"column":9}},"75":{"start":{"line":120,"column":12},"end":{"line":120,"column":45}},"76":{"start":{"line":122,"column":8},"end":{"line":122,"column":33}},"77":{"start":{"line":125,"column":0},"end":{"line":125,"column":58}},"78":{"start":{"line":126,"column":0},"end":{"line":126,"column":74}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":9,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":38},"end":{"line":6,"column":39}},"loc":{"start":{"line":6,"column":49},"end":{"line":6,"column":65}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":6},"end":{"line":9,"column":7}},"loc":{"start":{"line":9,"column":28},"end":{"line":12,"column":1}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":80},"end":{"line":13,"column":81}},"loc":{"start":{"line":13,"column":95},"end":{"line":15,"column":1}},"line":13},"4":{"name":"(anonymous_4)","decl":{"start":{"line":15,"column":5},"end":{"line":15,"column":6}},"loc":{"start":{"line":15,"column":20},"end":{"line":17,"column":1}},"line":15},"5":{"name":"(anonymous_5)","decl":{"start":{"line":18,"column":50},"end":{"line":18,"column":51}},"loc":{"start":{"line":18,"column":65},"end":{"line":24,"column":1}},"line":18},"6":{"name":"(anonymous_6)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":18},"end":{"line":51,"column":5}},"line":39},"7":{"name":"(anonymous_7)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":32},"end":{"line":70,"column":5}},"line":52},"8":{"name":"(anonymous_8)","decl":{"start":{"line":76,"column":4},"end":{"line":76,"column":5}},"loc":{"start":{"line":76,"column":21},"end":{"line":79,"column":5}},"line":76},"9":{"name":"(anonymous_9)","decl":{"start":{"line":83,"column":4},"end":{"line":83,"column":5}},"loc":{"start":{"line":83,"column":33},"end":{"line":86,"column":5}},"line":83},"10":{"name":"(anonymous_10)","decl":{"start":{"line":87,"column":4},"end":{"line":87,"column":5}},"loc":{"start":{"line":87,"column":16},"end":{"line":123,"column":5}},"line":87},"11":{"name":"(anonymous_11)","decl":{"start":{"line":97,"column":48},"end":{"line":97,"column":49}},"loc":{"start":{"line":97,"column":53},"end":{"line":97,"column":61}},"line":97},"12":{"name":"(anonymous_12)","decl":{"start":{"line":97,"column":70},"end":{"line":97,"column":71}},"loc":{"start":{"line":97,"column":84},"end":{"line":97,"column":93}},"line":97}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":12,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":12,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":12,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":9,"column":1}},{"start":{"line":9,"column":6},"end":{"line":12,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},{"start":{"line":5,"column":4},"end":{"line":7,"column":5}}],"line":5},"4":{"loc":{"start":{"line":5,"column":8},"end":{"line":5,"column":85}},"type":"binary-expr","locations":[{"start":{"line":5,"column":8},"end":{"line":5,"column":13}},{"start":{"line":5,"column":18},"end":{"line":5,"column":84}}],"line":5},"5":{"loc":{"start":{"line":5,"column":18},"end":{"line":5,"column":84}},"type":"cond-expr","locations":[{"start":{"line":5,"column":34},"end":{"line":5,"column":47}},{"start":{"line":5,"column":50},"end":{"line":5,"column":84}}],"line":5},"6":{"loc":{"start":{"line":5,"column":50},"end":{"line":5,"column":84}},"type":"binary-expr","locations":[{"start":{"line":5,"column":50},"end":{"line":5,"column":63}},{"start":{"line":5,"column":67},"end":{"line":5,"column":84}}],"line":5},"7":{"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},{"start":{"line":10,"column":4},"end":{"line":10,"column":33}}],"line":10},"8":{"loc":{"start":{"line":13,"column":25},"end":{"line":17,"column":2}},"type":"binary-expr","locations":[{"start":{"line":13,"column":26},"end":{"line":13,"column":30}},{"start":{"line":13,"column":34},"end":{"line":13,"column":57}},{"start":{"line":13,"column":63},"end":{"line":17,"column":1}}],"line":13},"9":{"loc":{"start":{"line":13,"column":63},"end":{"line":17,"column":1}},"type":"cond-expr","locations":[{"start":{"line":13,"column":80},"end":{"line":15,"column":1}},{"start":{"line":15,"column":5},"end":{"line":17,"column":1}}],"line":13},"10":{"loc":{"start":{"line":18,"column":19},"end":{"line":24,"column":1}},"type":"binary-expr","locations":[{"start":{"line":18,"column":20},"end":{"line":18,"column":24}},{"start":{"line":18,"column":28},"end":{"line":18,"column":45}},{"start":{"line":18,"column":50},"end":{"line":24,"column":1}}],"line":18},"11":{"loc":{"start":{"line":19,"column":4},"end":{"line":19,"column":42}},"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":19,"column":42}},{"start":{"line":19,"column":4},"end":{"line":19,"column":42}}],"line":19},"12":{"loc":{"start":{"line":19,"column":8},"end":{"line":19,"column":29}},"type":"binary-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":11}},{"start":{"line":19,"column":15},"end":{"line":19,"column":29}}],"line":19},"13":{"loc":{"start":{"line":21,"column":4},"end":{"line":21,"column":141}},"type":"if","locations":[{"start":{"line":21,"column":4},"end":{"line":21,"column":141}},{"start":{"line":21,"column":4},"end":{"line":21,"column":141}}],"line":21},"14":{"loc":{"start":{"line":21,"column":40},"end":{"line":21,"column":141}},"type":"if","locations":[{"start":{"line":21,"column":40},"end":{"line":21,"column":141}},{"start":{"line":21,"column":40},"end":{"line":21,"column":141}}],"line":21},"15":{"loc":{"start":{"line":21,"column":44},"end":{"line":21,"column":107}},"type":"binary-expr","locations":[{"start":{"line":21,"column":44},"end":{"line":21,"column":59}},{"start":{"line":21,"column":63},"end":{"line":21,"column":107}}],"line":21},"16":{"loc":{"start":{"line":112,"column":8},"end":{"line":113,"column":46}},"type":"if","locations":[{"start":{"line":112,"column":8},"end":{"line":113,"column":46}},{"start":{"line":112,"column":8},"end":{"line":113,"column":46}}],"line":112}},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1,"12":0,"13":0,"14":1,"15":1,"16":1,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":2,"33":2,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":0,"51":0,"52":0,"53":0,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":0,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":1,"6":2,"7":1,"8":0,"9":0,"10":1,"11":1,"12":1},"b":{"0":[1,1,1],"1":[1,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[1,1,1],"9":[1,0],"10":[1,1,1],"11":[1,0],"12":[1,1],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NodeAnnouncementMessage.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/NodeAnnouncementMessage.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\nimport { BitField } from '@node-dlc/common';\nimport * as crypto from '@node-dlc/crypto';\nimport { NodeFeatureFlags } from '@node-dlc/wire';\n\nimport { Address } from '../domain/Address';\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IWireMessage } from './IWireMessage';\n\n/**\n * This gossip message allows a node to indicate extra data associated with it,\n * in addition to its public key. To avoid trivial denial of service attacks,\n * nodes not associated with an already known channel are ignored.\n */\nexport class NodeAnnouncementMessage implements IWireMessage {\n  public static type = MessageType.NodeAnnouncement;\n\n  public static deserialize(payload: Buffer) {\n    const instance = new NodeAnnouncementMessage();\n    const reader = new BufferReader(payload);\n    reader.readUInt16BE(); // read off type\n\n    instance.signature = reader.readBytes(64);\n\n    const flen = reader.readUInt16BE();\n    instance.features = BitField.fromBuffer(reader.readBytes(flen));\n\n    instance.timestamp = reader.readUInt32BE();\n    instance.nodeId = reader.readBytes(33);\n    instance.rgbColor = reader.readBytes(3);\n    instance.alias = reader.readBytes(32);\n    instance.addresses = [];\n\n    reader.readUInt16BE(); // addr_len\n\n    while (!reader.eof) {\n      const address = Address.deserialize(getTlv(reader));\n\n      instance.addresses.push(address);\n    }\n\n    return instance;\n  }\n\n  /**\n   * Message hashing is after the first 66 bytes of the message\n   * and excludes the type and signature. It performs a double\n   * sha-256 hash of the remaining bytes.\n   */\n  public static hash(msg: NodeAnnouncementMessage): Buffer {\n    const bytes = msg.serialize().slice(66); // type + signature\n    return crypto.hash256(bytes);\n  }\n\n  /**\n   * Verifies the message signature\n   */\n  public static verifySignatures(msg: NodeAnnouncementMessage): boolean {\n    const hash = NodeAnnouncementMessage.hash(msg);\n    return crypto.verifySig(hash, msg.signature, msg.nodeId);\n  }\n\n  /**\n   * Type 257\n   */\n  public type: MessageType = MessageType.NodeAnnouncement;\n\n  /**\n   * Signature of the announcement message by the node's public key\n   * returned as a 64-byte Buffer.\n   */\n  public signature: Buffer;\n\n  public features: BitField<NodeFeatureFlags>;\n\n  public timestamp: number;\n\n  /**\n   * Compressed public key of the node that is a 33-byte\n   * buffer.\n   */\n  public nodeId: Buffer;\n\n  /**\n   * Color of the node returned as a 3-byte Buffer.\n   */\n  public rgbColor: Buffer;\n\n  /**\n   * Alias of the node returned as a 32-byte Buffer.\n   */\n  public alias: Buffer;\n\n  /**\n   * Addresses that the node allow public network connections\n   * on. The type indicates how the address is encoded. Addresses\n   * are in order of connectivity preference. Currently\n   * supported addresses formats are IPv4, IPv6, Tor2 and Tor3\n   */\n  public addresses: Address[] = [];\n\n  public serialize() {\n    const featuresBuffer = this.features.toBuffer();\n    const featuresLen = featuresBuffer.length;\n\n    // serialize addresses into buffers so we can obtain the length\n    const addressBuffers = [];\n    for (const address of this.addresses) {\n      addressBuffers.push(address.serialize());\n    }\n\n    // obtain total address length\n    // eslint-disable-next-line\n    const addressBytes: number = addressBuffers.map(b => b.length).reduce((sum, val) => sum + val, 0); // prettier-ignore\n\n    const len =\n      2 + // type\n      64 + // signature\n      2 + // flen\n      featuresLen + // features length\n      4 + // timestamp\n      33 + // node_id\n      3 + // rgb_color\n      32 + // alias\n      2 + // addresses\n      addressBytes; // cumulative addr bytes\n    const writer = new BufferWriter(Buffer.alloc(len));\n\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.signature);\n    writer.writeUInt16BE(featuresLen);\n    if (featuresLen > 0) writer.writeBytes(featuresBuffer);\n    writer.writeUInt32BE(this.timestamp);\n    writer.writeBytes(this.nodeId);\n    writer.writeBytes(this.rgbColor);\n    writer.writeBytes(this.alias);\n    writer.writeUInt16BE(addressBytes);\n    for (const addressBuffer of addressBuffers) {\n      writer.writeBytes(addressBuffer);\n    }\n\n    return writer.toBuffer();\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bf330aa6bf9d4f10ce4dca68308abe51b4027c86","contentHash":"49cdaeda694a145003123ac08b422acba65f7ff80cf7bf024df7549885f84361"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncementV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncementV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":38}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":17},"end":{"line":7,"column":47}},"6":{"start":{"line":8,"column":24},"end":{"line":8,"column":50}},"7":{"start":{"line":26,"column":8},"end":{"line":26,"column":46}},"8":{"start":{"line":33,"column":25},"end":{"line":33,"column":51}},"9":{"start":{"line":34,"column":23},"end":{"line":34,"column":52}},"10":{"start":{"line":35,"column":8},"end":{"line":35,"column":29}},"11":{"start":{"line":36,"column":8},"end":{"line":36,"column":47}},"12":{"start":{"line":37,"column":8},"end":{"line":37,"column":56}},"13":{"start":{"line":38,"column":8},"end":{"line":38,"column":53}},"14":{"start":{"line":39,"column":8},"end":{"line":39,"column":103}},"15":{"start":{"line":40,"column":8},"end":{"line":40,"column":24}},"16":{"start":{"line":43,"column":8},"end":{"line":43,"column":36}},"17":{"start":{"line":45,"column":20},"end":{"line":45,"column":109}},"18":{"start":{"line":46,"column":8},"end":{"line":46,"column":80}},"19":{"start":{"line":52,"column":8},"end":{"line":57,"column":10}},"20":{"start":{"line":63,"column":23},"end":{"line":63,"column":49}},"21":{"start":{"line":64,"column":8},"end":{"line":64,"column":39}},"22":{"start":{"line":65,"column":27},"end":{"line":65,"column":53}},"23":{"start":{"line":66,"column":8},"end":{"line":66,"column":52}},"24":{"start":{"line":67,"column":8},"end":{"line":67,"column":49}},"25":{"start":{"line":68,"column":8},"end":{"line":68,"column":60}},"26":{"start":{"line":69,"column":8},"end":{"line":69,"column":45}},"27":{"start":{"line":70,"column":8},"end":{"line":70,"column":49}},"28":{"start":{"line":71,"column":8},"end":{"line":71,"column":33}},"29":{"start":{"line":74,"column":0},"end":{"line":74,"column":52}},"30":{"start":{"line":75,"column":0},"end":{"line":75,"column":75}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":18},"end":{"line":27,"column":5}},"line":22},"1":{"name":"(anonymous_1)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":28},"end":{"line":41,"column":5}},"line":32},"2":{"name":"(anonymous_2)","decl":{"start":{"line":42,"column":4},"end":{"line":42,"column":5}},"loc":{"start":{"line":42,"column":15},"end":{"line":47,"column":5}},"line":42},"3":{"name":"(anonymous_3)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":13},"end":{"line":58,"column":5}},"line":51},"4":{"name":"(anonymous_4)","decl":{"start":{"line":62,"column":4},"end":{"line":62,"column":5}},"loc":{"start":{"line":62,"column":16},"end":{"line":72,"column":5}},"line":62}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":69,"8":63,"9":63,"10":63,"11":63,"12":63,"13":63,"14":63,"15":63,"16":28,"17":27,"18":27,"19":5,"20":33,"21":33,"22":33,"23":33,"24":33,"25":33,"26":33,"27":33,"28":33,"29":1,"30":1},"f":{"0":69,"1":63,"2":28,"3":5,"4":33},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncementV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncementV0.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAC7D,6CAA2C;AAE3C,gDAA6C;AAC7C,gDAA6C;AAE7C,mDAAoE;AAEpE;;;;;;;;;;;GAWG;AACH,MAAa,oBAAoB;IAAjC;QAoBE;;WAEG;QACI,SAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAkD1C,CAAC;IAtEC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7C,QAAQ,CAAC,WAAW,GAAG,6BAAa,CAAC,WAAW,CAAC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,CAAC;QAEjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAeM,QAAQ;QACb,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAE5B,0BAA0B;QAC1B,MAAM,GAAG,GAAG,kBAAI,CAAC,UAAU,CACzB,4BAA4B,EAC5B,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAC7B,CAAC;QACF,IAAA,oBAAM,EAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5C,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAxEH,oDAyEC;AAxEe,yBAAI,GAAG,yBAAW,CAAC,oBAAoB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\nimport { math, verify } from 'bip-schnorr';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport { IOracleEventV0JSON, OracleEventV0 } from './OracleEventV0';\n\n/**\n * In order to make it possible to hold oracles accountable in cases where\n * they do not release a signature for an event outcome, there needs to be\n * a proof that an oracle has committed to a given outcome. This proof is\n * given in a so-called oracle announcement, which contains an oracle event\n * together with the oracle public key and a signature over its serialization,\n * which must be valid with respect to the specified public key.\n *\n * This also makes it possible for users to obtain oracle event information\n * from an un-trusted peer while being guaranteed that it originates from a\n * given oracle.\n */\nexport class OracleAnnouncementV0 implements IDlcMessage {\n  public static type = MessageType.OracleAnnouncementV0;\n\n  /**\n   * Deserializes an oracle_announcement_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleAnnouncementV0 {\n    const instance = new OracleAnnouncementV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.announcementSig = reader.readBytes(64);\n    instance.oraclePubkey = reader.readBytes(32);\n    instance.oracleEvent = OracleEventV0.deserialize(getTlv(reader));\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_announcement_v0 message. oracle_announcement_v0 = 55332\n   */\n  public type = OracleAnnouncementV0.type;\n\n  public length: bigint;\n\n  public announcementSig: Buffer;\n\n  public oraclePubkey: Buffer;\n\n  public oracleEvent: OracleEventV0;\n\n  public validate(): void {\n    this.oracleEvent.validate();\n\n    // Verify announcement sig\n    const msg = math.taggedHash(\n      'DLC/oracle/announcement/v0',\n      this.oracleEvent.serialize(),\n    );\n    verify(this.oraclePubkey, msg, this.announcementSig);\n  }\n\n  /**\n   * Converts oracle_announcement_v0 to JSON\n   */\n  public toJSON(): OracleAnnouncementV0JSON {\n    return {\n      type: this.type,\n      announcementSig: this.announcementSig.toString('hex'),\n      oraclePubkey: this.oraclePubkey.toString('hex'),\n      oracleEvent: this.oracleEvent.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the oracle_announcement_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBytes(this.announcementSig);\n    dataWriter.writeBytes(this.oraclePubkey);\n    dataWriter.writeBytes(this.oracleEvent.serialize());\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface OracleAnnouncementV0JSON {\n  type: number;\n  announcementSig: string;\n  oraclePubkey: string;\n  oracleEvent: IOracleEventV0JSON;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"db9809117add9f7f16e6cd5134df85492ebe5da6","contentHash":"eb96bbc82952a22dddc811b1151209b800961a1c019554565ca560c38270f7f8"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":26},"end":{"line":7,"column":54}},"6":{"start":{"line":25,"column":8},"end":{"line":25,"column":39}},"7":{"start":{"line":26,"column":8},"end":{"line":26,"column":31}},"8":{"start":{"line":33,"column":25},"end":{"line":33,"column":44}},"9":{"start":{"line":34,"column":23},"end":{"line":34,"column":52}},"10":{"start":{"line":35,"column":8},"end":{"line":35,"column":29}},"11":{"start":{"line":36,"column":8},"end":{"line":36,"column":47}},"12":{"start":{"line":37,"column":27},"end":{"line":37,"column":48}},"13":{"start":{"line":38,"column":8},"end":{"line":40,"column":9}},"14":{"start":{"line":38,"column":21},"end":{"line":38,"column":22}},"15":{"start":{"line":39,"column":12},"end":{"line":39,"column":61}},"16":{"start":{"line":41,"column":8},"end":{"line":41,"column":60}},"17":{"start":{"line":42,"column":8},"end":{"line":42,"column":111}},"18":{"start":{"line":43,"column":30},"end":{"line":43,"column":50}},"19":{"start":{"line":44,"column":27},"end":{"line":44,"column":66}},"20":{"start":{"line":45,"column":8},"end":{"line":45,"column":49}},"21":{"start":{"line":46,"column":8},"end":{"line":46,"column":24}},"22":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"23":{"start":{"line":55,"column":12},"end":{"line":55,"column":85}},"24":{"start":{"line":57,"column":8},"end":{"line":64,"column":9}},"25":{"start":{"line":58,"column":36},"end":{"line":59,"column":32}},"26":{"start":{"line":60,"column":12},"end":{"line":60,"column":39}},"27":{"start":{"line":61,"column":12},"end":{"line":63,"column":13}},"28":{"start":{"line":62,"column":16},"end":{"line":62,"column":117}},"29":{"start":{"line":70,"column":8},"end":{"line":76,"column":10}},"30":{"start":{"line":72,"column":60},"end":{"line":72,"column":82}},"31":{"start":{"line":82,"column":23},"end":{"line":82,"column":49}},"32":{"start":{"line":83,"column":8},"end":{"line":83,"column":39}},"33":{"start":{"line":84,"column":27},"end":{"line":84,"column":53}},"34":{"start":{"line":85,"column":8},"end":{"line":85,"column":59}},"35":{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},"36":{"start":{"line":87,"column":12},"end":{"line":87,"column":41}},"37":{"start":{"line":89,"column":8},"end":{"line":89,"column":58}},"38":{"start":{"line":90,"column":8},"end":{"line":90,"column":64}},"39":{"start":{"line":91,"column":8},"end":{"line":91,"column":53}},"40":{"start":{"line":92,"column":8},"end":{"line":92,"column":57}},"41":{"start":{"line":93,"column":8},"end":{"line":93,"column":45}},"42":{"start":{"line":94,"column":8},"end":{"line":94,"column":49}},"43":{"start":{"line":95,"column":8},"end":{"line":95,"column":33}},"44":{"start":{"line":98,"column":0},"end":{"line":98,"column":38}},"45":{"start":{"line":99,"column":0},"end":{"line":99,"column":61}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":27,"column":5}},"line":21},"1":{"name":"(anonymous_1)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":28},"end":{"line":47,"column":5}},"line":32},"2":{"name":"(anonymous_2)","decl":{"start":{"line":53,"column":4},"end":{"line":53,"column":5}},"loc":{"start":{"line":53,"column":15},"end":{"line":65,"column":5}},"line":53},"3":{"name":"(anonymous_3)","decl":{"start":{"line":69,"column":4},"end":{"line":69,"column":5}},"loc":{"start":{"line":69,"column":13},"end":{"line":77,"column":5}},"line":69},"4":{"name":"(anonymous_4)","decl":{"start":{"line":72,"column":48},"end":{"line":72,"column":49}},"loc":{"start":{"line":72,"column":60},"end":{"line":72,"column":82}},"line":72},"5":{"name":"(anonymous_5)","decl":{"start":{"line":81,"column":4},"end":{"line":81,"column":5}},"loc":{"start":{"line":81,"column":16},"end":{"line":96,"column":5}},"line":81}},"branchMap":{"0":{"loc":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},{"start":{"line":54,"column":8},"end":{"line":56,"column":9}}],"line":54},"1":{"loc":{"start":{"line":57,"column":8},"end":{"line":64,"column":9}},"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":64,"column":9}},{"start":{"line":57,"column":8},"end":{"line":64,"column":9}}],"line":57},"2":{"loc":{"start":{"line":61,"column":12},"end":{"line":63,"column":13}},"type":"if","locations":[{"start":{"line":61,"column":12},"end":{"line":63,"column":13}},{"start":{"line":61,"column":12},"end":{"line":63,"column":13}}],"line":61}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":72,"7":72,"8":67,"9":67,"10":67,"11":67,"12":67,"13":67,"14":67,"15":123,"16":67,"17":67,"18":67,"19":67,"20":67,"21":67,"22":31,"23":1,"24":30,"25":5,"26":5,"27":5,"28":2,"29":5,"30":45,"31":62,"32":62,"33":62,"34":62,"35":62,"36":132,"37":62,"38":62,"39":62,"40":62,"41":62,"42":62,"43":62,"44":1,"45":1},"f":{"0":72,"1":67,"2":31,"3":5,"4":45,"5":62},"b":{"0":[1,30],"1":[5,25],"2":[2,3]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventV0.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  DigitDecompositionEventDescriptorV0,\n  EventDescriptor,\n  IDigitDecompositionEventDescriptorV0JSON,\n  IEnumEventDescriptorV0JSON,\n} from './EventDescriptor';\n\n/**\n * For users to be able to create DLCs based on a given event, they also\n * need to obtain information about the oracle and the time at which it\n * plans on releasing a signature over the event outcome. OracleEvent\n * mesages contain such information, which includes:\n *   - the nonce(s) that will be used to sign the event outcome(s)\n *   - the earliest time (UTC) at which it plans on releasing a signature\n *     over the event outcome, in epoch seconds\n *   - the event descriptor\n *   - the event ID which can be a name or categorization associated with\n *     the event by the oracle\n */\nexport class OracleEventV0 implements IDlcMessage {\n  public static type = MessageType.OracleEventV0;\n\n  /**\n   * Deserializes an oracle_event message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleEventV0 {\n    const instance = new OracleEventV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    const nonceCount = reader.readUInt16BE();\n\n    for (let i = 0; i < nonceCount; i++) {\n      instance.oracleNonces.push(reader.readBytes(32));\n    }\n\n    instance.eventMaturityEpoch = reader.readUInt32BE();\n    instance.eventDescriptor = EventDescriptor.deserialize(getTlv(reader));\n    const eventIdLength = reader.readBigSize();\n    const eventIdBuf = reader.readBytes(Number(eventIdLength));\n    instance.eventId = eventIdBuf.toString();\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_event message. oracle_event = 55330\n   */\n  public type = OracleEventV0.type;\n\n  public length: bigint;\n\n  public oracleNonces: Buffer[] = [];\n\n  public eventMaturityEpoch: number;\n\n  public eventDescriptor: EventDescriptor;\n\n  public eventId: string;\n\n  /**\n   * Validates correctness of all fields in the message\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    if (this.eventMaturityEpoch < 0) {\n      throw new Error('eventMaturityEpoch must be greater than or equal to 0');\n    }\n\n    if (\n      this.eventDescriptor.type === DigitDecompositionEventDescriptorV0.type\n    ) {\n      const eventDescriptor = this\n        .eventDescriptor as DigitDecompositionEventDescriptorV0;\n\n      eventDescriptor.validate();\n\n      if (eventDescriptor.nbDigits !== this.oracleNonces.length) {\n        throw Error(\n          'OracleEvent oracleNonces length must match DigitDecompositionEventDescriptor nbDigits',\n        );\n      }\n    }\n  }\n\n  /**\n   * Converts oracle_event to JSON\n   */\n  public toJSON(): IOracleEventV0JSON {\n    return {\n      type: this.type,\n      oracleNonces: this.oracleNonces.map((oracle) => oracle.toString('hex')),\n      eventMaturityEpoch: this.eventMaturityEpoch,\n      eventDescriptor: this.eventDescriptor.toJSON(),\n      eventId: this.eventId,\n    };\n  }\n\n  /**\n   * Serializes the oracle_event message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt16BE(this.oracleNonces.length);\n\n    for (const nonce of this.oracleNonces) {\n      dataWriter.writeBytes(nonce);\n    }\n\n    dataWriter.writeUInt32BE(this.eventMaturityEpoch);\n    dataWriter.writeBytes(this.eventDescriptor.serialize());\n    dataWriter.writeBigSize(this.eventId.length);\n    dataWriter.writeBytes(Buffer.from(this.eventId));\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOracleEventV0JSON {\n  type: number;\n  oracleNonces: string[];\n  eventMaturityEpoch: number;\n  eventDescriptor:\n    | IEnumEventDescriptorV0JSON\n    | IDigitDecompositionEventDescriptorV0JSON;\n  eventId: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"96ebe32f0cd4fd0b7454fd79a6ae5e421aac8a35","contentHash":"2a6df1bf9ab0f36960f0269686811ea108ba853f1af077410e72fc8465ef69ff"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/EventDescriptor.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/EventDescriptor.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":111}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":49}},"6":{"start":{"line":10,"column":8},"end":{"line":17,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":62}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":76}},"9":{"start":{"line":16,"column":16},"end":{"line":16,"column":129}},"10":{"start":{"line":20,"column":0},"end":{"line":20,"column":42}},"11":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"12":{"start":{"line":30,"column":8},"end":{"line":30,"column":47}},"13":{"start":{"line":31,"column":8},"end":{"line":31,"column":27}},"14":{"start":{"line":38,"column":25},"end":{"line":38,"column":52}},"15":{"start":{"line":39,"column":23},"end":{"line":39,"column":52}},"16":{"start":{"line":40,"column":8},"end":{"line":40,"column":29}},"17":{"start":{"line":41,"column":8},"end":{"line":41,"column":47}},"18":{"start":{"line":42,"column":8},"end":{"line":42,"column":30}},"19":{"start":{"line":43,"column":8},"end":{"line":47,"column":9}},"20":{"start":{"line":44,"column":31},"end":{"line":44,"column":51}},"21":{"start":{"line":45,"column":31},"end":{"line":45,"column":67}},"22":{"start":{"line":46,"column":12},"end":{"line":46,"column":58}},"23":{"start":{"line":48,"column":8},"end":{"line":48,"column":24}},"24":{"start":{"line":54,"column":8},"end":{"line":57,"column":10}},"25":{"start":{"line":63,"column":23},"end":{"line":63,"column":49}},"26":{"start":{"line":64,"column":8},"end":{"line":64,"column":39}},"27":{"start":{"line":65,"column":27},"end":{"line":65,"column":53}},"28":{"start":{"line":66,"column":8},"end":{"line":66,"column":55}},"29":{"start":{"line":67,"column":8},"end":{"line":70,"column":9}},"30":{"start":{"line":68,"column":12},"end":{"line":68,"column":52}},"31":{"start":{"line":69,"column":12},"end":{"line":69,"column":56}},"32":{"start":{"line":71,"column":8},"end":{"line":71,"column":45}},"33":{"start":{"line":72,"column":8},"end":{"line":72,"column":49}},"34":{"start":{"line":73,"column":8},"end":{"line":73,"column":33}},"35":{"start":{"line":76,"column":0},"end":{"line":76,"column":54}},"36":{"start":{"line":77,"column":0},"end":{"line":77,"column":77}},"37":{"start":{"line":83,"column":8},"end":{"line":83,"column":28}},"38":{"start":{"line":87,"column":8},"end":{"line":87,"column":61}},"39":{"start":{"line":94,"column":25},"end":{"line":94,"column":66}},"40":{"start":{"line":95,"column":23},"end":{"line":95,"column":52}},"41":{"start":{"line":96,"column":8},"end":{"line":96,"column":29}},"42":{"start":{"line":97,"column":8},"end":{"line":97,"column":47}},"43":{"start":{"line":103,"column":8},"end":{"line":103,"column":46}},"44":{"start":{"line":104,"column":8},"end":{"line":104,"column":53}},"45":{"start":{"line":105,"column":24},"end":{"line":105,"column":44}},"46":{"start":{"line":106,"column":24},"end":{"line":106,"column":57}},"47":{"start":{"line":107,"column":8},"end":{"line":107,"column":43}},"48":{"start":{"line":108,"column":8},"end":{"line":108,"column":51}},"49":{"start":{"line":109,"column":8},"end":{"line":109,"column":50}},"50":{"start":{"line":110,"column":8},"end":{"line":110,"column":24}},"51":{"start":{"line":118,"column":8},"end":{"line":120,"column":9}},"52":{"start":{"line":119,"column":12},"end":{"line":119,"column":59}},"53":{"start":{"line":122,"column":8},"end":{"line":124,"column":9}},"54":{"start":{"line":123,"column":12},"end":{"line":123,"column":66}},"55":{"start":{"line":130,"column":8},"end":{"line":137,"column":10}},"56":{"start":{"line":143,"column":23},"end":{"line":143,"column":49}},"57":{"start":{"line":144,"column":8},"end":{"line":144,"column":39}},"58":{"start":{"line":145,"column":27},"end":{"line":145,"column":53}},"59":{"start":{"line":146,"column":8},"end":{"line":146,"column":44}},"60":{"start":{"line":147,"column":8},"end":{"line":147,"column":53}},"61":{"start":{"line":148,"column":8},"end":{"line":148,"column":50}},"62":{"start":{"line":149,"column":8},"end":{"line":149,"column":54}},"63":{"start":{"line":150,"column":8},"end":{"line":150,"column":49}},"64":{"start":{"line":151,"column":8},"end":{"line":151,"column":48}},"65":{"start":{"line":152,"column":8},"end":{"line":152,"column":45}},"66":{"start":{"line":153,"column":8},"end":{"line":153,"column":49}},"67":{"start":{"line":154,"column":8},"end":{"line":154,"column":33}},"68":{"start":{"line":157,"column":0},"end":{"line":157,"column":82}},"69":{"start":{"line":158,"column":0},"end":{"line":158,"column":105}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":18,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":32,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":28},"end":{"line":49,"column":5}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":53,"column":4},"end":{"line":53,"column":5}},"loc":{"start":{"line":53,"column":13},"end":{"line":58,"column":5}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":62,"column":4},"end":{"line":62,"column":5}},"loc":{"start":{"line":62,"column":16},"end":{"line":74,"column":5}},"line":62},"5":{"name":"(anonymous_5)","decl":{"start":{"line":82,"column":4},"end":{"line":82,"column":5}},"loc":{"start":{"line":82,"column":18},"end":{"line":88,"column":5}},"line":82},"6":{"name":"(anonymous_6)","decl":{"start":{"line":93,"column":4},"end":{"line":93,"column":5}},"loc":{"start":{"line":93,"column":28},"end":{"line":111,"column":5}},"line":93},"7":{"name":"(anonymous_7)","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":5}},"loc":{"start":{"line":117,"column":15},"end":{"line":125,"column":5}},"line":117},"8":{"name":"(anonymous_8)","decl":{"start":{"line":129,"column":4},"end":{"line":129,"column":5}},"loc":{"start":{"line":129,"column":13},"end":{"line":138,"column":5}},"line":129},"9":{"name":"(anonymous_9)","decl":{"start":{"line":142,"column":4},"end":{"line":142,"column":5}},"loc":{"start":{"line":142,"column":16},"end":{"line":155,"column":5}},"line":142}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":17,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":62}},{"start":{"line":13,"column":12},"end":{"line":14,"column":76}},{"start":{"line":15,"column":12},"end":{"line":16,"column":129}}],"line":10},"1":{"loc":{"start":{"line":118,"column":8},"end":{"line":120,"column":9}},"type":"if","locations":[{"start":{"line":118,"column":8},"end":{"line":120,"column":9}},{"start":{"line":118,"column":8},"end":{"line":120,"column":9}}],"line":118},"2":{"loc":{"start":{"line":122,"column":8},"end":{"line":124,"column":9}},"type":"if","locations":[{"start":{"line":122,"column":8},"end":{"line":124,"column":9}},{"start":{"line":122,"column":8},"end":{"line":124,"column":9}}],"line":122},"3":{"loc":{"start":{"line":147,"column":30},"end":{"line":147,"column":51}},"type":"cond-expr","locations":[{"start":{"line":147,"column":46},"end":{"line":147,"column":47}},{"start":{"line":147,"column":50},"end":{"line":147,"column":51}}],"line":147}},"s":{"0":1,"1":1,"2":1,"3":1,"4":68,"5":68,"6":68,"7":64,"8":4,"9":0,"10":1,"11":70,"12":70,"13":70,"14":69,"15":69,"16":69,"17":69,"18":69,"19":69,"20":138,"21":138,"22":138,"23":69,"24":3,"25":60,"26":60,"27":60,"28":60,"29":60,"30":120,"31":120,"32":60,"33":60,"34":60,"35":1,"36":1,"37":12,"38":12,"39":6,"40":6,"41":6,"42":6,"43":6,"44":6,"45":6,"46":6,"47":6,"48":6,"49":6,"50":6,"51":9,"52":2,"53":7,"54":1,"55":2,"56":6,"57":6,"58":6,"59":6,"60":6,"61":6,"62":6,"63":6,"64":6,"65":6,"66":6,"67":6,"68":1,"69":1},"f":{"0":68,"1":70,"2":69,"3":3,"4":60,"5":12,"6":6,"7":9,"8":2,"9":6},"b":{"0":[64,4,0],"1":[2,7],"2":[1,6],"3":[0,6]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/EventDescriptor.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/EventDescriptor.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class EventDescriptor {\n  public static deserialize(\n    buf: Buffer,\n  ): EnumEventDescriptorV0 | DigitDecompositionEventDescriptorV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.EnumEventDescriptorV0:\n        return EnumEventDescriptorV0.deserialize(buf);\n      case MessageType.DigitDecompositionEventDescriptorV0:\n        return DigitDecompositionEventDescriptorV0.deserialize(buf);\n      default:\n        throw new Error(\n          `Payout function TLV type must be EnumEventDescriptorV0 or DigitDecompositionEventDescriptorV0`,\n        );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON():\n    | IEnumEventDescriptorV0JSON\n    | IDigitDecompositionEventDescriptorV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * EnumEventDescriptor V0 is a simple enumeration of outcomes\n */\nexport class EnumEventDescriptorV0\n  extends EventDescriptor\n  implements IDlcMessage {\n  public static type = MessageType.EnumEventDescriptorV0;\n\n  /**\n   * Deserializes an enum_event_descriptor_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): EnumEventDescriptorV0 {\n    const instance = new EnumEventDescriptorV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize(); // need to fix this\n    reader.readUInt16BE(); // num_outcomes\n\n    while (!reader.eof) {\n      const outcomeLen = reader.readBigSize();\n      const outcomeBuf = reader.readBytes(Number(outcomeLen));\n      instance.outcomes.push(outcomeBuf.toString());\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for enum_event_descriptor_v0 message. enum_event_descriptor_v0 = 55302\n   */\n  public type = EnumEventDescriptorV0.type;\n\n  public length: bigint;\n\n  public outcomes: string[] = [];\n\n  /**\n   * Converts enum_event_descriptor_v0 to JSON\n   */\n  public toJSON(): IEnumEventDescriptorV0JSON {\n    return {\n      type: this.type,\n      outcomes: this.outcomes,\n    };\n  }\n\n  /**\n   * Serializes the enum_event_descriptor_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt16BE(this.outcomes.length);\n\n    for (const outcome of this.outcomes) {\n      dataWriter.writeBigSize(outcome.length);\n      dataWriter.writeBytes(Buffer.from(outcome));\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * DigitDecompositionEventDescriptorV0 V0 is a simple enumeration of outcomes\n */\nexport class DigitDecompositionEventDescriptorV0\n  extends EventDescriptor\n  implements IDlcMessage {\n  public static type = MessageType.DigitDecompositionEventDescriptorV0;\n\n  /**\n   * Deserializes an digit_decomposition_event_descriptor_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DigitDecompositionEventDescriptorV0 {\n    const instance = new DigitDecompositionEventDescriptorV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize(); // need to fix this\n\n    /**\n     * NOTE: BASE IS INCORRECT FORMAT FOR DLC SPEC (SHOULD BE BIGSIZE)\n     * Will be fixed in oracle_announcement_v1\n     * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md#version-0-digit_decomposition_event_descriptor\n     */\n    instance.base = reader.readUInt16BE();\n    instance.isSigned = reader.readUInt8() === 1;\n    const unitLen = reader.readBigSize();\n    const unitBuf = reader.readBytes(Number(unitLen));\n    instance.unit = unitBuf.toString();\n    instance.precision = reader.readUInt32BE();\n    instance.nbDigits = reader.readUInt16BE();\n\n    return instance;\n  }\n\n  /**\n   * The type for digit_decomposition_event_descriptor_v0 message. digit_decomposition_event_descriptor_v0 = 55302\n   */\n  public type = DigitDecompositionEventDescriptorV0.type;\n\n  public length: bigint;\n\n  public base: number; // Switch to bigint in oracle_announcement_v1\n\n  public isSigned: boolean;\n\n  public unit: string;\n\n  public precision: number;\n\n  public nbDigits: number;\n\n  /**\n   * Validates correctness of all fields in the message\n   * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    if (this.base <= 0) {\n      throw new Error('base must be greater than 0');\n    }\n\n    // TODO: support isSigned according to specifications\n    if (this.isSigned) {\n      throw new Error('node-dlc does not support isSigned');\n    }\n  }\n\n  /**\n   * Converts digit_decomposition_event_descriptor_v0 to JSON\n   */\n  public toJSON(): IDigitDecompositionEventDescriptorV0JSON {\n    return {\n      type: this.type,\n      base: this.base,\n      isSigned: this.isSigned,\n      unit: this.unit,\n      precision: this.precision,\n      nbDigits: this.nbDigits,\n    };\n  }\n\n  /**\n   * Serializes the digit_decomposition_event_descriptor_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeUInt16BE(this.base); // Switch to BigSize in oracle_announcement_v1\n    dataWriter.writeUInt8(this.isSigned ? 1 : 0);\n    dataWriter.writeBigSize(this.unit.length);\n    dataWriter.writeBytes(Buffer.from(this.unit));\n    dataWriter.writeUInt32BE(this.precision);\n    dataWriter.writeUInt16BE(this.nbDigits);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IEnumEventDescriptorV0JSON {\n  type: number;\n  outcomes: string[];\n}\n\nexport interface IDigitDecompositionEventDescriptorV0JSON {\n  type: number;\n  base: number;\n  isSigned: boolean;\n  unit: string;\n  precision: number;\n  nbDigits: number;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c79549934499770c0484fcd612583e8bd9164cfe","contentHash":"7f30eda977d117b2e72498292d0bf57884eceb654bb75624c8be567945748132"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestationV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestationV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":47}},"5":{"start":{"line":24,"column":8},"end":{"line":24,"column":45}},"6":{"start":{"line":25,"column":8},"end":{"line":25,"column":29}},"7":{"start":{"line":26,"column":8},"end":{"line":26,"column":27}},"8":{"start":{"line":33,"column":25},"end":{"line":33,"column":50}},"9":{"start":{"line":34,"column":23},"end":{"line":34,"column":52}},"10":{"start":{"line":35,"column":8},"end":{"line":35,"column":29}},"11":{"start":{"line":36,"column":8},"end":{"line":36,"column":47}},"12":{"start":{"line":37,"column":30},"end":{"line":37,"column":50}},"13":{"start":{"line":38,"column":27},"end":{"line":38,"column":66}},"14":{"start":{"line":39,"column":8},"end":{"line":39,"column":49}},"15":{"start":{"line":40,"column":8},"end":{"line":40,"column":53}},"16":{"start":{"line":41,"column":30},"end":{"line":41,"column":51}},"17":{"start":{"line":42,"column":8},"end":{"line":45,"column":9}},"18":{"start":{"line":42,"column":21},"end":{"line":42,"column":22}},"19":{"start":{"line":43,"column":30},"end":{"line":43,"column":50}},"20":{"start":{"line":44,"column":12},"end":{"line":44,"column":48}},"21":{"start":{"line":46,"column":8},"end":{"line":50,"column":9}},"22":{"start":{"line":47,"column":31},"end":{"line":47,"column":51}},"23":{"start":{"line":48,"column":31},"end":{"line":48,"column":67}},"24":{"start":{"line":49,"column":12},"end":{"line":49,"column":58}},"25":{"start":{"line":51,"column":8},"end":{"line":51,"column":24}},"26":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"27":{"start":{"line":55,"column":12},"end":{"line":55,"column":73}},"28":{"start":{"line":58,"column":8},"end":{"line":61,"column":9}},"29":{"start":{"line":58,"column":21},"end":{"line":58,"column":22}},"30":{"start":{"line":59,"column":24},"end":{"line":59,"column":100}},"31":{"start":{"line":60,"column":12},"end":{"line":60,"column":82}},"32":{"start":{"line":67,"column":8},"end":{"line":73,"column":10}},"33":{"start":{"line":71,"column":53},"end":{"line":71,"column":72}},"34":{"start":{"line":79,"column":23},"end":{"line":79,"column":49}},"35":{"start":{"line":80,"column":8},"end":{"line":80,"column":39}},"36":{"start":{"line":81,"column":27},"end":{"line":81,"column":53}},"37":{"start":{"line":82,"column":8},"end":{"line":82,"column":53}},"38":{"start":{"line":83,"column":8},"end":{"line":83,"column":57}},"39":{"start":{"line":84,"column":8},"end":{"line":84,"column":49}},"40":{"start":{"line":85,"column":8},"end":{"line":85,"column":57}},"41":{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},"42":{"start":{"line":87,"column":12},"end":{"line":87,"column":45}},"43":{"start":{"line":89,"column":8},"end":{"line":92,"column":9}},"44":{"start":{"line":90,"column":12},"end":{"line":90,"column":52}},"45":{"start":{"line":91,"column":12},"end":{"line":91,"column":56}},"46":{"start":{"line":93,"column":8},"end":{"line":93,"column":45}},"47":{"start":{"line":94,"column":8},"end":{"line":94,"column":49}},"48":{"start":{"line":95,"column":8},"end":{"line":95,"column":33}},"49":{"start":{"line":98,"column":0},"end":{"line":98,"column":50}},"50":{"start":{"line":99,"column":0},"end":{"line":99,"column":73}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":18},"end":{"line":27,"column":5}},"line":20},"1":{"name":"(anonymous_1)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":28},"end":{"line":52,"column":5}},"line":32},"2":{"name":"(anonymous_2)","decl":{"start":{"line":53,"column":4},"end":{"line":53,"column":5}},"loc":{"start":{"line":53,"column":15},"end":{"line":62,"column":5}},"line":53},"3":{"name":"(anonymous_3)","decl":{"start":{"line":66,"column":4},"end":{"line":66,"column":5}},"loc":{"start":{"line":66,"column":13},"end":{"line":74,"column":5}},"line":66},"4":{"name":"(anonymous_4)","decl":{"start":{"line":71,"column":44},"end":{"line":71,"column":45}},"loc":{"start":{"line":71,"column":53},"end":{"line":71,"column":72}},"line":71},"5":{"name":"(anonymous_5)","decl":{"start":{"line":78,"column":4},"end":{"line":78,"column":5}},"loc":{"start":{"line":78,"column":16},"end":{"line":96,"column":5}},"line":78}},"branchMap":{"0":{"loc":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},{"start":{"line":54,"column":8},"end":{"line":56,"column":9}}],"line":54}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":6,"7":6,"8":3,"9":3,"10":3,"11":3,"12":3,"13":3,"14":3,"15":3,"16":3,"17":3,"18":3,"19":3,"20":3,"21":3,"22":3,"23":3,"24":3,"25":3,"26":2,"27":0,"28":2,"29":2,"30":2,"31":2,"32":0,"33":0,"34":3,"35":3,"36":3,"37":3,"38":3,"39":3,"40":3,"41":3,"42":3,"43":3,"44":3,"45":3,"46":3,"47":3,"48":3,"49":1,"50":1},"f":{"0":6,"1":3,"2":2,"3":0,"4":0,"5":3},"b":{"0":[0,2]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestationV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestationV0.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\nimport { math, verify } from 'bip-schnorr';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * In order to make it possible to hold oracles accountable in cases where\n * they do not release a signature for an event outcome, there needs to be\n * a proof that an oracle has committed to a given outcome. This proof is\n * given in a so-called oracle announcement, which contains an oracle event\n * together with the oracle public key and a signature over its serialization,\n * which must be valid with respect to the specified public key.\n *\n * This also makes it possible for users to obtain oracle event information\n * from an un-trusted peer while being guaranteed that it originates from a\n * given oracle.\n */\nexport class OracleAttestationV0 implements IDlcMessage {\n  public static type = MessageType.OracleAttestationV0;\n\n  /**\n   * Deserializes an oracle_announcement_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleAttestationV0 {\n    const instance = new OracleAttestationV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    const eventIdLength = reader.readBigSize();\n    const eventIdBuf = reader.readBytes(Number(eventIdLength));\n    instance.eventId = eventIdBuf.toString();\n\n    instance.oraclePubkey = reader.readBytes(32);\n\n    const numSignatures = reader.readUInt16BE();\n\n    for (let i = 0; i < numSignatures; i++) {\n      const signature = reader.readBytes(64);\n      instance.signatures.push(signature);\n    }\n\n    while (!reader.eof) {\n      const outcomeLen = reader.readBigSize();\n      const outcomeBuf = reader.readBytes(Number(outcomeLen));\n      instance.outcomes.push(outcomeBuf.toString());\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_announcement_v0 message. oracle_announcement_v0 = 55332\n   */\n  public type = OracleAttestationV0.type;\n\n  public length: bigint;\n\n  public eventId: string;\n\n  public oraclePubkey: Buffer;\n\n  public signatures: Buffer[] = [];\n\n  public outcomes: string[] = [];\n\n  public validate(): void {\n    if (this.signatures.length !== this.outcomes.length) {\n      throw Error('signature and outcome length must be the same');\n    }\n\n    // Verify attestation outcome signatures\n    for (let i = 0; i < this.signatures.length; i++) {\n      const msg = math.taggedHash(\n        'DLC/oracle/attestation/v0',\n        this.outcomes[i],\n      );\n      verify(this.oraclePubkey, msg, this.signatures[i]);\n    }\n  }\n\n  /**\n   * Converts oracle_attestation_v0 to JSON\n   */\n  public toJSON(): OracleAttestationV0JSON {\n    return {\n      type: this.type,\n      eventId: this.eventId,\n      oraclePubkey: this.oraclePubkey.toString('hex'),\n      signatures: this.signatures.map((sig) => sig.toString('hex')),\n      outcomes: this.outcomes,\n    };\n  }\n\n  /**\n   * Serializes the oracle_announcement_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.eventId.length);\n    dataWriter.writeBytes(Buffer.from(this.eventId));\n    dataWriter.writeBytes(this.oraclePubkey);\n    dataWriter.writeUInt16BE(this.signatures.length);\n\n    for (const signature of this.signatures) {\n      dataWriter.writeBytes(signature);\n    }\n\n    for (const outcome of this.outcomes) {\n      dataWriter.writeBigSize(outcome.length);\n      dataWriter.writeBytes(Buffer.from(outcome));\n    }\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface OracleAttestationV0JSON {\n  type: number;\n  eventId: string;\n  oraclePubkey: string;\n  signatures: string[];\n  outcomes: string[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9efd415ac6a3ada0ad70b82aa699a65d852af3b5","contentHash":"562c754eb67e7918a38fc87f0e7941ea3b43bb4125e92ab3f92ea8b599c3f1a0"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderAccept.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderAccept.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":84}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":33},"end":{"line":7,"column":68}},"6":{"start":{"line":10,"column":23},"end":{"line":10,"column":52}},"7":{"start":{"line":11,"column":21},"end":{"line":11,"column":50}},"8":{"start":{"line":12,"column":8},"end":{"line":17,"column":9}},"9":{"start":{"line":14,"column":16},"end":{"line":14,"column":54}},"10":{"start":{"line":16,"column":16},"end":{"line":16,"column":79}},"11":{"start":{"line":20,"column":0},"end":{"line":20,"column":34}},"12":{"start":{"line":28,"column":8},"end":{"line":28,"column":28}},"13":{"start":{"line":32,"column":8},"end":{"line":32,"column":39}},"14":{"start":{"line":39,"column":25},"end":{"line":39,"column":44}},"15":{"start":{"line":40,"column":23},"end":{"line":40,"column":52}},"16":{"start":{"line":41,"column":8},"end":{"line":41,"column":30}},"17":{"start":{"line":42,"column":8},"end":{"line":42,"column":52}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":127}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":24}},"20":{"start":{"line":50,"column":8},"end":{"line":54,"column":10}},"21":{"start":{"line":60,"column":23},"end":{"line":60,"column":49}},"22":{"start":{"line":61,"column":8},"end":{"line":61,"column":40}},"23":{"start":{"line":62,"column":8},"end":{"line":62,"column":44}},"24":{"start":{"line":63,"column":8},"end":{"line":63,"column":62}},"25":{"start":{"line":64,"column":8},"end":{"line":64,"column":33}},"26":{"start":{"line":67,"column":0},"end":{"line":67,"column":38}},"27":{"start":{"line":68,"column":0},"end":{"line":68,"column":61}},"28":{"start":{"line":71,"column":8},"end":{"line":71,"column":26}},"29":{"start":{"line":78,"column":8},"end":{"line":78,"column":34}},"30":{"start":{"line":85,"column":8},"end":{"line":85,"column":28}},"31":{"start":{"line":92,"column":23},"end":{"line":92,"column":49}},"32":{"start":{"line":94,"column":8},"end":{"line":94,"column":49}},"33":{"start":{"line":96,"column":8},"end":{"line":100,"column":11}},"34":{"start":{"line":97,"column":37},"end":{"line":97,"column":55}},"35":{"start":{"line":98,"column":12},"end":{"line":98,"column":57}},"36":{"start":{"line":99,"column":12},"end":{"line":99,"column":48}},"37":{"start":{"line":101,"column":8},"end":{"line":101,"column":33}},"38":{"start":{"line":109,"column":23},"end":{"line":109,"column":52}},"39":{"start":{"line":110,"column":26},"end":{"line":110,"column":52}},"40":{"start":{"line":111,"column":29},"end":{"line":111,"column":49}},"41":{"start":{"line":112,"column":8},"end":{"line":117,"column":9}},"42":{"start":{"line":112,"column":21},"end":{"line":112,"column":22}},"43":{"start":{"line":113,"column":33},"end":{"line":113,"column":53}},"44":{"start":{"line":114,"column":30},"end":{"line":114,"column":68}},"45":{"start":{"line":115,"column":27},"end":{"line":115,"column":61}},"46":{"start":{"line":116,"column":12},"end":{"line":116,"column":40}},"47":{"start":{"line":118,"column":8},"end":{"line":118,"column":25}},"48":{"start":{"line":121,"column":0},"end":{"line":121,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":28},"end":{"line":18,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":18},"end":{"line":33,"column":5}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":28},"end":{"line":45,"column":5}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":13},"end":{"line":55,"column":5}},"line":49},"4":{"name":"(anonymous_4)","decl":{"start":{"line":59,"column":4},"end":{"line":59,"column":5}},"loc":{"start":{"line":59,"column":16},"end":{"line":65,"column":5}},"line":59},"5":{"name":"(anonymous_5)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":18},"end":{"line":72,"column":5}},"line":70},"6":{"name":"(anonymous_6)","decl":{"start":{"line":77,"column":4},"end":{"line":77,"column":5}},"loc":{"start":{"line":77,"column":22},"end":{"line":79,"column":5}},"line":77},"7":{"name":"(anonymous_7)","decl":{"start":{"line":84,"column":4},"end":{"line":84,"column":5}},"loc":{"start":{"line":84,"column":17},"end":{"line":86,"column":5}},"line":84},"8":{"name":"(anonymous_8)","decl":{"start":{"line":91,"column":4},"end":{"line":91,"column":5}},"loc":{"start":{"line":91,"column":16},"end":{"line":102,"column":5}},"line":91},"9":{"name":"(anonymous_9)","decl":{"start":{"line":96,"column":29},"end":{"line":96,"column":30}},"loc":{"start":{"line":96,"column":41},"end":{"line":100,"column":9}},"line":96},"10":{"name":"(anonymous_10)","decl":{"start":{"line":108,"column":4},"end":{"line":108,"column":5}},"loc":{"start":{"line":108,"column":28},"end":{"line":119,"column":5}},"line":108}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":17,"column":9}},"type":"switch","locations":[{"start":{"line":13,"column":12},"end":{"line":14,"column":54}},{"start":{"line":15,"column":12},"end":{"line":16,"column":79}}],"line":12}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":2,"7":2,"8":2,"9":2,"10":0,"11":1,"12":6,"13":6,"14":4,"15":4,"16":4,"17":4,"18":4,"19":4,"20":0,"21":8,"22":8,"23":8,"24":8,"25":8,"26":1,"27":1,"28":2,"29":4,"30":0,"31":3,"32":3,"33":3,"34":6,"35":6,"36":6,"37":3,"38":1,"39":1,"40":1,"41":1,"42":1,"43":2,"44":2,"45":2,"46":2,"47":1,"48":1},"f":{"0":2,"1":6,"2":4,"3":0,"4":8,"5":2,"6":4,"7":0,"8":3,"9":6,"10":1},"b":{"0":[2,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderAccept.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderAccept.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  IOrderNegotiationFieldsV0JSON,\n  IOrderNegotiationFieldsV1JSON,\n  OrderNegotiationFields,\n} from './OrderNegotiationFields';\n\nexport abstract class OrderAccept {\n  public static deserialize(buf: Buffer): OrderAccept {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.OrderAcceptV0:\n        return OrderAcceptV0.deserialize(buf);\n      default:\n        throw new Error(`Order accept TLV type must be OrderAcceptV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract toJSON(): IOrderAcceptV0JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * OrderAccept contains information about a node and indicates its\n * acceptance of the new order offer. This is the second step towards\n * order negotiation.\n */\nexport class OrderAcceptV0 extends OrderAccept implements IDlcMessage {\n  public static type = MessageType.OrderAcceptV0;\n\n  /**\n   * Deserializes an order_accept_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderAcceptV0 {\n    const instance = new OrderAcceptV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    instance.tempOrderId = reader.readBytes(32);\n    instance.negotiationFields = OrderNegotiationFields.deserialize(\n      getTlv(reader),\n    );\n\n    return instance;\n  }\n\n  /**\n   * The type for order_accept_v0 message. order_accept_v0 = 62772\n   */\n  public type = OrderAcceptV0.type;\n\n  public tempOrderId: Buffer;\n\n  public negotiationFields: OrderNegotiationFields;\n\n  /**\n   * Converts order_negotiation_fields_v0 to JSON\n   */\n  public toJSON(): IOrderAcceptV0JSON {\n    return {\n      type: this.type,\n      tempOrderId: this.tempOrderId.toString('hex'),\n      negotiationFields: this.negotiationFields.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the order_accept_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.tempOrderId);\n    writer.writeBytes(this.negotiationFields.serialize());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderAcceptV0JSON {\n  type: number;\n  tempOrderId: string;\n  negotiationFields:\n    | IOrderNegotiationFieldsV0JSON\n    | IOrderNegotiationFieldsV1JSON;\n}\n\nexport class OrderAcceptContainer {\n  private accepts: OrderAccept[] = [];\n\n  /**\n   * Adds an OrderAccept to the container.\n   * @param accept The OrderAccept to add.\n   */\n  public addAccept(accept: OrderAccept): void {\n    this.accepts.push(accept);\n  }\n\n  /**\n   * Returns all OrderAccepts in the container.\n   * @returns An array of OrderAccept instances.\n   */\n  public getAccepts(): OrderAccept[] {\n    return this.accepts;\n  }\n\n  /**\n   * Serializes all OrderAccepts in the container to a Buffer.\n   * @returns A Buffer containing the serialized OrderAccepts.\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    // Write the number of accepts in the container first.\n    writer.writeBigSize(this.accepts.length);\n    // Serialize each accept and write it.\n    this.accepts.forEach((accept) => {\n      const serializedAccept = accept.serialize();\n      writer.writeBigSize(serializedAccept.length);\n      writer.writeBytes(serializedAccept);\n    });\n    return writer.toBuffer();\n  }\n\n  /**\n   * Deserializes a Buffer into an OrderAcceptContainer with OrderAccepts.\n   * @param buf The Buffer to deserialize.\n   * @returns An OrderAcceptContainer instance.\n   */\n  public static deserialize(buf: Buffer): OrderAcceptContainer {\n    const reader = new BufferReader(buf);\n    const container = new OrderAcceptContainer();\n    const acceptsCount = reader.readBigSize();\n    for (let i = 0; i < acceptsCount; i++) {\n      const acceptLength = reader.readBigSize();\n      const acceptBuf = reader.readBytes(Number(acceptLength));\n      const accept = OrderAccept.deserialize(acceptBuf); // Adjust based on actual implementation.\n      container.addAccept(accept);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f57b5c0c48941b94f50a2662b16156cb355b3749","contentHash":"2464353e7efdd489bba619dc5a759028e0cfa91f3ae9ce617cce4ed17ffb67fe"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderNegotiationFields.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderNegotiationFields.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":110}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":21},"end":{"line":6,"column":44}},"5":{"start":{"line":9,"column":23},"end":{"line":9,"column":52}},"6":{"start":{"line":10,"column":21},"end":{"line":10,"column":49}},"7":{"start":{"line":11,"column":8},"end":{"line":18,"column":9}},"8":{"start":{"line":13,"column":16},"end":{"line":13,"column":65}},"9":{"start":{"line":15,"column":16},"end":{"line":15,"column":65}},"10":{"start":{"line":17,"column":16},"end":{"line":17,"column":130}},"11":{"start":{"line":21,"column":0},"end":{"line":21,"column":56}},"12":{"start":{"line":28,"column":8},"end":{"line":28,"column":28}},"13":{"start":{"line":32,"column":8},"end":{"line":32,"column":50}},"14":{"start":{"line":39,"column":25},"end":{"line":39,"column":55}},"15":{"start":{"line":40,"column":23},"end":{"line":40,"column":52}},"16":{"start":{"line":41,"column":8},"end":{"line":41,"column":29}},"17":{"start":{"line":42,"column":8},"end":{"line":42,"column":47}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":24}},"19":{"start":{"line":49,"column":8},"end":{"line":51,"column":10}},"20":{"start":{"line":57,"column":23},"end":{"line":57,"column":49}},"21":{"start":{"line":58,"column":8},"end":{"line":58,"column":39}},"22":{"start":{"line":59,"column":8},"end":{"line":59,"column":31}},"23":{"start":{"line":60,"column":8},"end":{"line":60,"column":33}},"24":{"start":{"line":63,"column":0},"end":{"line":63,"column":60}},"25":{"start":{"line":64,"column":0},"end":{"line":64,"column":83}},"26":{"start":{"line":71,"column":8},"end":{"line":71,"column":28}},"27":{"start":{"line":75,"column":8},"end":{"line":75,"column":50}},"28":{"start":{"line":82,"column":25},"end":{"line":82,"column":55}},"29":{"start":{"line":83,"column":23},"end":{"line":83,"column":52}},"30":{"start":{"line":84,"column":8},"end":{"line":84,"column":29}},"31":{"start":{"line":85,"column":8},"end":{"line":85,"column":47}},"32":{"start":{"line":86,"column":23},"end":{"line":86,"column":41}},"33":{"start":{"line":87,"column":8},"end":{"line":87,"column":74}},"34":{"start":{"line":88,"column":8},"end":{"line":88,"column":24}},"35":{"start":{"line":94,"column":8},"end":{"line":97,"column":10}},"36":{"start":{"line":103,"column":23},"end":{"line":103,"column":49}},"37":{"start":{"line":104,"column":8},"end":{"line":104,"column":39}},"38":{"start":{"line":105,"column":27},"end":{"line":105,"column":53}},"39":{"start":{"line":106,"column":8},"end":{"line":106,"column":59}},"40":{"start":{"line":107,"column":8},"end":{"line":107,"column":45}},"41":{"start":{"line":108,"column":8},"end":{"line":108,"column":49}},"42":{"start":{"line":109,"column":8},"end":{"line":109,"column":33}},"43":{"start":{"line":112,"column":0},"end":{"line":112,"column":60}},"44":{"start":{"line":113,"column":0},"end":{"line":113,"column":83}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":28},"end":{"line":19,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":18},"end":{"line":33,"column":5}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":28},"end":{"line":44,"column":5}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":13},"end":{"line":52,"column":5}},"line":48},"4":{"name":"(anonymous_4)","decl":{"start":{"line":56,"column":4},"end":{"line":56,"column":5}},"loc":{"start":{"line":56,"column":16},"end":{"line":61,"column":5}},"line":56},"5":{"name":"(anonymous_5)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":18},"end":{"line":76,"column":5}},"line":70},"6":{"name":"(anonymous_6)","decl":{"start":{"line":81,"column":4},"end":{"line":81,"column":5}},"loc":{"start":{"line":81,"column":28},"end":{"line":89,"column":5}},"line":81},"7":{"name":"(anonymous_7)","decl":{"start":{"line":93,"column":4},"end":{"line":93,"column":5}},"loc":{"start":{"line":93,"column":13},"end":{"line":98,"column":5}},"line":93},"8":{"name":"(anonymous_8)","decl":{"start":{"line":102,"column":4},"end":{"line":102,"column":5}},"loc":{"start":{"line":102,"column":16},"end":{"line":110,"column":5}},"line":102}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":8},"end":{"line":18,"column":9}},"type":"switch","locations":[{"start":{"line":12,"column":12},"end":{"line":13,"column":65}},{"start":{"line":14,"column":12},"end":{"line":15,"column":65}},{"start":{"line":16,"column":12},"end":{"line":17,"column":130}}],"line":11}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":6,"7":6,"8":5,"9":1,"10":0,"11":1,"12":8,"13":8,"14":7,"15":7,"16":7,"17":7,"18":7,"19":0,"20":10,"21":10,"22":10,"23":10,"24":1,"25":1,"26":2,"27":2,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":0,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1},"f":{"0":6,"1":8,"2":7,"3":0,"4":10,"5":2,"6":1,"7":0,"8":1},"b":{"0":[5,1,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderNegotiationFields.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderNegotiationFields.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAE7C,6CAA2D;AAE3D,MAAsB,sBAAsB;IACnC,MAAM,CAAC,WAAW,CACvB,GAAW;QAEX,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,wBAAwB;gBACvC,OAAO,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnD,KAAK,yBAAW,CAAC,wBAAwB;gBACvC,OAAO,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnD;gBACE,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;SACL;IACH,CAAC;CAWF;AA7BD,wDA6BC;AAED;;;GAGG;AACH,MAAa,wBACX,SAAQ,sBAAsB;IADhC;;QAmBE;;WAEG;QACI,SAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC;IAuB9C,CAAC;IAxCC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEvC,OAAO,QAAQ,CAAC;IAClB,CAAC;IASD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEvB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA5CH,4DA6CC;AA1Ce,6BAAI,GAAG,yBAAW,CAAC,wBAAwB,CAAC;AA4C5D;;;GAGG;AACH,MAAa,wBACX,SAAQ,sBAAsB;IADhC;;QAqBE;;WAEG;QACI,SAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC;IA+B9C,CAAC;IAlDC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,UAAU,GAAG,uBAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAErD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;SACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAtDH,4DAuDC;AApDe,6BAAI,GAAG,yBAAW,CAAC,wBAAwB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\nimport { IOrderOfferJSON, OrderOffer } from './OrderOffer';\n\nexport abstract class OrderNegotiationFields {\n  public static deserialize(\n    buf: Buffer,\n  ): OrderNegotiationFieldsV0 | OrderNegotiationFieldsV1 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.OrderNegotiationFieldsV0:\n        return OrderNegotiationFieldsV0.deserialize(buf);\n      case MessageType.OrderNegotiationFieldsV1:\n        return OrderNegotiationFieldsV1.deserialize(buf);\n      default:\n        throw new Error(\n          `Order Negotiation Fields TLV type must be OrderNegotiationFieldsV0 or OrderNegotiationFieldsV1`,\n        );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON():\n    | IOrderNegotiationFieldsV0JSON\n    | IOrderNegotiationFieldsV1JSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * OrderNegotiationFields V0 contains preferences of the accepter of a order\n * offer which are taken into account during DLC construction.\n */\nexport class OrderNegotiationFieldsV0\n  extends OrderNegotiationFields\n  implements IDlcMessage {\n  public static type = MessageType.OrderNegotiationFieldsV0;\n\n  /**\n   * Deserializes an order_negotiation_fields_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderNegotiationFieldsV0 {\n    const instance = new OrderNegotiationFieldsV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    return instance;\n  }\n\n  /**\n   * The type for order_negotiation_fields_v0 message. order_negotiation_fields_v0 = 65334\n   */\n  public type = OrderNegotiationFieldsV0.type;\n\n  public length: bigint;\n\n  /**\n   * Converts order_negotiation_fields_v0 to JSON\n   */\n  public toJSON(): IOrderNegotiationFieldsV0JSON {\n    return {\n      type: this.type,\n    };\n  }\n\n  /**\n   * Serializes the order_negotiation_fields_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n    writer.writeBigSize(0);\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * OrderNegotiationFields V1 contains preferences of the acceptor of a order\n * offer which are taken into account during DLC construction.\n */\nexport class OrderNegotiationFieldsV1\n  extends OrderNegotiationFields\n  implements IDlcMessage {\n  public static type = MessageType.OrderNegotiationFieldsV1;\n\n  /**\n   * Deserializes an order_negotiation_fields_v1 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderNegotiationFieldsV1 {\n    const instance = new OrderNegotiationFieldsV1();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    const newBuf = reader.readBytes();\n    instance.orderOffer = OrderOffer.deserialize(newBuf);\n\n    return instance;\n  }\n\n  /**\n   * The type for order_negotiation_fields_v1 message. order_negotiation_fields_v1 = 65336\n   */\n  public type = OrderNegotiationFieldsV1.type;\n\n  public length: bigint;\n\n  public orderOffer: OrderOffer;\n\n  /**\n   * Converts order_negotiation_fields_v1 to JSON\n   */\n  public toJSON(): IOrderNegotiationFieldsV1JSON {\n    return {\n      type: this.type,\n      orderOffer: this.orderOffer.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the order_negotiation_fields_v1 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBytes(this.orderOffer.serialize());\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderNegotiationFieldsV0JSON {\n  type: number;\n}\n\nexport interface IOrderNegotiationFieldsV1JSON {\n  type: number;\n  orderOffer: IOrderOfferJSON;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"eec7dd64f993e232992b7428a735daa8046f0f13","contentHash":"2a7f203e5ae78230a265ea941ad1e2d4340222a39a5dc25447b2f0632975a755"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderOffer.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderOffer.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":81}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":25},"end":{"line":6,"column":63}},"5":{"start":{"line":7,"column":17},"end":{"line":7,"column":47}},"6":{"start":{"line":8,"column":19},"end":{"line":8,"column":52}},"7":{"start":{"line":9,"column":28},"end":{"line":9,"column":58}},"8":{"start":{"line":10,"column":23},"end":{"line":10,"column":48}},"9":{"start":{"line":11,"column":23},"end":{"line":11,"column":48}},"10":{"start":{"line":12,"column":24},"end":{"line":12,"column":50}},"11":{"start":{"line":13,"column":28},"end":{"line":13,"column":58}},"12":{"start":{"line":14,"column":27},"end":{"line":14,"column":36}},"13":{"start":{"line":17,"column":23},"end":{"line":17,"column":52}},"14":{"start":{"line":18,"column":21},"end":{"line":18,"column":50}},"15":{"start":{"line":19,"column":8},"end":{"line":24,"column":9}},"16":{"start":{"line":21,"column":16},"end":{"line":21,"column":53}},"17":{"start":{"line":23,"column":16},"end":{"line":23,"column":77}},"18":{"start":{"line":27,"column":0},"end":{"line":27,"column":32}},"19":{"start":{"line":35,"column":8},"end":{"line":35,"column":28}},"20":{"start":{"line":39,"column":8},"end":{"line":39,"column":38}},"21":{"start":{"line":46,"column":25},"end":{"line":46,"column":43}},"22":{"start":{"line":47,"column":23},"end":{"line":47,"column":52}},"23":{"start":{"line":48,"column":8},"end":{"line":48,"column":30}},"24":{"start":{"line":49,"column":8},"end":{"line":49,"column":50}},"25":{"start":{"line":50,"column":8},"end":{"line":50,"column":102}},"26":{"start":{"line":51,"column":8},"end":{"line":51,"column":65}},"27":{"start":{"line":52,"column":8},"end":{"line":52,"column":54}},"28":{"start":{"line":53,"column":8},"end":{"line":53,"column":53}},"29":{"start":{"line":54,"column":8},"end":{"line":54,"column":56}},"30":{"start":{"line":55,"column":8},"end":{"line":78,"column":9}},"31":{"start":{"line":56,"column":24},"end":{"line":56,"column":52}},"32":{"start":{"line":57,"column":30},"end":{"line":57,"column":59}},"33":{"start":{"line":58,"column":29},"end":{"line":58,"column":76}},"34":{"start":{"line":59,"column":12},"end":{"line":77,"column":13}},"35":{"start":{"line":61,"column":20},"end":{"line":61,"column":89}},"36":{"start":{"line":62,"column":20},"end":{"line":62,"column":26}},"37":{"start":{"line":64,"column":20},"end":{"line":64,"column":86}},"38":{"start":{"line":65,"column":20},"end":{"line":65,"column":26}},"39":{"start":{"line":67,"column":20},"end":{"line":67,"column":99}},"40":{"start":{"line":68,"column":20},"end":{"line":68,"column":26}},"41":{"start":{"line":70,"column":20},"end":{"line":72,"column":21}},"42":{"start":{"line":71,"column":24},"end":{"line":71,"column":57}},"43":{"start":{"line":73,"column":20},"end":{"line":73,"column":109}},"44":{"start":{"line":74,"column":20},"end":{"line":74,"column":26}},"45":{"start":{"line":76,"column":20},"end":{"line":76,"column":26}},"46":{"start":{"line":79,"column":8},"end":{"line":79,"column":24}},"47":{"start":{"line":82,"column":8},"end":{"line":82,"column":91}},"48":{"start":{"line":83,"column":8},"end":{"line":83,"column":37}},"49":{"start":{"line":84,"column":8},"end":{"line":84,"column":115}},"50":{"start":{"line":85,"column":8},"end":{"line":85,"column":93}},"51":{"start":{"line":86,"column":8},"end":{"line":86,"column":91}},"52":{"start":{"line":87,"column":8},"end":{"line":87,"column":97}},"53":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"54":{"start":{"line":92,"column":12},"end":{"line":92,"column":95}},"55":{"start":{"line":94,"column":8},"end":{"line":96,"column":9}},"56":{"start":{"line":95,"column":12},"end":{"line":95,"column":79}},"57":{"start":{"line":97,"column":8},"end":{"line":99,"column":9}},"58":{"start":{"line":98,"column":12},"end":{"line":98,"column":82}},"59":{"start":{"line":104,"column":8},"end":{"line":109,"column":9}},"60":{"start":{"line":108,"column":12},"end":{"line":108,"column":84}},"61":{"start":{"line":111,"column":8},"end":{"line":113,"column":9}},"62":{"start":{"line":112,"column":12},"end":{"line":112,"column":76}},"63":{"start":{"line":115,"column":8},"end":{"line":115,"column":37}},"64":{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},"65":{"start":{"line":118,"column":12},"end":{"line":118,"column":86}},"66":{"start":{"line":125,"column":21},"end":{"line":125,"column":23}},"67":{"start":{"line":126,"column":8},"end":{"line":127,"column":46}},"68":{"start":{"line":127,"column":12},"end":{"line":127,"column":46}},"69":{"start":{"line":128,"column":8},"end":{"line":129,"column":45}},"70":{"start":{"line":129,"column":12},"end":{"line":129,"column":45}},"71":{"start":{"line":130,"column":8},"end":{"line":131,"column":50}},"72":{"start":{"line":131,"column":12},"end":{"line":131,"column":50}},"73":{"start":{"line":132,"column":8},"end":{"line":133,"column":94}},"74":{"start":{"line":133,"column":12},"end":{"line":133,"column":94}},"75":{"start":{"line":133,"column":61},"end":{"line":133,"column":92}},"76":{"start":{"line":134,"column":8},"end":{"line":143,"column":10}},"77":{"start":{"line":149,"column":23},"end":{"line":149,"column":49}},"78":{"start":{"line":150,"column":8},"end":{"line":150,"column":40}},"79":{"start":{"line":151,"column":8},"end":{"line":151,"column":42}},"80":{"start":{"line":152,"column":8},"end":{"line":152,"column":57}},"81":{"start":{"line":153,"column":8},"end":{"line":153,"column":59}},"82":{"start":{"line":154,"column":8},"end":{"line":154,"column":48}},"83":{"start":{"line":155,"column":8},"end":{"line":155,"column":47}},"84":{"start":{"line":156,"column":8},"end":{"line":156,"column":50}},"85":{"start":{"line":157,"column":8},"end":{"line":158,"column":57}},"86":{"start":{"line":158,"column":12},"end":{"line":158,"column":57}},"87":{"start":{"line":159,"column":8},"end":{"line":160,"column":56}},"88":{"start":{"line":160,"column":12},"end":{"line":160,"column":56}},"89":{"start":{"line":161,"column":8},"end":{"line":162,"column":61}},"90":{"start":{"line":162,"column":12},"end":{"line":162,"column":61}},"91":{"start":{"line":163,"column":8},"end":{"line":164,"column":105}},"92":{"start":{"line":164,"column":12},"end":{"line":164,"column":105}},"93":{"start":{"line":164,"column":61},"end":{"line":164,"column":103}},"94":{"start":{"line":165,"column":8},"end":{"line":165,"column":33}},"95":{"start":{"line":168,"column":0},"end":{"line":168,"column":36}},"96":{"start":{"line":169,"column":0},"end":{"line":169,"column":59}},"97":{"start":{"line":172,"column":8},"end":{"line":172,"column":25}},"98":{"start":{"line":179,"column":8},"end":{"line":179,"column":32}},"99":{"start":{"line":186,"column":8},"end":{"line":186,"column":27}},"100":{"start":{"line":193,"column":23},"end":{"line":193,"column":49}},"101":{"start":{"line":195,"column":8},"end":{"line":195,"column":48}},"102":{"start":{"line":197,"column":8},"end":{"line":202,"column":11}},"103":{"start":{"line":198,"column":36},"end":{"line":198,"column":53}},"104":{"start":{"line":200,"column":12},"end":{"line":200,"column":56}},"105":{"start":{"line":201,"column":12},"end":{"line":201,"column":47}},"106":{"start":{"line":203,"column":8},"end":{"line":203,"column":33}},"107":{"start":{"line":211,"column":23},"end":{"line":211,"column":52}},"108":{"start":{"line":212,"column":26},"end":{"line":212,"column":51}},"109":{"start":{"line":213,"column":28},"end":{"line":213,"column":48}},"110":{"start":{"line":214,"column":8},"end":{"line":220,"column":9}},"111":{"start":{"line":214,"column":21},"end":{"line":214,"column":22}},"112":{"start":{"line":216,"column":32},"end":{"line":216,"column":52}},"113":{"start":{"line":217,"column":29},"end":{"line":217,"column":66}},"114":{"start":{"line":218,"column":26},"end":{"line":218,"column":58}},"115":{"start":{"line":219,"column":12},"end":{"line":219,"column":38}},"116":{"start":{"line":221,"column":8},"end":{"line":221,"column":25}},"117":{"start":{"line":224,"column":0},"end":{"line":224,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":28},"end":{"line":25,"column":5}},"line":16},"1":{"name":"(anonymous_1)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":18},"end":{"line":40,"column":5}},"line":34},"2":{"name":"(anonymous_2)","decl":{"start":{"line":45,"column":4},"end":{"line":45,"column":5}},"loc":{"start":{"line":45,"column":28},"end":{"line":80,"column":5}},"line":45},"3":{"name":"(anonymous_3)","decl":{"start":{"line":81,"column":4},"end":{"line":81,"column":5}},"loc":{"start":{"line":81,"column":15},"end":{"line":120,"column":5}},"line":81},"4":{"name":"(anonymous_4)","decl":{"start":{"line":124,"column":4},"end":{"line":124,"column":5}},"loc":{"start":{"line":124,"column":13},"end":{"line":144,"column":5}},"line":124},"5":{"name":"(anonymous_5)","decl":{"start":{"line":133,"column":44},"end":{"line":133,"column":45}},"loc":{"start":{"line":133,"column":61},"end":{"line":133,"column":92}},"line":133},"6":{"name":"(anonymous_6)","decl":{"start":{"line":148,"column":4},"end":{"line":148,"column":5}},"loc":{"start":{"line":148,"column":16},"end":{"line":166,"column":5}},"line":148},"7":{"name":"(anonymous_7)","decl":{"start":{"line":164,"column":44},"end":{"line":164,"column":45}},"loc":{"start":{"line":164,"column":61},"end":{"line":164,"column":103}},"line":164},"8":{"name":"(anonymous_8)","decl":{"start":{"line":171,"column":4},"end":{"line":171,"column":5}},"loc":{"start":{"line":171,"column":18},"end":{"line":173,"column":5}},"line":171},"9":{"name":"(anonymous_9)","decl":{"start":{"line":178,"column":4},"end":{"line":178,"column":5}},"loc":{"start":{"line":178,"column":20},"end":{"line":180,"column":5}},"line":178},"10":{"name":"(anonymous_10)","decl":{"start":{"line":185,"column":4},"end":{"line":185,"column":5}},"loc":{"start":{"line":185,"column":16},"end":{"line":187,"column":5}},"line":185},"11":{"name":"(anonymous_11)","decl":{"start":{"line":192,"column":4},"end":{"line":192,"column":5}},"loc":{"start":{"line":192,"column":16},"end":{"line":204,"column":5}},"line":192},"12":{"name":"(anonymous_12)","decl":{"start":{"line":197,"column":28},"end":{"line":197,"column":29}},"loc":{"start":{"line":197,"column":39},"end":{"line":202,"column":9}},"line":197},"13":{"name":"(anonymous_13)","decl":{"start":{"line":210,"column":4},"end":{"line":210,"column":5}},"loc":{"start":{"line":210,"column":28},"end":{"line":222,"column":5}},"line":210}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":8},"end":{"line":24,"column":9}},"type":"switch","locations":[{"start":{"line":20,"column":12},"end":{"line":21,"column":53}},{"start":{"line":22,"column":12},"end":{"line":23,"column":77}}],"line":19},"1":{"loc":{"start":{"line":59,"column":12},"end":{"line":77,"column":13}},"type":"switch","locations":[{"start":{"line":60,"column":16},"end":{"line":62,"column":26}},{"start":{"line":63,"column":16},"end":{"line":65,"column":26}},{"start":{"line":66,"column":16},"end":{"line":68,"column":26}},{"start":{"line":69,"column":16},"end":{"line":74,"column":26}},{"start":{"line":75,"column":16},"end":{"line":76,"column":26}}],"line":59},"2":{"loc":{"start":{"line":70,"column":20},"end":{"line":72,"column":21}},"type":"if","locations":[{"start":{"line":70,"column":20},"end":{"line":72,"column":21}},{"start":{"line":70,"column":20},"end":{"line":72,"column":21}}],"line":70},"3":{"loc":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"type":"if","locations":[{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},{"start":{"line":91,"column":8},"end":{"line":93,"column":9}}],"line":91},"4":{"loc":{"start":{"line":94,"column":8},"end":{"line":96,"column":9}},"type":"if","locations":[{"start":{"line":94,"column":8},"end":{"line":96,"column":9}},{"start":{"line":94,"column":8},"end":{"line":96,"column":9}}],"line":94},"5":{"loc":{"start":{"line":97,"column":8},"end":{"line":99,"column":9}},"type":"if","locations":[{"start":{"line":97,"column":8},"end":{"line":99,"column":9}},{"start":{"line":97,"column":8},"end":{"line":99,"column":9}}],"line":97},"6":{"loc":{"start":{"line":104,"column":8},"end":{"line":109,"column":9}},"type":"if","locations":[{"start":{"line":104,"column":8},"end":{"line":109,"column":9}},{"start":{"line":104,"column":8},"end":{"line":109,"column":9}}],"line":104},"7":{"loc":{"start":{"line":104,"column":14},"end":{"line":107,"column":58}},"type":"binary-expr","locations":[{"start":{"line":104,"column":15},"end":{"line":104,"column":52}},{"start":{"line":105,"column":12},"end":{"line":105,"column":52}},{"start":{"line":106,"column":13},"end":{"line":106,"column":51}},{"start":{"line":107,"column":16},"end":{"line":107,"column":57}}],"line":104},"8":{"loc":{"start":{"line":111,"column":8},"end":{"line":113,"column":9}},"type":"if","locations":[{"start":{"line":111,"column":8},"end":{"line":113,"column":9}},{"start":{"line":111,"column":8},"end":{"line":113,"column":9}}],"line":111},"9":{"loc":{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},"type":"if","locations":[{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},{"start":{"line":117,"column":8},"end":{"line":119,"column":9}}],"line":117},"10":{"loc":{"start":{"line":126,"column":8},"end":{"line":127,"column":46}},"type":"if","locations":[{"start":{"line":126,"column":8},"end":{"line":127,"column":46}},{"start":{"line":126,"column":8},"end":{"line":127,"column":46}}],"line":126},"11":{"loc":{"start":{"line":128,"column":8},"end":{"line":129,"column":45}},"type":"if","locations":[{"start":{"line":128,"column":8},"end":{"line":129,"column":45}},{"start":{"line":128,"column":8},"end":{"line":129,"column":45}}],"line":128},"12":{"loc":{"start":{"line":130,"column":8},"end":{"line":131,"column":50}},"type":"if","locations":[{"start":{"line":130,"column":8},"end":{"line":131,"column":50}},{"start":{"line":130,"column":8},"end":{"line":131,"column":50}}],"line":130},"13":{"loc":{"start":{"line":132,"column":8},"end":{"line":133,"column":94}},"type":"if","locations":[{"start":{"line":132,"column":8},"end":{"line":133,"column":94}},{"start":{"line":132,"column":8},"end":{"line":133,"column":94}}],"line":132},"14":{"loc":{"start":{"line":157,"column":8},"end":{"line":158,"column":57}},"type":"if","locations":[{"start":{"line":157,"column":8},"end":{"line":158,"column":57}},{"start":{"line":157,"column":8},"end":{"line":158,"column":57}}],"line":157},"15":{"loc":{"start":{"line":159,"column":8},"end":{"line":160,"column":56}},"type":"if","locations":[{"start":{"line":159,"column":8},"end":{"line":160,"column":56}},{"start":{"line":159,"column":8},"end":{"line":160,"column":56}}],"line":159},"16":{"loc":{"start":{"line":161,"column":8},"end":{"line":162,"column":61}},"type":"if","locations":[{"start":{"line":161,"column":8},"end":{"line":162,"column":61}},{"start":{"line":161,"column":8},"end":{"line":162,"column":61}}],"line":161},"17":{"loc":{"start":{"line":163,"column":8},"end":{"line":164,"column":105}},"type":"if","locations":[{"start":{"line":163,"column":8},"end":{"line":164,"column":105}},{"start":{"line":163,"column":8},"end":{"line":164,"column":105}}],"line":163}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":3,"14":3,"15":3,"16":3,"17":0,"18":1,"19":19,"20":19,"21":18,"22":18,"23":18,"24":18,"25":18,"26":18,"27":18,"28":18,"29":18,"30":18,"31":5,"32":5,"33":5,"34":5,"35":3,"36":3,"37":1,"38":1,"39":1,"40":1,"41":0,"42":0,"43":0,"44":0,"45":0,"46":18,"47":11,"48":11,"49":11,"50":11,"51":11,"52":11,"53":11,"54":1,"55":10,"56":1,"57":9,"58":1,"59":8,"60":1,"61":7,"62":2,"63":5,"64":5,"65":2,"66":2,"67":2,"68":2,"69":2,"70":1,"71":2,"72":0,"73":2,"74":0,"75":0,"76":2,"77":12,"78":12,"79":12,"80":12,"81":12,"82":12,"83":12,"84":12,"85":12,"86":3,"87":12,"88":2,"89":12,"90":1,"91":12,"92":0,"93":0,"94":12,"95":1,"96":1,"97":2,"98":4,"99":0,"100":3,"101":3,"102":3,"103":6,"104":6,"105":6,"106":3,"107":1,"108":1,"109":1,"110":1,"111":1,"112":2,"113":2,"114":2,"115":2,"116":1,"117":1},"f":{"0":3,"1":19,"2":18,"3":11,"4":2,"5":0,"6":12,"7":0,"8":2,"9":4,"10":0,"11":3,"12":6,"13":1},"b":{"0":[3,0],"1":[3,1,1,0,0],"2":[0,0],"3":[1,10],"4":[1,9],"5":[1,8],"6":[1,7],"7":[8,7,2,1],"8":[2,5],"9":[2,3],"10":[2,0],"11":[1,1],"12":[0,2],"13":[0,2],"14":[3,9],"15":[2,10],"16":[1,11],"17":[0,12]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderOffer.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OrderOffer.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { IOrderMetadataJSON } from '..';\nimport { MessageType } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport {\n  validateBigInt,\n  validateBuffer,\n  validateNumber,\n} from '../validation/validate';\nimport { BatchFundingGroup, IBatchFundingGroupJSON } from './BatchFundingGroup';\nimport {\n  ContractInfo,\n  IContractInfoV0JSON,\n  IContractInfoV1JSON,\n} from './ContractInfo';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  IOrderIrcInfoJSON,\n  OrderIrcInfo,\n  OrderIrcInfoV0,\n} from './OrderIrcInfo';\nimport { OrderMetadata, OrderMetadataV0 } from './OrderMetadata';\nimport { IOrderPositionInfoJSON, OrderPositionInfo } from './OrderPositionInfo';\n\nconst LOCKTIME_THRESHOLD = 500000000;\nexport abstract class OrderOffer {\n  public static deserialize(buf: Buffer): OrderOffer {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.OrderOfferV0:\n        return OrderOfferV0.deserialize(buf);\n      default:\n        throw new Error(`Order offer TLV type must be OrderOfferV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract validate(): void;\n\n  public abstract toJSON(): IOrderOfferJSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * OrderOffer message contains information about a node and indicates its\n * desire to enter into a new contract. This is the first step toward\n * order negotiation.\n */\nexport class OrderOfferV0 extends OrderOffer implements IDlcMessage {\n  public static type = MessageType.OrderOfferV0;\n\n  /**\n   * Deserializes an offer_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderOfferV0 {\n    const instance = new OrderOfferV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    instance.chainHash = reader.readBytes(32);\n    instance.contractInfo = ContractInfo.deserialize(getTlv(reader));\n    instance.offerCollateralSatoshis = reader.readUInt64BE();\n    instance.feeRatePerVb = reader.readUInt64BE();\n    instance.cetLocktime = reader.readUInt32BE();\n    instance.refundLocktime = reader.readUInt32BE();\n\n    while (!reader.eof) {\n      const buf = getTlv(reader);\n      const tlvReader = new BufferReader(buf);\n      const { type } = deserializeTlv(tlvReader);\n\n      switch (Number(type)) {\n        case MessageType.OrderMetadataV0:\n          instance.metadata = OrderMetadataV0.deserialize(buf);\n          break;\n        case MessageType.OrderIrcInfoV0:\n          instance.ircInfo = OrderIrcInfoV0.deserialize(buf);\n          break;\n        case MessageType.OrderPositionInfoV0:\n          instance.positionInfo = OrderPositionInfo.deserialize(buf);\n          break;\n        case MessageType.BatchFundingGroup:\n          if (!instance.batchFundingGroups) {\n            instance.batchFundingGroups = [];\n          }\n          instance.batchFundingGroups.push(BatchFundingGroup.deserialize(buf));\n          break;\n        default:\n          break;\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for order_offer_v0 message. order_offer_v0 = 62770\n   */\n  public type = OrderOfferV0.type;\n\n  public chainHash: Buffer;\n\n  public contractInfo: ContractInfo;\n\n  public offerCollateralSatoshis: bigint;\n\n  public feeRatePerVb: bigint;\n\n  public cetLocktime: number;\n\n  public refundLocktime: number;\n\n  public metadata?: OrderMetadata;\n\n  public ircInfo?: OrderIrcInfo;\n\n  public positionInfo?: OrderPositionInfo;\n\n  public batchFundingGroups?: BatchFundingGroup[];\n\n  public validate(): void {\n    validateBuffer(this.chainHash, 'chainHash', OrderOfferV0.name, 32);\n    this.contractInfo.validate();\n    validateBigInt(\n      this.offerCollateralSatoshis,\n      'offerCollateralSatoshis',\n      OrderOfferV0.name,\n    );\n    validateBigInt(this.feeRatePerVb, 'feeRatePerVb', OrderOfferV0.name);\n    validateNumber(this.cetLocktime, 'cetLocktime', OrderOfferV0.name);\n    validateNumber(this.refundLocktime, 'refundLocktime', OrderOfferV0.name);\n\n    // 1. Type is set automatically in class\n    // 2. chain_hash must be validated as input by end user\n\n    // 3. offer_collateral_satoshis must be greater than or equal to 1000\n    if (this.offerCollateralSatoshis < 1000) {\n      throw new Error(\n        'offer_collateral_satoshis must be greater than or equal to 1000',\n      );\n    }\n\n    if (this.cetLocktime < 0) {\n      throw new Error('cet_locktime must be greater than or equal to 0');\n    }\n\n    if (this.refundLocktime < 0) {\n      throw new Error('refund_locktime must be greater than or equal to 0');\n    }\n\n    // 4. cet_locktime and refund_locktime must either both be unix timestamps, or both be block heights.\n    // https://en.bitcoin.it/wiki/NLockTime\n    // https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki#detailed-specification\n    // https://github.com/bitcoin/bitcoin/blob/master/src/script/script.h#L39\n    if (\n      !(\n        (this.cetLocktime < LOCKTIME_THRESHOLD &&\n          this.refundLocktime < LOCKTIME_THRESHOLD) ||\n        (this.cetLocktime >= LOCKTIME_THRESHOLD &&\n          this.refundLocktime >= LOCKTIME_THRESHOLD)\n      )\n    ) {\n      throw new Error('cetLocktime and refundLocktime must be in same units');\n    }\n\n    // 5. cetLocktime must be less than refundLocktime\n    if (this.cetLocktime >= this.refundLocktime) {\n      throw new Error('cetLocktime must be less than refundLocktime');\n    }\n\n    // 6. validate contractInfo\n    this.contractInfo.validate();\n\n    // totalCollaterial should be > offerCollaterial (logical validation)\n    if (this.contractInfo.totalCollateral <= this.offerCollateralSatoshis) {\n      throw new Error('totalCollateral should be greater than offerCollateral');\n    }\n  }\n\n  /**\n   * Converts order_offer_v0 to JSON\n   */\n  public toJSON(): IOrderOfferJSON {\n    const tlvs = [];\n\n    if (this.metadata) tlvs.push(this.metadata.toJSON());\n    if (this.ircInfo) tlvs.push(this.ircInfo.toJSON());\n    if (this.positionInfo) tlvs.push(this.positionInfo.toJSON());\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        tlvs.push(fundingInfo.toJSON()),\n      );\n\n    return {\n      type: this.type,\n      chainHash: this.chainHash.toString('hex'),\n      contractInfo: this.contractInfo.toJSON(),\n      offerCollateralSatoshis: Number(this.offerCollateralSatoshis),\n      feeRatePerVb: Number(this.feeRatePerVb),\n      cetLocktime: this.cetLocktime,\n      refundLocktime: this.refundLocktime,\n      tlvs,\n    };\n  }\n\n  /**\n   * Serializes the order_offer_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.chainHash);\n    writer.writeBytes(this.contractInfo.serialize());\n    writer.writeUInt64BE(this.offerCollateralSatoshis);\n    writer.writeUInt64BE(this.feeRatePerVb);\n    writer.writeUInt32BE(this.cetLocktime);\n    writer.writeUInt32BE(this.refundLocktime);\n\n    if (this.metadata) writer.writeBytes(this.metadata.serialize());\n    if (this.ircInfo) writer.writeBytes(this.ircInfo.serialize());\n    if (this.positionInfo) writer.writeBytes(this.positionInfo.serialize());\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        writer.writeBytes(fundingInfo.serialize()),\n      );\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderOfferJSON {\n  type: number;\n  chainHash: string;\n  contractInfo: IContractInfoV0JSON | IContractInfoV1JSON;\n  offerCollateralSatoshis: number;\n  feeRatePerVb: number;\n  cetLocktime: number;\n  refundLocktime: number;\n  tlvs: (\n    | IOrderMetadataJSON\n    | IOrderIrcInfoJSON\n    | IOrderPositionInfoJSON\n    | IBatchFundingGroupJSON\n  )[];\n}\n\nexport class OrderOfferContainer {\n  private offers: OrderOffer[] = [];\n\n  /**\n   * Adds an OrderOffer to the container.\n   * @param offer The OrderOffer to add.\n   */\n  public addOffer(offer: OrderOffer): void {\n    this.offers.push(offer);\n  }\n\n  /**\n   * Returns all OrderOffers in the container.\n   * @returns An array of OrderOffer instances.\n   */\n  public getOffers(): OrderOffer[] {\n    return this.offers;\n  }\n\n  /**\n   * Serializes all OrderOffers in the container to a Buffer.\n   * @returns A Buffer containing the serialized OrderOffers.\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    // Write the number of offers in the container first.\n    writer.writeBigSize(this.offers.length);\n    // Serialize each offer and write it.\n    this.offers.forEach((offer) => {\n      const serializedOffer = offer.serialize();\n      // Optionally, write the length of the serialized offer for easier deserialization.\n      writer.writeBigSize(serializedOffer.length);\n      writer.writeBytes(serializedOffer);\n    });\n    return writer.toBuffer();\n  }\n\n  /**\n   * Deserializes a Buffer into an OrderOfferContainer with OrderOffers.\n   * @param buf The Buffer to deserialize.\n   * @returns An OrderOfferContainer instance.\n   */\n  public static deserialize(buf: Buffer): OrderOfferContainer {\n    const reader = new BufferReader(buf);\n    const container = new OrderOfferContainer();\n    const offersCount = reader.readBigSize();\n    for (let i = 0; i < offersCount; i++) {\n      // Optionally, read the length of the serialized offer if it was written during serialization.\n      const offerLength = reader.readBigSize();\n      const offerBuf = reader.readBytes(Number(offerLength));\n      const offer = OrderOffer.deserialize(offerBuf); // Adjust based on actual implementation.\n      container.addOffer(offer);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"deb2a7dd58f21ac661ea807cfd5dbd7a46f3bc75","contentHash":"11ea0a5a5cac457edf089011a2d8ecae03a56763514467e0862f612cc6c662e8"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/validation/validate.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/validation/validate.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":82}},"2":{"start":{"line":4,"column":23},"end":{"line":11,"column":1}},"3":{"start":{"line":5,"column":4},"end":{"line":6,"column":56}},"4":{"start":{"line":6,"column":8},"end":{"line":6,"column":56}},"5":{"start":{"line":7,"column":4},"end":{"line":8,"column":62}},"6":{"start":{"line":8,"column":8},"end":{"line":8,"column":62}},"7":{"start":{"line":9,"column":4},"end":{"line":10,"column":83}},"8":{"start":{"line":10,"column":8},"end":{"line":10,"column":83}},"9":{"start":{"line":12,"column":0},"end":{"line":12,"column":40}},"10":{"start":{"line":13,"column":23},"end":{"line":20,"column":1}},"11":{"start":{"line":14,"column":4},"end":{"line":15,"column":56}},"12":{"start":{"line":15,"column":8},"end":{"line":15,"column":56}},"13":{"start":{"line":16,"column":4},"end":{"line":17,"column":63}},"14":{"start":{"line":17,"column":8},"end":{"line":17,"column":63}},"15":{"start":{"line":18,"column":4},"end":{"line":19,"column":66}},"16":{"start":{"line":19,"column":8},"end":{"line":19,"column":66}},"17":{"start":{"line":21,"column":0},"end":{"line":21,"column":40}},"18":{"start":{"line":22,"column":23},"end":{"line":29,"column":1}},"19":{"start":{"line":23,"column":4},"end":{"line":24,"column":56}},"20":{"start":{"line":24,"column":8},"end":{"line":24,"column":56}},"21":{"start":{"line":25,"column":4},"end":{"line":26,"column":63}},"22":{"start":{"line":26,"column":8},"end":{"line":26,"column":63}},"23":{"start":{"line":27,"column":4},"end":{"line":28,"column":66}},"24":{"start":{"line":28,"column":8},"end":{"line":28,"column":66}},"25":{"start":{"line":30,"column":0},"end":{"line":30,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":23},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":66},"end":{"line":11,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":23},"end":{"line":13,"column":24}},"loc":{"start":{"line":13,"column":50},"end":{"line":20,"column":1}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":23},"end":{"line":22,"column":24}},"loc":{"start":{"line":22,"column":50},"end":{"line":29,"column":1}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":6,"column":56}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":6,"column":56}},{"start":{"line":5,"column":4},"end":{"line":6,"column":56}}],"line":5},"1":{"loc":{"start":{"line":7,"column":4},"end":{"line":8,"column":62}},"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":8,"column":62}},{"start":{"line":7,"column":4},"end":{"line":8,"column":62}}],"line":7},"2":{"loc":{"start":{"line":9,"column":4},"end":{"line":10,"column":83}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":10,"column":83}},{"start":{"line":9,"column":4},"end":{"line":10,"column":83}}],"line":9},"3":{"loc":{"start":{"line":9,"column":8},"end":{"line":9,"column":57}},"type":"binary-expr","locations":[{"start":{"line":9,"column":8},"end":{"line":9,"column":22}},{"start":{"line":9,"column":26},"end":{"line":9,"column":57}}],"line":9},"4":{"loc":{"start":{"line":14,"column":4},"end":{"line":15,"column":56}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":15,"column":56}},{"start":{"line":14,"column":4},"end":{"line":15,"column":56}}],"line":14},"5":{"loc":{"start":{"line":16,"column":4},"end":{"line":17,"column":63}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":17,"column":63}},{"start":{"line":16,"column":4},"end":{"line":17,"column":63}}],"line":16},"6":{"loc":{"start":{"line":18,"column":4},"end":{"line":19,"column":66}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":19,"column":66}},{"start":{"line":18,"column":4},"end":{"line":19,"column":66}}],"line":18},"7":{"loc":{"start":{"line":23,"column":4},"end":{"line":24,"column":56}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":24,"column":56}},{"start":{"line":23,"column":4},"end":{"line":24,"column":56}}],"line":23},"8":{"loc":{"start":{"line":25,"column":4},"end":{"line":26,"column":63}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":26,"column":63}},{"start":{"line":25,"column":4},"end":{"line":26,"column":63}}],"line":25},"9":{"loc":{"start":{"line":27,"column":4},"end":{"line":28,"column":66}},"type":"if","locations":[{"start":{"line":27,"column":4},"end":{"line":28,"column":66}},{"start":{"line":27,"column":4},"end":{"line":28,"column":66}}],"line":27}},"s":{"0":1,"1":1,"2":1,"3":11,"4":0,"5":11,"6":0,"7":11,"8":0,"9":1,"10":1,"11":22,"12":0,"13":22,"14":0,"15":22,"16":0,"17":1,"18":1,"19":22,"20":0,"21":22,"22":0,"23":22,"24":0,"25":1},"f":{"0":11,"1":22,"2":22},"b":{"0":[0,11],"1":[0,11],"2":[0,11],"3":[11,11],"4":[0,22],"5":[0,22],"6":[0,22],"7":[0,22],"8":[0,22],"9":[0,22]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/validation/validate.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/validation/validate.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAC5B,KAAa,EACb,GAAW,EACX,SAAiB,EACjB,cAAuB,EACjB,EAAE;IACR,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,eAAe,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,qBAAqB,CAAC,CAAC;IAC9E,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;QACnD,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,0BAA0B,cAAc,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAVW,QAAA,cAAc,kBAUzB;AAEK,MAAM,cAAc,GAAG,CAC5B,KAAa,EACb,GAAW,EACX,SAAiB,EACX,EAAE;IACR,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,eAAe,CAAC,CAAC;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,sBAAsB,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,yBAAyB,CAAC,CAAC;AAC9D,CAAC,CAAC;AAVW,QAAA,cAAc,kBAUzB;AAEK,MAAM,cAAc,GAAG,CAC5B,KAAa,EACb,GAAW,EACX,SAAiB,EACX,EAAE;IACR,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,eAAe,CAAC,CAAC;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,sBAAsB,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,CAAC;QAAE,MAAM,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,yBAAyB,CAAC,CAAC;AAC7E,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB","sourcesContent":["export const validateBuffer = (\n  value: Buffer,\n  key: string,\n  className: string,\n  expectedLength?: number,\n): void => {\n  if (value === undefined) throw Error(`${className} ${key} is undefined`);\n  if (value.length === 0) throw Error(`${className} ${key} length cannot be 0`);\n  if (expectedLength && value.length !== expectedLength)\n    throw Error(`${className} ${key} length expected to be ${expectedLength}`);\n};\n\nexport const validateBigInt = (\n  value: bigint,\n  key: string,\n  className: string,\n): void => {\n  if (value === undefined) throw Error(`${className} ${key} is undefined`);\n  if (typeof value !== 'bigint')\n    throw Error(`${className} ${key} must be type bigint`);\n  if (value === BigInt(0))\n    throw Error(`${className} ${key} must be greater than 0`);\n};\n\nexport const validateNumber = (\n  value: number,\n  key: string,\n  className: string,\n): void => {\n  if (value === undefined) throw Error(`${className} ${key} is undefined`);\n  if (typeof value !== 'number')\n    throw Error(`${className} ${key} must be type number`);\n  if (value === 0) throw Error(`${className} ${key} must be greater than 0`);\n};\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5811942643af5209bac2563e60a9f6f5c8f23702","contentHash":"d8543961841f31cf6a0eb30bdbc7be0227a10055b5bcaca6f0b4152303df74ec"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfoV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfoV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":31},"end":{"line":7,"column":64}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":38}},"7":{"start":{"line":24,"column":25},"end":{"line":24,"column":43}},"8":{"start":{"line":25,"column":23},"end":{"line":25,"column":52}},"9":{"start":{"line":26,"column":8},"end":{"line":26,"column":29}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":47}},"11":{"start":{"line":28,"column":8},"end":{"line":28,"column":118}},"12":{"start":{"line":29,"column":8},"end":{"line":29,"column":24}},"13":{"start":{"line":32,"column":8},"end":{"line":32,"column":37}},"14":{"start":{"line":38,"column":8},"end":{"line":41,"column":10}},"15":{"start":{"line":47,"column":23},"end":{"line":47,"column":49}},"16":{"start":{"line":48,"column":8},"end":{"line":48,"column":39}},"17":{"start":{"line":49,"column":27},"end":{"line":49,"column":53}},"18":{"start":{"line":50,"column":8},"end":{"line":50,"column":61}},"19":{"start":{"line":51,"column":8},"end":{"line":51,"column":45}},"20":{"start":{"line":52,"column":8},"end":{"line":52,"column":49}},"21":{"start":{"line":53,"column":8},"end":{"line":53,"column":33}},"22":{"start":{"line":56,"column":0},"end":{"line":56,"column":36}},"23":{"start":{"line":57,"column":0},"end":{"line":57,"column":59}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":18},"end":{"line":18,"column":5}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":28},"end":{"line":30,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":15},"end":{"line":33,"column":5}},"line":31},"3":{"name":"(anonymous_3)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":13},"end":{"line":42,"column":5}},"line":37},"4":{"name":"(anonymous_4)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":16},"end":{"line":54,"column":5}},"line":46}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":62,"7":58,"8":58,"9":58,"10":58,"11":58,"12":58,"13":25,"14":5,"15":29,"16":29,"17":29,"18":29,"19":29,"20":29,"21":29,"22":1,"23":1},"f":{"0":62,"1":58,"2":25,"3":5,"4":29},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfoV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfoV0.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAC7C,gDAA6C;AAE7C,iEAGgC;AAEhC;;;GAGG;AACH,MAAa,YAAY;IAAzB;QAkBE;;WAEG;QACI,SAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAmClC,CAAC;IArDC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,QAAQ,CAAC,YAAY,GAAG,2CAAoB,CAAC,WAAW,CAAC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,CAAC;QAEzE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWM,QAAQ;QACb,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;QAErD,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAvDH,oCAwDC;AAvDe,iBAAI,GAAG,yBAAW,CAAC,YAAY,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  OracleAnnouncementV0,\n  OracleAnnouncementV0JSON,\n} from './OracleAnnouncementV0';\n\n/**\n * OracleInfo contains information about the oracles to be used in\n * executing a DLC.\n */\nexport class OracleInfoV0 implements IDlcMessage {\n  public static type = MessageType.OracleInfoV0;\n\n  /**\n   * Deserializes an oracle_info_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleInfoV0 {\n    const instance = new OracleInfoV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.announcement = OracleAnnouncementV0.deserialize(getTlv(reader));\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_info_v0 message. oracle_info_v0 = 42770\n   */\n  public type = OracleInfoV0.type;\n\n  public length: bigint;\n\n  public announcement: OracleAnnouncementV0;\n\n  public validate(): void {\n    this.announcement.validate();\n  }\n\n  /**\n   * Converts oracle_info_v0 to JSON\n   */\n  public toJSON(): OracleInfoV0JSON {\n    return {\n      type: this.type,\n      announcement: this.announcement.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the oracle_info_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBytes(this.announcement.serialize());\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface OracleInfoV0JSON {\n  type: number;\n  announcement: OracleAnnouncementV0JSON;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8434c6c7e4b0a45ef079525e0c8a6ce8b1474afd","contentHash":"001579ea522c26751f4ddd0185f2c7ab76d2695664a7399ea6674bda840cf637"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCancel.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCancel.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":70}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":50}},"6":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":52}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":79}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":30}},"10":{"start":{"line":26,"column":8},"end":{"line":26,"column":28}},"11":{"start":{"line":30,"column":8},"end":{"line":30,"column":37}},"12":{"start":{"line":31,"column":8},"end":{"line":31,"column":28}},"13":{"start":{"line":38,"column":25},"end":{"line":38,"column":42}},"14":{"start":{"line":39,"column":23},"end":{"line":39,"column":52}},"15":{"start":{"line":40,"column":8},"end":{"line":40,"column":30}},"16":{"start":{"line":41,"column":8},"end":{"line":41,"column":51}},"17":{"start":{"line":42,"column":8},"end":{"line":42,"column":49}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":24}},"19":{"start":{"line":49,"column":23},"end":{"line":49,"column":49}},"20":{"start":{"line":50,"column":8},"end":{"line":50,"column":40}},"21":{"start":{"line":51,"column":8},"end":{"line":51,"column":43}},"22":{"start":{"line":52,"column":8},"end":{"line":52,"column":43}},"23":{"start":{"line":53,"column":8},"end":{"line":53,"column":33}},"24":{"start":{"line":56,"column":0},"end":{"line":56,"column":34}},"25":{"start":{"line":57,"column":0},"end":{"line":57,"column":57}},"26":{"start":{"line":59,"column":0},"end":{"line":63,"column":65}},"27":{"start":{"line":60,"column":4},"end":{"line":60,"column":54}},"28":{"start":{"line":61,"column":4},"end":{"line":61,"column":52}},"29":{"start":{"line":62,"column":4},"end":{"line":62,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":16,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":32,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":28},"end":{"line":44,"column":5}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":16},"end":{"line":54,"column":5}},"line":48},"4":{"name":"(anonymous_4)","decl":{"start":{"line":59,"column":1},"end":{"line":59,"column":2}},"loc":{"start":{"line":59,"column":23},"end":{"line":63,"column":1}},"line":59}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":52}},{"start":{"line":13,"column":12},"end":{"line":14,"column":79}}],"line":10},"1":{"loc":{"start":{"line":63,"column":16},"end":{"line":63,"column":63}},"type":"binary-expr","locations":[{"start":{"line":63,"column":16},"end":{"line":63,"column":34}},{"start":{"line":63,"column":39},"end":{"line":63,"column":62}}],"line":63}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1,"10":2,"11":2,"12":2,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1},"f":{"0":0,"1":2,"2":1,"3":1,"4":1},"b":{"0":[0,0],"1":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCancel.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCancel.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C,MAAsB,SAAS;IACtB,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,WAAW;gBAC1B,OAAO,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC;gBACE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC,gEAAgE;SACnI;IACH,CAAC;CAKF;AAjBD,8BAiBC;AAED;;;;GAIG;AACH,MAAa,WAAY,SAAQ,SAAS;IAA1C;;QAkBE;;WAEG;QACI,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAIxB,eAAU,GAAe,CAAC,CAAC;IAapC,CAAC;IAnCC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY;QACnC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3C,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAEzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWD;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AArCH,kCAsCC;AArCe,gBAAI,GAAG,yBAAW,CAAC,WAAW,CAAC;AAuC/C,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iDAAW,CAAA;IACX,+CAAU,CAAA;IACV,6CAAS,CAAA;AACX,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class DlcCancel {\n  public static deserialize(buf: Buffer): DlcCancelV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcCancelV0:\n        return DlcCancelV0.deserialize(buf);\n      default:\n        throw new Error(`DLC Cancel message type must be DlcCancelV0`); // This is a temporary measure while protocol is being developed\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcOffer message contains information about a node and indicates its\n * desire to enter into a new contract. This is the first step toward\n * creating the funding transaction and CETs.\n */\nexport class DlcCancelV0 extends DlcCancel implements IDlcMessage {\n  public static type = MessageType.DlcCancelV0;\n\n  /**\n   * Deserializes an offer_dlc_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcCancelV0 {\n    const instance = new DlcCancelV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    instance.contractId = reader.readBytes(32);\n    instance.cancelType = reader.readUInt8();\n\n    return instance;\n  }\n\n  /**\n   * The type for cancel_dlc_v0 message. cancel_dlc_v0 = 52172\n   */\n  public type = DlcCancelV0.type;\n\n  public contractId: Buffer;\n\n  public cancelType: CancelType = 0;\n\n  /**\n   * Serializes the offer_dlc_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBytes(this.contractId);\n    writer.writeUInt8(this.cancelType);\n\n    return writer.toBuffer();\n  }\n}\n\nexport enum CancelType {\n  Unknown = 0,\n  Market = 1,\n  Error = 2,\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"51555387285ed120d64ff24874387769c8365631","contentHash":"86a57c022920aa9797db9d36f61af92bcfb9949be41b0997f0f3c0eb0bdee287"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCloseMetadata.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCloseMetadata.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":46}},"3":{"start":{"line":5,"column":12},"end":{"line":5,"column":25}},"4":{"start":{"line":16,"column":25},"end":{"line":16,"column":47}},"5":{"start":{"line":17,"column":8},"end":{"line":17,"column":82}},"6":{"start":{"line":18,"column":8},"end":{"line":18,"column":84}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":74}},"8":{"start":{"line":20,"column":8},"end":{"line":20,"column":76}},"9":{"start":{"line":21,"column":8},"end":{"line":21,"column":72}},"10":{"start":{"line":22,"column":8},"end":{"line":22,"column":74}},"11":{"start":{"line":23,"column":8},"end":{"line":23,"column":58}},"12":{"start":{"line":24,"column":8},"end":{"line":24,"column":60}},"13":{"start":{"line":25,"column":8},"end":{"line":25,"column":46}},"14":{"start":{"line":26,"column":8},"end":{"line":26,"column":24}},"15":{"start":{"line":29,"column":25},"end":{"line":29,"column":47}},"16":{"start":{"line":30,"column":8},"end":{"line":30,"column":61}},"17":{"start":{"line":31,"column":8},"end":{"line":31,"column":63}},"18":{"start":{"line":32,"column":8},"end":{"line":32,"column":53}},"19":{"start":{"line":33,"column":8},"end":{"line":33,"column":55}},"20":{"start":{"line":34,"column":8},"end":{"line":34,"column":63}},"21":{"start":{"line":35,"column":8},"end":{"line":35,"column":65}},"22":{"start":{"line":36,"column":8},"end":{"line":36,"column":54}},"23":{"start":{"line":37,"column":8},"end":{"line":37,"column":40}},"24":{"start":{"line":38,"column":8},"end":{"line":38,"column":48}},"25":{"start":{"line":39,"column":8},"end":{"line":39,"column":24}},"26":{"start":{"line":45,"column":8},"end":{"line":55,"column":10}},"27":{"start":{"line":58,"column":25},"end":{"line":58,"column":45}},"28":{"start":{"line":59,"column":26},"end":{"line":59,"column":47}},"29":{"start":{"line":60,"column":23},"end":{"line":60,"column":50}},"30":{"start":{"line":61,"column":8},"end":{"line":61,"column":57}},"31":{"start":{"line":62,"column":8},"end":{"line":62,"column":59}},"32":{"start":{"line":63,"column":8},"end":{"line":63,"column":49}},"33":{"start":{"line":64,"column":8},"end":{"line":64,"column":51}},"34":{"start":{"line":65,"column":8},"end":{"line":65,"column":59}},"35":{"start":{"line":66,"column":8},"end":{"line":66,"column":61}},"36":{"start":{"line":67,"column":8},"end":{"line":67,"column":50}},"37":{"start":{"line":68,"column":8},"end":{"line":68,"column":36}},"38":{"start":{"line":69,"column":8},"end":{"line":69,"column":44}},"39":{"start":{"line":70,"column":8},"end":{"line":70,"column":47}},"40":{"start":{"line":73,"column":0},"end":{"line":73,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":26},"end":{"line":27,"column":5}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":56},"end":{"line":40,"column":5}},"line":28},"2":{"name":"(anonymous_2)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":13},"end":{"line":56,"column":5}},"line":44},"3":{"name":"(anonymous_3)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":20},"end":{"line":71,"column":5}},"line":57}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCloseMetadata.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcCloseMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tx } from '@node-dlc/bitcoin';\n\nimport { DlcAcceptV0, DlcOfferV0, DlcTransactionsV0 } from '..';\n\n/**\n * DlcClose Metadata object contains information required for verifying DlcClose\n * message.\n */\nexport class DlcCloseMetadata {\n  /**\n   * Convert JSON to DlcCloseMetadata\n   * @param json\n   */\n  public static fromJSON(json: IDlcCloseMetadataJSON): DlcCloseMetadata {\n    const instance = new DlcCloseMetadata();\n\n    instance.offerFundingPubKey = Buffer.from(json.offerFundingPubKey, 'hex');\n    instance.acceptFundingPubKey = Buffer.from(json.acceptFundingPubKey, 'hex');\n    instance.offerPayoutSPK = Buffer.from(json.offerPayoutSPK, 'hex');\n    instance.acceptPayoutSPK = Buffer.from(json.acceptPayoutSPK, 'hex');\n    instance.offerPayoutSerialId = BigInt(json.offerPayoutSerialId);\n    instance.acceptPayoutSerialId = BigInt(json.acceptPayoutSerialId);\n    instance.feeRatePerVb = BigInt(json.feeRatePerVb);\n    instance.fundTx = Tx.fromHex(json.fundTx);\n    instance.fundTxVout = json.fundTxVout;\n\n    return instance;\n  }\n\n  public static fromDlcMessages(\n    dlcOffer: DlcOfferV0,\n    dlcAccept: DlcAcceptV0,\n    dlcTxs: DlcTransactionsV0,\n  ): DlcCloseMetadata {\n    const instance = new DlcCloseMetadata();\n\n    instance.offerFundingPubKey = dlcOffer.fundingPubKey;\n    instance.acceptFundingPubKey = dlcAccept.fundingPubKey;\n    instance.offerPayoutSPK = dlcOffer.payoutSPK;\n    instance.acceptPayoutSPK = dlcAccept.payoutSPK;\n    instance.offerPayoutSerialId = dlcOffer.payoutSerialId;\n    instance.acceptPayoutSerialId = dlcAccept.payoutSerialId;\n    instance.feeRatePerVb = dlcOffer.feeRatePerVb;\n    instance.fundTx = dlcTxs.fundTx;\n    instance.fundTxVout = dlcTxs.fundTxVout;\n\n    return instance;\n  }\n\n  public offerFundingPubKey: Buffer;\n\n  public acceptFundingPubKey: Buffer;\n\n  public offerPayoutSPK: Buffer;\n\n  public acceptPayoutSPK: Buffer;\n\n  public offerPayoutSerialId: bigint;\n\n  public acceptPayoutSerialId: bigint;\n\n  public feeRatePerVb: bigint;\n\n  public fundTx: Tx;\n\n  public fundTxVout: number;\n\n  /**\n   * Converts dlc_close_metadata to JSON\n   */\n  public toJSON(): IDlcCloseMetadataJSON {\n    return {\n      offerFundingPubKey: this.offerFundingPubKey.toString('hex'),\n      acceptFundingPubKey: this.acceptFundingPubKey.toString('hex'),\n      offerPayoutSPK: this.offerPayoutSPK.toString('hex'),\n      acceptPayoutSPK: this.acceptPayoutSPK.toString('hex'),\n      offerPayoutSerialId: Number(this.offerPayoutSerialId),\n      acceptPayoutSerialId: Number(this.acceptPayoutSerialId),\n      feeRatePerVb: Number(this.feeRatePerVb),\n      fundTx: this.fundTx.serialize().toString('hex'),\n      fundTxVout: this.fundTxVout,\n    };\n  }\n\n  public toDlcMessages(): {\n    dlcOffer: DlcOfferV0;\n    dlcAccept: DlcAcceptV0;\n    dlcTxs: DlcTransactionsV0;\n  } {\n    const dlcOffer = new DlcOfferV0();\n    const dlcAccept = new DlcAcceptV0();\n    const dlcTxs = new DlcTransactionsV0();\n\n    dlcOffer.fundingPubKey = this.offerFundingPubKey;\n    dlcAccept.fundingPubKey = this.acceptFundingPubKey;\n    dlcOffer.payoutSPK = this.offerPayoutSPK;\n    dlcAccept.payoutSPK = this.acceptPayoutSPK;\n    dlcOffer.payoutSerialId = this.offerPayoutSerialId;\n    dlcAccept.payoutSerialId = this.acceptPayoutSerialId;\n    dlcOffer.feeRatePerVb = this.feeRatePerVb;\n    dlcTxs.fundTx = this.fundTx;\n    dlcTxs.fundTxVout = this.fundTxVout;\n\n    return { dlcOffer, dlcAccept, dlcTxs };\n  }\n}\n\nexport interface IDlcCloseMetadataJSON {\n  offerFundingPubKey: string;\n  acceptFundingPubKey: string;\n  offerPayoutSPK: string;\n  acceptPayoutSPK: string;\n  offerPayoutSerialId: number;\n  acceptPayoutSerialId: number;\n  feeRatePerVb: number;\n  fundTx: string;\n  fundTxVout: number;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5783d7ba8e3a78fe78dcd982411276fc2f9de1a7","contentHash":"5598a648ab2444ab0679803eb84e9548b06ab781ade3f86b2d43b514911197b3"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcIds.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcIds.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":43}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":50}},"6":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":49}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":73}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":24}},"10":{"start":{"line":24,"column":8},"end":{"line":24,"column":28}},"11":{"start":{"line":28,"column":8},"end":{"line":28,"column":34}},"12":{"start":{"line":29,"column":8},"end":{"line":29,"column":22}},"13":{"start":{"line":36,"column":25},"end":{"line":36,"column":39}},"14":{"start":{"line":37,"column":23},"end":{"line":37,"column":52}},"15":{"start":{"line":38,"column":8},"end":{"line":38,"column":30}},"16":{"start":{"line":39,"column":23},"end":{"line":39,"column":43}},"17":{"start":{"line":40,"column":8},"end":{"line":42,"column":9}},"18":{"start":{"line":40,"column":21},"end":{"line":40,"column":22}},"19":{"start":{"line":41,"column":12},"end":{"line":41,"column":52}},"20":{"start":{"line":43,"column":8},"end":{"line":43,"column":24}},"21":{"start":{"line":49,"column":23},"end":{"line":49,"column":49}},"22":{"start":{"line":50,"column":8},"end":{"line":50,"column":40}},"23":{"start":{"line":51,"column":8},"end":{"line":51,"column":45}},"24":{"start":{"line":52,"column":8},"end":{"line":54,"column":9}},"25":{"start":{"line":53,"column":12},"end":{"line":53,"column":34}},"26":{"start":{"line":55,"column":8},"end":{"line":55,"column":33}},"27":{"start":{"line":58,"column":0},"end":{"line":58,"column":28}},"28":{"start":{"line":59,"column":0},"end":{"line":59,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":16,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":18},"end":{"line":30,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":35,"column":4},"end":{"line":35,"column":5}},"loc":{"start":{"line":35,"column":28},"end":{"line":44,"column":5}},"line":35},"3":{"name":"(anonymous_3)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":16},"end":{"line":56,"column":5}},"line":48}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":49}},{"start":{"line":13,"column":12},"end":{"line":14,"column":73}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":1,"28":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcIds.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcIds.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C,MAAsB,MAAM;IACnB,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,QAAQ;gBACvB,OAAO,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC;gBACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;SAC5D;IACH,CAAC;CAKF;AAjBD,wBAiBC;AAED;;GAEG;AACH,MAAa,QAAS,SAAQ,MAAM;IAApC;;QAqBE;;WAEG;QACI,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAErB,QAAG,GAAa,EAAE,CAAC;IAe5B,CAAC;IAtCC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;SACzC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IASD;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;YACzB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACvB;QAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAxCH,4BAyCC;AAxCe,aAAI,GAAG,yBAAW,CAAC,QAAQ,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class DlcIds {\n  public static deserialize(buf: Buffer): DlcIdsV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcIdsV0:\n        return DlcIdsV0.deserialize(buf);\n      default:\n        throw new Error(`DLC IDs message type must be DlcIdsV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcIds message contains list of buffers\n */\nexport class DlcIdsV0 extends DlcIds implements IDlcMessage {\n  public static type = MessageType.DlcIdsV0;\n\n  /**\n   * Deserializes an dlc_ids_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcIdsV0 {\n    const instance = new DlcIdsV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n    const idsLen = reader.readBigSize(); // ids length\n\n    for (let i = 0; i < idsLen; i++) {\n      instance.ids.push(reader.readBytes(32));\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for dlc_ids_v0 message\n   */\n  public type = DlcIdsV0.type;\n\n  public ids: Buffer[] = [];\n\n  /**\n   * Serializes the dlc_ids_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeBigSize(this.ids.length);\n    for (const id of this.ids) {\n      writer.writeBytes(id);\n    }\n\n    return writer.toBuffer();\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"686b72df092d1b17149d22def34f2b2705dbc6da","contentHash":"4d24486067d5713cdf5c9089708717dacc1e970e6626d231a1e20c662e81f781"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInfo.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInfo.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":45}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":52}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":50}},"6":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"7":{"start":{"line":12,"column":16},"end":{"line":12,"column":50}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":74}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":26}},"10":{"start":{"line":24,"column":8},"end":{"line":24,"column":28}},"11":{"start":{"line":28,"column":8},"end":{"line":28,"column":35}},"12":{"start":{"line":35,"column":25},"end":{"line":35,"column":40}},"13":{"start":{"line":36,"column":23},"end":{"line":36,"column":52}},"14":{"start":{"line":37,"column":8},"end":{"line":37,"column":30}},"15":{"start":{"line":38,"column":8},"end":{"line":38,"column":54}},"16":{"start":{"line":39,"column":8},"end":{"line":39,"column":55}},"17":{"start":{"line":40,"column":8},"end":{"line":40,"column":53}},"18":{"start":{"line":41,"column":8},"end":{"line":41,"column":55}},"19":{"start":{"line":42,"column":8},"end":{"line":42,"column":54}},"20":{"start":{"line":43,"column":8},"end":{"line":43,"column":60}},"21":{"start":{"line":44,"column":8},"end":{"line":44,"column":24}},"22":{"start":{"line":50,"column":23},"end":{"line":50,"column":49}},"23":{"start":{"line":51,"column":8},"end":{"line":51,"column":40}},"24":{"start":{"line":52,"column":8},"end":{"line":52,"column":48}},"25":{"start":{"line":53,"column":8},"end":{"line":53,"column":49}},"26":{"start":{"line":54,"column":8},"end":{"line":54,"column":47}},"27":{"start":{"line":55,"column":8},"end":{"line":55,"column":49}},"28":{"start":{"line":56,"column":8},"end":{"line":56,"column":48}},"29":{"start":{"line":57,"column":8},"end":{"line":57,"column":54}},"30":{"start":{"line":58,"column":8},"end":{"line":58,"column":33}},"31":{"start":{"line":61,"column":0},"end":{"line":61,"column":30}},"32":{"start":{"line":62,"column":0},"end":{"line":62,"column":53}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":28},"end":{"line":16,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":18},"end":{"line":29,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":28},"end":{"line":45,"column":5}},"line":34},"3":{"name":"(anonymous_3)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":16},"end":{"line":59,"column":5}},"line":49}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"switch","locations":[{"start":{"line":11,"column":12},"end":{"line":12,"column":50}},{"start":{"line":13,"column":12},"end":{"line":14,"column":74}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":1,"32":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInfo.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInfo.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C,MAAsB,OAAO;IACpB,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ,KAAK,yBAAW,CAAC,SAAS;gBACxB,OAAO,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC;gBACE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC7D;IACH,CAAC;CAKF;AAjBD,0BAiBC;AAED;;GAEG;AACH,MAAa,SAAU,SAAQ,OAAO;IAAtC;;QAuBE;;WAEG;QACI,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IA6B/B,CAAC;IApDC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY;QAEnC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7C,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAEpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAmBD;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAtDH,8BAuDC;AAtDe,cAAI,GAAG,yBAAW,CAAC,SAAS,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport abstract class DlcInfo {\n  public static deserialize(buf: Buffer): DlcInfoV0 {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcInfoV0:\n        return DlcInfoV0.deserialize(buf);\n      default:\n        throw new Error(`DLC IDs message type must be DlcInfoV0`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * DlcInfo message contains list of buffers\n */\nexport class DlcInfoV0 extends DlcInfo implements IDlcMessage {\n  public static type = MessageType.DlcInfoV0;\n\n  /**\n   * Deserializes an dlc_ids_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcInfoV0 {\n    const instance = new DlcInfoV0();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n\n    instance.numDlcOffers = reader.readUInt32BE();\n    instance.numDlcAccepts = reader.readUInt32BE();\n    instance.numDlcSigns = reader.readUInt32BE();\n    instance.numDlcCancels = reader.readUInt32BE();\n    instance.numDlcCloses = reader.readUInt32BE();\n    instance.numDlcTransactions = reader.readUInt32BE();\n\n    return instance;\n  }\n\n  /**\n   * The type for dlc_info_v0 message\n   */\n  public type = DlcInfoV0.type;\n\n  public numDlcOffers: number;\n\n  public numDlcAccepts: number;\n\n  public numDlcSigns: number;\n\n  public numDlcCancels: number;\n\n  public numDlcCloses: number;\n\n  public numDlcTransactions: number;\n\n  /**\n   * Serializes the dlc_info_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n    writer.writeUInt32BE(this.numDlcOffers);\n    writer.writeUInt32BE(this.numDlcAccepts);\n    writer.writeUInt32BE(this.numDlcSigns);\n    writer.writeUInt32BE(this.numDlcCancels);\n    writer.writeUInt32BE(this.numDlcCloses);\n    writer.writeUInt32BE(this.numDlcTransactions);\n\n    return writer.toBuffer();\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d34e169a5971da5bbd92ee4040f18617a136fc88","contentHash":"9670dae1549fcc1ef542d9c130c635293d2e77870c10c08c497923f293d8e962"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainerV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainerV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":40}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":47}},"5":{"start":{"line":7,"column":31},"end":{"line":7,"column":64}},"6":{"start":{"line":8,"column":30},"end":{"line":8,"column":62}},"7":{"start":{"line":18,"column":8},"end":{"line":18,"column":48}},"8":{"start":{"line":25,"column":25},"end":{"line":25,"column":53}},"9":{"start":{"line":26,"column":23},"end":{"line":26,"column":52}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":29}},"11":{"start":{"line":28,"column":8},"end":{"line":28,"column":47}},"12":{"start":{"line":29,"column":33},"end":{"line":29,"column":53}},"13":{"start":{"line":30,"column":30},"end":{"line":30,"column":72}},"14":{"start":{"line":31,"column":8},"end":{"line":31,"column":55}},"15":{"start":{"line":32,"column":26},"end":{"line":32,"column":46}},"16":{"start":{"line":33,"column":23},"end":{"line":33,"column":58}},"17":{"start":{"line":34,"column":8},"end":{"line":34,"column":41}},"18":{"start":{"line":35,"column":8},"end":{"line":35,"column":118}},"19":{"start":{"line":36,"column":8},"end":{"line":36,"column":115}},"20":{"start":{"line":37,"column":30},"end":{"line":37,"column":50}},"21":{"start":{"line":38,"column":27},"end":{"line":38,"column":66}},"22":{"start":{"line":39,"column":8},"end":{"line":39,"column":49}},"23":{"start":{"line":40,"column":8},"end":{"line":40,"column":24}},"24":{"start":{"line":43,"column":8},"end":{"line":43,"column":37}},"25":{"start":{"line":49,"column":23},"end":{"line":49,"column":49}},"26":{"start":{"line":50,"column":8},"end":{"line":50,"column":39}},"27":{"start":{"line":51,"column":27},"end":{"line":51,"column":53}},"28":{"start":{"line":52,"column":8},"end":{"line":52,"column":56}},"29":{"start":{"line":53,"column":8},"end":{"line":53,"column":60}},"30":{"start":{"line":54,"column":8},"end":{"line":54,"column":49}},"31":{"start":{"line":55,"column":8},"end":{"line":55,"column":53}},"32":{"start":{"line":56,"column":8},"end":{"line":56,"column":61}},"33":{"start":{"line":57,"column":8},"end":{"line":57,"column":60}},"34":{"start":{"line":58,"column":8},"end":{"line":58,"column":53}},"35":{"start":{"line":59,"column":8},"end":{"line":59,"column":57}},"36":{"start":{"line":60,"column":8},"end":{"line":60,"column":45}},"37":{"start":{"line":61,"column":8},"end":{"line":61,"column":49}},"38":{"start":{"line":62,"column":8},"end":{"line":62,"column":33}},"39":{"start":{"line":65,"column":0},"end":{"line":65,"column":56}},"40":{"start":{"line":66,"column":0},"end":{"line":66,"column":79}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":18},"end":{"line":19,"column":5}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":28},"end":{"line":41,"column":5}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":42,"column":4},"end":{"line":42,"column":5}},"loc":{"start":{"line":42,"column":15},"end":{"line":44,"column":5}},"line":42},"3":{"name":"(anonymous_3)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":16},"end":{"line":63,"column":5}},"line":48}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":0,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1},"f":{"0":2,"1":1,"2":0,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainerV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainerV0.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport { OracleAnnouncementV0 } from './OracleAnnouncementV0';\nimport { OracleAttestationV0 } from './OracleAttestationV0';\n\n/**\n * OracleEventContainer contains information about the oracles to be used in\n * executing a DLC.\n */\nexport class OracleEventContainerV0 implements IDlcMessage {\n  public static type = MessageType.OracleEventContainerV0;\n\n  /**\n   * Deserializes an oracle_info_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleEventContainerV0 {\n    const instance = new OracleEventContainerV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    const oracleNameLength = reader.readBigSize();\n    const oracleNameBuf = reader.readBytes(Number(oracleNameLength));\n    instance.oracleName = oracleNameBuf.toString();\n\n    const uriLength = reader.readBigSize();\n    const uriBuf = reader.readBytes(Number(uriLength));\n    instance.uri = uriBuf.toString();\n\n    instance.announcement = OracleAnnouncementV0.deserialize(getTlv(reader));\n\n    instance.attestation = OracleAttestationV0.deserialize(getTlv(reader));\n\n    const outcomeLength = reader.readBigSize();\n    const outcomeBuf = reader.readBytes(Number(outcomeLength));\n    instance.outcome = outcomeBuf.toString();\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_info_v0 message. oracle_info_v0 = 42770\n   */\n  public type = OracleEventContainerV0.type;\n\n  public length: bigint;\n\n  public oracleName: string;\n\n  public uri: string;\n\n  public announcement: OracleAnnouncementV0;\n\n  public attestation: OracleAttestationV0;\n\n  public outcome: string;\n\n  public validate(): void {\n    this.announcement.validate();\n  }\n\n  /**\n   * Serializes the oracle_info_v0 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.oracleName.length);\n    dataWriter.writeBytes(Buffer.from(this.oracleName));\n    dataWriter.writeBigSize(this.uri.length);\n    dataWriter.writeBytes(Buffer.from(this.uri));\n    dataWriter.writeBytes(this.announcement.serialize());\n    dataWriter.writeBytes(this.attestation.serialize());\n    dataWriter.writeBigSize(this.outcome.length);\n    dataWriter.writeBytes(Buffer.from(this.outcome));\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6b52610a5594fa53493e7cd31430b09d92bfbe2d","contentHash":"d2fdeb4681bb21b2b1cd1fce15a7e62f63d030589081c57900b13faefd6f8455"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleIdentifierV0.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleIdentifierV0.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":11,"column":8},"end":{"line":11,"column":44}},"5":{"start":{"line":18,"column":25},"end":{"line":18,"column":49}},"6":{"start":{"line":19,"column":23},"end":{"line":19,"column":52}},"7":{"start":{"line":20,"column":8},"end":{"line":20,"column":29}},"8":{"start":{"line":21,"column":8},"end":{"line":21,"column":47}},"9":{"start":{"line":22,"column":33},"end":{"line":22,"column":53}},"10":{"start":{"line":23,"column":30},"end":{"line":23,"column":72}},"11":{"start":{"line":24,"column":8},"end":{"line":24,"column":55}},"12":{"start":{"line":25,"column":8},"end":{"line":25,"column":53}},"13":{"start":{"line":26,"column":8},"end":{"line":26,"column":24}},"14":{"start":{"line":29,"column":8},"end":{"line":29,"column":15}},"15":{"start":{"line":35,"column":8},"end":{"line":39,"column":10}},"16":{"start":{"line":45,"column":23},"end":{"line":45,"column":49}},"17":{"start":{"line":46,"column":8},"end":{"line":46,"column":39}},"18":{"start":{"line":47,"column":27},"end":{"line":47,"column":53}},"19":{"start":{"line":48,"column":8},"end":{"line":48,"column":56}},"20":{"start":{"line":49,"column":8},"end":{"line":49,"column":60}},"21":{"start":{"line":50,"column":8},"end":{"line":50,"column":49}},"22":{"start":{"line":51,"column":8},"end":{"line":51,"column":45}},"23":{"start":{"line":52,"column":8},"end":{"line":52,"column":49}},"24":{"start":{"line":53,"column":8},"end":{"line":53,"column":33}},"25":{"start":{"line":56,"column":0},"end":{"line":56,"column":48}},"26":{"start":{"line":57,"column":0},"end":{"line":57,"column":71}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":18},"end":{"line":12,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":28},"end":{"line":27,"column":5}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":15},"end":{"line":30,"column":5}},"line":28},"3":{"name":"(anonymous_3)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":13},"end":{"line":40,"column":5}},"line":34},"4":{"name":"(anonymous_4)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":16},"end":{"line":54,"column":5}},"line":44}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":2,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":0,"15":0,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"f":{"0":2,"1":1,"2":0,"3":0,"4":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleIdentifierV0.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleIdentifierV0.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C,MAAa,kBAAkB;IAA/B;QAsBE;;WAEG;QACI,SAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAyCxC,CAAC;IA/DC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;QAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjE,QAAQ,CAAC,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/C,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAaM,QAAQ;QACb,OAAO;IACT,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAjEH,gDAkEC;AAjEe,uBAAI,GAAG,yBAAW,CAAC,kBAAkB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport class OracleIdentifierV0 implements IDlcMessage {\n  public static type = MessageType.OracleIdentifierV0;\n\n  /**\n   * Deserializes an oracle_event message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleIdentifierV0 {\n    const instance = new OracleIdentifierV0();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    const oracleNameLength = reader.readBigSize();\n    const oracleNameBuf = reader.readBytes(Number(oracleNameLength));\n    instance.oracleName = oracleNameBuf.toString();\n    instance.oraclePubkey = reader.readBytes(32);\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_identifier message. oracle_identifier = 61472\n   */\n  public type = OracleIdentifierV0.type;\n\n  public length: bigint;\n\n  public oracleName: string;\n\n  public oraclePubkey: Buffer;\n\n  public validate(): void {\n    return;\n  }\n\n  /**\n   * Converts oracle_event to JSON\n   */\n  public toJSON(): IOracleIdentifierV0JSON {\n    return {\n      type: this.type,\n      oracleName: this.oracleName,\n      oraclePubkey: this.oraclePubkey.toString('hex'),\n    };\n  }\n\n  /**\n   * Serializes the oracle_event message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.type);\n\n    const dataWriter = new BufferWriter();\n    dataWriter.writeBigSize(this.oracleName.length);\n    dataWriter.writeBytes(Buffer.from(this.oracleName));\n\n    dataWriter.writeBytes(this.oraclePubkey);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOracleIdentifierV0JSON {\n  type: number;\n  oracleName: string;\n  oraclePubkey: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9808e3ad52a6761e392b68ed7abf9b108dcaca80","contentHash":"21dc72da77de42c775fe14c651845ad0a45ae4ad91f0c0512f7e7a547e9c7abc"}}