{"/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":5,"column":18},"end":{"line":5,"column":46}},"3":{"start":{"line":6,"column":24},"end":{"line":6,"column":48}},"4":{"start":{"line":7,"column":17},"end":{"line":7,"column":34}},"5":{"start":{"line":8,"column":26},"end":{"line":8,"column":64}},"6":{"start":{"line":9,"column":15},"end":{"line":9,"column":33}},"7":{"start":{"line":11,"column":0},"end":{"line":15,"column":62}},"8":{"start":{"line":12,"column":4},"end":{"line":12,"column":54}},"9":{"start":{"line":13,"column":4},"end":{"line":13,"column":52}},"10":{"start":{"line":14,"column":4},"end":{"line":14,"column":50}},"11":{"start":{"line":22,"column":8},"end":{"line":22,"column":16}},"12":{"start":{"line":23,"column":8},"end":{"line":23,"column":29}},"13":{"start":{"line":24,"column":8},"end":{"line":24,"column":43}},"14":{"start":{"line":25,"column":8},"end":{"line":25,"column":33}},"15":{"start":{"line":26,"column":8},"end":{"line":26,"column":39}},"16":{"start":{"line":34,"column":8},"end":{"line":34,"column":55}},"17":{"start":{"line":36,"column":8},"end":{"line":40,"column":9}},"18":{"start":{"line":37,"column":12},"end":{"line":37,"column":55}},"19":{"start":{"line":38,"column":12},"end":{"line":38,"column":49}},"20":{"start":{"line":39,"column":12},"end":{"line":39,"column":52}},"21":{"start":{"line":41,"column":8},"end":{"line":41,"column":46}},"22":{"start":{"line":42,"column":8},"end":{"line":42,"column":42}},"23":{"start":{"line":44,"column":8},"end":{"line":44,"column":28}},"24":{"start":{"line":47,"column":21},"end":{"line":47,"column":63}},"25":{"start":{"line":48,"column":22},"end":{"line":48,"column":73}},"26":{"start":{"line":49,"column":8},"end":{"line":49,"column":50}},"27":{"start":{"line":50,"column":8},"end":{"line":50,"column":56}},"28":{"start":{"line":53,"column":21},"end":{"line":53,"column":63}},"29":{"start":{"line":54,"column":22},"end":{"line":54,"column":73}},"30":{"start":{"line":55,"column":8},"end":{"line":55,"column":51}},"31":{"start":{"line":56,"column":8},"end":{"line":56,"column":56}},"32":{"start":{"line":59,"column":8},"end":{"line":59,"column":92}},"33":{"start":{"line":60,"column":8},"end":{"line":60,"column":63}},"34":{"start":{"line":61,"column":8},"end":{"line":61,"column":47}},"35":{"start":{"line":62,"column":8},"end":{"line":64,"column":9}},"36":{"start":{"line":63,"column":12},"end":{"line":63,"column":58}},"37":{"start":{"line":65,"column":8},"end":{"line":65,"column":56}},"38":{"start":{"line":66,"column":8},"end":{"line":66,"column":91}},"39":{"start":{"line":69,"column":8},"end":{"line":69,"column":93}},"40":{"start":{"line":70,"column":8},"end":{"line":70,"column":64}},"41":{"start":{"line":71,"column":8},"end":{"line":71,"column":56}},"42":{"start":{"line":72,"column":8},"end":{"line":72,"column":68}},"43":{"start":{"line":73,"column":8},"end":{"line":73,"column":29}},"44":{"start":{"line":74,"column":24},"end":{"line":74,"column":82}},"45":{"start":{"line":76,"column":8},"end":{"line":83,"column":9}},"46":{"start":{"line":77,"column":12},"end":{"line":77,"column":33}},"47":{"start":{"line":80,"column":29},"end":{"line":80,"column":104}},"48":{"start":{"line":80,"column":61},"end":{"line":80,"column":103}},"49":{"start":{"line":81,"column":12},"end":{"line":82,"column":37}},"50":{"start":{"line":82,"column":16},"end":{"line":82,"column":37}},"51":{"start":{"line":84,"column":8},"end":{"line":86,"column":9}},"52":{"start":{"line":85,"column":12},"end":{"line":85,"column":59}},"53":{"start":{"line":87,"column":8},"end":{"line":87,"column":56}},"54":{"start":{"line":88,"column":8},"end":{"line":88,"column":92}},"55":{"start":{"line":91,"column":8},"end":{"line":91,"column":60}},"56":{"start":{"line":92,"column":8},"end":{"line":92,"column":39}},"57":{"start":{"line":93,"column":8},"end":{"line":93,"column":43}},"58":{"start":{"line":94,"column":8},"end":{"line":94,"column":72}},"59":{"start":{"line":95,"column":8},"end":{"line":95,"column":66}},"60":{"start":{"line":96,"column":8},"end":{"line":101,"column":9}},"61":{"start":{"line":98,"column":12},"end":{"line":100,"column":13}},"62":{"start":{"line":99,"column":16},"end":{"line":99,"column":123}},"63":{"start":{"line":102,"column":8},"end":{"line":102,"column":106}},"64":{"start":{"line":104,"column":8},"end":{"line":104,"column":51}},"65":{"start":{"line":107,"column":8},"end":{"line":110,"column":9}},"66":{"start":{"line":108,"column":12},"end":{"line":108,"column":85}},"67":{"start":{"line":109,"column":12},"end":{"line":109,"column":19}},"68":{"start":{"line":111,"column":27},"end":{"line":111,"column":89}},"69":{"start":{"line":111,"column":58},"end":{"line":111,"column":88}},"70":{"start":{"line":112,"column":28},"end":{"line":112,"column":128}},"71":{"start":{"line":112,"column":60},"end":{"line":112,"column":124}},"72":{"start":{"line":113,"column":8},"end":{"line":113,"column":69}},"73":{"start":{"line":114,"column":8},"end":{"line":115,"column":19}},"74":{"start":{"line":115,"column":12},"end":{"line":115,"column":19}},"75":{"start":{"line":116,"column":31},"end":{"line":116,"column":33}},"76":{"start":{"line":117,"column":20},"end":{"line":117,"column":48}},"77":{"start":{"line":118,"column":8},"end":{"line":145,"column":9}},"78":{"start":{"line":118,"column":21},"end":{"line":118,"column":22}},"79":{"start":{"line":119,"column":27},"end":{"line":119,"column":40}},"80":{"start":{"line":120,"column":12},"end":{"line":122,"column":13}},"81":{"start":{"line":121,"column":16},"end":{"line":121,"column":118}},"82":{"start":{"line":123,"column":12},"end":{"line":144,"column":13}},"83":{"start":{"line":124,"column":29},"end":{"line":124,"column":109}},"84":{"start":{"line":125,"column":16},"end":{"line":143,"column":17}},"85":{"start":{"line":126,"column":31},"end":{"line":126,"column":99}},"86":{"start":{"line":127,"column":20},"end":{"line":128,"column":52}},"87":{"start":{"line":128,"column":24},"end":{"line":128,"column":52}},"88":{"start":{"line":129,"column":20},"end":{"line":130,"column":57}},"89":{"start":{"line":130,"column":24},"end":{"line":130,"column":57}},"90":{"start":{"line":131,"column":20},"end":{"line":136,"column":21}},"91":{"start":{"line":134,"column":38},"end":{"line":134,"column":83}},"92":{"start":{"line":135,"column":24},"end":{"line":135,"column":66}},"93":{"start":{"line":146,"column":8},"end":{"line":146,"column":67}},"94":{"start":{"line":147,"column":8},"end":{"line":150,"column":9}},"95":{"start":{"line":148,"column":12},"end":{"line":148,"column":61}},"96":{"start":{"line":149,"column":12},"end":{"line":149,"column":19}},"97":{"start":{"line":151,"column":8},"end":{"line":151,"column":57}},"98":{"start":{"line":154,"column":19},"end":{"line":154,"column":61}},"99":{"start":{"line":155,"column":8},"end":{"line":158,"column":9}},"100":{"start":{"line":156,"column":12},"end":{"line":156,"column":64}},"101":{"start":{"line":157,"column":12},"end":{"line":157,"column":19}},"102":{"start":{"line":159,"column":30},"end":{"line":159,"column":73}},"103":{"start":{"line":160,"column":8},"end":{"line":160,"column":84}},"104":{"start":{"line":161,"column":20},"end":{"line":161,"column":52}},"105":{"start":{"line":162,"column":16},"end":{"line":162,"column":17}},"106":{"start":{"line":163,"column":8},"end":{"line":197,"column":9}},"107":{"start":{"line":164,"column":12},"end":{"line":164,"column":40}},"108":{"start":{"line":165,"column":12},"end":{"line":167,"column":13}},"109":{"start":{"line":166,"column":16},"end":{"line":166,"column":150}},"110":{"start":{"line":169,"column":12},"end":{"line":171,"column":13}},"111":{"start":{"line":170,"column":16},"end":{"line":170,"column":92}},"112":{"start":{"line":172,"column":12},"end":{"line":172,"column":34}},"113":{"start":{"line":173,"column":30},"end":{"line":173,"column":83}},"114":{"start":{"line":174,"column":29},"end":{"line":174,"column":74}},"115":{"start":{"line":175,"column":26},"end":{"line":175,"column":68}},"116":{"start":{"line":176,"column":12},"end":{"line":189,"column":13}},"117":{"start":{"line":177,"column":16},"end":{"line":188,"column":17}},"118":{"start":{"line":178,"column":34},"end":{"line":178,"column":96}},"119":{"start":{"line":179,"column":20},"end":{"line":183,"column":21}},"120":{"start":{"line":181,"column":35},"end":{"line":181,"column":82}},"121":{"start":{"line":182,"column":24},"end":{"line":182,"column":82}},"122":{"start":{"line":186,"column":20},"end":{"line":186,"column":105}},"123":{"start":{"line":187,"column":20},"end":{"line":187,"column":52}},"124":{"start":{"line":190,"column":12},"end":{"line":195,"column":13}},"125":{"start":{"line":191,"column":16},"end":{"line":191,"column":66}},"126":{"start":{"line":192,"column":16},"end":{"line":193,"column":26}},"127":{"start":{"line":193,"column":20},"end":{"line":193,"column":26}},"128":{"start":{"line":194,"column":16},"end":{"line":194,"column":66}},"129":{"start":{"line":196,"column":12},"end":{"line":196,"column":16}},"130":{"start":{"line":198,"column":8},"end":{"line":198,"column":67}},"131":{"start":{"line":201,"column":8},"end":{"line":208,"column":9}},"132":{"start":{"line":202,"column":12},"end":{"line":207,"column":13}},"133":{"start":{"line":203,"column":16},"end":{"line":206,"column":17}},"134":{"start":{"line":204,"column":34},"end":{"line":204,"column":76}},"135":{"start":{"line":205,"column":20},"end":{"line":205,"column":67}},"136":{"start":{"line":211,"column":0},"end":{"line":211,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":1},"end":{"line":11,"column":2}},"loc":{"start":{"line":11,"column":22},"end":{"line":15,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":47},"end":{"line":27,"column":5}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":33},"end":{"line":45,"column":5}},"line":33},"3":{"name":"(anonymous_3)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":38},"end":{"line":51,"column":5}},"line":46},"4":{"name":"(anonymous_4)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":39},"end":{"line":57,"column":5}},"line":52},"5":{"name":"(anonymous_5)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":41},"end":{"line":67,"column":5}},"line":58},"6":{"name":"(anonymous_6)","decl":{"start":{"line":68,"column":4},"end":{"line":68,"column":5}},"loc":{"start":{"line":68,"column":46},"end":{"line":89,"column":5}},"line":68},"7":{"name":"(anonymous_7)","decl":{"start":{"line":80,"column":52},"end":{"line":80,"column":53}},"loc":{"start":{"line":80,"column":61},"end":{"line":80,"column":103}},"line":80},"8":{"name":"(anonymous_8)","decl":{"start":{"line":90,"column":4},"end":{"line":90,"column":5}},"loc":{"start":{"line":90,"column":41},"end":{"line":105,"column":5}},"line":90},"9":{"name":"(anonymous_9)","decl":{"start":{"line":106,"column":4},"end":{"line":106,"column":5}},"loc":{"start":{"line":106,"column":38},"end":{"line":152,"column":5}},"line":106},"10":{"name":"(anonymous_10)","decl":{"start":{"line":111,"column":46},"end":{"line":111,"column":47}},"loc":{"start":{"line":111,"column":58},"end":{"line":111,"column":88}},"line":111},"11":{"name":"(anonymous_11)","decl":{"start":{"line":112,"column":46},"end":{"line":112,"column":47}},"loc":{"start":{"line":112,"column":60},"end":{"line":112,"column":124}},"line":112},"12":{"name":"(anonymous_12)","decl":{"start":{"line":153,"column":4},"end":{"line":153,"column":5}},"loc":{"start":{"line":153,"column":44},"end":{"line":199,"column":5}},"line":153},"13":{"name":"(anonymous_13)","decl":{"start":{"line":200,"column":4},"end":{"line":200,"column":5}},"loc":{"start":{"line":200,"column":53},"end":{"line":209,"column":5}},"line":200}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":15},"end":{"line":15,"column":60}},"type":"binary-expr","locations":[{"start":{"line":15,"column":15},"end":{"line":15,"column":32}},{"start":{"line":15,"column":37},"end":{"line":15,"column":59}}],"line":15},"1":{"loc":{"start":{"line":33,"column":16},"end":{"line":33,"column":31}},"type":"default-arg","locations":[{"start":{"line":33,"column":30},"end":{"line":33,"column":31}}],"line":33},"2":{"loc":{"start":{"line":36,"column":8},"end":{"line":40,"column":9}},"type":"if","locations":[{"start":{"line":36,"column":8},"end":{"line":40,"column":9}},{"start":{},"end":{}}],"line":36},"3":{"loc":{"start":{"line":62,"column":8},"end":{"line":64,"column":9}},"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":64,"column":9}},{"start":{},"end":{}}],"line":62},"4":{"loc":{"start":{"line":76,"column":8},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":83,"column":9}},{"start":{"line":79,"column":13},"end":{"line":83,"column":9}}],"line":76},"5":{"loc":{"start":{"line":81,"column":12},"end":{"line":82,"column":37}},"type":"if","locations":[{"start":{"line":81,"column":12},"end":{"line":82,"column":37}},{"start":{},"end":{}}],"line":81},"6":{"loc":{"start":{"line":84,"column":8},"end":{"line":86,"column":9}},"type":"if","locations":[{"start":{"line":84,"column":8},"end":{"line":86,"column":9}},{"start":{},"end":{}}],"line":84},"7":{"loc":{"start":{"line":90,"column":24},"end":{"line":90,"column":39}},"type":"default-arg","locations":[{"start":{"line":90,"column":38},"end":{"line":90,"column":39}}],"line":90},"8":{"loc":{"start":{"line":96,"column":8},"end":{"line":101,"column":9}},"type":"if","locations":[{"start":{"line":96,"column":8},"end":{"line":101,"column":9}},{"start":{},"end":{}}],"line":96},"9":{"loc":{"start":{"line":107,"column":8},"end":{"line":110,"column":9}},"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":110,"column":9}},{"start":{},"end":{}}],"line":107},"10":{"loc":{"start":{"line":112,"column":67},"end":{"line":112,"column":123}},"type":"cond-expr","locations":[{"start":{"line":112,"column":118},"end":{"line":112,"column":119}},{"start":{"line":112,"column":122},"end":{"line":112,"column":123}}],"line":112},"11":{"loc":{"start":{"line":114,"column":8},"end":{"line":115,"column":19}},"type":"if","locations":[{"start":{"line":114,"column":8},"end":{"line":115,"column":19}},{"start":{},"end":{}}],"line":114},"12":{"loc":{"start":{"line":120,"column":12},"end":{"line":122,"column":13}},"type":"if","locations":[{"start":{"line":120,"column":12},"end":{"line":122,"column":13}},{"start":{},"end":{}}],"line":120},"13":{"loc":{"start":{"line":123,"column":12},"end":{"line":144,"column":13}},"type":"if","locations":[{"start":{"line":123,"column":12},"end":{"line":144,"column":13}},{"start":{},"end":{}}],"line":123},"14":{"loc":{"start":{"line":127,"column":20},"end":{"line":128,"column":52}},"type":"if","locations":[{"start":{"line":127,"column":20},"end":{"line":128,"column":52}},{"start":{},"end":{}}],"line":127},"15":{"loc":{"start":{"line":129,"column":20},"end":{"line":130,"column":57}},"type":"if","locations":[{"start":{"line":129,"column":20},"end":{"line":130,"column":57}},{"start":{},"end":{}}],"line":129},"16":{"loc":{"start":{"line":129,"column":24},"end":{"line":129,"column":64}},"type":"binary-expr","locations":[{"start":{"line":129,"column":24},"end":{"line":129,"column":28}},{"start":{"line":129,"column":32},"end":{"line":129,"column":64}}],"line":129},"17":{"loc":{"start":{"line":131,"column":20},"end":{"line":136,"column":21}},"type":"if","locations":[{"start":{"line":131,"column":20},"end":{"line":136,"column":21}},{"start":{},"end":{}}],"line":131},"18":{"loc":{"start":{"line":131,"column":24},"end":{"line":133,"column":53}},"type":"binary-expr","locations":[{"start":{"line":131,"column":24},"end":{"line":131,"column":28}},{"start":{"line":132,"column":24},"end":{"line":132,"column":54}},{"start":{"line":133,"column":24},"end":{"line":133,"column":53}}],"line":131},"19":{"loc":{"start":{"line":147,"column":8},"end":{"line":150,"column":9}},"type":"if","locations":[{"start":{"line":147,"column":8},"end":{"line":150,"column":9}},{"start":{},"end":{}}],"line":147},"20":{"loc":{"start":{"line":155,"column":8},"end":{"line":158,"column":9}},"type":"if","locations":[{"start":{"line":155,"column":8},"end":{"line":158,"column":9}},{"start":{},"end":{}}],"line":155},"21":{"loc":{"start":{"line":165,"column":12},"end":{"line":167,"column":13}},"type":"if","locations":[{"start":{"line":165,"column":12},"end":{"line":167,"column":13}},{"start":{},"end":{}}],"line":165},"22":{"loc":{"start":{"line":169,"column":12},"end":{"line":171,"column":13}},"type":"if","locations":[{"start":{"line":169,"column":12},"end":{"line":171,"column":13}},{"start":{},"end":{}}],"line":169},"23":{"loc":{"start":{"line":179,"column":20},"end":{"line":183,"column":21}},"type":"if","locations":[{"start":{"line":179,"column":20},"end":{"line":183,"column":21}},{"start":{},"end":{}}],"line":179},"24":{"loc":{"start":{"line":190,"column":12},"end":{"line":195,"column":13}},"type":"if","locations":[{"start":{"line":190,"column":12},"end":{"line":195,"column":13}},{"start":{},"end":{}}],"line":190},"25":{"loc":{"start":{"line":192,"column":16},"end":{"line":193,"column":26}},"type":"if","locations":[{"start":{"line":192,"column":16},"end":{"line":193,"column":26}},{"start":{},"end":{}}],"line":192},"26":{"loc":{"start":{"line":203,"column":16},"end":{"line":206,"column":17}},"type":"if","locations":[{"start":{"line":203,"column":16},"end":{"line":206,"column":17}},{"start":{},"end":{}}],"line":203}},"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":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Tx } from '@node-dlc/bitcoin';\nimport { Block, Transaction } from 'bitcoinjs-lib';\nimport { EventEmitter } from 'events';\n\nimport { DlcTransactions } 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: DlcTransactions[];\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: DlcTransactions): 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: DlcTransactions): 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: DlcTransactions,\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: DlcTransactions,\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: DlcTransactions[]) {\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 DlcTransactions ? 1 : 0),\n      0,\n    );\n    this.logger.info('validating %d funding utxos', dlcTxsCount);\n\n    if (!dlcTxsCount) return;\n\n    const dlcTxsToVerify: DlcTransactions[] = [];\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 DlcTransactions) {\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: DlcTransactions[]) {\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: DlcTransactions[],\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":"c1840c8d6d537463686999b16c590a200f594ed8","contentHash":"8f9b8cb7b761a673f07fb0e6755e419fcb44c894775f4a4a0f04f7b2150930fe"},"/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":16,"column":8},"end":{"line":16,"column":41}},"6":{"start":{"line":17,"column":8},"end":{"line":20,"column":10}},"7":{"start":{"line":21,"column":8},"end":{"line":21,"column":37}},"8":{"start":{"line":22,"column":8},"end":{"line":22,"column":23}},"9":{"start":{"line":23,"column":8},"end":{"line":26,"column":10}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":44}},"11":{"start":{"line":28,"column":8},"end":{"line":28,"column":27}},"12":{"start":{"line":29,"column":8},"end":{"line":29,"column":38}},"13":{"start":{"line":36,"column":25},"end":{"line":36,"column":46}},"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":8},"end":{"line":39,"column":51}},"17":{"start":{"line":40,"column":26},"end":{"line":40,"column":47}},"18":{"start":{"line":41,"column":8},"end":{"line":41,"column":108}},"19":{"start":{"line":42,"column":8},"end":{"line":42,"column":52}},"20":{"start":{"line":43,"column":25},"end":{"line":43,"column":45}},"21":{"start":{"line":44,"column":27},"end":{"line":44,"column":48}},"22":{"start":{"line":45,"column":8},"end":{"line":48,"column":10}},"23":{"start":{"line":49,"column":8},"end":{"line":49,"column":61}},"24":{"start":{"line":50,"column":28},"end":{"line":50,"column":49}},"25":{"start":{"line":51,"column":8},"end":{"line":51,"column":112}},"26":{"start":{"line":52,"column":24},"end":{"line":52,"column":44}},"27":{"start":{"line":53,"column":8},"end":{"line":61,"column":9}},"28":{"start":{"line":53,"column":21},"end":{"line":53,"column":22}},"29":{"start":{"line":54,"column":27},"end":{"line":54,"column":48}},"30":{"start":{"line":55,"column":12},"end":{"line":60,"column":13}},"31":{"start":{"line":56,"column":16},"end":{"line":56,"column":115}},"32":{"start":{"line":59,"column":16},"end":{"line":59,"column":41}},"33":{"start":{"line":62,"column":26},"end":{"line":62,"column":46}},"34":{"start":{"line":63,"column":28},"end":{"line":63,"column":49}},"35":{"start":{"line":64,"column":8},"end":{"line":67,"column":10}},"36":{"start":{"line":68,"column":8},"end":{"line":68,"column":52}},"37":{"start":{"line":69,"column":8},"end":{"line":69,"column":48}},"38":{"start":{"line":70,"column":8},"end":{"line":70,"column":62}},"39":{"start":{"line":71,"column":8},"end":{"line":71,"column":24}},"40":{"start":{"line":77,"column":8},"end":{"line":96,"column":10}},"41":{"start":{"line":88,"column":41},"end":{"line":88,"column":72}},"42":{"start":{"line":102,"column":23},"end":{"line":102,"column":49}},"43":{"start":{"line":103,"column":8},"end":{"line":103,"column":40}},"44":{"start":{"line":104,"column":8},"end":{"line":104,"column":43}},"45":{"start":{"line":105,"column":8},"end":{"line":105,"column":61}},"46":{"start":{"line":106,"column":8},"end":{"line":106,"column":51}},"47":{"start":{"line":107,"column":8},"end":{"line":107,"column":46}},"48":{"start":{"line":108,"column":8},"end":{"line":108,"column":47}},"49":{"start":{"line":109,"column":8},"end":{"line":109,"column":52}},"50":{"start":{"line":110,"column":8},"end":{"line":110,"column":55}},"51":{"start":{"line":111,"column":8},"end":{"line":111,"column":63}},"52":{"start":{"line":112,"column":8},"end":{"line":112,"column":53}},"53":{"start":{"line":113,"column":8},"end":{"line":113,"column":46}},"54":{"start":{"line":114,"column":8},"end":{"line":117,"column":9}},"55":{"start":{"line":115,"column":12},"end":{"line":115,"column":57}},"56":{"start":{"line":116,"column":12},"end":{"line":116,"column":47}},"57":{"start":{"line":118,"column":8},"end":{"line":118,"column":48}},"58":{"start":{"line":119,"column":8},"end":{"line":119,"column":53}},"59":{"start":{"line":120,"column":8},"end":{"line":120,"column":44}},"60":{"start":{"line":121,"column":8},"end":{"line":121,"column":42}},"61":{"start":{"line":122,"column":8},"end":{"line":122,"column":56}},"62":{"start":{"line":123,"column":8},"end":{"line":123,"column":33}},"63":{"start":{"line":126,"column":0},"end":{"line":126,"column":42}},"64":{"start":{"line":127,"column":0},"end":{"line":127,"column":65}},"65":{"start":{"line":128,"column":23},"end":{"line":139,"column":1}},"66":{"start":{"line":129,"column":4},"end":{"line":138,"column":5}},"67":{"start":{"line":131,"column":12},"end":{"line":131,"column":34}},"68":{"start":{"line":133,"column":12},"end":{"line":133,"column":33}},"69":{"start":{"line":135,"column":12},"end":{"line":135,"column":38}},"70":{"start":{"line":137,"column":12},"end":{"line":137,"column":31}},"71":{"start":{"line":141,"column":0},"end":{"line":146,"column":62}},"72":{"start":{"line":142,"column":4},"end":{"line":142,"column":56}},"73":{"start":{"line":143,"column":4},"end":{"line":143,"column":62}},"74":{"start":{"line":144,"column":4},"end":{"line":144,"column":60}},"75":{"start":{"line":145,"column":4},"end":{"line":145,"column":70}},"76":{"start":{"line":148,"column":0},"end":{"line":148,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":18},"end":{"line":30,"column":5}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":35,"column":4},"end":{"line":35,"column":5}},"loc":{"start":{"line":35,"column":46},"end":{"line":72,"column":5}},"line":35},"2":{"name":"(anonymous_2)","decl":{"start":{"line":76,"column":4},"end":{"line":76,"column":5}},"loc":{"start":{"line":76,"column":13},"end":{"line":97,"column":5}},"line":76},"3":{"name":"(anonymous_3)","decl":{"start":{"line":88,"column":32},"end":{"line":88,"column":33}},"loc":{"start":{"line":88,"column":41},"end":{"line":88,"column":72}},"line":88},"4":{"name":"(anonymous_4)","decl":{"start":{"line":101,"column":4},"end":{"line":101,"column":5}},"loc":{"start":{"line":101,"column":16},"end":{"line":124,"column":5}},"line":101},"5":{"name":"(anonymous_5)","decl":{"start":{"line":128,"column":23},"end":{"line":128,"column":24}},"loc":{"start":{"line":128,"column":38},"end":{"line":139,"column":1}},"line":128},"6":{"name":"(anonymous_6)","decl":{"start":{"line":141,"column":1},"end":{"line":141,"column":2}},"loc":{"start":{"line":141,"column":22},"end":{"line":146,"column":1}},"line":141}},"branchMap":{"0":{"loc":{"start":{"line":35,"column":28},"end":{"line":35,"column":44}},"type":"default-arg","locations":[{"start":{"line":35,"column":40},"end":{"line":35,"column":44}}],"line":35},"1":{"loc":{"start":{"line":55,"column":12},"end":{"line":60,"column":13}},"type":"if","locations":[{"start":{"line":55,"column":12},"end":{"line":60,"column":13}},{"start":{"line":58,"column":17},"end":{"line":60,"column":13}}],"line":55},"2":{"loc":{"start":{"line":55,"column":16},"end":{"line":55,"column":36}},"type":"binary-expr","locations":[{"start":{"line":55,"column":16},"end":{"line":55,"column":25}},{"start":{"line":55,"column":29},"end":{"line":55,"column":36}}],"line":55},"3":{"loc":{"start":{"line":129,"column":4},"end":{"line":138,"column":5}},"type":"switch","locations":[{"start":{"line":130,"column":8},"end":{"line":131,"column":34}},{"start":{"line":132,"column":8},"end":{"line":133,"column":33}},{"start":{"line":134,"column":8},"end":{"line":135,"column":38}},{"start":{"line":136,"column":8},"end":{"line":137,"column":31}}],"line":129},"4":{"loc":{"start":{"line":146,"column":15},"end":{"line":146,"column":60}},"type":"binary-expr","locations":[{"start":{"line":146,"column":15},"end":{"line":146,"column":32}},{"start":{"line":146,"column":37},"end":{"line":146,"column":59}}],"line":146}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":8,"6":8,"7":8,"8":8,"9":8,"10":8,"11":8,"12":8,"13":6,"14":6,"15":6,"16":6,"17":6,"18":6,"19":6,"20":6,"21":6,"22":6,"23":6,"24":6,"25":6,"26":6,"27":6,"28":6,"29":8,"30":8,"31":7,"32":1,"33":6,"34":6,"35":6,"36":6,"37":6,"38":6,"39":6,"40":1,"41":2,"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":2,"56":2,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":0,"68":0,"69":0,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1},"f":{"0":8,"1":6,"2":1,"3":2,"4":1,"5":1,"6":1},"b":{"0":[5],"1":[7,1],"2":[8,2],"3":[0,0,0,1],"4":[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\n/**\n * DlcTransactions message contains information about state of DLC\n * contract such as fundtx and closetx\n */\nexport class DlcTransactions implements IDlcMessage {\n  public static type = MessageType.DlcTransactions;\n\n  /**\n   * Deserializes a dlc_transactions message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer, parseCets = true): DlcTransactions {\n    const instance = new DlcTransactions();\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 dlc_transactions message. dlc_transactions = 61230\n   */\n  public type = DlcTransactions.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 to JSON\n   */\n  public toJSON(): IDlcTransactionsJSON {\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 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 IDlcTransactionsJSON {\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\n// Backward compatibility aliases\nexport const DlcTransactionsV0 = DlcTransactions;\nexport type IDlcTransactionsV0JSON = IDlcTransactionsJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1199ed71155785e66429925679d011eb7701b13c","contentHash":"d5722774d3de1a901af2cae143a5759ef05915d8b1313067dd7c5009d91e2c91"},"/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":6,"column":0},"end":{"line":6,"column":62}},"1":{"start":{"line":7,"column":0},"end":{"line":7,"column":204}},"2":{"start":{"line":9,"column":0},"end":{"line":9,"column":29}},"3":{"start":{"line":12,"column":0},"end":{"line":91,"column":68}},"4":{"start":{"line":14,"column":4},"end":{"line":14,"column":62}},"5":{"start":{"line":15,"column":4},"end":{"line":15,"column":64}},"6":{"start":{"line":16,"column":4},"end":{"line":16,"column":60}},"7":{"start":{"line":18,"column":4},"end":{"line":18,"column":74}},"8":{"start":{"line":19,"column":4},"end":{"line":19,"column":82}},"9":{"start":{"line":20,"column":4},"end":{"line":20,"column":74}},"10":{"start":{"line":21,"column":4},"end":{"line":21,"column":86}},"11":{"start":{"line":22,"column":4},"end":{"line":22,"column":86}},"12":{"start":{"line":23,"column":4},"end":{"line":23,"column":86}},"13":{"start":{"line":24,"column":4},"end":{"line":24,"column":70}},"14":{"start":{"line":25,"column":4},"end":{"line":25,"column":78}},"15":{"start":{"line":26,"column":4},"end":{"line":26,"column":70}},"16":{"start":{"line":27,"column":4},"end":{"line":27,"column":76}},"17":{"start":{"line":28,"column":4},"end":{"line":28,"column":70}},"18":{"start":{"line":29,"column":4},"end":{"line":29,"column":74}},"19":{"start":{"line":31,"column":4},"end":{"line":31,"column":82}},"20":{"start":{"line":32,"column":4},"end":{"line":32,"column":86}},"21":{"start":{"line":33,"column":4},"end":{"line":33,"column":80}},"22":{"start":{"line":34,"column":4},"end":{"line":34,"column":84}},"23":{"start":{"line":35,"column":4},"end":{"line":35,"column":68}},"24":{"start":{"line":36,"column":4},"end":{"line":36,"column":72}},"25":{"start":{"line":37,"column":4},"end":{"line":37,"column":86}},"26":{"start":{"line":38,"column":4},"end":{"line":38,"column":84}},"27":{"start":{"line":39,"column":4},"end":{"line":39,"column":88}},"28":{"start":{"line":40,"column":4},"end":{"line":40,"column":112}},"29":{"start":{"line":41,"column":4},"end":{"line":41,"column":116}},"30":{"start":{"line":42,"column":4},"end":{"line":42,"column":84}},"31":{"start":{"line":43,"column":4},"end":{"line":43,"column":84}},"32":{"start":{"line":44,"column":4},"end":{"line":44,"column":84}},"33":{"start":{"line":45,"column":4},"end":{"line":45,"column":70}},"34":{"start":{"line":46,"column":4},"end":{"line":46,"column":74}},"35":{"start":{"line":47,"column":4},"end":{"line":47,"column":62}},"36":{"start":{"line":48,"column":4},"end":{"line":48,"column":86}},"37":{"start":{"line":49,"column":4},"end":{"line":49,"column":90}},"38":{"start":{"line":50,"column":4},"end":{"line":50,"column":80}},"39":{"start":{"line":51,"column":4},"end":{"line":51,"column":84}},"40":{"start":{"line":52,"column":4},"end":{"line":52,"column":74}},"41":{"start":{"line":53,"column":4},"end":{"line":53,"column":78}},"42":{"start":{"line":55,"column":4},"end":{"line":55,"column":98}},"43":{"start":{"line":56,"column":4},"end":{"line":56,"column":96}},"44":{"start":{"line":57,"column":4},"end":{"line":57,"column":102}},"45":{"start":{"line":58,"column":4},"end":{"line":58,"column":80}},"46":{"start":{"line":59,"column":4},"end":{"line":59,"column":84}},"47":{"start":{"line":60,"column":4},"end":{"line":60,"column":62}},"48":{"start":{"line":61,"column":4},"end":{"line":61,"column":64}},"49":{"start":{"line":65,"column":4},"end":{"line":65,"column":76}},"50":{"start":{"line":66,"column":4},"end":{"line":66,"column":80}},"51":{"start":{"line":67,"column":4},"end":{"line":67,"column":58}},"52":{"start":{"line":68,"column":4},"end":{"line":68,"column":62}},"53":{"start":{"line":69,"column":4},"end":{"line":69,"column":60}},"54":{"start":{"line":70,"column":4},"end":{"line":70,"column":64}},"55":{"start":{"line":74,"column":4},"end":{"line":74,"column":78}},"56":{"start":{"line":75,"column":4},"end":{"line":75,"column":82}},"57":{"start":{"line":79,"column":4},"end":{"line":79,"column":66}},"58":{"start":{"line":80,"column":4},"end":{"line":80,"column":68}},"59":{"start":{"line":81,"column":4},"end":{"line":81,"column":76}},"60":{"start":{"line":82,"column":4},"end":{"line":82,"column":74}},"61":{"start":{"line":83,"column":4},"end":{"line":83,"column":80}},"62":{"start":{"line":84,"column":4},"end":{"line":84,"column":94}},"63":{"start":{"line":85,"column":4},"end":{"line":85,"column":94}},"64":{"start":{"line":86,"column":4},"end":{"line":86,"column":70}},"65":{"start":{"line":87,"column":4},"end":{"line":87,"column":80}},"66":{"start":{"line":88,"column":4},"end":{"line":88,"column":70}},"67":{"start":{"line":89,"column":4},"end":{"line":89,"column":78}},"68":{"start":{"line":90,"column":4},"end":{"line":90,"column":92}},"69":{"start":{"line":94,"column":0},"end":{"line":97,"column":83}},"70":{"start":{"line":95,"column":4},"end":{"line":95,"column":64}},"71":{"start":{"line":96,"column":4},"end":{"line":96,"column":68}},"72":{"start":{"line":99,"column":0},"end":{"line":102,"column":101}},"73":{"start":{"line":100,"column":4},"end":{"line":100,"column":84}},"74":{"start":{"line":101,"column":4},"end":{"line":101,"column":92}},"75":{"start":{"line":104,"column":0},"end":{"line":107,"column":77}},"76":{"start":{"line":105,"column":4},"end":{"line":105,"column":60}},"77":{"start":{"line":106,"column":4},"end":{"line":106,"column":58}},"78":{"start":{"line":109,"column":0},"end":{"line":112,"column":98}},"79":{"start":{"line":110,"column":4},"end":{"line":110,"column":74}},"80":{"start":{"line":111,"column":4},"end":{"line":111,"column":78}},"81":{"start":{"line":114,"column":0},"end":{"line":117,"column":95}},"82":{"start":{"line":115,"column":4},"end":{"line":115,"column":80}},"83":{"start":{"line":116,"column":4},"end":{"line":116,"column":78}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":1},"end":{"line":12,"column":2}},"loc":{"start":{"line":12,"column":24},"end":{"line":91,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":94,"column":1},"end":{"line":94,"column":2}},"loc":{"start":{"line":94,"column":29},"end":{"line":97,"column":1}},"line":94},"2":{"name":"(anonymous_2)","decl":{"start":{"line":99,"column":1},"end":{"line":99,"column":2}},"loc":{"start":{"line":99,"column":35},"end":{"line":102,"column":1}},"line":99},"3":{"name":"(anonymous_3)","decl":{"start":{"line":104,"column":1},"end":{"line":104,"column":2}},"loc":{"start":{"line":104,"column":27},"end":{"line":107,"column":1}},"line":104},"4":{"name":"(anonymous_4)","decl":{"start":{"line":109,"column":1},"end":{"line":109,"column":2}},"loc":{"start":{"line":109,"column":34},"end":{"line":112,"column":1}},"line":109},"5":{"name":"(anonymous_5)","decl":{"start":{"line":114,"column":1},"end":{"line":114,"column":2}},"loc":{"start":{"line":114,"column":33},"end":{"line":117,"column":1}},"line":114}},"branchMap":{"0":{"loc":{"start":{"line":91,"column":17},"end":{"line":91,"column":66}},"type":"binary-expr","locations":[{"start":{"line":91,"column":17},"end":{"line":91,"column":36}},{"start":{"line":91,"column":41},"end":{"line":91,"column":65}}],"line":91},"1":{"loc":{"start":{"line":97,"column":22},"end":{"line":97,"column":81}},"type":"binary-expr","locations":[{"start":{"line":97,"column":22},"end":{"line":97,"column":46}},{"start":{"line":97,"column":51},"end":{"line":97,"column":80}}],"line":97},"2":{"loc":{"start":{"line":102,"column":28},"end":{"line":102,"column":99}},"type":"binary-expr","locations":[{"start":{"line":102,"column":28},"end":{"line":102,"column":58}},{"start":{"line":102,"column":63},"end":{"line":102,"column":98}}],"line":102},"3":{"loc":{"start":{"line":107,"column":20},"end":{"line":107,"column":75}},"type":"binary-expr","locations":[{"start":{"line":107,"column":20},"end":{"line":107,"column":42}},{"start":{"line":107,"column":47},"end":{"line":107,"column":74}}],"line":107},"4":{"loc":{"start":{"line":112,"column":27},"end":{"line":112,"column":96}},"type":"binary-expr","locations":[{"start":{"line":112,"column":27},"end":{"line":112,"column":56}},{"start":{"line":112,"column":61},"end":{"line":112,"column":95}}],"line":112},"5":{"loc":{"start":{"line":117,"column":26},"end":{"line":117,"column":93}},"type":"binary-expr","locations":[{"start":{"line":117,"column":26},"end":{"line":117,"column":54}},{"start":{"line":117,"column":59},"end":{"line":117,"column":92}}],"line":117}},"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,"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":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1},"f":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1},"b":{"0":[1,1],"1":[1,1],"2":[1,1],"3":[1,1],"4":[1,1],"5":[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":"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","sourcesContent":["/**\n * Defined in DLC Messaging Spec\n * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Messaging.md\n */\n\n// Protocol version as defined in dlcspecs PR #163\nexport const PROTOCOL_VERSION = 1;\n\n// Wire message types (remain unchanged for backward compatibility)\nexport enum MessageType {\n  // Core DLC Message Types (remain as wire format with u16 prefix)\n  DlcOffer = 42778,\n  DlcAccept = 42780,\n  DlcSign = 42782,\n\n  // Legacy contract types (keeping for backward compatibility during transition)\n  ContractInfoV0 = 55342,\n  SingleContractInfo = 55342,\n  ContractInfoV1 = 55344,\n  DisjointContractInfo = 55344,\n\n  ContractDescriptorV0 = 42768,\n  ContractDescriptorV1 = 42784,\n\n  OracleInfoV0 = 42770,\n  SingleOracleInfo = 42770,\n  OracleInfoV1 = 42786,\n  MultiOracleInfo = 42786,\n  OracleInfoV2 = 55340,\n\n  OracleParamsV0 = 55338,\n\n  // Oracle message types (remain as TLV for backward compatibility)\n  OracleAnnouncement = 55332,\n  OracleAnnouncementV0 = OracleAnnouncement, // Backward compatibility alias\n  OracleAttestation = 55400,\n  OracleAttestationV0 = OracleAttestation, // Backward compatibility alias\n  OracleEvent = 55330,\n  OracleEventV0 = OracleEvent, // Backward compatibility alias\n\n  OracleEventContainer = 61632,\n\n  EnumEventDescriptor = 55302,\n  EnumEventDescriptorV0 = EnumEventDescriptor, // Backward compatibility alias\n\n  DigitDecompositionEventDescriptor = 55306,\n  DigitDecompositionEventDescriptorV0 = DigitDecompositionEventDescriptor, // Backward compatibility alias\n\n  NegotiationFieldsV0 = 55334,\n  NegotiationFieldsV1 = 55336,\n  NegotiationFieldsV2 = 55346,\n\n  FundingInput = 42772,\n  FundingInputV0 = FundingInput, // Backward compatibility alias\n\n  DlcInput = 42773,\n\n  CetAdaptorSignatures = 42774,\n  CetAdaptorSignaturesV0 = CetAdaptorSignatures, // Backward compatibility alias\n\n  FundingSignatures = 42776,\n  FundingSignaturesV0 = FundingSignatures, // Backward compatibility alias\n\n  PayoutFunction = 42790,\n  PayoutFunctionV0 = PayoutFunction, // Backward compatibility alias\n\n  // PayoutCurvePiece types - kept for backward compatibility\n  PolynomialPayoutCurvePiece = 42792,\n  HyperbolaPayoutCurvePiece = 42794,\n  OldHyperbolaPayoutCurvePiece = 42796, // Legacy support\n\n  RoundingIntervals = 42788,\n  RoundingIntervalsV0 = RoundingIntervals, // Backward compatibility alias\n\n  DlcClose = 52170, // TODO: Temporary type\n  DlcCancel = 52172,\n\n  /**\n   * Dlc Storage Types\n   */\n  DlcTransactions = 61230,\n  DlcTransactionsV0 = DlcTransactions, // Backward compatibility alias\n  DlcIds = 61232,\n  DlcIdsV0 = DlcIds, // Backward compatibility alias\n  DlcInfo = 61234,\n  DlcInfoV0 = DlcInfo, // Backward compatibility alias\n\n  /**\n   * Oracle Identifier\n   */\n  OracleIdentifier = 61472,\n  OracleIdentifierV0 = OracleIdentifier, // Backward compatibility alias\n\n  /**\n   * Order Message Types\n   */\n  OrderOffer = 62770,\n  OrderAccept = 62772,\n  OrderMetadataV0 = 62774,\n  OrderIrcInfoV0 = 62776,\n  OrderPositionInfo = 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\n// New sub-type identifiers for sibling sub-types (as per dlcspecs PR #163)\nexport enum ContractInfoType {\n  Single = 0,\n  Disjoint = 1,\n}\n\nexport enum ContractDescriptorType {\n  Enumerated = 0,\n  NumericOutcome = 1,\n}\n\nexport enum OracleInfoType {\n  Single = 0,\n  Multi = 1,\n}\n\nexport enum NegotiationFieldsType {\n  Single = 0,\n  Disjoint = 1,\n}\n\nexport enum PayoutCurvePieceType {\n  Polynomial = 0,\n  Hyperbola = 1,\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4a9b9b2f240c305ef1cc19e2ab1c9148090c5dc5","contentHash":"d6006359eec86e3f82c3f2868ff2b2340c6b23489d5a5762ac70c0a147405eab"},"/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":67}},"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}},"5":{"start":{"line":14,"column":4},"end":{"line":15,"column":25}},"6":{"start":{"line":15,"column":8},"end":{"line":15,"column":25}},"7":{"start":{"line":16,"column":4},"end":{"line":17,"column":21}},"8":{"start":{"line":17,"column":8},"end":{"line":17,"column":21}},"9":{"start":{"line":18,"column":4},"end":{"line":19,"column":29}},"10":{"start":{"line":19,"column":8},"end":{"line":19,"column":29}},"11":{"start":{"line":20,"column":4},"end":{"line":21,"column":29}},"12":{"start":{"line":21,"column":8},"end":{"line":21,"column":29}},"13":{"start":{"line":22,"column":4},"end":{"line":22,"column":21}},"14":{"start":{"line":24,"column":0},"end":{"line":24,"column":28}},"15":{"start":{"line":33,"column":4},"end":{"line":36,"column":5}},"16":{"start":{"line":35,"column":8},"end":{"line":35,"column":29}},"17":{"start":{"line":39,"column":4},"end":{"line":39,"column":17}},"18":{"start":{"line":41,"column":0},"end":{"line":41,"column":40}}},"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},"2":{"name":"toBigInt","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":17}},"loc":{"start":{"line":13,"column":25},"end":{"line":23,"column":1}},"line":13},"3":{"name":"bigIntToNumber","decl":{"start":{"line":31,"column":9},"end":{"line":31,"column":23}},"loc":{"start":{"line":31,"column":31},"end":{"line":40,"column":1}},"line":31}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":4},"end":{"line":15,"column":25}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":15,"column":25}},{"start":{},"end":{}}],"line":14},"1":{"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":45}},"type":"binary-expr","locations":[{"start":{"line":14,"column":8},"end":{"line":14,"column":22}},{"start":{"line":14,"column":26},"end":{"line":14,"column":45}}],"line":14},"2":{"loc":{"start":{"line":16,"column":4},"end":{"line":17,"column":21}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":17,"column":21}},{"start":{},"end":{}}],"line":16},"3":{"loc":{"start":{"line":18,"column":4},"end":{"line":19,"column":29}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":19,"column":29}},{"start":{},"end":{}}],"line":18},"4":{"loc":{"start":{"line":20,"column":4},"end":{"line":21,"column":29}},"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":21,"column":29}},{"start":{},"end":{}}],"line":20},"5":{"loc":{"start":{"line":33,"column":4},"end":{"line":36,"column":5}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":36,"column":5}},{"start":{},"end":{}}],"line":33},"6":{"loc":{"start":{"line":33,"column":8},"end":{"line":34,"column":48}},"type":"binary-expr","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":48}},{"start":{"line":34,"column":8},"end":{"line":34,"column":48}}],"line":33}},"s":{"0":1,"1":1,"2":2,"3":2,"4":1,"5":598,"6":23,"7":575,"8":217,"9":358,"10":0,"11":358,"12":358,"13":0,"14":1,"15":306,"16":187,"17":119,"18":1},"f":{"0":2,"1":2,"2":598,"3":306},"b":{"0":[23,575],"1":[598,598],"2":[217,358],"3":[0,358],"4":[358,0],"5":[187,119],"6":[306,187]},"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;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CACtB,KAAkD;IAElD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AARD,4BAQC;AAED;;;;GAIG;AACH,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,KAAa;IAC1C,0DAA0D;IAC1D,IACE,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACxC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACxC;QACA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;KACtB;IACD,gFAAgF;IAChF,8DAA8D;IAC9D,OAAO,KAAY,CAAC;AACtB,CAAC;AAXD,wCAWC","sourcesContent":["export function sleep(ms: number): Promise<void> {\n  return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Safely converts various input types to BigInt\n * @param value Value to convert to BigInt\n * @returns BigInt representation of the value, or BigInt(0) for null/undefined\n */\nexport function toBigInt(\n  value: string | number | bigint | null | undefined,\n): bigint {\n  if (value === null || value === undefined) return BigInt(0);\n  if (typeof value === 'bigint') return value;\n  if (typeof value === 'string') return BigInt(value);\n  if (typeof value === 'number') return BigInt(value);\n  return BigInt(0);\n}\n\n/**\n * Safely converts BigInt to number, preserving precision for safe integers\n * @param value BigInt value to convert\n * @returns Number if within safe range, otherwise returns the BigInt as-is for JSON serialization\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function bigIntToNumber(value: bigint): number | any {\n  // For values within safe integer range, convert to number\n  if (\n    value <= BigInt(Number.MAX_SAFE_INTEGER) &&\n    value >= BigInt(Number.MIN_SAFE_INTEGER)\n  ) {\n    return Number(value);\n  }\n  // For larger values, preserve as BigInt (json-bigint will handle serialization)\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  return value as any;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"158fa48c03f6ced7bfc02f18c840c02235f96483","contentHash":"e5264e57267301a4d6188e5629fe5c9e1e53f3bfc5c285a6ea266d0fcc5ac458"},"/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,EAA2B,CAAC;IAyBvD,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,eAAgC;QAEhC,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 { DlcTransactions } 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, DlcTransactions>();\n\n  public get dlcTransactionsListCount(): number {\n    return this._dlcTxs.size;\n  }\n\n  public async findDlcTransactionsList(): Promise<DlcTransactions[]> {\n    return Array.from(this._dlcTxs.values());\n  }\n\n  public async findDlcTransactions(\n    contractId: Buffer,\n  ): Promise<DlcTransactions> {\n    return this._dlcTxs.get(contractId);\n  }\n\n  public async saveDlcTransactions(\n    dlcTransactions: DlcTransactions,\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":"c6a6d61f2f716ac3c3e9c476c8c78817bf706c5d","contentHash":"9dc3337b70cb107281e5023dfee8f27aaff745fdb53c311fcce9a1b99380c665"},"/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":21}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":55}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":51}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":66}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":51}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":51}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":58}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":63}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":66}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":64}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":58}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":55}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":55}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":54}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":62}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":52}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":53}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":54}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":56}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":54}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":53}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":61}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":61}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":58}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":63}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":63}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":69}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":64}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":63}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":57}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":66}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":62}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":56}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":57}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":58}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":59}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":68}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":56}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":63}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":62}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":60}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":63}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":61}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":48}},"60":{"start":{"line":61,"column":12},"end":{"line":61,"column":38}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":100}},"62":{"start":{"line":62,"column":77},"end":{"line":62,"column":94}},"63":{"start":{"line":63,"column":0},"end":{"line":63,"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},"4":{"name":"(anonymous_4)","decl":{"start":{"line":62,"column":63},"end":{"line":62,"column":64}},"loc":{"start":{"line":62,"column":75},"end":{"line":62,"column":96}},"line":62}},"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":96,"2":96,"3":96,"4":96,"5":96,"6":292,"7":96,"8":0,"9":0,"10":0,"11":1,"12":44,"13":96,"14":96,"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,"59":1,"60":1,"61":1,"62":0,"63":1},"f":{"0":96,"1":292,"2":0,"3":44,"4":0},"b":{"0":[1,1,1],"1":[1,0],"2":[96,0],"3":[96,0],"4":[96,96],"5":[0,96],"6":[96,0],"7":[0,0],"8":[1,1,1],"9":[96,0],"10":[96,96]},"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,kEAAgD;AAChD,gEAA8C;AAC9C,0DAAwC;AACxC,uDAAqC;AACrC,uDAAqC;AACrC,sDAAoC;AACpC,8DAA4C;AAC5C,oDAAkC;AAClC,qDAAmC;AACnC,sDAAoC;AACpC,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,6DAA2C;AAC3C,6DAA2C;AAC3C,0DAAwC;AACxC,+DAA6C;AAC7C,+DAA6C;AAC7C,qEAAmD;AACnD,gEAA8C;AAC9C,+DAA6C;AAC7C,yDAAuC;AACvC,kEAAgD;AAChD,8DAA4C;AAC5C,wDAAsC;AACtC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,oEAAkD;AAClD,wDAAsC;AACtC,+DAA6C;AAC7C,8DAA4C;AAC5C,4DAA0C;AAC1C,+DAA6C;AAC7C,6DAA2C;AAC3C,gDAA8B;AAC9B,uCAAsC;AAA7B,0FAAA,GAAG,OAAA;AACZ,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/CetAdaptorSignatures';\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/DlcInput';\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/FundingSignatures';\nexport * from './messages/NegotiationFields';\nexport * from './messages/NodeAnnouncementMessage';\nexport * from './messages/OracleAnnouncement';\nexport * from './messages/OracleAttestation';\nexport * from './messages/OracleEvent';\nexport * from './messages/OracleEventContainer';\nexport * from './messages/OracleIdentifier';\nexport * from './messages/OracleInfo';\nexport * from './messages/OrderAccept';\nexport * from './messages/OrderIrcInfo';\nexport * from './messages/OrderMetadata';\nexport * from './messages/OrderNegotiationFields';\nexport * from './messages/OrderOffer';\nexport * from './messages/OrderPositionInfo';\nexport * from './messages/PayoutCurvePiece';\nexport * from './messages/PayoutFunction';\nexport * from './messages/RoundingIntervals';\nexport * from './messages/ScriptWitnessV0';\nexport * from './MessageType';\nexport { F64 } from './serialize/F64';\nexport * from './validation/validate';\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9251faa98cb464affb78bad5bedcc3e6e3004d32","contentHash":"1f6f6b2b9af5f1257ad236436f46cb7835212ae0e329cc95f920cbba37d2bed6"},"/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 { DlcTransactions } from '../messages/DlcTransactions';\n\n/**\n * Interface for storing, finding, and deleting dlc messages.\n */\nexport interface IDlcStore {\n  findDlcTransactionsList(): Promise<DlcTransactions[]>;\n  findDlcTransactions(contractId: Buffer): Promise<DlcTransactions>;\n  saveDlcTransactions(dlcTransactions: DlcTransactions): Promise<void>;\n  deleteDlcTransactions(contractId: Buffer): Promise<void>;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aa1bfcf8d51fcbf0ce0bdf3b43a78ae422f45669","contentHash":"1213c8ecd6a395d2c7fe1f40b63ec1ee37d3edc790974218fcfb2fb114f1efef"},"/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":"fbfc3c9a38db1fb7c453d712b2ad68381ea2d223bf816dd6b80530302c21b82e"},"/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":"e21b8291bfbbef998b9057b4d21f98e6966f64c8e86e23dec459dc8bf839291c"},"/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":"24f61d76fc598f8344ff3849b0ffcd09db1cda0d2a0787df72daeed6d92bc927"},"/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-network';\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":"4e60434fda9f7dc1dd983aeda09f344057eaa07e","contentHash":"22bd519350fab427514b03b3606b995ae1b5fe9af3e40176c9c6b7826be33fe9"},"/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":8,"6":8,"7":8,"8":8,"9":4,"10":4,"11":4,"12":4,"13":4,"14":4,"15":4,"16":3,"17":3,"18":4,"19":4,"20":4,"21":3,"22":3,"23":4,"24":4,"25":4,"26":4,"27":10,"28":10,"29":10,"30":4,"31":2,"32":0,"33":0,"34":10,"35":10,"36":10,"37":10,"38":10,"39":9,"40":9,"41":10,"42":10,"43":9,"44":9,"45":10,"46":10,"47":10,"48":28,"49":28,"50":28,"51":10,"52":10,"53":10,"54":1,"55":1},"f":{"0":8,"1":4,"2":2,"3":0,"4":0,"5":10,"6":9,"7":9,"8":28},"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":"0c4d86acaa26cb1c9db5806baa59a5a62f06260c066c0d4ed1e2df1ddb8bee71"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignatures.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignatures.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":47}},"4":{"start":{"line":15,"column":8},"end":{"line":15,"column":46}},"5":{"start":{"line":16,"column":8},"end":{"line":16,"column":23}},"6":{"start":{"line":23,"column":25},"end":{"line":23,"column":51}},"7":{"start":{"line":24,"column":23},"end":{"line":24,"column":52}},"8":{"start":{"line":25,"column":29},"end":{"line":25,"column":57}},"9":{"start":{"line":27,"column":8},"end":{"line":31,"column":9}},"10":{"start":{"line":27,"column":21},"end":{"line":27,"column":22}},"11":{"start":{"line":28,"column":33},"end":{"line":28,"column":53}},"12":{"start":{"line":29,"column":30},"end":{"line":29,"column":50}},"13":{"start":{"line":30,"column":12},"end":{"line":30,"column":60}},"14":{"start":{"line":32,"column":8},"end":{"line":32,"column":24}},"15":{"start":{"line":38,"column":8},"end":{"line":46,"column":10}},"16":{"start":{"line":41,"column":34},"end":{"line":41,"column":82}},"17":{"start":{"line":42,"column":16},"end":{"line":44,"column":18}},"18":{"start":{"line":52,"column":23},"end":{"line":52,"column":49}},"19":{"start":{"line":54,"column":27},"end":{"line":54,"column":53}},"20":{"start":{"line":55,"column":8},"end":{"line":55,"column":50}},"21":{"start":{"line":56,"column":8},"end":{"line":59,"column":9}},"22":{"start":{"line":57,"column":12},"end":{"line":57,"column":52}},"23":{"start":{"line":58,"column":12},"end":{"line":58,"column":49}},"24":{"start":{"line":61,"column":8},"end":{"line":61,"column":49}},"25":{"start":{"line":62,"column":8},"end":{"line":62,"column":33}},"26":{"start":{"line":65,"column":0},"end":{"line":65,"column":52}},"27":{"start":{"line":66,"column":0},"end":{"line":66,"column":75}}},"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":33,"column":5}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":13},"end":{"line":47,"column":5}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":50},"end":{"line":39,"column":51}},"loc":{"start":{"line":39,"column":59},"end":{"line":45,"column":13}},"line":39},"4":{"name":"(anonymous_4)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":16},"end":{"line":63,"column":5}},"line":51}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":195,"5":195,"6":100,"7":100,"8":100,"9":100,"10":100,"11":15293,"12":15293,"13":15293,"14":100,"15":36,"16":5173,"17":5173,"18":214,"19":214,"20":214,"21":214,"22":30669,"23":30669,"24":214,"25":214,"26":1,"27":1},"f":{"0":195,"1":100,"2":36,"3":5173,"4":214},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignatures.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/CetAdaptorSignatures.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C;;;GAGG;AACH,MAAa,oBAAoB;IAAjC;QAuBE;;WAEG;QACI,SAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;QAIjC,SAAI,GAAW,EAAE,CAAC;IAoC3B,CAAC;IA/DC;;;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,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,gBAAgB;QAEnE,wEAAwE;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACrC,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,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5C,yFAAyF;gBACzF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnE,OAAO;oBACL,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACrC,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,kCAAkC;QAElC,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,wCAAwC;QACxC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAjEH,oDAkEC;AAjEe,yBAAI,GAAG,yBAAW,CAAC,oBAAoB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * CetAdaptorSignatures contains CET signatures and any necessary\n * information linking the signatures to their corresponding outcome\n */\nexport class CetAdaptorSignatures implements IDlcMessage {\n  public static type = MessageType.CetAdaptorSignatures;\n\n  /**\n   * Deserializes a cet_adaptor_signature message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): CetAdaptorSignatures {\n    const instance = new CetAdaptorSignatures();\n    const reader = new BufferReader(buf);\n\n    const nbSignatures = Number(reader.readBigSize()); // nb_signatures\n\n    // Read exactly nbSignatures * (65 + 97) bytes to match serialize format\n    for (let i = 0; i < nbSignatures; i++) {\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 = CetAdaptorSignatures.type;\n\n  public length: bigint;\n\n  public sigs: ISig[] = [];\n\n  /**\n   * Converts cet_adaptor_signature to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): ICetAdaptorSignaturesJSON {\n    return {\n      ecdsaAdaptorSignatures: this.sigs.map((sig) => {\n        // Combine encryptedSig and dleqProof into single signature field as expected by rust-dlc\n        const signature = Buffer.concat([sig.encryptedSig, sig.dleqProof]);\n        return {\n          signature: signature.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 ICetAdaptorSignaturesJSON {\n  ecdsaAdaptorSignatures: ISigJSON[];\n}\n\nexport interface ISigJSON {\n  signature: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"58d9ce43263609b76502c3c9d77d5485b9a07558","contentHash":"7f6c5fcea3852327d8a041cd196631ae48ec1c8f47d59d5f2eb45f91c70494b5"},"/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":159}},"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":52}},"5":{"start":{"line":7,"column":28},"end":{"line":7,"column":58}},"6":{"start":{"line":10,"column":23},"end":{"line":10,"column":52}},"7":{"start":{"line":11,"column":23},"end":{"line":11,"column":51}},"8":{"start":{"line":12,"column":8},"end":{"line":19,"column":9}},"9":{"start":{"line":14,"column":16},"end":{"line":14,"column":61}},"10":{"start":{"line":16,"column":16},"end":{"line":16,"column":60}},"11":{"start":{"line":18,"column":16},"end":{"line":18,"column":120}},"12":{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},"13":{"start":{"line":28,"column":12},"end":{"line":28,"column":62}},"14":{"start":{"line":31,"column":8},"end":{"line":44,"column":9}},"15":{"start":{"line":33,"column":12},"end":{"line":34,"column":53}},"16":{"start":{"line":37,"column":13},"end":{"line":44,"column":9}},"17":{"start":{"line":39,"column":12},"end":{"line":40,"column":58}},"18":{"start":{"line":43,"column":12},"end":{"line":43,"column":132}},"19":{"start":{"line":47,"column":0},"end":{"line":47,"column":48}},"20":{"start":{"line":55,"column":8},"end":{"line":55,"column":28}},"21":{"start":{"line":59,"column":8},"end":{"line":59,"column":67}},"22":{"start":{"line":63,"column":8},"end":{"line":63,"column":86}},"23":{"start":{"line":64,"column":8},"end":{"line":64,"column":27}},"24":{"start":{"line":72,"column":25},"end":{"line":72,"column":51}},"25":{"start":{"line":73,"column":24},"end":{"line":73,"column":42}},"26":{"start":{"line":75,"column":8},"end":{"line":78,"column":12}},"27":{"start":{"line":75,"column":53},"end":{"line":78,"column":9}},"28":{"start":{"line":79,"column":8},"end":{"line":79,"column":24}},"29":{"start":{"line":86,"column":25},"end":{"line":86,"column":51}},"30":{"start":{"line":87,"column":23},"end":{"line":87,"column":52}},"31":{"start":{"line":88,"column":8},"end":{"line":88,"column":29}},"32":{"start":{"line":89,"column":28},"end":{"line":89,"column":56}},"33":{"start":{"line":90,"column":8},"end":{"line":98,"column":9}},"34":{"start":{"line":90,"column":21},"end":{"line":90,"column":22}},"35":{"start":{"line":91,"column":31},"end":{"line":91,"column":59}},"36":{"start":{"line":92,"column":28},"end":{"line":92,"column":67}},"37":{"start":{"line":93,"column":32},"end":{"line":93,"column":53}},"38":{"start":{"line":94,"column":12},"end":{"line":97,"column":15}},"39":{"start":{"line":99,"column":8},"end":{"line":99,"column":24}},"40":{"start":{"line":106,"column":8},"end":{"line":113,"column":10}},"41":{"start":{"line":108,"column":57},"end":{"line":111,"column":17}},"42":{"start":{"line":119,"column":23},"end":{"line":119,"column":49}},"43":{"start":{"line":120,"column":8},"end":{"line":120,"column":57}},"44":{"start":{"line":121,"column":8},"end":{"line":121,"column":50}},"45":{"start":{"line":122,"column":8},"end":{"line":126,"column":9}},"46":{"start":{"line":123,"column":12},"end":{"line":123,"column":56}},"47":{"start":{"line":124,"column":12},"end":{"line":124,"column":60}},"48":{"start":{"line":125,"column":12},"end":{"line":125,"column":54}},"49":{"start":{"line":127,"column":8},"end":{"line":127,"column":33}},"50":{"start":{"line":130,"column":0},"end":{"line":130,"column":52}},"51":{"start":{"line":131,"column":0},"end":{"line":131,"column":94}},"52":{"start":{"line":139,"column":8},"end":{"line":139,"column":28}},"53":{"start":{"line":143,"column":8},"end":{"line":143,"column":67}},"54":{"start":{"line":147,"column":8},"end":{"line":147,"column":90}},"55":{"start":{"line":155,"column":25},"end":{"line":155,"column":50}},"56":{"start":{"line":156,"column":8},"end":{"line":156,"column":68}},"57":{"start":{"line":158,"column":8},"end":{"line":158,"column":120}},"58":{"start":{"line":160,"column":8},"end":{"line":160,"column":135}},"59":{"start":{"line":161,"column":8},"end":{"line":161,"column":24}},"60":{"start":{"line":168,"column":25},"end":{"line":168,"column":50}},"61":{"start":{"line":169,"column":23},"end":{"line":169,"column":52}},"62":{"start":{"line":170,"column":8},"end":{"line":170,"column":29}},"63":{"start":{"line":171,"column":8},"end":{"line":171,"column":51}},"64":{"start":{"line":173,"column":39},"end":{"line":173,"column":54}},"65":{"start":{"line":174,"column":35},"end":{"line":174,"column":132}},"66":{"start":{"line":175,"column":8},"end":{"line":175,"column":53}},"67":{"start":{"line":177,"column":35},"end":{"line":177,"column":72}},"68":{"start":{"line":178,"column":8},"end":{"line":178,"column":70}},"69":{"start":{"line":180,"column":8},"end":{"line":180,"column":141}},"70":{"start":{"line":181,"column":8},"end":{"line":181,"column":24}},"71":{"start":{"line":189,"column":8},"end":{"line":189,"column":42}},"72":{"start":{"line":196,"column":8},"end":{"line":202,"column":10}},"73":{"start":{"line":208,"column":23},"end":{"line":208,"column":49}},"74":{"start":{"line":209,"column":8},"end":{"line":209,"column":57}},"75":{"start":{"line":210,"column":8},"end":{"line":210,"column":45}},"76":{"start":{"line":211,"column":8},"end":{"line":211,"column":59}},"77":{"start":{"line":212,"column":8},"end":{"line":212,"column":62}},"78":{"start":{"line":213,"column":8},"end":{"line":213,"column":33}},"79":{"start":{"line":216,"column":0},"end":{"line":216,"column":50}},"80":{"start":{"line":217,"column":0},"end":{"line":217,"column":97}},"81":{"start":{"line":219,"column":0},"end":{"line":219,"column":52}},"82":{"start":{"line":220,"column":0},"end":{"line":220,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":28},"end":{"line":20,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":26},"end":{"line":45,"column":5}},"line":26},"2":{"name":"(anonymous_2)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":18},"end":{"line":65,"column":5}},"line":54},"3":{"name":"(anonymous_3)","decl":{"start":{"line":71,"column":4},"end":{"line":71,"column":5}},"loc":{"start":{"line":71,"column":26},"end":{"line":80,"column":5}},"line":71},"4":{"name":"(anonymous_4)","decl":{"start":{"line":75,"column":40},"end":{"line":75,"column":41}},"loc":{"start":{"line":75,"column":53},"end":{"line":78,"column":9}},"line":75},"5":{"name":"(anonymous_5)","decl":{"start":{"line":85,"column":4},"end":{"line":85,"column":5}},"loc":{"start":{"line":85,"column":28},"end":{"line":100,"column":5}},"line":85},"6":{"name":"(anonymous_6)","decl":{"start":{"line":104,"column":4},"end":{"line":104,"column":5}},"loc":{"start":{"line":104,"column":13},"end":{"line":114,"column":5}},"line":104},"7":{"name":"(anonymous_7)","decl":{"start":{"line":108,"column":43},"end":{"line":108,"column":44}},"loc":{"start":{"line":108,"column":57},"end":{"line":111,"column":17}},"line":108},"8":{"name":"(anonymous_8)","decl":{"start":{"line":118,"column":4},"end":{"line":118,"column":5}},"loc":{"start":{"line":118,"column":16},"end":{"line":128,"column":5}},"line":118},"9":{"name":"(anonymous_9)","decl":{"start":{"line":138,"column":4},"end":{"line":138,"column":5}},"loc":{"start":{"line":138,"column":18},"end":{"line":148,"column":5}},"line":138},"10":{"name":"(anonymous_10)","decl":{"start":{"line":154,"column":4},"end":{"line":154,"column":5}},"loc":{"start":{"line":154,"column":26},"end":{"line":162,"column":5}},"line":154},"11":{"name":"(anonymous_11)","decl":{"start":{"line":167,"column":4},"end":{"line":167,"column":5}},"loc":{"start":{"line":167,"column":28},"end":{"line":182,"column":5}},"line":167},"12":{"name":"(anonymous_12)","decl":{"start":{"line":188,"column":4},"end":{"line":188,"column":5}},"loc":{"start":{"line":188,"column":15},"end":{"line":190,"column":5}},"line":188},"13":{"name":"(anonymous_13)","decl":{"start":{"line":194,"column":4},"end":{"line":194,"column":5}},"loc":{"start":{"line":194,"column":13},"end":{"line":203,"column":5}},"line":194},"14":{"name":"(anonymous_14)","decl":{"start":{"line":207,"column":4},"end":{"line":207,"column":5}},"loc":{"start":{"line":207,"column":16},"end":{"line":214,"column":5}},"line":207}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":19,"column":9}},"type":"switch","locations":[{"start":{"line":13,"column":12},"end":{"line":14,"column":61}},{"start":{"line":15,"column":12},"end":{"line":16,"column":60}},{"start":{"line":17,"column":12},"end":{"line":18,"column":120}}],"line":12},"1":{"loc":{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},"type":"if","locations":[{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},{"start":{},"end":{}}],"line":27},"2":{"loc":{"start":{"line":31,"column":8},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":31,"column":8},"end":{"line":44,"column":9}},{"start":{"line":37,"column":13},"end":{"line":44,"column":9}}],"line":31},"3":{"loc":{"start":{"line":31,"column":12},"end":{"line":32,"column":47}},"type":"binary-expr","locations":[{"start":{"line":31,"column":12},"end":{"line":31,"column":45}},{"start":{"line":32,"column":12},"end":{"line":32,"column":47}}],"line":31},"4":{"loc":{"start":{"line":33,"column":49},"end":{"line":34,"column":51}},"type":"binary-expr","locations":[{"start":{"line":33,"column":49},"end":{"line":33,"column":82}},{"start":{"line":34,"column":16},"end":{"line":34,"column":51}}],"line":33},"5":{"loc":{"start":{"line":37,"column":13},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":37,"column":13},"end":{"line":44,"column":9}},{"start":{"line":42,"column":13},"end":{"line":44,"column":9}}],"line":37},"6":{"loc":{"start":{"line":37,"column":17},"end":{"line":38,"column":52}},"type":"binary-expr","locations":[{"start":{"line":37,"column":17},"end":{"line":37,"column":54}},{"start":{"line":38,"column":12},"end":{"line":38,"column":52}}],"line":37},"7":{"loc":{"start":{"line":39,"column":48},"end":{"line":40,"column":56}},"type":"binary-expr","locations":[{"start":{"line":39,"column":48},"end":{"line":39,"column":85}},{"start":{"line":40,"column":16},"end":{"line":40,"column":56}}],"line":39},"8":{"loc":{"start":{"line":73,"column":24},"end":{"line":73,"column":42}},"type":"binary-expr","locations":[{"start":{"line":73,"column":24},"end":{"line":73,"column":36}},{"start":{"line":73,"column":40},"end":{"line":73,"column":42}}],"line":73},"9":{"loc":{"start":{"line":77,"column":32},"end":{"line":77,"column":55}},"type":"binary-expr","locations":[{"start":{"line":77,"column":32},"end":{"line":77,"column":50}},{"start":{"line":77,"column":54},"end":{"line":77,"column":55}}],"line":77},"10":{"loc":{"start":{"line":156,"column":29},"end":{"line":156,"column":67}},"type":"binary-expr","locations":[{"start":{"line":156,"column":29},"end":{"line":156,"column":43}},{"start":{"line":156,"column":47},"end":{"line":156,"column":62}},{"start":{"line":156,"column":66},"end":{"line":156,"column":67}}],"line":156},"11":{"loc":{"start":{"line":158,"column":75},"end":{"line":158,"column":118}},"type":"binary-expr","locations":[{"start":{"line":158,"column":75},"end":{"line":158,"column":94}},{"start":{"line":158,"column":98},"end":{"line":158,"column":118}}],"line":158},"12":{"loc":{"start":{"line":160,"column":84},"end":{"line":160,"column":133}},"type":"binary-expr","locations":[{"start":{"line":160,"column":84},"end":{"line":160,"column":106}},{"start":{"line":160,"column":110},"end":{"line":160,"column":133}}],"line":160}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":69,"7":69,"8":69,"9":35,"10":34,"11":0,"12":41,"13":0,"14":41,"15":18,"16":23,"17":23,"18":0,"19":1,"20":102,"21":102,"22":102,"23":102,"24":18,"25":18,"26":18,"27":72,"28":18,"29":35,"30":35,"31":35,"32":35,"33":35,"34":35,"35":125,"36":125,"37":125,"38":125,"39":35,"40":15,"41":52,"42":120,"43":120,"44":120,"45":120,"46":427,"47":427,"48":427,"49":120,"50":1,"51":1,"52":62,"53":62,"54":62,"55":23,"56":23,"57":23,"58":23,"59":23,"60":34,"61":34,"62":34,"63":34,"64":34,"65":34,"66":34,"67":34,"68":34,"69":34,"70":34,"71":0,"72":13,"73":113,"74":113,"75":113,"76":113,"77":113,"78":113,"79":1,"80":1,"81":1,"82":1},"f":{"0":69,"1":41,"2":102,"3":18,"4":72,"5":35,"6":15,"7":52,"8":120,"9":62,"10":23,"11":34,"12":0,"13":13,"14":113},"b":{"0":[35,34,0],"1":[0,41],"2":[18,23],"3":[41,23],"4":[18,0],"5":[23,0],"6":[23,0],"7":[23,0],"8":[18,0],"9":[72,36],"10":[23,0,0],"11":[23,0],"12":[23,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":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { ContractDescriptorType, MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\nimport { PayoutFunction, PayoutFunctionV0JSON } from './PayoutFunction';\nimport { IRoundingIntervalsJSON, RoundingIntervals } from './RoundingIntervals';\n\nexport abstract class ContractDescriptor {\n  public static deserialize(\n    buf: Buffer,\n  ): EnumeratedDescriptor | NumericalDescriptor {\n    const reader = new BufferReader(buf);\n    const typeId = Number(reader.readBigSize());\n\n    switch (typeId) {\n      case ContractDescriptorType.Enumerated:\n        return EnumeratedDescriptor.deserialize(buf);\n      case ContractDescriptorType.NumericOutcome:\n        return NumericalDescriptor.deserialize(buf);\n      default:\n        throw new Error(\n          `Contract descriptor type must be Enumerated (0) or NumericOutcome (1), got ${typeId}`,\n        );\n    }\n  }\n\n  /**\n   * Creates a ContractDescriptor from JSON data (e.g., from test vectors)\n   * @param json JSON object representing a contract descriptor\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): ContractDescriptor {\n    if (!json) {\n      throw new Error('contractDescriptor is required');\n    }\n\n    // Handle enumerated contract descriptor\n    if (\n      json.enumeratedContractDescriptor ||\n      json.enumerated_contract_descriptor\n    ) {\n      return EnumeratedDescriptor.fromJSON(\n        json.enumeratedContractDescriptor ||\n          json.enumerated_contract_descriptor,\n      );\n    }\n    // Handle numeric outcome contract descriptor\n    else if (\n      json.numericOutcomeContractDescriptor ||\n      json.numeric_outcome_contract_descriptor\n    ) {\n      return NumericalDescriptor.fromJSON(\n        json.numericOutcomeContractDescriptor ||\n          json.numeric_outcome_contract_descriptor,\n      );\n    } else {\n      throw new Error(\n        'contractDescriptor must have either enumeratedContractDescriptor or numericOutcomeContractDescriptor',\n      );\n    }\n  }\n\n  public abstract contractDescriptorType: ContractDescriptorType;\n  public abstract type: number; // For backward compatibility\n  public abstract toJSON(): EnumeratedDescriptorJSON | NumericalDescriptorJSON;\n  public abstract serialize(): Buffer;\n}\n\n/**\n * EnumeratedContractDescriptor contains information about a contract's outcomes\n * and their corresponding payouts (for enumerated outcomes).\n * This corresponds to the previous ContractDescriptorV0.\n */\nexport class EnumeratedDescriptor\n  extends ContractDescriptor\n  implements IDlcMessage\n{\n  public static contractDescriptorType = ContractDescriptorType.Enumerated;\n\n  /**\n   * Creates an EnumeratedContractDescriptor from JSON data\n   * @param json JSON object representing an enumerated contract descriptor\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): EnumeratedDescriptor {\n    const instance = new EnumeratedDescriptor();\n\n    const payouts = json.payouts || [];\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    instance.outcomes = payouts.map((payout: any) => ({\n      outcome: payout.outcome,\n      localPayout: BigInt(payout.offerPayout || 0), // Use canonical offerPayout field\n    }));\n\n    return instance;\n  }\n\n  /**\n   * Deserializes an enumerated_contract_descriptor message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): EnumeratedDescriptor {\n    const instance = new EnumeratedDescriptor();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type (0)\n    const numOutcomes = Number(reader.readBigSize());\n\n    for (let i = 0; i < numOutcomes; i++) {\n      const outcomeLen = Number(reader.readBigSize());\n      const outcome = reader.readBytes(outcomeLen).toString();\n      const localPayout = reader.readUInt64BE();\n\n      instance.outcomes.push({\n        outcome,\n        localPayout,\n      });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for enumerated_contract_descriptor message - using MessageType for IDlcMessage compatibility\n   */\n  public type = MessageType.ContractDescriptorV0; // For IDlcMessage compatibility\n\n  /**\n   * The contract descriptor type for new format\n   */\n  public contractDescriptorType = ContractDescriptorType.Enumerated;\n\n  public outcomes: IOutcome[] = [];\n\n  /**\n   * Converts enumerated_contract_descriptor to JSON\n   */\n  public toJSON(): EnumeratedDescriptorJSON {\n    // Return enum variant format for Rust compatibility\n    return {\n      enumeratedContractDescriptor: {\n        payouts: this.outcomes.map((outcome) => ({\n          outcome: outcome.outcome,\n          offerPayout: Number(outcome.localPayout), // Use offerPayout to match Rust\n        })),\n      },\n    };\n  }\n\n  /**\n   * Serializes the enumerated_contract_descriptor message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    writer.writeBigSize(this.contractDescriptorType);\n    writer.writeBigSize(this.outcomes.length);\n\n    for (const outcome of this.outcomes) {\n      writer.writeBigSize(outcome.outcome.length);\n      writer.writeBytes(Buffer.from(outcome.outcome));\n      writer.writeUInt64BE(outcome.localPayout);\n    }\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * NumericOutcomeContractDescriptor contains information about a contract's outcomes\n * and their corresponding payouts (for numeric outcomes).\n * This corresponds to the previous ContractDescriptorV1.\n */\nexport class NumericalDescriptor\n  extends ContractDescriptor\n  implements IDlcMessage\n{\n  public static contractDescriptorType = ContractDescriptorType.NumericOutcome;\n\n  /**\n   * Creates a NumericOutcomeContractDescriptor from JSON data\n   * @param json JSON object representing a numeric outcome contract descriptor\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): NumericalDescriptor {\n    const instance = new NumericalDescriptor();\n\n    instance.numDigits = json.numDigits || json.num_digits || 0;\n\n    // Parse payout function using proper fromJSON method\n    instance.payoutFunction = PayoutFunction.fromJSON(\n      json.payoutFunction || json.payout_function,\n    );\n\n    // Parse rounding intervals using proper fromJSON method\n    instance.roundingIntervals = RoundingIntervals.fromJSON(\n      json.roundingIntervals || json.rounding_intervals,\n    );\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a numeric_outcome_contract_descriptor message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): NumericalDescriptor {\n    const instance = new NumericalDescriptor();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type (1)\n    instance.numDigits = reader.readUInt16BE();\n\n    // Parse payout function - need to calculate its size to avoid consuming all bytes\n    const payoutFunctionStartPos = reader.position;\n    const tempPayoutFunction = PayoutFunction.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n    instance.payoutFunction = tempPayoutFunction;\n\n    // Skip past the payout function bytes\n    const payoutFunctionSize = tempPayoutFunction.serialize().length;\n    reader.position = payoutFunctionStartPos + payoutFunctionSize;\n\n    // Parse remaining bytes as rounding intervals\n    instance.roundingIntervals = RoundingIntervals.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n\n    return instance;\n  }\n\n  /**\n   * The type for numeric_outcome_contract_descriptor message - using MessageType for IDlcMessage compatibility\n   */\n  public type = MessageType.ContractDescriptorV1; // For IDlcMessage compatibility\n\n  /**\n   * The contract descriptor type for new format\n   */\n  public contractDescriptorType = ContractDescriptorType.NumericOutcome;\n\n  public numDigits: number;\n\n  public payoutFunction: PayoutFunction;\n\n  public roundingIntervals: RoundingIntervals;\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 numeric_outcome_contract_descriptor to JSON\n   */\n  public toJSON(): NumericalDescriptorJSON {\n    // Return enum variant format for Rust compatibility\n    return {\n      numericOutcomeContractDescriptor: {\n        numDigits: this.numDigits,\n        payoutFunction: this.payoutFunction.toJSON(),\n        roundingIntervals: this.roundingIntervals.toJSON(),\n      },\n    };\n  }\n\n  /**\n   * Serializes the numeric_outcome_contract_descriptor message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    writer.writeBigSize(this.contractDescriptorType);\n    writer.writeUInt16BE(this.numDigits);\n    writer.writeBytes(this.payoutFunction.serialize());\n    writer.writeBytes(this.roundingIntervals.serialize());\n\n    return writer.toBuffer();\n  }\n}\n\n// Legacy support - keeping old class names as aliases\nexport const ContractDescriptorV0 = EnumeratedDescriptor;\nexport const ContractDescriptorV1 = NumericalDescriptor;\nexport type ContractDescriptorV0 = EnumeratedDescriptor;\nexport type ContractDescriptorV1 = NumericalDescriptor;\n\ninterface IOutcome {\n  outcome: string;\n  localPayout: bigint;\n}\n\n// Rust-dlc enum variant format for EnumeratedDescriptor\nexport interface EnumeratedDescriptorJSON {\n  enumeratedContractDescriptor: {\n    payouts: Array<{\n      outcome: string;\n      offerPayout: number;\n    }>;\n  };\n}\n\n// Rust-dlc enum variant format for NumericalDescriptor\nexport interface NumericalDescriptorJSON {\n  numericOutcomeContractDescriptor: {\n    numDigits: number;\n    payoutFunction: PayoutFunctionV0JSON;\n    roundingIntervals: IRoundingIntervalsJSON;\n  };\n}\n\n// Legacy interfaces for backward compatibility\nexport type ContractDescriptorV0JSON = EnumeratedDescriptorJSON;\nexport type ContractDescriptorV1JSON = NumericalDescriptorJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1eda1cb30e5d21e01bc5faaf214749dbb657e033","contentHash":"eb0472c1765902712da39815d597d48ba56ec586845c87e826e532e549ab4b37"},"/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":15},"end":{"line":6,"column":33}},"5":{"start":{"line":7,"column":27},"end":{"line":7,"column":56}},"6":{"start":{"line":19,"column":25},"end":{"line":19,"column":45}},"7":{"start":{"line":21,"column":23},"end":{"line":21,"column":85}},"8":{"start":{"line":22,"column":8},"end":{"line":58,"column":11}},"9":{"start":{"line":25,"column":26},"end":{"line":32,"column":13}},"10":{"start":{"line":34,"column":12},"end":{"line":56,"column":13}},"11":{"start":{"line":35,"column":34},"end":{"line":35,"column":56}},"12":{"start":{"line":37,"column":16},"end":{"line":37,"column":56}},"13":{"start":{"line":39,"column":16},"end":{"line":55,"column":17}},"14":{"start":{"line":40,"column":38},"end":{"line":40,"column":55}},"15":{"start":{"line":41,"column":20},"end":{"line":45,"column":22}},"16":{"start":{"line":49,"column":41},"end":{"line":49,"column":86}},"17":{"start":{"line":50,"column":20},"end":{"line":54,"column":22}},"18":{"start":{"line":57,"column":12},"end":{"line":57,"column":25}},"19":{"start":{"line":60,"column":29},"end":{"line":60,"column":68}},"20":{"start":{"line":61,"column":8},"end":{"line":75,"column":9}},"21":{"start":{"line":62,"column":12},"end":{"line":66,"column":14}},"22":{"start":{"line":70,"column":12},"end":{"line":74,"column":14}},"23":{"start":{"line":76,"column":8},"end":{"line":76,"column":24}},"24":{"start":{"line":83,"column":25},"end":{"line":83,"column":45}},"25":{"start":{"line":84,"column":23},"end":{"line":84,"column":52}},"26":{"start":{"line":86,"column":26},"end":{"line":86,"column":54}},"27":{"start":{"line":87,"column":8},"end":{"line":106,"column":9}},"28":{"start":{"line":87,"column":21},"end":{"line":87,"column":22}},"29":{"start":{"line":89,"column":33},"end":{"line":89,"column":54}},"30":{"start":{"line":90,"column":34},"end":{"line":90,"column":55}},"31":{"start":{"line":91,"column":35},"end":{"line":91,"column":56}},"32":{"start":{"line":93,"column":45},"end":{"line":93,"column":60}},"33":{"start":{"line":94,"column":37},"end":{"line":94,"column":138}},"34":{"start":{"line":96,"column":41},"end":{"line":96,"column":76}},"35":{"start":{"line":97,"column":12},"end":{"line":97,"column":78}},"36":{"start":{"line":98,"column":12},"end":{"line":105,"column":15}},"37":{"start":{"line":108,"column":8},"end":{"line":112,"column":10}},"38":{"start":{"line":113,"column":8},"end":{"line":113,"column":24}},"39":{"start":{"line":122,"column":8},"end":{"line":122,"column":40}},"40":{"start":{"line":123,"column":8},"end":{"line":123,"column":39}},"41":{"start":{"line":125,"column":8},"end":{"line":125,"column":39}},"42":{"start":{"line":131,"column":8},"end":{"line":145,"column":10}},"43":{"start":{"line":132,"column":76},"end":{"line":139,"column":13}},"44":{"start":{"line":151,"column":23},"end":{"line":151,"column":49}},"45":{"start":{"line":153,"column":8},"end":{"line":153,"column":62}},"46":{"start":{"line":154,"column":8},"end":{"line":161,"column":9}},"47":{"start":{"line":156,"column":12},"end":{"line":156,"column":62}},"48":{"start":{"line":157,"column":12},"end":{"line":157,"column":63}},"49":{"start":{"line":158,"column":12},"end":{"line":158,"column":64}},"50":{"start":{"line":160,"column":12},"end":{"line":160,"column":66}},"51":{"start":{"line":163,"column":8},"end":{"line":163,"column":61}},"52":{"start":{"line":164,"column":8},"end":{"line":164,"column":62}},"53":{"start":{"line":165,"column":8},"end":{"line":165,"column":63}},"54":{"start":{"line":166,"column":8},"end":{"line":166,"column":33}},"55":{"start":{"line":169,"column":0},"end":{"line":169,"column":40}},"56":{"start":{"line":170,"column":0},"end":{"line":170,"column":63}},"57":{"start":{"line":172,"column":0},"end":{"line":172,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":26},"end":{"line":77,"column":5}},"line":18},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":8},"end":{"line":24,"column":9}},"loc":{"start":{"line":24,"column":30},"end":{"line":58,"column":9}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":82,"column":4},"end":{"line":82,"column":5}},"loc":{"start":{"line":82,"column":28},"end":{"line":114,"column":5}},"line":82},"3":{"name":"(anonymous_3)","decl":{"start":{"line":118,"column":4},"end":{"line":118,"column":5}},"loc":{"start":{"line":118,"column":18},"end":{"line":126,"column":5}},"line":118},"4":{"name":"(anonymous_4)","decl":{"start":{"line":130,"column":4},"end":{"line":130,"column":5}},"loc":{"start":{"line":130,"column":13},"end":{"line":146,"column":5}},"line":130},"5":{"name":"(anonymous_5)","decl":{"start":{"line":132,"column":64},"end":{"line":132,"column":65}},"loc":{"start":{"line":132,"column":76},"end":{"line":139,"column":13}},"line":132},"6":{"name":"(anonymous_6)","decl":{"start":{"line":150,"column":4},"end":{"line":150,"column":5}},"loc":{"start":{"line":150,"column":16},"end":{"line":167,"column":5}},"line":150}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":23},"end":{"line":21,"column":85}},"type":"binary-expr","locations":[{"start":{"line":21,"column":23},"end":{"line":21,"column":48}},{"start":{"line":21,"column":52},"end":{"line":21,"column":79}},{"start":{"line":21,"column":83},"end":{"line":21,"column":85}}],"line":21},"1":{"loc":{"start":{"line":29,"column":36},"end":{"line":29,"column":75}},"type":"binary-expr","locations":[{"start":{"line":29,"column":36},"end":{"line":29,"column":70}},{"start":{"line":29,"column":74},"end":{"line":29,"column":75}}],"line":29},"2":{"loc":{"start":{"line":31,"column":79},"end":{"line":31,"column":137}},"type":"binary-expr","locations":[{"start":{"line":31,"column":79},"end":{"line":31,"column":105}},{"start":{"line":31,"column":109},"end":{"line":31,"column":137}}],"line":31},"3":{"loc":{"start":{"line":34,"column":12},"end":{"line":56,"column":13}},"type":"if","locations":[{"start":{"line":34,"column":12},"end":{"line":56,"column":13}},{"start":{},"end":{}}],"line":34},"4":{"loc":{"start":{"line":39,"column":16},"end":{"line":55,"column":17}},"type":"if","locations":[{"start":{"line":39,"column":16},"end":{"line":55,"column":17}},{"start":{"line":47,"column":21},"end":{"line":55,"column":17}}],"line":39},"5":{"loc":{"start":{"line":44,"column":40},"end":{"line":44,"column":79}},"type":"binary-expr","locations":[{"start":{"line":44,"column":40},"end":{"line":44,"column":74}},{"start":{"line":44,"column":78},"end":{"line":44,"column":79}}],"line":44},"6":{"loc":{"start":{"line":49,"column":41},"end":{"line":49,"column":86}},"type":"binary-expr","locations":[{"start":{"line":49,"column":41},"end":{"line":49,"column":58}},{"start":{"line":49,"column":62},"end":{"line":49,"column":80}},{"start":{"line":49,"column":84},"end":{"line":49,"column":86}}],"line":49},"7":{"loc":{"start":{"line":53,"column":40},"end":{"line":53,"column":72}},"type":"binary-expr","locations":[{"start":{"line":53,"column":40},"end":{"line":53,"column":67}},{"start":{"line":53,"column":71},"end":{"line":53,"column":72}}],"line":53},"8":{"loc":{"start":{"line":60,"column":29},"end":{"line":60,"column":68}},"type":"binary-expr","locations":[{"start":{"line":60,"column":29},"end":{"line":60,"column":46}},{"start":{"line":60,"column":50},"end":{"line":60,"column":68}}],"line":60},"9":{"loc":{"start":{"line":61,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":75,"column":9}},{"start":{"line":68,"column":13},"end":{"line":75,"column":9}}],"line":61},"10":{"loc":{"start":{"line":65,"column":32},"end":{"line":65,"column":64}},"type":"binary-expr","locations":[{"start":{"line":65,"column":32},"end":{"line":65,"column":59}},{"start":{"line":65,"column":63},"end":{"line":65,"column":64}}],"line":65}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":23,"7":23,"8":23,"9":44,"10":44,"11":2,"12":2,"13":2,"14":0,"15":0,"16":2,"17":2,"18":44,"19":23,"20":23,"21":23,"22":0,"23":23,"24":36,"25":36,"26":36,"27":36,"28":36,"29":66,"30":66,"31":66,"32":66,"33":66,"34":66,"35":66,"36":66,"37":36,"38":36,"39":67,"40":67,"41":67,"42":13,"43":24,"44":150,"45":150,"46":150,"47":281,"48":281,"49":281,"50":281,"51":150,"52":150,"53":150,"54":150,"55":1,"56":1,"57":1},"f":{"0":23,"1":44,"2":36,"3":67,"4":13,"5":24,"6":150},"b":{"0":[23,0,0],"1":[44,44],"2":[44,0],"3":[2,42],"4":[0,2],"5":[0,0],"6":[2,0,0],"7":[2,2],"8":[23,0],"9":[23,0],"10":[23,23]},"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 { bigIntToNumber, toBigInt } from '../util';\nimport { IDlcMessage } from './DlcMessage';\nimport {\n  HyperbolaPayoutCurvePiece,\n  HyperbolaPayoutCurvePieceJSON,\n  PayoutCurvePiece,\n  PolynomialPayoutCurvePieceJSON,\n} from './PayoutCurvePiece';\n\n/**\n * PayoutFunction contains the payout curve definition for numeric outcome contracts.\n * Updated to match rust-dlc format exactly.\n */\nexport class PayoutFunction implements IDlcMessage {\n  public static type = MessageType.PayoutFunction;\n\n  /**\n   * Creates a PayoutFunction from JSON data\n   * @param json JSON object representing a payout function\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): PayoutFunction {\n    const instance = new PayoutFunction();\n\n    // Parse payout function pieces\n    const pieces =\n      json.payoutFunctionPieces || json.payout_function_pieces || [];\n    instance.payoutFunctionPieces = pieces.map(\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      (pieceJson: any, index: number) => {\n        const piece = {\n          endPoint: {\n            eventOutcome: toBigInt(pieceJson.endPoint?.eventOutcome),\n            outcomePayout: toBigInt(pieceJson.endPoint?.outcomePayout),\n            extraPrecision: pieceJson.endPoint?.extraPrecision || 0,\n          },\n          payoutCurvePiece: PayoutCurvePiece.fromJSON(\n            pieceJson.payoutCurvePiece || pieceJson.payout_curve_piece,\n          ),\n        };\n\n        // For HyperbolaPayoutCurvePiece, set the left and right end points\n        if (piece.payoutCurvePiece instanceof HyperbolaPayoutCurvePiece) {\n          const hyperbola = piece.payoutCurvePiece as HyperbolaPayoutCurvePiece;\n\n          // Left end point is this piece's endPoint\n          hyperbola.leftEndPoint = piece.endPoint;\n\n          // Right end point is the next piece's endPoint, or lastEndpoint if this is the last piece\n          if (index < pieces.length - 1) {\n            const nextPiece = pieces[index + 1];\n            hyperbola.rightEndPoint = {\n              eventOutcome: toBigInt(nextPiece.endPoint?.eventOutcome),\n              outcomePayout: toBigInt(nextPiece.endPoint?.outcomePayout),\n              extraPrecision: nextPiece.endPoint?.extraPrecision || 0,\n            };\n          } else {\n            // Use lastEndpoint for the final piece\n            const lastEndpoint = json.lastEndpoint || json.last_endpoint || {};\n            hyperbola.rightEndPoint = {\n              eventOutcome: toBigInt(lastEndpoint.eventOutcome),\n              outcomePayout: toBigInt(lastEndpoint.outcomePayout),\n              extraPrecision: lastEndpoint.extraPrecision || 0,\n            };\n          }\n        }\n\n        return piece;\n      },\n    );\n\n    // Parse last endpoint\n    const lastEndpoint = json.lastEndpoint || json.last_endpoint;\n    if (lastEndpoint) {\n      instance.lastEndpoint = {\n        eventOutcome: toBigInt(lastEndpoint.eventOutcome),\n        outcomePayout: toBigInt(lastEndpoint.outcomePayout),\n        extraPrecision: lastEndpoint.extraPrecision || 0,\n      };\n    } else {\n      // Default last endpoint if not provided\n      instance.lastEndpoint = {\n        eventOutcome: BigInt(0),\n        outcomePayout: BigInt(0),\n        extraPrecision: 0,\n      };\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a payout_function message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): PayoutFunction {\n    const instance = new PayoutFunction();\n    const reader = new BufferReader(buf);\n\n    // Read payout function pieces (as vec)\n    const numPieces = Number(reader.readBigSize());\n\n    for (let i = 0; i < numPieces; i++) {\n      // Read end_point first\n      const eventOutcome = reader.readUInt64BE();\n      const outcomePayout = reader.readUInt64BE();\n      const extraPrecision = reader.readUInt16BE();\n\n      // Read payout curve piece\n      const payoutCurvePieceStartPos = reader.position;\n      const payoutCurvePiece = PayoutCurvePiece.deserialize(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n\n      // Skip past the payout curve piece bytes\n      const payoutCurvePieceSize = payoutCurvePiece.serialize().length;\n      reader.position = payoutCurvePieceStartPos + payoutCurvePieceSize;\n\n      instance.payoutFunctionPieces.push({\n        endPoint: {\n          eventOutcome,\n          outcomePayout,\n          extraPrecision,\n        },\n        payoutCurvePiece,\n      });\n    }\n\n    // Read last_endpoint\n    instance.lastEndpoint = {\n      eventOutcome: reader.readUInt64BE(),\n      outcomePayout: reader.readUInt64BE(),\n      extraPrecision: reader.readUInt16BE(),\n    };\n\n    return instance;\n  }\n\n  /**\n   * The type for payout_function message. payout_function = 42790\n   */\n  public type = PayoutFunction.type;\n\n  public payoutFunctionPieces: IPayoutFunctionPiece[] = [];\n  public lastEndpoint: IPayoutPoint;\n\n  /**\n   * Constructor that ensures proper initialization\n   */\n  constructor() {\n    // Explicitly initialize arrays to handle file-linking issues\n    this.payoutFunctionPieces = [];\n  }\n\n  /**\n   * Converts payout_function to JSON\n   */\n  public toJSON(): PayoutFunctionJSON {\n    return {\n      payoutFunctionPieces: this.payoutFunctionPieces.map((piece) => ({\n        endPoint: {\n          eventOutcome: bigIntToNumber(piece.endPoint.eventOutcome),\n          outcomePayout: bigIntToNumber(piece.endPoint.outcomePayout),\n          extraPrecision: piece.endPoint.extraPrecision,\n        },\n        payoutCurvePiece: piece.payoutCurvePiece.toJSON(),\n      })),\n      lastEndpoint: {\n        eventOutcome: bigIntToNumber(this.lastEndpoint.eventOutcome),\n        outcomePayout: bigIntToNumber(this.lastEndpoint.outcomePayout),\n        extraPrecision: this.lastEndpoint.extraPrecision,\n      },\n    };\n  }\n\n  /**\n   * Serializes the payout_function message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    // Write payout_function_pieces as vec (length + elements)\n    writer.writeBigSize(this.payoutFunctionPieces.length);\n\n    for (const piece of this.payoutFunctionPieces) {\n      // Write end_point first (matches rust order)\n      writer.writeUInt64BE(piece.endPoint.eventOutcome);\n      writer.writeUInt64BE(piece.endPoint.outcomePayout);\n      writer.writeUInt16BE(piece.endPoint.extraPrecision);\n\n      // Write payout_curve_piece second\n      writer.writeBytes(piece.payoutCurvePiece.serialize());\n    }\n\n    // Write last_endpoint\n    writer.writeUInt64BE(this.lastEndpoint.eventOutcome);\n    writer.writeUInt64BE(this.lastEndpoint.outcomePayout);\n    writer.writeUInt16BE(this.lastEndpoint.extraPrecision);\n\n    return writer.toBuffer();\n  }\n}\n\n// Legacy support\nexport const PayoutFunctionV0 = PayoutFunction;\nexport type PayoutFunctionV0 = PayoutFunction;\n\ninterface IPayoutPoint {\n  eventOutcome: bigint;\n  outcomePayout: bigint;\n  extraPrecision: number;\n}\n\ninterface IPayoutPointJSON {\n  eventOutcome: number;\n  outcomePayout: number;\n  extraPrecision: number;\n}\n\ninterface IPayoutFunctionPiece {\n  endPoint: IPayoutPoint;\n  payoutCurvePiece: PayoutCurvePiece;\n}\n\ninterface IPayoutFunctionPieceJSON {\n  endPoint: IPayoutPointJSON;\n  payoutCurvePiece:\n    | PolynomialPayoutCurvePieceJSON\n    | HyperbolaPayoutCurvePieceJSON;\n}\n\nexport interface PayoutFunctionJSON {\n  type?: number; // Optional for rust-dlc compatibility\n  payoutFunctionPieces: IPayoutFunctionPieceJSON[];\n  lastEndpoint: IPayoutPointJSON;\n}\n\n// Legacy interface\nexport type PayoutFunctionV0JSON = PayoutFunctionJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fdec1c8fc574ea342301c8ace2c4012714b554ef","contentHash":"7933970e4c148892b58c53e5a0f615ae941e91b2d88edfcb4690d2677a7eb211"},"/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":6,"column":14},"end":{"line":6,"column":41}},"5":{"start":{"line":7,"column":15},"end":{"line":7,"column":33}},"6":{"start":{"line":10,"column":23},"end":{"line":10,"column":52}},"7":{"start":{"line":11,"column":23},"end":{"line":11,"column":51}},"8":{"start":{"line":12,"column":8},"end":{"line":19,"column":9}},"9":{"start":{"line":14,"column":16},"end":{"line":14,"column":67}},"10":{"start":{"line":16,"column":16},"end":{"line":16,"column":66}},"11":{"start":{"line":18,"column":16},"end":{"line":18,"column":114}},"12":{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},"13":{"start":{"line":28,"column":12},"end":{"line":28,"column":60}},"14":{"start":{"line":31,"column":8},"end":{"line":46,"column":9}},"15":{"start":{"line":32,"column":12},"end":{"line":32,"column":88}},"16":{"start":{"line":34,"column":13},"end":{"line":46,"column":9}},"17":{"start":{"line":35,"column":12},"end":{"line":35,"column":86}},"18":{"start":{"line":38,"column":13},"end":{"line":46,"column":9}},"19":{"start":{"line":39,"column":12},"end":{"line":39,"column":61}},"20":{"start":{"line":41,"column":13},"end":{"line":46,"column":9}},"21":{"start":{"line":42,"column":12},"end":{"line":42,"column":60}},"22":{"start":{"line":45,"column":12},"end":{"line":45,"column":125}},"23":{"start":{"line":49,"column":0},"end":{"line":49,"column":44}},"24":{"start":{"line":56,"column":8},"end":{"line":56,"column":28}},"25":{"start":{"line":60,"column":8},"end":{"line":60,"column":73}},"26":{"start":{"line":64,"column":8},"end":{"line":64,"column":82}},"27":{"start":{"line":65,"column":8},"end":{"line":65,"column":25}},"28":{"start":{"line":73,"column":25},"end":{"line":73,"column":57}},"29":{"start":{"line":74,"column":23},"end":{"line":74,"column":61}},"30":{"start":{"line":76,"column":8},"end":{"line":80,"column":12}},"31":{"start":{"line":76,"column":49},"end":{"line":80,"column":9}},"32":{"start":{"line":81,"column":8},"end":{"line":81,"column":24}},"33":{"start":{"line":88,"column":25},"end":{"line":88,"column":57}},"34":{"start":{"line":89,"column":23},"end":{"line":89,"column":52}},"35":{"start":{"line":90,"column":8},"end":{"line":90,"column":29}},"36":{"start":{"line":91,"column":23},"end":{"line":91,"column":51}},"37":{"start":{"line":92,"column":8},"end":{"line":101,"column":9}},"38":{"start":{"line":92,"column":21},"end":{"line":92,"column":22}},"39":{"start":{"line":93,"column":33},"end":{"line":93,"column":54}},"40":{"start":{"line":94,"column":34},"end":{"line":94,"column":55}},"41":{"start":{"line":95,"column":35},"end":{"line":95,"column":56}},"42":{"start":{"line":96,"column":12},"end":{"line":100,"column":15}},"43":{"start":{"line":102,"column":8},"end":{"line":102,"column":24}},"44":{"start":{"line":108,"column":8},"end":{"line":118,"column":10}},"45":{"start":{"line":111,"column":20},"end":{"line":115,"column":22}},"46":{"start":{"line":124,"column":23},"end":{"line":124,"column":49}},"47":{"start":{"line":125,"column":8},"end":{"line":125,"column":55}},"48":{"start":{"line":126,"column":8},"end":{"line":126,"column":48}},"49":{"start":{"line":127,"column":8},"end":{"line":131,"column":9}},"50":{"start":{"line":128,"column":12},"end":{"line":128,"column":53}},"51":{"start":{"line":129,"column":12},"end":{"line":129,"column":54}},"52":{"start":{"line":130,"column":12},"end":{"line":130,"column":55}},"53":{"start":{"line":132,"column":8},"end":{"line":132,"column":33}},"54":{"start":{"line":135,"column":0},"end":{"line":135,"column":64}},"55":{"start":{"line":136,"column":0},"end":{"line":136,"column":96}},"56":{"start":{"line":150,"column":8},"end":{"line":152,"column":9}},"57":{"start":{"line":151,"column":12},"end":{"line":151,"column":24}},"58":{"start":{"line":153,"column":8},"end":{"line":183,"column":9}},"59":{"start":{"line":154,"column":12},"end":{"line":173,"column":13}},"60":{"start":{"line":156,"column":16},"end":{"line":165,"column":17}},"61":{"start":{"line":157,"column":20},"end":{"line":157,"column":55}},"62":{"start":{"line":161,"column":37},"end":{"line":161,"column":54}},"63":{"start":{"line":162,"column":20},"end":{"line":164,"column":21}},"64":{"start":{"line":163,"column":24},"end":{"line":163,"column":62}},"65":{"start":{"line":167,"column":17},"end":{"line":173,"column":13}},"66":{"start":{"line":169,"column":16},"end":{"line":171,"column":17}},"67":{"start":{"line":170,"column":20},"end":{"line":170,"column":32}},"68":{"start":{"line":172,"column":16},"end":{"line":172,"column":51}},"69":{"start":{"line":175,"column":29},"end":{"line":175,"column":42}},"70":{"start":{"line":176,"column":12},"end":{"line":178,"column":13}},"71":{"start":{"line":177,"column":16},"end":{"line":177,"column":54}},"72":{"start":{"line":179,"column":12},"end":{"line":179,"column":24}},"73":{"start":{"line":182,"column":12},"end":{"line":182,"column":24}},"74":{"start":{"line":191,"column":8},"end":{"line":192,"column":24}},"75":{"start":{"line":192,"column":12},"end":{"line":192,"column":24}},"76":{"start":{"line":194,"column":19},"end":{"line":194,"column":86}},"77":{"start":{"line":196,"column":8},"end":{"line":200,"column":9}},"78":{"start":{"line":199,"column":12},"end":{"line":199,"column":24}},"79":{"start":{"line":201,"column":8},"end":{"line":202,"column":24}},"80":{"start":{"line":202,"column":12},"end":{"line":202,"column":24}},"81":{"start":{"line":203,"column":8},"end":{"line":224,"column":9}},"82":{"start":{"line":204,"column":37},"end":{"line":204,"column":94}},"83":{"start":{"line":206,"column":37},"end":{"line":208,"column":41}},"84":{"start":{"line":209,"column":36},"end":{"line":211,"column":40}},"85":{"start":{"line":212,"column":22},"end":{"line":212,"column":48}},"86":{"start":{"line":213,"column":22},"end":{"line":213,"column":48}},"87":{"start":{"line":214,"column":22},"end":{"line":214,"column":48}},"88":{"start":{"line":215,"column":22},"end":{"line":215,"column":48}},"89":{"start":{"line":217,"column":12},"end":{"line":219,"column":13}},"90":{"start":{"line":218,"column":16},"end":{"line":218,"column":74}},"91":{"start":{"line":220,"column":12},"end":{"line":220,"column":114}},"92":{"start":{"line":223,"column":12},"end":{"line":223,"column":24}},"93":{"start":{"line":231,"column":25},"end":{"line":231,"column":56}},"94":{"start":{"line":232,"column":23},"end":{"line":232,"column":52}},"95":{"start":{"line":233,"column":8},"end":{"line":233,"column":29}},"96":{"start":{"line":234,"column":8},"end":{"line":234,"column":61}},"97":{"start":{"line":236,"column":8},"end":{"line":236,"column":79}},"98":{"start":{"line":237,"column":8},"end":{"line":237,"column":78}},"99":{"start":{"line":238,"column":8},"end":{"line":238,"column":64}},"100":{"start":{"line":239,"column":8},"end":{"line":239,"column":64}},"101":{"start":{"line":240,"column":8},"end":{"line":240,"column":64}},"102":{"start":{"line":241,"column":8},"end":{"line":241,"column":64}},"103":{"start":{"line":244,"column":8},"end":{"line":248,"column":10}},"104":{"start":{"line":249,"column":8},"end":{"line":253,"column":10}},"105":{"start":{"line":254,"column":8},"end":{"line":254,"column":24}},"106":{"start":{"line":257,"column":8},"end":{"line":257,"column":16}},"107":{"start":{"line":261,"column":8},"end":{"line":261,"column":72}},"108":{"start":{"line":262,"column":8},"end":{"line":262,"column":83}},"109":{"start":{"line":263,"column":8},"end":{"line":263,"column":49}},"110":{"start":{"line":265,"column":8},"end":{"line":269,"column":38}},"111":{"start":{"line":270,"column":8},"end":{"line":274,"column":38}},"112":{"start":{"line":275,"column":8},"end":{"line":279,"column":38}},"113":{"start":{"line":280,"column":8},"end":{"line":284,"column":38}},"114":{"start":{"line":285,"column":8},"end":{"line":289,"column":38}},"115":{"start":{"line":290,"column":8},"end":{"line":294,"column":38}},"116":{"start":{"line":301,"column":8},"end":{"line":311,"column":10}},"117":{"start":{"line":317,"column":23},"end":{"line":317,"column":49}},"118":{"start":{"line":318,"column":8},"end":{"line":318,"column":55}},"119":{"start":{"line":319,"column":8},"end":{"line":319,"column":57}},"120":{"start":{"line":321,"column":8},"end":{"line":321,"column":61}},"121":{"start":{"line":322,"column":8},"end":{"line":322,"column":60}},"122":{"start":{"line":323,"column":8},"end":{"line":323,"column":46}},"123":{"start":{"line":324,"column":8},"end":{"line":324,"column":46}},"124":{"start":{"line":325,"column":8},"end":{"line":325,"column":46}},"125":{"start":{"line":326,"column":8},"end":{"line":326,"column":46}},"126":{"start":{"line":327,"column":8},"end":{"line":327,"column":33}},"127":{"start":{"line":330,"column":0},"end":{"line":330,"column":62}},"128":{"start":{"line":331,"column":0},"end":{"line":331,"column":94}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":28},"end":{"line":20,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":26},"end":{"line":47,"column":5}},"line":26},"2":{"name":"(anonymous_2)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":18},"end":{"line":66,"column":5}},"line":55},"3":{"name":"(anonymous_3)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":26},"end":{"line":82,"column":5}},"line":72},"4":{"name":"(anonymous_4)","decl":{"start":{"line":76,"column":37},"end":{"line":76,"column":38}},"loc":{"start":{"line":76,"column":49},"end":{"line":80,"column":9}},"line":76},"5":{"name":"(anonymous_5)","decl":{"start":{"line":87,"column":4},"end":{"line":87,"column":5}},"loc":{"start":{"line":87,"column":28},"end":{"line":103,"column":5}},"line":87},"6":{"name":"(anonymous_6)","decl":{"start":{"line":107,"column":4},"end":{"line":107,"column":5}},"loc":{"start":{"line":107,"column":13},"end":{"line":119,"column":5}},"line":107},"7":{"name":"(anonymous_7)","decl":{"start":{"line":110,"column":46},"end":{"line":110,"column":47}},"loc":{"start":{"line":110,"column":57},"end":{"line":116,"column":17}},"line":110},"8":{"name":"(anonymous_8)","decl":{"start":{"line":123,"column":4},"end":{"line":123,"column":5}},"loc":{"start":{"line":123,"column":16},"end":{"line":133,"column":5}},"line":123},"9":{"name":"(anonymous_9)","decl":{"start":{"line":148,"column":4},"end":{"line":148,"column":5}},"loc":{"start":{"line":148,"column":32},"end":{"line":184,"column":5}},"line":148},"10":{"name":"(anonymous_10)","decl":{"start":{"line":190,"column":4},"end":{"line":190,"column":5}},"loc":{"start":{"line":190,"column":26},"end":{"line":225,"column":5}},"line":190},"11":{"name":"(anonymous_11)","decl":{"start":{"line":230,"column":4},"end":{"line":230,"column":5}},"loc":{"start":{"line":230,"column":28},"end":{"line":255,"column":5}},"line":230},"12":{"name":"(anonymous_12)","decl":{"start":{"line":256,"column":4},"end":{"line":256,"column":5}},"loc":{"start":{"line":256,"column":89},"end":{"line":295,"column":5}},"line":256},"13":{"name":"(anonymous_13)","decl":{"start":{"line":300,"column":4},"end":{"line":300,"column":5}},"loc":{"start":{"line":300,"column":13},"end":{"line":312,"column":5}},"line":300},"14":{"name":"(anonymous_14)","decl":{"start":{"line":316,"column":4},"end":{"line":316,"column":5}},"loc":{"start":{"line":316,"column":16},"end":{"line":328,"column":5}},"line":316}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":19,"column":9}},"type":"switch","locations":[{"start":{"line":13,"column":12},"end":{"line":14,"column":67}},{"start":{"line":15,"column":12},"end":{"line":16,"column":66}},{"start":{"line":17,"column":12},"end":{"line":18,"column":114}}],"line":12},"1":{"loc":{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},"type":"if","locations":[{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},{"start":{},"end":{}}],"line":27},"2":{"loc":{"start":{"line":31,"column":8},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":31,"column":8},"end":{"line":46,"column":9}},{"start":{"line":34,"column":13},"end":{"line":46,"column":9}}],"line":31},"3":{"loc":{"start":{"line":34,"column":13},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":34,"column":13},"end":{"line":46,"column":9}},{"start":{"line":38,"column":13},"end":{"line":46,"column":9}}],"line":34},"4":{"loc":{"start":{"line":38,"column":13},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":38,"column":13},"end":{"line":46,"column":9}},{"start":{"line":41,"column":13},"end":{"line":46,"column":9}}],"line":38},"5":{"loc":{"start":{"line":38,"column":17},"end":{"line":38,"column":77}},"type":"binary-expr","locations":[{"start":{"line":38,"column":17},"end":{"line":38,"column":42}},{"start":{"line":38,"column":46},"end":{"line":38,"column":77}}],"line":38},"6":{"loc":{"start":{"line":41,"column":13},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":41,"column":13},"end":{"line":46,"column":9}},{"start":{"line":44,"column":13},"end":{"line":46,"column":9}}],"line":41},"7":{"loc":{"start":{"line":74,"column":23},"end":{"line":74,"column":61}},"type":"binary-expr","locations":[{"start":{"line":74,"column":23},"end":{"line":74,"column":40}},{"start":{"line":74,"column":44},"end":{"line":74,"column":55}},{"start":{"line":74,"column":59},"end":{"line":74,"column":61}}],"line":74},"8":{"loc":{"start":{"line":77,"column":47},"end":{"line":77,"column":88}},"type":"binary-expr","locations":[{"start":{"line":77,"column":47},"end":{"line":77,"column":65}},{"start":{"line":77,"column":69},"end":{"line":77,"column":88}}],"line":77},"9":{"loc":{"start":{"line":78,"column":48},"end":{"line":78,"column":91}},"type":"binary-expr","locations":[{"start":{"line":78,"column":48},"end":{"line":78,"column":67}},{"start":{"line":78,"column":71},"end":{"line":78,"column":91}}],"line":78},"10":{"loc":{"start":{"line":79,"column":28},"end":{"line":79,"column":78}},"type":"binary-expr","locations":[{"start":{"line":79,"column":28},"end":{"line":79,"column":48}},{"start":{"line":79,"column":52},"end":{"line":79,"column":73}},{"start":{"line":79,"column":77},"end":{"line":79,"column":78}}],"line":79},"11":{"loc":{"start":{"line":150,"column":8},"end":{"line":152,"column":9}},"type":"if","locations":[{"start":{"line":150,"column":8},"end":{"line":152,"column":9}},{"start":{},"end":{}}],"line":150},"12":{"loc":{"start":{"line":150,"column":12},"end":{"line":150,"column":49}},"type":"binary-expr","locations":[{"start":{"line":150,"column":12},"end":{"line":150,"column":26}},{"start":{"line":150,"column":30},"end":{"line":150,"column":49}}],"line":150},"13":{"loc":{"start":{"line":154,"column":12},"end":{"line":173,"column":13}},"type":"if","locations":[{"start":{"line":154,"column":12},"end":{"line":173,"column":13}},{"start":{"line":167,"column":17},"end":{"line":173,"column":13}}],"line":154},"14":{"loc":{"start":{"line":162,"column":20},"end":{"line":164,"column":21}},"type":"if","locations":[{"start":{"line":162,"column":20},"end":{"line":164,"column":21}},{"start":{},"end":{}}],"line":162},"15":{"loc":{"start":{"line":162,"column":24},"end":{"line":162,"column":62}},"type":"binary-expr","locations":[{"start":{"line":162,"column":24},"end":{"line":162,"column":40}},{"start":{"line":162,"column":44},"end":{"line":162,"column":62}}],"line":162},"16":{"loc":{"start":{"line":167,"column":17},"end":{"line":173,"column":13}},"type":"if","locations":[{"start":{"line":167,"column":17},"end":{"line":173,"column":13}},{"start":{},"end":{}}],"line":167},"17":{"loc":{"start":{"line":169,"column":16},"end":{"line":171,"column":17}},"type":"if","locations":[{"start":{"line":169,"column":16},"end":{"line":171,"column":17}},{"start":{},"end":{}}],"line":169},"18":{"loc":{"start":{"line":176,"column":12},"end":{"line":178,"column":13}},"type":"if","locations":[{"start":{"line":176,"column":12},"end":{"line":178,"column":13}},{"start":{},"end":{}}],"line":176},"19":{"loc":{"start":{"line":176,"column":16},"end":{"line":176,"column":54}},"type":"binary-expr","locations":[{"start":{"line":176,"column":16},"end":{"line":176,"column":32}},{"start":{"line":176,"column":36},"end":{"line":176,"column":54}}],"line":176},"20":{"loc":{"start":{"line":191,"column":8},"end":{"line":192,"column":24}},"type":"if","locations":[{"start":{"line":191,"column":8},"end":{"line":192,"column":24}},{"start":{},"end":{}}],"line":191},"21":{"loc":{"start":{"line":191,"column":12},"end":{"line":191,"column":45}},"type":"binary-expr","locations":[{"start":{"line":191,"column":12},"end":{"line":191,"column":17}},{"start":{"line":191,"column":21},"end":{"line":191,"column":45}}],"line":191},"22":{"loc":{"start":{"line":194,"column":19},"end":{"line":194,"column":86}},"type":"binary-expr","locations":[{"start":{"line":194,"column":19},"end":{"line":194,"column":49}},{"start":{"line":194,"column":53},"end":{"line":194,"column":86}}],"line":194},"23":{"loc":{"start":{"line":196,"column":8},"end":{"line":200,"column":9}},"type":"if","locations":[{"start":{"line":196,"column":8},"end":{"line":200,"column":9}},{"start":{},"end":{}}],"line":196},"24":{"loc":{"start":{"line":196,"column":12},"end":{"line":198,"column":54}},"type":"binary-expr","locations":[{"start":{"line":196,"column":12},"end":{"line":196,"column":17}},{"start":{"line":197,"column":13},"end":{"line":197,"column":48}},{"start":{"line":198,"column":16},"end":{"line":198,"column":53}}],"line":196},"25":{"loc":{"start":{"line":201,"column":8},"end":{"line":202,"column":24}},"type":"if","locations":[{"start":{"line":201,"column":8},"end":{"line":202,"column":24}},{"start":{},"end":{}}],"line":201},"26":{"loc":{"start":{"line":204,"column":37},"end":{"line":204,"column":94}},"type":"binary-expr","locations":[{"start":{"line":204,"column":37},"end":{"line":204,"column":58}},{"start":{"line":204,"column":62},"end":{"line":204,"column":85}},{"start":{"line":204,"column":89},"end":{"line":204,"column":94}}],"line":204},"27":{"loc":{"start":{"line":206,"column":56},"end":{"line":208,"column":40}},"type":"cond-expr","locations":[{"start":{"line":207,"column":18},"end":{"line":207,"column":39}},{"start":{"line":208,"column":18},"end":{"line":208,"column":40}}],"line":206},"28":{"loc":{"start":{"line":209,"column":55},"end":{"line":211,"column":39}},"type":"cond-expr","locations":[{"start":{"line":210,"column":18},"end":{"line":210,"column":38}},{"start":{"line":211,"column":18},"end":{"line":211,"column":39}}],"line":209},"29":{"loc":{"start":{"line":217,"column":12},"end":{"line":219,"column":13}},"type":"if","locations":[{"start":{"line":217,"column":12},"end":{"line":219,"column":13}},{"start":{},"end":{}}],"line":217},"30":{"loc":{"start":{"line":217,"column":16},"end":{"line":217,"column":77}},"type":"binary-expr","locations":[{"start":{"line":217,"column":16},"end":{"line":217,"column":33}},{"start":{"line":217,"column":37},"end":{"line":217,"column":53}},{"start":{"line":217,"column":57},"end":{"line":217,"column":59}},{"start":{"line":217,"column":63},"end":{"line":217,"column":65}},{"start":{"line":217,"column":69},"end":{"line":217,"column":71}},{"start":{"line":217,"column":75},"end":{"line":217,"column":77}}],"line":217},"31":{"loc":{"start":{"line":256,"column":16},"end":{"line":256,"column":40}},"type":"default-arg","locations":[{"start":{"line":256,"column":35},"end":{"line":256,"column":40}}],"line":256},"32":{"loc":{"start":{"line":265,"column":32},"end":{"line":269,"column":37}},"type":"cond-expr","locations":[{"start":{"line":266,"column":14},"end":{"line":268,"column":34}},{"start":{"line":269,"column":14},"end":{"line":269,"column":37}}],"line":265},"33":{"loc":{"start":{"line":266,"column":14},"end":{"line":268,"column":34}},"type":"cond-expr","locations":[{"start":{"line":267,"column":18},"end":{"line":267,"column":56}},{"start":{"line":268,"column":18},"end":{"line":268,"column":34}}],"line":266},"34":{"loc":{"start":{"line":270,"column":31},"end":{"line":274,"column":37}},"type":"cond-expr","locations":[{"start":{"line":271,"column":14},"end":{"line":273,"column":33}},{"start":{"line":274,"column":14},"end":{"line":274,"column":37}}],"line":270},"35":{"loc":{"start":{"line":271,"column":14},"end":{"line":273,"column":33}},"type":"cond-expr","locations":[{"start":{"line":272,"column":18},"end":{"line":272,"column":55}},{"start":{"line":273,"column":18},"end":{"line":273,"column":33}}],"line":271},"36":{"loc":{"start":{"line":275,"column":17},"end":{"line":279,"column":37}},"type":"cond-expr","locations":[{"start":{"line":276,"column":14},"end":{"line":278,"column":19}},{"start":{"line":279,"column":14},"end":{"line":279,"column":37}}],"line":275},"37":{"loc":{"start":{"line":276,"column":14},"end":{"line":278,"column":19}},"type":"cond-expr","locations":[{"start":{"line":277,"column":18},"end":{"line":277,"column":41}},{"start":{"line":278,"column":18},"end":{"line":278,"column":19}}],"line":276},"38":{"loc":{"start":{"line":280,"column":17},"end":{"line":284,"column":37}},"type":"cond-expr","locations":[{"start":{"line":281,"column":14},"end":{"line":283,"column":19}},{"start":{"line":284,"column":14},"end":{"line":284,"column":37}}],"line":280},"39":{"loc":{"start":{"line":281,"column":14},"end":{"line":283,"column":19}},"type":"cond-expr","locations":[{"start":{"line":282,"column":18},"end":{"line":282,"column":41}},{"start":{"line":283,"column":18},"end":{"line":283,"column":19}}],"line":281},"40":{"loc":{"start":{"line":285,"column":17},"end":{"line":289,"column":37}},"type":"cond-expr","locations":[{"start":{"line":286,"column":14},"end":{"line":288,"column":19}},{"start":{"line":289,"column":14},"end":{"line":289,"column":37}}],"line":285},"41":{"loc":{"start":{"line":286,"column":14},"end":{"line":288,"column":19}},"type":"cond-expr","locations":[{"start":{"line":287,"column":18},"end":{"line":287,"column":41}},{"start":{"line":288,"column":18},"end":{"line":288,"column":19}}],"line":286},"42":{"loc":{"start":{"line":290,"column":17},"end":{"line":294,"column":37}},"type":"cond-expr","locations":[{"start":{"line":291,"column":14},"end":{"line":293,"column":19}},{"start":{"line":294,"column":14},"end":{"line":294,"column":37}}],"line":290},"43":{"loc":{"start":{"line":291,"column":14},"end":{"line":293,"column":19}},"type":"cond-expr","locations":[{"start":{"line":292,"column":18},"end":{"line":292,"column":41}},{"start":{"line":293,"column":18},"end":{"line":293,"column":19}}],"line":291},"44":{"loc":{"start":{"line":319,"column":26},"end":{"line":319,"column":55}},"type":"cond-expr","locations":[{"start":{"line":319,"column":50},"end":{"line":319,"column":51}},{"start":{"line":319,"column":54},"end":{"line":319,"column":55}}],"line":319}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":74,"7":74,"8":74,"9":62,"10":12,"11":0,"12":44,"13":0,"14":44,"15":42,"16":2,"17":2,"18":0,"19":0,"20":0,"21":0,"22":0,"23":1,"24":106,"25":106,"26":106,"27":106,"28":42,"29":42,"30":42,"31":21,"32":42,"33":62,"34":62,"35":62,"36":62,"37":62,"38":62,"39":33,"40":33,"41":33,"42":33,"43":62,"44":22,"45":11,"46":324,"47":324,"48":324,"49":324,"50":164,"51":164,"52":164,"53":324,"54":1,"55":1,"56":30,"57":0,"58":30,"59":30,"60":3,"61":3,"62":0,"63":0,"64":0,"65":27,"66":27,"67":0,"68":27,"69":0,"70":0,"71":0,"72":0,"73":0,"74":5,"75":0,"76":5,"77":5,"78":5,"79":5,"80":0,"81":5,"82":5,"83":5,"84":5,"85":5,"86":5,"87":5,"88":5,"89":5,"90":0,"91":5,"92":0,"93":12,"94":12,"95":12,"96":12,"97":12,"98":12,"99":12,"100":12,"101":12,"102":12,"103":12,"104":12,"105":12,"106":32,"107":32,"108":32,"109":32,"110":32,"111":32,"112":32,"113":32,"114":32,"115":32,"116":4,"117":31,"118":31,"119":31,"120":31,"121":31,"122":31,"123":31,"124":31,"125":31,"126":31,"127":1,"128":1},"f":{"0":74,"1":44,"2":106,"3":42,"4":21,"5":62,"6":22,"7":11,"8":324,"9":30,"10":5,"11":12,"12":32,"13":4,"14":31},"b":{"0":[62,12,0],"1":[0,44],"2":[42,2],"3":[2,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[42,0,0],"8":[21,0],"9":[21,0],"10":[21,21,21],"11":[0,30],"12":[30,30],"13":[3,27],"14":[0,0],"15":[0,0],"16":[27,0],"17":[0,27],"18":[0,0],"19":[0,0],"20":[0,5],"21":[5,5],"22":[5,5],"23":[5,0],"24":[5,5,0],"25":[0,5],"26":[5,1,1],"27":[5,0],"28":[5,0],"29":[0,5],"30":[5,5,5,5,5,5],"31":[27],"32":[5,27],"33":[0,5],"34":[5,27],"35":[0,5],"36":[5,27],"37":[0,5],"38":[5,27],"39":[0,5],"40":[5,27],"41":[0,5],"42":[5,27],"43":[0,5],"44":[26,5]},"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, PayoutCurvePieceType } from '../MessageType';\nimport { F64 } from '../serialize/F64';\nimport { bigIntToNumber, toBigInt } from '../util';\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    const typeId = Number(reader.readBigSize());\n\n    switch (typeId) {\n      case PayoutCurvePieceType.Polynomial:\n        return PolynomialPayoutCurvePiece.deserialize(buf);\n      case PayoutCurvePieceType.Hyperbola:\n        return HyperbolaPayoutCurvePiece.deserialize(buf);\n      default:\n        throw new Error(\n          `Payout curve piece type must be Polynomial (0) or Hyperbola (1), got ${typeId}`,\n        );\n    }\n  }\n\n  /**\n   * Creates a PayoutCurvePiece from JSON data\n   * @param json JSON object representing a payout curve piece\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): PayoutCurvePiece {\n    if (!json) {\n      throw new Error('payoutCurvePiece is required');\n    }\n\n    // Handle test vector format with nested types\n    if (json.polynomialPayoutCurvePiece) {\n      return PolynomialPayoutCurvePiece.fromJSON(\n        json.polynomialPayoutCurvePiece,\n      );\n    } else if (json.hyperbolaPayoutCurvePiece) {\n      return HyperbolaPayoutCurvePiece.fromJSON(json.hyperbolaPayoutCurvePiece);\n    }\n    // Handle direct format\n    else if (json.points !== undefined || json.payoutPoints !== undefined) {\n      return PolynomialPayoutCurvePiece.fromJSON(json);\n    } else if (json.usePositivePiece !== undefined) {\n      return HyperbolaPayoutCurvePiece.fromJSON(json);\n    } else {\n      throw new Error(\n        'payoutCurvePiece must be either polynomial (with points) or hyperbola (with usePositivePiece)',\n      );\n    }\n  }\n\n  public abstract payoutCurvePieceType: PayoutCurvePieceType;\n  public abstract type: number; // For backward compatibility\n  public abstract toJSON():\n    | PolynomialPayoutCurvePieceJSON\n    | HyperbolaPayoutCurvePieceJSON;\n  public abstract serialize(): Buffer;\n}\n\n/**\n * PolynomialPayoutCurvePiece defines a polynomial curve piece for payout functions.\n * This corresponds to type 0 in the sibling sub-type format.\n */\nexport class PolynomialPayoutCurvePiece\n  extends PayoutCurvePiece\n  implements IDlcMessage\n{\n  public static payoutCurvePieceType = PayoutCurvePieceType.Polynomial;\n\n  /**\n   * Creates a PolynomialPayoutCurvePiece from JSON data\n   * @param json JSON object representing a polynomial payout curve piece\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): PolynomialPayoutCurvePiece {\n    const instance = new PolynomialPayoutCurvePiece();\n\n    const points = json.payoutPoints || json.points || [];\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    instance.points = points.map((point: any) => ({\n      eventOutcome: toBigInt(point.eventOutcome || point.event_outcome),\n      outcomePayout: toBigInt(point.outcomePayout || point.outcome_payout),\n      extraPrecision: point.extraPrecision || point.extra_precision || 0,\n    }));\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a 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 (0)\n    const numPts = Number(reader.readBigSize());\n\n    for (let i = 0; i < numPts; i++) {\n      const eventOutcome = reader.readUInt64BE();\n      const outcomePayout = reader.readUInt64BE();\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 - Note: this is a sub-component, not a standalone wire message\n   */\n  public type = MessageType.PolynomialPayoutCurvePiece;\n\n  /**\n   * The payout curve piece type for new format\n   */\n  public payoutCurvePieceType = PayoutCurvePieceType.Polynomial;\n\n  public points: IPoint[] = [];\n\n  /**\n   * Converts polynomial_payout_curve_piece to JSON\n   */\n  public toJSON(): PolynomialPayoutCurvePieceJSON {\n    return {\n      polynomialPayoutCurvePiece: {\n        payoutPoints: this.points.map((point) => {\n          return {\n            eventOutcome: bigIntToNumber(point.eventOutcome),\n            outcomePayout: bigIntToNumber(point.outcomePayout),\n            extraPrecision: Number(point.extraPrecision),\n          };\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\n    writer.writeBigSize(this.payoutCurvePieceType);\n    writer.writeBigSize(this.points.length);\n\n    for (const point of this.points) {\n      writer.writeUInt64BE(point.eventOutcome);\n      writer.writeUInt64BE(point.outcomePayout);\n      writer.writeUInt16BE(point.extraPrecision);\n    }\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * HyperbolaPayoutCurvePiece defines a hyperbola curve piece for payout functions.\n * This corresponds to type 1 in the sibling sub-type format.\n * Updated to use F64 for precise f64 parameter handling.\n */\nexport class HyperbolaPayoutCurvePiece\n  extends PayoutCurvePiece\n  implements IDlcMessage\n{\n  public static payoutCurvePieceType = PayoutCurvePieceType.Hyperbola;\n\n  /**\n   * Helper function to safely parse F64 values from JSON\n   * Handles both number and string inputs for maximum precision\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  private static parseF64Value(value: any): F64 | null {\n    // Check for basic null/undefined\n    if (value === null || value === undefined) {\n      return null;\n    }\n\n    try {\n      if (typeof value === 'string') {\n        // Parse string directly to preserve precision\n        try {\n          return F64.fromString(value);\n        } catch (error) {\n          // If fromString fails, try parsing as number\n          const numValue = parseFloat(value);\n          if (!isNaN(numValue) && isFinite(numValue)) {\n            return F64.fromNumber(numValue);\n          }\n        }\n      } else if (typeof value === 'number') {\n        // Parse number - handle special cases\n        if (!isFinite(value)) {\n          return null; // Reject NaN, Infinity, -Infinity\n        }\n        return F64.fromNumber(value);\n      }\n\n      // Try to convert other types to number as fallback\n      const numValue = Number(value);\n      if (!isNaN(numValue) && isFinite(numValue)) {\n        return F64.fromNumber(numValue);\n      }\n\n      return null;\n    } catch (error) {\n      return null;\n    }\n  }\n\n  /**\n   * Creates a HyperbolaPayoutCurvePiece from JSON data\n   * @param json JSON object representing a hyperbola payout curve piece\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): HyperbolaPayoutCurvePiece | null {\n    if (!json || typeof json !== 'object') return null;\n\n    // Handle both wrapped format and direct format\n    let data =\n      json.hyperbolaPayoutCurvePiece || json.hyperbola_payout_curve_piece;\n\n    // If no wrapper found, assume direct format if it has the expected properties\n    if (\n      !data &&\n      (json.usePositivePiece !== undefined ||\n        json.use_positive_piece !== undefined)\n    ) {\n      data = json;\n    }\n\n    if (!data) return null;\n\n    try {\n      const usePositivePiece =\n        data.usePositivePiece || data.use_positive_piece || false;\n\n      // Parse each F64 value with null check\n      const translateOutcome = this.parseF64Value(\n        data.translateOutcome !== undefined\n          ? data.translateOutcome\n          : data.translate_outcome,\n      );\n      const translatePayout = this.parseF64Value(\n        data.translatePayout !== undefined\n          ? data.translatePayout\n          : data.translate_payout,\n      );\n      const a = this.parseF64Value(data.a);\n      const b = this.parseF64Value(data.b);\n      const c = this.parseF64Value(data.c);\n      const d = this.parseF64Value(data.d);\n\n      // Check that all required values were parsed successfully\n      if (!translateOutcome || !translatePayout || !a || !b || !c || !d) {\n        throw new Error('Failed to parse one or more F64 values');\n      }\n\n      return new HyperbolaPayoutCurvePiece(\n        usePositivePiece,\n        translateOutcome,\n        translatePayout,\n        a,\n        b,\n        c,\n        d,\n      );\n    } catch (error) {\n      return null;\n    }\n  }\n\n  /**\n   * Deserializes a 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 (1)\n    instance.usePositivePiece = reader.readUInt8() === 1;\n\n    // Read f64 values using F64 for precise handling - read raw 8-byte buffers\n    instance.translateOutcome = F64.deserialize(reader.readBytes(8));\n    instance.translatePayout = F64.deserialize(reader.readBytes(8));\n    instance.a = F64.deserialize(reader.readBytes(8));\n    instance.b = F64.deserialize(reader.readBytes(8));\n    instance.c = F64.deserialize(reader.readBytes(8));\n    instance.d = F64.deserialize(reader.readBytes(8));\n\n    // Note: leftEndPoint and rightEndPoint are not part of the serialization\n    // They will be set by PayoutFunction when creating from JSON\n    instance.leftEndPoint = {\n      eventOutcome: BigInt(0),\n      outcomePayout: BigInt(0),\n      extraPrecision: 0,\n    };\n\n    instance.rightEndPoint = {\n      eventOutcome: BigInt(0),\n      outcomePayout: BigInt(0),\n      extraPrecision: 0,\n    };\n\n    return instance;\n  }\n\n  /**\n   * The type for hyperbola_payout_curve_piece message - Note: this is a sub-component, not a standalone wire message\n   */\n  public type = MessageType.HyperbolaPayoutCurvePiece;\n\n  public payoutCurvePieceType = HyperbolaPayoutCurvePiece.payoutCurvePieceType;\n\n  // Use F64 for precise f64 parameter handling to avoid JavaScript precision issues\n  public leftEndPoint: IPayoutPoint;\n  public rightEndPoint: IPayoutPoint;\n  public usePositivePiece: boolean;\n  public translateOutcome: F64; // f64 - precise handling with F64\n  public translatePayout: F64; // f64 - precise handling with F64\n  public a: F64; // f64 - precise handling with F64\n  public b: F64; // f64 - precise handling with F64\n  public c: F64; // f64 - precise handling with F64\n  public d: F64; // f64 - precise handling with F64\n\n  constructor(\n    usePositivePiece = false,\n    translateOutcome?: string | F64,\n    translatePayout?: string | F64,\n    a?: string | F64,\n    b?: string | F64,\n    c?: string | F64,\n    d?: string | F64,\n  ) {\n    super();\n    this.usePositivePiece = usePositivePiece;\n\n    // Convert string inputs to F64 objects, or use existing F64 objects\n    this.translateOutcome = translateOutcome\n      ? typeof translateOutcome === 'string'\n        ? F64.fromString(translateOutcome)\n        : translateOutcome\n      : F64.fromNumber(0);\n    this.translatePayout = translatePayout\n      ? typeof translatePayout === 'string'\n        ? F64.fromString(translatePayout)\n        : translatePayout\n      : F64.fromNumber(0);\n    this.a = a\n      ? typeof a === 'string'\n        ? F64.fromString(a)\n        : a\n      : F64.fromNumber(0);\n    this.b = b\n      ? typeof b === 'string'\n        ? F64.fromString(b)\n        : b\n      : F64.fromNumber(0);\n    this.c = c\n      ? typeof c === 'string'\n        ? F64.fromString(c)\n        : c\n      : F64.fromNumber(0);\n    this.d = d\n      ? typeof d === 'string'\n        ? F64.fromString(d)\n        : d\n      : F64.fromNumber(0);\n  }\n\n  /**\n   * Converts hyperbola_payout_curve_piece to JSON\n   * Uses F64.toJSONValue() which preserves precision by using strings for very large numbers\n   */\n  public toJSON(): HyperbolaPayoutCurvePieceJSON {\n    return {\n      hyperbolaPayoutCurvePiece: {\n        usePositivePiece: this.usePositivePiece,\n        translateOutcome: this.translateOutcome.toJSONValue(), // Smart conversion: number if safe, string if large\n        translatePayout: this.translatePayout.toJSONValue(), // Preserves precision automatically\n        a: this.a.toJSONValue(),\n        b: this.b.toJSONValue(),\n        c: this.c.toJSONValue(),\n        d: this.d.toJSONValue(),\n      },\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\n    writer.writeBigSize(this.payoutCurvePieceType);\n    writer.writeUInt8(this.usePositivePiece ? 1 : 0);\n\n    // Write f64 values using F64 for precise handling - write raw 8-byte buffers\n    writer.writeBytes(this.translateOutcome.serialize());\n    writer.writeBytes(this.translatePayout.serialize());\n    writer.writeBytes(this.a.serialize());\n    writer.writeBytes(this.b.serialize());\n    writer.writeBytes(this.c.serialize());\n    writer.writeBytes(this.d.serialize());\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\ninterface IPayoutPoint {\n  eventOutcome: bigint;\n  outcomePayout: bigint;\n  extraPrecision: number;\n}\n\nexport interface PolynomialPayoutCurvePieceJSON {\n  polynomialPayoutCurvePiece: {\n    payoutPoints: IPointJSON[];\n  };\n}\n\nexport interface HyperbolaPayoutCurvePieceJSON {\n  hyperbolaPayoutCurvePiece: {\n    usePositivePiece: boolean;\n    translateOutcome: number | string;\n    translatePayout: number | string;\n    a: number | string;\n    b: number | string;\n    c: number | string;\n    d: number | string;\n  };\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"53bf408a23c652d44f74949944c84f5ff83ca6c2","contentHash":"4f74c743955a1a4f0891118b202e91ea3a0cc05fdd4fa7d001bdf7fe1b4bb7df"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/F64.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/F64.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":21}},"4":{"start":{"line":7,"column":21},"end":{"line":7,"column":59}},"5":{"start":{"line":21,"column":8},"end":{"line":29,"column":9}},"6":{"start":{"line":22,"column":12},"end":{"line":24,"column":13}},"7":{"start":{"line":23,"column":16},"end":{"line":23,"column":70}},"8":{"start":{"line":25,"column":12},"end":{"line":25,"column":47}},"9":{"start":{"line":28,"column":12},"end":{"line":28,"column":43}},"10":{"start":{"line":35,"column":23},"end":{"line":35,"column":38}},"11":{"start":{"line":36,"column":8},"end":{"line":36,"column":37}},"12":{"start":{"line":37,"column":8},"end":{"line":37,"column":31}},"13":{"start":{"line":45,"column":20},"end":{"line":45,"column":38}},"14":{"start":{"line":46,"column":8},"end":{"line":46,"column":35}},"15":{"start":{"line":54,"column":24},"end":{"line":54,"column":53}},"16":{"start":{"line":55,"column":8},"end":{"line":55,"column":40}},"17":{"start":{"line":61,"column":20},"end":{"line":61,"column":34}},"18":{"start":{"line":62,"column":8},"end":{"line":62,"column":35}},"19":{"start":{"line":68,"column":8},"end":{"line":68,"column":33}},"20":{"start":{"line":74,"column":8},"end":{"line":76,"column":9}},"21":{"start":{"line":75,"column":12},"end":{"line":75,"column":67}},"22":{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},"23":{"start":{"line":78,"column":12},"end":{"line":78,"column":69}},"24":{"start":{"line":80,"column":23},"end":{"line":80,"column":38}},"25":{"start":{"line":83,"column":24},"end":{"line":83,"column":52}},"26":{"start":{"line":84,"column":24},"end":{"line":84,"column":40}},"27":{"start":{"line":85,"column":29},"end":{"line":85,"column":37}},"28":{"start":{"line":86,"column":28},"end":{"line":86,"column":92}},"29":{"start":{"line":88,"column":8},"end":{"line":91,"column":9}},"30":{"start":{"line":88,"column":21},"end":{"line":88,"column":22}},"31":{"start":{"line":89,"column":30},"end":{"line":89,"column":88}},"32":{"start":{"line":90,"column":12},"end":{"line":90,"column":44}},"33":{"start":{"line":92,"column":8},"end":{"line":92,"column":31}},"34":{"start":{"line":98,"column":8},"end":{"line":98,"column":41}},"35":{"start":{"line":104,"column":8},"end":{"line":104,"column":32}},"36":{"start":{"line":110,"column":8},"end":{"line":110,"column":31}},"37":{"start":{"line":117,"column":8},"end":{"line":117,"column":44}},"38":{"start":{"line":123,"column":8},"end":{"line":123,"column":57}},"39":{"start":{"line":130,"column":26},"end":{"line":130,"column":35}},"40":{"start":{"line":131,"column":8},"end":{"line":134,"column":9}},"41":{"start":{"line":131,"column":21},"end":{"line":131,"column":22}},"42":{"start":{"line":132,"column":12},"end":{"line":133,"column":79}},"43":{"start":{"line":135,"column":21},"end":{"line":135,"column":76}},"44":{"start":{"line":136,"column":25},"end":{"line":136,"column":76}},"45":{"start":{"line":137,"column":25},"end":{"line":137,"column":78}},"46":{"start":{"line":138,"column":8},"end":{"line":138,"column":44}},"47":{"start":{"line":144,"column":29},"end":{"line":144,"column":49}},"48":{"start":{"line":145,"column":8},"end":{"line":145,"column":33}},"49":{"start":{"line":151,"column":39},"end":{"line":151,"column":59}},"50":{"start":{"line":152,"column":8},"end":{"line":152,"column":59}},"51":{"start":{"line":158,"column":39},"end":{"line":158,"column":59}},"52":{"start":{"line":159,"column":8},"end":{"line":159,"column":59}},"53":{"start":{"line":165,"column":39},"end":{"line":165,"column":59}},"54":{"start":{"line":166,"column":8},"end":{"line":166,"column":56}},"55":{"start":{"line":172,"column":8},"end":{"line":172,"column":42}},"56":{"start":{"line":179,"column":20},"end":{"line":179,"column":35}},"57":{"start":{"line":181,"column":8},"end":{"line":183,"column":9}},"58":{"start":{"line":182,"column":12},"end":{"line":182,"column":23}},"59":{"start":{"line":185,"column":8},"end":{"line":185,"column":30}},"60":{"start":{"line":191,"column":8},"end":{"line":196,"column":9}},"61":{"start":{"line":192,"column":12},"end":{"line":192,"column":41}},"62":{"start":{"line":195,"column":12},"end":{"line":195,"column":41}},"63":{"start":{"line":202,"column":8},"end":{"line":202,"column":44}},"64":{"start":{"line":208,"column":23},"end":{"line":208,"column":46}},"65":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"66":{"start":{"line":210,"column":12},"end":{"line":210,"column":73}},"67":{"start":{"line":212,"column":8},"end":{"line":212,"column":31}},"68":{"start":{"line":218,"column":8},"end":{"line":218,"column":50}},"69":{"start":{"line":224,"column":8},"end":{"line":226,"column":9}},"70":{"start":{"line":225,"column":12},"end":{"line":225,"column":45}},"71":{"start":{"line":227,"column":8},"end":{"line":227,"column":34}},"72":{"start":{"line":233,"column":8},"end":{"line":235,"column":9}},"73":{"start":{"line":234,"column":12},"end":{"line":234,"column":43}},"74":{"start":{"line":236,"column":8},"end":{"line":236,"column":50}},"75":{"start":{"line":242,"column":8},"end":{"line":244,"column":9}},"76":{"start":{"line":243,"column":12},"end":{"line":243,"column":43}},"77":{"start":{"line":245,"column":8},"end":{"line":245,"column":50}},"78":{"start":{"line":251,"column":8},"end":{"line":253,"column":9}},"79":{"start":{"line":252,"column":12},"end":{"line":252,"column":44}},"80":{"start":{"line":254,"column":8},"end":{"line":254,"column":51}},"81":{"start":{"line":260,"column":8},"end":{"line":262,"column":9}},"82":{"start":{"line":261,"column":12},"end":{"line":261,"column":44}},"83":{"start":{"line":263,"column":8},"end":{"line":263,"column":51}},"84":{"start":{"line":269,"column":8},"end":{"line":269,"column":37}},"85":{"start":{"line":275,"column":8},"end":{"line":275,"column":33}},"86":{"start":{"line":278,"column":8},"end":{"line":278,"column":33}},"87":{"start":{"line":281,"column":8},"end":{"line":281,"column":34}},"88":{"start":{"line":284,"column":8},"end":{"line":284,"column":56}},"89":{"start":{"line":287,"column":8},"end":{"line":287,"column":56}},"90":{"start":{"line":290,"column":8},"end":{"line":290,"column":42}},"91":{"start":{"line":293,"column":0},"end":{"line":293,"column":18}}},"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":24},"end":{"line":30,"column":5}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":27},"end":{"line":38,"column":5}},"line":34},"3":{"name":"(anonymous_3)","decl":{"start":{"line":43,"column":4},"end":{"line":43,"column":5}},"loc":{"start":{"line":43,"column":32},"end":{"line":47,"column":5}},"line":43},"4":{"name":"(anonymous_4)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":27},"end":{"line":56,"column":5}},"line":52},"5":{"name":"(anonymous_5)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":30},"end":{"line":63,"column":5}},"line":60},"6":{"name":"(anonymous_6)","decl":{"start":{"line":67,"column":4},"end":{"line":67,"column":5}},"loc":{"start":{"line":67,"column":18},"end":{"line":69,"column":5}},"line":67},"7":{"name":"(anonymous_7)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":52},"end":{"line":93,"column":5}},"line":73},"8":{"name":"(anonymous_8)","decl":{"start":{"line":97,"column":4},"end":{"line":97,"column":5}},"loc":{"start":{"line":97,"column":16},"end":{"line":99,"column":5}},"line":97},"9":{"name":"(anonymous_9)","decl":{"start":{"line":103,"column":4},"end":{"line":103,"column":5}},"loc":{"start":{"line":103,"column":16},"end":{"line":105,"column":5}},"line":103},"10":{"name":"(anonymous_10)","decl":{"start":{"line":109,"column":4},"end":{"line":109,"column":5}},"loc":{"start":{"line":109,"column":31},"end":{"line":111,"column":5}},"line":109},"11":{"name":"(anonymous_11)","decl":{"start":{"line":116,"column":4},"end":{"line":116,"column":5}},"loc":{"start":{"line":116,"column":15},"end":{"line":118,"column":5}},"line":116},"12":{"name":"(anonymous_12)","decl":{"start":{"line":122,"column":4},"end":{"line":122,"column":5}},"loc":{"start":{"line":122,"column":16},"end":{"line":124,"column":5}},"line":122},"13":{"name":"(anonymous_13)","decl":{"start":{"line":128,"column":4},"end":{"line":128,"column":5}},"loc":{"start":{"line":128,"column":20},"end":{"line":139,"column":5}},"line":128},"14":{"name":"(anonymous_14)","decl":{"start":{"line":143,"column":4},"end":{"line":143,"column":5}},"loc":{"start":{"line":143,"column":15},"end":{"line":146,"column":5}},"line":143},"15":{"name":"(anonymous_15)","decl":{"start":{"line":150,"column":4},"end":{"line":150,"column":5}},"loc":{"start":{"line":150,"column":12},"end":{"line":153,"column":5}},"line":150},"16":{"name":"(anonymous_16)","decl":{"start":{"line":157,"column":4},"end":{"line":157,"column":5}},"loc":{"start":{"line":157,"column":17},"end":{"line":160,"column":5}},"line":157},"17":{"name":"(anonymous_17)","decl":{"start":{"line":164,"column":4},"end":{"line":164,"column":5}},"loc":{"start":{"line":164,"column":13},"end":{"line":167,"column":5}},"line":164},"18":{"name":"(anonymous_18)","decl":{"start":{"line":171,"column":4},"end":{"line":171,"column":5}},"loc":{"start":{"line":171,"column":15},"end":{"line":173,"column":5}},"line":171},"19":{"name":"(anonymous_19)","decl":{"start":{"line":178,"column":4},"end":{"line":178,"column":5}},"loc":{"start":{"line":178,"column":18},"end":{"line":186,"column":5}},"line":178},"20":{"name":"(anonymous_20)","decl":{"start":{"line":190,"column":4},"end":{"line":190,"column":5}},"loc":{"start":{"line":190,"column":32},"end":{"line":197,"column":5}},"line":190},"21":{"name":"(anonymous_21)","decl":{"start":{"line":201,"column":4},"end":{"line":201,"column":5}},"loc":{"start":{"line":201,"column":12},"end":{"line":203,"column":5}},"line":201},"22":{"name":"(anonymous_22)","decl":{"start":{"line":207,"column":4},"end":{"line":207,"column":5}},"loc":{"start":{"line":207,"column":24},"end":{"line":213,"column":5}},"line":207},"23":{"name":"(anonymous_23)","decl":{"start":{"line":217,"column":4},"end":{"line":217,"column":5}},"loc":{"start":{"line":217,"column":18},"end":{"line":219,"column":5}},"line":217},"24":{"name":"(anonymous_24)","decl":{"start":{"line":223,"column":4},"end":{"line":223,"column":5}},"loc":{"start":{"line":223,"column":14},"end":{"line":228,"column":5}},"line":223},"25":{"name":"(anonymous_25)","decl":{"start":{"line":232,"column":4},"end":{"line":232,"column":5}},"loc":{"start":{"line":232,"column":14},"end":{"line":237,"column":5}},"line":232},"26":{"name":"(anonymous_26)","decl":{"start":{"line":241,"column":4},"end":{"line":241,"column":5}},"loc":{"start":{"line":241,"column":14},"end":{"line":246,"column":5}},"line":241},"27":{"name":"(anonymous_27)","decl":{"start":{"line":250,"column":4},"end":{"line":250,"column":5}},"loc":{"start":{"line":250,"column":15},"end":{"line":255,"column":5}},"line":250},"28":{"name":"(anonymous_28)","decl":{"start":{"line":259,"column":4},"end":{"line":259,"column":5}},"loc":{"start":{"line":259,"column":15},"end":{"line":264,"column":5}},"line":259},"29":{"name":"(anonymous_29)","decl":{"start":{"line":268,"column":4},"end":{"line":268,"column":5}},"loc":{"start":{"line":268,"column":12},"end":{"line":270,"column":5}},"line":268},"30":{"name":"(anonymous_30)","decl":{"start":{"line":274,"column":4},"end":{"line":274,"column":5}},"loc":{"start":{"line":274,"column":22},"end":{"line":276,"column":5}},"line":274},"31":{"name":"(anonymous_31)","decl":{"start":{"line":277,"column":4},"end":{"line":277,"column":5}},"loc":{"start":{"line":277,"column":21},"end":{"line":279,"column":5}},"line":277},"32":{"name":"(anonymous_32)","decl":{"start":{"line":280,"column":4},"end":{"line":280,"column":5}},"loc":{"start":{"line":280,"column":30},"end":{"line":282,"column":5}},"line":280},"33":{"name":"(anonymous_33)","decl":{"start":{"line":283,"column":4},"end":{"line":283,"column":5}},"loc":{"start":{"line":283,"column":26},"end":{"line":285,"column":5}},"line":283},"34":{"name":"(anonymous_34)","decl":{"start":{"line":286,"column":4},"end":{"line":286,"column":5}},"loc":{"start":{"line":286,"column":35},"end":{"line":288,"column":5}},"line":286},"35":{"name":"(anonymous_35)","decl":{"start":{"line":289,"column":4},"end":{"line":289,"column":5}},"loc":{"start":{"line":289,"column":21},"end":{"line":291,"column":5}},"line":289}},"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":21,"column":8},"end":{"line":29,"column":9}},"type":"if","locations":[{"start":{"line":21,"column":8},"end":{"line":29,"column":9}},{"start":{"line":27,"column":13},"end":{"line":29,"column":9}}],"line":21},"4":{"loc":{"start":{"line":22,"column":12},"end":{"line":24,"column":13}},"type":"if","locations":[{"start":{"line":22,"column":12},"end":{"line":24,"column":13}},{"start":{},"end":{}}],"line":22},"5":{"loc":{"start":{"line":74,"column":8},"end":{"line":76,"column":9}},"type":"if","locations":[{"start":{"line":74,"column":8},"end":{"line":76,"column":9}},{"start":{},"end":{}}],"line":74},"6":{"loc":{"start":{"line":74,"column":12},"end":{"line":74,"column":43}},"type":"binary-expr","locations":[{"start":{"line":74,"column":12},"end":{"line":74,"column":24}},{"start":{"line":74,"column":28},"end":{"line":74,"column":43}}],"line":74},"7":{"loc":{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},"type":"if","locations":[{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},{"start":{},"end":{}}],"line":77},"8":{"loc":{"start":{"line":77,"column":12},"end":{"line":77,"column":71}},"type":"binary-expr","locations":[{"start":{"line":77,"column":12},"end":{"line":77,"column":32}},{"start":{"line":77,"column":36},"end":{"line":77,"column":71}}],"line":77},"9":{"loc":{"start":{"line":83,"column":24},"end":{"line":83,"column":52}},"type":"cond-expr","locations":[{"start":{"line":83,"column":31},"end":{"line":83,"column":40}},{"start":{"line":83,"column":43},"end":{"line":83,"column":52}}],"line":83},"10":{"loc":{"start":{"line":152,"column":15},"end":{"line":152,"column":58}},"type":"binary-expr","locations":[{"start":{"line":152,"column":15},"end":{"line":152,"column":32}},{"start":{"line":152,"column":36},"end":{"line":152,"column":58}}],"line":152},"11":{"loc":{"start":{"line":159,"column":15},"end":{"line":159,"column":58}},"type":"binary-expr","locations":[{"start":{"line":159,"column":15},"end":{"line":159,"column":32}},{"start":{"line":159,"column":36},"end":{"line":159,"column":58}}],"line":159},"12":{"loc":{"start":{"line":166,"column":15},"end":{"line":166,"column":55}},"type":"binary-expr","locations":[{"start":{"line":166,"column":15},"end":{"line":166,"column":29}},{"start":{"line":166,"column":33},"end":{"line":166,"column":55}}],"line":166},"13":{"loc":{"start":{"line":181,"column":8},"end":{"line":183,"column":9}},"type":"if","locations":[{"start":{"line":181,"column":8},"end":{"line":183,"column":9}},{"start":{},"end":{}}],"line":181},"14":{"loc":{"start":{"line":181,"column":12},"end":{"line":181,"column":76}},"type":"binary-expr","locations":[{"start":{"line":181,"column":12},"end":{"line":181,"column":42}},{"start":{"line":181,"column":46},"end":{"line":181,"column":76}}],"line":181},"15":{"loc":{"start":{"line":191,"column":8},"end":{"line":196,"column":9}},"type":"if","locations":[{"start":{"line":191,"column":8},"end":{"line":196,"column":9}},{"start":{"line":194,"column":13},"end":{"line":196,"column":9}}],"line":191},"16":{"loc":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"type":"if","locations":[{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},{"start":{},"end":{}}],"line":209},"17":{"loc":{"start":{"line":224,"column":8},"end":{"line":226,"column":9}},"type":"if","locations":[{"start":{"line":224,"column":8},"end":{"line":226,"column":9}},{"start":{},"end":{}}],"line":224},"18":{"loc":{"start":{"line":233,"column":8},"end":{"line":235,"column":9}},"type":"if","locations":[{"start":{"line":233,"column":8},"end":{"line":235,"column":9}},{"start":{},"end":{}}],"line":233},"19":{"loc":{"start":{"line":242,"column":8},"end":{"line":244,"column":9}},"type":"if","locations":[{"start":{"line":242,"column":8},"end":{"line":244,"column":9}},{"start":{},"end":{}}],"line":242},"20":{"loc":{"start":{"line":251,"column":8},"end":{"line":253,"column":9}},"type":"if","locations":[{"start":{"line":251,"column":8},"end":{"line":253,"column":9}},{"start":{},"end":{}}],"line":251},"21":{"loc":{"start":{"line":260,"column":8},"end":{"line":262,"column":9}},"type":"if","locations":[{"start":{"line":260,"column":8},"end":{"line":262,"column":9}},{"start":{},"end":{}}],"line":260}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":428,"6":428,"7":2,"8":426,"9":0,"10":334,"11":334,"12":334,"13":4,"14":4,"15":4,"16":4,"17":1,"18":1,"19":1,"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":206,"35":196,"36":81,"37":77,"38":0,"39":11,"40":11,"41":11,"42":88,"43":11,"44":11,"45":11,"46":11,"47":4,"48":4,"49":2,"50":2,"51":4,"52":4,"53":1,"54":1,"55":0,"56":24,"57":24,"58":23,"59":1,"60":0,"61":0,"62":0,"63":8,"64":3,"65":3,"66":2,"67":1,"68":31,"69":2,"70":2,"71":0,"72":4,"73":2,"74":2,"75":4,"76":2,"77":2,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1},"f":{"0":1,"1":428,"2":334,"3":4,"4":4,"5":1,"6":1,"7":0,"8":206,"9":196,"10":81,"11":77,"12":0,"13":11,"14":4,"15":2,"16":4,"17":1,"18":0,"19":24,"20":0,"21":8,"22":3,"23":31,"24":2,"25":4,"26":4,"27":0,"28":0,"29":0,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[428,0],"4":[2,426],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[2,2],"11":[4,4],"12":[1,1],"13":[23,1],"14":[24,23],"15":[0,0],"16":[2,1],"17":[2,0],"18":[2,2],"19":[2,2],"20":[0,0],"21":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/F64.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/serialize/F64.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from 'decimal.js';\n\n/**\n * IEEE 754 double-precision floating-point number implementation\n *\n * Format: 1 bit sign + 11 bits exponent + 52 bits mantissa\n *\n * This class works directly with the binary representation to avoid\n * precision loss when serializing/deserializing f64 values to/from buffers.\n */\nexport class F64 {\n  private _buffer: Buffer; // 8 bytes storing the IEEE 754 representation\n\n  /**\n   * Create an F64 from raw bytes (IEEE 754 format)\n   */\n  constructor(buffer?: Buffer) {\n    if (buffer) {\n      if (buffer.length !== 8) {\n        throw new Error('F64 buffer must be exactly 8 bytes');\n      }\n      this._buffer = Buffer.from(buffer);\n    } else {\n      this._buffer = Buffer.alloc(8);\n    }\n  }\n\n  /**\n   * Create F64 from JavaScript number\n   */\n  static fromNumber(num: number): F64 {\n    const buffer = Buffer.alloc(8);\n    buffer.writeDoubleBE(num, 0);\n    return new F64(buffer);\n  }\n\n  /**\n   * Create F64 from Decimal.js value\n   * Uses the most precise conversion possible\n   */\n  static fromDecimal(decimal: Decimal): F64 {\n    // Convert to number and let IEEE 754 handle the precision\n    const num = decimal.toNumber();\n    return F64.fromNumber(num);\n  }\n\n  /**\n   * Create F64 from string representation\n   * Uses Decimal.js to parse the string without precision loss from JavaScript Number\n   */\n  static fromString(str: string): F64 {\n    // Parse string using Decimal.js to avoid JavaScript Number precision loss\n    const decimal = new Decimal(str);\n    return F64.fromDecimal(decimal);\n  }\n\n  /**\n   * Create F64 from bigint (treating as integer value)\n   */\n  static fromBigInt(bigint: bigint): F64 {\n    const num = Number(bigint);\n    return F64.fromNumber(num);\n  }\n\n  /**\n   * Create F64 representing zero (static method for API compatibility)\n   */\n  static zero(): F64 {\n    return F64.fromNumber(0);\n  }\n\n  /**\n   * Create F64 with specific IEEE 754 components\n   */\n  static fromComponents(\n    sign: boolean,\n    exponent: number,\n    mantissa: bigint,\n  ): F64 {\n    if (exponent < 0 || exponent > 2047) {\n      throw new Error('Exponent must be between 0 and 2047');\n    }\n    if (mantissa < BigInt(0) || mantissa >= BigInt(1) << BigInt(52)) {\n      throw new Error('Mantissa must be between 0 and 2^52-1');\n    }\n\n    const buffer = Buffer.alloc(8);\n\n    // Pack into 64-bit big-endian format\n    // Bit layout: SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM\n    const signBit = sign ? BigInt(1) : BigInt(0);\n    const expBits = BigInt(exponent);\n    const mantissaBits = mantissa;\n\n    const ieee754Bits =\n      (signBit << BigInt(63)) | (expBits << BigInt(52)) | mantissaBits;\n\n    // Write as big-endian bytes\n    for (let i = 0; i < 8; i++) {\n      const byteValue = Number(\n        (ieee754Bits >> BigInt(56 - i * 8)) & BigInt(0xff),\n      );\n      buffer.writeUInt8(byteValue, i);\n    }\n\n    return new F64(buffer);\n  }\n\n  /**\n   * Get the raw buffer containing IEEE 754 representation\n   */\n  getBuffer(): Buffer {\n    return Buffer.from(this._buffer);\n  }\n\n  /**\n   * Serialize to buffer (big-endian)\n   */\n  serialize(): Buffer {\n    return this.getBuffer();\n  }\n\n  /**\n   * Deserialize from buffer (big-endian)\n   */\n  static deserialize(buffer: Buffer): F64 {\n    return new F64(buffer);\n  }\n\n  /**\n   * Convert to JavaScript number\n   * This may lose precision for very large or very precise values\n   */\n  toNumber(): number {\n    return this._buffer.readDoubleBE(0);\n  }\n\n  /**\n   * Convert to Decimal.js for arbitrary precision\n   */\n  toDecimal(): Decimal {\n    return new Decimal(this.toNumber());\n  }\n\n  /**\n   * Extract IEEE 754 components\n   */\n  getComponents(): { sign: boolean; exponent: number; mantissa: bigint } {\n    // Read as big-endian 64-bit integer\n    let ieee754Bits = BigInt(0);\n    for (let i = 0; i < 8; i++) {\n      ieee754Bits =\n        (ieee754Bits << BigInt(8)) | BigInt(this._buffer.readUInt8(i));\n    }\n\n    const sign = (ieee754Bits & (BigInt(1) << BigInt(63))) !== BigInt(0);\n    const exponent = Number((ieee754Bits >> BigInt(52)) & BigInt(0x7ff));\n    const mantissa = ieee754Bits & ((BigInt(1) << BigInt(52)) - BigInt(1));\n\n    return { sign, exponent, mantissa };\n  }\n\n  /**\n   * Check if the value is finite\n   */\n  isFinite(): boolean {\n    const { exponent } = this.getComponents();\n    return exponent !== 2047; // NaN and Infinity have exponent = 2047\n  }\n\n  /**\n   * Check if the value is NaN\n   */\n  isNaN(): boolean {\n    const { exponent, mantissa } = this.getComponents();\n    return exponent === 2047 && mantissa !== BigInt(0);\n  }\n\n  /**\n   * Check if the value is infinite\n   */\n  isInfinite(): boolean {\n    const { exponent, mantissa } = this.getComponents();\n    return exponent === 2047 && mantissa === BigInt(0);\n  }\n\n  /**\n   * Check if the value is zero\n   */\n  isZero(): boolean {\n    const { exponent, mantissa } = this.getComponents();\n    return exponent === 0 && mantissa === BigInt(0);\n  }\n\n  /**\n   * Get string representation\n   */\n  toString(): string {\n    return this.toNumber().toString();\n  }\n\n  /**\n   * Convert to JSON-safe value: number if within safe range, string if too large\n   * This preserves precision for very large numbers that exceed JavaScript's MAX_SAFE_INTEGER\n   */\n  toJSONValue(): number | string {\n    const num = this.toNumber();\n\n    // Check if the number is within JavaScript's safe integer range\n    if (num <= Number.MAX_SAFE_INTEGER && num >= Number.MIN_SAFE_INTEGER) {\n      return num;\n    }\n\n    // For very large numbers, return as string to preserve precision\n    return num.toString();\n  }\n\n  /**\n   * Create F64 from JSON value (handles both number and string inputs)\n   */\n  static fromJSONValue(value: number | string): F64 {\n    if (typeof value === 'string') {\n      return F64.fromString(value);\n    } else {\n      return F64.fromNumber(value);\n    }\n  }\n\n  /**\n   * Get hex representation of the raw bytes\n   */\n  toHex(): string {\n    return this._buffer.toString('hex');\n  }\n\n  /**\n   * Create F64 from hex string\n   */\n  static fromHex(hex: string): F64 {\n    const buffer = Buffer.from(hex, 'hex');\n    if (buffer.length !== 8) {\n      throw new Error('Hex string must represent exactly 8 bytes');\n    }\n    return new F64(buffer);\n  }\n\n  /**\n   * Compare with another F64\n   */\n  equals(other: F64): boolean {\n    return this._buffer.equals(other._buffer);\n  }\n\n  /**\n   * Equality comparison (alias for equals, for API compatibility)\n   */\n  eq(other: F64 | number): boolean {\n    if (typeof other === 'number') {\n      return this.toNumber() === other;\n    }\n    return this.equals(other);\n  }\n\n  /**\n   * Greater than comparison\n   */\n  gt(other: F64 | number): boolean {\n    if (typeof other === 'number') {\n      return this.toNumber() > other;\n    }\n    return this.toNumber() > other.toNumber();\n  }\n\n  /**\n   * Less than comparison\n   */\n  lt(other: F64 | number): boolean {\n    if (typeof other === 'number') {\n      return this.toNumber() < other;\n    }\n    return this.toNumber() < other.toNumber();\n  }\n\n  /**\n   * Greater than or equal comparison\n   */\n  gte(other: F64 | number): boolean {\n    if (typeof other === 'number') {\n      return this.toNumber() >= other;\n    }\n    return this.toNumber() >= other.toNumber();\n  }\n\n  /**\n   * Less than or equal comparison\n   */\n  lte(other: F64 | number): boolean {\n    if (typeof other === 'number') {\n      return this.toNumber() <= other;\n    }\n    return this.toNumber() <= other.toNumber();\n  }\n\n  /**\n   * Create a copy\n   */\n  clone(): F64 {\n    return new F64(this._buffer);\n  }\n\n  /**\n   * Constants\n   */\n  static get ZERO(): F64 {\n    return F64.fromNumber(0);\n  }\n\n  static get ONE(): F64 {\n    return F64.fromNumber(1);\n  }\n\n  static get NEGATIVE_ONE(): F64 {\n    return F64.fromNumber(-1);\n  }\n\n  static get INFINITY(): F64 {\n    return F64.fromNumber(Number.POSITIVE_INFINITY);\n  }\n\n  static get NEGATIVE_INFINITY(): F64 {\n    return F64.fromNumber(Number.NEGATIVE_INFINITY);\n  }\n\n  static get NaN(): F64 {\n    return F64.fromNumber(Number.NaN);\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2118a497f28444ba7738faebf692157b7df00213","contentHash":"eec0cf309064d65f785b00a949d72bc3f0dd7f06e42068846d5e658b7af67374"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervals.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervals.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":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":47}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":33}},"5":{"start":{"line":16,"column":8},"end":{"line":16,"column":43}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":28}},"7":{"start":{"line":25,"column":25},"end":{"line":25,"column":48}},"8":{"start":{"line":26,"column":26},"end":{"line":26,"column":46}},"9":{"start":{"line":28,"column":8},"end":{"line":31,"column":12}},"10":{"start":{"line":28,"column":58},"end":{"line":31,"column":9}},"11":{"start":{"line":32,"column":8},"end":{"line":32,"column":24}},"12":{"start":{"line":39,"column":25},"end":{"line":39,"column":48}},"13":{"start":{"line":40,"column":23},"end":{"line":40,"column":52}},"14":{"start":{"line":41,"column":37},"end":{"line":41,"column":65}},"15":{"start":{"line":42,"column":8},"end":{"line":46,"column":9}},"16":{"start":{"line":42,"column":21},"end":{"line":42,"column":22}},"17":{"start":{"line":43,"column":34},"end":{"line":43,"column":55}},"18":{"start":{"line":44,"column":32},"end":{"line":44,"column":53}},"19":{"start":{"line":45,"column":12},"end":{"line":45,"column":68}},"20":{"start":{"line":47,"column":8},"end":{"line":47,"column":24}},"21":{"start":{"line":56,"column":8},"end":{"line":60,"column":9}},"22":{"start":{"line":57,"column":12},"end":{"line":59,"column":13}},"23":{"start":{"line":58,"column":16},"end":{"line":58,"column":70}},"24":{"start":{"line":62,"column":8},"end":{"line":66,"column":9}},"25":{"start":{"line":62,"column":21},"end":{"line":62,"column":22}},"26":{"start":{"line":63,"column":12},"end":{"line":65,"column":13}},"27":{"start":{"line":64,"column":16},"end":{"line":64,"column":73}},"28":{"start":{"line":72,"column":8},"end":{"line":79,"column":10}},"29":{"start":{"line":74,"column":16},"end":{"line":77,"column":18}},"30":{"start":{"line":85,"column":23},"end":{"line":85,"column":49}},"31":{"start":{"line":86,"column":8},"end":{"line":86,"column":51}},"32":{"start":{"line":87,"column":8},"end":{"line":90,"column":9}},"33":{"start":{"line":88,"column":12},"end":{"line":88,"column":57}},"34":{"start":{"line":89,"column":12},"end":{"line":89,"column":55}},"35":{"start":{"line":91,"column":8},"end":{"line":91,"column":33}},"36":{"start":{"line":94,"column":0},"end":{"line":94,"column":46}},"37":{"start":{"line":95,"column":0},"end":{"line":95,"column":69}}},"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":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":26},"end":{"line":33,"column":5}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":28,"column":43},"end":{"line":28,"column":44}},"loc":{"start":{"line":28,"column":58},"end":{"line":31,"column":9}},"line":28},"3":{"name":"(anonymous_3)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":28},"end":{"line":48,"column":5}},"line":38},"4":{"name":"(anonymous_4)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":15},"end":{"line":67,"column":5}},"line":54},"5":{"name":"(anonymous_5)","decl":{"start":{"line":71,"column":4},"end":{"line":71,"column":5}},"loc":{"start":{"line":71,"column":13},"end":{"line":80,"column":5}},"line":71},"6":{"name":"(anonymous_6)","decl":{"start":{"line":73,"column":42},"end":{"line":73,"column":43}},"loc":{"start":{"line":73,"column":56},"end":{"line":78,"column":13}},"line":73},"7":{"name":"(anonymous_7)","decl":{"start":{"line":84,"column":4},"end":{"line":84,"column":5}},"loc":{"start":{"line":84,"column":16},"end":{"line":92,"column":5}},"line":84}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":26},"end":{"line":26,"column":46}},"type":"binary-expr","locations":[{"start":{"line":26,"column":26},"end":{"line":26,"column":40}},{"start":{"line":26,"column":44},"end":{"line":26,"column":46}}],"line":26},"1":{"loc":{"start":{"line":29,"column":48},"end":{"line":29,"column":97}},"type":"binary-expr","locations":[{"start":{"line":29,"column":48},"end":{"line":29,"column":70}},{"start":{"line":29,"column":74},"end":{"line":29,"column":97}}],"line":29},"2":{"loc":{"start":{"line":30,"column":46},"end":{"line":30,"column":91}},"type":"binary-expr","locations":[{"start":{"line":30,"column":46},"end":{"line":30,"column":66}},{"start":{"line":30,"column":70},"end":{"line":30,"column":91}}],"line":30},"3":{"loc":{"start":{"line":57,"column":12},"end":{"line":59,"column":13}},"type":"if","locations":[{"start":{"line":57,"column":12},"end":{"line":59,"column":13}},{"start":{},"end":{}}],"line":57},"4":{"loc":{"start":{"line":63,"column":12},"end":{"line":65,"column":13}},"type":"if","locations":[{"start":{"line":63,"column":12},"end":{"line":65,"column":13}},{"start":{},"end":{}}],"line":63}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":87,"6":87,"7":27,"8":27,"9":27,"10":27,"11":27,"12":43,"13":43,"14":43,"15":43,"16":43,"17":44,"18":44,"19":44,"20":43,"21":3,"22":5,"23":1,"24":2,"25":2,"26":2,"27":1,"28":15,"29":15,"30":125,"31":125,"32":125,"33":126,"34":126,"35":125,"36":1,"37":1},"f":{"0":87,"1":27,"2":27,"3":43,"4":3,"5":15,"6":15,"7":125},"b":{"0":[27,0],"1":[27,23],"2":[27,0],"3":[1,4],"4":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervals.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/RoundingIntervals.ts"],"names":[],"mappings":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { toBigInt } from '../util';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * RoundingIntervals defines rounding intervals for numeric outcome contracts.\n * Updated to match dlcspecs format (no longer uses TLV).\n */\nexport class RoundingIntervals implements IDlcMessage {\n  public static type = MessageType.RoundingIntervals;\n\n  /**\n   * Creates a RoundingIntervals from JSON data\n   * @param json JSON object representing rounding intervals\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): RoundingIntervals {\n    const instance = new RoundingIntervals();\n\n    const intervals = json.intervals || [];\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    instance.intervals = intervals.map((interval: any) => ({\n      beginInterval: toBigInt(\n        interval.beginInterval || interval.begin_interval,\n      ),\n      roundingMod: toBigInt(interval.roundingMod || interval.rounding_mod),\n    }));\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a rounding_intervals message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): RoundingIntervals {\n    const instance = new RoundingIntervals();\n    const reader = new BufferReader(buf);\n\n    const numRoundingIntervals = Number(reader.readBigSize());\n\n    for (let i = 0; i < numRoundingIntervals; i++) {\n      const beginInterval = reader.readUInt64BE();\n      const roundingMod = reader.readUInt64BE();\n\n      instance.intervals.push({ beginInterval, roundingMod });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for rounding_intervals message. rounding_intervals = 42788\n   */\n  public type = RoundingIntervals.type;\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 to JSON\n   */\n  public toJSON(): IRoundingIntervalsJSON {\n    return {\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 message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    writer.writeBigSize(this.intervals.length);\n\n    for (const interval of this.intervals) {\n      writer.writeUInt64BE(interval.beginInterval);\n      writer.writeUInt64BE(interval.roundingMod);\n    }\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 IRoundingIntervalsJSON {\n  type?: number; // Optional for rust-dlc compatibility\n  intervals: IIntervalJSON[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e892791932570c598be2907f1994f8b0e5463f40","contentHash":"3858dd49182c933900716c306c8a51ba76b85be7379338474fef96a61a482451"},"/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":140}},"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":21},"end":{"line":7,"column":44}},"6":{"start":{"line":8,"column":21},"end":{"line":8,"column":44}},"7":{"start":{"line":11,"column":23},"end":{"line":11,"column":52}},"8":{"start":{"line":12,"column":23},"end":{"line":12,"column":51}},"9":{"start":{"line":13,"column":8},"end":{"line":20,"column":9}},"10":{"start":{"line":15,"column":16},"end":{"line":15,"column":59}},"11":{"start":{"line":17,"column":16},"end":{"line":17,"column":61}},"12":{"start":{"line":19,"column":16},"end":{"line":19,"column":104}},"13":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"14":{"start":{"line":29,"column":12},"end":{"line":29,"column":56}},"15":{"start":{"line":32,"column":8},"end":{"line":40,"column":9}},"16":{"start":{"line":33,"column":12},"end":{"line":33,"column":101}},"17":{"start":{"line":35,"column":13},"end":{"line":40,"column":9}},"18":{"start":{"line":36,"column":12},"end":{"line":36,"column":107}},"19":{"start":{"line":39,"column":12},"end":{"line":39,"column":104}},"20":{"start":{"line":44,"column":8},"end":{"line":44,"column":36}},"21":{"start":{"line":47,"column":0},"end":{"line":47,"column":36}},"22":{"start":{"line":55,"column":8},"end":{"line":55,"column":28}},"23":{"start":{"line":59,"column":8},"end":{"line":59,"column":65}},"24":{"start":{"line":63,"column":8},"end":{"line":63,"column":70}},"25":{"start":{"line":71,"column":25},"end":{"line":71,"column":49}},"26":{"start":{"line":72,"column":8},"end":{"line":72,"column":94}},"27":{"start":{"line":74,"column":33},"end":{"line":74,"column":80}},"28":{"start":{"line":76,"column":8},"end":{"line":77,"column":50}},"29":{"start":{"line":79,"column":8},"end":{"line":79,"column":124}},"30":{"start":{"line":80,"column":8},"end":{"line":80,"column":24}},"31":{"start":{"line":87,"column":25},"end":{"line":87,"column":49}},"32":{"start":{"line":88,"column":23},"end":{"line":88,"column":52}},"33":{"start":{"line":89,"column":8},"end":{"line":89,"column":29}},"34":{"start":{"line":90,"column":8},"end":{"line":90,"column":57}},"35":{"start":{"line":92,"column":8},"end":{"line":92,"column":144}},"36":{"start":{"line":94,"column":27},"end":{"line":94,"column":73}},"37":{"start":{"line":95,"column":8},"end":{"line":95,"column":38}},"38":{"start":{"line":97,"column":27},"end":{"line":97,"column":55}},"39":{"start":{"line":98,"column":8},"end":{"line":108,"column":9}},"40":{"start":{"line":100,"column":12},"end":{"line":100,"column":134}},"41":{"start":{"line":102,"column":13},"end":{"line":108,"column":9}},"42":{"start":{"line":104,"column":12},"end":{"line":104,"column":133}},"43":{"start":{"line":107,"column":12},"end":{"line":107,"column":71}},"44":{"start":{"line":109,"column":8},"end":{"line":109,"column":24}},"45":{"start":{"line":113,"column":8},"end":{"line":113,"column":47}},"46":{"start":{"line":120,"column":8},"end":{"line":122,"column":9}},"47":{"start":{"line":121,"column":12},"end":{"line":121,"column":70}},"48":{"start":{"line":123,"column":8},"end":{"line":123,"column":35}},"49":{"start":{"line":132,"column":8},"end":{"line":140,"column":10}},"50":{"start":{"line":146,"column":23},"end":{"line":146,"column":49}},"51":{"start":{"line":147,"column":8},"end":{"line":147,"column":51}},"52":{"start":{"line":148,"column":8},"end":{"line":148,"column":51}},"53":{"start":{"line":149,"column":8},"end":{"line":149,"column":63}},"54":{"start":{"line":151,"column":8},"end":{"line":158,"column":9}},"55":{"start":{"line":152,"column":12},"end":{"line":152,"column":35}},"56":{"start":{"line":153,"column":12},"end":{"line":153,"column":63}},"57":{"start":{"line":156,"column":12},"end":{"line":156,"column":35}},"58":{"start":{"line":157,"column":12},"end":{"line":157,"column":63}},"59":{"start":{"line":159,"column":8},"end":{"line":159,"column":33}},"60":{"start":{"line":162,"column":0},"end":{"line":162,"column":48}},"61":{"start":{"line":163,"column":0},"end":{"line":163,"column":76}},"62":{"start":{"line":164,"column":0},"end":{"line":164,"column":71}},"63":{"start":{"line":171,"column":8},"end":{"line":171,"column":28}},"64":{"start":{"line":175,"column":8},"end":{"line":175,"column":67}},"65":{"start":{"line":179,"column":8},"end":{"line":179,"column":72}},"66":{"start":{"line":180,"column":8},"end":{"line":180,"column":38}},"67":{"start":{"line":188,"column":25},"end":{"line":188,"column":51}},"68":{"start":{"line":189,"column":8},"end":{"line":189,"column":94}},"69":{"start":{"line":191,"column":34},"end":{"line":191,"column":81}},"70":{"start":{"line":192,"column":8},"end":{"line":198,"column":12}},"71":{"start":{"line":194,"column":31},"end":{"line":198,"column":9}},"72":{"start":{"line":199,"column":8},"end":{"line":199,"column":24}},"73":{"start":{"line":206,"column":25},"end":{"line":206,"column":51}},"74":{"start":{"line":207,"column":23},"end":{"line":207,"column":52}},"75":{"start":{"line":208,"column":8},"end":{"line":208,"column":29}},"76":{"start":{"line":209,"column":8},"end":{"line":209,"column":57}},"77":{"start":{"line":210,"column":34},"end":{"line":210,"column":62}},"78":{"start":{"line":211,"column":8},"end":{"line":235,"column":9}},"79":{"start":{"line":211,"column":21},"end":{"line":211,"column":22}},"80":{"start":{"line":213,"column":39},"end":{"line":213,"column":144}},"81":{"start":{"line":215,"column":31},"end":{"line":215,"column":68}},"82":{"start":{"line":216,"column":12},"end":{"line":216,"column":42}},"83":{"start":{"line":218,"column":31},"end":{"line":218,"column":59}},"84":{"start":{"line":220,"column":12},"end":{"line":230,"column":13}},"85":{"start":{"line":222,"column":16},"end":{"line":222,"column":129}},"86":{"start":{"line":224,"column":17},"end":{"line":230,"column":13}},"87":{"start":{"line":226,"column":16},"end":{"line":226,"column":128}},"88":{"start":{"line":229,"column":16},"end":{"line":229,"column":75}},"89":{"start":{"line":232,"column":37},"end":{"line":232,"column":70}},"90":{"start":{"line":233,"column":12},"end":{"line":233,"column":48}},"91":{"start":{"line":234,"column":12},"end":{"line":234,"column":82}},"92":{"start":{"line":236,"column":8},"end":{"line":236,"column":24}},"93":{"start":{"line":240,"column":8},"end":{"line":240,"column":47}},"94":{"start":{"line":247,"column":8},"end":{"line":249,"column":9}},"95":{"start":{"line":248,"column":12},"end":{"line":248,"column":70}},"96":{"start":{"line":250,"column":8},"end":{"line":252,"column":9}},"97":{"start":{"line":251,"column":12},"end":{"line":251,"column":67}},"98":{"start":{"line":253,"column":8},"end":{"line":262,"column":11}},"99":{"start":{"line":254,"column":12},"end":{"line":261,"column":13}},"100":{"start":{"line":255,"column":16},"end":{"line":255,"column":43}},"101":{"start":{"line":260,"column":16},"end":{"line":260,"column":105}},"102":{"start":{"line":269,"column":8},"end":{"line":277,"column":10}},"103":{"start":{"line":272,"column":71},"end":{"line":275,"column":17}},"104":{"start":{"line":283,"column":23},"end":{"line":283,"column":49}},"105":{"start":{"line":284,"column":8},"end":{"line":284,"column":51}},"106":{"start":{"line":285,"column":8},"end":{"line":285,"column":51}},"107":{"start":{"line":286,"column":8},"end":{"line":286,"column":61}},"108":{"start":{"line":287,"column":8},"end":{"line":298,"column":9}},"109":{"start":{"line":288,"column":12},"end":{"line":288,"column":67}},"110":{"start":{"line":290,"column":12},"end":{"line":297,"column":13}},"111":{"start":{"line":291,"column":16},"end":{"line":291,"column":39}},"112":{"start":{"line":292,"column":16},"end":{"line":292,"column":67}},"113":{"start":{"line":295,"column":16},"end":{"line":295,"column":39}},"114":{"start":{"line":296,"column":16},"end":{"line":296,"column":67}},"115":{"start":{"line":299,"column":8},"end":{"line":299,"column":33}},"116":{"start":{"line":302,"column":0},"end":{"line":302,"column":52}},"117":{"start":{"line":303,"column":0},"end":{"line":303,"column":80}},"118":{"start":{"line":304,"column":0},"end":{"line":304,"column":75}},"119":{"start":{"line":306,"column":0},"end":{"line":306,"column":44}},"120":{"start":{"line":307,"column":0},"end":{"line":307,"column":46}}},"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":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":26},"end":{"line":41,"column":5}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":43,"column":4},"end":{"line":43,"column":5}},"loc":{"start":{"line":43,"column":25},"end":{"line":45,"column":5}},"line":43},"3":{"name":"(anonymous_3)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":18},"end":{"line":64,"column":5}},"line":54},"4":{"name":"(anonymous_4)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":26},"end":{"line":81,"column":5}},"line":70},"5":{"name":"(anonymous_5)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":28},"end":{"line":110,"column":5}},"line":86},"6":{"name":"(anonymous_6)","decl":{"start":{"line":112,"column":4},"end":{"line":112,"column":5}},"loc":{"start":{"line":112,"column":17},"end":{"line":114,"column":5}},"line":112},"7":{"name":"(anonymous_7)","decl":{"start":{"line":119,"column":4},"end":{"line":119,"column":5}},"loc":{"start":{"line":119,"column":15},"end":{"line":126,"column":5}},"line":119},"8":{"name":"(anonymous_8)","decl":{"start":{"line":130,"column":4},"end":{"line":130,"column":5}},"loc":{"start":{"line":130,"column":13},"end":{"line":141,"column":5}},"line":130},"9":{"name":"(anonymous_9)","decl":{"start":{"line":145,"column":4},"end":{"line":145,"column":5}},"loc":{"start":{"line":145,"column":16},"end":{"line":160,"column":5}},"line":145},"10":{"name":"(anonymous_10)","decl":{"start":{"line":170,"column":4},"end":{"line":170,"column":5}},"loc":{"start":{"line":170,"column":18},"end":{"line":181,"column":5}},"line":170},"11":{"name":"(anonymous_11)","decl":{"start":{"line":187,"column":4},"end":{"line":187,"column":5}},"loc":{"start":{"line":187,"column":26},"end":{"line":200,"column":5}},"line":187},"12":{"name":"(anonymous_12)","decl":{"start":{"line":194,"column":8},"end":{"line":194,"column":9}},"loc":{"start":{"line":194,"column":31},"end":{"line":198,"column":9}},"line":194},"13":{"name":"(anonymous_13)","decl":{"start":{"line":205,"column":4},"end":{"line":205,"column":5}},"loc":{"start":{"line":205,"column":28},"end":{"line":237,"column":5}},"line":205},"14":{"name":"(anonymous_14)","decl":{"start":{"line":239,"column":4},"end":{"line":239,"column":5}},"loc":{"start":{"line":239,"column":17},"end":{"line":241,"column":5}},"line":239},"15":{"name":"(anonymous_15)","decl":{"start":{"line":246,"column":4},"end":{"line":246,"column":5}},"loc":{"start":{"line":246,"column":15},"end":{"line":263,"column":5}},"line":246},"16":{"name":"(anonymous_16)","decl":{"start":{"line":253,"column":41},"end":{"line":253,"column":42}},"loc":{"start":{"line":253,"column":58},"end":{"line":262,"column":9}},"line":253},"17":{"name":"(anonymous_17)","decl":{"start":{"line":267,"column":4},"end":{"line":267,"column":5}},"loc":{"start":{"line":267,"column":13},"end":{"line":278,"column":5}},"line":267},"18":{"name":"(anonymous_18)","decl":{"start":{"line":272,"column":60},"end":{"line":272,"column":61}},"loc":{"start":{"line":272,"column":71},"end":{"line":275,"column":17}},"line":272},"19":{"name":"(anonymous_19)","decl":{"start":{"line":282,"column":4},"end":{"line":282,"column":5}},"loc":{"start":{"line":282,"column":16},"end":{"line":300,"column":5}},"line":282}},"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":59}},{"start":{"line":16,"column":12},"end":{"line":17,"column":61}},{"start":{"line":18,"column":12},"end":{"line":19,"column":104}}],"line":13},"1":{"loc":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},{"start":{},"end":{}}],"line":28},"2":{"loc":{"start":{"line":32,"column":8},"end":{"line":40,"column":9}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":40,"column":9}},{"start":{"line":35,"column":13},"end":{"line":40,"column":9}}],"line":32},"3":{"loc":{"start":{"line":32,"column":12},"end":{"line":32,"column":64}},"type":"binary-expr","locations":[{"start":{"line":32,"column":12},"end":{"line":32,"column":35}},{"start":{"line":32,"column":39},"end":{"line":32,"column":64}}],"line":32},"4":{"loc":{"start":{"line":33,"column":47},"end":{"line":33,"column":99}},"type":"binary-expr","locations":[{"start":{"line":33,"column":47},"end":{"line":33,"column":70}},{"start":{"line":33,"column":74},"end":{"line":33,"column":99}}],"line":33},"5":{"loc":{"start":{"line":35,"column":13},"end":{"line":40,"column":9}},"type":"if","locations":[{"start":{"line":35,"column":13},"end":{"line":40,"column":9}},{"start":{"line":38,"column":13},"end":{"line":40,"column":9}}],"line":35},"6":{"loc":{"start":{"line":35,"column":17},"end":{"line":35,"column":73}},"type":"binary-expr","locations":[{"start":{"line":35,"column":17},"end":{"line":35,"column":42}},{"start":{"line":35,"column":46},"end":{"line":35,"column":73}}],"line":35},"7":{"loc":{"start":{"line":36,"column":49},"end":{"line":36,"column":105}},"type":"binary-expr","locations":[{"start":{"line":36,"column":49},"end":{"line":36,"column":74}},{"start":{"line":36,"column":78},"end":{"line":36,"column":105}}],"line":36},"8":{"loc":{"start":{"line":72,"column":42},"end":{"line":72,"column":92}},"type":"binary-expr","locations":[{"start":{"line":72,"column":42},"end":{"line":72,"column":62}},{"start":{"line":72,"column":66},"end":{"line":72,"column":87}},{"start":{"line":72,"column":91},"end":{"line":72,"column":92}}],"line":72},"9":{"loc":{"start":{"line":74,"column":33},"end":{"line":74,"column":80}},"type":"binary-expr","locations":[{"start":{"line":74,"column":33},"end":{"line":74,"column":50}},{"start":{"line":74,"column":54},"end":{"line":74,"column":72}},{"start":{"line":74,"column":76},"end":{"line":74,"column":80}}],"line":74},"10":{"loc":{"start":{"line":76,"column":87},"end":{"line":77,"column":48}},"type":"binary-expr","locations":[{"start":{"line":76,"column":87},"end":{"line":76,"column":122}},{"start":{"line":77,"column":12},"end":{"line":77,"column":48}}],"line":76},"11":{"loc":{"start":{"line":79,"column":63},"end":{"line":79,"column":122}},"type":"binary-expr","locations":[{"start":{"line":79,"column":63},"end":{"line":79,"column":90}},{"start":{"line":79,"column":94},"end":{"line":79,"column":122}}],"line":79},"12":{"loc":{"start":{"line":98,"column":8},"end":{"line":108,"column":9}},"type":"if","locations":[{"start":{"line":98,"column":8},"end":{"line":108,"column":9}},{"start":{"line":102,"column":13},"end":{"line":108,"column":9}}],"line":98},"13":{"loc":{"start":{"line":102,"column":13},"end":{"line":108,"column":9}},"type":"if","locations":[{"start":{"line":102,"column":13},"end":{"line":108,"column":9}},{"start":{"line":106,"column":13},"end":{"line":108,"column":9}}],"line":102},"14":{"loc":{"start":{"line":120,"column":8},"end":{"line":122,"column":9}},"type":"if","locations":[{"start":{"line":120,"column":8},"end":{"line":122,"column":9}},{"start":{},"end":{}}],"line":120},"15":{"loc":{"start":{"line":151,"column":8},"end":{"line":158,"column":9}},"type":"if","locations":[{"start":{"line":151,"column":8},"end":{"line":158,"column":9}},{"start":{"line":155,"column":13},"end":{"line":158,"column":9}}],"line":151},"16":{"loc":{"start":{"line":189,"column":42},"end":{"line":189,"column":92}},"type":"binary-expr","locations":[{"start":{"line":189,"column":42},"end":{"line":189,"column":62}},{"start":{"line":189,"column":66},"end":{"line":189,"column":87}},{"start":{"line":189,"column":91},"end":{"line":189,"column":92}}],"line":189},"17":{"loc":{"start":{"line":191,"column":34},"end":{"line":191,"column":81}},"type":"binary-expr","locations":[{"start":{"line":191,"column":34},"end":{"line":191,"column":52}},{"start":{"line":191,"column":56},"end":{"line":191,"column":75}},{"start":{"line":191,"column":79},"end":{"line":191,"column":81}}],"line":191},"18":{"loc":{"start":{"line":195,"column":81},"end":{"line":196,"column":52}},"type":"binary-expr","locations":[{"start":{"line":195,"column":81},"end":{"line":195,"column":116}},{"start":{"line":196,"column":16},"end":{"line":196,"column":52}}],"line":195},"19":{"loc":{"start":{"line":197,"column":57},"end":{"line":197,"column":116}},"type":"binary-expr","locations":[{"start":{"line":197,"column":57},"end":{"line":197,"column":84}},{"start":{"line":197,"column":88},"end":{"line":197,"column":116}}],"line":197},"20":{"loc":{"start":{"line":220,"column":12},"end":{"line":230,"column":13}},"type":"if","locations":[{"start":{"line":220,"column":12},"end":{"line":230,"column":13}},{"start":{"line":224,"column":17},"end":{"line":230,"column":13}}],"line":220},"21":{"loc":{"start":{"line":224,"column":17},"end":{"line":230,"column":13}},"type":"if","locations":[{"start":{"line":224,"column":17},"end":{"line":230,"column":13}},{"start":{"line":228,"column":17},"end":{"line":230,"column":13}}],"line":224},"22":{"loc":{"start":{"line":247,"column":8},"end":{"line":249,"column":9}},"type":"if","locations":[{"start":{"line":247,"column":8},"end":{"line":249,"column":9}},{"start":{},"end":{}}],"line":247},"23":{"loc":{"start":{"line":250,"column":8},"end":{"line":252,"column":9}},"type":"if","locations":[{"start":{"line":250,"column":8},"end":{"line":252,"column":9}},{"start":{},"end":{}}],"line":250},"24":{"loc":{"start":{"line":290,"column":12},"end":{"line":297,"column":13}},"type":"if","locations":[{"start":{"line":290,"column":12},"end":{"line":297,"column":13}},{"start":{"line":294,"column":17},"end":{"line":297,"column":13}}],"line":290}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":55,"8":55,"9":55,"10":43,"11":12,"12":0,"13":33,"14":0,"15":33,"16":25,"17":8,"18":8,"19":0,"20":78,"21":1,"22":117,"23":117,"24":117,"25":25,"26":25,"27":25,"28":25,"29":25,"30":25,"31":43,"32":43,"33":43,"34":43,"35":43,"36":43,"37":43,"38":43,"39":43,"40":21,"41":22,"42":22,"43":0,"44":43,"45":0,"46":9,"47":0,"48":9,"49":18,"50":107,"51":107,"52":107,"53":107,"54":107,"55":55,"56":55,"57":52,"58":52,"59":107,"60":1,"61":1,"62":1,"63":20,"64":20,"65":20,"66":20,"67":8,"68":8,"69":8,"70":8,"71":16,"72":8,"73":12,"74":12,"75":12,"76":12,"77":12,"78":12,"79":12,"80":24,"81":24,"82":24,"83":24,"84":24,"85":0,"86":24,"87":24,"88":0,"89":24,"90":24,"91":24,"92":12,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":4,"103":8,"104":28,"105":28,"106":28,"107":28,"108":28,"109":56,"110":56,"111":0,"112":0,"113":56,"114":56,"115":28,"116":1,"117":1,"118":1,"119":1,"120":1},"f":{"0":55,"1":33,"2":78,"3":117,"4":25,"5":43,"6":0,"7":9,"8":18,"9":107,"10":20,"11":8,"12":16,"13":12,"14":0,"15":0,"16":0,"17":4,"18":8,"19":28},"b":{"0":[43,12,0],"1":[0,33],"2":[25,8],"3":[33,8],"4":[25,0],"5":[8,0],"6":[8,0],"7":[8,0],"8":[25,0,0],"9":[25,0,0],"10":[25,0],"11":[25,0],"12":[21,22],"13":[22,0],"14":[0,9],"15":[55,52],"16":[8,0,0],"17":[8,0,0],"18":[16,0],"19":[16,0],"20":[0,24],"21":[24,0],"22":[0,0],"23":[0,0],"24":[0,56]},"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 { ContractInfoType, MessageType } from '../MessageType';\nimport {\n  ContractDescriptor,\n  ContractDescriptorV0JSON,\n  ContractDescriptorV1JSON,\n} from './ContractDescriptor';\nimport { DlcMessage, IDlcMessage } from './DlcMessage';\nimport {\n  MultiOracleInfo,\n  MultiOracleInfoJSON,\n  OracleInfo,\n  SingleOracleInfo,\n  SingleOracleInfoJSON,\n} from './OracleInfo';\n\nexport abstract class ContractInfo extends DlcMessage {\n  public static deserialize(\n    buf: Buffer,\n  ): SingleContractInfo | DisjointContractInfo {\n    const reader = new BufferReader(buf);\n    const typeId = Number(reader.readBigSize());\n\n    switch (typeId) {\n      case ContractInfoType.Single:\n        return SingleContractInfo.deserialize(buf);\n      case ContractInfoType.Disjoint:\n        return DisjointContractInfo.deserialize(buf);\n      default:\n        throw new Error(\n          `Contract info type must be Single (0) or Disjoint (1), got ${typeId}`,\n        );\n    }\n  }\n\n  /**\n   * Creates a ContractInfo from JSON data (e.g., from test vectors)\n   * @param json JSON object representing contract info\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): ContractInfo {\n    if (!json) {\n      throw new Error('contractInfo is required');\n    }\n\n    // Check if it's a single contract info or disjoint contract info\n    if (json.singleContractInfo || json.single_contract_info) {\n      return SingleContractInfo.fromJSON(\n        json.singleContractInfo || json.single_contract_info,\n      );\n    } else if (json.disjointContractInfo || json.disjoint_contract_info) {\n      return DisjointContractInfo.fromJSON(\n        json.disjointContractInfo || json.disjoint_contract_info,\n      );\n    } else {\n      throw new Error(\n        'contractInfo must have either singleContractInfo or disjointContractInfo',\n      );\n    }\n  }\n\n  public abstract contractInfoType: ContractInfoType;\n  public abstract totalCollateral: bigint;\n  public abstract validate(): void;\n  public abstract toJSON(): ISingleContractInfoJSON | IDisjointContractInfoJSON;\n  public abstract serialize(): Buffer;\n\n  // Method to get total collateral (for compatibility)\n  public getTotalCollateral(): bigint {\n    return this.totalCollateral;\n  }\n}\n\n/**\n * SingleContractInfo contains information about a contract's outcomes,\n * their corresponding payouts, and the oracles to be used.\n * This corresponds to the previous ContractInfoV0.\n */\nexport class SingleContractInfo extends ContractInfo implements IDlcMessage {\n  public static contractInfoType = ContractInfoType.Single;\n  public static type = MessageType.SingleContractInfo;\n\n  /**\n   * Creates a SingleContractInfo from JSON data\n   * @param json JSON object representing single contract info\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): SingleContractInfo {\n    const instance = new SingleContractInfo();\n\n    instance.totalCollateral = BigInt(\n      json.totalCollateral || json.total_collateral || 0,\n    );\n\n    // Handle nested contractInfo structure (test vectors have double nesting)\n    const contractInfoData = json.contractInfo || json.contract_info || json;\n\n    // Parse contract descriptor using proper fromJSON method\n    instance.contractDescriptor = ContractDescriptor.fromJSON(\n      contractInfoData.contractDescriptor ||\n        contractInfoData.contract_descriptor,\n    );\n\n    // Parse oracle info using proper fromJSON method\n    instance.oracleInfo = OracleInfo.fromJSON(\n      contractInfoData.oracleInfo || contractInfoData.oracle_info,\n    );\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a single_contract_info message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): SingleContractInfo {\n    const instance = new SingleContractInfo();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type (0)\n    instance.totalCollateral = reader.readUInt64BE();\n\n    // Read contract descriptor as sibling type (starts with its own type prefix)\n    instance.contractDescriptor = ContractDescriptor.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n    // Skip past the contract descriptor we just read\n    const descLength = instance.contractDescriptor.serialize().length;\n    reader.position += descLength;\n\n    // Read oracle info with rust-dlc format - discriminator + body\n    const oracleType = Number(reader.readBigSize());\n    if (oracleType === 0) {\n      // Single oracle\n      instance.oracleInfo = SingleOracleInfo.deserializeBody(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n    } else if (oracleType === 1) {\n      // Multi oracle\n      instance.oracleInfo = MultiOracleInfo.deserializeBody(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n    } else {\n      throw new Error(`Unknown oracle info type: ${oracleType}`);\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for single_contract_info message - using MessageType for IDlcMessage compatibility\n   */\n  public type = MessageType.SingleContractInfo;\n\n  /**\n   * The contract info type for new format\n   */\n  public contractInfoType = ContractInfoType.Single;\n\n  public totalCollateral: bigint;\n\n  public contractDescriptor: ContractDescriptor;\n\n  public oracleInfo: OracleInfo;\n\n  // Compatibility property\n  public get length(): bigint {\n    return BigInt(this.serialize().length);\n  }\n\n  /**\n   * Validates correctness of all fields in the message\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    if (this.totalCollateral <= 0) {\n      throw new Error('totalCollateral must be greater than 0');\n    }\n\n    this.oracleInfo.validate();\n\n    // TODO: Add contract descriptor validation once available\n    // this.contractDescriptor.validate();\n  }\n\n  /**\n   * Converts single_contract_info to JSON\n   */\n  public toJSON(): ISingleContractInfoJSON {\n    // Return enum variant format for Rust compatibility\n    return {\n      singleContractInfo: {\n        totalCollateral: Number(this.totalCollateral),\n        contractInfo: {\n          contractDescriptor: this.contractDescriptor.toJSON(),\n          oracleInfo: this.oracleInfo.toJSON(),\n        },\n      },\n    };\n  }\n\n  /**\n   * Serializes the single_contract_info message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    writer.writeBigSize(this.contractInfoType);\n    writer.writeUInt64BE(this.totalCollateral);\n    writer.writeBytes(this.contractDescriptor.serialize());\n\n    // Use serializeBody() to match rust-dlc behavior - don't add extra TLV wrapper\n    if (this.oracleInfo instanceof SingleOracleInfo) {\n      writer.writeBigSize(0); // Single oracle discriminator\n      writer.writeBytes(this.oracleInfo.serializeBody());\n    } else {\n      writer.writeBigSize(1); // Multi oracle discriminator\n      writer.writeBytes(this.oracleInfo.serializeBody());\n    }\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * DisjointContractInfo contains information about multiple disjoint contract events.\n * This corresponds to the previous ContractInfoV1.\n */\nexport class DisjointContractInfo extends ContractInfo implements IDlcMessage {\n  public static contractInfoType = ContractInfoType.Disjoint;\n  public static type = MessageType.DisjointContractInfo;\n\n  /**\n   * Creates a DisjointContractInfo from JSON data\n   * @param json JSON object representing disjoint contract info\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DisjointContractInfo {\n    const instance = new DisjointContractInfo();\n\n    instance.totalCollateral = BigInt(\n      json.totalCollateral || json.total_collateral || 0,\n    );\n\n    // Parse contract infos array\n    const contractInfosData = json.contractInfos || json.contract_infos || [];\n    instance.contractOraclePairs = contractInfosData.map(\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      (contractInfoData: any) => ({\n        contractDescriptor: ContractDescriptor.fromJSON(\n          contractInfoData.contractDescriptor ||\n            contractInfoData.contract_descriptor,\n        ),\n        oracleInfo: OracleInfo.fromJSON(\n          contractInfoData.oracleInfo || contractInfoData.oracle_info,\n        ),\n      }),\n    );\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a disjoint_contract_info message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DisjointContractInfo {\n    const instance = new DisjointContractInfo();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type (1)\n    instance.totalCollateral = reader.readUInt64BE();\n\n    const numDisjointEvents = Number(reader.readBigSize());\n\n    for (let i = 0; i < numDisjointEvents; i++) {\n      // Read contract descriptor as sibling type (starts with its own type prefix)\n      const contractDescriptor = ContractDescriptor.deserialize(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n      // Skip past the contract descriptor we just read\n      const descLength = contractDescriptor.serialize().length;\n      reader.position += descLength;\n\n      // Read oracle info with rust-dlc format - discriminator + body (same as SingleContractInfo)\n      const oracleType = Number(reader.readBigSize());\n      let oracleInfo: OracleInfo;\n\n      if (oracleType === 0) {\n        // Single oracle\n        oracleInfo = SingleOracleInfo.deserializeBody(\n          Buffer.from(reader.buffer.subarray(reader.position)),\n        );\n      } else if (oracleType === 1) {\n        // Multi oracle\n        oracleInfo = MultiOracleInfo.deserializeBody(\n          Buffer.from(reader.buffer.subarray(reader.position)),\n        );\n      } else {\n        throw new Error(`Unknown oracle info type: ${oracleType}`);\n      }\n\n      // Skip past the oracle info we just read\n      const oracleInfoLength = oracleInfo.serializeBody().length;\n      reader.position += oracleInfoLength;\n\n      instance.contractOraclePairs.push({ contractDescriptor, oracleInfo });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for disjoint_contract_info message - using MessageType for IDlcMessage compatibility\n   */\n  public type = MessageType.DisjointContractInfo;\n\n  /**\n   * The contract info type for new format\n   */\n  public contractInfoType = ContractInfoType.Disjoint;\n\n  public totalCollateral: bigint;\n\n  public contractOraclePairs: IContractOraclePair[] = [];\n\n  // Compatibility property\n  public get length(): bigint {\n    return BigInt(this.serialize().length);\n  }\n\n  /**\n   * Validates correctness of all fields in the message\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    if (this.totalCollateral <= 0) {\n      throw new Error('totalCollateral must be greater than 0');\n    }\n\n    if (this.contractOraclePairs.length === 0) {\n      throw new Error('contractOraclePairs cannot be empty');\n    }\n\n    this.contractOraclePairs.forEach((pair, index) => {\n      try {\n        pair.oracleInfo.validate();\n        // TODO: Add contract descriptor validation once available\n        // pair.contractDescriptor.validate();\n      } catch (error) {\n        throw new Error(\n          `Validation failed for contract oracle pair ${index}: ${error.message}`,\n        );\n      }\n    });\n  }\n\n  /**\n   * Converts disjoint_contract_info to JSON\n   */\n  public toJSON(): IDisjointContractInfoJSON {\n    // Return enum variant format for Rust compatibility\n    return {\n      disjointContractInfo: {\n        totalCollateral: Number(this.totalCollateral),\n        contractInfos: this.contractOraclePairs.map((pair) => ({\n          contractDescriptor: pair.contractDescriptor.toJSON(),\n          oracleInfo: pair.oracleInfo.toJSON(),\n        })),\n      },\n    };\n  }\n\n  /**\n   * Serializes the disjoint_contract_info message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n\n    writer.writeBigSize(this.contractInfoType);\n    writer.writeUInt64BE(this.totalCollateral);\n    writer.writeBigSize(this.contractOraclePairs.length);\n\n    for (const pair of this.contractOraclePairs) {\n      writer.writeBytes(pair.contractDescriptor.serialize());\n\n      // Write oracle info with discriminator like SingleContractInfo does\n      if (pair.oracleInfo instanceof SingleOracleInfo) {\n        writer.writeBigSize(0); // Single oracle discriminator\n        writer.writeBytes(pair.oracleInfo.serializeBody());\n      } else {\n        writer.writeBigSize(1); // Multi oracle discriminator\n        writer.writeBytes(pair.oracleInfo.serializeBody());\n      }\n    }\n\n    return writer.toBuffer();\n  }\n}\n\n// Legacy support - keeping old class names as aliases (both value and type exports)\nexport const ContractInfoV0 = SingleContractInfo;\nexport const ContractInfoV1 = DisjointContractInfo;\nexport type ContractInfoV0 = SingleContractInfo;\nexport type ContractInfoV1 = DisjointContractInfo;\n\ninterface IContractOraclePair {\n  contractDescriptor: ContractDescriptor;\n  oracleInfo: OracleInfo;\n}\n\ninterface IContractOraclePairJSON {\n  contractDescriptor: ContractDescriptorV0JSON | ContractDescriptorV1JSON;\n  oracleInfo: SingleOracleInfoJSON | MultiOracleInfoJSON;\n}\n\n// Rust-dlc enum variant format for SingleContractInfo\nexport interface ISingleContractInfoJSON {\n  singleContractInfo: {\n    totalCollateral: number;\n    contractInfo: {\n      contractDescriptor: ContractDescriptorV0JSON | ContractDescriptorV1JSON;\n      oracleInfo: SingleOracleInfoJSON | MultiOracleInfoJSON;\n    };\n  };\n}\n\n// Rust-dlc enum variant format for DisjointContractInfo\nexport interface IDisjointContractInfoJSON {\n  disjointContractInfo: {\n    totalCollateral: number;\n    contractInfos: IContractOraclePairJSON[];\n  };\n}\n\n// Legacy type aliases for backward compatibility (same as the new interfaces)\nexport type IContractInfoV0JSON = ISingleContractInfoJSON;\nexport type IContractInfoV1JSON = IDisjointContractInfoJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e215ab6cca02e85266dca7f7d22c0d2ab03bab9b","contentHash":"22d6fc02e8b869f8bab8811b1b336dd75eaa80882fbe18790a83ba23a0b31a6d"},"/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":29},"end":{"line":13,"column":60}},"12":{"start":{"line":14,"column":28},"end":{"line":14,"column":58}},"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":42}},"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":81}},"20":{"start":{"line":27,"column":16},"end":{"line":27,"column":74}},"21":{"start":{"line":29,"column":16},"end":{"line":29,"column":76}},"22":{"start":{"line":31,"column":16},"end":{"line":31,"column":64}},"23":{"start":{"line":33,"column":16},"end":{"line":33,"column":66}},"24":{"start":{"line":35,"column":16},"end":{"line":35,"column":60}},"25":{"start":{"line":37,"column":16},"end":{"line":37,"column":62}},"26":{"start":{"line":39,"column":16},"end":{"line":39,"column":58}},"27":{"start":{"line":41,"column":16},"end":{"line":41,"column":60}},"28":{"start":{"line":43,"column":16},"end":{"line":43,"column":78}},"29":{"start":{"line":45,"column":16},"end":{"line":45,"column":80}},"30":{"start":{"line":47,"column":16},"end":{"line":47,"column":90}},"31":{"start":{"line":49,"column":16},"end":{"line":49,"column":73}},"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":81}},{"start":{"line":26,"column":12},"end":{"line":27,"column":74}},{"start":{"line":28,"column":12},"end":{"line":29,"column":76}},{"start":{"line":30,"column":12},"end":{"line":31,"column":64}},{"start":{"line":32,"column":12},"end":{"line":33,"column":66}},{"start":{"line":34,"column":12},"end":{"line":35,"column":60}},{"start":{"line":36,"column":12},"end":{"line":37,"column":62}},{"start":{"line":38,"column":12},"end":{"line":39,"column":58}},{"start":{"line":40,"column":12},"end":{"line":41,"column":60}},{"start":{"line":42,"column":12},"end":{"line":43,"column":78}},{"start":{"line":44,"column":12},"end":{"line":45,"column":80}},{"start":{"line":46,"column":12},"end":{"line":47,"column":90}},{"start":{"line":48,"column":12},"end":{"line":49,"column":73}}],"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,iDAKwB;AACxB,2CAAwC;AACxC,yCAAsC;AACtC,yCAAsC;AACtC,uCAAoC;AACpC,uEAAoE;AACpE,6DAA0D;AAC1D,2DAAwD;AACxD,+CAA4C;AAC5C,6CAA0C;AAU1C,MAAsB,UAAU;IACvB,MAAM,CAAC,WAAW,CACvB,GAAW;QAeX,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAEnC,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,wCAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,yBAAW,CAAC,kBAAkB;gBACjC,OAAO,iCAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7C,KAAK,yBAAW,CAAC,oBAAoB;gBACnC,OAAO,mCAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,yBAAW,CAAC,UAAU;gBACzB,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,KAAK,yBAAW,CAAC,WAAW;gBAC1B,OAAO,yBAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,yBAAW,CAAC,QAAQ;gBACvB,OAAO,mBAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,yBAAW,CAAC,SAAS;gBACxB,OAAO,qBAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,KAAK,yBAAW,CAAC,OAAO;gBACtB,OAAO,iBAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,KAAK,yBAAW,CAAC,QAAQ;gBACvB,OAAO,mBAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,yBAAW,CAAC,iBAAiB;gBAChC,OAAO,qCAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5C,KAAK,yBAAW,CAAC,kBAAkB;gBACjC,OAAO,uCAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7C,KAAK,yBAAW,CAAC,gBAAgB;gBAC/B,OAAO,iDAAuB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD;gBACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,gBAAgB,CAAC,CAAC;SAC5D;IACH,CAAC;CAKF;AAvDD,gCAuDC","sourcesContent":["import { BufferReader } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport {\n  EnumeratedDescriptor,\n  NumericalDescriptor,\n} from './ContractDescriptor';\nimport {\n  DisjointContractInfo,\n  IContractInfoV0JSON,\n  IContractInfoV1JSON,\n  SingleContractInfo,\n} from './ContractInfo';\nimport { DlcAccept } from './DlcAccept';\nimport { DlcClose } from './DlcClose';\nimport { DlcOffer } from './DlcOffer';\nimport { DlcSign } from './DlcSign';\nimport { NodeAnnouncementMessage } from './NodeAnnouncementMessage';\nimport { OracleAnnouncement } from './OracleAnnouncement';\nimport { OracleAttestation } from './OracleAttestation';\nimport { OrderAccept } from './OrderAccept';\nimport { OrderOffer } from './OrderOffer';\n\nexport interface IDlcMessage {\n  type: number;\n  serialize(): Buffer;\n}\n\nexport type ContractInfoV0JSON = IContractInfoV0JSON;\nexport type ContractInfoV1JSON = IContractInfoV1JSON;\n\nexport abstract class DlcMessage {\n  public static deserialize(\n    buf: Buffer,\n  ):\n    | EnumeratedDescriptor\n    | NumericalDescriptor\n    | SingleContractInfo\n    | DisjointContractInfo\n    | OrderOffer\n    | OrderAccept\n    | DlcOffer\n    | DlcAccept\n    | DlcSign\n    | DlcClose\n    | OracleAttestation\n    | OracleAnnouncement\n    | NodeAnnouncementMessage {\n    const reader = new BufferReader(buf);\n    const type = reader.readUInt16BE();\n\n    switch (type) {\n      case MessageType.ContractDescriptorV0:\n        return EnumeratedDescriptor.deserialize(buf);\n      case MessageType.ContractDescriptorV1:\n        return NumericalDescriptor.deserialize(buf);\n      case MessageType.SingleContractInfo:\n        return SingleContractInfo.deserialize(buf);\n      case MessageType.DisjointContractInfo:\n        return DisjointContractInfo.deserialize(buf);\n      case MessageType.OrderOffer:\n        return OrderOffer.deserialize(buf);\n      case MessageType.OrderAccept:\n        return OrderAccept.deserialize(buf);\n      case MessageType.DlcOffer:\n        return DlcOffer.deserialize(buf);\n      case MessageType.DlcAccept:\n        return DlcAccept.deserialize(buf);\n      case MessageType.DlcSign:\n        return DlcSign.deserialize(buf);\n      case MessageType.DlcClose:\n        return DlcClose.deserialize(buf);\n      case MessageType.OracleAttestation:\n        return OracleAttestation.deserialize(buf);\n      case MessageType.OracleAnnouncement:\n        return OracleAnnouncement.deserialize(buf);\n      case MessageType.NodeAnnouncement:\n        return NodeAnnouncementMessage.deserialize(buf);\n      default:\n        throw new Error(`DlcMessage type ${type} not supported`);\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract serialize(): Buffer;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0cac32a414f755368af2f5b5d4020f9bac513231","contentHash":"5231c0161d8f2f481cf7ff3f63f21c9016d36c8af7e23ac14dad45501370e530"},"/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":87}},"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":15},"end":{"line":15,"column":33}},"13":{"start":{"line":16,"column":28},"end":{"line":16,"column":58}},"14":{"start":{"line":17,"column":31},"end":{"line":17,"column":64}},"15":{"start":{"line":18,"column":23},"end":{"line":18,"column":48}},"16":{"start":{"line":19,"column":28},"end":{"line":19,"column":58}},"17":{"start":{"line":32,"column":8},"end":{"line":32,"column":35}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":62}},"19":{"start":{"line":35,"column":8},"end":{"line":35,"column":32}},"20":{"start":{"line":40,"column":8},"end":{"line":40,"column":34}},"21":{"start":{"line":49,"column":25},"end":{"line":49,"column":40}},"22":{"start":{"line":51,"column":34},"end":{"line":65,"column":9}},"23":{"start":{"line":52,"column":30},"end":{"line":52,"column":56}},"24":{"start":{"line":54,"column":12},"end":{"line":56,"column":13}},"25":{"start":{"line":55,"column":16},"end":{"line":55,"column":33}},"26":{"start":{"line":58,"column":12},"end":{"line":64,"column":13}},"27":{"start":{"line":59,"column":31},"end":{"line":59,"column":77}},"28":{"start":{"line":60,"column":16},"end":{"line":60,"column":43}},"29":{"start":{"line":63,"column":16},"end":{"line":63,"column":72}},"30":{"start":{"line":67,"column":8},"end":{"line":68,"column":92}},"31":{"start":{"line":69,"column":8},"end":{"line":71,"column":47}},"32":{"start":{"line":72,"column":8},"end":{"line":74,"column":36}},"33":{"start":{"line":76,"column":8},"end":{"line":76,"column":117}},"34":{"start":{"line":77,"column":8},"end":{"line":77,"column":101}},"35":{"start":{"line":78,"column":8},"end":{"line":78,"column":101}},"36":{"start":{"line":79,"column":8},"end":{"line":79,"column":101}},"37":{"start":{"line":80,"column":8},"end":{"line":80,"column":101}},"38":{"start":{"line":82,"column":8},"end":{"line":82,"column":119}},"39":{"start":{"line":84,"column":8},"end":{"line":84,"column":142}},"40":{"start":{"line":86,"column":29},"end":{"line":86,"column":74}},"41":{"start":{"line":87,"column":8},"end":{"line":87,"column":67}},"42":{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},"43":{"start":{"line":90,"column":12},"end":{"line":90,"column":133}},"44":{"start":{"line":92,"column":8},"end":{"line":92,"column":24}},"45":{"start":{"line":101,"column":8},"end":{"line":104,"column":11}},"46":{"start":{"line":103,"column":12},"end":{"line":103,"column":67}},"47":{"start":{"line":113,"column":25},"end":{"line":113,"column":74}},"48":{"start":{"line":114,"column":8},"end":{"line":128,"column":9}},"49":{"start":{"line":116,"column":30},"end":{"line":117,"column":52}},"50":{"start":{"line":119,"column":12},"end":{"line":127,"column":15}},"51":{"start":{"line":122,"column":34},"end":{"line":122,"column":67}},"52":{"start":{"line":123,"column":16},"end":{"line":126,"column":18}},"53":{"start":{"line":129,"column":8},"end":{"line":129,"column":24}},"54":{"start":{"line":138,"column":8},"end":{"line":138,"column":79}},"55":{"start":{"line":145,"column":25},"end":{"line":145,"column":40}},"56":{"start":{"line":146,"column":23},"end":{"line":146,"column":52}},"57":{"start":{"line":147,"column":8},"end":{"line":147,"column":30}},"58":{"start":{"line":149,"column":8},"end":{"line":149,"column":57}},"59":{"start":{"line":150,"column":8},"end":{"line":150,"column":60}},"60":{"start":{"line":151,"column":8},"end":{"line":151,"column":58}},"61":{"start":{"line":152,"column":8},"end":{"line":152,"column":54}},"62":{"start":{"line":153,"column":29},"end":{"line":153,"column":50}},"63":{"start":{"line":154,"column":8},"end":{"line":154,"column":60}},"64":{"start":{"line":155,"column":8},"end":{"line":155,"column":56}},"65":{"start":{"line":157,"column":33},"end":{"line":157,"column":61}},"66":{"start":{"line":158,"column":8},"end":{"line":165,"column":9}},"67":{"start":{"line":158,"column":21},"end":{"line":158,"column":22}},"68":{"start":{"line":160,"column":33},"end":{"line":160,"column":130}},"69":{"start":{"line":161,"column":12},"end":{"line":161,"column":54}},"70":{"start":{"line":163,"column":39},"end":{"line":163,"column":74}},"71":{"start":{"line":164,"column":12},"end":{"line":164,"column":50}},"72":{"start":{"line":166,"column":29},"end":{"line":166,"column":50}},"73":{"start":{"line":167,"column":8},"end":{"line":167,"column":60}},"74":{"start":{"line":168,"column":8},"end":{"line":168,"column":56}},"75":{"start":{"line":169,"column":8},"end":{"line":178,"column":9}},"76":{"start":{"line":171,"column":12},"end":{"line":171,"column":154}},"77":{"start":{"line":173,"column":30},"end":{"line":173,"column":78}},"78":{"start":{"line":174,"column":12},"end":{"line":174,"column":41}},"79":{"start":{"line":177,"column":12},"end":{"line":177,"column":94}},"80":{"start":{"line":179,"column":8},"end":{"line":179,"column":56}},"81":{"start":{"line":183,"column":31},"end":{"line":183,"column":69}},"82":{"start":{"line":184,"column":8},"end":{"line":222,"column":9}},"83":{"start":{"line":187,"column":12},"end":{"line":221,"column":13}},"84":{"start":{"line":188,"column":16},"end":{"line":220,"column":17}},"85":{"start":{"line":189,"column":49},"end":{"line":189,"column":67}},"86":{"start":{"line":190,"column":20},"end":{"line":192,"column":21}},"87":{"start":{"line":191,"column":24},"end":{"line":191,"column":133}},"88":{"start":{"line":195,"column":20},"end":{"line":214,"column":21}},"89":{"start":{"line":196,"column":36},"end":{"line":196,"column":64}},"90":{"start":{"line":197,"column":42},"end":{"line":197,"column":71}},"91":{"start":{"line":198,"column":41},"end":{"line":198,"column":88}},"92":{"start":{"line":199,"column":24},"end":{"line":213,"column":25}},"93":{"start":{"line":201,"column":32},"end":{"line":203,"column":33}},"94":{"start":{"line":202,"column":36},"end":{"line":202,"column":69}},"95":{"start":{"line":204,"column":32},"end":{"line":204,"column":121}},"96":{"start":{"line":205,"column":32},"end":{"line":205,"column":38}},"97":{"start":{"line":208,"column":32},"end":{"line":210,"column":33}},"98":{"start":{"line":209,"column":36},"end":{"line":209,"column":62}},"99":{"start":{"line":211,"column":32},"end":{"line":211,"column":93}},"100":{"start":{"line":212,"column":32},"end":{"line":212,"column":38}},"101":{"start":{"line":225,"column":8},"end":{"line":227,"column":9}},"102":{"start":{"line":226,"column":12},"end":{"line":226,"column":41}},"103":{"start":{"line":228,"column":8},"end":{"line":228,"column":24}},"104":{"start":{"line":235,"column":8},"end":{"line":235,"column":33}},"105":{"start":{"line":242,"column":8},"end":{"line":242,"column":33}},"106":{"start":{"line":250,"column":27},"end":{"line":252,"column":21}},"107":{"start":{"line":253,"column":31},"end":{"line":253,"column":92}},"108":{"start":{"line":254,"column":30},"end":{"line":254,"column":95}},"109":{"start":{"line":255,"column":30},"end":{"line":255,"column":95}},"110":{"start":{"line":256,"column":8},"end":{"line":260,"column":10}},"111":{"start":{"line":271,"column":8},"end":{"line":273,"column":9}},"112":{"start":{"line":272,"column":12},"end":{"line":272,"column":130}},"113":{"start":{"line":275,"column":8},"end":{"line":277,"column":9}},"114":{"start":{"line":276,"column":12},"end":{"line":276,"column":68}},"115":{"start":{"line":279,"column":8},"end":{"line":284,"column":9}},"116":{"start":{"line":280,"column":12},"end":{"line":280,"column":69}},"117":{"start":{"line":283,"column":12},"end":{"line":283,"column":52}},"118":{"start":{"line":285,"column":8},"end":{"line":290,"column":9}},"119":{"start":{"line":286,"column":12},"end":{"line":286,"column":69}},"120":{"start":{"line":289,"column":12},"end":{"line":289,"column":52}},"121":{"start":{"line":293,"column":8},"end":{"line":300,"column":9}},"122":{"start":{"line":294,"column":12},"end":{"line":296,"column":13}},"123":{"start":{"line":295,"column":16},"end":{"line":295,"column":78}},"124":{"start":{"line":299,"column":12},"end":{"line":299,"column":74}},"125":{"start":{"line":302,"column":31},"end":{"line":302,"column":85}},"126":{"start":{"line":302,"column":65},"end":{"line":302,"column":84}},"127":{"start":{"line":303,"column":8},"end":{"line":305,"column":9}},"128":{"start":{"line":304,"column":12},"end":{"line":304,"column":61}},"129":{"start":{"line":307,"column":8},"end":{"line":307,"column":64}},"130":{"start":{"line":307,"column":46},"end":{"line":307,"column":62}},"131":{"start":{"line":309,"column":30},"end":{"line":312,"column":21}},"132":{"start":{"line":310,"column":26},"end":{"line":310,"column":38}},"133":{"start":{"line":311,"column":12},"end":{"line":311,"column":75}},"134":{"start":{"line":313,"column":8},"end":{"line":325,"column":9}},"135":{"start":{"line":316,"column":12},"end":{"line":318,"column":13}},"136":{"start":{"line":317,"column":16},"end":{"line":317,"column":107}},"137":{"start":{"line":322,"column":12},"end":{"line":324,"column":13}},"138":{"start":{"line":323,"column":16},"end":{"line":323,"column":87}},"139":{"start":{"line":332,"column":35},"end":{"line":332,"column":92}},"140":{"start":{"line":333,"column":8},"end":{"line":346,"column":10}},"141":{"start":{"line":340,"column":61},"end":{"line":340,"column":75}},"142":{"start":{"line":353,"column":23},"end":{"line":353,"column":49}},"143":{"start":{"line":354,"column":8},"end":{"line":354,"column":40}},"144":{"start":{"line":356,"column":8},"end":{"line":356,"column":51}},"145":{"start":{"line":357,"column":8},"end":{"line":357,"column":52}},"146":{"start":{"line":358,"column":8},"end":{"line":358,"column":52}},"147":{"start":{"line":359,"column":8},"end":{"line":359,"column":46}},"148":{"start":{"line":360,"column":8},"end":{"line":360,"column":52}},"149":{"start":{"line":361,"column":8},"end":{"line":361,"column":42}},"150":{"start":{"line":362,"column":8},"end":{"line":362,"column":50}},"151":{"start":{"line":364,"column":8},"end":{"line":364,"column":55}},"152":{"start":{"line":365,"column":8},"end":{"line":368,"column":9}},"153":{"start":{"line":367,"column":12},"end":{"line":367,"column":60}},"154":{"start":{"line":369,"column":8},"end":{"line":369,"column":52}},"155":{"start":{"line":370,"column":8},"end":{"line":370,"column":42}},"156":{"start":{"line":371,"column":8},"end":{"line":371,"column":50}},"157":{"start":{"line":372,"column":8},"end":{"line":372,"column":65}},"158":{"start":{"line":373,"column":8},"end":{"line":373,"column":48}},"159":{"start":{"line":375,"column":8},"end":{"line":381,"column":9}},"160":{"start":{"line":376,"column":12},"end":{"line":376,"column":36}},"161":{"start":{"line":377,"column":12},"end":{"line":377,"column":66}},"162":{"start":{"line":380,"column":12},"end":{"line":380,"column":36}},"163":{"start":{"line":383,"column":8},"end":{"line":384,"column":105}},"164":{"start":{"line":384,"column":12},"end":{"line":384,"column":105}},"165":{"start":{"line":384,"column":61},"end":{"line":384,"column":103}},"166":{"start":{"line":386,"column":8},"end":{"line":390,"column":9}},"167":{"start":{"line":387,"column":12},"end":{"line":389,"column":15}},"168":{"start":{"line":388,"column":16},"end":{"line":388,"column":44}},"169":{"start":{"line":391,"column":8},"end":{"line":391,"column":33}},"170":{"start":{"line":394,"column":8},"end":{"line":394,"column":274}},"171":{"start":{"line":397,"column":0},"end":{"line":397,"column":30}},"172":{"start":{"line":398,"column":0},"end":{"line":398,"column":53}},"173":{"start":{"line":401,"column":8},"end":{"line":401,"column":47}},"174":{"start":{"line":402,"column":8},"end":{"line":402,"column":55}},"175":{"start":{"line":403,"column":8},"end":{"line":403,"column":49}},"176":{"start":{"line":404,"column":8},"end":{"line":404,"column":43}},"177":{"start":{"line":405,"column":8},"end":{"line":405,"column":35}},"178":{"start":{"line":406,"column":8},"end":{"line":406,"column":45}},"179":{"start":{"line":407,"column":8},"end":{"line":407,"column":43}},"180":{"start":{"line":408,"column":8},"end":{"line":408,"column":35}},"181":{"start":{"line":409,"column":8},"end":{"line":409,"column":45}},"182":{"start":{"line":410,"column":8},"end":{"line":410,"column":51}},"183":{"start":{"line":411,"column":8},"end":{"line":411,"column":53}},"184":{"start":{"line":414,"column":0},"end":{"line":414,"column":52}},"185":{"start":{"line":417,"column":8},"end":{"line":417,"column":26}},"186":{"start":{"line":424,"column":8},"end":{"line":424,"column":34}},"187":{"start":{"line":431,"column":8},"end":{"line":431,"column":28}},"188":{"start":{"line":438,"column":23},"end":{"line":438,"column":49}},"189":{"start":{"line":440,"column":8},"end":{"line":440,"column":49}},"190":{"start":{"line":442,"column":8},"end":{"line":447,"column":11}},"191":{"start":{"line":443,"column":37},"end":{"line":443,"column":55}},"192":{"start":{"line":445,"column":12},"end":{"line":445,"column":57}},"193":{"start":{"line":446,"column":12},"end":{"line":446,"column":48}},"194":{"start":{"line":448,"column":8},"end":{"line":448,"column":33}},"195":{"start":{"line":456,"column":23},"end":{"line":456,"column":52}},"196":{"start":{"line":457,"column":26},"end":{"line":457,"column":50}},"197":{"start":{"line":458,"column":29},"end":{"line":458,"column":49}},"198":{"start":{"line":459,"column":8},"end":{"line":464,"column":9}},"199":{"start":{"line":459,"column":21},"end":{"line":459,"column":22}},"200":{"start":{"line":460,"column":33},"end":{"line":460,"column":53}},"201":{"start":{"line":461,"column":30},"end":{"line":461,"column":68}},"202":{"start":{"line":462,"column":27},"end":{"line":462,"column":70}},"203":{"start":{"line":463,"column":12},"end":{"line":463,"column":40}},"204":{"start":{"line":465,"column":8},"end":{"line":465,"column":25}},"205":{"start":{"line":468,"column":0},"end":{"line":468,"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":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":18},"end":{"line":41,"column":5}},"line":28},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":26},"end":{"line":93,"column":5}},"line":48},"3":{"name":"(anonymous_3)","decl":{"start":{"line":51,"column":34},"end":{"line":51,"column":35}},"loc":{"start":{"line":51,"column":46},"end":{"line":65,"column":9}},"line":51},"4":{"name":"(anonymous_4)","decl":{"start":{"line":98,"column":4},"end":{"line":98,"column":5}},"loc":{"start":{"line":100,"column":23},"end":{"line":105,"column":5}},"line":100},"5":{"name":"(anonymous_5)","decl":{"start":{"line":101,"column":37},"end":{"line":101,"column":38}},"loc":{"start":{"line":101,"column":52},"end":{"line":104,"column":9}},"line":101},"6":{"name":"(anonymous_6)","decl":{"start":{"line":110,"column":4},"end":{"line":110,"column":5}},"loc":{"start":{"line":112,"column":17},"end":{"line":130,"column":5}},"line":112},"7":{"name":"(anonymous_7)","decl":{"start":{"line":119,"column":42},"end":{"line":119,"column":43}},"loc":{"start":{"line":119,"column":51},"end":{"line":127,"column":13}},"line":119},"8":{"name":"(anonymous_8)","decl":{"start":{"line":135,"column":4},"end":{"line":135,"column":5}},"loc":{"start":{"line":137,"column":21},"end":{"line":139,"column":5}},"line":137},"9":{"name":"(anonymous_9)","decl":{"start":{"line":144,"column":4},"end":{"line":144,"column":5}},"loc":{"start":{"line":144,"column":46},"end":{"line":229,"column":5}},"line":144},"10":{"name":"(anonymous_10)","decl":{"start":{"line":234,"column":4},"end":{"line":234,"column":5}},"loc":{"start":{"line":234,"column":25},"end":{"line":236,"column":5}},"line":234},"11":{"name":"(anonymous_11)","decl":{"start":{"line":241,"column":4},"end":{"line":241,"column":5}},"loc":{"start":{"line":241,"column":21},"end":{"line":243,"column":5}},"line":241},"12":{"name":"(anonymous_12)","decl":{"start":{"line":249,"column":4},"end":{"line":249,"column":5}},"loc":{"start":{"line":249,"column":26},"end":{"line":261,"column":5}},"line":249},"13":{"name":"(anonymous_13)","decl":{"start":{"line":268,"column":4},"end":{"line":268,"column":5}},"loc":{"start":{"line":268,"column":15},"end":{"line":326,"column":5}},"line":268},"14":{"name":"(anonymous_14)","decl":{"start":{"line":302,"column":54},"end":{"line":302,"column":55}},"loc":{"start":{"line":302,"column":65},"end":{"line":302,"column":84}},"line":302},"15":{"name":"(anonymous_15)","decl":{"start":{"line":307,"column":35},"end":{"line":307,"column":36}},"loc":{"start":{"line":307,"column":46},"end":{"line":307,"column":62}},"line":307},"16":{"name":"(anonymous_16)","decl":{"start":{"line":309,"column":56},"end":{"line":309,"column":57}},"loc":{"start":{"line":309,"column":79},"end":{"line":312,"column":9}},"line":309},"17":{"name":"(anonymous_17)","decl":{"start":{"line":330,"column":4},"end":{"line":330,"column":5}},"loc":{"start":{"line":330,"column":13},"end":{"line":347,"column":5}},"line":330},"18":{"name":"(anonymous_18)","decl":{"start":{"line":340,"column":50},"end":{"line":340,"column":51}},"loc":{"start":{"line":340,"column":61},"end":{"line":340,"column":75}},"line":340},"19":{"name":"(anonymous_19)","decl":{"start":{"line":352,"column":4},"end":{"line":352,"column":5}},"loc":{"start":{"line":352,"column":16},"end":{"line":392,"column":5}},"line":352},"20":{"name":"(anonymous_20)","decl":{"start":{"line":384,"column":44},"end":{"line":384,"column":45}},"loc":{"start":{"line":384,"column":61},"end":{"line":384,"column":103}},"line":384},"21":{"name":"(anonymous_21)","decl":{"start":{"line":387,"column":37},"end":{"line":387,"column":38}},"loc":{"start":{"line":387,"column":46},"end":{"line":389,"column":13}},"line":387},"22":{"name":"(anonymous_22)","decl":{"start":{"line":393,"column":4},"end":{"line":393,"column":5}},"loc":{"start":{"line":393,"column":18},"end":{"line":395,"column":5}},"line":393},"23":{"name":"(anonymous_23)","decl":{"start":{"line":400,"column":4},"end":{"line":400,"column":5}},"loc":{"start":{"line":400,"column":195},"end":{"line":412,"column":5}},"line":400},"24":{"name":"(anonymous_24)","decl":{"start":{"line":416,"column":4},"end":{"line":416,"column":5}},"loc":{"start":{"line":416,"column":18},"end":{"line":418,"column":5}},"line":416},"25":{"name":"(anonymous_25)","decl":{"start":{"line":423,"column":4},"end":{"line":423,"column":5}},"loc":{"start":{"line":423,"column":22},"end":{"line":425,"column":5}},"line":423},"26":{"name":"(anonymous_26)","decl":{"start":{"line":430,"column":4},"end":{"line":430,"column":5}},"loc":{"start":{"line":430,"column":17},"end":{"line":432,"column":5}},"line":430},"27":{"name":"(anonymous_27)","decl":{"start":{"line":437,"column":4},"end":{"line":437,"column":5}},"loc":{"start":{"line":437,"column":16},"end":{"line":449,"column":5}},"line":437},"28":{"name":"(anonymous_28)","decl":{"start":{"line":442,"column":29},"end":{"line":442,"column":30}},"loc":{"start":{"line":442,"column":41},"end":{"line":447,"column":9}},"line":442},"29":{"name":"(anonymous_29)","decl":{"start":{"line":455,"column":4},"end":{"line":455,"column":5}},"loc":{"start":{"line":455,"column":46},"end":{"line":466,"column":5}},"line":455}},"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":54,"column":12},"end":{"line":56,"column":13}},"type":"if","locations":[{"start":{"line":54,"column":12},"end":{"line":56,"column":13}},{"start":{},"end":{}}],"line":54},"4":{"loc":{"start":{"line":68,"column":12},"end":{"line":68,"column":91}},"type":"binary-expr","locations":[{"start":{"line":68,"column":12},"end":{"line":68,"column":32}},{"start":{"line":68,"column":36},"end":{"line":68,"column":57}},{"start":{"line":68,"column":61},"end":{"line":68,"column":91}}],"line":68},"5":{"loc":{"start":{"line":69,"column":51},"end":{"line":71,"column":38}},"type":"binary-expr","locations":[{"start":{"line":69,"column":51},"end":{"line":69,"column":75}},{"start":{"line":70,"column":12},"end":{"line":70,"column":31}},{"start":{"line":71,"column":12},"end":{"line":71,"column":38}}],"line":69},"6":{"loc":{"start":{"line":72,"column":57},"end":{"line":74,"column":34}},"type":"binary-expr","locations":[{"start":{"line":72,"column":57},"end":{"line":72,"column":78}},{"start":{"line":73,"column":12},"end":{"line":73,"column":41}},{"start":{"line":74,"column":12},"end":{"line":74,"column":34}}],"line":72},"7":{"loc":{"start":{"line":76,"column":45},"end":{"line":76,"column":108}},"type":"binary-expr","locations":[{"start":{"line":76,"column":45},"end":{"line":76,"column":63}},{"start":{"line":76,"column":67},"end":{"line":76,"column":85}},{"start":{"line":76,"column":89},"end":{"line":76,"column":108}}],"line":76},"8":{"loc":{"start":{"line":77,"column":41},"end":{"line":77,"column":92}},"type":"binary-expr","locations":[{"start":{"line":77,"column":41},"end":{"line":77,"column":55}},{"start":{"line":77,"column":59},"end":{"line":77,"column":73}},{"start":{"line":77,"column":77},"end":{"line":77,"column":92}}],"line":77},"9":{"loc":{"start":{"line":78,"column":55},"end":{"line":78,"column":99}},"type":"binary-expr","locations":[{"start":{"line":78,"column":55},"end":{"line":78,"column":74}},{"start":{"line":78,"column":78},"end":{"line":78,"column":99}}],"line":78},"10":{"loc":{"start":{"line":79,"column":41},"end":{"line":79,"column":92}},"type":"binary-expr","locations":[{"start":{"line":79,"column":41},"end":{"line":79,"column":55}},{"start":{"line":79,"column":59},"end":{"line":79,"column":73}},{"start":{"line":79,"column":77},"end":{"line":79,"column":92}}],"line":79},"11":{"loc":{"start":{"line":80,"column":55},"end":{"line":80,"column":99}},"type":"binary-expr","locations":[{"start":{"line":80,"column":55},"end":{"line":80,"column":74}},{"start":{"line":80,"column":78},"end":{"line":80,"column":99}}],"line":80},"12":{"loc":{"start":{"line":82,"column":70},"end":{"line":82,"column":117}},"type":"binary-expr","locations":[{"start":{"line":82,"column":70},"end":{"line":82,"column":88}},{"start":{"line":82,"column":92},"end":{"line":82,"column":111}},{"start":{"line":82,"column":115},"end":{"line":82,"column":117}}],"line":82},"13":{"loc":{"start":{"line":84,"column":84},"end":{"line":84,"column":140}},"type":"binary-expr","locations":[{"start":{"line":84,"column":84},"end":{"line":84,"column":109}},{"start":{"line":84,"column":113},"end":{"line":84,"column":140}}],"line":84},"14":{"loc":{"start":{"line":86,"column":29},"end":{"line":86,"column":74}},"type":"binary-expr","locations":[{"start":{"line":86,"column":29},"end":{"line":86,"column":49}},{"start":{"line":86,"column":53},"end":{"line":86,"column":74}}],"line":86},"15":{"loc":{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},"type":"if","locations":[{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},{"start":{},"end":{}}],"line":89},"16":{"loc":{"start":{"line":89,"column":12},"end":{"line":89,"column":61}},"type":"binary-expr","locations":[{"start":{"line":89,"column":12},"end":{"line":89,"column":34}},{"start":{"line":89,"column":38},"end":{"line":89,"column":61}}],"line":89},"17":{"loc":{"start":{"line":90,"column":82},"end":{"line":90,"column":131}},"type":"binary-expr","locations":[{"start":{"line":90,"column":82},"end":{"line":90,"column":104}},{"start":{"line":90,"column":108},"end":{"line":90,"column":131}}],"line":90},"18":{"loc":{"start":{"line":114,"column":8},"end":{"line":128,"column":9}},"type":"if","locations":[{"start":{"line":114,"column":8},"end":{"line":128,"column":9}},{"start":{},"end":{}}],"line":114},"19":{"loc":{"start":{"line":114,"column":12},"end":{"line":115,"column":48}},"type":"binary-expr","locations":[{"start":{"line":114,"column":12},"end":{"line":114,"column":46}},{"start":{"line":115,"column":12},"end":{"line":115,"column":48}}],"line":114},"20":{"loc":{"start":{"line":116,"column":30},"end":{"line":117,"column":52}},"type":"binary-expr","locations":[{"start":{"line":116,"column":30},"end":{"line":116,"column":64}},{"start":{"line":117,"column":16},"end":{"line":117,"column":52}}],"line":116},"21":{"loc":{"start":{"line":125,"column":31},"end":{"line":125,"column":98}},"type":"cond-expr","locations":[{"start":{"line":125,"column":55},"end":{"line":125,"column":79}},{"start":{"line":125,"column":82},"end":{"line":125,"column":98}}],"line":125},"22":{"loc":{"start":{"line":144,"column":28},"end":{"line":144,"column":44}},"type":"default-arg","locations":[{"start":{"line":144,"column":40},"end":{"line":144,"column":44}}],"line":144},"23":{"loc":{"start":{"line":169,"column":8},"end":{"line":178,"column":9}},"type":"if","locations":[{"start":{"line":169,"column":8},"end":{"line":178,"column":9}},{"start":{"line":176,"column":13},"end":{"line":178,"column":9}}],"line":169},"24":{"loc":{"start":{"line":184,"column":8},"end":{"line":222,"column":9}},"type":"if","locations":[{"start":{"line":184,"column":8},"end":{"line":222,"column":9}},{"start":{},"end":{}}],"line":184},"25":{"loc":{"start":{"line":187,"column":12},"end":{"line":221,"column":13}},"type":"if","locations":[{"start":{"line":187,"column":12},"end":{"line":221,"column":13}},{"start":{},"end":{}}],"line":187},"26":{"loc":{"start":{"line":190,"column":20},"end":{"line":192,"column":21}},"type":"if","locations":[{"start":{"line":190,"column":20},"end":{"line":192,"column":21}},{"start":{},"end":{}}],"line":190},"27":{"loc":{"start":{"line":199,"column":24},"end":{"line":213,"column":25}},"type":"switch","locations":[{"start":{"line":200,"column":28},"end":{"line":205,"column":38}},{"start":{"line":206,"column":28},"end":{"line":212,"column":38}}],"line":199},"28":{"loc":{"start":{"line":201,"column":32},"end":{"line":203,"column":33}},"type":"if","locations":[{"start":{"line":201,"column":32},"end":{"line":203,"column":33}},{"start":{},"end":{}}],"line":201},"29":{"loc":{"start":{"line":208,"column":32},"end":{"line":210,"column":33}},"type":"if","locations":[{"start":{"line":208,"column":32},"end":{"line":210,"column":33}},{"start":{},"end":{}}],"line":208},"30":{"loc":{"start":{"line":225,"column":8},"end":{"line":227,"column":9}},"type":"if","locations":[{"start":{"line":225,"column":8},"end":{"line":227,"column":9}},{"start":{},"end":{}}],"line":225},"31":{"loc":{"start":{"line":271,"column":8},"end":{"line":273,"column":9}},"type":"if","locations":[{"start":{"line":271,"column":8},"end":{"line":273,"column":9}},{"start":{},"end":{}}],"line":271},"32":{"loc":{"start":{"line":275,"column":8},"end":{"line":277,"column":9}},"type":"if","locations":[{"start":{"line":275,"column":8},"end":{"line":277,"column":9}},{"start":{},"end":{}}],"line":275},"33":{"loc":{"start":{"line":275,"column":12},"end":{"line":275,"column":79}},"type":"binary-expr","locations":[{"start":{"line":275,"column":12},"end":{"line":275,"column":37}},{"start":{"line":275,"column":41},"end":{"line":275,"column":79}}],"line":275},"34":{"loc":{"start":{"line":293,"column":8},"end":{"line":300,"column":9}},"type":"if","locations":[{"start":{"line":293,"column":8},"end":{"line":300,"column":9}},{"start":{"line":298,"column":13},"end":{"line":300,"column":9}}],"line":293},"35":{"loc":{"start":{"line":294,"column":12},"end":{"line":296,"column":13}},"type":"if","locations":[{"start":{"line":294,"column":12},"end":{"line":296,"column":13}},{"start":{},"end":{}}],"line":294},"36":{"loc":{"start":{"line":294,"column":16},"end":{"line":294,"column":78}},"type":"binary-expr","locations":[{"start":{"line":294,"column":16},"end":{"line":294,"column":45}},{"start":{"line":294,"column":49},"end":{"line":294,"column":78}}],"line":294},"37":{"loc":{"start":{"line":303,"column":8},"end":{"line":305,"column":9}},"type":"if","locations":[{"start":{"line":303,"column":8},"end":{"line":305,"column":9}},{"start":{},"end":{}}],"line":303},"38":{"loc":{"start":{"line":313,"column":8},"end":{"line":325,"column":9}},"type":"if","locations":[{"start":{"line":313,"column":8},"end":{"line":325,"column":9}},{"start":{"line":320,"column":13},"end":{"line":325,"column":9}}],"line":313},"39":{"loc":{"start":{"line":316,"column":12},"end":{"line":318,"column":13}},"type":"if","locations":[{"start":{"line":316,"column":12},"end":{"line":318,"column":13}},{"start":{},"end":{}}],"line":316},"40":{"loc":{"start":{"line":316,"column":16},"end":{"line":316,"column":82}},"type":"binary-expr","locations":[{"start":{"line":316,"column":16},"end":{"line":316,"column":41}},{"start":{"line":316,"column":45},"end":{"line":316,"column":82}}],"line":316},"41":{"loc":{"start":{"line":322,"column":12},"end":{"line":324,"column":13}},"type":"if","locations":[{"start":{"line":322,"column":12},"end":{"line":324,"column":13}},{"start":{},"end":{}}],"line":322},"42":{"loc":{"start":{"line":375,"column":8},"end":{"line":381,"column":9}},"type":"if","locations":[{"start":{"line":375,"column":8},"end":{"line":381,"column":9}},{"start":{"line":379,"column":13},"end":{"line":381,"column":9}}],"line":375},"43":{"loc":{"start":{"line":383,"column":8},"end":{"line":384,"column":105}},"type":"if","locations":[{"start":{"line":383,"column":8},"end":{"line":384,"column":105}},{"start":{},"end":{}}],"line":383},"44":{"loc":{"start":{"line":386,"column":8},"end":{"line":390,"column":9}},"type":"if","locations":[{"start":{"line":386,"column":8},"end":{"line":390,"column":9}},{"start":{},"end":{}}],"line":386},"45":{"loc":{"start":{"line":455,"column":28},"end":{"line":455,"column":44}},"type":"default-arg","locations":[{"start":{"line":455,"column":40},"end":{"line":455,"column":44}}],"line":455}},"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":111,"18":111,"19":111,"20":111,"21":33,"22":33,"23":33,"24":33,"25":0,"26":33,"27":33,"28":33,"29":0,"30":33,"31":33,"32":33,"33":33,"34":33,"35":33,"36":33,"37":33,"38":33,"39":33,"40":33,"41":33,"42":33,"43":0,"44":33,"45":33,"46":33,"47":33,"48":33,"49":33,"50":33,"51":5230,"52":5230,"53":33,"54":0,"55":55,"56":55,"57":55,"58":55,"59":55,"60":55,"61":55,"62":55,"63":55,"64":55,"65":55,"66":55,"67":55,"68":55,"69":55,"70":55,"71":55,"72":55,"73":55,"74":55,"75":55,"76":52,"77":52,"78":52,"79":3,"80":55,"81":55,"82":55,"83":55,"84":55,"85":55,"86":55,"87":0,"88":55,"89":222,"90":221,"91":221,"92":221,"93":0,"94":0,"95":0,"96":0,"97":221,"98":4,"99":221,"100":221,"101":55,"102":1,"103":55,"104":4,"105":9,"106":0,"107":0,"108":0,"109":0,"110":0,"111":9,"112":0,"113":9,"114":0,"115":9,"116":9,"117":1,"118":8,"119":8,"120":1,"121":7,"122":6,"123":1,"124":1,"125":5,"126":4,"127":5,"128":1,"129":4,"130":2,"131":4,"132":2,"133":2,"134":4,"135":2,"136":1,"137":2,"138":1,"139":18,"140":18,"141":18,"142":61,"143":61,"144":61,"145":61,"146":61,"147":61,"148":61,"149":61,"150":61,"151":61,"152":61,"153":61,"154":61,"155":61,"156":61,"157":61,"158":61,"159":61,"160":0,"161":0,"162":61,"163":61,"164":0,"165":0,"166":61,"167":1,"168":71,"169":61,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":2,"186":4,"187":0,"188":3,"189":3,"190":3,"191":6,"192":6,"193":6,"194":3,"195":1,"196":1,"197":1,"198":1,"199":1,"200":2,"201":2,"202":2,"203":2,"204":1,"205":1},"f":{"0":1,"1":111,"2":33,"3":33,"4":33,"5":33,"6":33,"7":5230,"8":0,"9":55,"10":4,"11":9,"12":0,"13":9,"14":4,"15":2,"16":2,"17":18,"18":18,"19":61,"20":0,"21":71,"22":1,"23":1,"24":2,"25":4,"26":0,"27":3,"28":6,"29":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,33],"4":[33,0,0],"5":[33,0,0],"6":[33,0,0],"7":[33,0,0],"8":[33,0,0],"9":[33,0],"10":[33,0,0],"11":[33,0],"12":[33,0,0],"13":[33,0],"14":[33,0],"15":[0,33],"16":[33,33],"17":[0,0],"18":[33,0],"19":[33,0],"20":[33,0],"21":[5230,0],"22":[49],"23":[52,3],"24":[55,0],"25":[55,0],"26":[0,55],"27":[0,221],"28":[0,0],"29":[4,217],"30":[1,54],"31":[0,9],"32":[0,9],"33":[9,9],"34":[6,1],"35":[1,5],"36":[6,1],"37":[1,4],"38":[2,2],"39":[1,1],"40":[2,1],"41":[1,1],"42":[0,61],"43":[0,61],"44":[1,60],"45":[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-network';\nimport { address } from 'bitcoinjs-lib';\nimport secp256k1 from 'secp256k1';\n\nimport { MessageType, PROTOCOL_VERSION } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport { bigIntToNumber, toBigInt } from '../util';\nimport { BatchFundingGroup } from './BatchFundingGroup';\nimport {\n  CetAdaptorSignatures,\n  ICetAdaptorSignaturesJSON,\n} from './CetAdaptorSignatures';\nimport { IDlcMessage } from './DlcMessage';\nimport { FundingInput, IFundingInputJSON } from './FundingInput';\nimport {\n  INegotiationFieldsV0JSON,\n  INegotiationFieldsV1JSON,\n  INegotiationFieldsV2JSON,\n  NegotiationFields,\n} from './NegotiationFields';\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 * Updated to support dlcspecs PR #163 format.\n */\nexport class DlcAccept implements IDlcMessage {\n  public static type = MessageType.DlcAccept;\n\n  /**\n   * Creates a DlcAccept from JSON data (e.g., from test vectors)\n   * Handles both our internal format and external test vector formats\n   * @param json JSON object representing a DLC accept\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DlcAccept {\n    const instance = new DlcAccept();\n\n    // Helper function to parse DER-encoded signature and extract raw r,s values (64 bytes total)\n    const parseDerSignature = (hexSig: string): Buffer => {\n      const sigBuffer = Buffer.from(hexSig, 'hex');\n\n      // If it's already 64 bytes, assume it's raw\n      if (sigBuffer.length === 64) {\n        return sigBuffer;\n      }\n\n      // Use secp256k1.signatureImport to parse DER signature\n      try {\n        const rawSig = secp256k1.signatureImport(sigBuffer);\n        return Buffer.from(rawSig);\n      } catch (ex) {\n        throw new Error(`Invalid DER signature: ${ex.message}`);\n      }\n    };\n\n    // Handle both internal and external field naming conventions\n    instance.protocolVersion =\n      json.protocolVersion || json.protocol_version || PROTOCOL_VERSION;\n    instance.temporaryContractId = Buffer.from(\n      json.temporaryContractId ||\n        json.tempContractId ||\n        json.temporary_contract_id,\n      'hex',\n    );\n\n    instance.acceptCollateral = toBigInt(\n      json.acceptCollateral ||\n        json.acceptCollateralSatoshis ||\n        json.accept_collateral,\n    );\n\n    // Handle field name variations between formats\n    instance.fundingPubkey = Buffer.from(\n      json.fundingPubkey || json.fundingPubKey || json.funding_pubkey,\n      'hex',\n    );\n    instance.payoutSpk = Buffer.from(\n      json.payoutSpk || json.payoutSPK || json.payout_spk,\n      'hex',\n    );\n    instance.payoutSerialId = toBigInt(\n      json.payoutSerialId || json.payout_serial_id,\n    );\n\n    instance.changeSpk = Buffer.from(\n      json.changeSpk || json.changeSPK || json.change_spk,\n      'hex',\n    );\n    instance.changeSerialId = toBigInt(\n      json.changeSerialId || json.change_serial_id,\n    );\n\n    // Parse FundingInputs\n    instance.fundingInputs = DlcAccept.parseFundingInputsFromJSON(\n      json.fundingInputs || json.funding_inputs || [],\n    );\n\n    // Parse CET adaptor signatures\n    instance.cetAdaptorSignatures = DlcAccept.parseCetAdaptorSignaturesFromJSON(\n      json.cetAdaptorSignatures || json.cet_adaptor_signatures,\n    );\n\n    // Parse refund signature - handle DER encoding\n    const refundSigHex = json.refundSignature || json.refund_signature;\n    instance.refundSignature = parseDerSignature(refundSigHex);\n\n    // Parse optional negotiation fields\n    if (json.negotiationFields || json.negotiation_fields) {\n      instance.negotiationFields = DlcAccept.parseNegotiationFieldsFromJSON(\n        json.negotiationFields || json.negotiation_fields,\n      );\n    }\n\n    return instance;\n  }\n\n  /**\n   * Parses FundingInputs from JSON\n   * @param fundingInputsJson Array of JSON objects representing funding inputs\n   */\n  private static parseFundingInputsFromJSON(\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    fundingInputsJson: any[],\n  ): FundingInput[] {\n    return fundingInputsJson.map((inputJson) => {\n      // Use the existing FundingInput.fromJSON method which handles all the field mapping correctly\n      return FundingInput.fromJSON(inputJson) as FundingInput;\n    });\n  }\n\n  /**\n   * Parses CetAdaptorSignatures from JSON\n   * @param cetSigsJson JSON object representing CET adaptor signatures\n   */\n  private static parseCetAdaptorSignaturesFromJSON(\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    cetSigsJson: any,\n  ): CetAdaptorSignatures {\n    const instance = new CetAdaptorSignatures();\n\n    if (\n      cetSigsJson.ecdsaAdaptorSignatures ||\n      cetSigsJson.ecdsa_adaptor_signatures\n    ) {\n      const ecdsaSigs =\n        cetSigsJson.ecdsaAdaptorSignatures ||\n        cetSigsJson.ecdsa_adaptor_signatures;\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      instance.sigs = ecdsaSigs.map((sig: any) => {\n        // The test vectors use 'signature' field, but our internal format uses encryptedSig/dleqProof\n        // Adaptor signatures have different format than regular ECDSA (65 bytes + 97 bytes)\n        const sigBuffer = Buffer.from(sig.signature, 'hex');\n        return {\n          encryptedSig: sigBuffer.slice(0, 65), // First 65 bytes\n          dleqProof:\n            sigBuffer.length > 65 ? sigBuffer.slice(65, 162) : Buffer.alloc(97), // Next 97 bytes or empty\n        };\n      });\n    }\n\n    return instance;\n  }\n\n  /**\n   * Parses NegotiationFields from JSON\n   * @param negotiationJson JSON object representing negotiation fields\n   */\n  private static parseNegotiationFieldsFromJSON(\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    negotiationJson: any,\n  ): NegotiationFields {\n    return NegotiationFields.fromJSON(negotiationJson);\n  }\n\n  /**\n   * Deserializes an accept_dlc message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer, parseCets = true): DlcAccept {\n    const instance = new DlcAccept();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n\n    // New fields as per dlcspecs PR #163\n    instance.protocolVersion = reader.readUInt32BE();\n    instance.temporaryContractId = reader.readBytes(32);\n    instance.acceptCollateral = 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\n    // Changed from u16 to bigsize as per dlcspecs PR #163\n    const fundingInputsLen = Number(reader.readBigSize());\n    for (let i = 0; i < fundingInputsLen; i++) {\n      // FundingInput body is serialized directly without TLV wrapper in rust-dlc format\n      const fundingInput = FundingInput.deserializeBody(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n      instance.fundingInputs.push(fundingInput);\n\n      // Skip past the FundingInput we just read\n      const fundingInputLength = fundingInput.serializeBody().length;\n      reader.position += fundingInputLength;\n    }\n\n    const changeSpkLen = reader.readUInt16BE();\n    instance.changeSpk = reader.readBytes(changeSpkLen);\n    instance.changeSerialId = reader.readUInt64BE();\n\n    if (parseCets) {\n      // Read CET adaptor signatures directly to match serialize format (no TLV wrapping)\n      instance.cetAdaptorSignatures = CetAdaptorSignatures.deserialize(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n\n      // Skip past the CET adaptor signatures we just read\n      const cetLength = instance.cetAdaptorSignatures.serialize().length;\n      reader.position += cetLength;\n    } else {\n      instance.cetAdaptorSignatures = new CetAdaptorSignatures();\n    }\n\n    instance.refundSignature = reader.readBytes(64);\n\n    // negotiation_fields is now optional as per dlcspecs PR #163\n    // Check if there's enough data left for the new format fields (backward compatibility)\n    // The old format ends exactly after refundSignature. If there's more data, it should be new format.\n    const remainingBytes = reader.buffer.length - reader.position;\n\n    if (remainingBytes > 0) {\n      // Only try to parse new fields if we have a reasonable amount of extra data\n      // A single stray byte is likely not valid new format data\n      if (remainingBytes >= 1) {\n        try {\n          const hasNegotiationFields = reader.readUInt8();\n          if (hasNegotiationFields === 0x01) {\n            instance.negotiationFields = NegotiationFields.deserialize(\n              getTlv(reader),\n            );\n          }\n\n          // Parse TLV stream as per dlcspecs PR #163\n          // Only continue if there's still data left after the hasNegotiationFields flag\n          while (reader.position < reader.buffer.length) {\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(\n                  BatchFundingGroup.deserialize(buf),\n                );\n                break;\n              default:\n                // Store unknown TLVs for future compatibility\n                if (!instance.unknownTlvs) {\n                  instance.unknownTlvs = [];\n                }\n                instance.unknownTlvs.push({ type: Number(type), data: buf });\n                break;\n            }\n          }\n        } catch (error) {\n          // If parsing new format fails, assume it's old format and ignore the extra bytes\n          // This provides backward compatibility for malformed or old format data\n          // Silently ignore parsing errors for backward compatibility\n        }\n      }\n    }\n\n    // Auto-detect single funded DLCs based on minimal acceptCollateral\n    // In single funded DLCs, acceptCollateral is typically 0 or very small\n    if (instance.acceptCollateral === BigInt(0)) {\n      instance.singleFunded = true;\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for accept_dlc message. accept_dlc = 42780\n   */\n  public type = DlcAccept.type;\n\n  // New fields as per dlcspecs PR #163\n  public protocolVersion: number = PROTOCOL_VERSION; // Default to current protocol version\n\n  // Existing fields\n  public temporaryContractId: Buffer;\n\n  public acceptCollateral: bigint;\n\n  public fundingPubkey: Buffer;\n\n  public payoutSpk: Buffer;\n\n  public payoutSerialId: bigint;\n\n  public fundingInputs: FundingInput[] = [];\n\n  public changeSpk: Buffer;\n\n  public changeSerialId: bigint;\n\n  public cetAdaptorSignatures: CetAdaptorSignatures;\n\n  public refundSignature: Buffer;\n\n  // negotiation_fields is now optional\n  public negotiationFields?: NegotiationFields;\n\n  public batchFundingGroups?: BatchFundingGroup[];\n\n  // Store unknown TLVs for forward compatibility\n  public unknownTlvs?: Array<{ type: number; data: Buffer }>;\n\n  /**\n   * Flag to indicate if this is a single funded DLC\n   * In single funded DLCs, the acceptor provides minimal or no collateral\n   */\n  public singleFunded = false;\n\n  /**\n   * Marks this DLC accept as single funded\n   * For single funded DLCs, acceptCollateral is typically 0 or minimal\n   */\n  public markAsSingleFunded(): void {\n    this.singleFunded = true;\n  }\n\n  /**\n   * Checks if this DLC accept is for a single funded DLC\n   * @returns True if this is a single funded DLC\n   */\n  public isSingleFunded(): boolean {\n    return this.singleFunded;\n  }\n\n  /**\n   * Get funding, change and payout address from DlcAccept\n   * @param network Bitcoin Network\n   * @returns {IDlcAcceptAddresses}\n   */\n  public getAddresses(network: BitcoinNetwork): IDlcAcceptAddresses {\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   * Updated validation rules as per dlcspecs PR #163\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. protocol_version validation\n    if (this.protocolVersion !== PROTOCOL_VERSION) {\n      throw new Error(\n        `Unsupported protocol version: ${this.protocolVersion}, expected: ${PROTOCOL_VERSION}`,\n      );\n    }\n\n    // 3. temporary_contract_id must match the one from offer_dlc\n    if (!this.temporaryContractId || this.temporaryContractId.length !== 32) {\n      throw new Error('temporaryContractId must be 32 bytes');\n    }\n\n    // 4. payout_spk and change_spk must be standard script pubkeys\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    // 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. inputSerialId must be unique for each input\n    const inputSerialIds = this.fundingInputs.map(\n      (input: FundingInput) => input.inputSerialId,\n    );\n\n    if (new Set(inputSerialIds).size !== inputSerialIds.length) {\n      throw new Error('inputSerialIds must be unique');\n    }\n\n    // 7. Ensure funding inputs are segwit\n    this.fundingInputs.forEach((input: FundingInput) => input.validate());\n\n    // 8. validate funding amount\n    const fundingAmount = this.fundingInputs.reduce((acc, fundingInput) => {\n      const input = fundingInput as FundingInput;\n      return acc + input.prevTx.outputs[input.prevTxVout].value.sats;\n    }, BigInt(0));\n\n    if (this.isSingleFunded()) {\n      // For single funded DLCs, acceptor may provide minimal or no collateral\n      // fundingAmount should be >= acceptCollateral (allowing for 0 collateral case)\n      if (this.acceptCollateral > 0 && fundingAmount < this.acceptCollateral) {\n        throw new Error(\n          'For single funded DLCs, fundingAmount must be at least acceptCollateral',\n        );\n      }\n    } else {\n      // For regular DLCs, funding amount must be greater than accept collateral\n      if (this.acceptCollateral >= fundingAmount) {\n        throw new Error('fundingAmount must be greater than acceptCollateral');\n      }\n    }\n  }\n\n  /**\n   * Converts accept_dlc to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): IDlcAcceptJSON {\n    // Convert raw signature back to DER format for canonical rust-dlc JSON\n    const derRefundSignature = secp256k1.signatureExport(this.refundSignature);\n\n    return {\n      protocolVersion: this.protocolVersion,\n      temporaryContractId: this.temporaryContractId.toString('hex'),\n      acceptCollateral: bigIntToNumber(this.acceptCollateral),\n      fundingPubkey: this.fundingPubkey.toString('hex'), // lowercase 'k'\n      payoutSpk: this.payoutSpk.toString('hex'), // lowercase\n      payoutSerialId: bigIntToNumber(this.payoutSerialId),\n      fundingInputs: this.fundingInputs.map((input) => input.toJSON()),\n      changeSpk: this.changeSpk.toString('hex'), // lowercase\n      changeSerialId: bigIntToNumber(this.changeSerialId),\n      cetAdaptorSignatures: this.cetAdaptorSignatures.toJSON(),\n      refundSignature: Buffer.from(derRefundSignature).toString('hex'),\n      negotiationFields: this.negotiationFields?.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the accept_dlc message into a Buffer\n   * Updated serialization format as per dlcspecs PR #163\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n\n    // New fields as per dlcspecs PR #163\n    writer.writeUInt32BE(this.protocolVersion);\n    writer.writeBytes(this.temporaryContractId);\n    writer.writeUInt64BE(this.acceptCollateral);\n    writer.writeBytes(this.fundingPubkey);\n    writer.writeUInt16BE(this.payoutSpk.length);\n    writer.writeBytes(this.payoutSpk);\n    writer.writeUInt64BE(this.payoutSerialId);\n\n    // Changed from u16 to bigsize as per dlcspecs PR #163\n    writer.writeBigSize(this.fundingInputs.length);\n\n    for (const fundingInput of this.fundingInputs) {\n      // Use serializeBody() to match rust-dlc behavior - funding inputs in vec are serialized without TLV wrapper\n      writer.writeBytes(fundingInput.serializeBody());\n    }\n\n    writer.writeUInt16BE(this.changeSpk.length);\n    writer.writeBytes(this.changeSpk);\n    writer.writeUInt64BE(this.changeSerialId);\n    writer.writeBytes(this.cetAdaptorSignatures.serialize());\n    writer.writeBytes(this.refundSignature);\n\n    // negotiation_fields is now optional as per dlcspecs PR #163\n    if (this.negotiationFields) {\n      writer.writeUInt8(0x01); // present\n      writer.writeBytes(this.negotiationFields.serialize());\n    } else {\n      writer.writeUInt8(0x00); // absent\n    }\n\n    // TLV stream as per dlcspecs PR #163\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        writer.writeBytes(fundingInfo.serialize()),\n      );\n\n    // Write unknown TLVs for forward compatibility\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) => {\n        writer.writeBytes(tlv.data);\n      });\n    }\n\n    return writer.toBuffer();\n  }\n\n  public withoutSigs(): DlcAcceptWithoutSigs {\n    return new DlcAcceptWithoutSigs(\n      this.protocolVersion,\n      this.temporaryContractId,\n      this.acceptCollateral,\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 protocolVersion: number,\n    readonly temporaryContractId: Buffer,\n    readonly acceptCollateral: bigint,\n    readonly fundingPubkey: Buffer,\n    readonly payoutSpk: Buffer,\n    readonly payoutSerialId: bigint,\n    readonly fundingInputs: FundingInput[],\n    readonly changeSpk: Buffer,\n    readonly changeSerialId: bigint,\n    readonly negotiationFields?: NegotiationFields,\n    readonly batchFundingGroups?: BatchFundingGroup[],\n  ) {}\n}\n\nexport interface IDlcAcceptJSON {\n  protocolVersion: number;\n  temporaryContractId: string;\n  acceptCollateral: number;\n  fundingPubkey: string;\n  payoutSpk: string;\n  payoutSerialId: number;\n  fundingInputs: IFundingInputJSON[];\n  changeSpk: string;\n  changeSerialId: number;\n  cetAdaptorSignatures: ICetAdaptorSignaturesJSON;\n  refundSignature: string;\n  negotiationFields?: // Now optional\n  | INegotiationFieldsV0JSON\n    | INegotiationFieldsV1JSON\n    | INegotiationFieldsV2JSON;\n}\n\nexport interface IDlcAcceptAddresses {\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);\n      container.addAccept(accept);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"96b34f0caed526743213335a1b0a0a808d4a797d","contentHash":"d821aed1aaebb106a13b7371c0e73d4c5892c11ed1212fd5f45f5feb9eb874ae"},"/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":226,"3":226,"4":226,"5":226,"6":1},"f":{"0":226},"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":"714dc25ef9c5ffe2c58b38f666e0eded9b061f1cb9b8cf34f60f7e95065570de"},"/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":952,"4":952,"5":952,"6":951,"7":951,"8":951,"9":951,"10":951,"11":1,"12":0,"13":0,"14":0,"15":1},"f":{"0":952,"1":0},"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":"2e3b386d18d5950f9fb9e482f4cde61e1d1b43d295215748b5f22c363ab9f46b"},"/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":30}},"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":7,"column":15},"end":{"line":7,"column":33}},"6":{"start":{"line":8,"column":19},"end":{"line":8,"column":40}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":38}},"8":{"start":{"line":27,"column":25},"end":{"line":27,"column":43}},"9":{"start":{"line":28,"column":8},"end":{"line":28,"column":98}},"10":{"start":{"line":30,"column":26},"end":{"line":30,"column":53}},"11":{"start":{"line":31,"column":8},"end":{"line":47,"column":9}},"12":{"start":{"line":32,"column":12},"end":{"line":32,"column":114}},"13":{"start":{"line":37,"column":27},"end":{"line":37,"column":53}},"14":{"start":{"line":38,"column":12},"end":{"line":38,"column":36}},"15":{"start":{"line":39,"column":12},"end":{"line":39,"column":33}},"16":{"start":{"line":40,"column":12},"end":{"line":40,"column":33}},"17":{"start":{"line":41,"column":12},"end":{"line":41,"column":52}},"18":{"start":{"line":42,"column":12},"end":{"line":42,"column":34}},"19":{"start":{"line":43,"column":12},"end":{"line":43,"column":48}},"20":{"start":{"line":44,"column":12},"end":{"line":44,"column":36}},"21":{"start":{"line":45,"column":28},"end":{"line":45,"column":45}},"22":{"start":{"line":46,"column":12},"end":{"line":46,"column":92}},"23":{"start":{"line":48,"column":8},"end":{"line":48,"column":72}},"24":{"start":{"line":49,"column":8},"end":{"line":49,"column":80}},"25":{"start":{"line":50,"column":8},"end":{"line":50,"column":83}},"26":{"start":{"line":51,"column":29},"end":{"line":51,"column":74}},"27":{"start":{"line":52,"column":8},"end":{"line":52,"column":65}},"28":{"start":{"line":54,"column":25},"end":{"line":54,"column":56}},"29":{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},"30":{"start":{"line":56,"column":12},"end":{"line":56,"column":71}},"31":{"start":{"line":58,"column":8},"end":{"line":58,"column":24}},"32":{"start":{"line":65,"column":25},"end":{"line":65,"column":43}},"33":{"start":{"line":66,"column":23},"end":{"line":66,"column":52}},"34":{"start":{"line":67,"column":8},"end":{"line":67,"column":29}},"35":{"start":{"line":68,"column":8},"end":{"line":68,"column":47}},"36":{"start":{"line":69,"column":8},"end":{"line":69,"column":55}},"37":{"start":{"line":70,"column":26},"end":{"line":70,"column":47}},"38":{"start":{"line":71,"column":8},"end":{"line":71,"column":108}},"39":{"start":{"line":72,"column":8},"end":{"line":72,"column":52}},"40":{"start":{"line":73,"column":8},"end":{"line":73,"column":74}},"41":{"start":{"line":74,"column":8},"end":{"line":74,"column":55}},"42":{"start":{"line":75,"column":32},"end":{"line":75,"column":53}},"43":{"start":{"line":76,"column":8},"end":{"line":76,"column":66}},"44":{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},"45":{"start":{"line":79,"column":33},"end":{"line":79,"column":54}},"46":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"47":{"start":{"line":81,"column":16},"end":{"line":81,"column":86}},"48":{"start":{"line":84,"column":8},"end":{"line":84,"column":24}},"49":{"start":{"line":92,"column":25},"end":{"line":92,"column":43}},"50":{"start":{"line":93,"column":23},"end":{"line":93,"column":52}},"51":{"start":{"line":95,"column":8},"end":{"line":95,"column":55}},"52":{"start":{"line":97,"column":26},"end":{"line":97,"column":54}},"53":{"start":{"line":98,"column":8},"end":{"line":98,"column":108}},"54":{"start":{"line":99,"column":8},"end":{"line":99,"column":52}},"55":{"start":{"line":100,"column":8},"end":{"line":100,"column":74}},"56":{"start":{"line":101,"column":8},"end":{"line":101,"column":55}},"57":{"start":{"line":103,"column":32},"end":{"line":103,"column":53}},"58":{"start":{"line":104,"column":8},"end":{"line":104,"column":66}},"59":{"start":{"line":106,"column":8},"end":{"line":111,"column":9}},"60":{"start":{"line":107,"column":33},"end":{"line":107,"column":54}},"61":{"start":{"line":108,"column":12},"end":{"line":110,"column":13}},"62":{"start":{"line":109,"column":16},"end":{"line":109,"column":86}},"63":{"start":{"line":112,"column":8},"end":{"line":112,"column":24}},"64":{"start":{"line":115,"column":8},"end":{"line":120,"column":9}},"65":{"start":{"line":116,"column":12},"end":{"line":116,"column":48}},"66":{"start":{"line":119,"column":12},"end":{"line":119,"column":21}},"67":{"start":{"line":131,"column":23},"end":{"line":131,"column":59}},"68":{"start":{"line":132,"column":8},"end":{"line":134,"column":9}},"69":{"start":{"line":133,"column":12},"end":{"line":133,"column":99}},"70":{"start":{"line":135,"column":29},"end":{"line":135,"column":64}},"71":{"start":{"line":139,"column":25},"end":{"line":141,"column":36}},"72":{"start":{"line":142,"column":24},"end":{"line":144,"column":36}},"73":{"start":{"line":145,"column":23},"end":{"line":147,"column":36}},"74":{"start":{"line":148,"column":8},"end":{"line":150,"column":9}},"75":{"start":{"line":149,"column":12},"end":{"line":149,"column":96}},"76":{"start":{"line":156,"column":23},"end":{"line":163,"column":9}},"77":{"start":{"line":164,"column":8},"end":{"line":166,"column":9}},"78":{"start":{"line":165,"column":12},"end":{"line":165,"column":53}},"79":{"start":{"line":167,"column":8},"end":{"line":167,"column":22}},"80":{"start":{"line":173,"column":23},"end":{"line":173,"column":49}},"81":{"start":{"line":174,"column":8},"end":{"line":174,"column":39}},"82":{"start":{"line":175,"column":27},"end":{"line":175,"column":53}},"83":{"start":{"line":176,"column":8},"end":{"line":176,"column":53}},"84":{"start":{"line":177,"column":8},"end":{"line":177,"column":65}},"85":{"start":{"line":178,"column":8},"end":{"line":178,"column":55}},"86":{"start":{"line":179,"column":8},"end":{"line":179,"column":50}},"87":{"start":{"line":180,"column":8},"end":{"line":180,"column":54}},"88":{"start":{"line":181,"column":8},"end":{"line":181,"column":53}},"89":{"start":{"line":182,"column":8},"end":{"line":182,"column":59}},"90":{"start":{"line":183,"column":8},"end":{"line":183,"column":49}},"91":{"start":{"line":185,"column":29},"end":{"line":185,"column":81}},"92":{"start":{"line":186,"column":8},"end":{"line":186,"column":47}},"93":{"start":{"line":187,"column":8},"end":{"line":187,"column":45}},"94":{"start":{"line":188,"column":8},"end":{"line":188,"column":49}},"95":{"start":{"line":189,"column":8},"end":{"line":189,"column":33}},"96":{"start":{"line":194,"column":23},"end":{"line":194,"column":49}},"97":{"start":{"line":195,"column":8},"end":{"line":195,"column":49}},"98":{"start":{"line":197,"column":8},"end":{"line":197,"column":60}},"99":{"start":{"line":198,"column":8},"end":{"line":198,"column":51}},"100":{"start":{"line":199,"column":8},"end":{"line":199,"column":46}},"101":{"start":{"line":200,"column":8},"end":{"line":200,"column":50}},"102":{"start":{"line":201,"column":8},"end":{"line":201,"column":49}},"103":{"start":{"line":203,"column":8},"end":{"line":203,"column":55}},"104":{"start":{"line":204,"column":8},"end":{"line":204,"column":45}},"105":{"start":{"line":206,"column":29},"end":{"line":206,"column":81}},"106":{"start":{"line":207,"column":8},"end":{"line":207,"column":43}},"107":{"start":{"line":208,"column":8},"end":{"line":208,"column":33}},"108":{"start":{"line":211,"column":0},"end":{"line":211,"column":36}},"109":{"start":{"line":212,"column":0},"end":{"line":212,"column":59}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":18},"end":{"line":20,"column":5}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":26},"end":{"line":59,"column":5}},"line":26},"2":{"name":"(anonymous_2)","decl":{"start":{"line":64,"column":4},"end":{"line":64,"column":5}},"loc":{"start":{"line":64,"column":28},"end":{"line":85,"column":5}},"line":64},"3":{"name":"(anonymous_3)","decl":{"start":{"line":91,"column":4},"end":{"line":91,"column":5}},"loc":{"start":{"line":91,"column":32},"end":{"line":113,"column":5}},"line":91},"4":{"name":"(anonymous_4)","decl":{"start":{"line":114,"column":4},"end":{"line":114,"column":5}},"loc":{"start":{"line":114,"column":22},"end":{"line":121,"column":5}},"line":114},"5":{"name":"(anonymous_5)","decl":{"start":{"line":126,"column":4},"end":{"line":126,"column":5}},"loc":{"start":{"line":126,"column":15},"end":{"line":151,"column":5}},"line":126},"6":{"name":"(anonymous_6)","decl":{"start":{"line":155,"column":4},"end":{"line":155,"column":5}},"loc":{"start":{"line":155,"column":13},"end":{"line":168,"column":5}},"line":155},"7":{"name":"(anonymous_7)","decl":{"start":{"line":172,"column":4},"end":{"line":172,"column":5}},"loc":{"start":{"line":172,"column":16},"end":{"line":190,"column":5}},"line":172},"8":{"name":"(anonymous_8)","decl":{"start":{"line":191,"column":4},"end":{"line":191,"column":5}},"loc":{"start":{"line":191,"column":20},"end":{"line":209,"column":5}},"line":191}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":54},"end":{"line":28,"column":96}},"type":"binary-expr","locations":[{"start":{"line":28,"column":54},"end":{"line":28,"column":72}},{"start":{"line":28,"column":76},"end":{"line":28,"column":96}}],"line":28},"1":{"loc":{"start":{"line":30,"column":26},"end":{"line":30,"column":53}},"type":"binary-expr","locations":[{"start":{"line":30,"column":26},"end":{"line":30,"column":37}},{"start":{"line":30,"column":41},"end":{"line":30,"column":53}}],"line":30},"2":{"loc":{"start":{"line":31,"column":8},"end":{"line":47,"column":9}},"type":"if","locations":[{"start":{"line":31,"column":8},"end":{"line":47,"column":9}},{"start":{"line":34,"column":13},"end":{"line":47,"column":9}}],"line":31},"3":{"loc":{"start":{"line":48,"column":30},"end":{"line":48,"column":71}},"type":"binary-expr","locations":[{"start":{"line":48,"column":30},"end":{"line":48,"column":45}},{"start":{"line":48,"column":49},"end":{"line":48,"column":66}},{"start":{"line":48,"column":70},"end":{"line":48,"column":71}}],"line":48},"4":{"loc":{"start":{"line":49,"column":51},"end":{"line":49,"column":78}},"type":"binary-expr","locations":[{"start":{"line":49,"column":51},"end":{"line":49,"column":64}},{"start":{"line":49,"column":68},"end":{"line":49,"column":78}}],"line":49},"5":{"loc":{"start":{"line":50,"column":33},"end":{"line":50,"column":82}},"type":"binary-expr","locations":[{"start":{"line":50,"column":33},"end":{"line":50,"column":51}},{"start":{"line":50,"column":55},"end":{"line":50,"column":75}},{"start":{"line":50,"column":79},"end":{"line":50,"column":82}}],"line":50},"6":{"loc":{"start":{"line":51,"column":29},"end":{"line":51,"column":74}},"type":"binary-expr","locations":[{"start":{"line":51,"column":29},"end":{"line":51,"column":46}},{"start":{"line":51,"column":50},"end":{"line":51,"column":68}},{"start":{"line":51,"column":72},"end":{"line":51,"column":74}}],"line":51},"7":{"loc":{"start":{"line":54,"column":25},"end":{"line":54,"column":56}},"type":"binary-expr","locations":[{"start":{"line":54,"column":25},"end":{"line":54,"column":38}},{"start":{"line":54,"column":42},"end":{"line":54,"column":56}}],"line":54},"8":{"loc":{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},"type":"if","locations":[{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},{"start":{},"end":{}}],"line":55},"9":{"loc":{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},{"start":{},"end":{}}],"line":78},"10":{"loc":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"type":"if","locations":[{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},{"start":{},"end":{}}],"line":80},"11":{"loc":{"start":{"line":106,"column":8},"end":{"line":111,"column":9}},"type":"if","locations":[{"start":{"line":106,"column":8},"end":{"line":111,"column":9}},{"start":{},"end":{}}],"line":106},"12":{"loc":{"start":{"line":108,"column":12},"end":{"line":110,"column":13}},"type":"if","locations":[{"start":{"line":108,"column":12},"end":{"line":110,"column":13}},{"start":{},"end":{}}],"line":108},"13":{"loc":{"start":{"line":115,"column":8},"end":{"line":120,"column":9}},"type":"if","locations":[{"start":{"line":115,"column":8},"end":{"line":120,"column":9}},{"start":{"line":118,"column":13},"end":{"line":120,"column":9}}],"line":115},"14":{"loc":{"start":{"line":132,"column":8},"end":{"line":134,"column":9}},"type":"if","locations":[{"start":{"line":132,"column":8},"end":{"line":134,"column":9}},{"start":{},"end":{}}],"line":132},"15":{"loc":{"start":{"line":139,"column":25},"end":{"line":141,"column":36}},"type":"binary-expr","locations":[{"start":{"line":139,"column":25},"end":{"line":139,"column":51}},{"start":{"line":140,"column":12},"end":{"line":140,"column":36}},{"start":{"line":141,"column":12},"end":{"line":141,"column":36}}],"line":139},"16":{"loc":{"start":{"line":142,"column":24},"end":{"line":144,"column":36}},"type":"binary-expr","locations":[{"start":{"line":142,"column":24},"end":{"line":142,"column":50}},{"start":{"line":143,"column":12},"end":{"line":143,"column":36}},{"start":{"line":144,"column":12},"end":{"line":144,"column":36}}],"line":142},"17":{"loc":{"start":{"line":145,"column":23},"end":{"line":147,"column":36}},"type":"binary-expr","locations":[{"start":{"line":145,"column":23},"end":{"line":145,"column":49}},{"start":{"line":146,"column":12},"end":{"line":146,"column":36}},{"start":{"line":147,"column":12},"end":{"line":147,"column":36}}],"line":145},"18":{"loc":{"start":{"line":148,"column":8},"end":{"line":150,"column":9}},"type":"if","locations":[{"start":{"line":148,"column":8},"end":{"line":150,"column":9}},{"start":{},"end":{}}],"line":148},"19":{"loc":{"start":{"line":148,"column":12},"end":{"line":148,"column":44}},"type":"binary-expr","locations":[{"start":{"line":148,"column":12},"end":{"line":148,"column":21}},{"start":{"line":148,"column":25},"end":{"line":148,"column":33}},{"start":{"line":148,"column":37},"end":{"line":148,"column":44}}],"line":148},"20":{"loc":{"start":{"line":164,"column":8},"end":{"line":166,"column":9}},"type":"if","locations":[{"start":{"line":164,"column":8},"end":{"line":166,"column":9}},{"start":{},"end":{}}],"line":164},"21":{"loc":{"start":{"line":185,"column":29},"end":{"line":185,"column":81}},"type":"cond-expr","locations":[{"start":{"line":185,"column":45},"end":{"line":185,"column":74}},{"start":{"line":185,"column":77},"end":{"line":185,"column":81}}],"line":185},"22":{"loc":{"start":{"line":206,"column":29},"end":{"line":206,"column":81}},"type":"cond-expr","locations":[{"start":{"line":206,"column":45},"end":{"line":206,"column":74}},{"start":{"line":206,"column":77},"end":{"line":206,"column":81}}],"line":206}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":270,"8":94,"9":94,"10":94,"11":94,"12":94,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":94,"24":94,"25":94,"26":94,"27":94,"28":94,"29":94,"30":8,"31":94,"32":67,"33":67,"34":67,"35":67,"36":67,"37":67,"38":67,"39":67,"40":67,"41":67,"42":67,"43":67,"44":67,"45":3,"46":3,"47":1,"48":67,"49":109,"50":109,"51":109,"52":109,"53":109,"54":109,"55":109,"56":109,"57":109,"58":109,"59":109,"60":109,"61":109,"62":3,"63":109,"64":0,"65":0,"66":0,"67":7,"68":7,"69":1,"70":6,"71":6,"72":6,"73":6,"74":6,"75":1,"76":41,"77":41,"78":2,"79":41,"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":3,"94":3,"95":3,"96":251,"97":251,"98":251,"99":251,"100":251,"101":251,"102":251,"103":251,"104":251,"105":251,"106":251,"107":251,"108":1,"109":1},"f":{"0":270,"1":94,"2":67,"3":109,"4":0,"5":7,"6":41,"7":3,"8":251},"b":{"0":[94,0],"1":[94,0],"2":[94,0],"3":[94,92,92],"4":[94,0],"5":[94,0,0],"6":[94,94,94],"7":[94,86],"8":[8,86],"9":[3,64],"10":[1,2],"11":[109,0],"12":[3,106],"13":[0,0],"14":[1,6],"15":[6,4,4],"16":[6,1,1],"17":[6,1,0],"18":[1,5],"19":[6,2,1],"20":[2,39],"21":[1,2],"22":[6,245]},"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":";;;AAAA,+CAAiD;AACjD,2CAA2E;AAE3E,gDAA6C;AAC7C,kCAAmD;AACnD,yCAAsC;AAGtC;;;;GAIG;AACH,MAAa,YAAY;IAAzB;QA0HE;;WAEG;QACI,SAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAyIlC,CAAC;IAnQC;;;OAGG;IACH,iHAAiH;IAC1G,MAAM,CAAC,QAAQ,CAAC,IAAS;QAC9B,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAEpC,QAAQ,CAAC,aAAa,GAAG,IAAA,eAAQ,EAC/B,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,CAC3C,CAAC;QAEF,6BAA6B;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;QAC9C,IAAI,SAAS,EAAE;YACb,QAAQ,CAAC,MAAM,GAAG,YAAE,CAAC,MAAM,CACzB,oBAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACvD,CAAC;SACH;aAAM;YACL,iDAAiD;YACjD,oFAAoF;YACpF,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;YAClC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;YACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;YACpC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;YACrC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe;YACxD,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;YACvC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YAEpC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,QAAQ,CAAC,MAAM,GAAG,YAAE,CAAC,MAAM,CAAC,oBAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/D;QAED,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAChE,QAAQ,CAAC,QAAQ,GAAG,IAAI,kBAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;QAC9D,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC;QAE3E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACnE,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAEzD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;QACjD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,GAAG,mBAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACjD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;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,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,QAAQ,CAAC,MAAM,GAAG,YAAE,CAAC,MAAM,CACzB,oBAAY,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CACrD,CAAC;QACF,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5C,QAAQ,CAAC,QAAQ,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAE1D,4EAA4E;QAC5E,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,YAAY,EAAE;gBAChB,QAAQ,CAAC,QAAQ,GAAG,mBAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;aAC5D;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,GAAW;QACvC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,yEAAyE;QACzE,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAE/C,uDAAuD;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,QAAQ,CAAC,MAAM,GAAG,YAAE,CAAC,MAAM,CACzB,oBAAY,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CACrD,CAAC;QAEF,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5C,QAAQ,CAAC,QAAQ,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAE/C,oFAAoF;QACpF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAE1D,4EAA4E;QAC5E,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,YAAY,EAAE;gBAChB,QAAQ,CAAC,QAAQ,GAAG,mBAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;aAC5D;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAuBM,eAAe;QACpB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;SACrC;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC;IAED;;;OAGG;IACI,QAAQ;QACb,wCAAwC;QACxC,wEAAwE;QACxE,4FAA4F;QAC5F,gGAAgG;QAChG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,CAAC,UAAU,2BAA2B,CACtE,CAAC;SACH;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QACzD,sEAAsE;QACtE,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,QAAQ,GACZ,YAAY,CAAC,MAAM,KAAK,EAAE;YAC1B,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;YACxB,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAC3B,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,EAAE;YAC1B,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;YACxB,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAC3B,MAAM,MAAM,GACV,YAAY,CAAC,MAAM,KAAK,EAAE;YAC1B,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;YACxB,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAE3B,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;SACH;IACH,CAAC;IAED;;OAEG;IACI,MAAM;QACX,MAAM,MAAM,GAAsB;YAChC,aAAa,EAAE,IAAA,qBAAc,EAAC,IAAI,CAAC,aAAa,CAAC;YACjD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC/C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC1C;QAED,OAAO,MAAM,CAAC;IAChB,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,aAAa,CAAC,CAAC;QAC7C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;QACzD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACnD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzC,6EAA6E;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEvC,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;IAEM,aAAa;QAClB,+EAA+E;QAC/E,gFAAgF;QAChF,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEzC,kEAAkE;QAClE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAE3C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEzC,gFAAgF;QAChF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAErC,6EAA6E;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEnC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AArQH,oCAsQC;AArQe,iBAAI,GAAG,yBAAW,CAAC,YAAY,CAAC","sourcesContent":["import { Sequence, Tx } from '@node-dlc/bitcoin';\nimport { BufferReader, BufferWriter, StreamReader } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { bigIntToNumber, toBigInt } from '../util';\nimport { DlcInput } from './DlcInput';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * FundingInput contains information about a specific input to be used\n * in a funding transaction, as well as its corresponding on-chain UTXO.\n * Matches rust-dlc FundingInput struct.\n */\nexport class FundingInput implements IDlcMessage {\n  public static type = MessageType.FundingInput;\n\n  /**\n   * Creates a FundingInput from JSON data (e.g., from test vectors)\n   * @param json JSON object representing funding input\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): FundingInput {\n    const instance = new FundingInput();\n\n    instance.inputSerialId = toBigInt(\n      json.inputSerialId || json.input_serial_id,\n    );\n\n    // Parse previous transaction\n    const prevTxHex = json.prevTx || json.prev_tx;\n    if (prevTxHex) {\n      instance.prevTx = Tx.decode(\n        StreamReader.fromBuffer(Buffer.from(prevTxHex, 'hex')),\n      );\n    } else {\n      // Create a minimal transaction for test purposes\n      // TODO: This should be properly implemented when full test vector support is needed\n      const writer = new BufferWriter();\n      writer.writeUInt32BE(2); // version\n      writer.writeUInt8(0); // input count\n      writer.writeUInt8(1); // output count\n      writer.writeUInt64BE(BigInt(100000000)); // output value\n      writer.writeUInt8(25); // script length\n      writer.writeBytes(Buffer.alloc(25)); // script\n      writer.writeUInt32BE(0); // locktime\n\n      const txBytes = writer.toBuffer();\n      instance.prevTx = Tx.decode(StreamReader.fromBuffer(txBytes));\n    }\n\n    instance.prevTxVout = json.prevTxVout || json.prev_tx_vout || 0;\n    instance.sequence = new Sequence(json.sequence || 0xffffffff);\n    instance.maxWitnessLen = json.maxWitnessLen || json.max_witness_len || 108;\n\n    const redeemScript = json.redeemScript || json.redeem_script || '';\n    instance.redeemScript = Buffer.from(redeemScript, 'hex');\n\n    // Parse optional DLC input\n    const dlcInput = json.dlcInput || json.dlc_input;\n    if (dlcInput) {\n      instance.dlcInput = DlcInput.fromJSON(dlcInput);\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a funding_input message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): FundingInput {\n    const instance = new FundingInput();\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.readUInt32BE());\n    instance.maxWitnessLen = reader.readUInt16BE();\n    const redeemScriptLen = reader.readUInt16BE();\n    instance.redeemScript = reader.readBytes(redeemScriptLen);\n\n    // Read optional DLC input using rust-dlc Optional format (0x00/0x01 prefix)\n    if (reader.position < reader.buffer.length) {\n      const dlcInputData = reader.readOptional();\n      if (dlcInputData) {\n        instance.dlcInput = DlcInput.deserializeBody(dlcInputData);\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a funding_input message without TLV wrapper (for use in DlcOffer)\n   * This matches rust-dlc behavior where FundingInput is in a vector without individual TLV wrappers\n   * @param buf\n   */\n  public static deserializeBody(buf: Buffer): FundingInput {\n    const instance = new FundingInput();\n    const reader = new BufferReader(buf);\n\n    // No TLV type/length to read - funding input body is serialized directly\n    instance.inputSerialId = reader.readUInt64BE();\n\n    // Read prev_tx with BigSize length (to match rust-dlc)\n    const prevTxLen = Number(reader.readBigSize());\n    instance.prevTx = Tx.decode(\n      StreamReader.fromBuffer(reader.readBytes(prevTxLen)),\n    );\n\n    instance.prevTxVout = reader.readUInt32BE();\n    instance.sequence = new Sequence(reader.readUInt32BE());\n    instance.maxWitnessLen = reader.readUInt16BE();\n\n    // Test: Read redeem_script with simple u16 length (to match rust-bitcoin ScriptBuf)\n    const redeemScriptLen = reader.readUInt16BE();\n    instance.redeemScript = reader.readBytes(redeemScriptLen);\n\n    // Read optional DLC input using rust-dlc Optional format (0x00/0x01 prefix)\n    if (reader.position < reader.buffer.length) {\n      const dlcInputData = reader.readOptional();\n      if (dlcInputData) {\n        instance.dlcInput = DlcInput.deserializeBody(dlcInputData);\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for funding_input message. funding_input = 42772\n   */\n  public type = FundingInput.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 dlcInput?: DlcInput;\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 the output being spent is a segwit output (P2WPKH or P2WSH)\n    // Note: We check the output script type, not whether prevTx was created with segwit inputs.\n    // This allows spending UTXOs from transactions that used legacy inputs but have segwit outputs.\n    const output = this.prevTx.outputs[this.prevTxVout];\n    if (!output) {\n      throw new Error(\n        `fundingInput prevTxVout ${this.prevTxVout} does not exist in prevTx`,\n      );\n    }\n\n    const scriptPubKey = output.scriptPubKey.serializeCmds();\n    // P2WPKH: OP_0 <20-byte-key-hash> = 0x0014{20 bytes} = 22 bytes total\n    // P2WSH:  OP_0 <32-byte-script-hash> = 0x0020{32 bytes} = 34 bytes total\n    // P2TR:   OP_1 <32-byte-pubkey> = 0x5120{32 bytes} = 34 bytes total\n    const isP2WPKH =\n      scriptPubKey.length === 22 &&\n      scriptPubKey[0] === 0x00 &&\n      scriptPubKey[1] === 0x14;\n    const isP2WSH =\n      scriptPubKey.length === 34 &&\n      scriptPubKey[0] === 0x00 &&\n      scriptPubKey[1] === 0x20;\n    const isP2TR =\n      scriptPubKey.length === 34 &&\n      scriptPubKey[0] === 0x51 &&\n      scriptPubKey[1] === 0x20;\n\n    if (!isP2WPKH && !isP2WSH && !isP2TR) {\n      throw new Error(\n        'fundingInput must spend a segwit output (P2WPKH, P2WSH, or P2TR)',\n      );\n    }\n  }\n\n  /**\n   * Converts funding_input to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): IFundingInputJSON {\n    const result: IFundingInputJSON = {\n      inputSerialId: bigIntToNumber(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    if (this.dlcInput) {\n      result.dlcInput = this.dlcInput.toJSON();\n    }\n\n    return result;\n  }\n\n  /**\n   * Serializes the funding_input 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    // Write optional DLC input using rust-dlc Optional format (0x00/0x01 prefix)\n    const dlcInputData = this.dlcInput ? this.dlcInput.serializeBody() : null;\n    dataWriter.writeOptional(dlcInputData);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n\n  public serializeBody(): Buffer {\n    // Serialize funding input body without TLV wrapper (for embedding in DlcOffer)\n    // This matches rust-dlc behavior where FundingInput.write() doesn't add type_id\n    const writer = new BufferWriter();\n    writer.writeUInt64BE(this.inputSerialId);\n\n    // Use BigSize for prev_tx length to match rust-dlc (prev_tx, vec)\n    writer.writeBigSize(this.prevTx.serialize().length);\n    writer.writeBytes(this.prevTx.serialize());\n\n    writer.writeUInt32BE(this.prevTxVout);\n    writer.writeUInt32BE(this.sequence.value);\n    writer.writeUInt16BE(this.maxWitnessLen);\n\n    // Test: Use simple u16 length for redeem_script to match rust-bitcoin ScriptBuf\n    writer.writeUInt16BE(this.redeemScript.length);\n    writer.writeBytes(this.redeemScript);\n\n    // Write optional DLC input using rust-dlc Optional format (0x00/0x01 prefix)\n    const dlcInputData = this.dlcInput ? this.dlcInput.serializeBody() : null;\n    writer.writeOptional(dlcInputData);\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IFundingInputJSON {\n  inputSerialId: number;\n  prevTx: string;\n  prevTxVout: number;\n  sequence: number;\n  maxWitnessLen: number;\n  redeemScript: string;\n  dlcInput?: {\n    localFundPubkey: string;\n    remoteFundPubkey: string;\n    contractId: string;\n  };\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b9a1172d892b46a5c5cbe1e08659094549d5d3fd","contentHash":"5bbcf85879be0c313c59d1ebba535b4fb22de0ebfb689448bd3fc53635b26c7d"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInput.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInput.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"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":16,"column":8},"end":{"line":16,"column":34}},"5":{"start":{"line":24,"column":25},"end":{"line":24,"column":39}},"6":{"start":{"line":26,"column":32},"end":{"line":26,"column":78}},"7":{"start":{"line":27,"column":8},"end":{"line":32,"column":9}},"8":{"start":{"line":28,"column":12},"end":{"line":28,"column":75}},"9":{"start":{"line":31,"column":12},"end":{"line":31,"column":59}},"10":{"start":{"line":34,"column":33},"end":{"line":34,"column":81}},"11":{"start":{"line":35,"column":8},"end":{"line":40,"column":9}},"12":{"start":{"line":36,"column":12},"end":{"line":36,"column":77}},"13":{"start":{"line":39,"column":12},"end":{"line":39,"column":60}},"14":{"start":{"line":42,"column":27},"end":{"line":42,"column":62}},"15":{"start":{"line":43,"column":8},"end":{"line":48,"column":9}},"16":{"start":{"line":44,"column":12},"end":{"line":44,"column":65}},"17":{"start":{"line":47,"column":12},"end":{"line":47,"column":54}},"18":{"start":{"line":49,"column":8},"end":{"line":49,"column":24}},"19":{"start":{"line":56,"column":25},"end":{"line":56,"column":39}},"20":{"start":{"line":57,"column":23},"end":{"line":57,"column":52}},"21":{"start":{"line":58,"column":8},"end":{"line":58,"column":29}},"22":{"start":{"line":59,"column":8},"end":{"line":59,"column":47}},"23":{"start":{"line":61,"column":8},"end":{"line":61,"column":56}},"24":{"start":{"line":63,"column":8},"end":{"line":63,"column":57}},"25":{"start":{"line":65,"column":8},"end":{"line":65,"column":51}},"26":{"start":{"line":66,"column":8},"end":{"line":66,"column":24}},"27":{"start":{"line":73,"column":25},"end":{"line":73,"column":39}},"28":{"start":{"line":74,"column":23},"end":{"line":74,"column":52}},"29":{"start":{"line":76,"column":8},"end":{"line":76,"column":56}},"30":{"start":{"line":78,"column":8},"end":{"line":78,"column":57}},"31":{"start":{"line":80,"column":8},"end":{"line":80,"column":51}},"32":{"start":{"line":81,"column":8},"end":{"line":81,"column":24}},"33":{"start":{"line":88,"column":8},"end":{"line":90,"column":9}},"34":{"start":{"line":89,"column":12},"end":{"line":89,"column":59}},"35":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"36":{"start":{"line":92,"column":12},"end":{"line":92,"column":60}},"37":{"start":{"line":94,"column":8},"end":{"line":96,"column":9}},"38":{"start":{"line":95,"column":12},"end":{"line":95,"column":67}},"39":{"start":{"line":102,"column":8},"end":{"line":106,"column":10}},"40":{"start":{"line":112,"column":23},"end":{"line":112,"column":49}},"41":{"start":{"line":113,"column":8},"end":{"line":113,"column":39}},"42":{"start":{"line":114,"column":27},"end":{"line":114,"column":53}},"43":{"start":{"line":115,"column":8},"end":{"line":115,"column":52}},"44":{"start":{"line":116,"column":8},"end":{"line":116,"column":53}},"45":{"start":{"line":117,"column":8},"end":{"line":117,"column":47}},"46":{"start":{"line":118,"column":8},"end":{"line":118,"column":45}},"47":{"start":{"line":119,"column":8},"end":{"line":119,"column":49}},"48":{"start":{"line":120,"column":8},"end":{"line":120,"column":33}},"49":{"start":{"line":126,"column":23},"end":{"line":126,"column":49}},"50":{"start":{"line":127,"column":8},"end":{"line":127,"column":48}},"51":{"start":{"line":128,"column":8},"end":{"line":128,"column":49}},"52":{"start":{"line":129,"column":8},"end":{"line":129,"column":43}},"53":{"start":{"line":130,"column":8},"end":{"line":130,"column":33}},"54":{"start":{"line":133,"column":0},"end":{"line":133,"column":28}},"55":{"start":{"line":134,"column":0},"end":{"line":134,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":18},"end":{"line":17,"column":5}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":26},"end":{"line":50,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":28},"end":{"line":67,"column":5}},"line":55},"3":{"name":"(anonymous_3)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":32},"end":{"line":82,"column":5}},"line":72},"4":{"name":"(anonymous_4)","decl":{"start":{"line":87,"column":4},"end":{"line":87,"column":5}},"loc":{"start":{"line":87,"column":15},"end":{"line":97,"column":5}},"line":87},"5":{"name":"(anonymous_5)","decl":{"start":{"line":101,"column":4},"end":{"line":101,"column":5}},"loc":{"start":{"line":101,"column":13},"end":{"line":107,"column":5}},"line":101},"6":{"name":"(anonymous_6)","decl":{"start":{"line":111,"column":4},"end":{"line":111,"column":5}},"loc":{"start":{"line":111,"column":16},"end":{"line":121,"column":5}},"line":111},"7":{"name":"(anonymous_7)","decl":{"start":{"line":125,"column":4},"end":{"line":125,"column":5}},"loc":{"start":{"line":125,"column":20},"end":{"line":131,"column":5}},"line":125}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":32},"end":{"line":26,"column":78}},"type":"binary-expr","locations":[{"start":{"line":26,"column":32},"end":{"line":26,"column":52}},{"start":{"line":26,"column":56},"end":{"line":26,"column":78}}],"line":26},"1":{"loc":{"start":{"line":27,"column":8},"end":{"line":32,"column":9}},"type":"if","locations":[{"start":{"line":27,"column":8},"end":{"line":32,"column":9}},{"start":{"line":30,"column":13},"end":{"line":32,"column":9}}],"line":27},"2":{"loc":{"start":{"line":34,"column":33},"end":{"line":34,"column":81}},"type":"binary-expr","locations":[{"start":{"line":34,"column":33},"end":{"line":34,"column":54}},{"start":{"line":34,"column":58},"end":{"line":34,"column":81}}],"line":34},"3":{"loc":{"start":{"line":35,"column":8},"end":{"line":40,"column":9}},"type":"if","locations":[{"start":{"line":35,"column":8},"end":{"line":40,"column":9}},{"start":{"line":38,"column":13},"end":{"line":40,"column":9}}],"line":35},"4":{"loc":{"start":{"line":42,"column":27},"end":{"line":42,"column":62}},"type":"binary-expr","locations":[{"start":{"line":42,"column":27},"end":{"line":42,"column":42}},{"start":{"line":42,"column":46},"end":{"line":42,"column":62}}],"line":42},"5":{"loc":{"start":{"line":43,"column":8},"end":{"line":48,"column":9}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":48,"column":9}},{"start":{"line":46,"column":13},"end":{"line":48,"column":9}}],"line":43},"6":{"loc":{"start":{"line":88,"column":8},"end":{"line":90,"column":9}},"type":"if","locations":[{"start":{"line":88,"column":8},"end":{"line":90,"column":9}},{"start":{},"end":{}}],"line":88},"7":{"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":{},"end":{}}],"line":91},"8":{"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":{},"end":{}}],"line":94},"9":{"loc":{"start":{"line":94,"column":12},"end":{"line":94,"column":61}},"type":"binary-expr","locations":[{"start":{"line":94,"column":12},"end":{"line":94,"column":28}},{"start":{"line":94,"column":32},"end":{"line":94,"column":61}}],"line":94}},"s":{"0":1,"1":1,"2":1,"3":1,"4":25,"5":19,"6":19,"7":19,"8":19,"9":0,"10":19,"11":19,"12":19,"13":0,"14":19,"15":19,"16":19,"17":0,"18":19,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":5,"28":5,"29":5,"30":5,"31":5,"32":5,"33":6,"34":1,"35":5,"36":1,"37":4,"38":1,"39":4,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":8,"50":8,"51":8,"52":8,"53":8,"54":1,"55":1},"f":{"0":25,"1":19,"2":1,"3":5,"4":6,"5":4,"6":2,"7":8},"b":{"0":[19,1],"1":[19,0],"2":[19,1],"3":[19,0],"4":[19,1],"5":[19,0],"6":[1,5],"7":[1,4],"8":[1,3],"9":[4,4]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInput.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/DlcInput.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\n/**\n * DlcInput contains information about a DLC input to be used in a funding transaction.\n * Contains the local and remote funding public keys and the contract ID of the DLC input.\n * Matches rust-dlc DlcInput struct.\n */\nexport class DlcInput implements IDlcMessage {\n  public static type = MessageType.DlcInput;\n\n  /**\n   * Creates a DlcInput from JSON data\n   * @param json JSON object representing DLC input\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DlcInput {\n    const instance = new DlcInput();\n\n    // Parse local funding public key\n    const localFundPubkey = json.localFundPubkey || json.local_fund_pubkey;\n    if (typeof localFundPubkey === 'string') {\n      instance.localFundPubkey = Buffer.from(localFundPubkey, 'hex');\n    } else {\n      throw new Error('localFundPubkey is required');\n    }\n\n    // Parse remote funding public key\n    const remoteFundPubkey = json.remoteFundPubkey || json.remote_fund_pubkey;\n    if (typeof remoteFundPubkey === 'string') {\n      instance.remoteFundPubkey = Buffer.from(remoteFundPubkey, 'hex');\n    } else {\n      throw new Error('remoteFundPubkey is required');\n    }\n\n    // Parse contract ID (32 bytes)\n    const contractId = json.contractId || json.contract_id;\n    if (typeof contractId === 'string') {\n      instance.contractId = Buffer.from(contractId, 'hex');\n    } else {\n      throw new Error('contractId is required');\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a dlc_input message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcInput {\n    const instance = new DlcInput();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    // Read local funding public key (33 bytes)\n    instance.localFundPubkey = reader.readBytes(33);\n\n    // Read remote funding public key (33 bytes)\n    instance.remoteFundPubkey = reader.readBytes(33);\n\n    // Read contract ID (32 bytes)\n    instance.contractId = reader.readBytes(32);\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a dlc_input without TLV wrapper (for use in FundingInput)\n   * @param buf\n   */\n  public static deserializeBody(buf: Buffer): DlcInput {\n    const instance = new DlcInput();\n    const reader = new BufferReader(buf);\n\n    // Read local funding public key (33 bytes)\n    instance.localFundPubkey = reader.readBytes(33);\n\n    // Read remote funding public key (33 bytes)\n    instance.remoteFundPubkey = reader.readBytes(33);\n\n    // Read contract ID (32 bytes)\n    instance.contractId = reader.readBytes(32);\n\n    return instance;\n  }\n\n  /**\n   * The type for dlc_input message. dlc_input = 42773\n   */\n  public type = DlcInput.type;\n\n  public length: bigint;\n\n  public localFundPubkey: Buffer;\n\n  public remoteFundPubkey: Buffer;\n\n  public contractId: Buffer;\n\n  /**\n   * Validates correctness of all fields\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    if (!this.localFundPubkey) {\n      throw new Error('localFundPubkey is required');\n    }\n    if (!this.remoteFundPubkey) {\n      throw new Error('remoteFundPubkey is required');\n    }\n    if (!this.contractId || this.contractId.length !== 32) {\n      throw new Error('contractId must be a 32-byte buffer');\n    }\n  }\n\n  /**\n   * Converts dlc_input to JSON\n   */\n  public toJSON(): IDlcInputJSON {\n    return {\n      localFundPubkey: this.localFundPubkey.toString('hex'),\n      remoteFundPubkey: this.remoteFundPubkey.toString('hex'),\n      contractId: this.contractId.toString('hex'),\n    };\n  }\n\n  /**\n   * Serializes the dlc_input 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.localFundPubkey);\n    dataWriter.writeBytes(this.remoteFundPubkey);\n    dataWriter.writeBytes(this.contractId);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n\n  /**\n   * Serializes dlc_input body without TLV wrapper (for embedding in FundingInput)\n   */\n  public serializeBody(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBytes(this.localFundPubkey);\n    writer.writeBytes(this.remoteFundPubkey);\n    writer.writeBytes(this.contractId);\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IDlcInputJSON {\n  localFundPubkey: string;\n  remoteFundPubkey: string;\n  contractId: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0fd4d2eb38240e8b84b87a5b5278e76bf0e61fd2","contentHash":"67bfa46639de97e0fefc67042175ee483a8ac417fca4892de5b3914959d382a6"},"/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":195}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":28},"end":{"line":5,"column":58}},"4":{"start":{"line":12,"column":23},"end":{"line":12,"column":52}},"5":{"start":{"line":13,"column":30},"end":{"line":13,"column":58}},"6":{"start":{"line":14,"column":8},"end":{"line":21,"column":9}},"7":{"start":{"line":16,"column":16},"end":{"line":16,"column":64}},"8":{"start":{"line":18,"column":16},"end":{"line":18,"column":66}},"9":{"start":{"line":20,"column":16},"end":{"line":20,"column":129}},"10":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"11":{"start":{"line":30,"column":12},"end":{"line":30,"column":72}},"12":{"start":{"line":32,"column":24},"end":{"line":32,"column":36}},"13":{"start":{"line":33,"column":8},"end":{"line":40,"column":9}},"14":{"start":{"line":35,"column":16},"end":{"line":35,"column":62}},"15":{"start":{"line":37,"column":16},"end":{"line":37,"column":64}},"16":{"start":{"line":39,"column":16},"end":{"line":39,"column":114}},"17":{"start":{"line":43,"column":0},"end":{"line":43,"column":46}},"18":{"start":{"line":49,"column":8},"end":{"line":49,"column":28}},"19":{"start":{"line":50,"column":8},"end":{"line":50,"column":32}},"20":{"start":{"line":51,"column":8},"end":{"line":51,"column":31}},"21":{"start":{"line":59,"column":25},"end":{"line":59,"column":54}},"22":{"start":{"line":60,"column":8},"end":{"line":62,"column":9}},"23":{"start":{"line":61,"column":12},"end":{"line":61,"column":115}},"24":{"start":{"line":63,"column":8},"end":{"line":65,"column":9}},"25":{"start":{"line":64,"column":12},"end":{"line":64,"column":88}},"26":{"start":{"line":66,"column":8},"end":{"line":66,"column":108}},"27":{"start":{"line":67,"column":8},"end":{"line":67,"column":24}},"28":{"start":{"line":74,"column":25},"end":{"line":74,"column":54}},"29":{"start":{"line":75,"column":23},"end":{"line":75,"column":52}},"30":{"start":{"line":76,"column":8},"end":{"line":76,"column":29}},"31":{"start":{"line":78,"column":31},"end":{"line":78,"column":49}},"32":{"start":{"line":79,"column":8},"end":{"line":79,"column":103}},"33":{"start":{"line":80,"column":8},"end":{"line":80,"column":24}},"34":{"start":{"line":86,"column":8},"end":{"line":89,"column":10}},"35":{"start":{"line":95,"column":23},"end":{"line":95,"column":49}},"36":{"start":{"line":96,"column":8},"end":{"line":96,"column":48}},"37":{"start":{"line":97,"column":8},"end":{"line":97,"column":62}},"38":{"start":{"line":98,"column":8},"end":{"line":98,"column":33}},"39":{"start":{"line":101,"column":0},"end":{"line":101,"column":58}},"40":{"start":{"line":107,"column":8},"end":{"line":107,"column":28}},"41":{"start":{"line":108,"column":8},"end":{"line":108,"column":34}},"42":{"start":{"line":109,"column":8},"end":{"line":109,"column":31}},"43":{"start":{"line":110,"column":8},"end":{"line":110,"column":36}},"44":{"start":{"line":118,"column":25},"end":{"line":118,"column":56}},"45":{"start":{"line":119,"column":8},"end":{"line":121,"column":9}},"46":{"start":{"line":120,"column":12},"end":{"line":120,"column":119}},"47":{"start":{"line":122,"column":8},"end":{"line":124,"column":9}},"48":{"start":{"line":123,"column":12},"end":{"line":123,"column":90}},"49":{"start":{"line":126,"column":8},"end":{"line":126,"column":118}},"50":{"start":{"line":126,"column":79},"end":{"line":126,"column":116}},"51":{"start":{"line":127,"column":8},"end":{"line":127,"column":24}},"52":{"start":{"line":134,"column":25},"end":{"line":134,"column":56}},"53":{"start":{"line":135,"column":23},"end":{"line":135,"column":52}},"54":{"start":{"line":136,"column":8},"end":{"line":136,"column":29}},"55":{"start":{"line":137,"column":26},"end":{"line":137,"column":54}},"56":{"start":{"line":138,"column":8},"end":{"line":159,"column":9}},"57":{"start":{"line":138,"column":21},"end":{"line":138,"column":22}},"58":{"start":{"line":141,"column":29},"end":{"line":141,"column":44}},"59":{"start":{"line":142,"column":34},"end":{"line":142,"column":62}},"60":{"start":{"line":143,"column":12},"end":{"line":158,"column":13}},"61":{"start":{"line":146,"column":42},"end":{"line":146,"column":111}},"62":{"start":{"line":148,"column":16},"end":{"line":148,"column":43}},"63":{"start":{"line":149,"column":36},"end":{"line":149,"column":76}},"64":{"start":{"line":150,"column":34},"end":{"line":150,"column":63}},"65":{"start":{"line":151,"column":16},"end":{"line":151,"column":90}},"66":{"start":{"line":153,"column":17},"end":{"line":158,"column":13}},"67":{"start":{"line":154,"column":16},"end":{"line":154,"column":76}},"68":{"start":{"line":157,"column":16},"end":{"line":157,"column":75}},"69":{"start":{"line":160,"column":8},"end":{"line":160,"column":24}},"70":{"start":{"line":166,"column":8},"end":{"line":169,"column":10}},"71":{"start":{"line":168,"column":69},"end":{"line":168,"column":83}},"72":{"start":{"line":175,"column":23},"end":{"line":175,"column":49}},"73":{"start":{"line":176,"column":8},"end":{"line":176,"column":48}},"74":{"start":{"line":177,"column":8},"end":{"line":177,"column":59}},"75":{"start":{"line":178,"column":8},"end":{"line":180,"column":9}},"76":{"start":{"line":179,"column":12},"end":{"line":179,"column":60}},"77":{"start":{"line":181,"column":8},"end":{"line":181,"column":33}},"78":{"start":{"line":184,"column":0},"end":{"line":184,"column":62}},"79":{"start":{"line":186,"column":0},"end":{"line":186,"column":54}},"80":{"start":{"line":187,"column":0},"end":{"line":187,"column":54}},"81":{"start":{"line":188,"column":0},"end":{"line":188,"column":56}}},"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":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":26},"end":{"line":41,"column":5}},"line":28},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":18},"end":{"line":52,"column":5}},"line":48},"3":{"name":"(anonymous_3)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":26},"end":{"line":68,"column":5}},"line":58},"4":{"name":"(anonymous_4)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":28},"end":{"line":81,"column":5}},"line":73},"5":{"name":"(anonymous_5)","decl":{"start":{"line":85,"column":4},"end":{"line":85,"column":5}},"loc":{"start":{"line":85,"column":13},"end":{"line":90,"column":5}},"line":85},"6":{"name":"(anonymous_6)","decl":{"start":{"line":94,"column":4},"end":{"line":94,"column":5}},"loc":{"start":{"line":94,"column":16},"end":{"line":99,"column":5}},"line":94},"7":{"name":"(anonymous_7)","decl":{"start":{"line":106,"column":4},"end":{"line":106,"column":5}},"loc":{"start":{"line":106,"column":18},"end":{"line":111,"column":5}},"line":106},"8":{"name":"(anonymous_8)","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":5}},"loc":{"start":{"line":117,"column":26},"end":{"line":128,"column":5}},"line":117},"9":{"name":"(anonymous_9)","decl":{"start":{"line":126,"column":64},"end":{"line":126,"column":65}},"loc":{"start":{"line":126,"column":79},"end":{"line":126,"column":116}},"line":126},"10":{"name":"(anonymous_10)","decl":{"start":{"line":133,"column":4},"end":{"line":133,"column":5}},"loc":{"start":{"line":133,"column":28},"end":{"line":161,"column":5}},"line":133},"11":{"name":"(anonymous_11)","decl":{"start":{"line":165,"column":4},"end":{"line":165,"column":5}},"loc":{"start":{"line":165,"column":13},"end":{"line":170,"column":5}},"line":165},"12":{"name":"(anonymous_12)","decl":{"start":{"line":168,"column":58},"end":{"line":168,"column":59}},"loc":{"start":{"line":168,"column":69},"end":{"line":168,"column":83}},"line":168},"13":{"name":"(anonymous_13)","decl":{"start":{"line":174,"column":4},"end":{"line":174,"column":5}},"loc":{"start":{"line":174,"column":16},"end":{"line":182,"column":5}},"line":174}},"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":64}},{"start":{"line":17,"column":12},"end":{"line":18,"column":66}},{"start":{"line":19,"column":12},"end":{"line":20,"column":129}}],"line":14},"1":{"loc":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},{"start":{},"end":{}}],"line":29},"2":{"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":45}},"type":"binary-expr","locations":[{"start":{"line":29,"column":12},"end":{"line":29,"column":17}},{"start":{"line":29,"column":21},"end":{"line":29,"column":45}}],"line":29},"3":{"loc":{"start":{"line":33,"column":8},"end":{"line":40,"column":9}},"type":"switch","locations":[{"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":114}}],"line":33},"4":{"loc":{"start":{"line":60,"column":8},"end":{"line":62,"column":9}},"type":"if","locations":[{"start":{"line":60,"column":8},"end":{"line":62,"column":9}},{"start":{},"end":{}}],"line":60},"5":{"loc":{"start":{"line":63,"column":8},"end":{"line":65,"column":9}},"type":"if","locations":[{"start":{"line":63,"column":8},"end":{"line":65,"column":9}},{"start":{},"end":{}}],"line":63},"6":{"loc":{"start":{"line":119,"column":8},"end":{"line":121,"column":9}},"type":"if","locations":[{"start":{"line":119,"column":8},"end":{"line":121,"column":9}},{"start":{},"end":{}}],"line":119},"7":{"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":{},"end":{}}],"line":122},"8":{"loc":{"start":{"line":122,"column":12},"end":{"line":122,"column":77}},"type":"binary-expr","locations":[{"start":{"line":122,"column":12},"end":{"line":122,"column":35}},{"start":{"line":122,"column":39},"end":{"line":122,"column":77}}],"line":122},"9":{"loc":{"start":{"line":143,"column":12},"end":{"line":158,"column":13}},"type":"if","locations":[{"start":{"line":143,"column":12},"end":{"line":158,"column":13}},{"start":{"line":153,"column":17},"end":{"line":158,"column":13}}],"line":143},"10":{"loc":{"start":{"line":153,"column":17},"end":{"line":158,"column":13}},"type":"if","locations":[{"start":{"line":153,"column":17},"end":{"line":158,"column":13}},{"start":{"line":156,"column":17},"end":{"line":158,"column":13}}],"line":153}},"s":{"0":1,"1":1,"2":1,"3":1,"4":7,"5":7,"6":7,"7":5,"8":2,"9":0,"10":4,"11":0,"12":4,"13":4,"14":3,"15":1,"16":0,"17":1,"18":19,"19":19,"20":19,"21":4,"22":4,"23":0,"24":4,"25":0,"26":4,"27":4,"28":5,"29":5,"30":5,"31":5,"32":5,"33":5,"34":2,"35":8,"36":8,"37":8,"38":8,"39":1,"40":8,"41":8,"42":8,"43":8,"44":2,"45":2,"46":0,"47":2,"48":0,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":3,"65":3,"66":0,"67":0,"68":0,"69":2,"70":1,"71":1,"72":3,"73":3,"74":3,"75":3,"76":5,"77":3,"78":1,"79":1,"80":1,"81":1},"f":{"0":7,"1":4,"2":19,"3":4,"4":5,"5":2,"6":8,"7":8,"8":2,"9":2,"10":2,"11":1,"12":1,"13":3},"b":{"0":[5,2,0],"1":[0,4],"2":[4,4],"3":[3,1,0],"4":[0,4],"5":[0,4],"6":[0,2],"7":[0,2],"8":[2,2],"9":[3,0],"10":[0,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 { RoundingIntervals } from './RoundingIntervals';\nimport { IRoundingIntervalsJSON } from './RoundingIntervals';\n\n/**\n * Negotiation fields for DLC contract negotiation.\n * Follows the Rust enum pattern with Single and Disjoint variants.\n */\nexport abstract class NegotiationFields {\n  public static deserialize(buf: Buffer): NegotiationFields {\n    const reader = new BufferReader(buf);\n    const discriminator = Number(reader.readBigSize());\n\n    switch (discriminator) {\n      case 0:\n        return SingleNegotiationFields.deserialize(buf);\n      case 1:\n        return DisjointNegotiationFields.deserialize(buf);\n      default:\n        throw new Error(\n          `Invalid NegotiationFields discriminator: ${discriminator}. Must be 0 (Single) or 1 (Disjoint)`,\n        );\n    }\n  }\n\n  /**\n   * Creates a NegotiationFields from JSON data\n   * @param json JSON object representing negotiation fields\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): NegotiationFields {\n    if (!json || typeof json !== 'object') {\n      throw new Error('Invalid JSON input for NegotiationFields');\n    }\n\n    const variant = json.variant;\n\n    switch (variant) {\n      case 'Single':\n        return SingleNegotiationFields.fromJSON(json);\n      case 'Disjoint':\n        return DisjointNegotiationFields.fromJSON(json);\n      default:\n        throw new Error(\n          `Unknown negotiation fields variant: ${variant}. Must be 'Single' or 'Disjoint'`,\n        );\n    }\n  }\n\n  public abstract variant: 'Single' | 'Disjoint';\n  public abstract discriminator: number;\n  public abstract serialize(): Buffer;\n  public abstract toJSON(): INegotiationFieldsJSON;\n}\n\n/**\n * Negotiation fields for contract based on a single event.\n */\nexport class SingleNegotiationFields extends NegotiationFields {\n  /**\n   * Creates a SingleNegotiationFields from JSON data\n   * @param json JSON object representing single negotiation fields\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): SingleNegotiationFields {\n    const instance = new SingleNegotiationFields();\n\n    if (json.variant !== 'Single') {\n      throw new Error(\n        `Invalid variant for SingleNegotiationFields: expected 'Single', got ${json.variant}`,\n      );\n    }\n\n    if (!json.roundingIntervals) {\n      throw new Error(\n        'SingleNegotiationFields requires roundingIntervals field',\n      );\n    }\n\n    instance.roundingIntervals = RoundingIntervals.fromJSON(\n      json.roundingIntervals,\n    );\n\n    return instance;\n  }\n\n  /**\n   * Deserializes single negotiation fields\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): SingleNegotiationFields {\n    const instance = new SingleNegotiationFields();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read discriminator (0)\n\n    // Read remaining bytes as raw RoundingIntervals data\n    const remainingBytes = reader.readBytes();\n    instance.roundingIntervals = RoundingIntervals.deserialize(remainingBytes);\n\n    return instance;\n  }\n\n  public variant = 'Single' as const;\n  public discriminator = 0;\n  public roundingIntervals: RoundingIntervals;\n\n  /**\n   * Converts single negotiation fields to JSON\n   */\n  public toJSON(): ISingleNegotiationFieldsJSON {\n    return {\n      variant: this.variant,\n      roundingIntervals: this.roundingIntervals.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the single negotiation fields into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.discriminator);\n    writer.writeBytes(this.roundingIntervals.serialize());\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * Negotiation fields for contract based on multiple events.\n */\nexport class DisjointNegotiationFields extends NegotiationFields {\n  /**\n   * Creates a DisjointNegotiationFields from JSON data\n   * @param json JSON object representing disjoint negotiation fields\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DisjointNegotiationFields {\n    const instance = new DisjointNegotiationFields();\n\n    if (json.variant !== 'Disjoint') {\n      throw new Error(\n        `Invalid variant for DisjointNegotiationFields: expected 'Disjoint', got ${json.variant}`,\n      );\n    }\n\n    if (!json.negotiationFields || !Array.isArray(json.negotiationFields)) {\n      throw new Error(\n        'DisjointNegotiationFields requires negotiationFields array',\n      );\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    instance.negotiationFields = json.negotiationFields.map((fieldJson: any) =>\n      NegotiationFields.fromJSON(fieldJson),\n    );\n\n    return instance;\n  }\n\n  /**\n   * Deserializes disjoint negotiation fields\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DisjointNegotiationFields {\n    const instance = new DisjointNegotiationFields();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read discriminator (1)\n    const numFields = Number(reader.readBigSize());\n\n    for (let i = 0; i < numFields; i++) {\n      // For simplicity, let's read the nested field by looking ahead\n      // to determine its length based on its discriminator\n      const startPos = reader.position;\n      const discriminator = Number(reader.readBigSize());\n\n      if (discriminator === 0) {\n        // Single field: discriminator + RoundingIntervals data\n        // RoundingIntervals has its own length, so we need to parse it\n        const roundingIntervals = RoundingIntervals.deserialize(\n          reader.readBytes(),\n        );\n\n        // Reset and read the complete field\n        reader.position = startPos;\n        const fieldLength = 1 + roundingIntervals.serialize().length; // discriminator + data length\n        const fieldData = reader.readBytes(fieldLength);\n\n        instance.negotiationFields.push(\n          NegotiationFields.deserialize(fieldData),\n        );\n      } else if (discriminator === 1) {\n        throw new Error('Nested disjoint fields not yet supported');\n      } else {\n        throw new Error(`Unknown discriminator: ${discriminator}`);\n      }\n    }\n\n    return instance;\n  }\n\n  public variant = 'Disjoint' as const;\n  public discriminator = 1;\n  public negotiationFields: NegotiationFields[] = [];\n\n  /**\n   * Converts disjoint negotiation fields to JSON\n   */\n  public toJSON(): IDisjointNegotiationFieldsJSON {\n    return {\n      variant: this.variant,\n      negotiationFields: this.negotiationFields.map((field) => field.toJSON()),\n    };\n  }\n\n  /**\n   * Serializes the disjoint negotiation fields into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.discriminator);\n    writer.writeBigSize(this.negotiationFields.length);\n\n    for (const negotiationField of this.negotiationFields) {\n      writer.writeBytes(negotiationField.serialize());\n    }\n\n    return writer.toBuffer();\n  }\n}\n\nexport type INegotiationFieldsJSON =\n  | ISingleNegotiationFieldsJSON\n  | IDisjointNegotiationFieldsJSON;\n\nexport interface ISingleNegotiationFieldsJSON {\n  variant: 'Single';\n  roundingIntervals: IRoundingIntervalsJSON;\n}\n\nexport interface IDisjointNegotiationFieldsJSON {\n  variant: 'Disjoint';\n  negotiationFields: INegotiationFieldsJSON[];\n}\n\n// Legacy exports for backward compatibility - map to new structure\nexport const NegotiationFieldsV0 = SingleNegotiationFields; // V0 was empty, now maps to Single\nexport const NegotiationFieldsV1 = SingleNegotiationFields; // V1 had rounding intervals\nexport const NegotiationFieldsV2 = DisjointNegotiationFields; // V2 had list of fields\n\nexport type INegotiationFieldsV0JSON = ISingleNegotiationFieldsJSON;\nexport type INegotiationFieldsV1JSON = ISingleNegotiationFieldsJSON;\nexport type INegotiationFieldsV2JSON = IDisjointNegotiationFieldsJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"808f262269b0a29046997bae196746def4411ff8","contentHash":"f3a9aaeaa67b4ca2e6b0b5808ba04968996214f691e0555525714a24ff270ec4"},"/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":26}},"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":15},"end":{"line":8,"column":33}},"7":{"start":{"line":9,"column":23},"end":{"line":9,"column":48}},"8":{"start":{"line":10,"column":28},"end":{"line":10,"column":58}},"9":{"start":{"line":11,"column":26},"end":{"line":11,"column":54}},"10":{"start":{"line":22,"column":8},"end":{"line":22,"column":34}},"11":{"start":{"line":24,"column":8},"end":{"line":24,"column":62}},"12":{"start":{"line":25,"column":8},"end":{"line":25,"column":32}},"13":{"start":{"line":34,"column":25},"end":{"line":34,"column":39}},"14":{"start":{"line":36,"column":8},"end":{"line":37,"column":92}},"15":{"start":{"line":39,"column":8},"end":{"line":39,"column":86}},"16":{"start":{"line":40,"column":8},"end":{"line":40,"column":98}},"17":{"start":{"line":42,"column":8},"end":{"line":42,"column":116}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":119}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":111}},"20":{"start":{"line":46,"column":8},"end":{"line":48,"column":81}},"21":{"start":{"line":48,"column":32},"end":{"line":48,"column":79}},"22":{"start":{"line":50,"column":8},"end":{"line":83,"column":9}},"23":{"start":{"line":51,"column":12},"end":{"line":51,"column":85}},"24":{"start":{"line":52,"column":28},"end":{"line":52,"column":77}},"25":{"start":{"line":54,"column":12},"end":{"line":82,"column":13}},"26":{"start":{"line":56,"column":16},"end":{"line":67,"column":30}},"27":{"start":{"line":61,"column":20},"end":{"line":67,"column":28}},"28":{"start":{"line":62,"column":40},"end":{"line":62,"column":79}},"29":{"start":{"line":63,"column":24},"end":{"line":64,"column":89}},"30":{"start":{"line":65,"column":24},"end":{"line":65,"column":81}},"31":{"start":{"line":66,"column":24},"end":{"line":66,"column":39}},"32":{"start":{"line":69,"column":17},"end":{"line":82,"column":13}},"33":{"start":{"line":71,"column":16},"end":{"line":81,"column":26}},"34":{"start":{"line":75,"column":16},"end":{"line":81,"column":24}},"35":{"start":{"line":76,"column":36},"end":{"line":76,"column":75}},"36":{"start":{"line":77,"column":20},"end":{"line":78,"column":85}},"37":{"start":{"line":79,"column":20},"end":{"line":79,"column":77}},"38":{"start":{"line":80,"column":20},"end":{"line":80,"column":35}},"39":{"start":{"line":84,"column":8},"end":{"line":84,"column":24}},"40":{"start":{"line":92,"column":25},"end":{"line":92,"column":39}},"41":{"start":{"line":93,"column":23},"end":{"line":93,"column":52}},"42":{"start":{"line":94,"column":21},"end":{"line":94,"column":42}},"43":{"start":{"line":96,"column":8},"end":{"line":98,"column":9}},"44":{"start":{"line":97,"column":12},"end":{"line":97,"column":113}},"45":{"start":{"line":100,"column":8},"end":{"line":100,"column":57}},"46":{"start":{"line":101,"column":8},"end":{"line":101,"column":51}},"47":{"start":{"line":102,"column":8},"end":{"line":102,"column":55}},"48":{"start":{"line":103,"column":8},"end":{"line":103,"column":61}},"49":{"start":{"line":104,"column":8},"end":{"line":104,"column":62}},"50":{"start":{"line":105,"column":8},"end":{"line":105,"column":59}},"51":{"start":{"line":107,"column":33},"end":{"line":107,"column":61}},"52":{"start":{"line":108,"column":8},"end":{"line":115,"column":9}},"53":{"start":{"line":108,"column":21},"end":{"line":108,"column":22}},"54":{"start":{"line":110,"column":33},"end":{"line":110,"column":130}},"55":{"start":{"line":111,"column":12},"end":{"line":111,"column":54}},"56":{"start":{"line":113,"column":39},"end":{"line":113,"column":74}},"57":{"start":{"line":114,"column":12},"end":{"line":114,"column":50}},"58":{"start":{"line":117,"column":8},"end":{"line":117,"column":141}},"59":{"start":{"line":119,"column":30},"end":{"line":119,"column":75}},"60":{"start":{"line":120,"column":8},"end":{"line":120,"column":41}},"61":{"start":{"line":122,"column":8},"end":{"line":131,"column":9}},"62":{"start":{"line":123,"column":24},"end":{"line":123,"column":52}},"63":{"start":{"line":124,"column":30},"end":{"line":124,"column":59}},"64":{"start":{"line":125,"column":29},"end":{"line":125,"column":76}},"65":{"start":{"line":127,"column":12},"end":{"line":129,"column":13}},"66":{"start":{"line":128,"column":16},"end":{"line":128,"column":42}},"67":{"start":{"line":130,"column":12},"end":{"line":130,"column":73}},"68":{"start":{"line":132,"column":8},"end":{"line":132,"column":24}},"69":{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},"70":{"start":{"line":142,"column":12},"end":{"line":142,"column":130}},"71":{"start":{"line":145,"column":8},"end":{"line":147,"column":9}},"72":{"start":{"line":146,"column":12},"end":{"line":146,"column":59}},"73":{"start":{"line":149,"column":8},"end":{"line":151,"column":9}},"74":{"start":{"line":150,"column":12},"end":{"line":150,"column":63}},"75":{"start":{"line":153,"column":31},"end":{"line":153,"column":85}},"76":{"start":{"line":153,"column":65},"end":{"line":153,"column":84}},"77":{"start":{"line":154,"column":8},"end":{"line":156,"column":9}},"78":{"start":{"line":155,"column":12},"end":{"line":155,"column":61}},"79":{"start":{"line":158,"column":8},"end":{"line":158,"column":64}},"80":{"start":{"line":158,"column":46},"end":{"line":158,"column":62}},"81":{"start":{"line":166,"column":21},"end":{"line":166,"column":23}},"82":{"start":{"line":167,"column":8},"end":{"line":169,"column":9}},"83":{"start":{"line":168,"column":12},"end":{"line":168,"column":109}},"84":{"start":{"line":168,"column":46},"end":{"line":168,"column":107}},"85":{"start":{"line":171,"column":8},"end":{"line":180,"column":10}},"86":{"start":{"line":178,"column":61},"end":{"line":178,"column":75}},"87":{"start":{"line":187,"column":23},"end":{"line":187,"column":49}},"88":{"start":{"line":188,"column":8},"end":{"line":188,"column":40}},"89":{"start":{"line":190,"column":8},"end":{"line":190,"column":51}},"90":{"start":{"line":191,"column":8},"end":{"line":191,"column":43}},"91":{"start":{"line":192,"column":8},"end":{"line":192,"column":47}},"92":{"start":{"line":193,"column":8},"end":{"line":193,"column":55}},"93":{"start":{"line":194,"column":8},"end":{"line":194,"column":56}},"94":{"start":{"line":195,"column":8},"end":{"line":195,"column":53}},"95":{"start":{"line":197,"column":8},"end":{"line":197,"column":55}},"96":{"start":{"line":198,"column":8},"end":{"line":201,"column":9}},"97":{"start":{"line":200,"column":12},"end":{"line":200,"column":60}},"98":{"start":{"line":203,"column":8},"end":{"line":203,"column":62}},"99":{"start":{"line":205,"column":8},"end":{"line":209,"column":9}},"100":{"start":{"line":206,"column":12},"end":{"line":208,"column":15}},"101":{"start":{"line":207,"column":16},"end":{"line":207,"column":44}},"102":{"start":{"line":210,"column":8},"end":{"line":210,"column":33}},"103":{"start":{"line":213,"column":0},"end":{"line":213,"column":28}},"104":{"start":{"line":214,"column":0},"end":{"line":214,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":18},"end":{"line":26,"column":5}},"line":18},"1":{"name":"(anonymous_1)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":26},"end":{"line":85,"column":5}},"line":33},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":17},"end":{"line":48,"column":18}},"loc":{"start":{"line":48,"column":32},"end":{"line":48,"column":79}},"line":48},"3":{"name":"(anonymous_3)","decl":{"start":{"line":59,"column":20},"end":{"line":59,"column":21}},"loc":{"start":{"line":61,"column":20},"end":{"line":67,"column":28}},"line":61},"4":{"name":"(anonymous_4)","decl":{"start":{"line":61,"column":45},"end":{"line":61,"column":46}},"loc":{"start":{"line":61,"column":55},"end":{"line":67,"column":21}},"line":61},"5":{"name":"(anonymous_5)","decl":{"start":{"line":73,"column":16},"end":{"line":73,"column":17}},"loc":{"start":{"line":75,"column":16},"end":{"line":81,"column":24}},"line":75},"6":{"name":"(anonymous_6)","decl":{"start":{"line":75,"column":41},"end":{"line":75,"column":42}},"loc":{"start":{"line":75,"column":51},"end":{"line":81,"column":17}},"line":75},"7":{"name":"(anonymous_7)","decl":{"start":{"line":91,"column":4},"end":{"line":91,"column":5}},"loc":{"start":{"line":91,"column":28},"end":{"line":133,"column":5}},"line":91},"8":{"name":"(anonymous_8)","decl":{"start":{"line":138,"column":4},"end":{"line":138,"column":5}},"loc":{"start":{"line":138,"column":15},"end":{"line":160,"column":5}},"line":138},"9":{"name":"(anonymous_9)","decl":{"start":{"line":153,"column":54},"end":{"line":153,"column":55}},"loc":{"start":{"line":153,"column":65},"end":{"line":153,"column":84}},"line":153},"10":{"name":"(anonymous_10)","decl":{"start":{"line":158,"column":35},"end":{"line":158,"column":36}},"loc":{"start":{"line":158,"column":46},"end":{"line":158,"column":62}},"line":158},"11":{"name":"(anonymous_11)","decl":{"start":{"line":164,"column":4},"end":{"line":164,"column":5}},"loc":{"start":{"line":164,"column":13},"end":{"line":181,"column":5}},"line":164},"12":{"name":"(anonymous_12)","decl":{"start":{"line":168,"column":37},"end":{"line":168,"column":38}},"loc":{"start":{"line":168,"column":46},"end":{"line":168,"column":107}},"line":168},"13":{"name":"(anonymous_13)","decl":{"start":{"line":178,"column":50},"end":{"line":178,"column":51}},"loc":{"start":{"line":178,"column":61},"end":{"line":178,"column":75}},"line":178},"14":{"name":"(anonymous_14)","decl":{"start":{"line":186,"column":4},"end":{"line":186,"column":5}},"loc":{"start":{"line":186,"column":16},"end":{"line":211,"column":5}},"line":186},"15":{"name":"(anonymous_15)","decl":{"start":{"line":206,"column":37},"end":{"line":206,"column":38}},"loc":{"start":{"line":206,"column":46},"end":{"line":208,"column":13}},"line":206}},"branchMap":{"0":{"loc":{"start":{"line":37,"column":12},"end":{"line":37,"column":91}},"type":"binary-expr","locations":[{"start":{"line":37,"column":12},"end":{"line":37,"column":32}},{"start":{"line":37,"column":36},"end":{"line":37,"column":57}},{"start":{"line":37,"column":61},"end":{"line":37,"column":91}}],"line":37},"1":{"loc":{"start":{"line":39,"column":42},"end":{"line":39,"column":77}},"type":"binary-expr","locations":[{"start":{"line":39,"column":42},"end":{"line":39,"column":57}},{"start":{"line":39,"column":61},"end":{"line":39,"column":77}}],"line":39},"2":{"loc":{"start":{"line":40,"column":46},"end":{"line":40,"column":89}},"type":"binary-expr","locations":[{"start":{"line":40,"column":46},"end":{"line":40,"column":65}},{"start":{"line":40,"column":69},"end":{"line":40,"column":89}}],"line":40},"3":{"loc":{"start":{"line":42,"column":60},"end":{"line":42,"column":114}},"type":"binary-expr","locations":[{"start":{"line":42,"column":60},"end":{"line":42,"column":84}},{"start":{"line":42,"column":88},"end":{"line":42,"column":114}}],"line":42},"4":{"loc":{"start":{"line":43,"column":61},"end":{"line":43,"column":117}},"type":"binary-expr","locations":[{"start":{"line":43,"column":61},"end":{"line":43,"column":86}},{"start":{"line":43,"column":90},"end":{"line":43,"column":117}}],"line":43},"5":{"loc":{"start":{"line":44,"column":58},"end":{"line":44,"column":109}},"type":"binary-expr","locations":[{"start":{"line":44,"column":58},"end":{"line":44,"column":80}},{"start":{"line":44,"column":84},"end":{"line":44,"column":109}}],"line":44},"6":{"loc":{"start":{"line":46,"column":34},"end":{"line":46,"column":81}},"type":"binary-expr","locations":[{"start":{"line":46,"column":34},"end":{"line":46,"column":52}},{"start":{"line":46,"column":56},"end":{"line":46,"column":75}},{"start":{"line":46,"column":79},"end":{"line":46,"column":81}}],"line":46},"7":{"loc":{"start":{"line":50,"column":8},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":50,"column":8},"end":{"line":83,"column":9}},{"start":{},"end":{}}],"line":50},"8":{"loc":{"start":{"line":50,"column":12},"end":{"line":50,"column":61}},"type":"binary-expr","locations":[{"start":{"line":50,"column":12},"end":{"line":50,"column":34}},{"start":{"line":50,"column":38},"end":{"line":50,"column":61}}],"line":50},"9":{"loc":{"start":{"line":52,"column":28},"end":{"line":52,"column":77}},"type":"binary-expr","locations":[{"start":{"line":52,"column":28},"end":{"line":52,"column":50}},{"start":{"line":52,"column":54},"end":{"line":52,"column":77}}],"line":52},"10":{"loc":{"start":{"line":54,"column":12},"end":{"line":82,"column":13}},"type":"if","locations":[{"start":{"line":54,"column":12},"end":{"line":82,"column":13}},{"start":{"line":69,"column":17},"end":{"line":82,"column":13}}],"line":54},"11":{"loc":{"start":{"line":61,"column":20},"end":{"line":67,"column":28}},"type":"binary-expr","locations":[{"start":{"line":61,"column":20},"end":{"line":67,"column":22}},{"start":{"line":67,"column":26},"end":{"line":67,"column":28}}],"line":61},"12":{"loc":{"start":{"line":64,"column":28},"end":{"line":64,"column":88}},"type":"binary-expr","locations":[{"start":{"line":64,"column":28},"end":{"line":64,"column":39}},{"start":{"line":64,"column":43},"end":{"line":64,"column":88}}],"line":64},"13":{"loc":{"start":{"line":64,"column":55},"end":{"line":64,"column":73}},"type":"binary-expr","locations":[{"start":{"line":64,"column":55},"end":{"line":64,"column":67}},{"start":{"line":64,"column":71},"end":{"line":64,"column":73}}],"line":64},"14":{"loc":{"start":{"line":65,"column":54},"end":{"line":65,"column":72}},"type":"binary-expr","locations":[{"start":{"line":65,"column":54},"end":{"line":65,"column":66}},{"start":{"line":65,"column":70},"end":{"line":65,"column":72}}],"line":65},"15":{"loc":{"start":{"line":69,"column":17},"end":{"line":82,"column":13}},"type":"if","locations":[{"start":{"line":69,"column":17},"end":{"line":82,"column":13}},{"start":{},"end":{}}],"line":69},"16":{"loc":{"start":{"line":75,"column":16},"end":{"line":81,"column":24}},"type":"binary-expr","locations":[{"start":{"line":75,"column":16},"end":{"line":81,"column":18}},{"start":{"line":81,"column":22},"end":{"line":81,"column":24}}],"line":75},"17":{"loc":{"start":{"line":78,"column":24},"end":{"line":78,"column":84}},"type":"binary-expr","locations":[{"start":{"line":78,"column":24},"end":{"line":78,"column":35}},{"start":{"line":78,"column":39},"end":{"line":78,"column":84}}],"line":78},"18":{"loc":{"start":{"line":78,"column":51},"end":{"line":78,"column":69}},"type":"binary-expr","locations":[{"start":{"line":78,"column":51},"end":{"line":78,"column":63}},{"start":{"line":78,"column":67},"end":{"line":78,"column":69}}],"line":78},"19":{"loc":{"start":{"line":79,"column":50},"end":{"line":79,"column":68}},"type":"binary-expr","locations":[{"start":{"line":79,"column":50},"end":{"line":79,"column":62}},{"start":{"line":79,"column":66},"end":{"line":79,"column":68}}],"line":79},"20":{"loc":{"start":{"line":96,"column":8},"end":{"line":98,"column":9}},"type":"if","locations":[{"start":{"line":96,"column":8},"end":{"line":98,"column":9}},{"start":{},"end":{}}],"line":96},"21":{"loc":{"start":{"line":127,"column":12},"end":{"line":129,"column":13}},"type":"if","locations":[{"start":{"line":127,"column":12},"end":{"line":129,"column":13}},{"start":{},"end":{}}],"line":127},"22":{"loc":{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},"type":"if","locations":[{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},{"start":{},"end":{}}],"line":141},"23":{"loc":{"start":{"line":145,"column":8},"end":{"line":147,"column":9}},"type":"if","locations":[{"start":{"line":145,"column":8},"end":{"line":147,"column":9}},{"start":{},"end":{}}],"line":145},"24":{"loc":{"start":{"line":145,"column":12},"end":{"line":145,"column":61}},"type":"binary-expr","locations":[{"start":{"line":145,"column":12},"end":{"line":145,"column":28}},{"start":{"line":145,"column":32},"end":{"line":145,"column":61}}],"line":145},"25":{"loc":{"start":{"line":149,"column":8},"end":{"line":151,"column":9}},"type":"if","locations":[{"start":{"line":149,"column":8},"end":{"line":151,"column":9}},{"start":{},"end":{}}],"line":149},"26":{"loc":{"start":{"line":149,"column":12},"end":{"line":149,"column":69}},"type":"binary-expr","locations":[{"start":{"line":149,"column":12},"end":{"line":149,"column":32}},{"start":{"line":149,"column":36},"end":{"line":149,"column":69}}],"line":149},"27":{"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":{},"end":{}}],"line":154},"28":{"loc":{"start":{"line":167,"column":8},"end":{"line":169,"column":9}},"type":"if","locations":[{"start":{"line":167,"column":8},"end":{"line":169,"column":9}},{"start":{},"end":{}}],"line":167},"29":{"loc":{"start":{"line":205,"column":8},"end":{"line":209,"column":9}},"type":"if","locations":[{"start":{"line":205,"column":8},"end":{"line":209,"column":9}},{"start":{},"end":{}}],"line":205}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":26,"11":26,"12":26,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":2,"26":2,"27":2,"28":4,"29":4,"30":4,"31":4,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":2,"40":5,"41":5,"42":5,"43":5,"44":1,"45":4,"46":4,"47":4,"48":4,"49":4,"50":4,"51":4,"52":4,"53":4,"54":0,"55":0,"56":0,"57":0,"58":4,"59":4,"60":4,"61":4,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":4,"69":4,"70":0,"71":4,"72":1,"73":3,"74":1,"75":2,"76":3,"77":2,"78":1,"79":1,"80":1,"81":3,"82":3,"83":0,"84":0,"85":3,"86":3,"87":9,"88":9,"89":9,"90":9,"91":9,"92":9,"93":9,"94":9,"95":9,"96":9,"97":4,"98":9,"99":9,"100":0,"101":0,"102":9,"103":1,"104":1},"f":{"0":26,"1":2,"2":2,"3":2,"4":4,"5":0,"6":0,"7":5,"8":4,"9":3,"10":1,"11":3,"12":0,"13":3,"14":9,"15":0},"b":{"0":[2,1,1],"1":[2,0],"2":[2,0],"3":[2,0],"4":[2,0],"5":[2,0],"6":[2,0,0],"7":[2,0],"8":[2,0],"9":[2,0],"10":[2,0],"11":[2,0],"12":[4,2],"13":[2,0],"14":[4,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[1,4],"21":[0,0],"22":[0,4],"23":[1,3],"24":[4,4],"25":[1,2],"26":[3,3],"27":[1,1],"28":[0,3],"29":[0,9]},"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, PROTOCOL_VERSION } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport { bigIntToNumber, toBigInt } from '../util';\nimport { IDlcMessage } from './DlcMessage';\nimport { FundingInput, IFundingInputJSON } from './FundingInput';\nimport { FundingSignatures, IFundingSignaturesJSON } from './FundingSignatures';\nimport { ScriptWitnessV0 } from './ScriptWitnessV0';\n\n/**\n * DlcClose message contains information about a node and indicates its\n * desire to close an existing contract.\n * Updated to follow DlcOffer architectural patterns.\n */\nexport class DlcClose implements IDlcMessage {\n  public static type = MessageType.DlcClose;\n\n  /**\n   * Creates a DlcClose from JSON data (e.g., from test vectors)\n   * Handles both our internal format and external test vector formats\n   * @param json JSON object representing a DLC close message\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DlcClose {\n    const instance = new DlcClose();\n\n    // Basic fields with field name variations\n    instance.protocolVersion =\n      json.protocolVersion || json.protocol_version || PROTOCOL_VERSION;\n\n    // Basic fields with field name variations\n    instance.contractId = Buffer.from(\n      json.contractId || json.contract_id,\n      'hex',\n    );\n    instance.closeSignature = Buffer.from(\n      json.closeSignature || json.close_signature,\n      'hex',\n    );\n\n    // Use toBigInt helper to handle BigInt values from json-bigint\n    instance.offerPayoutSatoshis = toBigInt(\n      json.offerPayoutSatoshis || json.offer_payout_satoshis,\n    );\n    instance.acceptPayoutSatoshis = toBigInt(\n      json.acceptPayoutSatoshis || json.accept_payout_satoshis,\n    );\n    instance.fundInputSerialId = toBigInt(\n      json.fundInputSerialId || json.fund_input_serial_id,\n    );\n\n    // Use FundingInput.fromJSON() for each funding input - proper delegation\n    instance.fundingInputs = (json.fundingInputs || json.funding_inputs || [])\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      .map((inputJson: any) => FundingInput.fromJSON(inputJson));\n\n    // Create FundingSignatures manually since it doesn't have fromJSON\n    if (json.fundingSignatures || json.funding_signatures) {\n      instance.fundingSignatures = new FundingSignatures();\n      const sigData = json.fundingSignatures || json.funding_signatures;\n\n      // Handle different possible structures\n      if (sigData.fundingSignatures) {\n        // Standard format\n        instance.fundingSignatures.witnessElements =\n          sigData.fundingSignatures.map(\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            (sig: any) =>\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\n              sig.witnessElements?.map((elem: any) => {\n                const witness = new ScriptWitnessV0();\n                witness.length =\n                  elem.length || Buffer.from(elem.witness || '', 'hex').length;\n                witness.witness = Buffer.from(elem.witness || '', 'hex');\n                return witness;\n              }) || [],\n          );\n      } else if (Array.isArray(sigData)) {\n        // Array format\n        instance.fundingSignatures.witnessElements = sigData.map(\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          (sig: any) =>\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            sig.witnessElements?.map((elem: any) => {\n              const witness = new ScriptWitnessV0();\n              witness.length =\n                elem.length || Buffer.from(elem.witness || '', 'hex').length;\n              witness.witness = Buffer.from(elem.witness || '', 'hex');\n              return witness;\n            }) || [],\n        );\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a close_dlc message with backward compatibility\n   * Detects old format (without protocol_version) vs new format (with protocol_version)\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcClose {\n    const instance = new DlcClose();\n    const reader = new BufferReader(buf);\n\n    const type = reader.readUInt16BE(); // read type\n\n    // Validate type matches expected DlcClose type\n    if (type !== MessageType.DlcClose) {\n      throw new Error(\n        `Invalid message type. Expected ${MessageType.DlcClose}, got ${type}`,\n      );\n    }\n\n    // Read protocol version\n    instance.protocolVersion = reader.readUInt32BE();\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\n    // Changed from u16 to bigsize for consistency with DlcOffer\n    const fundingInputsLen = Number(reader.readBigSize());\n\n    for (let i = 0; i < fundingInputsLen; i++) {\n      // FundingInput body is serialized directly without TLV wrapper in rust-dlc format\n      const fundingInput = FundingInput.deserializeBody(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n      instance.fundingInputs.push(fundingInput);\n\n      // Skip past the FundingInput we just read\n      const fundingInputLength = fundingInput.serializeBody().length;\n      reader.position += fundingInputLength;\n    }\n\n    // Handle FundingSignatures - deserialize raw data (no TLV wrapper) like DlcSign\n    instance.fundingSignatures = FundingSignatures.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n\n    // Skip past the funding signatures we just read\n    const fundingLength = instance.fundingSignatures.serialize().length;\n    reader.position += fundingLength;\n\n    // Parse any additional TLV stream (for future extensibility)\n    while (!reader.eof) {\n      const buf = getTlv(reader);\n      const tlvReader = new BufferReader(buf);\n      const { type } = deserializeTlv(tlvReader);\n\n      // Store unknown TLVs for future compatibility\n      if (!instance.unknownTlvs) {\n        instance.unknownTlvs = [];\n      }\n      instance.unknownTlvs.push({ type: Number(type), data: buf });\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for close_dlc message. close_dlc = 52170\n   */\n  public type = DlcClose.type;\n\n  // New fields as per dlcspecs PR #163\n  public protocolVersion: number = PROTOCOL_VERSION; // Default to current protocol version\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: FundingInput[] = [];\n\n  public fundingSignatures: FundingSignatures;\n\n  // Store unknown TLVs for forward compatibility\n  public unknownTlvs?: Array<{ type: number; data: Buffer }>;\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    // protocol_version validation\n    if (this.protocolVersion !== PROTOCOL_VERSION) {\n      throw new Error(\n        `Unsupported protocol version: ${this.protocolVersion}, expected: ${PROTOCOL_VERSION}`,\n      );\n    }\n\n    // contractId validation\n    if (!this.contractId || this.contractId.length !== 32) {\n      throw new Error('contractId must be 32 bytes');\n    }\n\n    // closeSignature validation\n    if (!this.closeSignature || this.closeSignature.length !== 64) {\n      throw new Error('closeSignature must be 64 bytes');\n    }\n\n    // Ensure input serial ids are unique\n    const inputSerialIds = this.fundingInputs.map(\n      (input: FundingInput) => 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: FundingInput) => input.validate());\n\n    // Note: FundingSignatures doesn't have a validate method, so we skip validation\n  }\n\n  /**\n   * Converts dlc_close to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): IDlcCloseJSON {\n    // Include unknown TLVs for debugging\n    const tlvs = [];\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) =>\n        tlvs.push({ type: tlv.type, data: tlv.data.toString('hex') }),\n      );\n    }\n\n    // Return canonical rust-dlc format\n    return {\n      protocolVersion: this.protocolVersion,\n      contractId: this.contractId.toString('hex'),\n      closeSignature: this.closeSignature.toString('hex'),\n      offerPayoutSatoshis: bigIntToNumber(this.offerPayoutSatoshis),\n      acceptPayoutSatoshis: bigIntToNumber(this.acceptPayoutSatoshis),\n      fundInputSerialId: bigIntToNumber(this.fundInputSerialId),\n      fundingInputs: this.fundingInputs.map((input) => input.toJSON()),\n      fundingSignatures: this.fundingSignatures.toJSON(),\n    }; // Allow different field names from interface\n  }\n\n  /**\n   * Serializes the close_dlc message into a Buffer\n   * Updated serialization format to match DlcOffer patterns\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n\n    // New fields as per dlcspecs PR #163\n    writer.writeUInt32BE(this.protocolVersion);\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\n    // Changed from u16 to bigsize for consistency with DlcOffer\n    writer.writeBigSize(this.fundingInputs.length);\n\n    for (const fundingInput of this.fundingInputs) {\n      // Use serializeBody() to match rust-dlc behavior - funding inputs in vec are serialized without TLV wrapper\n      writer.writeBytes(fundingInput.serializeBody());\n    }\n\n    // Serialize FundingSignatures directly (no TLV wrapper) like DlcSign\n    writer.writeBytes(this.fundingSignatures.serialize());\n\n    // Write unknown TLVs for forward compatibility\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) => {\n        writer.writeBytes(tlv.data);\n      });\n    }\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IDlcCloseJSON {\n  type?: number; // Made optional for rust-dlc compatibility\n  protocolVersion: number;\n  contractId: string;\n  closeSignature: string;\n  offerPayoutSatoshis: number;\n  acceptPayoutSatoshis: number;\n  fundInputSerialId: number;\n  fundingInputs: IFundingInputJSON[];\n  fundingSignatures: IFundingSignaturesJSON;\n  serialized?: string; // Made optional - hex serialization for compatibility testing\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  tlvs?: any[]; // Made optional - for unknown TLVs\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"41ce7d81df0df62cdda73e158e91758e05e1202d","contentHash":"23a0b2101e90bc6a075dcbe466e242d8c2767b74383c87c9b24702124e579506"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignatures.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignatures.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":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":43}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":34}},"7":{"start":{"line":24,"column":25},"end":{"line":24,"column":48}},"8":{"start":{"line":25,"column":23},"end":{"line":25,"column":52}},"9":{"start":{"line":28,"column":29},"end":{"line":28,"column":57}},"10":{"start":{"line":29,"column":8},"end":{"line":42,"column":9}},"11":{"start":{"line":29,"column":21},"end":{"line":29,"column":22}},"12":{"start":{"line":30,"column":39},"end":{"line":30,"column":67}},"13":{"start":{"line":31,"column":36},"end":{"line":31,"column":38}},"14":{"start":{"line":32,"column":12},"end":{"line":40,"column":13}},"15":{"start":{"line":32,"column":25},"end":{"line":32,"column":26}},"16":{"start":{"line":34,"column":38},"end":{"line":34,"column":66}},"17":{"start":{"line":35,"column":37},"end":{"line":35,"column":68}},"18":{"start":{"line":36,"column":32},"end":{"line":36,"column":71}},"19":{"start":{"line":37,"column":16},"end":{"line":37,"column":47}},"20":{"start":{"line":38,"column":16},"end":{"line":38,"column":47}},"21":{"start":{"line":39,"column":16},"end":{"line":39,"column":46}},"22":{"start":{"line":41,"column":12},"end":{"line":41,"column":59}},"23":{"start":{"line":43,"column":8},"end":{"line":43,"column":24}},"24":{"start":{"line":49,"column":8},"end":{"line":55,"column":10}},"25":{"start":{"line":51,"column":16},"end":{"line":53,"column":18}},"26":{"start":{"line":52,"column":69},"end":{"line":52,"column":85}},"27":{"start":{"line":61,"column":23},"end":{"line":61,"column":49}},"28":{"start":{"line":63,"column":27},"end":{"line":63,"column":53}},"29":{"start":{"line":64,"column":8},"end":{"line":64,"column":61}},"30":{"start":{"line":65,"column":8},"end":{"line":70,"column":9}},"31":{"start":{"line":66,"column":12},"end":{"line":66,"column":60}},"32":{"start":{"line":67,"column":12},"end":{"line":69,"column":13}},"33":{"start":{"line":68,"column":16},"end":{"line":68,"column":66}},"34":{"start":{"line":72,"column":8},"end":{"line":72,"column":49}},"35":{"start":{"line":73,"column":8},"end":{"line":73,"column":33}},"36":{"start":{"line":76,"column":0},"end":{"line":76,"column":46}},"37":{"start":{"line":77,"column":0},"end":{"line":77,"column":69}}},"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":44,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":13},"end":{"line":56,"column":5}},"line":48},"3":{"name":"(anonymous_3)","decl":{"start":{"line":50,"column":56},"end":{"line":50,"column":57}},"loc":{"start":{"line":50,"column":76},"end":{"line":54,"column":13}},"line":50},"4":{"name":"(anonymous_4)","decl":{"start":{"line":52,"column":56},"end":{"line":52,"column":57}},"loc":{"start":{"line":52,"column":69},"end":{"line":52,"column":85}},"line":52},"5":{"name":"(anonymous_5)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":16},"end":{"line":74,"column":5}},"line":60}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":110,"6":110,"7":52,"8":52,"9":52,"10":52,"11":52,"12":49,"13":49,"14":49,"15":49,"16":97,"17":97,"18":97,"19":97,"20":97,"21":97,"22":49,"23":52,"24":21,"25":22,"26":43,"27":114,"28":114,"29":114,"30":114,"31":106,"32":106,"33":211,"34":114,"35":114,"36":1,"37":1},"f":{"0":110,"1":52,"2":21,"3":22,"4":43,"5":114},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignatures.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/FundingSignatures.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAE7C,uDAA0E;AAE1E;;;GAGG;AACH,MAAa,iBAAiB;IAA9B;QAkCE;;WAEG;QACI,SAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;QAI9B,oBAAe,GAAwB,EAAE,CAAC;IAsCnD,CAAC;IA5EC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,oBAAY,CAAC,GAAG,CAAC,CAAC;QAErC,qCAAqC;QACrC,0CAA0C;QAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACxD,MAAM,eAAe,GAAsB,EAAE,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;gBAC3C,iEAAiE;gBACjE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBAErD,MAAM,OAAO,GAAG,IAAI,iCAAe,EAAE,CAAC;gBACtC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC/B,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC;gBAC/B,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC/B;YACD,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAChD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAWD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;gBAC7D,OAAO;oBACL,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,kCAAkC;QAElC,MAAM,UAAU,GAAG,IAAI,oBAAY,EAAE,CAAC;QAEtC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAErD,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;YAClD,UAAU,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;gBAC5C,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;aACnD;SACF;QAED,wCAAwC;QACxC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AA9EH,8CA+EC;AA9Ee,sBAAI,GAAG,yBAAW,CAAC,iBAAiB,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 contains signatures of the funding transaction\n * and any necessary information linking the signatures to their inputs.\n */\nexport class FundingSignatures implements IDlcMessage {\n  public static type = MessageType.FundingSignatures;\n\n  /**\n   * Deserializes a funding_signatures message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): FundingSignatures {\n    const instance = new FundingSignatures();\n    const reader = new BufferReader(buf);\n\n    // reader.readBigSize(); // read type\n    // instance.length = reader.readBigSize();\n    const numWitnesses = Number(reader.readBigSize());\n\n    for (let i = 0; i < numWitnesses; i++) {\n      const numWitnessElements = Number(reader.readBigSize());\n      const witnessElements: ScriptWitnessV0[] = [];\n      for (let j = 0; j < numWitnessElements; j++) {\n        // Read witness element directly: [bigsize:len][len*byte:witness]\n        const witnessLength = Number(reader.readBigSize());\n        const witnessBytes = reader.readBytes(witnessLength);\n\n        const witness = new ScriptWitnessV0();\n        witness.length = witnessLength;\n        witness.witness = witnessBytes;\n        witnessElements.push(witness);\n      }\n      instance.witnessElements.push(witnessElements);\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for funding_signatures message. funding_signatures = 42776\n   */\n  public type = FundingSignatures.type;\n\n  public length: bigint;\n\n  public witnessElements: ScriptWitnessV0[][] = [];\n\n  /**\n   * Converts funding_signatures to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): IFundingSignaturesJSON {\n    return {\n      fundingSignatures: this.witnessElements.map((witnessElement) => {\n        return {\n          witnessElements: witnessElement.map((witness) => witness.toJSON()),\n        };\n      }),\n    };\n  }\n\n  /**\n   * Serializes the funding_signatures 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.witnessElements.length);\n\n    for (const witnessElements of this.witnessElements) {\n      dataWriter.writeBigSize(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 IFundingSignaturesJSON {\n  fundingSignatures: IFundingSignatureJSON[];\n}\n\nexport interface IFundingSignatureJSON {\n  witnessElements: IScriptWitnessV0JSON[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7d2c638edaee152dabf2a0920ef144238ce79cc6","contentHash":"95a585a954fd226241a542be5fd9d3e61e0d0bfa1c881a0f2803fe468f8d4a05"},"/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":55}},"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":51}},"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":36}},"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":49}},"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":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":43,"15":211,"16":211,"17":211,"18":211,"19":1},"f":{"0":0,"1":0,"2":43,"3":211},"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,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,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,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,IAAI,oBAAY,EAAE,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5B,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,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,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 = Number(reader.readBigSize());\n    instance.witness = reader.readBytes(instance.length);\n\n    return instance;\n  }\n\n  public static getWitness(reader: BufferReader): Buffer {\n    const length = Number(reader.readBigSize());\n    const body = reader.readBytes(Number(length));\n\n    const writer = new BufferWriter();\n    writer.writeBigSize(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.writeBigSize(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":"686720024f2e584397aa6e31c5ac0457eb3e2ad7","contentHash":"40445c088a60a8fa7527344ee04550d2ff6bee00f92a8e39f9461dab0d33a1cb"},"/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":83}},"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":15},"end":{"line":15,"column":33}},"13":{"start":{"line":16,"column":28},"end":{"line":16,"column":58}},"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":23},"end":{"line":19,"column":48}},"17":{"start":{"line":20,"column":24},"end":{"line":20,"column":50}},"18":{"start":{"line":21,"column":28},"end":{"line":21,"column":58}},"19":{"start":{"line":22,"column":0},"end":{"line":22,"column":39}},"20":{"start":{"line":34,"column":8},"end":{"line":34,"column":34}},"21":{"start":{"line":36,"column":8},"end":{"line":36,"column":62}},"22":{"start":{"line":37,"column":8},"end":{"line":37,"column":32}},"23":{"start":{"line":42,"column":8},"end":{"line":42,"column":34}},"24":{"start":{"line":51,"column":25},"end":{"line":51,"column":39}},"25":{"start":{"line":53,"column":8},"end":{"line":54,"column":92}},"26":{"start":{"line":55,"column":8},"end":{"line":55,"column":103}},"27":{"start":{"line":56,"column":8},"end":{"line":56,"column":83}},"28":{"start":{"line":57,"column":8},"end":{"line":57,"column":114}},"29":{"start":{"line":58,"column":8},"end":{"line":58,"column":117}},"30":{"start":{"line":59,"column":8},"end":{"line":59,"column":101}},"31":{"start":{"line":61,"column":8},"end":{"line":61,"column":101}},"32":{"start":{"line":62,"column":8},"end":{"line":64,"column":35}},"33":{"start":{"line":65,"column":8},"end":{"line":65,"column":101}},"34":{"start":{"line":66,"column":8},"end":{"line":66,"column":101}},"35":{"start":{"line":67,"column":8},"end":{"line":67,"column":114}},"36":{"start":{"line":68,"column":8},"end":{"line":68,"column":96}},"37":{"start":{"line":69,"column":8},"end":{"line":69,"column":74}},"38":{"start":{"line":70,"column":8},"end":{"line":70,"column":83}},"39":{"start":{"line":72,"column":8},"end":{"line":72,"column":110}},"40":{"start":{"line":74,"column":8},"end":{"line":76,"column":81}},"41":{"start":{"line":76,"column":32},"end":{"line":76,"column":79}},"42":{"start":{"line":77,"column":8},"end":{"line":77,"column":24}},"43":{"start":{"line":85,"column":25},"end":{"line":85,"column":39}},"44":{"start":{"line":86,"column":23},"end":{"line":86,"column":52}},"45":{"start":{"line":87,"column":21},"end":{"line":87,"column":42}},"46":{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},"47":{"start":{"line":90,"column":12},"end":{"line":90,"column":113}},"48":{"start":{"line":93,"column":8},"end":{"line":93,"column":57}},"49":{"start":{"line":94,"column":8},"end":{"line":94,"column":53}},"50":{"start":{"line":95,"column":8},"end":{"line":95,"column":50}},"51":{"start":{"line":96,"column":8},"end":{"line":96,"column":60}},"52":{"start":{"line":98,"column":8},"end":{"line":98,"column":126}},"53":{"start":{"line":100,"column":35},"end":{"line":100,"column":75}},"54":{"start":{"line":101,"column":8},"end":{"line":101,"column":46}},"55":{"start":{"line":102,"column":8},"end":{"line":102,"column":54}},"56":{"start":{"line":103,"column":29},"end":{"line":103,"column":50}},"57":{"start":{"line":104,"column":8},"end":{"line":104,"column":60}},"58":{"start":{"line":105,"column":8},"end":{"line":105,"column":56}},"59":{"start":{"line":106,"column":8},"end":{"line":106,"column":57}},"60":{"start":{"line":108,"column":33},"end":{"line":108,"column":61}},"61":{"start":{"line":109,"column":8},"end":{"line":116,"column":9}},"62":{"start":{"line":109,"column":21},"end":{"line":109,"column":22}},"63":{"start":{"line":111,"column":33},"end":{"line":111,"column":130}},"64":{"start":{"line":112,"column":12},"end":{"line":112,"column":54}},"65":{"start":{"line":114,"column":39},"end":{"line":114,"column":74}},"66":{"start":{"line":115,"column":12},"end":{"line":115,"column":50}},"67":{"start":{"line":117,"column":29},"end":{"line":117,"column":50}},"68":{"start":{"line":118,"column":8},"end":{"line":118,"column":60}},"69":{"start":{"line":119,"column":8},"end":{"line":119,"column":56}},"70":{"start":{"line":120,"column":8},"end":{"line":120,"column":60}},"71":{"start":{"line":121,"column":8},"end":{"line":121,"column":54}},"72":{"start":{"line":122,"column":8},"end":{"line":122,"column":53}},"73":{"start":{"line":123,"column":8},"end":{"line":123,"column":56}},"74":{"start":{"line":125,"column":8},"end":{"line":153,"column":9}},"75":{"start":{"line":126,"column":24},"end":{"line":126,"column":52}},"76":{"start":{"line":127,"column":30},"end":{"line":127,"column":59}},"77":{"start":{"line":128,"column":29},"end":{"line":128,"column":76}},"78":{"start":{"line":129,"column":12},"end":{"line":152,"column":13}},"79":{"start":{"line":131,"column":20},"end":{"line":131,"column":89}},"80":{"start":{"line":132,"column":20},"end":{"line":132,"column":26}},"81":{"start":{"line":134,"column":20},"end":{"line":134,"column":86}},"82":{"start":{"line":135,"column":20},"end":{"line":135,"column":26}},"83":{"start":{"line":137,"column":20},"end":{"line":137,"column":99}},"84":{"start":{"line":138,"column":20},"end":{"line":138,"column":26}},"85":{"start":{"line":140,"column":20},"end":{"line":142,"column":21}},"86":{"start":{"line":141,"column":24},"end":{"line":141,"column":57}},"87":{"start":{"line":143,"column":20},"end":{"line":143,"column":109}},"88":{"start":{"line":144,"column":20},"end":{"line":144,"column":26}},"89":{"start":{"line":147,"column":20},"end":{"line":149,"column":21}},"90":{"start":{"line":148,"column":24},"end":{"line":148,"column":50}},"91":{"start":{"line":150,"column":20},"end":{"line":150,"column":81}},"92":{"start":{"line":151,"column":20},"end":{"line":151,"column":26}},"93":{"start":{"line":155,"column":8},"end":{"line":157,"column":9}},"94":{"start":{"line":156,"column":12},"end":{"line":156,"column":41}},"95":{"start":{"line":158,"column":8},"end":{"line":158,"column":24}},"96":{"start":{"line":165,"column":32},"end":{"line":165,"column":70}},"97":{"start":{"line":166,"column":8},"end":{"line":168,"column":9}},"98":{"start":{"line":167,"column":12},"end":{"line":167,"column":151}},"99":{"start":{"line":169,"column":8},"end":{"line":169,"column":33}},"100":{"start":{"line":176,"column":8},"end":{"line":177,"column":77}},"101":{"start":{"line":185,"column":27},"end":{"line":187,"column":21}},"102":{"start":{"line":188,"column":31},"end":{"line":188,"column":92}},"103":{"start":{"line":189,"column":30},"end":{"line":189,"column":95}},"104":{"start":{"line":190,"column":30},"end":{"line":190,"column":95}},"105":{"start":{"line":191,"column":8},"end":{"line":195,"column":10}},"106":{"start":{"line":205,"column":8},"end":{"line":207,"column":9}},"107":{"start":{"line":206,"column":12},"end":{"line":206,"column":130}},"108":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"109":{"start":{"line":210,"column":12},"end":{"line":210,"column":68}},"110":{"start":{"line":215,"column":8},"end":{"line":220,"column":9}},"111":{"start":{"line":216,"column":12},"end":{"line":216,"column":69}},"112":{"start":{"line":219,"column":12},"end":{"line":219,"column":61}},"113":{"start":{"line":221,"column":8},"end":{"line":226,"column":9}},"114":{"start":{"line":222,"column":12},"end":{"line":222,"column":69}},"115":{"start":{"line":225,"column":12},"end":{"line":225,"column":61}},"116":{"start":{"line":229,"column":8},"end":{"line":236,"column":9}},"117":{"start":{"line":230,"column":12},"end":{"line":232,"column":13}},"118":{"start":{"line":231,"column":16},"end":{"line":231,"column":78}},"119":{"start":{"line":235,"column":12},"end":{"line":235,"column":74}},"120":{"start":{"line":238,"column":8},"end":{"line":240,"column":9}},"121":{"start":{"line":239,"column":12},"end":{"line":239,"column":86}},"122":{"start":{"line":241,"column":8},"end":{"line":243,"column":9}},"123":{"start":{"line":242,"column":12},"end":{"line":242,"column":79}},"124":{"start":{"line":244,"column":8},"end":{"line":246,"column":9}},"125":{"start":{"line":245,"column":12},"end":{"line":245,"column":82}},"126":{"start":{"line":251,"column":8},"end":{"line":256,"column":9}},"127":{"start":{"line":255,"column":12},"end":{"line":255,"column":84}},"128":{"start":{"line":258,"column":8},"end":{"line":260,"column":9}},"129":{"start":{"line":259,"column":12},"end":{"line":259,"column":76}},"130":{"start":{"line":262,"column":31},"end":{"line":262,"column":85}},"131":{"start":{"line":262,"column":65},"end":{"line":262,"column":84}},"132":{"start":{"line":263,"column":8},"end":{"line":265,"column":9}},"133":{"start":{"line":264,"column":12},"end":{"line":264,"column":61}},"134":{"start":{"line":267,"column":8},"end":{"line":269,"column":9}},"135":{"start":{"line":268,"column":12},"end":{"line":268,"column":87}},"136":{"start":{"line":271,"column":8},"end":{"line":271,"column":37}},"137":{"start":{"line":274,"column":8},"end":{"line":283,"column":9}},"138":{"start":{"line":275,"column":12},"end":{"line":277,"column":13}},"139":{"start":{"line":276,"column":16},"end":{"line":276,"column":102}},"140":{"start":{"line":280,"column":12},"end":{"line":282,"column":13}},"141":{"start":{"line":281,"column":16},"end":{"line":281,"column":90}},"142":{"start":{"line":285,"column":30},"end":{"line":288,"column":21}},"143":{"start":{"line":286,"column":26},"end":{"line":286,"column":38}},"144":{"start":{"line":287,"column":12},"end":{"line":287,"column":75}},"145":{"start":{"line":289,"column":8},"end":{"line":300,"column":9}},"146":{"start":{"line":291,"column":12},"end":{"line":293,"column":13}},"147":{"start":{"line":292,"column":16},"end":{"line":292,"column":106}},"148":{"start":{"line":297,"column":12},"end":{"line":299,"column":13}},"149":{"start":{"line":298,"column":16},"end":{"line":298,"column":86}},"150":{"start":{"line":306,"column":21},"end":{"line":306,"column":23}},"151":{"start":{"line":307,"column":8},"end":{"line":308,"column":46}},"152":{"start":{"line":308,"column":12},"end":{"line":308,"column":46}},"153":{"start":{"line":309,"column":8},"end":{"line":310,"column":45}},"154":{"start":{"line":310,"column":12},"end":{"line":310,"column":45}},"155":{"start":{"line":311,"column":8},"end":{"line":312,"column":50}},"156":{"start":{"line":312,"column":12},"end":{"line":312,"column":50}},"157":{"start":{"line":313,"column":8},"end":{"line":314,"column":94}},"158":{"start":{"line":314,"column":12},"end":{"line":314,"column":94}},"159":{"start":{"line":314,"column":61},"end":{"line":314,"column":92}},"160":{"start":{"line":316,"column":8},"end":{"line":318,"column":9}},"161":{"start":{"line":317,"column":12},"end":{"line":317,"column":109}},"162":{"start":{"line":317,"column":46},"end":{"line":317,"column":107}},"163":{"start":{"line":320,"column":8},"end":{"line":337,"column":10}},"164":{"start":{"line":330,"column":61},"end":{"line":330,"column":75}},"165":{"start":{"line":344,"column":23},"end":{"line":344,"column":49}},"166":{"start":{"line":345,"column":8},"end":{"line":345,"column":40}},"167":{"start":{"line":347,"column":8},"end":{"line":347,"column":51}},"168":{"start":{"line":348,"column":8},"end":{"line":348,"column":46}},"169":{"start":{"line":349,"column":8},"end":{"line":349,"column":42}},"170":{"start":{"line":350,"column":8},"end":{"line":350,"column":52}},"171":{"start":{"line":351,"column":8},"end":{"line":351,"column":57}},"172":{"start":{"line":352,"column":8},"end":{"line":352,"column":46}},"173":{"start":{"line":353,"column":8},"end":{"line":353,"column":52}},"174":{"start":{"line":354,"column":8},"end":{"line":354,"column":42}},"175":{"start":{"line":355,"column":8},"end":{"line":355,"column":50}},"176":{"start":{"line":356,"column":8},"end":{"line":356,"column":51}},"177":{"start":{"line":358,"column":8},"end":{"line":358,"column":55}},"178":{"start":{"line":359,"column":8},"end":{"line":362,"column":9}},"179":{"start":{"line":361,"column":12},"end":{"line":361,"column":60}},"180":{"start":{"line":363,"column":8},"end":{"line":363,"column":52}},"181":{"start":{"line":364,"column":8},"end":{"line":364,"column":42}},"182":{"start":{"line":365,"column":8},"end":{"line":365,"column":50}},"183":{"start":{"line":366,"column":8},"end":{"line":366,"column":54}},"184":{"start":{"line":367,"column":8},"end":{"line":367,"column":48}},"185":{"start":{"line":368,"column":8},"end":{"line":368,"column":47}},"186":{"start":{"line":369,"column":8},"end":{"line":369,"column":50}},"187":{"start":{"line":371,"column":8},"end":{"line":372,"column":57}},"188":{"start":{"line":372,"column":12},"end":{"line":372,"column":57}},"189":{"start":{"line":373,"column":8},"end":{"line":374,"column":56}},"190":{"start":{"line":374,"column":12},"end":{"line":374,"column":56}},"191":{"start":{"line":375,"column":8},"end":{"line":376,"column":61}},"192":{"start":{"line":376,"column":12},"end":{"line":376,"column":61}},"193":{"start":{"line":377,"column":8},"end":{"line":378,"column":105}},"194":{"start":{"line":378,"column":12},"end":{"line":378,"column":105}},"195":{"start":{"line":378,"column":61},"end":{"line":378,"column":103}},"196":{"start":{"line":380,"column":8},"end":{"line":384,"column":9}},"197":{"start":{"line":381,"column":12},"end":{"line":383,"column":15}},"198":{"start":{"line":382,"column":16},"end":{"line":382,"column":44}},"199":{"start":{"line":385,"column":8},"end":{"line":385,"column":33}},"200":{"start":{"line":388,"column":0},"end":{"line":388,"column":28}},"201":{"start":{"line":389,"column":0},"end":{"line":389,"column":51}},"202":{"start":{"line":392,"column":8},"end":{"line":392,"column":25}},"203":{"start":{"line":399,"column":8},"end":{"line":399,"column":32}},"204":{"start":{"line":406,"column":8},"end":{"line":406,"column":27}},"205":{"start":{"line":413,"column":23},"end":{"line":413,"column":49}},"206":{"start":{"line":415,"column":8},"end":{"line":415,"column":48}},"207":{"start":{"line":417,"column":8},"end":{"line":422,"column":11}},"208":{"start":{"line":418,"column":36},"end":{"line":418,"column":53}},"209":{"start":{"line":420,"column":12},"end":{"line":420,"column":56}},"210":{"start":{"line":421,"column":12},"end":{"line":421,"column":47}},"211":{"start":{"line":423,"column":8},"end":{"line":423,"column":33}},"212":{"start":{"line":431,"column":23},"end":{"line":431,"column":52}},"213":{"start":{"line":432,"column":26},"end":{"line":432,"column":49}},"214":{"start":{"line":433,"column":28},"end":{"line":433,"column":48}},"215":{"start":{"line":434,"column":8},"end":{"line":440,"column":9}},"216":{"start":{"line":434,"column":21},"end":{"line":434,"column":22}},"217":{"start":{"line":436,"column":32},"end":{"line":436,"column":52}},"218":{"start":{"line":437,"column":29},"end":{"line":437,"column":66}},"219":{"start":{"line":438,"column":26},"end":{"line":438,"column":56}},"220":{"start":{"line":439,"column":12},"end":{"line":439,"column":38}},"221":{"start":{"line":441,"column":8},"end":{"line":441,"column":25}},"222":{"start":{"line":444,"column":0},"end":{"line":444,"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":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":18},"end":{"line":43,"column":5}},"line":30},"2":{"name":"(anonymous_2)","decl":{"start":{"line":50,"column":4},"end":{"line":50,"column":5}},"loc":{"start":{"line":50,"column":26},"end":{"line":78,"column":5}},"line":50},"3":{"name":"(anonymous_3)","decl":{"start":{"line":76,"column":17},"end":{"line":76,"column":18}},"loc":{"start":{"line":76,"column":32},"end":{"line":76,"column":79}},"line":76},"4":{"name":"(anonymous_4)","decl":{"start":{"line":84,"column":4},"end":{"line":84,"column":5}},"loc":{"start":{"line":84,"column":28},"end":{"line":159,"column":5}},"line":84},"5":{"name":"(anonymous_5)","decl":{"start":{"line":164,"column":4},"end":{"line":164,"column":5}},"loc":{"start":{"line":164,"column":25},"end":{"line":170,"column":5}},"line":164},"6":{"name":"(anonymous_6)","decl":{"start":{"line":175,"column":4},"end":{"line":175,"column":5}},"loc":{"start":{"line":175,"column":21},"end":{"line":178,"column":5}},"line":175},"7":{"name":"(anonymous_7)","decl":{"start":{"line":184,"column":4},"end":{"line":184,"column":5}},"loc":{"start":{"line":184,"column":26},"end":{"line":196,"column":5}},"line":184},"8":{"name":"(anonymous_8)","decl":{"start":{"line":202,"column":4},"end":{"line":202,"column":5}},"loc":{"start":{"line":202,"column":15},"end":{"line":301,"column":5}},"line":202},"9":{"name":"(anonymous_9)","decl":{"start":{"line":262,"column":54},"end":{"line":262,"column":55}},"loc":{"start":{"line":262,"column":65},"end":{"line":262,"column":84}},"line":262},"10":{"name":"(anonymous_10)","decl":{"start":{"line":285,"column":56},"end":{"line":285,"column":57}},"loc":{"start":{"line":285,"column":79},"end":{"line":288,"column":9}},"line":285},"11":{"name":"(anonymous_11)","decl":{"start":{"line":305,"column":4},"end":{"line":305,"column":5}},"loc":{"start":{"line":305,"column":13},"end":{"line":338,"column":5}},"line":305},"12":{"name":"(anonymous_12)","decl":{"start":{"line":314,"column":44},"end":{"line":314,"column":45}},"loc":{"start":{"line":314,"column":61},"end":{"line":314,"column":92}},"line":314},"13":{"name":"(anonymous_13)","decl":{"start":{"line":317,"column":37},"end":{"line":317,"column":38}},"loc":{"start":{"line":317,"column":46},"end":{"line":317,"column":107}},"line":317},"14":{"name":"(anonymous_14)","decl":{"start":{"line":330,"column":50},"end":{"line":330,"column":51}},"loc":{"start":{"line":330,"column":61},"end":{"line":330,"column":75}},"line":330},"15":{"name":"(anonymous_15)","decl":{"start":{"line":343,"column":4},"end":{"line":343,"column":5}},"loc":{"start":{"line":343,"column":16},"end":{"line":386,"column":5}},"line":343},"16":{"name":"(anonymous_16)","decl":{"start":{"line":378,"column":44},"end":{"line":378,"column":45}},"loc":{"start":{"line":378,"column":61},"end":{"line":378,"column":103}},"line":378},"17":{"name":"(anonymous_17)","decl":{"start":{"line":381,"column":37},"end":{"line":381,"column":38}},"loc":{"start":{"line":381,"column":46},"end":{"line":383,"column":13}},"line":381},"18":{"name":"(anonymous_18)","decl":{"start":{"line":391,"column":4},"end":{"line":391,"column":5}},"loc":{"start":{"line":391,"column":18},"end":{"line":393,"column":5}},"line":391},"19":{"name":"(anonymous_19)","decl":{"start":{"line":398,"column":4},"end":{"line":398,"column":5}},"loc":{"start":{"line":398,"column":20},"end":{"line":400,"column":5}},"line":398},"20":{"name":"(anonymous_20)","decl":{"start":{"line":405,"column":4},"end":{"line":405,"column":5}},"loc":{"start":{"line":405,"column":16},"end":{"line":407,"column":5}},"line":405},"21":{"name":"(anonymous_21)","decl":{"start":{"line":412,"column":4},"end":{"line":412,"column":5}},"loc":{"start":{"line":412,"column":16},"end":{"line":424,"column":5}},"line":412},"22":{"name":"(anonymous_22)","decl":{"start":{"line":417,"column":28},"end":{"line":417,"column":29}},"loc":{"start":{"line":417,"column":39},"end":{"line":422,"column":9}},"line":417},"23":{"name":"(anonymous_23)","decl":{"start":{"line":430,"column":4},"end":{"line":430,"column":5}},"loc":{"start":{"line":430,"column":28},"end":{"line":442,"column":5}},"line":430}},"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":54,"column":12},"end":{"line":54,"column":91}},"type":"binary-expr","locations":[{"start":{"line":54,"column":12},"end":{"line":54,"column":32}},{"start":{"line":54,"column":36},"end":{"line":54,"column":57}},{"start":{"line":54,"column":61},"end":{"line":54,"column":91}}],"line":54},"4":{"loc":{"start":{"line":55,"column":45},"end":{"line":55,"column":94}},"type":"binary-expr","locations":[{"start":{"line":55,"column":45},"end":{"line":55,"column":63}},{"start":{"line":55,"column":67},"end":{"line":55,"column":86}},{"start":{"line":55,"column":90},"end":{"line":55,"column":94}}],"line":55},"5":{"loc":{"start":{"line":56,"column":41},"end":{"line":56,"column":74}},"type":"binary-expr","locations":[{"start":{"line":56,"column":41},"end":{"line":56,"column":55}},{"start":{"line":56,"column":59},"end":{"line":56,"column":74}}],"line":56},"6":{"loc":{"start":{"line":57,"column":51},"end":{"line":57,"column":105}},"type":"binary-expr","locations":[{"start":{"line":57,"column":51},"end":{"line":57,"column":75}},{"start":{"line":57,"column":79},"end":{"line":57,"column":105}}],"line":57},"7":{"loc":{"start":{"line":58,"column":45},"end":{"line":58,"column":108}},"type":"binary-expr","locations":[{"start":{"line":58,"column":45},"end":{"line":58,"column":63}},{"start":{"line":58,"column":67},"end":{"line":58,"column":85}},{"start":{"line":58,"column":89},"end":{"line":58,"column":108}}],"line":58},"8":{"loc":{"start":{"line":59,"column":41},"end":{"line":59,"column":92}},"type":"binary-expr","locations":[{"start":{"line":59,"column":41},"end":{"line":59,"column":55}},{"start":{"line":59,"column":59},"end":{"line":59,"column":73}},{"start":{"line":59,"column":77},"end":{"line":59,"column":92}}],"line":59},"9":{"loc":{"start":{"line":61,"column":55},"end":{"line":61,"column":99}},"type":"binary-expr","locations":[{"start":{"line":61,"column":55},"end":{"line":61,"column":74}},{"start":{"line":61,"column":78},"end":{"line":61,"column":99}}],"line":61},"10":{"loc":{"start":{"line":62,"column":56},"end":{"line":64,"column":33}},"type":"binary-expr","locations":[{"start":{"line":62,"column":56},"end":{"line":62,"column":76}},{"start":{"line":63,"column":12},"end":{"line":63,"column":40}},{"start":{"line":64,"column":12},"end":{"line":64,"column":33}}],"line":62},"11":{"loc":{"start":{"line":65,"column":41},"end":{"line":65,"column":92}},"type":"binary-expr","locations":[{"start":{"line":65,"column":41},"end":{"line":65,"column":55}},{"start":{"line":65,"column":59},"end":{"line":65,"column":73}},{"start":{"line":65,"column":77},"end":{"line":65,"column":92}}],"line":65},"12":{"loc":{"start":{"line":66,"column":55},"end":{"line":66,"column":99}},"type":"binary-expr","locations":[{"start":{"line":66,"column":55},"end":{"line":66,"column":74}},{"start":{"line":66,"column":78},"end":{"line":66,"column":99}}],"line":66},"13":{"loc":{"start":{"line":67,"column":59},"end":{"line":67,"column":112}},"type":"binary-expr","locations":[{"start":{"line":67,"column":59},"end":{"line":67,"column":82}},{"start":{"line":67,"column":86},"end":{"line":67,"column":112}}],"line":67},"14":{"loc":{"start":{"line":68,"column":53},"end":{"line":68,"column":94}},"type":"binary-expr","locations":[{"start":{"line":68,"column":53},"end":{"line":68,"column":70}},{"start":{"line":68,"column":74},"end":{"line":68,"column":94}}],"line":68},"15":{"loc":{"start":{"line":69,"column":31},"end":{"line":69,"column":73}},"type":"binary-expr","locations":[{"start":{"line":69,"column":31},"end":{"line":69,"column":47}},{"start":{"line":69,"column":51},"end":{"line":69,"column":68}},{"start":{"line":69,"column":72},"end":{"line":69,"column":73}}],"line":69},"16":{"loc":{"start":{"line":70,"column":34},"end":{"line":70,"column":82}},"type":"binary-expr","locations":[{"start":{"line":70,"column":34},"end":{"line":70,"column":53}},{"start":{"line":70,"column":57},"end":{"line":70,"column":77}},{"start":{"line":70,"column":81},"end":{"line":70,"column":82}}],"line":70},"17":{"loc":{"start":{"line":72,"column":69},"end":{"line":72,"column":108}},"type":"binary-expr","locations":[{"start":{"line":72,"column":69},"end":{"line":72,"column":86}},{"start":{"line":72,"column":90},"end":{"line":72,"column":108}}],"line":72},"18":{"loc":{"start":{"line":74,"column":34},"end":{"line":74,"column":81}},"type":"binary-expr","locations":[{"start":{"line":74,"column":34},"end":{"line":74,"column":52}},{"start":{"line":74,"column":56},"end":{"line":74,"column":75}},{"start":{"line":74,"column":79},"end":{"line":74,"column":81}}],"line":74},"19":{"loc":{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},"type":"if","locations":[{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},{"start":{},"end":{}}],"line":89},"20":{"loc":{"start":{"line":129,"column":12},"end":{"line":152,"column":13}},"type":"switch","locations":[{"start":{"line":130,"column":16},"end":{"line":132,"column":26}},{"start":{"line":133,"column":16},"end":{"line":135,"column":26}},{"start":{"line":136,"column":16},"end":{"line":138,"column":26}},{"start":{"line":139,"column":16},"end":{"line":144,"column":26}},{"start":{"line":145,"column":16},"end":{"line":151,"column":26}}],"line":129},"21":{"loc":{"start":{"line":140,"column":20},"end":{"line":142,"column":21}},"type":"if","locations":[{"start":{"line":140,"column":20},"end":{"line":142,"column":21}},{"start":{},"end":{}}],"line":140},"22":{"loc":{"start":{"line":147,"column":20},"end":{"line":149,"column":21}},"type":"if","locations":[{"start":{"line":147,"column":20},"end":{"line":149,"column":21}},{"start":{},"end":{}}],"line":147},"23":{"loc":{"start":{"line":155,"column":8},"end":{"line":157,"column":9}},"type":"if","locations":[{"start":{"line":155,"column":8},"end":{"line":157,"column":9}},{"start":{},"end":{}}],"line":155},"24":{"loc":{"start":{"line":166,"column":8},"end":{"line":168,"column":9}},"type":"if","locations":[{"start":{"line":166,"column":8},"end":{"line":168,"column":9}},{"start":{},"end":{}}],"line":166},"25":{"loc":{"start":{"line":176,"column":16},"end":{"line":177,"column":75}},"type":"binary-expr","locations":[{"start":{"line":176,"column":16},"end":{"line":176,"column":33}},{"start":{"line":177,"column":12},"end":{"line":177,"column":75}}],"line":176},"26":{"loc":{"start":{"line":205,"column":8},"end":{"line":207,"column":9}},"type":"if","locations":[{"start":{"line":205,"column":8},"end":{"line":207,"column":9}},{"start":{},"end":{}}],"line":205},"27":{"loc":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"type":"if","locations":[{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},{"start":{},"end":{}}],"line":209},"28":{"loc":{"start":{"line":209,"column":12},"end":{"line":209,"column":79}},"type":"binary-expr","locations":[{"start":{"line":209,"column":12},"end":{"line":209,"column":37}},{"start":{"line":209,"column":41},"end":{"line":209,"column":79}}],"line":209},"29":{"loc":{"start":{"line":229,"column":8},"end":{"line":236,"column":9}},"type":"if","locations":[{"start":{"line":229,"column":8},"end":{"line":236,"column":9}},{"start":{"line":234,"column":13},"end":{"line":236,"column":9}}],"line":229},"30":{"loc":{"start":{"line":230,"column":12},"end":{"line":232,"column":13}},"type":"if","locations":[{"start":{"line":230,"column":12},"end":{"line":232,"column":13}},{"start":{},"end":{}}],"line":230},"31":{"loc":{"start":{"line":230,"column":16},"end":{"line":230,"column":78}},"type":"binary-expr","locations":[{"start":{"line":230,"column":16},"end":{"line":230,"column":45}},{"start":{"line":230,"column":49},"end":{"line":230,"column":78}}],"line":230},"32":{"loc":{"start":{"line":238,"column":8},"end":{"line":240,"column":9}},"type":"if","locations":[{"start":{"line":238,"column":8},"end":{"line":240,"column":9}},{"start":{},"end":{}}],"line":238},"33":{"loc":{"start":{"line":241,"column":8},"end":{"line":243,"column":9}},"type":"if","locations":[{"start":{"line":241,"column":8},"end":{"line":243,"column":9}},{"start":{},"end":{}}],"line":241},"34":{"loc":{"start":{"line":244,"column":8},"end":{"line":246,"column":9}},"type":"if","locations":[{"start":{"line":244,"column":8},"end":{"line":246,"column":9}},{"start":{},"end":{}}],"line":244},"35":{"loc":{"start":{"line":251,"column":8},"end":{"line":256,"column":9}},"type":"if","locations":[{"start":{"line":251,"column":8},"end":{"line":256,"column":9}},{"start":{},"end":{}}],"line":251},"36":{"loc":{"start":{"line":251,"column":14},"end":{"line":254,"column":66}},"type":"binary-expr","locations":[{"start":{"line":251,"column":15},"end":{"line":251,"column":60}},{"start":{"line":252,"column":12},"end":{"line":252,"column":60}},{"start":{"line":253,"column":13},"end":{"line":253,"column":59}},{"start":{"line":254,"column":16},"end":{"line":254,"column":65}}],"line":251},"37":{"loc":{"start":{"line":258,"column":8},"end":{"line":260,"column":9}},"type":"if","locations":[{"start":{"line":258,"column":8},"end":{"line":260,"column":9}},{"start":{},"end":{}}],"line":258},"38":{"loc":{"start":{"line":263,"column":8},"end":{"line":265,"column":9}},"type":"if","locations":[{"start":{"line":263,"column":8},"end":{"line":265,"column":9}},{"start":{},"end":{}}],"line":263},"39":{"loc":{"start":{"line":267,"column":8},"end":{"line":269,"column":9}},"type":"if","locations":[{"start":{"line":267,"column":8},"end":{"line":269,"column":9}},{"start":{},"end":{}}],"line":267},"40":{"loc":{"start":{"line":274,"column":8},"end":{"line":283,"column":9}},"type":"if","locations":[{"start":{"line":274,"column":8},"end":{"line":283,"column":9}},{"start":{"line":279,"column":13},"end":{"line":283,"column":9}}],"line":274},"41":{"loc":{"start":{"line":275,"column":12},"end":{"line":277,"column":13}},"type":"if","locations":[{"start":{"line":275,"column":12},"end":{"line":277,"column":13}},{"start":{},"end":{}}],"line":275},"42":{"loc":{"start":{"line":280,"column":12},"end":{"line":282,"column":13}},"type":"if","locations":[{"start":{"line":280,"column":12},"end":{"line":282,"column":13}},{"start":{},"end":{}}],"line":280},"43":{"loc":{"start":{"line":289,"column":8},"end":{"line":300,"column":9}},"type":"if","locations":[{"start":{"line":289,"column":8},"end":{"line":300,"column":9}},{"start":{"line":295,"column":13},"end":{"line":300,"column":9}}],"line":289},"44":{"loc":{"start":{"line":291,"column":12},"end":{"line":293,"column":13}},"type":"if","locations":[{"start":{"line":291,"column":12},"end":{"line":293,"column":13}},{"start":{},"end":{}}],"line":291},"45":{"loc":{"start":{"line":297,"column":12},"end":{"line":299,"column":13}},"type":"if","locations":[{"start":{"line":297,"column":12},"end":{"line":299,"column":13}},{"start":{},"end":{}}],"line":297},"46":{"loc":{"start":{"line":307,"column":8},"end":{"line":308,"column":46}},"type":"if","locations":[{"start":{"line":307,"column":8},"end":{"line":308,"column":46}},{"start":{},"end":{}}],"line":307},"47":{"loc":{"start":{"line":309,"column":8},"end":{"line":310,"column":45}},"type":"if","locations":[{"start":{"line":309,"column":8},"end":{"line":310,"column":45}},{"start":{},"end":{}}],"line":309},"48":{"loc":{"start":{"line":311,"column":8},"end":{"line":312,"column":50}},"type":"if","locations":[{"start":{"line":311,"column":8},"end":{"line":312,"column":50}},{"start":{},"end":{}}],"line":311},"49":{"loc":{"start":{"line":313,"column":8},"end":{"line":314,"column":94}},"type":"if","locations":[{"start":{"line":313,"column":8},"end":{"line":314,"column":94}},{"start":{},"end":{}}],"line":313},"50":{"loc":{"start":{"line":316,"column":8},"end":{"line":318,"column":9}},"type":"if","locations":[{"start":{"line":316,"column":8},"end":{"line":318,"column":9}},{"start":{},"end":{}}],"line":316},"51":{"loc":{"start":{"line":371,"column":8},"end":{"line":372,"column":57}},"type":"if","locations":[{"start":{"line":371,"column":8},"end":{"line":372,"column":57}},{"start":{},"end":{}}],"line":371},"52":{"loc":{"start":{"line":373,"column":8},"end":{"line":374,"column":56}},"type":"if","locations":[{"start":{"line":373,"column":8},"end":{"line":374,"column":56}},{"start":{},"end":{}}],"line":373},"53":{"loc":{"start":{"line":375,"column":8},"end":{"line":376,"column":61}},"type":"if","locations":[{"start":{"line":375,"column":8},"end":{"line":376,"column":61}},{"start":{},"end":{}}],"line":375},"54":{"loc":{"start":{"line":377,"column":8},"end":{"line":378,"column":105}},"type":"if","locations":[{"start":{"line":377,"column":8},"end":{"line":378,"column":105}},{"start":{},"end":{}}],"line":377},"55":{"loc":{"start":{"line":380,"column":8},"end":{"line":384,"column":9}},"type":"if","locations":[{"start":{"line":380,"column":8},"end":{"line":384,"column":9}},{"start":{},"end":{}}],"line":380}},"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":124,"21":124,"22":124,"23":124,"24":33,"25":33,"26":33,"27":33,"28":33,"29":33,"30":33,"31":33,"32":33,"33":33,"34":33,"35":33,"36":33,"37":33,"38":33,"39":33,"40":33,"41":33,"42":33,"43":53,"44":53,"45":53,"46":53,"47":1,"48":52,"49":52,"50":52,"51":52,"52":52,"53":52,"54":52,"55":52,"56":52,"57":52,"58":52,"59":52,"60":52,"61":52,"62":52,"63":52,"64":52,"65":52,"66":52,"67":52,"68":52,"69":52,"70":52,"71":52,"72":52,"73":52,"74":52,"75":5,"76":5,"77":5,"78":5,"79":1,"80":1,"81":1,"82":1,"83":2,"84":2,"85":1,"86":1,"87":1,"88":1,"89":0,"90":0,"91":0,"92":0,"93":52,"94":1,"95":52,"96":6,"97":6,"98":1,"99":5,"100":18,"101":1,"102":1,"103":1,"104":1,"105":1,"106":21,"107":1,"108":20,"109":1,"110":19,"111":19,"112":1,"113":18,"114":18,"115":1,"116":17,"117":16,"118":1,"119":1,"120":15,"121":1,"122":14,"123":1,"124":13,"125":1,"126":12,"127":1,"128":11,"129":2,"130":9,"131":10,"132":9,"133":1,"134":8,"135":1,"136":7,"137":7,"138":3,"139":0,"140":4,"141":1,"142":6,"143":6,"144":6,"145":6,"146":3,"147":1,"148":3,"149":0,"150":20,"151":20,"152":2,"153":20,"154":2,"155":20,"156":2,"157":20,"158":2,"159":2,"160":20,"161":0,"162":0,"163":20,"164":20,"165":75,"166":75,"167":75,"168":75,"169":75,"170":75,"171":75,"172":75,"173":75,"174":75,"175":75,"176":75,"177":75,"178":75,"179":75,"180":75,"181":75,"182":75,"183":75,"184":75,"185":75,"186":75,"187":75,"188":1,"189":75,"190":1,"191":75,"192":3,"193":75,"194":1,"195":1,"196":75,"197":0,"198":0,"199":75,"200":1,"201":1,"202":2,"203":4,"204":0,"205":3,"206":3,"207":3,"208":6,"209":6,"210":6,"211":3,"212":1,"213":1,"214":1,"215":1,"216":1,"217":2,"218":2,"219":2,"220":2,"221":1,"222":1},"f":{"0":1,"1":124,"2":33,"3":33,"4":53,"5":6,"6":18,"7":1,"8":21,"9":10,"10":6,"11":20,"12":2,"13":0,"14":20,"15":75,"16":1,"17":0,"18":2,"19":4,"20":0,"21":3,"22":6,"23":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[33,0,0],"4":[33,33,33],"5":[33,0],"6":[33,0],"7":[33,0,0],"8":[33,0,0],"9":[33,0],"10":[33,0,0],"11":[33,0,0],"12":[33,0],"13":[33,0],"14":[33,0],"15":[33,0,0],"16":[33,0,0],"17":[33,0],"18":[33,0,0],"19":[1,52],"20":[1,1,2,1,0],"21":[1,0],"22":[0,0],"23":[1,51],"24":[1,5],"25":[18,10],"26":[1,20],"27":[1,19],"28":[20,20],"29":[16,1],"30":[1,15],"31":[16,16],"32":[1,14],"33":[1,13],"34":[1,12],"35":[1,11],"36":[12,11,2,1],"37":[2,9],"38":[1,8],"39":[1,7],"40":[3,4],"41":[0,3],"42":[1,3],"43":[3,3],"44":[1,2],"45":[0,3],"46":[2,18],"47":[2,18],"48":[2,18],"49":[2,18],"50":[0,20],"51":[1,74],"52":[1,74],"53":[3,72],"54":[1,74],"55":[0,75]},"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-network';\nimport { address } from 'bitcoinjs-lib';\nimport secp256k1 from 'secp256k1';\n\nimport { MessageType, PROTOCOL_VERSION } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport { bigIntToNumber, toBigInt } from '../util';\nimport { BatchFundingGroup, IBatchFundingGroupJSON } from './BatchFundingGroup';\nimport {\n  ContractInfo,\n  IDisjointContractInfoJSON,\n  ISingleContractInfoJSON,\n} from './ContractInfo';\nimport { IDlcMessage } from './DlcMessage';\nimport { FundingInput, IFundingInputJSON } 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;\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 * Updated to support dlcspecs PR #163 format.\n */\nexport class DlcOffer implements IDlcMessage {\n  public static type = MessageType.DlcOffer;\n\n  /**\n   * Creates a DlcOffer from JSON data (e.g., from test vectors)\n   * Handles both our internal format and external test vector formats\n   * @param json JSON object representing a DLC offer\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DlcOffer {\n    const instance = new DlcOffer();\n\n    // Basic fields with field name variations\n    instance.protocolVersion =\n      json.protocolVersion || json.protocol_version || PROTOCOL_VERSION;\n    instance.contractFlags = Buffer.from(\n      json.contractFlags || json.contract_flags || '00',\n      'hex',\n    );\n    instance.chainHash = Buffer.from(json.chainHash || json.chain_hash, 'hex');\n    instance.temporaryContractId = Buffer.from(\n      json.temporaryContractId || json.temporary_contract_id,\n      'hex',\n    );\n\n    instance.fundingPubkey = Buffer.from(\n      json.fundingPubkey || json.fundingPubKey || json.funding_pubkey,\n      'hex',\n    );\n    instance.payoutSpk = Buffer.from(\n      json.payoutSpk || json.payoutSPK || json.payout_spk,\n      'hex',\n    );\n\n    // Use toBigInt helper to handle BigInt values from json-bigint\n    instance.payoutSerialId = toBigInt(\n      json.payoutSerialId || json.payout_serial_id,\n    );\n\n    instance.offerCollateral = toBigInt(\n      json.offerCollateral ||\n        json.offerCollateralSatoshis ||\n        json.offer_collateral,\n    );\n\n    instance.changeSpk = Buffer.from(\n      json.changeSpk || json.changeSPK || json.change_spk,\n      'hex',\n    );\n    instance.changeSerialId = toBigInt(\n      json.changeSerialId || json.change_serial_id,\n    );\n    instance.fundOutputSerialId = toBigInt(\n      json.fundOutputSerialId || json.fund_output_serial_id,\n    );\n    instance.feeRatePerVb = toBigInt(json.feeRatePerVb || json.fee_rate_per_vb);\n    instance.cetLocktime = json.cetLocktime || json.cet_locktime || 0;\n    instance.refundLocktime = json.refundLocktime || json.refund_locktime || 0;\n\n    // Use ContractInfo.fromJSON() - proper delegation\n    instance.contractInfo = ContractInfo.fromJSON(\n      json.contractInfo || json.contract_info,\n    );\n\n    // Use FundingInput.fromJSON() for each funding input - proper delegation\n    instance.fundingInputs = (json.fundingInputs || json.funding_inputs || [])\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      .map((inputJson: any) => FundingInput.fromJSON(inputJson));\n\n    return instance;\n  }\n\n  /**\n   * Deserializes an offer_dlc message with backward compatibility\n   * Detects old format (without protocol_version) vs new format (with protocol_version)\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcOffer {\n    const instance = new DlcOffer();\n    const reader = new BufferReader(buf);\n\n    const type = reader.readUInt16BE(); // read type\n\n    // Validate type matches expected DlcOffer type\n    if (type !== MessageType.DlcOffer) {\n      throw new Error(\n        `Invalid message type. Expected ${MessageType.DlcOffer}, got ${type}`,\n      );\n    }\n\n    // Read protocol_version as 4 bytes (u32) as per dlcspecs PR #163\n    instance.protocolVersion = reader.readUInt32BE();\n    instance.contractFlags = reader.readBytes(1);\n\n    instance.chainHash = reader.readBytes(32);\n    instance.temporaryContractId = reader.readBytes(32);\n\n    // ContractInfo is serialized as sibling type in dlcspecs PR #163 format\n    instance.contractInfo = ContractInfo.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n    // Skip past the ContractInfo we just read\n    const contractInfoLength = instance.contractInfo.serialize().length;\n    reader.position += contractInfoLength;\n    instance.fundingPubkey = reader.readBytes(33);\n    const payoutSpkLen = reader.readUInt16BE();\n    instance.payoutSpk = reader.readBytes(payoutSpkLen);\n    instance.payoutSerialId = reader.readUInt64BE();\n    instance.offerCollateral = reader.readUInt64BE();\n\n    // Changed from u16 to bigsize as per dlcspecs PR #163\n    const fundingInputsLen = Number(reader.readBigSize());\n\n    for (let i = 0; i < fundingInputsLen; i++) {\n      // FundingInput body is serialized directly without TLV wrapper in rust-dlc format\n      const fundingInput = FundingInput.deserializeBody(\n        Buffer.from(reader.buffer.subarray(reader.position)),\n      );\n      instance.fundingInputs.push(fundingInput);\n\n      // Skip past the FundingInput we just read\n      const fundingInputLength = fundingInput.serializeBody().length;\n      reader.position += fundingInputLength;\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    // Parse TLV stream as per dlcspecs PR #163\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.OrderPositionInfo:\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          // Store unknown TLVs for future compatibility\n          if (!instance.unknownTlvs) {\n            instance.unknownTlvs = [];\n          }\n          instance.unknownTlvs.push({ type: Number(type), data: buf });\n          break;\n      }\n    }\n\n    // Auto-detect single funded DLCs\n    if (\n      instance.contractInfo.getTotalCollateral() === instance.offerCollateral\n    ) {\n      instance.singleFunded = true;\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for offer_dlc message. offer_dlc = 42778\n   */\n  public type = DlcOffer.type;\n\n  // New fields as per dlcspecs PR #163\n  public protocolVersion: number = PROTOCOL_VERSION; // Default to current protocol version\n\n  public temporaryContractId: Buffer; // New field for contract identification\n\n  // Existing fields\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 offerCollateral: 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  // Store unknown TLVs for forward compatibility\n  public unknownTlvs?: Array<{ type: number; data: Buffer }>;\n\n  /**\n   * Flag to indicate if this is a single funded DLC\n   * In single funded DLCs, totalCollateral equals offerCollateral\n   */\n  public singleFunded = false;\n\n  /**\n   * Marks this DLC offer as single funded and validates that collateral amounts are correct\n   * @throws Will throw an error if totalCollateral doesn't equal offerCollateral\n   */\n  public markAsSingleFunded(): void {\n    const totalCollateral = this.contractInfo.getTotalCollateral();\n    if (totalCollateral !== this.offerCollateral) {\n      throw new Error(\n        `Cannot mark as single funded: totalCollateral (${totalCollateral}) must equal offerCollateral (${this.offerCollateral})`,\n      );\n    }\n    this.singleFunded = true;\n  }\n\n  /**\n   * Checks if this DLC offer is single funded (totalCollateral == offerCollateral)\n   * @returns True if this is a single funded DLC\n   */\n  public isSingleFunded(): boolean {\n    return (\n      this.singleFunded ||\n      this.contractInfo.getTotalCollateral() === this.offerCollateral\n    );\n  }\n\n  /**\n   * Get funding, change and payout address from DlcOffer\n   * @param network Bitcoin Network\n   * @returns {IDlcOfferAddresses}\n   */\n  public getAddresses(network: BitcoinNetwork): IDlcOfferAddresses {\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   * Updated validation rules as per dlcspecs PR #163\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // 1. Type is set automatically in class\n    // 2. protocol_version validation\n    if (this.protocolVersion !== PROTOCOL_VERSION) {\n      throw new Error(\n        `Unsupported protocol version: ${this.protocolVersion}, expected: ${PROTOCOL_VERSION}`,\n      );\n    }\n\n    // 3. temporary_contract_id validation\n    if (!this.temporaryContractId || this.temporaryContractId.length !== 32) {\n      throw new Error('temporaryContractId must be 32 bytes');\n    }\n\n    // 4. contract_flags field is ignored\n    // 5. chain_hash must be validated as input by end user\n    // 6. 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    // 7. 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    // 8. offer_collateral must be greater than or equal to 1000\n    if (this.offerCollateral < 1000) {\n      throw new Error('offer_collateral must be greater than or equal to 1000');\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    // 9. 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    // 10. 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    // 11. inputSerialId must be unique for each input\n\n    const inputSerialIds = this.fundingInputs.map(\n      (input: FundingInput) => input.inputSerialId,\n    );\n\n    if (new Set(inputSerialIds).size !== inputSerialIds.length) {\n      throw new Error('inputSerialIds must be unique');\n    }\n\n    // 12. 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    // totalCollateral should be > offerCollateral (logical validation)\n    // Exception: for single funded DLCs, totalCollateral == offerCollateral is allowed\n    if (this.isSingleFunded()) {\n      if (this.contractInfo.getTotalCollateral() !== this.offerCollateral) {\n        throw new Error(\n          'For single funded DLCs, totalCollateral must equal offerCollateral',\n        );\n      }\n    } else {\n      if (this.contractInfo.getTotalCollateral() <= this.offerCollateral) {\n        throw new Error(\n          'totalCollateral should be greater than offerCollateral',\n        );\n      }\n    }\n\n    // validate funding amount\n    const fundingAmount = this.fundingInputs.reduce((acc, fundingInput) => {\n      const input = fundingInput as FundingInput;\n      return acc + input.prevTx.outputs[input.prevTxVout].value.sats;\n    }, BigInt(0));\n\n    if (this.isSingleFunded()) {\n      // For single funded DLCs, funding amount must cover the full total collateral plus fees\n      if (fundingAmount < this.contractInfo.getTotalCollateral()) {\n        throw new Error(\n          'For single funded DLCs, fundingAmount must be at least totalCollateral',\n        );\n      }\n    } else {\n      // For regular DLCs, funding amount must be greater than offer collateral\n      if (this.offerCollateral >= fundingAmount) {\n        throw new Error('fundingAmount must be greater than offerCollateral');\n      }\n    }\n  }\n\n  /**\n   * Converts dlc_offer to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): IDlcOfferJSON {\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    // Include unknown TLVs for debugging\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) =>\n        tlvs.push({ type: tlv.type, data: tlv.data.toString('hex') }),\n      );\n    }\n\n    // Return canonical rust-dlc format only\n    return {\n      protocolVersion: this.protocolVersion,\n      temporaryContractId: this.temporaryContractId.toString('hex'),\n      contractFlags: Number(this.contractFlags[0]),\n      chainHash: this.chainHash.toString('hex'),\n      contractInfo: this.contractInfo.toJSON(),\n      fundingPubkey: this.fundingPubkey.toString('hex'), // lowercase 'k'\n      payoutSpk: this.payoutSpk.toString('hex'), // lowercase\n      payoutSerialId: bigIntToNumber(this.payoutSerialId),\n      offerCollateral: bigIntToNumber(this.offerCollateral), // no \"Satoshis\"\n      fundingInputs: this.fundingInputs.map((input) => input.toJSON()),\n      changeSpk: this.changeSpk.toString('hex'), // lowercase\n      changeSerialId: bigIntToNumber(this.changeSerialId),\n      fundOutputSerialId: bigIntToNumber(this.fundOutputSerialId),\n      feeRatePerVb: bigIntToNumber(this.feeRatePerVb),\n      cetLocktime: this.cetLocktime,\n      refundLocktime: this.refundLocktime,\n    }; // Allow different field names from interface\n  }\n\n  /**\n   * Serializes the offer_dlc message into a Buffer\n   * Updated serialization format as per dlcspecs PR #163\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n\n    // New fields as per dlcspecs PR #163\n    writer.writeUInt32BE(this.protocolVersion);\n    writer.writeBytes(this.contractFlags);\n    writer.writeBytes(this.chainHash);\n    writer.writeBytes(this.temporaryContractId); // New field\n\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.offerCollateral);\n\n    // Changed from u16 to bigsize as per dlcspecs PR #163\n    writer.writeBigSize(this.fundingInputs.length);\n\n    for (const fundingInput of this.fundingInputs) {\n      // Use serializeBody() to match rust-dlc behavior - funding inputs in vec are serialized without TLV wrapper\n      writer.writeBytes(fundingInput.serializeBody());\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    // TLV stream as per dlcspecs PR #163\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    // Write unknown TLVs for forward compatibility\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) => {\n        writer.writeBytes(tlv.data);\n      });\n    }\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IDlcOfferJSON {\n  type?: number; // Made optional for rust-dlc compatibility\n  protocolVersion: number;\n  temporaryContractId: string;\n  contractFlags: number;\n  chainHash: string;\n  contractInfo: ISingleContractInfoJSON | IDisjointContractInfoJSON;\n  fundingPubkey: string;\n  payoutSpk: string;\n  payoutSerialId: number;\n  offerCollateral: number;\n  fundingInputs: IFundingInputJSON[];\n  changeSpk: string;\n  changeSerialId: number;\n  fundOutputSerialId: number;\n  feeRatePerVb: number;\n  cetLocktime: number;\n  refundLocktime: number;\n  serialized?: string; // Made optional - hex serialization for compatibility testing\n  tlvs?: (\n    | IOrderMetadataJSON\n    | IOrderIrcInfoJSON\n    | IOrderPositionInfoJSON\n    | IBatchFundingGroupJSON\n    | unknown\n  )[]; // Made optional - for unknown TLVs\n}\n\nexport interface IDlcOfferAddresses {\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);\n      container.addOffer(offer);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0704ea8ebab35a1247e66098630c080fca5a22d3","contentHash":"1bc60da55cef07ed93c1cca3ed675dacedac224ab514e168e7bf0f02d2ff9190"},"/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":2,"11":2,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":2,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1},"f":{"0":0,"1":2,"2":1,"3":2,"4":1},"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":"c37aee7047e610ec3b08bc11f8825e7b4d286af62cda811ff6c1136995fc41e8"},"/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":{},"end":{}}],"line":52}},"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":2,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":2,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1},"f":{"0":0,"1":2,"2":1,"3":2,"4":1},"b":{"0":[0,0],"1":[1,0]},"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":"75fe795231f4224d95c1b2512a8c9fe4e190bf0f","contentHash":"be3a6cafefe44bd56835eedb7d6539c5113a4f46f6f45a71a939296c4e4c8705"},"/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":35}},"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":43}},"5":{"start":{"line":15,"column":8},"end":{"line":15,"column":38}},"6":{"start":{"line":16,"column":8},"end":{"line":16,"column":30}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":40}},"8":{"start":{"line":18,"column":8},"end":{"line":18,"column":38}},"9":{"start":{"line":19,"column":8},"end":{"line":19,"column":35}},"10":{"start":{"line":20,"column":8},"end":{"line":20,"column":31}},"11":{"start":{"line":21,"column":8},"end":{"line":21,"column":32}},"12":{"start":{"line":28,"column":25},"end":{"line":28,"column":48}},"13":{"start":{"line":29,"column":23},"end":{"line":29,"column":52}},"14":{"start":{"line":30,"column":8},"end":{"line":30,"column":29}},"15":{"start":{"line":31,"column":8},"end":{"line":31,"column":47}},"16":{"start":{"line":32,"column":36},"end":{"line":32,"column":54}},"17":{"start":{"line":33,"column":8},"end":{"line":44,"column":9}},"18":{"start":{"line":34,"column":12},"end":{"line":34,"column":46}},"19":{"start":{"line":36,"column":13},"end":{"line":44,"column":9}},"20":{"start":{"line":37,"column":12},"end":{"line":37,"column":46}},"21":{"start":{"line":39,"column":13},"end":{"line":44,"column":9}},"22":{"start":{"line":40,"column":12},"end":{"line":40,"column":47}},"23":{"start":{"line":43,"column":12},"end":{"line":43,"column":84}},"24":{"start":{"line":45,"column":8},"end":{"line":45,"column":46}},"25":{"start":{"line":46,"column":8},"end":{"line":66,"column":9}},"26":{"start":{"line":47,"column":41},"end":{"line":47,"column":61}},"27":{"start":{"line":48,"column":35},"end":{"line":48,"column":81}},"28":{"start":{"line":49,"column":12},"end":{"line":49,"column":64}},"29":{"start":{"line":50,"column":12},"end":{"line":50,"column":58}},"30":{"start":{"line":51,"column":30},"end":{"line":51,"column":48}},"31":{"start":{"line":52,"column":12},"end":{"line":63,"column":13}},"32":{"start":{"line":53,"column":16},"end":{"line":53,"column":47}},"33":{"start":{"line":55,"column":17},"end":{"line":63,"column":13}},"34":{"start":{"line":56,"column":16},"end":{"line":56,"column":43}},"35":{"start":{"line":58,"column":17},"end":{"line":63,"column":13}},"36":{"start":{"line":59,"column":16},"end":{"line":59,"column":44}},"37":{"start":{"line":62,"column":16},"end":{"line":62,"column":73}},"38":{"start":{"line":64,"column":12},"end":{"line":64,"column":51}},"39":{"start":{"line":65,"column":12},"end":{"line":65,"column":60}},"40":{"start":{"line":67,"column":8},"end":{"line":67,"column":24}},"41":{"start":{"line":73,"column":8},"end":{"line":81,"column":10}},"42":{"start":{"line":87,"column":23},"end":{"line":87,"column":49}},"43":{"start":{"line":88,"column":8},"end":{"line":88,"column":39}},"44":{"start":{"line":89,"column":27},"end":{"line":89,"column":53}},"45":{"start":{"line":90,"column":8},"end":{"line":94,"column":21}},"46":{"start":{"line":95,"column":8},"end":{"line":95,"column":44}},"47":{"start":{"line":96,"column":8},"end":{"line":103,"column":9}},"48":{"start":{"line":97,"column":12},"end":{"line":97,"column":64}},"49":{"start":{"line":98,"column":12},"end":{"line":98,"column":68}},"50":{"start":{"line":99,"column":12},"end":{"line":99,"column":56}},"51":{"start":{"line":100,"column":12},"end":{"line":100,"column":103}},"52":{"start":{"line":101,"column":12},"end":{"line":101,"column":49}},"53":{"start":{"line":102,"column":12},"end":{"line":102,"column":58}},"54":{"start":{"line":104,"column":8},"end":{"line":104,"column":45}},"55":{"start":{"line":105,"column":8},"end":{"line":105,"column":49}},"56":{"start":{"line":106,"column":8},"end":{"line":106,"column":33}},"57":{"start":{"line":109,"column":0},"end":{"line":109,"column":46}},"58":{"start":{"line":110,"column":0},"end":{"line":110,"column":69}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":18},"end":{"line":22,"column":5}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":28},"end":{"line":68,"column":5}},"line":27},"2":{"name":"(anonymous_2)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":13},"end":{"line":82,"column":5}},"line":72},"3":{"name":"(anonymous_3)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":16},"end":{"line":107,"column":5}},"line":86}},"branchMap":{"0":{"loc":{"start":{"line":33,"column":8},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":33,"column":8},"end":{"line":44,"column":9}},{"start":{"line":36,"column":13},"end":{"line":44,"column":9}}],"line":33},"1":{"loc":{"start":{"line":36,"column":13},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":36,"column":13},"end":{"line":44,"column":9}},{"start":{"line":39,"column":13},"end":{"line":44,"column":9}}],"line":36},"2":{"loc":{"start":{"line":39,"column":13},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":39,"column":13},"end":{"line":44,"column":9}},{"start":{"line":42,"column":13},"end":{"line":44,"column":9}}],"line":39},"3":{"loc":{"start":{"line":46,"column":8},"end":{"line":66,"column":9}},"type":"if","locations":[{"start":{"line":46,"column":8},"end":{"line":66,"column":9}},{"start":{},"end":{}}],"line":46},"4":{"loc":{"start":{"line":52,"column":12},"end":{"line":63,"column":13}},"type":"if","locations":[{"start":{"line":52,"column":12},"end":{"line":63,"column":13}},{"start":{"line":55,"column":17},"end":{"line":63,"column":13}}],"line":52},"5":{"loc":{"start":{"line":55,"column":17},"end":{"line":63,"column":13}},"type":"if","locations":[{"start":{"line":55,"column":17},"end":{"line":63,"column":13}},{"start":{"line":58,"column":17},"end":{"line":63,"column":13}}],"line":55},"6":{"loc":{"start":{"line":58,"column":17},"end":{"line":63,"column":13}},"type":"if","locations":[{"start":{"line":58,"column":17},"end":{"line":63,"column":13}},{"start":{"line":61,"column":17},"end":{"line":63,"column":13}}],"line":58},"7":{"loc":{"start":{"line":90,"column":30},"end":{"line":94,"column":19}},"type":"cond-expr","locations":[{"start":{"line":91,"column":14},"end":{"line":91,"column":15}},{"start":{"line":92,"column":14},"end":{"line":94,"column":19}}],"line":90},"8":{"loc":{"start":{"line":92,"column":14},"end":{"line":94,"column":19}},"type":"cond-expr","locations":[{"start":{"line":93,"column":18},"end":{"line":93,"column":19}},{"start":{"line":94,"column":18},"end":{"line":94,"column":19}}],"line":92},"9":{"loc":{"start":{"line":96,"column":8},"end":{"line":103,"column":9}},"type":"if","locations":[{"start":{"line":96,"column":8},"end":{"line":103,"column":9}},{"start":{},"end":{}}],"line":96},"10":{"loc":{"start":{"line":100,"column":34},"end":{"line":100,"column":101}},"type":"cond-expr","locations":[{"start":{"line":100,"column":65},"end":{"line":100,"column":66}},{"start":{"line":100,"column":69},"end":{"line":100,"column":101}}],"line":100},"11":{"loc":{"start":{"line":100,"column":69},"end":{"line":100,"column":101}},"type":"cond-expr","locations":[{"start":{"line":100,"column":96},"end":{"line":100,"column":97}},{"start":{"line":100,"column":100},"end":{"line":100,"column":101}}],"line":100}},"s":{"0":1,"1":1,"2":1,"3":1,"4":13,"5":13,"6":13,"7":13,"8":13,"9":13,"10":13,"11":13,"12":5,"13":5,"14":5,"15":5,"16":5,"17":5,"18":0,"19":5,"20":2,"21":3,"22":2,"23":1,"24":4,"25":4,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":0,"33":1,"34":1,"35":0,"36":0,"37":0,"38":1,"39":1,"40":4,"41":3,"42":6,"43":6,"44":6,"45":6,"46":6,"47":6,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":6,"55":6,"56":6,"57":1,"58":1},"f":{"0":13,"1":5,"2":3,"3":6},"b":{"0":[0,5],"1":[2,3],"2":[2,1],"3":[1,3],"4":[0,1],"5":[1,0],"6":[0,0],"7":[0,6],"8":[1,5],"9":[1,5],"10":[0,1],"11":[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\n/**\n * OrderPositionInfo message\n */\nexport class OrderPositionInfo implements IDlcMessage {\n  public static type = MessageType.OrderPositionInfo;\n\n  /**\n   * Deserializes an OrderPositionInfo message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderPositionInfo {\n    const instance = new OrderPositionInfo();\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 OrderPositionInfo message\n   */\n  public type = OrderPositionInfo.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 OrderPositionInfo 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 OrderPositionInfo 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":"c503efc2b64fd1c779a07fbaedf267aef3246162","contentHash":"153ed53d18200c2e9d1cc611bb0f4b62ee7697fe7cdcf4f7da5d326fbad4c41e"},"/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":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":52}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":42}},"5":{"start":{"line":8,"column":20},"end":{"line":8,"column":57}},"6":{"start":{"line":9,"column":22},"end":{"line":9,"column":47}},"7":{"start":{"line":10,"column":25},"end":{"line":10,"column":63}},"8":{"start":{"line":11,"column":17},"end":{"line":11,"column":47}},"9":{"start":{"line":12,"column":28},"end":{"line":12,"column":58}},"10":{"start":{"line":13,"column":31},"end":{"line":13,"column":64}},"11":{"start":{"line":14,"column":28},"end":{"line":14,"column":58}},"12":{"start":{"line":15,"column":26},"end":{"line":15,"column":54}},"13":{"start":{"line":27,"column":8},"end":{"line":27,"column":33}},"14":{"start":{"line":29,"column":8},"end":{"line":29,"column":62}},"15":{"start":{"line":38,"column":25},"end":{"line":38,"column":38}},"16":{"start":{"line":40,"column":34},"end":{"line":54,"column":9}},"17":{"start":{"line":41,"column":30},"end":{"line":41,"column":56}},"18":{"start":{"line":43,"column":12},"end":{"line":45,"column":13}},"19":{"start":{"line":44,"column":16},"end":{"line":44,"column":33}},"20":{"start":{"line":47,"column":12},"end":{"line":53,"column":13}},"21":{"start":{"line":48,"column":31},"end":{"line":48,"column":77}},"22":{"start":{"line":49,"column":16},"end":{"line":49,"column":43}},"23":{"start":{"line":52,"column":16},"end":{"line":52,"column":72}},"24":{"start":{"line":56,"column":8},"end":{"line":57,"column":92}},"25":{"start":{"line":58,"column":8},"end":{"line":58,"column":86}},"26":{"start":{"line":60,"column":8},"end":{"line":60,"column":140}},"27":{"start":{"line":62,"column":29},"end":{"line":62,"column":74}},"28":{"start":{"line":63,"column":8},"end":{"line":63,"column":67}},"29":{"start":{"line":65,"column":8},"end":{"line":65,"column":127}},"30":{"start":{"line":66,"column":8},"end":{"line":66,"column":24}},"31":{"start":{"line":75,"column":25},"end":{"line":75,"column":74}},"32":{"start":{"line":76,"column":8},"end":{"line":90,"column":9}},"33":{"start":{"line":78,"column":30},"end":{"line":79,"column":52}},"34":{"start":{"line":81,"column":12},"end":{"line":89,"column":15}},"35":{"start":{"line":84,"column":34},"end":{"line":84,"column":67}},"36":{"start":{"line":85,"column":16},"end":{"line":88,"column":18}},"37":{"start":{"line":91,"column":8},"end":{"line":91,"column":24}},"38":{"start":{"line":100,"column":25},"end":{"line":100,"column":68}},"39":{"start":{"line":101,"column":8},"end":{"line":113,"column":9}},"40":{"start":{"line":103,"column":32},"end":{"line":103,"column":103}},"41":{"start":{"line":105,"column":12},"end":{"line":112,"column":16}},"42":{"start":{"line":105,"column":64},"end":{"line":112,"column":14}},"43":{"start":{"line":109,"column":32},"end":{"line":109,"column":71}},"44":{"start":{"line":110,"column":16},"end":{"line":110,"column":81}},"45":{"start":{"line":111,"column":16},"end":{"line":111,"column":31}},"46":{"start":{"line":114,"column":8},"end":{"line":114,"column":24}},"47":{"start":{"line":121,"column":25},"end":{"line":121,"column":38}},"48":{"start":{"line":122,"column":23},"end":{"line":122,"column":52}},"49":{"start":{"line":123,"column":8},"end":{"line":123,"column":30}},"50":{"start":{"line":125,"column":8},"end":{"line":125,"column":57}},"51":{"start":{"line":126,"column":8},"end":{"line":126,"column":51}},"52":{"start":{"line":128,"column":8},"end":{"line":128,"column":150}},"53":{"start":{"line":130,"column":26},"end":{"line":130,"column":74}},"54":{"start":{"line":131,"column":8},"end":{"line":131,"column":37}},"55":{"start":{"line":132,"column":8},"end":{"line":132,"column":56}},"56":{"start":{"line":134,"column":8},"end":{"line":134,"column":141}},"57":{"start":{"line":136,"column":30},"end":{"line":136,"column":75}},"58":{"start":{"line":137,"column":8},"end":{"line":137,"column":41}},"59":{"start":{"line":139,"column":8},"end":{"line":158,"column":9}},"60":{"start":{"line":140,"column":24},"end":{"line":140,"column":52}},"61":{"start":{"line":141,"column":30},"end":{"line":141,"column":59}},"62":{"start":{"line":142,"column":29},"end":{"line":142,"column":76}},"63":{"start":{"line":143,"column":12},"end":{"line":157,"column":13}},"64":{"start":{"line":145,"column":20},"end":{"line":147,"column":21}},"65":{"start":{"line":146,"column":24},"end":{"line":146,"column":57}},"66":{"start":{"line":148,"column":20},"end":{"line":148,"column":109}},"67":{"start":{"line":149,"column":20},"end":{"line":149,"column":26}},"68":{"start":{"line":152,"column":20},"end":{"line":154,"column":21}},"69":{"start":{"line":153,"column":24},"end":{"line":153,"column":50}},"70":{"start":{"line":155,"column":20},"end":{"line":155,"column":81}},"71":{"start":{"line":156,"column":20},"end":{"line":156,"column":26}},"72":{"start":{"line":159,"column":8},"end":{"line":159,"column":24}},"73":{"start":{"line":169,"column":8},"end":{"line":171,"column":9}},"74":{"start":{"line":170,"column":12},"end":{"line":170,"column":130}},"75":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"76":{"start":{"line":174,"column":12},"end":{"line":174,"column":59}},"77":{"start":{"line":184,"column":35},"end":{"line":184,"column":92}},"78":{"start":{"line":185,"column":8},"end":{"line":191,"column":10}},"79":{"start":{"line":198,"column":23},"end":{"line":198,"column":49}},"80":{"start":{"line":199,"column":8},"end":{"line":199,"column":40}},"81":{"start":{"line":201,"column":8},"end":{"line":201,"column":51}},"82":{"start":{"line":202,"column":8},"end":{"line":202,"column":43}},"83":{"start":{"line":203,"column":8},"end":{"line":203,"column":65}},"84":{"start":{"line":204,"column":8},"end":{"line":204,"column":48}},"85":{"start":{"line":205,"column":8},"end":{"line":205,"column":62}},"86":{"start":{"line":207,"column":8},"end":{"line":208,"column":105}},"87":{"start":{"line":208,"column":12},"end":{"line":208,"column":105}},"88":{"start":{"line":208,"column":61},"end":{"line":208,"column":103}},"89":{"start":{"line":210,"column":8},"end":{"line":214,"column":9}},"90":{"start":{"line":211,"column":12},"end":{"line":213,"column":15}},"91":{"start":{"line":212,"column":16},"end":{"line":212,"column":44}},"92":{"start":{"line":215,"column":8},"end":{"line":215,"column":33}},"93":{"start":{"line":218,"column":0},"end":{"line":218,"column":26}},"94":{"start":{"line":219,"column":0},"end":{"line":219,"column":49}},"95":{"start":{"line":222,"column":8},"end":{"line":222,"column":24}},"96":{"start":{"line":229,"column":8},"end":{"line":229,"column":30}},"97":{"start":{"line":236,"column":8},"end":{"line":236,"column":26}},"98":{"start":{"line":243,"column":23},"end":{"line":243,"column":49}},"99":{"start":{"line":245,"column":8},"end":{"line":245,"column":47}},"100":{"start":{"line":247,"column":8},"end":{"line":252,"column":11}},"101":{"start":{"line":248,"column":35},"end":{"line":248,"column":51}},"102":{"start":{"line":250,"column":12},"end":{"line":250,"column":55}},"103":{"start":{"line":251,"column":12},"end":{"line":251,"column":46}},"104":{"start":{"line":253,"column":8},"end":{"line":253,"column":33}},"105":{"start":{"line":261,"column":23},"end":{"line":261,"column":52}},"106":{"start":{"line":262,"column":26},"end":{"line":262,"column":48}},"107":{"start":{"line":263,"column":27},"end":{"line":263,"column":47}},"108":{"start":{"line":264,"column":8},"end":{"line":270,"column":9}},"109":{"start":{"line":264,"column":21},"end":{"line":264,"column":22}},"110":{"start":{"line":266,"column":31},"end":{"line":266,"column":51}},"111":{"start":{"line":267,"column":28},"end":{"line":267,"column":64}},"112":{"start":{"line":268,"column":25},"end":{"line":268,"column":53}},"113":{"start":{"line":269,"column":12},"end":{"line":269,"column":36}},"114":{"start":{"line":271,"column":8},"end":{"line":271,"column":25}},"115":{"start":{"line":274,"column":0},"end":{"line":274,"column":44}}},"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":18},"end":{"line":30,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":26},"end":{"line":67,"column":5}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":40,"column":34},"end":{"line":40,"column":35}},"loc":{"start":{"line":40,"column":46},"end":{"line":54,"column":9}},"line":40},"4":{"name":"(anonymous_4)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":74,"column":17},"end":{"line":92,"column":5}},"line":74},"5":{"name":"(anonymous_5)","decl":{"start":{"line":81,"column":42},"end":{"line":81,"column":43}},"loc":{"start":{"line":81,"column":51},"end":{"line":89,"column":13}},"line":81},"6":{"name":"(anonymous_6)","decl":{"start":{"line":97,"column":4},"end":{"line":97,"column":5}},"loc":{"start":{"line":99,"column":21},"end":{"line":115,"column":5}},"line":99},"7":{"name":"(anonymous_7)","decl":{"start":{"line":105,"column":55},"end":{"line":105,"column":56}},"loc":{"start":{"line":105,"column":64},"end":{"line":112,"column":14}},"line":105},"8":{"name":"(anonymous_8)","decl":{"start":{"line":107,"column":12},"end":{"line":107,"column":13}},"loc":{"start":{"line":107,"column":25},"end":{"line":112,"column":13}},"line":107},"9":{"name":"(anonymous_9)","decl":{"start":{"line":120,"column":4},"end":{"line":120,"column":5}},"loc":{"start":{"line":120,"column":28},"end":{"line":160,"column":5}},"line":120},"10":{"name":"(anonymous_10)","decl":{"start":{"line":166,"column":4},"end":{"line":166,"column":5}},"loc":{"start":{"line":166,"column":15},"end":{"line":178,"column":5}},"line":166},"11":{"name":"(anonymous_11)","decl":{"start":{"line":182,"column":4},"end":{"line":182,"column":5}},"loc":{"start":{"line":182,"column":13},"end":{"line":192,"column":5}},"line":182},"12":{"name":"(anonymous_12)","decl":{"start":{"line":197,"column":4},"end":{"line":197,"column":5}},"loc":{"start":{"line":197,"column":16},"end":{"line":216,"column":5}},"line":197},"13":{"name":"(anonymous_13)","decl":{"start":{"line":208,"column":44},"end":{"line":208,"column":45}},"loc":{"start":{"line":208,"column":61},"end":{"line":208,"column":103}},"line":208},"14":{"name":"(anonymous_14)","decl":{"start":{"line":211,"column":37},"end":{"line":211,"column":38}},"loc":{"start":{"line":211,"column":46},"end":{"line":213,"column":13}},"line":211},"15":{"name":"(anonymous_15)","decl":{"start":{"line":221,"column":4},"end":{"line":221,"column":5}},"loc":{"start":{"line":221,"column":18},"end":{"line":223,"column":5}},"line":221},"16":{"name":"(anonymous_16)","decl":{"start":{"line":228,"column":4},"end":{"line":228,"column":5}},"loc":{"start":{"line":228,"column":18},"end":{"line":230,"column":5}},"line":228},"17":{"name":"(anonymous_17)","decl":{"start":{"line":235,"column":4},"end":{"line":235,"column":5}},"loc":{"start":{"line":235,"column":15},"end":{"line":237,"column":5}},"line":235},"18":{"name":"(anonymous_18)","decl":{"start":{"line":242,"column":4},"end":{"line":242,"column":5}},"loc":{"start":{"line":242,"column":16},"end":{"line":254,"column":5}},"line":242},"19":{"name":"(anonymous_19)","decl":{"start":{"line":247,"column":27},"end":{"line":247,"column":28}},"loc":{"start":{"line":247,"column":37},"end":{"line":252,"column":9}},"line":247},"20":{"name":"(anonymous_20)","decl":{"start":{"line":260,"column":4},"end":{"line":260,"column":5}},"loc":{"start":{"line":260,"column":28},"end":{"line":272,"column":5}},"line":260}},"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":43,"column":12},"end":{"line":45,"column":13}},"type":"if","locations":[{"start":{"line":43,"column":12},"end":{"line":45,"column":13}},{"start":{},"end":{}}],"line":43},"4":{"loc":{"start":{"line":57,"column":12},"end":{"line":57,"column":91}},"type":"binary-expr","locations":[{"start":{"line":57,"column":12},"end":{"line":57,"column":32}},{"start":{"line":57,"column":36},"end":{"line":57,"column":57}},{"start":{"line":57,"column":61},"end":{"line":57,"column":91}}],"line":57},"5":{"loc":{"start":{"line":58,"column":42},"end":{"line":58,"column":77}},"type":"binary-expr","locations":[{"start":{"line":58,"column":42},"end":{"line":58,"column":57}},{"start":{"line":58,"column":61},"end":{"line":58,"column":77}}],"line":58},"6":{"loc":{"start":{"line":60,"column":82},"end":{"line":60,"column":138}},"type":"binary-expr","locations":[{"start":{"line":60,"column":82},"end":{"line":60,"column":107}},{"start":{"line":60,"column":111},"end":{"line":60,"column":138}}],"line":60},"7":{"loc":{"start":{"line":62,"column":29},"end":{"line":62,"column":74}},"type":"binary-expr","locations":[{"start":{"line":62,"column":29},"end":{"line":62,"column":49}},{"start":{"line":62,"column":53},"end":{"line":62,"column":74}}],"line":62},"8":{"loc":{"start":{"line":65,"column":76},"end":{"line":65,"column":125}},"type":"binary-expr","locations":[{"start":{"line":65,"column":76},"end":{"line":65,"column":98}},{"start":{"line":65,"column":102},"end":{"line":65,"column":125}}],"line":65},"9":{"loc":{"start":{"line":76,"column":8},"end":{"line":90,"column":9}},"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":90,"column":9}},{"start":{},"end":{}}],"line":76},"10":{"loc":{"start":{"line":76,"column":12},"end":{"line":77,"column":48}},"type":"binary-expr","locations":[{"start":{"line":76,"column":12},"end":{"line":76,"column":46}},{"start":{"line":77,"column":12},"end":{"line":77,"column":48}}],"line":76},"11":{"loc":{"start":{"line":78,"column":30},"end":{"line":79,"column":52}},"type":"binary-expr","locations":[{"start":{"line":78,"column":30},"end":{"line":78,"column":64}},{"start":{"line":79,"column":16},"end":{"line":79,"column":52}}],"line":78},"12":{"loc":{"start":{"line":87,"column":31},"end":{"line":87,"column":98}},"type":"cond-expr","locations":[{"start":{"line":87,"column":55},"end":{"line":87,"column":79}},{"start":{"line":87,"column":82},"end":{"line":87,"column":98}}],"line":87},"13":{"loc":{"start":{"line":101,"column":8},"end":{"line":113,"column":9}},"type":"if","locations":[{"start":{"line":101,"column":8},"end":{"line":113,"column":9}},{"start":{},"end":{}}],"line":101},"14":{"loc":{"start":{"line":101,"column":12},"end":{"line":102,"column":46}},"type":"binary-expr","locations":[{"start":{"line":101,"column":12},"end":{"line":101,"column":45}},{"start":{"line":102,"column":12},"end":{"line":102,"column":46}}],"line":101},"15":{"loc":{"start":{"line":103,"column":32},"end":{"line":103,"column":103}},"type":"binary-expr","locations":[{"start":{"line":103,"column":32},"end":{"line":103,"column":65}},{"start":{"line":103,"column":69},"end":{"line":103,"column":103}}],"line":103},"16":{"loc":{"start":{"line":105,"column":65},"end":{"line":105,"column":114}},"type":"binary-expr","locations":[{"start":{"line":105,"column":65},"end":{"line":105,"column":84}},{"start":{"line":105,"column":88},"end":{"line":105,"column":108}},{"start":{"line":105,"column":112},"end":{"line":105,"column":114}}],"line":105},"17":{"loc":{"start":{"line":110,"column":46},"end":{"line":110,"column":72}},"type":"binary-expr","locations":[{"start":{"line":110,"column":46},"end":{"line":110,"column":61}},{"start":{"line":110,"column":65},"end":{"line":110,"column":72}}],"line":110},"18":{"loc":{"start":{"line":143,"column":12},"end":{"line":157,"column":13}},"type":"switch","locations":[{"start":{"line":144,"column":16},"end":{"line":149,"column":26}},{"start":{"line":150,"column":16},"end":{"line":156,"column":26}}],"line":143},"19":{"loc":{"start":{"line":145,"column":20},"end":{"line":147,"column":21}},"type":"if","locations":[{"start":{"line":145,"column":20},"end":{"line":147,"column":21}},{"start":{},"end":{}}],"line":145},"20":{"loc":{"start":{"line":152,"column":20},"end":{"line":154,"column":21}},"type":"if","locations":[{"start":{"line":152,"column":20},"end":{"line":154,"column":21}},{"start":{},"end":{}}],"line":152},"21":{"loc":{"start":{"line":169,"column":8},"end":{"line":171,"column":9}},"type":"if","locations":[{"start":{"line":169,"column":8},"end":{"line":171,"column":9}},{"start":{},"end":{}}],"line":169},"22":{"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":{},"end":{}}],"line":173},"23":{"loc":{"start":{"line":173,"column":12},"end":{"line":173,"column":61}},"type":"binary-expr","locations":[{"start":{"line":173,"column":12},"end":{"line":173,"column":28}},{"start":{"line":173,"column":32},"end":{"line":173,"column":61}}],"line":173},"24":{"loc":{"start":{"line":207,"column":8},"end":{"line":208,"column":105}},"type":"if","locations":[{"start":{"line":207,"column":8},"end":{"line":208,"column":105}},{"start":{},"end":{}}],"line":207},"25":{"loc":{"start":{"line":210,"column":8},"end":{"line":214,"column":9}},"type":"if","locations":[{"start":{"line":210,"column":8},"end":{"line":214,"column":9}},{"start":{},"end":{}}],"line":210}},"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":83,"14":83,"15":30,"16":30,"17":30,"18":30,"19":0,"20":30,"21":30,"22":30,"23":0,"24":30,"25":30,"26":30,"27":30,"28":30,"29":30,"30":30,"31":30,"32":30,"33":30,"34":30,"35":5110,"36":5110,"37":30,"38":30,"39":30,"40":30,"41":30,"42":30,"43":60,"44":60,"45":60,"46":30,"47":47,"48":47,"49":47,"50":47,"51":47,"52":47,"53":47,"54":47,"55":47,"56":47,"57":47,"58":47,"59":47,"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":47,"73":0,"74":0,"75":0,"76":0,"77":17,"78":17,"79":53,"80":53,"81":53,"82":53,"83":53,"84":53,"85":53,"86":53,"87":0,"88":0,"89":53,"90":0,"91":0,"92":53,"93":1,"94":1,"95":2,"96":4,"97":0,"98":3,"99":3,"100":3,"101":6,"102":6,"103":6,"104":3,"105":1,"106":1,"107":1,"108":1,"109":1,"110":2,"111":2,"112":2,"113":2,"114":1,"115":1},"f":{"0":1,"1":83,"2":30,"3":30,"4":30,"5":5110,"6":30,"7":30,"8":60,"9":47,"10":0,"11":17,"12":53,"13":0,"14":0,"15":2,"16":4,"17":0,"18":3,"19":6,"20":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,30],"4":[30,0,0],"5":[30,0],"6":[30,0],"7":[30,0],"8":[30,0],"9":[30,0],"10":[30,0],"11":[30,0],"12":[5110,0],"13":[30,0],"14":[30,0],"15":[30,0],"16":[30,0,0],"17":[60,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,53],"25":[0,53]},"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';\nimport secp256k1 from 'secp256k1';\n\nimport { MessageType, PROTOCOL_VERSION } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport { BatchFundingGroup } from './BatchFundingGroup';\nimport {\n  CetAdaptorSignatures,\n  ICetAdaptorSignaturesJSON,\n} from './CetAdaptorSignatures';\nimport { IDlcMessage } from './DlcMessage';\nimport { FundingSignatures, IFundingSignaturesJSON } from './FundingSignatures';\nimport { ScriptWitnessV0 } from './ScriptWitnessV0';\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 * Updated to support dlcspecs PR #163 format.\n */\nexport class DlcSign implements IDlcMessage {\n  public static type = MessageType.DlcSign;\n\n  /**\n   * Creates a DlcSign from JSON data (e.g., from test vectors)\n   * Handles both our internal format and external test vector formats\n   * @param json JSON object representing a DLC sign\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DlcSign {\n    const instance = new DlcSign();\n\n    // Helper function to parse DER-encoded signature and extract raw r,s values (64 bytes total)\n    const parseDerSignature = (hexSig: string): Buffer => {\n      const sigBuffer = Buffer.from(hexSig, 'hex');\n\n      // If it's already 64 bytes, assume it's raw\n      if (sigBuffer.length === 64) {\n        return sigBuffer;\n      }\n\n      // Use secp256k1.signatureImport to parse DER signature\n      try {\n        const rawSig = secp256k1.signatureImport(sigBuffer);\n        return Buffer.from(rawSig);\n      } catch (ex) {\n        throw new Error(`Invalid DER signature: ${ex.message}`);\n      }\n    };\n\n    // Handle both internal and external field naming conventions\n    instance.protocolVersion =\n      json.protocolVersion || json.protocol_version || PROTOCOL_VERSION;\n    instance.contractId = Buffer.from(\n      json.contractId || json.contract_id,\n      'hex',\n    );\n\n    // Parse CET adaptor signatures\n    instance.cetAdaptorSignatures = DlcSign.parseCetAdaptorSignaturesFromJSON(\n      json.cetAdaptorSignatures || json.cet_adaptor_signatures,\n    );\n\n    // Parse refund signature - handle DER encoding\n    const refundSigHex = json.refundSignature || json.refund_signature;\n    instance.refundSignature = parseDerSignature(refundSigHex);\n\n    // Parse funding signatures\n    instance.fundingSignatures = DlcSign.parseFundingSignaturesFromJSON(\n      json.fundingSignatures || json.funding_signatures,\n    );\n\n    return instance;\n  }\n\n  /**\n   * Parses CetAdaptorSignatures from JSON\n   * @param cetSigsJson JSON object representing CET adaptor signatures\n   */\n  private static parseCetAdaptorSignaturesFromJSON(\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    cetSigsJson: any,\n  ): CetAdaptorSignatures {\n    const instance = new CetAdaptorSignatures();\n\n    if (\n      cetSigsJson.ecdsaAdaptorSignatures ||\n      cetSigsJson.ecdsa_adaptor_signatures\n    ) {\n      const ecdsaSigs =\n        cetSigsJson.ecdsaAdaptorSignatures ||\n        cetSigsJson.ecdsa_adaptor_signatures;\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      instance.sigs = ecdsaSigs.map((sig: any) => {\n        // The test vectors use 'signature' field, but our internal format uses encryptedSig/dleqProof\n        // For now, we'll parse the signature as encryptedSig and leave dleqProof empty\n        const sigBuffer = Buffer.from(sig.signature, 'hex');\n        return {\n          encryptedSig: sigBuffer.slice(0, 65), // First 65 bytes\n          dleqProof:\n            sigBuffer.length > 65 ? sigBuffer.slice(65, 162) : Buffer.alloc(97), // Next 97 bytes or empty\n        };\n      });\n    }\n\n    return instance;\n  }\n\n  /**\n   * Parses FundingSignatures from JSON\n   * @param fundingSigsJson JSON object representing funding signatures\n   */\n  private static parseFundingSignaturesFromJSON(\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    fundingSigsJson: any,\n  ): FundingSignatures {\n    const instance = new FundingSignatures();\n\n    if (\n      fundingSigsJson.fundingSignatures ||\n      fundingSigsJson.funding_signatures\n    ) {\n      const fundingSigs =\n        fundingSigsJson.fundingSignatures || fundingSigsJson.funding_signatures;\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      instance.witnessElements = fundingSigs.map((sig: any) =>\n        (sig.witnessElements || sig.witness_elements || []).map(\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          (element: any) => {\n            // Create a ScriptWitnessV0 instance for each witness element\n            const witness = new ScriptWitnessV0();\n            witness.witness = Buffer.from(element.witness || element, 'hex');\n            return witness;\n          },\n        ),\n      );\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes a sign_dlc message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcSign {\n    const instance = new DlcSign();\n    const reader = new BufferReader(buf);\n\n    reader.readUInt16BE(); // read type\n\n    // New fields as per dlcspecs PR #163\n    instance.protocolVersion = reader.readUInt32BE();\n    instance.contractId = reader.readBytes(32);\n\n    // Read CET adaptor signatures directly to match serialize format (no TLV wrapping)\n    instance.cetAdaptorSignatures = CetAdaptorSignatures.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n\n    // Skip past the CET adaptor signatures we just read\n    const cetLength = instance.cetAdaptorSignatures.serialize().length;\n    reader.position += cetLength;\n\n    instance.refundSignature = reader.readBytes(64);\n\n    // Read funding signatures directly to match serialize format (no TLV wrapping)\n    instance.fundingSignatures = FundingSignatures.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n\n    // Skip past the funding signatures we just read\n    const fundingLength = instance.fundingSignatures.serialize().length;\n    reader.position += fundingLength;\n\n    // Parse TLV stream as per dlcspecs PR #163\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          // Store unknown TLVs for future compatibility\n          if (!instance.unknownTlvs) {\n            instance.unknownTlvs = [];\n          }\n          instance.unknownTlvs.push({ type: Number(type), data: buf });\n          break;\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for sign_dlc message. sign_dlc = 42782\n   */\n  public type = DlcSign.type;\n\n  // New fields as per dlcspecs PR #163\n  public protocolVersion: number = PROTOCOL_VERSION; // Default to current protocol version\n\n  // Existing fields\n  public contractId: Buffer;\n\n  public cetAdaptorSignatures: CetAdaptorSignatures;\n\n  public refundSignature: Buffer;\n\n  public fundingSignatures: FundingSignatures;\n\n  public batchFundingGroups?: BatchFundingGroup[];\n\n  // Store unknown TLVs for forward compatibility\n  public unknownTlvs?: Array<{ type: number; data: Buffer }>;\n\n  /**\n   * Validates correctness of all fields\n   * Updated validation rules as per dlcspecs PR #163\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // 1. Type is set automatically in class\n    // 2. protocol_version validation\n    if (this.protocolVersion !== PROTOCOL_VERSION) {\n      throw new Error(\n        `Unsupported protocol version: ${this.protocolVersion}, expected: ${PROTOCOL_VERSION}`,\n      );\n    }\n\n    // 3. contract_id must be 32 bytes\n    if (!this.contractId || this.contractId.length !== 32) {\n      throw new Error('contractId must be 32 bytes');\n    }\n\n    // 4. Other validations would depend on specific business logic\n    // TODO: Add more specific validation rules as needed\n  }\n\n  /**\n   * Converts sign_dlc to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): IDlcSignJSON {\n    // Convert raw signature back to DER format for canonical rust-dlc JSON\n    const derRefundSignature = secp256k1.signatureExport(this.refundSignature);\n\n    return {\n      protocolVersion: this.protocolVersion,\n      contractId: this.contractId.toString('hex'),\n      cetAdaptorSignatures: this.cetAdaptorSignatures.toJSON(),\n      refundSignature: Buffer.from(derRefundSignature).toString('hex'),\n      fundingSignatures: this.fundingSignatures.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the sign_dlc message into a Buffer\n   * Updated serialization format as per dlcspecs PR #163\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n\n    // New fields as per dlcspecs PR #163\n    writer.writeUInt32BE(this.protocolVersion);\n    writer.writeBytes(this.contractId);\n    writer.writeBytes(this.cetAdaptorSignatures.serialize());\n    writer.writeBytes(this.refundSignature);\n    writer.writeBytes(this.fundingSignatures.serialize());\n\n    // TLV stream as per dlcspecs PR #163\n    if (this.batchFundingGroups)\n      this.batchFundingGroups.forEach((fundingInfo) =>\n        writer.writeBytes(fundingInfo.serialize()),\n      );\n\n    // Write unknown TLVs for forward compatibility\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) => {\n        writer.writeBytes(tlv.data);\n      });\n    }\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IDlcSignJSON {\n  protocolVersion: number;\n  contractId: string;\n  cetAdaptorSignatures: ICetAdaptorSignaturesJSON;\n  refundSignature: string;\n  fundingSignatures: IFundingSignaturesJSON;\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);\n      container.addSign(sign);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7ae4d608cfb69363bb1acf2e9606183a1be500e0","contentHash":"a7c61f04c8198ffbefb54a80568d6259a847b85086aed0a8bec4f1ef838015ab"},"/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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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): NodeAnnouncementMessage {\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(): Buffer {\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":"10e52897d5d378fa398da844a585e4f2544f7a9c","contentHash":"f14ad10ede4d7601ffffeb4d995ceda5dac3ad00ce14aac8bb91ce4c3a48e8a7"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncement.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncement.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":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":22},"end":{"line":8,"column":46}},"7":{"start":{"line":29,"column":8},"end":{"line":29,"column":44}},"8":{"start":{"line":37,"column":25},"end":{"line":37,"column":49}},"9":{"start":{"line":39,"column":8},"end":{"line":41,"column":48}},"10":{"start":{"line":42,"column":8},"end":{"line":42,"column":123}},"11":{"start":{"line":43,"column":8},"end":{"line":43,"column":105}},"12":{"start":{"line":44,"column":8},"end":{"line":44,"column":24}},"13":{"start":{"line":51,"column":25},"end":{"line":51,"column":49}},"14":{"start":{"line":52,"column":23},"end":{"line":52,"column":52}},"15":{"start":{"line":53,"column":8},"end":{"line":53,"column":29}},"16":{"start":{"line":54,"column":8},"end":{"line":54,"column":47}},"17":{"start":{"line":55,"column":8},"end":{"line":55,"column":56}},"18":{"start":{"line":56,"column":8},"end":{"line":56,"column":56}},"19":{"start":{"line":57,"column":8},"end":{"line":57,"column":99}},"20":{"start":{"line":58,"column":8},"end":{"line":58,"column":24}},"21":{"start":{"line":67,"column":8},"end":{"line":67,"column":36}},"22":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"23":{"start":{"line":70,"column":12},"end":{"line":70,"column":82}},"24":{"start":{"line":73,"column":8},"end":{"line":75,"column":9}},"25":{"start":{"line":74,"column":12},"end":{"line":74,"column":88}},"26":{"start":{"line":77,"column":8},"end":{"line":83,"column":9}},"27":{"start":{"line":78,"column":24},"end":{"line":78,"column":113}},"28":{"start":{"line":79,"column":12},"end":{"line":79,"column":87}},"29":{"start":{"line":82,"column":12},"end":{"line":82,"column":80}},"30":{"start":{"line":90,"column":8},"end":{"line":90,"column":45}},"31":{"start":{"line":96,"column":8},"end":{"line":96,"column":51}},"32":{"start":{"line":102,"column":8},"end":{"line":102,"column":40}},"33":{"start":{"line":108,"column":8},"end":{"line":112,"column":10}},"34":{"start":{"line":118,"column":23},"end":{"line":118,"column":49}},"35":{"start":{"line":119,"column":8},"end":{"line":119,"column":39}},"36":{"start":{"line":120,"column":27},"end":{"line":120,"column":53}},"37":{"start":{"line":121,"column":8},"end":{"line":121,"column":52}},"38":{"start":{"line":122,"column":8},"end":{"line":122,"column":52}},"39":{"start":{"line":123,"column":8},"end":{"line":123,"column":60}},"40":{"start":{"line":124,"column":8},"end":{"line":124,"column":45}},"41":{"start":{"line":125,"column":8},"end":{"line":125,"column":49}},"42":{"start":{"line":126,"column":8},"end":{"line":126,"column":33}},"43":{"start":{"line":129,"column":0},"end":{"line":129,"column":48}},"44":{"start":{"line":130,"column":0},"end":{"line":130,"column":71}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":18},"end":{"line":30,"column":5}},"line":25},"1":{"name":"(anonymous_1)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":26},"end":{"line":45,"column":5}},"line":36},"2":{"name":"(anonymous_2)","decl":{"start":{"line":50,"column":4},"end":{"line":50,"column":5}},"loc":{"start":{"line":50,"column":28},"end":{"line":59,"column":5}},"line":50},"3":{"name":"(anonymous_3)","decl":{"start":{"line":65,"column":4},"end":{"line":65,"column":5}},"loc":{"start":{"line":65,"column":15},"end":{"line":84,"column":5}},"line":65},"4":{"name":"(anonymous_4)","decl":{"start":{"line":89,"column":4},"end":{"line":89,"column":5}},"loc":{"start":{"line":89,"column":16},"end":{"line":91,"column":5}},"line":89},"5":{"name":"(anonymous_5)","decl":{"start":{"line":95,"column":4},"end":{"line":95,"column":5}},"loc":{"start":{"line":95,"column":28},"end":{"line":97,"column":5}},"line":95},"6":{"name":"(anonymous_6)","decl":{"start":{"line":101,"column":4},"end":{"line":101,"column":5}},"loc":{"start":{"line":101,"column":17},"end":{"line":103,"column":5}},"line":101},"7":{"name":"(anonymous_7)","decl":{"start":{"line":107,"column":4},"end":{"line":107,"column":5}},"loc":{"start":{"line":107,"column":13},"end":{"line":113,"column":5}},"line":107},"8":{"name":"(anonymous_8)","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":5}},"loc":{"start":{"line":117,"column":16},"end":{"line":127,"column":5}},"line":117}},"branchMap":{"0":{"loc":{"start":{"line":39,"column":47},"end":{"line":41,"column":39}},"type":"binary-expr","locations":[{"start":{"line":39,"column":47},"end":{"line":39,"column":73}},{"start":{"line":40,"column":12},"end":{"line":40,"column":32}},{"start":{"line":41,"column":12},"end":{"line":41,"column":39}}],"line":39},"1":{"loc":{"start":{"line":42,"column":47},"end":{"line":42,"column":114}},"type":"binary-expr","locations":[{"start":{"line":42,"column":47},"end":{"line":42,"column":67}},{"start":{"line":42,"column":71},"end":{"line":42,"column":88}},{"start":{"line":42,"column":92},"end":{"line":42,"column":114}}],"line":42},"2":{"loc":{"start":{"line":43,"column":66},"end":{"line":43,"column":103}},"type":"binary-expr","locations":[{"start":{"line":43,"column":66},"end":{"line":43,"column":82}},{"start":{"line":43,"column":86},"end":{"line":43,"column":103}}],"line":43},"3":{"loc":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},{"start":{},"end":{}}],"line":69},"4":{"loc":{"start":{"line":69,"column":12},"end":{"line":69,"column":71}},"type":"binary-expr","locations":[{"start":{"line":69,"column":12},"end":{"line":69,"column":33}},{"start":{"line":69,"column":37},"end":{"line":69,"column":71}}],"line":69},"5":{"loc":{"start":{"line":73,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":73,"column":8},"end":{"line":75,"column":9}},{"start":{},"end":{}}],"line":73},"6":{"loc":{"start":{"line":73,"column":12},"end":{"line":73,"column":71}},"type":"binary-expr","locations":[{"start":{"line":73,"column":12},"end":{"line":73,"column":33}},{"start":{"line":73,"column":37},"end":{"line":73,"column":71}}],"line":73}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":471,"8":163,"9":163,"10":163,"11":163,"12":163,"13":253,"14":253,"15":253,"16":253,"17":253,"18":253,"19":253,"20":253,"21":13,"22":12,"23":0,"24":12,"25":0,"26":12,"27":12,"28":12,"29":1,"30":3,"31":0,"32":16,"33":86,"34":680,"35":680,"36":680,"37":680,"38":680,"39":680,"40":680,"41":680,"42":680,"43":1,"44":1},"f":{"0":471,"1":163,"2":253,"3":13,"4":3,"5":0,"6":16,"7":86,"8":680},"b":{"0":[163,0,0],"1":[163,0,0],"2":[163,0],"3":[0,12],"4":[12,12],"5":[0,12],"6":[12,12]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncement.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAnnouncement.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 { getTlv } from '../serialize/getTlv';\nimport { IDlcMessage } from './DlcMessage';\nimport { IOracleEventJSON, OracleEvent } from './OracleEvent';\n\n/**\n * Oracle announcement that describe an event and the way that an oracle will\n * attest to it. Updated to be rust-dlc compliant.\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 OracleAnnouncement implements IDlcMessage {\n  public static type = MessageType.OracleAnnouncement;\n\n  /**\n   * Creates an OracleAnnouncement from JSON data\n   * @param json JSON object representing oracle announcement\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OracleAnnouncement {\n    const instance = new OracleAnnouncement();\n\n    // Handle different field name variations\n    instance.announcementSig = Buffer.from(\n      json.announcementSignature ||\n        json.announcementSig ||\n        json.announcement_signature,\n      'hex',\n    );\n    instance.oraclePublicKey = Buffer.from(\n      json.oraclePublicKey || json.oraclePubkey || json.oracle_public_key,\n      'hex',\n    );\n    instance.oracleEvent = OracleEvent.fromJSON(\n      json.oracleEvent || json.oracle_event,\n    );\n\n    return instance;\n  }\n\n  /**\n   * Deserializes an oracle_announcement message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleAnnouncement {\n    const instance = new OracleAnnouncement();\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.oraclePublicKey = reader.readBytes(32);\n    instance.oracleEvent = OracleEvent.deserialize(getTlv(reader));\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_announcement message. oracle_announcement = 55332\n   */\n  public type = OracleAnnouncement.type;\n\n  public length: bigint;\n\n  /** The signature enabling verifying the origin of the announcement. */\n  public announcementSig: Buffer;\n\n  /** The public key of the oracle (32 bytes, x-only). */\n  public oraclePublicKey: Buffer;\n\n  /** The description of the event and attesting. */\n  public oracleEvent: OracleEvent;\n\n  /**\n   * Validates the oracle announcement according to rust-dlc specification.\n   * This includes validating the oracle event and verifying the announcement signature.\n   * @throws Will throw an error if validation fails\n   */\n  public validate(): void {\n    // Validate oracle event first\n    this.oracleEvent.validate();\n\n    // Validate oracle public key format (32 bytes for x-only)\n    if (!this.oraclePublicKey || this.oraclePublicKey.length !== 32) {\n      throw new Error('Oracle public key must be 32 bytes (x-only format)');\n    }\n\n    // Validate announcement signature format (64 bytes for Schnorr)\n    if (!this.announcementSig || this.announcementSig.length !== 64) {\n      throw new Error(\n        'Announcement signature must be 64 bytes (Schnorr format)',\n      );\n    }\n\n    // Verify announcement signature over the oracle event\n    try {\n      const msg = math.taggedHash(\n        'DLC/oracle/announcement/v0',\n        this.oracleEvent.serialize(),\n      );\n      verify(this.oraclePublicKey, msg, this.announcementSig);\n    } catch (error) {\n      throw new Error(`Invalid announcement signature: ${error.message}`);\n    }\n  }\n\n  /**\n   * Returns the nonces from the oracle event.\n   * This is useful for finding matching oracle announcements.\n   */\n  public getNonces(): Buffer[] {\n    return this.oracleEvent.oracleNonces;\n  }\n\n  /**\n   * Returns the event maturity epoch from the oracle event.\n   */\n  public getEventMaturityEpoch(): number {\n    return this.oracleEvent.eventMaturityEpoch;\n  }\n\n  /**\n   * Returns the event ID from the oracle event.\n   */\n  public getEventId(): string {\n    return this.oracleEvent.eventId;\n  }\n\n  /**\n   * Converts oracle_announcement to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): OracleAnnouncementJSON {\n    return {\n      announcementSignature: this.announcementSig.toString('hex'),\n      oraclePublicKey: this.oraclePublicKey.toString('hex'),\n      oracleEvent: this.oracleEvent.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the oracle_announcement 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.oraclePublicKey);\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 OracleAnnouncementJSON {\n  type?: number; // Made optional for rust-dlc compatibility\n  announcementSignature: string; // Canonical field name\n  oraclePublicKey: string; // Canonical field name\n  oracleEvent: IOracleEventJSON;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"79a964e95b7f8e8749981d76c8bd58df980aa759","contentHash":"22080136b29ae8da4580ffded49ed9821b22f6a20ab5b5017ed45e8142bdf163"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEvent.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEvent.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":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":28,"column":8},"end":{"line":28,"column":37}},"7":{"start":{"line":30,"column":8},"end":{"line":30,"column":31}},"8":{"start":{"line":38,"column":25},"end":{"line":38,"column":42}},"9":{"start":{"line":40,"column":23},"end":{"line":40,"column":68}},"10":{"start":{"line":41,"column":8},"end":{"line":41,"column":81}},"11":{"start":{"line":41,"column":54},"end":{"line":41,"column":79}},"12":{"start":{"line":42,"column":8},"end":{"line":43,"column":70}},"13":{"start":{"line":45,"column":8},"end":{"line":45,"column":125}},"14":{"start":{"line":46,"column":8},"end":{"line":46,"column":63}},"15":{"start":{"line":47,"column":8},"end":{"line":47,"column":24}},"16":{"start":{"line":54,"column":25},"end":{"line":54,"column":42}},"17":{"start":{"line":55,"column":23},"end":{"line":55,"column":52}},"18":{"start":{"line":56,"column":8},"end":{"line":56,"column":29}},"19":{"start":{"line":57,"column":8},"end":{"line":57,"column":47}},"20":{"start":{"line":58,"column":27},"end":{"line":58,"column":48}},"21":{"start":{"line":59,"column":8},"end":{"line":61,"column":9}},"22":{"start":{"line":59,"column":21},"end":{"line":59,"column":22}},"23":{"start":{"line":60,"column":12},"end":{"line":60,"column":61}},"24":{"start":{"line":62,"column":8},"end":{"line":62,"column":60}},"25":{"start":{"line":63,"column":8},"end":{"line":63,"column":111}},"26":{"start":{"line":64,"column":30},"end":{"line":64,"column":50}},"27":{"start":{"line":65,"column":27},"end":{"line":65,"column":66}},"28":{"start":{"line":66,"column":8},"end":{"line":66,"column":49}},"29":{"start":{"line":67,"column":8},"end":{"line":67,"column":24}},"30":{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},"31":{"start":{"line":78,"column":12},"end":{"line":78,"column":85}},"32":{"start":{"line":81,"column":8},"end":{"line":83,"column":9}},"33":{"start":{"line":82,"column":12},"end":{"line":82,"column":55}},"34":{"start":{"line":85,"column":8},"end":{"line":87,"column":9}},"35":{"start":{"line":86,"column":12},"end":{"line":86,"column":67}},"36":{"start":{"line":88,"column":8},"end":{"line":92,"column":11}},"37":{"start":{"line":89,"column":12},"end":{"line":91,"column":13}},"38":{"start":{"line":90,"column":16},"end":{"line":90,"column":83}},"39":{"start":{"line":94,"column":33},"end":{"line":94,"column":61}},"40":{"start":{"line":95,"column":8},"end":{"line":97,"column":9}},"41":{"start":{"line":96,"column":12},"end":{"line":96,"column":127}},"42":{"start":{"line":99,"column":8},"end":{"line":101,"column":9}},"43":{"start":{"line":100,"column":12},"end":{"line":100,"column":44}},"44":{"start":{"line":109,"column":8},"end":{"line":122,"column":9}},"45":{"start":{"line":111,"column":12},"end":{"line":111,"column":21}},"46":{"start":{"line":113,"column":13},"end":{"line":122,"column":9}},"47":{"start":{"line":115,"column":31},"end":{"line":115,"column":51}},"48":{"start":{"line":116,"column":12},"end":{"line":118,"column":38}},"49":{"start":{"line":121,"column":12},"end":{"line":121,"column":61}},"50":{"start":{"line":128,"column":8},"end":{"line":128,"column":85}},"51":{"start":{"line":134,"column":8},"end":{"line":134,"column":99}},"52":{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},"53":{"start":{"line":142,"column":12},"end":{"line":142,"column":58}},"54":{"start":{"line":144,"column":8},"end":{"line":144,"column":36}},"55":{"start":{"line":151,"column":8},"end":{"line":153,"column":9}},"56":{"start":{"line":152,"column":12},"end":{"line":152,"column":72}},"57":{"start":{"line":154,"column":8},"end":{"line":154,"column":36}},"58":{"start":{"line":160,"column":8},"end":{"line":165,"column":10}},"59":{"start":{"line":161,"column":60},"end":{"line":161,"column":82}},"60":{"start":{"line":171,"column":23},"end":{"line":171,"column":49}},"61":{"start":{"line":172,"column":8},"end":{"line":172,"column":39}},"62":{"start":{"line":173,"column":27},"end":{"line":173,"column":53}},"63":{"start":{"line":174,"column":8},"end":{"line":174,"column":59}},"64":{"start":{"line":175,"column":8},"end":{"line":177,"column":9}},"65":{"start":{"line":176,"column":12},"end":{"line":176,"column":41}},"66":{"start":{"line":178,"column":8},"end":{"line":178,"column":58}},"67":{"start":{"line":179,"column":8},"end":{"line":179,"column":64}},"68":{"start":{"line":180,"column":8},"end":{"line":180,"column":53}},"69":{"start":{"line":181,"column":8},"end":{"line":181,"column":57}},"70":{"start":{"line":182,"column":8},"end":{"line":182,"column":45}},"71":{"start":{"line":183,"column":8},"end":{"line":183,"column":49}},"72":{"start":{"line":184,"column":8},"end":{"line":184,"column":33}},"73":{"start":{"line":187,"column":0},"end":{"line":187,"column":34}},"74":{"start":{"line":188,"column":0},"end":{"line":188,"column":57}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":18},"end":{"line":31,"column":5}},"line":24},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":26},"end":{"line":48,"column":5}},"line":37},"2":{"name":"(anonymous_2)","decl":{"start":{"line":41,"column":43},"end":{"line":41,"column":44}},"loc":{"start":{"line":41,"column":54},"end":{"line":41,"column":79}},"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":68,"column":5}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":75,"column":4},"end":{"line":75,"column":5}},"loc":{"start":{"line":75,"column":15},"end":{"line":103,"column":5}},"line":75},"5":{"name":"(anonymous_5)","decl":{"start":{"line":88,"column":34},"end":{"line":88,"column":35}},"loc":{"start":{"line":88,"column":52},"end":{"line":92,"column":9}},"line":88},"6":{"name":"(anonymous_6)","decl":{"start":{"line":108,"column":4},"end":{"line":108,"column":5}},"loc":{"start":{"line":108,"column":28},"end":{"line":123,"column":5}},"line":108},"7":{"name":"(anonymous_7)","decl":{"start":{"line":127,"column":4},"end":{"line":127,"column":5}},"loc":{"start":{"line":127,"column":18},"end":{"line":129,"column":5}},"line":127},"8":{"name":"(anonymous_8)","decl":{"start":{"line":133,"column":4},"end":{"line":133,"column":5}},"loc":{"start":{"line":133,"column":32},"end":{"line":135,"column":5}},"line":133},"9":{"name":"(anonymous_9)","decl":{"start":{"line":140,"column":4},"end":{"line":140,"column":5}},"loc":{"start":{"line":140,"column":29},"end":{"line":145,"column":5}},"line":140},"10":{"name":"(anonymous_10)","decl":{"start":{"line":150,"column":4},"end":{"line":150,"column":5}},"loc":{"start":{"line":150,"column":43},"end":{"line":155,"column":5}},"line":150},"11":{"name":"(anonymous_11)","decl":{"start":{"line":159,"column":4},"end":{"line":159,"column":5}},"loc":{"start":{"line":159,"column":13},"end":{"line":166,"column":5}},"line":159},"12":{"name":"(anonymous_12)","decl":{"start":{"line":161,"column":48},"end":{"line":161,"column":49}},"loc":{"start":{"line":161,"column":60},"end":{"line":161,"column":82}},"line":161},"13":{"name":"(anonymous_13)","decl":{"start":{"line":170,"column":4},"end":{"line":170,"column":5}},"loc":{"start":{"line":170,"column":16},"end":{"line":185,"column":5}},"line":170}},"branchMap":{"0":{"loc":{"start":{"line":40,"column":23},"end":{"line":40,"column":68}},"type":"binary-expr","locations":[{"start":{"line":40,"column":23},"end":{"line":40,"column":40}},{"start":{"line":40,"column":44},"end":{"line":40,"column":62}},{"start":{"line":40,"column":66},"end":{"line":40,"column":68}}],"line":40},"1":{"loc":{"start":{"line":43,"column":12},"end":{"line":43,"column":69}},"type":"binary-expr","locations":[{"start":{"line":43,"column":12},"end":{"line":43,"column":35}},{"start":{"line":43,"column":39},"end":{"line":43,"column":64}},{"start":{"line":43,"column":68},"end":{"line":43,"column":69}}],"line":43},"2":{"loc":{"start":{"line":45,"column":78},"end":{"line":45,"column":123}},"type":"binary-expr","locations":[{"start":{"line":45,"column":78},"end":{"line":45,"column":98}},{"start":{"line":45,"column":102},"end":{"line":45,"column":123}}],"line":45},"3":{"loc":{"start":{"line":46,"column":27},"end":{"line":46,"column":62}},"type":"binary-expr","locations":[{"start":{"line":46,"column":27},"end":{"line":46,"column":39}},{"start":{"line":46,"column":43},"end":{"line":46,"column":56}},{"start":{"line":46,"column":60},"end":{"line":46,"column":62}}],"line":46},"4":{"loc":{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},"type":"if","locations":[{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},{"start":{},"end":{}}],"line":77},"5":{"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":{},"end":{}}],"line":81},"6":{"loc":{"start":{"line":81,"column":12},"end":{"line":81,"column":54}},"type":"binary-expr","locations":[{"start":{"line":81,"column":12},"end":{"line":81,"column":25}},{"start":{"line":81,"column":29},"end":{"line":81,"column":54}}],"line":81},"7":{"loc":{"start":{"line":85,"column":8},"end":{"line":87,"column":9}},"type":"if","locations":[{"start":{"line":85,"column":8},"end":{"line":87,"column":9}},{"start":{},"end":{}}],"line":85},"8":{"loc":{"start":{"line":89,"column":12},"end":{"line":91,"column":13}},"type":"if","locations":[{"start":{"line":89,"column":12},"end":{"line":91,"column":13}},{"start":{},"end":{}}],"line":89},"9":{"loc":{"start":{"line":89,"column":16},"end":{"line":89,"column":45}},"type":"binary-expr","locations":[{"start":{"line":89,"column":16},"end":{"line":89,"column":22}},{"start":{"line":89,"column":26},"end":{"line":89,"column":45}}],"line":89},"10":{"loc":{"start":{"line":95,"column":8},"end":{"line":97,"column":9}},"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":97,"column":9}},{"start":{},"end":{}}],"line":95},"11":{"loc":{"start":{"line":99,"column":8},"end":{"line":101,"column":9}},"type":"if","locations":[{"start":{"line":99,"column":8},"end":{"line":101,"column":9}},{"start":{},"end":{}}],"line":99},"12":{"loc":{"start":{"line":109,"column":8},"end":{"line":122,"column":9}},"type":"if","locations":[{"start":{"line":109,"column":8},"end":{"line":122,"column":9}},{"start":{"line":113,"column":13},"end":{"line":122,"column":9}}],"line":109},"13":{"loc":{"start":{"line":113,"column":13},"end":{"line":122,"column":9}},"type":"if","locations":[{"start":{"line":113,"column":13},"end":{"line":122,"column":9}},{"start":{"line":120,"column":13},"end":{"line":122,"column":9}}],"line":113},"14":{"loc":{"start":{"line":116,"column":19},"end":{"line":118,"column":37}},"type":"cond-expr","locations":[{"start":{"line":117,"column":18},"end":{"line":117,"column":41}},{"start":{"line":118,"column":18},"end":{"line":118,"column":37}}],"line":116},"15":{"loc":{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},"type":"if","locations":[{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},{"start":{},"end":{}}],"line":141},"16":{"loc":{"start":{"line":151,"column":8},"end":{"line":153,"column":9}},"type":"if","locations":[{"start":{"line":151,"column":8},"end":{"line":153,"column":9}},{"start":{},"end":{}}],"line":151}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":474,"7":474,"8":163,"9":163,"10":163,"11":946,"12":163,"13":163,"14":163,"15":163,"16":257,"17":257,"18":257,"19":257,"20":257,"21":257,"22":257,"23":1591,"24":257,"25":257,"26":257,"27":257,"28":257,"29":257,"30":16,"31":1,"32":15,"33":0,"34":15,"35":1,"36":14,"37":80,"38":0,"39":14,"40":14,"41":1,"42":13,"43":3,"44":14,"45":10,"46":4,"47":4,"48":4,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":86,"59":482,"60":694,"61":694,"62":694,"63":694,"64":694,"65":4060,"66":694,"67":694,"68":694,"69":694,"70":694,"71":694,"72":694,"73":1,"74":1},"f":{"0":474,"1":163,"2":946,"3":257,"4":16,"5":80,"6":14,"7":0,"8":0,"9":0,"10":0,"11":86,"12":482,"13":694},"b":{"0":[163,0,0],"1":[163,0,0],"2":[163,0],"3":[163,0,0],"4":[1,15],"5":[0,15],"6":[15,15],"7":[1,14],"8":[0,80],"9":[80,80],"10":[1,13],"11":[3,10],"12":[10,4],"13":[4,0],"14":[0,4],"15":[0,0],"16":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEvent.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEvent.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  DigitDecompositionEventDescriptor,\n  EnumEventDescriptor,\n  EventDescriptor,\n  IDigitDecompositionEventDescriptorJSON,\n  IEnumEventDescriptorJSON,\n} from './EventDescriptor';\n\n/**\n * Oracle event containing information about an event and the way that the\n * oracle will attest to it. Updated to be rust-dlc compliant.\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 * messages 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 OracleEvent implements IDlcMessage {\n  public static type = MessageType.OracleEvent;\n\n  /**\n   * Creates an OracleEvent from JSON data\n   * @param json JSON object representing oracle event\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OracleEvent {\n    const instance = new OracleEvent();\n\n    // Parse oracle nonces array\n    const nonces = json.oracleNonces || json.oracle_nonces || [];\n    instance.oracleNonces = nonces.map((nonce: string) =>\n      Buffer.from(nonce, 'hex'),\n    );\n\n    instance.eventMaturityEpoch =\n      json.eventMaturityEpoch || json.event_maturity_epoch || 0;\n\n    // Parse event descriptor\n    instance.eventDescriptor = EventDescriptor.fromJSON(\n      json.eventDescriptor || json.event_descriptor,\n    );\n\n    instance.eventId = json.eventId || json.event_id || '';\n\n    return instance;\n  }\n\n  /**\n   * Deserializes an oracle_event message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleEvent {\n    const instance = new OracleEvent();\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 = OracleEvent.type;\n\n  public length: bigint;\n\n  /** The nonces that the oracle will use to attest to the event outcome. */\n  public oracleNonces: Buffer[] = [];\n\n  /** The expected maturity of the contract (Unix timestamp). */\n  public eventMaturityEpoch: number;\n\n  /** The description of the event. */\n  public eventDescriptor: EventDescriptor;\n\n  /** The ID of the event. */\n  public eventId: string;\n\n  /**\n   * Validates correctness of all fields in the message according to rust-dlc specification.\n   * This includes validating that the number of nonces matches the expected count for the event type.\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    // Validate event maturity epoch\n    if (this.eventMaturityEpoch < 0) {\n      throw new Error('eventMaturityEpoch must be greater than or equal to 0');\n    }\n\n    // Validate event ID\n    if (!this.eventId || this.eventId.length === 0) {\n      throw new Error('eventId cannot be empty');\n    }\n\n    // Validate oracle nonces (must be 32 bytes each)\n    if (this.oracleNonces.length === 0) {\n      throw new Error('Must have at least one oracle nonce');\n    }\n\n    this.oracleNonces.forEach((nonce, index) => {\n      if (!nonce || nonce.length !== 32) {\n        throw new Error(`Oracle nonce at index ${index} must be 32 bytes`);\n      }\n    });\n\n    // Validate expected number of nonces based on event descriptor type\n    const expectedNbNonces = this.getExpectedNonceCount();\n\n    if (expectedNbNonces !== this.oracleNonces.length) {\n      throw new Error(\n        `OracleEvent nonce count mismatch: expected ${expectedNbNonces}, got ${this.oracleNonces.length}`,\n      );\n    }\n\n    // Validate the event descriptor itself\n    if (this.eventDescriptor instanceof DigitDecompositionEventDescriptor) {\n      this.eventDescriptor.validate();\n    }\n    // EnumEventDescriptorV0 doesn't have validation requirements beyond basic structure\n  }\n\n  /**\n   * Returns the expected number of nonces based on the event descriptor type.\n   * This matches the rust-dlc validation logic.\n   */\n  private getExpectedNonceCount(): number {\n    if (this.eventDescriptor instanceof EnumEventDescriptor) {\n      // Enum events require exactly 1 nonce\n      return 1;\n    } else if (\n      this.eventDescriptor instanceof DigitDecompositionEventDescriptor\n    ) {\n      // Digit decomposition events require nbDigits nonces, plus 1 if signed\n      const descriptor = this.eventDescriptor;\n      return descriptor.isSigned\n        ? descriptor.nbDigits + 1\n        : descriptor.nbDigits;\n    } else {\n      throw new Error('Unknown event descriptor type');\n    }\n  }\n\n  /**\n   * Returns whether this event is for enumerated outcomes.\n   */\n  public isEnumEvent(): boolean {\n    return this.eventDescriptor instanceof EnumEventDescriptor;\n  }\n\n  /**\n   * Returns whether this event is for numerical outcomes.\n   */\n  public isDigitDecompositionEvent(): boolean {\n    return this.eventDescriptor instanceof DigitDecompositionEventDescriptor;\n  }\n\n  /**\n   * Returns the event descriptor as EnumEventDescriptor if it's an enum event.\n   * @throws Error if not an enum event\n   */\n  public getEnumEventDescriptor(): EnumEventDescriptor {\n    if (!this.isEnumEvent()) {\n      throw new Error('Event is not an enum event');\n    }\n    return this.eventDescriptor as EnumEventDescriptor;\n  }\n\n  /**\n   * Returns the event descriptor as DigitDecompositionEventDescriptor if it's a numerical event.\n   * @throws Error if not a numerical event\n   */\n  public getDigitDecompositionEventDescriptor(): DigitDecompositionEventDescriptor {\n    if (!this.isDigitDecompositionEvent()) {\n      throw new Error('Event is not a digit decomposition event');\n    }\n    return this.eventDescriptor as DigitDecompositionEventDescriptor;\n  }\n\n  /**\n   * Converts oracle_event to JSON\n   */\n  public toJSON(): IOracleEventJSON {\n    return {\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 IOracleEventJSON {\n  type?: number; // Made optional for rust-dlc compatibility\n  oracleNonces: string[];\n  eventMaturityEpoch: number;\n  eventDescriptor:\n    | IEnumEventDescriptorJSON\n    | IDigitDecompositionEventDescriptorJSON;\n  eventId: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c274eb9d11d8d5ef236e14e69af83e00a364f4cc","contentHash":"48afb190df9fab18c0a9a2a39dbcdcfaadd2290710378d89e5d359c3a77e56d1"},"/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":185}},"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":60}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":74}},"9":{"start":{"line":16,"column":16},"end":{"line":16,"column":127}},"10":{"start":{"line":25,"column":8},"end":{"line":27,"column":9}},"11":{"start":{"line":26,"column":12},"end":{"line":26,"column":59}},"12":{"start":{"line":29,"column":8},"end":{"line":37,"column":9}},"13":{"start":{"line":30,"column":12},"end":{"line":30,"column":83}},"14":{"start":{"line":32,"column":13},"end":{"line":37,"column":9}},"15":{"start":{"line":33,"column":12},"end":{"line":33,"column":126}},"16":{"start":{"line":36,"column":12},"end":{"line":36,"column":101}},"17":{"start":{"line":40,"column":0},"end":{"line":40,"column":42}},"18":{"start":{"line":47,"column":8},"end":{"line":47,"column":28}},"19":{"start":{"line":51,"column":8},"end":{"line":51,"column":45}},"20":{"start":{"line":52,"column":8},"end":{"line":52,"column":32}},"21":{"start":{"line":53,"column":8},"end":{"line":53,"column":27}},"22":{"start":{"line":61,"column":25},"end":{"line":61,"column":50}},"23":{"start":{"line":62,"column":8},"end":{"line":62,"column":48}},"24":{"start":{"line":63,"column":8},"end":{"line":63,"column":24}},"25":{"start":{"line":70,"column":25},"end":{"line":70,"column":50}},"26":{"start":{"line":71,"column":23},"end":{"line":71,"column":52}},"27":{"start":{"line":72,"column":8},"end":{"line":72,"column":29}},"28":{"start":{"line":73,"column":8},"end":{"line":73,"column":47}},"29":{"start":{"line":74,"column":8},"end":{"line":74,"column":30}},"30":{"start":{"line":75,"column":8},"end":{"line":79,"column":9}},"31":{"start":{"line":76,"column":31},"end":{"line":76,"column":51}},"32":{"start":{"line":77,"column":31},"end":{"line":77,"column":67}},"33":{"start":{"line":78,"column":12},"end":{"line":78,"column":58}},"34":{"start":{"line":80,"column":8},"end":{"line":80,"column":24}},"35":{"start":{"line":86,"column":8},"end":{"line":90,"column":10}},"36":{"start":{"line":96,"column":23},"end":{"line":96,"column":49}},"37":{"start":{"line":97,"column":8},"end":{"line":97,"column":39}},"38":{"start":{"line":98,"column":27},"end":{"line":98,"column":53}},"39":{"start":{"line":99,"column":8},"end":{"line":99,"column":55}},"40":{"start":{"line":100,"column":8},"end":{"line":103,"column":9}},"41":{"start":{"line":101,"column":12},"end":{"line":101,"column":52}},"42":{"start":{"line":102,"column":12},"end":{"line":102,"column":56}},"43":{"start":{"line":104,"column":8},"end":{"line":104,"column":45}},"44":{"start":{"line":105,"column":8},"end":{"line":105,"column":49}},"45":{"start":{"line":106,"column":8},"end":{"line":106,"column":33}},"46":{"start":{"line":109,"column":0},"end":{"line":109,"column":50}},"47":{"start":{"line":110,"column":0},"end":{"line":110,"column":75}},"48":{"start":{"line":112,"column":0},"end":{"line":112,"column":52}},"49":{"start":{"line":119,"column":8},"end":{"line":119,"column":28}},"50":{"start":{"line":123,"column":8},"end":{"line":123,"column":59}},"51":{"start":{"line":131,"column":25},"end":{"line":131,"column":64}},"52":{"start":{"line":132,"column":8},"end":{"line":132,"column":40}},"53":{"start":{"line":133,"column":8},"end":{"line":133,"column":69}},"54":{"start":{"line":134,"column":8},"end":{"line":134,"column":40}},"55":{"start":{"line":135,"column":8},"end":{"line":135,"column":49}},"56":{"start":{"line":136,"column":8},"end":{"line":136,"column":65}},"57":{"start":{"line":137,"column":8},"end":{"line":137,"column":24}},"58":{"start":{"line":144,"column":25},"end":{"line":144,"column":64}},"59":{"start":{"line":145,"column":23},"end":{"line":145,"column":52}},"60":{"start":{"line":146,"column":8},"end":{"line":146,"column":29}},"61":{"start":{"line":147,"column":8},"end":{"line":147,"column":47}},"62":{"start":{"line":153,"column":8},"end":{"line":153,"column":46}},"63":{"start":{"line":154,"column":8},"end":{"line":154,"column":53}},"64":{"start":{"line":155,"column":24},"end":{"line":155,"column":44}},"65":{"start":{"line":156,"column":24},"end":{"line":156,"column":57}},"66":{"start":{"line":157,"column":8},"end":{"line":157,"column":43}},"67":{"start":{"line":158,"column":8},"end":{"line":158,"column":51}},"68":{"start":{"line":159,"column":8},"end":{"line":159,"column":50}},"69":{"start":{"line":160,"column":8},"end":{"line":160,"column":24}},"70":{"start":{"line":168,"column":8},"end":{"line":170,"column":9}},"71":{"start":{"line":169,"column":12},"end":{"line":169,"column":59}},"72":{"start":{"line":172,"column":8},"end":{"line":174,"column":9}},"73":{"start":{"line":173,"column":12},"end":{"line":173,"column":66}},"74":{"start":{"line":180,"column":8},"end":{"line":188,"column":10}},"75":{"start":{"line":194,"column":23},"end":{"line":194,"column":49}},"76":{"start":{"line":195,"column":8},"end":{"line":195,"column":39}},"77":{"start":{"line":196,"column":27},"end":{"line":196,"column":53}},"78":{"start":{"line":197,"column":8},"end":{"line":197,"column":44}},"79":{"start":{"line":198,"column":8},"end":{"line":198,"column":53}},"80":{"start":{"line":199,"column":8},"end":{"line":199,"column":50}},"81":{"start":{"line":200,"column":8},"end":{"line":200,"column":54}},"82":{"start":{"line":201,"column":8},"end":{"line":201,"column":49}},"83":{"start":{"line":202,"column":8},"end":{"line":202,"column":48}},"84":{"start":{"line":203,"column":8},"end":{"line":203,"column":45}},"85":{"start":{"line":204,"column":8},"end":{"line":204,"column":49}},"86":{"start":{"line":205,"column":8},"end":{"line":205,"column":33}},"87":{"start":{"line":208,"column":0},"end":{"line":208,"column":78}},"88":{"start":{"line":209,"column":0},"end":{"line":209,"column":101}},"89":{"start":{"line":211,"column":0},"end":{"line":211,"column":80}}},"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":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":26},"end":{"line":38,"column":5}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":18},"end":{"line":54,"column":5}},"line":46},"3":{"name":"(anonymous_3)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":26},"end":{"line":64,"column":5}},"line":60},"4":{"name":"(anonymous_4)","decl":{"start":{"line":69,"column":4},"end":{"line":69,"column":5}},"loc":{"start":{"line":69,"column":28},"end":{"line":81,"column":5}},"line":69},"5":{"name":"(anonymous_5)","decl":{"start":{"line":85,"column":4},"end":{"line":85,"column":5}},"loc":{"start":{"line":85,"column":13},"end":{"line":91,"column":5}},"line":85},"6":{"name":"(anonymous_6)","decl":{"start":{"line":95,"column":4},"end":{"line":95,"column":5}},"loc":{"start":{"line":95,"column":16},"end":{"line":107,"column":5}},"line":95},"7":{"name":"(anonymous_7)","decl":{"start":{"line":118,"column":4},"end":{"line":118,"column":5}},"loc":{"start":{"line":118,"column":18},"end":{"line":124,"column":5}},"line":118},"8":{"name":"(anonymous_8)","decl":{"start":{"line":130,"column":4},"end":{"line":130,"column":5}},"loc":{"start":{"line":130,"column":26},"end":{"line":138,"column":5}},"line":130},"9":{"name":"(anonymous_9)","decl":{"start":{"line":143,"column":4},"end":{"line":143,"column":5}},"loc":{"start":{"line":143,"column":28},"end":{"line":161,"column":5}},"line":143},"10":{"name":"(anonymous_10)","decl":{"start":{"line":167,"column":4},"end":{"line":167,"column":5}},"loc":{"start":{"line":167,"column":15},"end":{"line":175,"column":5}},"line":167},"11":{"name":"(anonymous_11)","decl":{"start":{"line":179,"column":4},"end":{"line":179,"column":5}},"loc":{"start":{"line":179,"column":13},"end":{"line":189,"column":5}},"line":179},"12":{"name":"(anonymous_12)","decl":{"start":{"line":193,"column":4},"end":{"line":193,"column":5}},"loc":{"start":{"line":193,"column":16},"end":{"line":206,"column":5}},"line":193}},"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":60}},{"start":{"line":13,"column":12},"end":{"line":14,"column":74}},{"start":{"line":15,"column":12},"end":{"line":16,"column":127}}],"line":10},"1":{"loc":{"start":{"line":25,"column":8},"end":{"line":27,"column":9}},"type":"if","locations":[{"start":{"line":25,"column":8},"end":{"line":27,"column":9}},{"start":{},"end":{}}],"line":25},"2":{"loc":{"start":{"line":29,"column":8},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":37,"column":9}},{"start":{"line":32,"column":13},"end":{"line":37,"column":9}}],"line":29},"3":{"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":45}},"type":"binary-expr","locations":[{"start":{"line":29,"column":12},"end":{"line":29,"column":26}},{"start":{"line":29,"column":30},"end":{"line":29,"column":45}}],"line":29},"4":{"loc":{"start":{"line":30,"column":48},"end":{"line":30,"column":81}},"type":"binary-expr","locations":[{"start":{"line":30,"column":48},"end":{"line":30,"column":62}},{"start":{"line":30,"column":66},"end":{"line":30,"column":81}}],"line":30},"5":{"loc":{"start":{"line":32,"column":13},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":32,"column":13},"end":{"line":37,"column":9}},{"start":{"line":35,"column":13},"end":{"line":37,"column":9}}],"line":32},"6":{"loc":{"start":{"line":32,"column":17},"end":{"line":32,"column":79}},"type":"binary-expr","locations":[{"start":{"line":32,"column":17},"end":{"line":32,"column":45}},{"start":{"line":32,"column":49},"end":{"line":32,"column":79}}],"line":32},"7":{"loc":{"start":{"line":33,"column":62},"end":{"line":33,"column":124}},"type":"binary-expr","locations":[{"start":{"line":33,"column":62},"end":{"line":33,"column":90}},{"start":{"line":33,"column":94},"end":{"line":33,"column":124}}],"line":33},"8":{"loc":{"start":{"line":62,"column":28},"end":{"line":62,"column":47}},"type":"binary-expr","locations":[{"start":{"line":62,"column":28},"end":{"line":62,"column":41}},{"start":{"line":62,"column":45},"end":{"line":62,"column":47}}],"line":62},"9":{"loc":{"start":{"line":132,"column":24},"end":{"line":132,"column":39}},"type":"binary-expr","locations":[{"start":{"line":132,"column":24},"end":{"line":132,"column":33}},{"start":{"line":132,"column":37},"end":{"line":132,"column":39}}],"line":132},"10":{"loc":{"start":{"line":133,"column":28},"end":{"line":133,"column":68}},"type":"binary-expr","locations":[{"start":{"line":133,"column":28},"end":{"line":133,"column":41}},{"start":{"line":133,"column":45},"end":{"line":133,"column":59}},{"start":{"line":133,"column":63},"end":{"line":133,"column":68}}],"line":133},"11":{"loc":{"start":{"line":134,"column":24},"end":{"line":134,"column":39}},"type":"binary-expr","locations":[{"start":{"line":134,"column":24},"end":{"line":134,"column":33}},{"start":{"line":134,"column":37},"end":{"line":134,"column":39}}],"line":134},"12":{"loc":{"start":{"line":135,"column":29},"end":{"line":135,"column":48}},"type":"binary-expr","locations":[{"start":{"line":135,"column":29},"end":{"line":135,"column":43}},{"start":{"line":135,"column":47},"end":{"line":135,"column":48}}],"line":135},"13":{"loc":{"start":{"line":136,"column":28},"end":{"line":136,"column":64}},"type":"binary-expr","locations":[{"start":{"line":136,"column":28},"end":{"line":136,"column":41}},{"start":{"line":136,"column":45},"end":{"line":136,"column":59}},{"start":{"line":136,"column":63},"end":{"line":136,"column":64}}],"line":136},"14":{"loc":{"start":{"line":168,"column":8},"end":{"line":170,"column":9}},"type":"if","locations":[{"start":{"line":168,"column":8},"end":{"line":170,"column":9}},{"start":{},"end":{}}],"line":168},"15":{"loc":{"start":{"line":172,"column":8},"end":{"line":174,"column":9}},"type":"if","locations":[{"start":{"line":172,"column":8},"end":{"line":174,"column":9}},{"start":{},"end":{}}],"line":172},"16":{"loc":{"start":{"line":198,"column":30},"end":{"line":198,"column":51}},"type":"cond-expr","locations":[{"start":{"line":198,"column":46},"end":{"line":198,"column":47}},{"start":{"line":198,"column":50},"end":{"line":198,"column":51}}],"line":198}},"s":{"0":1,"1":1,"2":1,"3":1,"4":258,"5":258,"6":258,"7":116,"8":142,"9":0,"10":163,"11":0,"12":163,"13":76,"14":87,"15":87,"16":0,"17":1,"18":246,"19":246,"20":246,"21":246,"22":76,"23":76,"24":76,"25":121,"26":121,"27":121,"28":121,"29":121,"30":121,"31":430,"32":430,"33":430,"34":121,"35":42,"36":327,"37":327,"38":327,"39":327,"40":327,"41":1207,"42":1207,"43":327,"44":327,"45":327,"46":1,"47":1,"48":1,"49":238,"50":238,"51":87,"52":87,"53":87,"54":87,"55":87,"56":87,"57":87,"58":144,"59":144,"60":144,"61":144,"62":144,"63":144,"64":144,"65":144,"66":144,"67":144,"68":144,"69":144,"70":7,"71":2,"72":5,"73":1,"74":44,"75":371,"76":371,"77":371,"78":371,"79":371,"80":371,"81":371,"82":371,"83":371,"84":371,"85":371,"86":371,"87":1,"88":1,"89":1},"f":{"0":258,"1":163,"2":246,"3":76,"4":121,"5":42,"6":327,"7":238,"8":87,"9":144,"10":7,"11":44,"12":371},"b":{"0":[116,142,0],"1":[0,163],"2":[76,87],"3":[163,87],"4":[76,0],"5":[87,0],"6":[87,0],"7":[87,0],"8":[76,0],"9":[87,0],"10":[87,87,87],"11":[87,0],"12":[87,87],"13":[87,0,0],"14":[2,5],"15":[1,4],"16":[0,371]},"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  ): EnumEventDescriptor | DigitDecompositionEventDescriptor {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.EnumEventDescriptor:\n        return EnumEventDescriptor.deserialize(buf);\n      case MessageType.DigitDecompositionEventDescriptor:\n        return DigitDecompositionEventDescriptor.deserialize(buf);\n      default:\n        throw new Error(\n          `Payout function TLV type must be EnumEventDescriptorV0 or DigitDecompositionEventDescriptor`,\n        );\n    }\n  }\n\n  /**\n   * Creates an EventDescriptor from JSON data\n   * @param json JSON object representing event descriptor\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): EventDescriptor {\n    if (!json) {\n      throw new Error('eventDescriptor is required');\n    }\n\n    // Check if it's an enum event or digit decomposition event\n    if (json.enumEvent || json.enum_event) {\n      return EnumEventDescriptor.fromJSON(json.enumEvent || json.enum_event);\n    } else if (json.digitDecompositionEvent || json.digit_decomposition_event) {\n      return DigitDecompositionEventDescriptor.fromJSON(\n        json.digitDecompositionEvent || json.digit_decomposition_event,\n      );\n    } else {\n      throw new Error(\n        'eventDescriptor must have either enumEvent or digitDecompositionEvent',\n      );\n    }\n  }\n\n  public abstract type: number;\n\n  public abstract length: bigint;\n\n  public abstract toJSON():\n    | IEnumEventDescriptorJSON\n    | IDigitDecompositionEventDescriptorJSON;\n\n  public abstract serialize(): Buffer;\n}\n\n/**\n * EnumEventDescriptor message contains the event outcomes for enumerated events.\n * Simplified class name (removed V0 suffix).\n */\nexport class EnumEventDescriptor\n  extends EventDescriptor\n  implements IDlcMessage\n{\n  public static type = MessageType.EnumEventDescriptorV0;\n\n  /**\n   * Creates an EnumEventDescriptor from JSON data\n   * @param json JSON object representing an enum event descriptor\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): EnumEventDescriptor {\n    const instance = new EnumEventDescriptor();\n    instance.outcomes = json.outcomes || [];\n    return instance;\n  }\n\n  /**\n   * Deserializes an enum_event_descriptor_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): EnumEventDescriptor {\n    const instance = new EnumEventDescriptor();\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 = EnumEventDescriptor.type;\n\n  public length = BigInt(0); // Required by EventDescriptor parent class\n\n  public outcomes: string[] = [];\n\n  /**\n   * Converts enum_event_descriptor to JSON\n   */\n  public toJSON(): IEnumEventDescriptorJSON {\n    return {\n      enumEvent: {\n        outcomes: this.outcomes,\n      },\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// Legacy support - keep V0 alias for backward compatibility\nexport const EnumEventDescriptorV0 = EnumEventDescriptor;\nexport type EnumEventDescriptorV0 = EnumEventDescriptor;\n\n/**\n * DigitDecompositionEventDescriptor is a simple enumeration of outcomes.\n * Simplified class name (removed V0 suffix).\n */\nexport class DigitDecompositionEventDescriptor\n  extends EventDescriptor\n  implements IDlcMessage\n{\n  public static type = MessageType.DigitDecompositionEventDescriptor;\n\n  /**\n   * Creates a DigitDecompositionEventDescriptor from JSON data\n   * @param json JSON object representing digit decomposition event descriptor\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DigitDecompositionEventDescriptor {\n    const instance = new DigitDecompositionEventDescriptor();\n    instance.base = json.base || 10;\n    instance.isSigned = json.isSigned || json.is_signed || false;\n    instance.unit = json.unit || '';\n    instance.precision = json.precision || 0;\n    instance.nbDigits = json.nbDigits || json.nb_digits || 0;\n    return instance;\n  }\n\n  /**\n   * Deserializes an digit_decomposition_event_descriptor message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DigitDecompositionEventDescriptor {\n    const instance = new DigitDecompositionEventDescriptor();\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 message. digit_decomposition_event_descriptor = 55306\n   */\n  public type = DigitDecompositionEventDescriptor.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 to JSON (canonical rust-dlc format)\n   */\n  public toJSON(): IDigitDecompositionEventDescriptorJSON {\n    return {\n      digitDecompositionEvent: {\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  /**\n   * Serializes the digit_decomposition_event_descriptor 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\n// Legacy support - keep V0 alias for backward compatibility\nexport const DigitDecompositionEventDescriptorV0 =\n  DigitDecompositionEventDescriptor;\nexport type DigitDecompositionEventDescriptorV0 =\n  DigitDecompositionEventDescriptor;\n\nexport interface IEnumEventDescriptorJSON {\n  enumEvent: {\n    outcomes: string[];\n  };\n}\n\n// Rust-dlc enum variant format for DigitDecompositionEventDescriptor\nexport interface IDigitDecompositionEventDescriptorJSON {\n  digitDecompositionEvent: {\n    base: number;\n    isSigned: boolean;\n    unit: string;\n    precision: number;\n    nbDigits: number;\n  };\n}\n\n// Legacy interface\nexport type IEnumEventDescriptorV0JSON = IEnumEventDescriptorJSON;\n\n// Legacy interface\nexport type IDigitDecompositionEventDescriptorV0JSON =\n  IDigitDecompositionEventDescriptorJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"09c74b0ad46fbfe39a1d3c0959c58a01f37f13be","contentHash":"209afc0f1f4c4078a0bbb080397ab107c7668a1a11d84f21d870554d72d8c44c"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestation.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestation.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":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":20,"column":8},"end":{"line":20,"column":43}},"6":{"start":{"line":22,"column":8},"end":{"line":22,"column":29}},"7":{"start":{"line":24,"column":8},"end":{"line":24,"column":27}},"8":{"start":{"line":32,"column":25},"end":{"line":32,"column":48}},"9":{"start":{"line":34,"column":8},"end":{"line":34,"column":40}},"10":{"start":{"line":35,"column":8},"end":{"line":35,"column":123}},"11":{"start":{"line":36,"column":8},"end":{"line":36,"column":96}},"12":{"start":{"line":36,"column":65},"end":{"line":36,"column":94}},"13":{"start":{"line":37,"column":8},"end":{"line":37,"column":42}},"14":{"start":{"line":38,"column":8},"end":{"line":38,"column":24}},"15":{"start":{"line":45,"column":25},"end":{"line":45,"column":48}},"16":{"start":{"line":46,"column":23},"end":{"line":46,"column":52}},"17":{"start":{"line":47,"column":8},"end":{"line":47,"column":29}},"18":{"start":{"line":48,"column":8},"end":{"line":48,"column":47}},"19":{"start":{"line":50,"column":27},"end":{"line":50,"column":42}},"20":{"start":{"line":51,"column":8},"end":{"line":77,"column":9}},"21":{"start":{"line":53,"column":34},"end":{"line":53,"column":54}},"22":{"start":{"line":55,"column":12},"end":{"line":70,"column":13}},"23":{"start":{"line":56,"column":16},"end":{"line":62,"column":17}},"24":{"start":{"line":57,"column":20},"end":{"line":57,"column":42}},"25":{"start":{"line":60,"column":39},"end":{"line":60,"column":78}},"26":{"start":{"line":61,"column":20},"end":{"line":61,"column":61}},"27":{"start":{"line":63,"column":16},"end":{"line":63,"column":64}},"28":{"start":{"line":67,"column":16},"end":{"line":67,"column":45}},"29":{"start":{"line":68,"column":16},"end":{"line":68,"column":38}},"30":{"start":{"line":69,"column":16},"end":{"line":69,"column":64}},"31":{"start":{"line":74,"column":12},"end":{"line":74,"column":41}},"32":{"start":{"line":75,"column":12},"end":{"line":75,"column":34}},"33":{"start":{"line":76,"column":12},"end":{"line":76,"column":60}},"34":{"start":{"line":78,"column":30},"end":{"line":78,"column":51}},"35":{"start":{"line":79,"column":8},"end":{"line":82,"column":9}},"36":{"start":{"line":79,"column":21},"end":{"line":79,"column":22}},"37":{"start":{"line":80,"column":30},"end":{"line":80,"column":50}},"38":{"start":{"line":81,"column":12},"end":{"line":81,"column":48}},"39":{"start":{"line":85,"column":8},"end":{"line":123,"column":9}},"40":{"start":{"line":86,"column":31},"end":{"line":86,"column":46}},"41":{"start":{"line":87,"column":12},"end":{"line":122,"column":13}},"42":{"start":{"line":89,"column":36},"end":{"line":89,"column":57}},"43":{"start":{"line":93,"column":39},"end":{"line":93,"column":77}},"44":{"start":{"line":94,"column":16},"end":{"line":112,"column":17}},"45":{"start":{"line":98,"column":20},"end":{"line":102,"column":21}},"46":{"start":{"line":98,"column":33},"end":{"line":98,"column":34}},"47":{"start":{"line":99,"column":43},"end":{"line":99,"column":63}},"48":{"start":{"line":100,"column":43},"end":{"line":100,"column":79}},"49":{"start":{"line":101,"column":24},"end":{"line":101,"column":70}},"50":{"start":{"line":106,"column":20},"end":{"line":106,"column":49}},"51":{"start":{"line":107,"column":20},"end":{"line":111,"column":21}},"52":{"start":{"line":108,"column":43},"end":{"line":108,"column":63}},"53":{"start":{"line":109,"column":43},"end":{"line":109,"column":79}},"54":{"start":{"line":110,"column":24},"end":{"line":110,"column":70}},"55":{"start":{"line":116,"column":16},"end":{"line":116,"column":45}},"56":{"start":{"line":117,"column":16},"end":{"line":121,"column":17}},"57":{"start":{"line":118,"column":39},"end":{"line":118,"column":59}},"58":{"start":{"line":119,"column":39},"end":{"line":119,"column":75}},"59":{"start":{"line":120,"column":20},"end":{"line":120,"column":66}},"60":{"start":{"line":124,"column":8},"end":{"line":124,"column":24}},"61":{"start":{"line":134,"column":8},"end":{"line":136,"column":9}},"62":{"start":{"line":135,"column":12},"end":{"line":135,"column":82}},"63":{"start":{"line":137,"column":8},"end":{"line":139,"column":9}},"64":{"start":{"line":138,"column":12},"end":{"line":138,"column":76}},"65":{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},"66":{"start":{"line":142,"column":12},"end":{"line":142,"column":56}},"67":{"start":{"line":145,"column":8},"end":{"line":147,"column":9}},"68":{"start":{"line":146,"column":12},"end":{"line":146,"column":82}},"69":{"start":{"line":149,"column":8},"end":{"line":153,"column":11}},"70":{"start":{"line":150,"column":12},"end":{"line":152,"column":13}},"71":{"start":{"line":151,"column":16},"end":{"line":151,"column":97}},"72":{"start":{"line":155,"column":8},"end":{"line":159,"column":11}},"73":{"start":{"line":156,"column":12},"end":{"line":158,"column":13}},"74":{"start":{"line":157,"column":16},"end":{"line":157,"column":77}},"75":{"start":{"line":161,"column":8},"end":{"line":170,"column":11}},"76":{"start":{"line":162,"column":28},"end":{"line":162,"column":48}},"77":{"start":{"line":163,"column":12},"end":{"line":169,"column":13}},"78":{"start":{"line":164,"column":28},"end":{"line":164,"column":95}},"79":{"start":{"line":165,"column":16},"end":{"line":165,"column":74}},"80":{"start":{"line":168,"column":16},"end":{"line":168,"column":114}},"81":{"start":{"line":172,"column":8},"end":{"line":174,"column":9}},"82":{"start":{"line":173,"column":12},"end":{"line":173,"column":59}},"83":{"start":{"line":184,"column":8},"end":{"line":186,"column":9}},"84":{"start":{"line":185,"column":12},"end":{"line":185,"column":73}},"85":{"start":{"line":188,"column":8},"end":{"line":190,"column":9}},"86":{"start":{"line":189,"column":12},"end":{"line":189,"column":64}},"87":{"start":{"line":192,"column":35},"end":{"line":192,"column":59}},"88":{"start":{"line":193,"column":8},"end":{"line":195,"column":9}},"89":{"start":{"line":194,"column":12},"end":{"line":194,"column":96}},"90":{"start":{"line":198,"column":8},"end":{"line":204,"column":11}},"91":{"start":{"line":199,"column":33},"end":{"line":199,"column":49}},"92":{"start":{"line":200,"column":34},"end":{"line":200,"column":59}},"93":{"start":{"line":201,"column":12},"end":{"line":203,"column":13}},"94":{"start":{"line":202,"column":16},"end":{"line":202,"column":126}},"95":{"start":{"line":212,"column":8},"end":{"line":212,"column":62}},"96":{"start":{"line":212,"column":44},"end":{"line":212,"column":60}},"97":{"start":{"line":218,"column":8},"end":{"line":224,"column":10}},"98":{"start":{"line":222,"column":53},"end":{"line":222,"column":72}},"99":{"start":{"line":230,"column":23},"end":{"line":230,"column":49}},"100":{"start":{"line":231,"column":8},"end":{"line":231,"column":39}},"101":{"start":{"line":232,"column":27},"end":{"line":232,"column":53}},"102":{"start":{"line":233,"column":8},"end":{"line":233,"column":53}},"103":{"start":{"line":234,"column":8},"end":{"line":234,"column":57}},"104":{"start":{"line":235,"column":8},"end":{"line":235,"column":52}},"105":{"start":{"line":236,"column":8},"end":{"line":236,"column":57}},"106":{"start":{"line":237,"column":8},"end":{"line":239,"column":9}},"107":{"start":{"line":238,"column":12},"end":{"line":238,"column":45}},"108":{"start":{"line":241,"column":8},"end":{"line":241,"column":55}},"109":{"start":{"line":242,"column":8},"end":{"line":245,"column":9}},"110":{"start":{"line":243,"column":12},"end":{"line":243,"column":52}},"111":{"start":{"line":244,"column":12},"end":{"line":244,"column":56}},"112":{"start":{"line":246,"column":8},"end":{"line":246,"column":45}},"113":{"start":{"line":247,"column":8},"end":{"line":247,"column":49}},"114":{"start":{"line":248,"column":8},"end":{"line":248,"column":33}},"115":{"start":{"line":251,"column":0},"end":{"line":251,"column":46}},"116":{"start":{"line":252,"column":0},"end":{"line":252,"column":69}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":25,"column":5}},"line":16},"1":{"name":"(anonymous_1)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":26},"end":{"line":39,"column":5}},"line":31},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":50},"end":{"line":36,"column":51}},"loc":{"start":{"line":36,"column":65},"end":{"line":36,"column":94}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":28},"end":{"line":125,"column":5}},"line":44},"4":{"name":"(anonymous_4)","decl":{"start":{"line":132,"column":4},"end":{"line":132,"column":5}},"loc":{"start":{"line":132,"column":27},"end":{"line":175,"column":5}},"line":132},"5":{"name":"(anonymous_5)","decl":{"start":{"line":149,"column":32},"end":{"line":149,"column":33}},"loc":{"start":{"line":149,"column":48},"end":{"line":153,"column":9}},"line":149},"6":{"name":"(anonymous_6)","decl":{"start":{"line":155,"column":30},"end":{"line":155,"column":31}},"loc":{"start":{"line":155,"column":50},"end":{"line":159,"column":9}},"line":155},"7":{"name":"(anonymous_7)","decl":{"start":{"line":161,"column":32},"end":{"line":161,"column":33}},"loc":{"start":{"line":161,"column":48},"end":{"line":170,"column":9}},"line":161},"8":{"name":"(anonymous_8)","decl":{"start":{"line":182,"column":4},"end":{"line":182,"column":5}},"loc":{"start":{"line":182,"column":46},"end":{"line":205,"column":5}},"line":182},"9":{"name":"(anonymous_9)","decl":{"start":{"line":198,"column":32},"end":{"line":198,"column":33}},"loc":{"start":{"line":198,"column":48},"end":{"line":204,"column":9}},"line":198},"10":{"name":"(anonymous_10)","decl":{"start":{"line":211,"column":4},"end":{"line":211,"column":5}},"loc":{"start":{"line":211,"column":16},"end":{"line":213,"column":5}},"line":211},"11":{"name":"(anonymous_11)","decl":{"start":{"line":212,"column":35},"end":{"line":212,"column":36}},"loc":{"start":{"line":212,"column":44},"end":{"line":212,"column":60}},"line":212},"12":{"name":"(anonymous_12)","decl":{"start":{"line":217,"column":4},"end":{"line":217,"column":5}},"loc":{"start":{"line":217,"column":13},"end":{"line":225,"column":5}},"line":217},"13":{"name":"(anonymous_13)","decl":{"start":{"line":222,"column":44},"end":{"line":222,"column":45}},"loc":{"start":{"line":222,"column":53},"end":{"line":222,"column":72}},"line":222},"14":{"name":"(anonymous_14)","decl":{"start":{"line":229,"column":4},"end":{"line":229,"column":5}},"loc":{"start":{"line":229,"column":16},"end":{"line":249,"column":5}},"line":229}},"branchMap":{"0":{"loc":{"start":{"line":35,"column":47},"end":{"line":35,"column":114}},"type":"binary-expr","locations":[{"start":{"line":35,"column":47},"end":{"line":35,"column":67}},{"start":{"line":35,"column":71},"end":{"line":35,"column":88}},{"start":{"line":35,"column":92},"end":{"line":35,"column":114}}],"line":35},"1":{"loc":{"start":{"line":55,"column":12},"end":{"line":70,"column":13}},"type":"if","locations":[{"start":{"line":55,"column":12},"end":{"line":70,"column":13}},{"start":{"line":65,"column":17},"end":{"line":70,"column":13}}],"line":55},"2":{"loc":{"start":{"line":55,"column":16},"end":{"line":55,"column":78}},"type":"binary-expr","locations":[{"start":{"line":55,"column":16},"end":{"line":55,"column":44}},{"start":{"line":55,"column":48},"end":{"line":55,"column":78}}],"line":55},"3":{"loc":{"start":{"line":56,"column":16},"end":{"line":62,"column":17}},"type":"if","locations":[{"start":{"line":56,"column":16},"end":{"line":62,"column":17}},{"start":{"line":59,"column":21},"end":{"line":62,"column":17}}],"line":56},"4":{"loc":{"start":{"line":85,"column":8},"end":{"line":123,"column":9}},"type":"if","locations":[{"start":{"line":85,"column":8},"end":{"line":123,"column":9}},{"start":{},"end":{}}],"line":85},"5":{"loc":{"start":{"line":94,"column":16},"end":{"line":112,"column":17}},"type":"if","locations":[{"start":{"line":94,"column":16},"end":{"line":112,"column":17}},{"start":{"line":104,"column":21},"end":{"line":112,"column":17}}],"line":94},"6":{"loc":{"start":{"line":94,"column":20},"end":{"line":96,"column":53}},"type":"binary-expr","locations":[{"start":{"line":94,"column":20},"end":{"line":94,"column":35}},{"start":{"line":95,"column":20},"end":{"line":95,"column":39}},{"start":{"line":96,"column":20},"end":{"line":96,"column":53}}],"line":94},"7":{"loc":{"start":{"line":134,"column":8},"end":{"line":136,"column":9}},"type":"if","locations":[{"start":{"line":134,"column":8},"end":{"line":136,"column":9}},{"start":{},"end":{}}],"line":134},"8":{"loc":{"start":{"line":137,"column":8},"end":{"line":139,"column":9}},"type":"if","locations":[{"start":{"line":137,"column":8},"end":{"line":139,"column":9}},{"start":{},"end":{}}],"line":137},"9":{"loc":{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},"type":"if","locations":[{"start":{"line":141,"column":8},"end":{"line":143,"column":9}},{"start":{},"end":{}}],"line":141},"10":{"loc":{"start":{"line":141,"column":12},"end":{"line":141,"column":54}},"type":"binary-expr","locations":[{"start":{"line":141,"column":12},"end":{"line":141,"column":25}},{"start":{"line":141,"column":29},"end":{"line":141,"column":54}}],"line":141},"11":{"loc":{"start":{"line":145,"column":8},"end":{"line":147,"column":9}},"type":"if","locations":[{"start":{"line":145,"column":8},"end":{"line":147,"column":9}},{"start":{},"end":{}}],"line":145},"12":{"loc":{"start":{"line":145,"column":12},"end":{"line":145,"column":71}},"type":"binary-expr","locations":[{"start":{"line":145,"column":12},"end":{"line":145,"column":33}},{"start":{"line":145,"column":37},"end":{"line":145,"column":71}}],"line":145},"13":{"loc":{"start":{"line":150,"column":12},"end":{"line":152,"column":13}},"type":"if","locations":[{"start":{"line":150,"column":12},"end":{"line":152,"column":13}},{"start":{},"end":{}}],"line":150},"14":{"loc":{"start":{"line":150,"column":16},"end":{"line":150,"column":41}},"type":"binary-expr","locations":[{"start":{"line":150,"column":16},"end":{"line":150,"column":20}},{"start":{"line":150,"column":24},"end":{"line":150,"column":41}}],"line":150},"15":{"loc":{"start":{"line":156,"column":12},"end":{"line":158,"column":13}},"type":"if","locations":[{"start":{"line":156,"column":12},"end":{"line":158,"column":13}},{"start":{},"end":{}}],"line":156},"16":{"loc":{"start":{"line":156,"column":16},"end":{"line":156,"column":48}},"type":"binary-expr","locations":[{"start":{"line":156,"column":16},"end":{"line":156,"column":24}},{"start":{"line":156,"column":28},"end":{"line":156,"column":48}}],"line":156},"17":{"loc":{"start":{"line":172,"column":8},"end":{"line":174,"column":9}},"type":"if","locations":[{"start":{"line":172,"column":8},"end":{"line":174,"column":9}},{"start":{},"end":{}}],"line":172},"18":{"loc":{"start":{"line":184,"column":8},"end":{"line":186,"column":9}},"type":"if","locations":[{"start":{"line":184,"column":8},"end":{"line":186,"column":9}},{"start":{},"end":{}}],"line":184},"19":{"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":{},"end":{}}],"line":188},"20":{"loc":{"start":{"line":193,"column":8},"end":{"line":195,"column":9}},"type":"if","locations":[{"start":{"line":193,"column":8},"end":{"line":195,"column":9}},{"start":{},"end":{}}],"line":193},"21":{"loc":{"start":{"line":201,"column":12},"end":{"line":203,"column":13}},"type":"if","locations":[{"start":{"line":201,"column":12},"end":{"line":203,"column":13}},{"start":{},"end":{}}],"line":201}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":20,"6":20,"7":20,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":14,"16":14,"17":14,"18":14,"19":14,"20":14,"21":14,"22":14,"23":12,"24":1,"25":11,"26":11,"27":12,"28":2,"29":2,"30":2,"31":0,"32":0,"33":0,"34":14,"35":14,"36":14,"37":137,"38":137,"39":14,"40":14,"41":14,"42":14,"43":14,"44":14,"45":12,"46":12,"47":101,"48":101,"49":101,"50":2,"51":2,"52":36,"53":36,"54":36,"55":0,"56":0,"57":0,"58":0,"59":0,"60":14,"61":4,"62":0,"63":4,"64":0,"65":4,"66":0,"67":4,"68":0,"69":4,"70":38,"71":0,"72":4,"73":38,"74":0,"75":4,"76":38,"77":38,"78":38,"79":38,"80":1,"81":3,"82":1,"83":1,"84":0,"85":1,"86":0,"87":1,"88":1,"89":0,"90":1,"91":18,"92":18,"93":18,"94":0,"95":0,"96":0,"97":0,"98":0,"99":8,"100":8,"101":8,"102":8,"103":8,"104":8,"105":8,"106":8,"107":49,"108":8,"109":8,"110":49,"111":49,"112":8,"113":8,"114":8,"115":1,"116":1},"f":{"0":20,"1":0,"2":0,"3":14,"4":4,"5":38,"6":38,"7":38,"8":1,"9":18,"10":0,"11":0,"12":0,"13":0,"14":8},"b":{"0":[0,0,0],"1":[12,2],"2":[14,14],"3":[1,11],"4":[14,0],"5":[12,2],"6":[14,14,14],"7":[0,4],"8":[0,4],"9":[0,4],"10":[4,4],"11":[0,4],"12":[4,4],"13":[0,38],"14":[38,38],"15":[0,38],"16":[38,38],"17":[1,2],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,18]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestation.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleAttestation.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';\nimport { OracleAnnouncement } from './OracleAnnouncement';\n\n/**\n * Oracle attestation providing signatures over an outcome value.\n * This represents the oracle's actual attestation to a specific outcome.\n * Updated to match rust-dlc specification with 2-byte count prefixes.\n *\n * An attestation from an oracle providing signatures over an outcome value.\n * This is what the oracle publishes when they want to attest to a specific outcome.\n */\nexport class OracleAttestation implements IDlcMessage {\n  public static type = MessageType.OracleAttestation;\n\n  /**\n   * Creates an Attestation from JSON data\n   * @param json JSON object representing oracle announcement\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OracleAttestation {\n    const instance = new OracleAttestation();\n\n    // Handle different field name variations\n    instance.eventId = json.eventId;\n    instance.oraclePublicKey = Buffer.from(\n      json.oraclePublicKey || json.oraclePubkey || json.oracle_public_key,\n      'hex',\n    );\n\n    instance.signatures = json.signatures.map((signature: string) =>\n      Buffer.from(signature, 'hex'),\n    );\n\n    instance.outcomes = json.outcomes;\n\n    return instance;\n  }\n\n  /**\n   * Deserializes an oracle_attestation message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleAttestation {\n    const instance = new OracleAttestation();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n\n    // Detect format: old rust-dlc 0.4.0 (no event_id) vs new rust-dlc (with event_id)\n    const currentPos = reader.position;\n\n    try {\n      // Try reading as new format (with event_id)\n      const eventIdLength = reader.readBigSize();\n\n      // If event ID length is reasonable (0-100 bytes), assume new format\n      if (eventIdLength >= BigInt('0') && eventIdLength <= BigInt('100')) {\n        if (eventIdLength === BigInt('0')) {\n          instance.eventId = '';\n        } else {\n          const eventIdBuf = reader.readBytes(Number(eventIdLength));\n          instance.eventId = eventIdBuf.toString();\n        }\n        instance.oraclePublicKey = reader.readBytes(32);\n      } else {\n        // Event ID length is unreasonable, probably old format without event_id\n        reader.position = currentPos;\n        instance.eventId = ''; // Default empty event ID for old format\n        instance.oraclePublicKey = reader.readBytes(32);\n      }\n    } catch (error) {\n      // If reading fails, assume old format without event_id\n      reader.position = currentPos;\n      instance.eventId = ''; // Default empty event ID for old format\n      instance.oraclePublicKey = reader.readBytes(32);\n    }\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    // Handle both rust-dlc format (with u16 count prefix) and DLCSpecs format (no count prefix)\n    // Try to detect format by checking if next 2 bytes look like a reasonable outcome count\n    if (!reader.eof) {\n      const currentPos = reader.position;\n\n      try {\n        // Try reading as rust-dlc format (with u16 count prefix)\n        const numOutcomes = reader.readUInt16BE();\n\n        // Validate that this looks like a reasonable count\n        // If it's > 1000 or the remaining bytes can't accommodate this many outcomes,\n        // it's probably not a count prefix\n        const remainingBytes = reader.buffer.length - reader.position;\n\n        if (\n          numOutcomes > 0 &&\n          numOutcomes <= 1000 &&\n          remainingBytes >= numOutcomes * 2\n        ) {\n          // Looks like rust-dlc format with u16 count prefix\n          for (let i = 0; i < numOutcomes; i++) {\n            const outcomeLen = reader.readBigSize();\n            const outcomeBuf = reader.readBytes(Number(outcomeLen));\n            instance.outcomes.push(outcomeBuf.toString());\n          }\n        } else {\n          // Reset and try DLCSpecs format (no count prefix)\n          reader.position = currentPos;\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      } catch (error) {\n        // If reading as rust-dlc format fails, reset and try DLCSpecs format\n        reader.position = currentPos;\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    }\n\n    return instance;\n  }\n\n  /**\n   * The type for oracle_attestation message. oracle_attestation = 55400\n   */\n  public type = OracleAttestation.type;\n\n  public length: bigint;\n\n  /** The identifier of the announcement. */\n  public eventId: string;\n\n  /** The public key of the oracle (32 bytes, x-only). */\n  public oraclePublicKey: Buffer;\n\n  /** The signatures over the event outcome (64 bytes each, Schnorr format). */\n  public signatures: Buffer[] = [];\n\n  /** The set of strings representing the outcome value. */\n  public outcomes: string[] = [];\n\n  /**\n   * Validates the oracle attestation according to rust-dlc specification.\n   * This includes validating signatures and ensuring consistency with announcement.\n   * @param announcement The corresponding oracle announcement for validation (optional)\n   * @throws Will throw an error if validation fails\n   */\n  public validate(announcement?: OracleAnnouncement): void {\n    // Basic structure validation\n    if (this.signatures.length !== this.outcomes.length) {\n      throw new Error('Number of signatures must match number of outcomes');\n    }\n\n    if (this.signatures.length === 0) {\n      throw new Error('Must have at least one signature and outcome');\n    }\n\n    // Validate event ID\n    if (!this.eventId || this.eventId.length === 0) {\n      throw new Error('Event ID cannot be empty');\n    }\n\n    // Validate oracle public key format\n    if (!this.oraclePublicKey || this.oraclePublicKey.length !== 32) {\n      throw new Error('Oracle public key must be 32 bytes (x-only format)');\n    }\n\n    // Validate signature formats\n    this.signatures.forEach((sig, index) => {\n      if (!sig || sig.length !== 64) {\n        throw new Error(\n          `Signature at index ${index} must be 64 bytes (Schnorr format)`,\n        );\n      }\n    });\n\n    // Validate outcomes are not empty\n    this.outcomes.forEach((outcome, index) => {\n      if (!outcome || outcome.length === 0) {\n        throw new Error(`Outcome at index ${index} cannot be empty`);\n      }\n    });\n\n    // Verify signatures over outcomes using tagged hash\n    this.signatures.forEach((sig, index) => {\n      const outcome = this.outcomes[index];\n      try {\n        const msg = math.taggedHash('DLC/oracle/attestation/v0', outcome);\n        verify(this.oraclePublicKey, msg, sig);\n      } catch (error) {\n        throw new Error(\n          `Invalid signature for outcome \"${outcome}\" at index ${index}: ${error.message}`,\n        );\n      }\n    });\n\n    // If announcement is provided, validate consistency\n    if (announcement) {\n      this.validateAgainstAnnouncement(announcement);\n    }\n  }\n\n  /**\n   * Validates the attestation against the corresponding oracle announcement.\n   * This ensures the attestation is consistent with the original announcement.\n   * @param announcement The oracle announcement to validate against\n   * @throws Will throw an error if validation fails\n   */\n  private validateAgainstAnnouncement(announcement: OracleAnnouncement): void {\n    // Validate oracle public key matches announcement\n    if (!this.oraclePublicKey.equals(announcement.oraclePublicKey)) {\n      throw new Error('Oracle public key must match announcement');\n    }\n\n    // Validate event ID matches\n    if (this.eventId !== announcement.getEventId()) {\n      throw new Error('Event ID must match announcement');\n    }\n\n    // Validate that the number of signatures matches the number of nonces in announcement\n    const announcementNonces = announcement.getNonces();\n    if (this.signatures.length !== announcementNonces.length) {\n      throw new Error(\n        'Number of signatures must match number of nonces in announcement',\n      );\n    }\n\n    // Extract nonces from signatures (first 32 bytes) and compare with announcement nonces\n    // This validates that the signatures were created using the committed nonces\n    this.signatures.forEach((sig, index) => {\n      const nonceFromSig = sig.slice(0, 32);\n      const expectedNonce = announcementNonces[index];\n\n      if (!nonceFromSig.equals(expectedNonce)) {\n        throw new Error(\n          `Signature nonce mismatch at index ${index}: signature was not created with announced nonce`,\n        );\n      }\n    });\n  }\n\n  /**\n   * Returns the nonces used by the oracle to sign the event outcome.\n   * This is used for finding the matching oracle announcement.\n   * The nonce is extracted from the first 32 bytes of each signature.\n   */\n  public getNonces(): Buffer[] {\n    return this.signatures.map((sig) => sig.slice(0, 32));\n  }\n\n  /**\n   * Converts oracle_attestation to JSON\n   */\n  public toJSON(): OracleAttestationJSON {\n    return {\n      type: this.type,\n      eventId: this.eventId,\n      oraclePublicKey: this.oraclePublicKey.toString('hex'),\n      signatures: this.signatures.map((sig) => sig.toString('hex')),\n      outcomes: this.outcomes,\n    };\n  }\n\n  /**\n   * Serializes the oracle_attestation 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.oraclePublicKey);\n    dataWriter.writeUInt16BE(this.signatures.length);\n\n    for (const signature of this.signatures) {\n      dataWriter.writeBytes(signature);\n    }\n\n    // Write outcomes with u16 count prefix (matching rust-dlc format)\n    dataWriter.writeUInt16BE(this.outcomes.length);\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 OracleAttestationJSON {\n  type?: number; // Made optional for rust-dlc compatibility\n  eventId: string;\n  oraclePublicKey: string;\n  signatures: string[];\n  outcomes: string[];\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a0d6fd7bc9fb66601525ba1585e4894456525004","contentHash":"52de4579c3fc494ae1920974b03718a7bdf9c4f517d4730f3b0dc77e62d12f48"},"/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":60}},"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":33},"end":{"line":6,"column":68}},"5":{"start":{"line":17,"column":8},"end":{"line":17,"column":37}},"6":{"start":{"line":25,"column":25},"end":{"line":25,"column":42}},"7":{"start":{"line":26,"column":8},"end":{"line":26,"column":90}},"8":{"start":{"line":28,"column":8},"end":{"line":31,"column":9}},"9":{"start":{"line":29,"column":12},"end":{"line":30,"column":66}},"10":{"start":{"line":32,"column":8},"end":{"line":32,"column":24}},"11":{"start":{"line":39,"column":25},"end":{"line":39,"column":42}},"12":{"start":{"line":40,"column":23},"end":{"line":40,"column":52}},"13":{"start":{"line":41,"column":21},"end":{"line":41,"column":42}},"14":{"start":{"line":43,"column":8},"end":{"line":45,"column":9}},"15":{"start":{"line":44,"column":12},"end":{"line":44,"column":116}},"16":{"start":{"line":46,"column":8},"end":{"line":46,"column":52}},"17":{"start":{"line":48,"column":37},"end":{"line":48,"column":55}},"18":{"start":{"line":49,"column":8},"end":{"line":55,"column":9}},"19":{"start":{"line":51,"column":36},"end":{"line":51,"column":64}},"20":{"start":{"line":52,"column":35},"end":{"line":52,"column":68}},"21":{"start":{"line":53,"column":12},"end":{"line":54,"column":92}},"22":{"start":{"line":56,"column":8},"end":{"line":56,"column":24}},"23":{"start":{"line":62,"column":8},"end":{"line":66,"column":10}},"24":{"start":{"line":72,"column":23},"end":{"line":72,"column":49}},"25":{"start":{"line":73,"column":8},"end":{"line":73,"column":40}},"26":{"start":{"line":74,"column":8},"end":{"line":74,"column":44}},"27":{"start":{"line":76,"column":8},"end":{"line":82,"column":9}},"28":{"start":{"line":77,"column":12},"end":{"line":77,"column":36}},"29":{"start":{"line":78,"column":12},"end":{"line":78,"column":66}},"30":{"start":{"line":81,"column":12},"end":{"line":81,"column":36}},"31":{"start":{"line":83,"column":8},"end":{"line":83,"column":33}},"32":{"start":{"line":86,"column":0},"end":{"line":86,"column":34}},"33":{"start":{"line":87,"column":0},"end":{"line":87,"column":57}},"34":{"start":{"line":90,"column":8},"end":{"line":90,"column":26}},"35":{"start":{"line":97,"column":8},"end":{"line":97,"column":34}},"36":{"start":{"line":104,"column":8},"end":{"line":104,"column":28}},"37":{"start":{"line":111,"column":23},"end":{"line":111,"column":49}},"38":{"start":{"line":113,"column":8},"end":{"line":113,"column":49}},"39":{"start":{"line":115,"column":8},"end":{"line":119,"column":11}},"40":{"start":{"line":116,"column":37},"end":{"line":116,"column":55}},"41":{"start":{"line":117,"column":12},"end":{"line":117,"column":57}},"42":{"start":{"line":118,"column":12},"end":{"line":118,"column":48}},"43":{"start":{"line":120,"column":8},"end":{"line":120,"column":33}},"44":{"start":{"line":128,"column":23},"end":{"line":128,"column":52}},"45":{"start":{"line":129,"column":26},"end":{"line":129,"column":52}},"46":{"start":{"line":130,"column":29},"end":{"line":130,"column":49}},"47":{"start":{"line":131,"column":8},"end":{"line":136,"column":9}},"48":{"start":{"line":131,"column":21},"end":{"line":131,"column":22}},"49":{"start":{"line":132,"column":33},"end":{"line":132,"column":53}},"50":{"start":{"line":133,"column":30},"end":{"line":133,"column":68}},"51":{"start":{"line":134,"column":27},"end":{"line":134,"column":61}},"52":{"start":{"line":135,"column":12},"end":{"line":135,"column":40}},"53":{"start":{"line":137,"column":8},"end":{"line":137,"column":25}},"54":{"start":{"line":140,"column":0},"end":{"line":140,"column":52}}},"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":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":26},"end":{"line":33,"column":5}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":28},"end":{"line":57,"column":5}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":61,"column":4},"end":{"line":61,"column":5}},"loc":{"start":{"line":61,"column":13},"end":{"line":67,"column":5}},"line":61},"4":{"name":"(anonymous_4)","decl":{"start":{"line":71,"column":4},"end":{"line":71,"column":5}},"loc":{"start":{"line":71,"column":16},"end":{"line":84,"column":5}},"line":71},"5":{"name":"(anonymous_5)","decl":{"start":{"line":89,"column":4},"end":{"line":89,"column":5}},"loc":{"start":{"line":89,"column":18},"end":{"line":91,"column":5}},"line":89},"6":{"name":"(anonymous_6)","decl":{"start":{"line":96,"column":4},"end":{"line":96,"column":5}},"loc":{"start":{"line":96,"column":22},"end":{"line":98,"column":5}},"line":96},"7":{"name":"(anonymous_7)","decl":{"start":{"line":103,"column":4},"end":{"line":103,"column":5}},"loc":{"start":{"line":103,"column":17},"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":16},"end":{"line":121,"column":5}},"line":110},"9":{"name":"(anonymous_9)","decl":{"start":{"line":115,"column":29},"end":{"line":115,"column":30}},"loc":{"start":{"line":115,"column":41},"end":{"line":119,"column":9}},"line":115},"10":{"name":"(anonymous_10)","decl":{"start":{"line":127,"column":4},"end":{"line":127,"column":5}},"loc":{"start":{"line":127,"column":28},"end":{"line":138,"column":5}},"line":127}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":43},"end":{"line":26,"column":81}},"type":"binary-expr","locations":[{"start":{"line":26,"column":43},"end":{"line":26,"column":59}},{"start":{"line":26,"column":63},"end":{"line":26,"column":81}}],"line":26},"1":{"loc":{"start":{"line":28,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":31,"column":9}},{"start":{},"end":{}}],"line":28},"2":{"loc":{"start":{"line":28,"column":12},"end":{"line":28,"column":61}},"type":"binary-expr","locations":[{"start":{"line":28,"column":12},"end":{"line":28,"column":34}},{"start":{"line":28,"column":38},"end":{"line":28,"column":61}}],"line":28},"3":{"loc":{"start":{"line":30,"column":16},"end":{"line":30,"column":65}},"type":"binary-expr","locations":[{"start":{"line":30,"column":16},"end":{"line":30,"column":38}},{"start":{"line":30,"column":42},"end":{"line":30,"column":65}}],"line":30},"4":{"loc":{"start":{"line":43,"column":8},"end":{"line":45,"column":9}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":45,"column":9}},{"start":{},"end":{}}],"line":43},"5":{"loc":{"start":{"line":49,"column":8},"end":{"line":55,"column":9}},"type":"if","locations":[{"start":{"line":49,"column":8},"end":{"line":55,"column":9}},{"start":{},"end":{}}],"line":49},"6":{"loc":{"start":{"line":76,"column":8},"end":{"line":82,"column":9}},"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":82,"column":9}},{"start":{"line":80,"column":13},"end":{"line":82,"column":9}}],"line":76}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":0,"7":0,"8":0,"9":0,"10":0,"11":4,"12":4,"13":4,"14":4,"15":0,"16":4,"17":4,"18":4,"19":4,"20":4,"21":4,"22":4,"23":0,"24":8,"25":8,"26":8,"27":8,"28":8,"29":8,"30":0,"31":8,"32":1,"33":1,"34":2,"35":4,"36":0,"37":3,"38":3,"39":3,"40":6,"41":6,"42":6,"43":3,"44":1,"45":1,"46":1,"47":1,"48":1,"49":2,"50":2,"51":2,"52":2,"53":1,"54":1},"f":{"0":6,"1":0,"2":4,"3":0,"4":8,"5":2,"6":4,"7":0,"8":3,"9":6,"10":1},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,4],"5":[4,0],"6":[8,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 { IDlcMessage } from './DlcMessage';\nimport {\n  IOrderNegotiationFieldsV0JSON,\n  IOrderNegotiationFieldsV1JSON,\n  OrderNegotiationFields,\n} from './OrderNegotiationFields';\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 OrderAccept implements IDlcMessage {\n  public static type = MessageType.OrderAccept;\n\n  /**\n   * Creates an OrderAccept from JSON data\n   * @param json JSON object representing an order accept\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OrderAccept {\n    const instance = new OrderAccept();\n\n    instance.tempOrderId = Buffer.from(\n      json.tempOrderId || json.temp_order_id,\n      'hex',\n    );\n\n    // Handle OrderNegotiationFields - optional field\n    if (json.negotiationFields || json.negotiation_fields) {\n      instance.negotiationFields =\n        json.negotiationFields || json.negotiation_fields;\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes an order_accept message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderAccept {\n    const instance = new OrderAccept();\n    const reader = new BufferReader(buf);\n\n    const type = reader.readUInt16BE(); // read type\n\n    // Validate type matches expected OrderAccept type\n    if (type !== MessageType.OrderAccept) {\n      throw new Error(\n        `Invalid message type. Expected ${MessageType.OrderAccept}, got ${type}`,\n      );\n    }\n\n    instance.tempOrderId = reader.readBytes(32);\n\n    // Check if negotiation_fields is present\n    const hasNegotiationFields = reader.readUInt8();\n    if (hasNegotiationFields === 0x01) {\n      // Read the remaining bytes as negotiationFields (not TLV format)\n      const remainingLength = buf.length - reader.position;\n      const remainingBytes = reader.readBytes(remainingLength);\n      instance.negotiationFields =\n        OrderNegotiationFields.deserialize(remainingBytes);\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for order_accept message. order_accept = 62772\n   */\n  public type = OrderAccept.type;\n\n  public tempOrderId: Buffer;\n\n  public negotiationFields?: OrderNegotiationFields;\n\n  /**\n   * Converts order_accept to JSON\n   */\n  public toJSON(): IOrderAcceptJSON {\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 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\n    // negotiation_fields is optional\n    if (this.negotiationFields) {\n      writer.writeUInt8(0x01); // present\n      writer.writeBytes(this.negotiationFields.serialize());\n    } else {\n      writer.writeUInt8(0x00); // absent\n    }\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderAcceptJSON {\n  type: number;\n  tempOrderId: string;\n  negotiationFields?: // Now optional\n  IOrderNegotiationFieldsV0JSON | 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);\n      container.addAccept(accept);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"445db687a6a357255672f48b8a4aeaa00845c1fa","contentHash":"0856300bb164ef48e2d67576e7f9fd1744e6fac4ce2779a338cdf51326110995"},"/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":190}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":12,"column":23},"end":{"line":12,"column":52}},"5":{"start":{"line":13,"column":30},"end":{"line":13,"column":58}},"6":{"start":{"line":14,"column":8},"end":{"line":21,"column":9}},"7":{"start":{"line":16,"column":16},"end":{"line":16,"column":69}},"8":{"start":{"line":18,"column":16},"end":{"line":18,"column":71}},"9":{"start":{"line":20,"column":16},"end":{"line":20,"column":134}},"10":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"11":{"start":{"line":30,"column":12},"end":{"line":30,"column":77}},"12":{"start":{"line":32,"column":24},"end":{"line":32,"column":36}},"13":{"start":{"line":33,"column":8},"end":{"line":40,"column":9}},"14":{"start":{"line":35,"column":16},"end":{"line":35,"column":67}},"15":{"start":{"line":37,"column":16},"end":{"line":37,"column":69}},"16":{"start":{"line":39,"column":16},"end":{"line":39,"column":120}},"17":{"start":{"line":43,"column":0},"end":{"line":43,"column":56}},"18":{"start":{"line":49,"column":8},"end":{"line":49,"column":28}},"19":{"start":{"line":50,"column":8},"end":{"line":50,"column":32}},"20":{"start":{"line":51,"column":8},"end":{"line":51,"column":31}},"21":{"start":{"line":59,"column":25},"end":{"line":59,"column":59}},"22":{"start":{"line":60,"column":8},"end":{"line":62,"column":9}},"23":{"start":{"line":61,"column":12},"end":{"line":61,"column":120}},"24":{"start":{"line":64,"column":8},"end":{"line":64,"column":24}},"25":{"start":{"line":71,"column":25},"end":{"line":71,"column":59}},"26":{"start":{"line":72,"column":23},"end":{"line":72,"column":52}},"27":{"start":{"line":73,"column":8},"end":{"line":73,"column":29}},"28":{"start":{"line":75,"column":8},"end":{"line":75,"column":24}},"29":{"start":{"line":81,"column":8},"end":{"line":83,"column":10}},"30":{"start":{"line":89,"column":23},"end":{"line":89,"column":49}},"31":{"start":{"line":90,"column":8},"end":{"line":90,"column":48}},"32":{"start":{"line":92,"column":8},"end":{"line":92,"column":33}},"33":{"start":{"line":95,"column":0},"end":{"line":95,"column":68}},"34":{"start":{"line":101,"column":8},"end":{"line":101,"column":28}},"35":{"start":{"line":102,"column":8},"end":{"line":102,"column":34}},"36":{"start":{"line":103,"column":8},"end":{"line":103,"column":31}},"37":{"start":{"line":111,"column":25},"end":{"line":111,"column":61}},"38":{"start":{"line":112,"column":8},"end":{"line":114,"column":9}},"39":{"start":{"line":113,"column":12},"end":{"line":113,"column":124}},"40":{"start":{"line":115,"column":8},"end":{"line":117,"column":9}},"41":{"start":{"line":116,"column":12},"end":{"line":116,"column":88}},"42":{"start":{"line":118,"column":8},"end":{"line":120,"column":87}},"43":{"start":{"line":121,"column":8},"end":{"line":121,"column":24}},"44":{"start":{"line":128,"column":25},"end":{"line":128,"column":61}},"45":{"start":{"line":129,"column":23},"end":{"line":129,"column":52}},"46":{"start":{"line":130,"column":8},"end":{"line":130,"column":29}},"47":{"start":{"line":131,"column":33},"end":{"line":131,"column":53}},"48":{"start":{"line":132,"column":30},"end":{"line":132,"column":72}},"49":{"start":{"line":133,"column":8},"end":{"line":133,"column":81}},"50":{"start":{"line":134,"column":8},"end":{"line":134,"column":24}},"51":{"start":{"line":140,"column":8},"end":{"line":143,"column":10}},"52":{"start":{"line":149,"column":23},"end":{"line":149,"column":49}},"53":{"start":{"line":150,"column":8},"end":{"line":150,"column":48}},"54":{"start":{"line":151,"column":31},"end":{"line":151,"column":58}},"55":{"start":{"line":152,"column":8},"end":{"line":152,"column":51}},"56":{"start":{"line":153,"column":8},"end":{"line":153,"column":42}},"57":{"start":{"line":154,"column":8},"end":{"line":154,"column":33}},"58":{"start":{"line":157,"column":0},"end":{"line":157,"column":72}},"59":{"start":{"line":159,"column":0},"end":{"line":159,"column":64}},"60":{"start":{"line":160,"column":0},"end":{"line":160,"column":66}}},"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":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":26},"end":{"line":41,"column":5}},"line":28},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":18},"end":{"line":52,"column":5}},"line":48},"3":{"name":"(anonymous_3)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":26},"end":{"line":65,"column":5}},"line":58},"4":{"name":"(anonymous_4)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":28},"end":{"line":76,"column":5}},"line":70},"5":{"name":"(anonymous_5)","decl":{"start":{"line":80,"column":4},"end":{"line":80,"column":5}},"loc":{"start":{"line":80,"column":13},"end":{"line":84,"column":5}},"line":80},"6":{"name":"(anonymous_6)","decl":{"start":{"line":88,"column":4},"end":{"line":88,"column":5}},"loc":{"start":{"line":88,"column":16},"end":{"line":93,"column":5}},"line":88},"7":{"name":"(anonymous_7)","decl":{"start":{"line":100,"column":4},"end":{"line":100,"column":5}},"loc":{"start":{"line":100,"column":18},"end":{"line":104,"column":5}},"line":100},"8":{"name":"(anonymous_8)","decl":{"start":{"line":110,"column":4},"end":{"line":110,"column":5}},"loc":{"start":{"line":110,"column":26},"end":{"line":122,"column":5}},"line":110},"9":{"name":"(anonymous_9)","decl":{"start":{"line":127,"column":4},"end":{"line":127,"column":5}},"loc":{"start":{"line":127,"column":28},"end":{"line":135,"column":5}},"line":127},"10":{"name":"(anonymous_10)","decl":{"start":{"line":139,"column":4},"end":{"line":139,"column":5}},"loc":{"start":{"line":139,"column":13},"end":{"line":144,"column":5}},"line":139},"11":{"name":"(anonymous_11)","decl":{"start":{"line":148,"column":4},"end":{"line":148,"column":5}},"loc":{"start":{"line":148,"column":16},"end":{"line":155,"column":5}},"line":148}},"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":69}},{"start":{"line":17,"column":12},"end":{"line":18,"column":71}},{"start":{"line":19,"column":12},"end":{"line":20,"column":134}}],"line":14},"1":{"loc":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},{"start":{},"end":{}}],"line":29},"2":{"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":45}},"type":"binary-expr","locations":[{"start":{"line":29,"column":12},"end":{"line":29,"column":17}},{"start":{"line":29,"column":21},"end":{"line":29,"column":45}}],"line":29},"3":{"loc":{"start":{"line":33,"column":8},"end":{"line":40,"column":9}},"type":"switch","locations":[{"start":{"line":34,"column":12},"end":{"line":35,"column":67}},{"start":{"line":36,"column":12},"end":{"line":37,"column":69}},{"start":{"line":38,"column":12},"end":{"line":39,"column":120}}],"line":33},"4":{"loc":{"start":{"line":60,"column":8},"end":{"line":62,"column":9}},"type":"if","locations":[{"start":{"line":60,"column":8},"end":{"line":62,"column":9}},{"start":{},"end":{}}],"line":60},"5":{"loc":{"start":{"line":112,"column":8},"end":{"line":114,"column":9}},"type":"if","locations":[{"start":{"line":112,"column":8},"end":{"line":114,"column":9}},{"start":{},"end":{}}],"line":112},"6":{"loc":{"start":{"line":115,"column":8},"end":{"line":117,"column":9}},"type":"if","locations":[{"start":{"line":115,"column":8},"end":{"line":117,"column":9}},{"start":{},"end":{}}],"line":115},"7":{"loc":{"start":{"line":118,"column":30},"end":{"line":120,"column":86}},"type":"cond-expr","locations":[{"start":{"line":119,"column":14},"end":{"line":119,"column":63}},{"start":{"line":120,"column":14},"end":{"line":120,"column":86}}],"line":118}},"s":{"0":1,"1":1,"2":1,"3":1,"4":6,"5":6,"6":6,"7":5,"8":1,"9":0,"10":2,"11":0,"12":2,"13":2,"14":1,"15":1,"16":0,"17":1,"18":10,"19":10,"20":10,"21":1,"22":1,"23":0,"24":1,"25":5,"26":5,"27":5,"28":5,"29":1,"30":10,"31":10,"32":10,"33":1,"34":5,"35":5,"36":5,"37":1,"38":1,"39":0,"40":1,"41":1,"42":0,"43":0,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"58":1,"59":1,"60":1},"f":{"0":6,"1":2,"2":10,"3":1,"4":5,"5":1,"6":10,"7":5,"8":1,"9":1,"10":1,"11":2},"b":{"0":[5,1,0],"1":[0,2],"2":[2,2],"3":[1,1,0],"4":[0,1],"5":[0,1],"6":[1,0],"7":[0,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":"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","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { IOrderOfferJSON, OrderOffer } from './OrderOffer';\n\n/**\n * Order negotiation fields for order contract negotiation.\n * Follows the same pattern as NegotiationFields with Single and Disjoint variants.\n */\nexport abstract class OrderNegotiationFields {\n  public static deserialize(buf: Buffer): OrderNegotiationFields {\n    const reader = new BufferReader(buf);\n    const discriminator = Number(reader.readBigSize());\n\n    switch (discriminator) {\n      case 0:\n        return SingleOrderNegotiationFields.deserialize(buf);\n      case 1:\n        return DisjointOrderNegotiationFields.deserialize(buf);\n      default:\n        throw new Error(\n          `Invalid OrderNegotiationFields discriminator: ${discriminator}. Must be 0 (Single) or 1 (Disjoint)`,\n        );\n    }\n  }\n\n  /**\n   * Creates OrderNegotiationFields from JSON data\n   * @param json JSON object representing order negotiation fields\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OrderNegotiationFields {\n    if (!json || typeof json !== 'object') {\n      throw new Error('Invalid JSON input for OrderNegotiationFields');\n    }\n\n    const variant = json.variant;\n\n    switch (variant) {\n      case 'Single':\n        return SingleOrderNegotiationFields.fromJSON(json);\n      case 'Disjoint':\n        return DisjointOrderNegotiationFields.fromJSON(json);\n      default:\n        throw new Error(\n          `Unknown order negotiation fields variant: ${variant}. Must be 'Single' or 'Disjoint'`,\n        );\n    }\n  }\n\n  public abstract variant: 'Single' | 'Disjoint';\n  public abstract discriminator: number;\n  public abstract serialize(): Buffer;\n  public abstract toJSON(): IOrderNegotiationFieldsJSON;\n}\n\n/**\n * Order negotiation fields for contract based on a single event (basic/empty).\n */\nexport class SingleOrderNegotiationFields extends OrderNegotiationFields {\n  /**\n   * Creates a SingleOrderNegotiationFields from JSON data\n   * @param json JSON object representing single order negotiation fields\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): SingleOrderNegotiationFields {\n    const instance = new SingleOrderNegotiationFields();\n\n    if (json.variant !== 'Single') {\n      throw new Error(\n        `Invalid variant for SingleOrderNegotiationFields: expected 'Single', got ${json.variant}`,\n      );\n    }\n\n    // Single order negotiation fields are currently empty/basic\n    return instance;\n  }\n\n  /**\n   * Deserializes single order negotiation fields\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): SingleOrderNegotiationFields {\n    const instance = new SingleOrderNegotiationFields();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read discriminator (0)\n    // Single order negotiation fields are currently empty\n\n    return instance;\n  }\n\n  public variant = 'Single' as const;\n  public discriminator = 0;\n\n  /**\n   * Converts single order negotiation fields to JSON\n   */\n  public toJSON(): ISingleOrderNegotiationFieldsJSON {\n    return {\n      variant: this.variant,\n    };\n  }\n\n  /**\n   * Serializes the single order negotiation fields into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.discriminator);\n    // Single order negotiation fields are currently empty\n\n    return writer.toBuffer();\n  }\n}\n\n/**\n * Order negotiation fields for contract based on multiple events.\n */\nexport class DisjointOrderNegotiationFields extends OrderNegotiationFields {\n  /**\n   * Creates a DisjointOrderNegotiationFields from JSON data\n   * @param json JSON object representing disjoint order negotiation fields\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): DisjointOrderNegotiationFields {\n    const instance = new DisjointOrderNegotiationFields();\n\n    if (json.variant !== 'Disjoint') {\n      throw new Error(\n        `Invalid variant for DisjointOrderNegotiationFields: expected 'Disjoint', got ${json.variant}`,\n      );\n    }\n\n    if (!json.orderOffer) {\n      throw new Error(\n        'DisjointOrderNegotiationFields requires orderOffer field',\n      );\n    }\n\n    instance.orderOffer = OrderOffer.fromJSON\n      ? OrderOffer.fromJSON(json.orderOffer)\n      : OrderOffer.deserialize(Buffer.from(json.orderOffer, 'hex'));\n\n    return instance;\n  }\n\n  /**\n   * Deserializes disjoint order negotiation fields\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DisjointOrderNegotiationFields {\n    const instance = new DisjointOrderNegotiationFields();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read discriminator (1)\n    const orderOfferLength = reader.readBigSize();\n    const orderOfferBuf = reader.readBytes(Number(orderOfferLength));\n    instance.orderOffer = OrderOffer.deserialize(orderOfferBuf);\n\n    return instance;\n  }\n\n  public variant = 'Disjoint' as const;\n  public discriminator = 1;\n  public orderOffer: OrderOffer;\n\n  /**\n   * Converts disjoint order negotiation fields to JSON\n   */\n  public toJSON(): IDisjointOrderNegotiationFieldsJSON {\n    return {\n      variant: this.variant,\n      orderOffer: this.orderOffer.toJSON(),\n    };\n  }\n\n  /**\n   * Serializes the disjoint order negotiation fields into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeBigSize(this.discriminator);\n\n    const orderOfferData = this.orderOffer.serialize();\n    writer.writeBigSize(orderOfferData.length);\n    writer.writeBytes(orderOfferData);\n\n    return writer.toBuffer();\n  }\n}\n\nexport type IOrderNegotiationFieldsJSON =\n  | ISingleOrderNegotiationFieldsJSON\n  | IDisjointOrderNegotiationFieldsJSON;\n\nexport interface ISingleOrderNegotiationFieldsJSON {\n  variant: 'Single';\n}\n\nexport interface IDisjointOrderNegotiationFieldsJSON {\n  variant: 'Disjoint';\n  orderOffer: IOrderOfferJSON;\n}\n\n// Legacy exports for backward compatibility - map to new structure\nexport const OrderNegotiationFieldsV0 = SingleOrderNegotiationFields; // V0 was basic/empty\nexport const OrderNegotiationFieldsV1 = DisjointOrderNegotiationFields; // V1 had OrderOffer\n\nexport type IOrderNegotiationFieldsV0JSON = ISingleOrderNegotiationFieldsJSON;\nexport type IOrderNegotiationFieldsV1JSON = IDisjointOrderNegotiationFieldsJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6175f6584c79d5a0acb28599178e7976ed680ae8","contentHash":"cb0adb6b11d2e38feb63d8d188ae92f5dffde8298ddf5a7f10d995fbe637a0a2"},"/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":58}},"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":15},"end":{"line":8,"column":33}},"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":25,"column":8},"end":{"line":25,"column":36}},"14":{"start":{"line":27,"column":8},"end":{"line":27,"column":62}},"15":{"start":{"line":35,"column":25},"end":{"line":35,"column":41}},"16":{"start":{"line":37,"column":8},"end":{"line":38,"column":92}},"17":{"start":{"line":39,"column":8},"end":{"line":39,"column":103}},"18":{"start":{"line":40,"column":8},"end":{"line":40,"column":83}},"19":{"start":{"line":41,"column":8},"end":{"line":41,"column":114}},"20":{"start":{"line":43,"column":8},"end":{"line":45,"column":35}},"21":{"start":{"line":46,"column":8},"end":{"line":46,"column":96}},"22":{"start":{"line":47,"column":8},"end":{"line":47,"column":74}},"23":{"start":{"line":48,"column":8},"end":{"line":48,"column":83}},"24":{"start":{"line":50,"column":8},"end":{"line":50,"column":110}},"25":{"start":{"line":51,"column":8},"end":{"line":51,"column":24}},"26":{"start":{"line":58,"column":25},"end":{"line":58,"column":41}},"27":{"start":{"line":59,"column":23},"end":{"line":59,"column":52}},"28":{"start":{"line":60,"column":21},"end":{"line":60,"column":42}},"29":{"start":{"line":62,"column":8},"end":{"line":64,"column":9}},"30":{"start":{"line":63,"column":12},"end":{"line":63,"column":115}},"31":{"start":{"line":66,"column":26},"end":{"line":66,"column":86}},"32":{"start":{"line":67,"column":32},"end":{"line":67,"column":54}},"33":{"start":{"line":68,"column":32},"end":{"line":68,"column":73}},"34":{"start":{"line":69,"column":40},"end":{"line":69,"column":70}},"35":{"start":{"line":70,"column":38},"end":{"line":70,"column":65}},"36":{"start":{"line":72,"column":28},"end":{"line":74,"column":39}},"37":{"start":{"line":75,"column":8},"end":{"line":84,"column":9}},"38":{"start":{"line":77,"column":12},"end":{"line":77,"column":61}},"39":{"start":{"line":78,"column":12},"end":{"line":78,"column":57}},"40":{"start":{"line":82,"column":12},"end":{"line":82,"column":41}},"41":{"start":{"line":83,"column":12},"end":{"line":83,"column":57}},"42":{"start":{"line":85,"column":8},"end":{"line":85,"column":50}},"43":{"start":{"line":86,"column":8},"end":{"line":86,"column":60}},"44":{"start":{"line":88,"column":8},"end":{"line":88,"column":126}},"45":{"start":{"line":90,"column":35},"end":{"line":90,"column":75}},"46":{"start":{"line":91,"column":8},"end":{"line":91,"column":46}},"47":{"start":{"line":92,"column":8},"end":{"line":92,"column":57}},"48":{"start":{"line":93,"column":8},"end":{"line":93,"column":54}},"49":{"start":{"line":94,"column":8},"end":{"line":94,"column":53}},"50":{"start":{"line":95,"column":8},"end":{"line":95,"column":56}},"51":{"start":{"line":97,"column":8},"end":{"line":125,"column":9}},"52":{"start":{"line":98,"column":24},"end":{"line":98,"column":52}},"53":{"start":{"line":99,"column":30},"end":{"line":99,"column":59}},"54":{"start":{"line":100,"column":29},"end":{"line":100,"column":76}},"55":{"start":{"line":101,"column":12},"end":{"line":124,"column":13}},"56":{"start":{"line":103,"column":20},"end":{"line":103,"column":89}},"57":{"start":{"line":104,"column":20},"end":{"line":104,"column":26}},"58":{"start":{"line":106,"column":20},"end":{"line":106,"column":86}},"59":{"start":{"line":107,"column":20},"end":{"line":107,"column":26}},"60":{"start":{"line":109,"column":20},"end":{"line":109,"column":99}},"61":{"start":{"line":110,"column":20},"end":{"line":110,"column":26}},"62":{"start":{"line":112,"column":20},"end":{"line":114,"column":21}},"63":{"start":{"line":113,"column":24},"end":{"line":113,"column":57}},"64":{"start":{"line":115,"column":20},"end":{"line":115,"column":109}},"65":{"start":{"line":116,"column":20},"end":{"line":116,"column":26}},"66":{"start":{"line":119,"column":20},"end":{"line":121,"column":21}},"67":{"start":{"line":120,"column":24},"end":{"line":120,"column":50}},"68":{"start":{"line":122,"column":20},"end":{"line":122,"column":81}},"69":{"start":{"line":123,"column":20},"end":{"line":123,"column":26}},"70":{"start":{"line":126,"column":8},"end":{"line":126,"column":24}},"71":{"start":{"line":130,"column":8},"end":{"line":130,"column":36}},"72":{"start":{"line":133,"column":8},"end":{"line":133,"column":37}},"73":{"start":{"line":138,"column":8},"end":{"line":140,"column":9}},"74":{"start":{"line":139,"column":12},"end":{"line":139,"column":130}},"75":{"start":{"line":142,"column":8},"end":{"line":144,"column":9}},"76":{"start":{"line":143,"column":12},"end":{"line":143,"column":68}},"77":{"start":{"line":148,"column":8},"end":{"line":150,"column":9}},"78":{"start":{"line":149,"column":12},"end":{"line":149,"column":86}},"79":{"start":{"line":151,"column":8},"end":{"line":153,"column":9}},"80":{"start":{"line":152,"column":12},"end":{"line":152,"column":79}},"81":{"start":{"line":154,"column":8},"end":{"line":156,"column":9}},"82":{"start":{"line":155,"column":12},"end":{"line":155,"column":82}},"83":{"start":{"line":158,"column":8},"end":{"line":163,"column":9}},"84":{"start":{"line":162,"column":12},"end":{"line":162,"column":84}},"85":{"start":{"line":165,"column":8},"end":{"line":167,"column":9}},"86":{"start":{"line":166,"column":12},"end":{"line":166,"column":76}},"87":{"start":{"line":169,"column":8},"end":{"line":169,"column":37}},"88":{"start":{"line":171,"column":8},"end":{"line":173,"column":9}},"89":{"start":{"line":172,"column":12},"end":{"line":172,"column":86}},"90":{"start":{"line":179,"column":21},"end":{"line":179,"column":23}},"91":{"start":{"line":180,"column":8},"end":{"line":181,"column":46}},"92":{"start":{"line":181,"column":12},"end":{"line":181,"column":46}},"93":{"start":{"line":182,"column":8},"end":{"line":183,"column":45}},"94":{"start":{"line":183,"column":12},"end":{"line":183,"column":45}},"95":{"start":{"line":184,"column":8},"end":{"line":185,"column":50}},"96":{"start":{"line":185,"column":12},"end":{"line":185,"column":50}},"97":{"start":{"line":186,"column":8},"end":{"line":187,"column":94}},"98":{"start":{"line":187,"column":12},"end":{"line":187,"column":94}},"99":{"start":{"line":187,"column":61},"end":{"line":187,"column":92}},"100":{"start":{"line":189,"column":8},"end":{"line":191,"column":9}},"101":{"start":{"line":190,"column":12},"end":{"line":190,"column":109}},"102":{"start":{"line":190,"column":46},"end":{"line":190,"column":107}},"103":{"start":{"line":192,"column":8},"end":{"line":205,"column":10}},"104":{"start":{"line":211,"column":23},"end":{"line":211,"column":49}},"105":{"start":{"line":212,"column":8},"end":{"line":212,"column":40}},"106":{"start":{"line":214,"column":8},"end":{"line":214,"column":51}},"107":{"start":{"line":215,"column":8},"end":{"line":215,"column":46}},"108":{"start":{"line":216,"column":8},"end":{"line":216,"column":42}},"109":{"start":{"line":217,"column":8},"end":{"line":217,"column":52}},"110":{"start":{"line":218,"column":8},"end":{"line":218,"column":57}},"111":{"start":{"line":219,"column":8},"end":{"line":219,"column":51}},"112":{"start":{"line":220,"column":8},"end":{"line":220,"column":48}},"113":{"start":{"line":221,"column":8},"end":{"line":221,"column":47}},"114":{"start":{"line":222,"column":8},"end":{"line":222,"column":50}},"115":{"start":{"line":224,"column":8},"end":{"line":225,"column":57}},"116":{"start":{"line":225,"column":12},"end":{"line":225,"column":57}},"117":{"start":{"line":226,"column":8},"end":{"line":227,"column":56}},"118":{"start":{"line":227,"column":12},"end":{"line":227,"column":56}},"119":{"start":{"line":228,"column":8},"end":{"line":229,"column":61}},"120":{"start":{"line":229,"column":12},"end":{"line":229,"column":61}},"121":{"start":{"line":230,"column":8},"end":{"line":231,"column":105}},"122":{"start":{"line":231,"column":12},"end":{"line":231,"column":105}},"123":{"start":{"line":231,"column":61},"end":{"line":231,"column":103}},"124":{"start":{"line":233,"column":8},"end":{"line":237,"column":9}},"125":{"start":{"line":234,"column":12},"end":{"line":236,"column":15}},"126":{"start":{"line":235,"column":16},"end":{"line":235,"column":44}},"127":{"start":{"line":238,"column":8},"end":{"line":238,"column":33}},"128":{"start":{"line":241,"column":0},"end":{"line":241,"column":32}},"129":{"start":{"line":242,"column":0},"end":{"line":242,"column":55}},"130":{"start":{"line":245,"column":8},"end":{"line":245,"column":25}},"131":{"start":{"line":252,"column":8},"end":{"line":252,"column":32}},"132":{"start":{"line":259,"column":8},"end":{"line":259,"column":27}},"133":{"start":{"line":266,"column":23},"end":{"line":266,"column":49}},"134":{"start":{"line":268,"column":8},"end":{"line":268,"column":48}},"135":{"start":{"line":270,"column":8},"end":{"line":275,"column":11}},"136":{"start":{"line":271,"column":36},"end":{"line":271,"column":53}},"137":{"start":{"line":273,"column":12},"end":{"line":273,"column":56}},"138":{"start":{"line":274,"column":12},"end":{"line":274,"column":47}},"139":{"start":{"line":276,"column":8},"end":{"line":276,"column":33}},"140":{"start":{"line":284,"column":23},"end":{"line":284,"column":52}},"141":{"start":{"line":285,"column":26},"end":{"line":285,"column":51}},"142":{"start":{"line":286,"column":28},"end":{"line":286,"column":48}},"143":{"start":{"line":287,"column":8},"end":{"line":293,"column":9}},"144":{"start":{"line":287,"column":21},"end":{"line":287,"column":22}},"145":{"start":{"line":289,"column":32},"end":{"line":289,"column":52}},"146":{"start":{"line":290,"column":29},"end":{"line":290,"column":66}},"147":{"start":{"line":291,"column":26},"end":{"line":291,"column":58}},"148":{"start":{"line":292,"column":12},"end":{"line":292,"column":38}},"149":{"start":{"line":294,"column":8},"end":{"line":294,"column":25}},"150":{"start":{"line":297,"column":0},"end":{"line":297,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":28,"column":5}},"line":21},"1":{"name":"(anonymous_1)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":26},"end":{"line":52,"column":5}},"line":34},"2":{"name":"(anonymous_2)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":28},"end":{"line":127,"column":5}},"line":57},"3":{"name":"(anonymous_3)","decl":{"start":{"line":129,"column":4},"end":{"line":129,"column":5}},"loc":{"start":{"line":129,"column":34},"end":{"line":131,"column":5}},"line":129},"4":{"name":"(anonymous_4)","decl":{"start":{"line":132,"column":4},"end":{"line":132,"column":5}},"loc":{"start":{"line":132,"column":39},"end":{"line":134,"column":5}},"line":132},"5":{"name":"(anonymous_5)","decl":{"start":{"line":135,"column":4},"end":{"line":135,"column":5}},"loc":{"start":{"line":135,"column":15},"end":{"line":174,"column":5}},"line":135},"6":{"name":"(anonymous_6)","decl":{"start":{"line":178,"column":4},"end":{"line":178,"column":5}},"loc":{"start":{"line":178,"column":13},"end":{"line":206,"column":5}},"line":178},"7":{"name":"(anonymous_7)","decl":{"start":{"line":187,"column":44},"end":{"line":187,"column":45}},"loc":{"start":{"line":187,"column":61},"end":{"line":187,"column":92}},"line":187},"8":{"name":"(anonymous_8)","decl":{"start":{"line":190,"column":37},"end":{"line":190,"column":38}},"loc":{"start":{"line":190,"column":46},"end":{"line":190,"column":107}},"line":190},"9":{"name":"(anonymous_9)","decl":{"start":{"line":210,"column":4},"end":{"line":210,"column":5}},"loc":{"start":{"line":210,"column":16},"end":{"line":239,"column":5}},"line":210},"10":{"name":"(anonymous_10)","decl":{"start":{"line":231,"column":44},"end":{"line":231,"column":45}},"loc":{"start":{"line":231,"column":61},"end":{"line":231,"column":103}},"line":231},"11":{"name":"(anonymous_11)","decl":{"start":{"line":234,"column":37},"end":{"line":234,"column":38}},"loc":{"start":{"line":234,"column":46},"end":{"line":236,"column":13}},"line":234},"12":{"name":"(anonymous_12)","decl":{"start":{"line":244,"column":4},"end":{"line":244,"column":5}},"loc":{"start":{"line":244,"column":18},"end":{"line":246,"column":5}},"line":244},"13":{"name":"(anonymous_13)","decl":{"start":{"line":251,"column":4},"end":{"line":251,"column":5}},"loc":{"start":{"line":251,"column":20},"end":{"line":253,"column":5}},"line":251},"14":{"name":"(anonymous_14)","decl":{"start":{"line":258,"column":4},"end":{"line":258,"column":5}},"loc":{"start":{"line":258,"column":16},"end":{"line":260,"column":5}},"line":258},"15":{"name":"(anonymous_15)","decl":{"start":{"line":265,"column":4},"end":{"line":265,"column":5}},"loc":{"start":{"line":265,"column":16},"end":{"line":277,"column":5}},"line":265},"16":{"name":"(anonymous_16)","decl":{"start":{"line":270,"column":28},"end":{"line":270,"column":29}},"loc":{"start":{"line":270,"column":39},"end":{"line":275,"column":9}},"line":270},"17":{"name":"(anonymous_17)","decl":{"start":{"line":283,"column":4},"end":{"line":283,"column":5}},"loc":{"start":{"line":283,"column":28},"end":{"line":295,"column":5}},"line":283}},"branchMap":{"0":{"loc":{"start":{"line":38,"column":12},"end":{"line":38,"column":91}},"type":"binary-expr","locations":[{"start":{"line":38,"column":12},"end":{"line":38,"column":32}},{"start":{"line":38,"column":36},"end":{"line":38,"column":57}},{"start":{"line":38,"column":61},"end":{"line":38,"column":91}}],"line":38},"1":{"loc":{"start":{"line":39,"column":45},"end":{"line":39,"column":94}},"type":"binary-expr","locations":[{"start":{"line":39,"column":45},"end":{"line":39,"column":63}},{"start":{"line":39,"column":67},"end":{"line":39,"column":86}},{"start":{"line":39,"column":90},"end":{"line":39,"column":94}}],"line":39},"2":{"loc":{"start":{"line":40,"column":41},"end":{"line":40,"column":74}},"type":"binary-expr","locations":[{"start":{"line":40,"column":41},"end":{"line":40,"column":55}},{"start":{"line":40,"column":59},"end":{"line":40,"column":74}}],"line":40},"3":{"loc":{"start":{"line":41,"column":51},"end":{"line":41,"column":105}},"type":"binary-expr","locations":[{"start":{"line":41,"column":51},"end":{"line":41,"column":75}},{"start":{"line":41,"column":79},"end":{"line":41,"column":105}}],"line":41},"4":{"loc":{"start":{"line":43,"column":56},"end":{"line":45,"column":33}},"type":"binary-expr","locations":[{"start":{"line":43,"column":56},"end":{"line":43,"column":76}},{"start":{"line":44,"column":12},"end":{"line":44,"column":40}},{"start":{"line":45,"column":12},"end":{"line":45,"column":33}}],"line":43},"5":{"loc":{"start":{"line":46,"column":53},"end":{"line":46,"column":94}},"type":"binary-expr","locations":[{"start":{"line":46,"column":53},"end":{"line":46,"column":70}},{"start":{"line":46,"column":74},"end":{"line":46,"column":94}}],"line":46},"6":{"loc":{"start":{"line":47,"column":31},"end":{"line":47,"column":73}},"type":"binary-expr","locations":[{"start":{"line":47,"column":31},"end":{"line":47,"column":47}},{"start":{"line":47,"column":51},"end":{"line":47,"column":68}},{"start":{"line":47,"column":72},"end":{"line":47,"column":73}}],"line":47},"7":{"loc":{"start":{"line":48,"column":34},"end":{"line":48,"column":82}},"type":"binary-expr","locations":[{"start":{"line":48,"column":34},"end":{"line":48,"column":53}},{"start":{"line":48,"column":57},"end":{"line":48,"column":77}},{"start":{"line":48,"column":81},"end":{"line":48,"column":82}}],"line":48},"8":{"loc":{"start":{"line":50,"column":69},"end":{"line":50,"column":108}},"type":"binary-expr","locations":[{"start":{"line":50,"column":69},"end":{"line":50,"column":86}},{"start":{"line":50,"column":90},"end":{"line":50,"column":108}}],"line":50},"9":{"loc":{"start":{"line":62,"column":8},"end":{"line":64,"column":9}},"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":64,"column":9}},{"start":{},"end":{}}],"line":62},"10":{"loc":{"start":{"line":72,"column":28},"end":{"line":74,"column":39}},"type":"binary-expr","locations":[{"start":{"line":72,"column":28},"end":{"line":72,"column":56}},{"start":{"line":73,"column":12},"end":{"line":73,"column":41}},{"start":{"line":74,"column":12},"end":{"line":74,"column":39}}],"line":72},"11":{"loc":{"start":{"line":75,"column":8},"end":{"line":84,"column":9}},"type":"if","locations":[{"start":{"line":75,"column":8},"end":{"line":84,"column":9}},{"start":{"line":80,"column":13},"end":{"line":84,"column":9}}],"line":75},"12":{"loc":{"start":{"line":101,"column":12},"end":{"line":124,"column":13}},"type":"switch","locations":[{"start":{"line":102,"column":16},"end":{"line":104,"column":26}},{"start":{"line":105,"column":16},"end":{"line":107,"column":26}},{"start":{"line":108,"column":16},"end":{"line":110,"column":26}},{"start":{"line":111,"column":16},"end":{"line":116,"column":26}},{"start":{"line":117,"column":16},"end":{"line":123,"column":26}}],"line":101},"13":{"loc":{"start":{"line":112,"column":20},"end":{"line":114,"column":21}},"type":"if","locations":[{"start":{"line":112,"column":20},"end":{"line":114,"column":21}},{"start":{},"end":{}}],"line":112},"14":{"loc":{"start":{"line":119,"column":20},"end":{"line":121,"column":21}},"type":"if","locations":[{"start":{"line":119,"column":20},"end":{"line":121,"column":21}},{"start":{},"end":{}}],"line":119},"15":{"loc":{"start":{"line":138,"column":8},"end":{"line":140,"column":9}},"type":"if","locations":[{"start":{"line":138,"column":8},"end":{"line":140,"column":9}},{"start":{},"end":{}}],"line":138},"16":{"loc":{"start":{"line":142,"column":8},"end":{"line":144,"column":9}},"type":"if","locations":[{"start":{"line":142,"column":8},"end":{"line":144,"column":9}},{"start":{},"end":{}}],"line":142},"17":{"loc":{"start":{"line":142,"column":12},"end":{"line":142,"column":79}},"type":"binary-expr","locations":[{"start":{"line":142,"column":12},"end":{"line":142,"column":37}},{"start":{"line":142,"column":41},"end":{"line":142,"column":79}}],"line":142},"18":{"loc":{"start":{"line":148,"column":8},"end":{"line":150,"column":9}},"type":"if","locations":[{"start":{"line":148,"column":8},"end":{"line":150,"column":9}},{"start":{},"end":{}}],"line":148},"19":{"loc":{"start":{"line":151,"column":8},"end":{"line":153,"column":9}},"type":"if","locations":[{"start":{"line":151,"column":8},"end":{"line":153,"column":9}},{"start":{},"end":{}}],"line":151},"20":{"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":{},"end":{}}],"line":154},"21":{"loc":{"start":{"line":158,"column":8},"end":{"line":163,"column":9}},"type":"if","locations":[{"start":{"line":158,"column":8},"end":{"line":163,"column":9}},{"start":{},"end":{}}],"line":158},"22":{"loc":{"start":{"line":158,"column":14},"end":{"line":161,"column":58}},"type":"binary-expr","locations":[{"start":{"line":158,"column":15},"end":{"line":158,"column":52}},{"start":{"line":159,"column":12},"end":{"line":159,"column":52}},{"start":{"line":160,"column":13},"end":{"line":160,"column":51}},{"start":{"line":161,"column":16},"end":{"line":161,"column":57}}],"line":158},"23":{"loc":{"start":{"line":165,"column":8},"end":{"line":167,"column":9}},"type":"if","locations":[{"start":{"line":165,"column":8},"end":{"line":167,"column":9}},{"start":{},"end":{}}],"line":165},"24":{"loc":{"start":{"line":171,"column":8},"end":{"line":173,"column":9}},"type":"if","locations":[{"start":{"line":171,"column":8},"end":{"line":173,"column":9}},{"start":{},"end":{}}],"line":171},"25":{"loc":{"start":{"line":180,"column":8},"end":{"line":181,"column":46}},"type":"if","locations":[{"start":{"line":180,"column":8},"end":{"line":181,"column":46}},{"start":{},"end":{}}],"line":180},"26":{"loc":{"start":{"line":182,"column":8},"end":{"line":183,"column":45}},"type":"if","locations":[{"start":{"line":182,"column":8},"end":{"line":183,"column":45}},{"start":{},"end":{}}],"line":182},"27":{"loc":{"start":{"line":184,"column":8},"end":{"line":185,"column":50}},"type":"if","locations":[{"start":{"line":184,"column":8},"end":{"line":185,"column":50}},{"start":{},"end":{}}],"line":184},"28":{"loc":{"start":{"line":186,"column":8},"end":{"line":187,"column":94}},"type":"if","locations":[{"start":{"line":186,"column":8},"end":{"line":187,"column":94}},{"start":{},"end":{}}],"line":186},"29":{"loc":{"start":{"line":189,"column":8},"end":{"line":191,"column":9}},"type":"if","locations":[{"start":{"line":189,"column":8},"end":{"line":191,"column":9}},{"start":{},"end":{}}],"line":189},"30":{"loc":{"start":{"line":224,"column":8},"end":{"line":225,"column":57}},"type":"if","locations":[{"start":{"line":224,"column":8},"end":{"line":225,"column":57}},{"start":{},"end":{}}],"line":224},"31":{"loc":{"start":{"line":226,"column":8},"end":{"line":227,"column":56}},"type":"if","locations":[{"start":{"line":226,"column":8},"end":{"line":227,"column":56}},{"start":{},"end":{}}],"line":226},"32":{"loc":{"start":{"line":228,"column":8},"end":{"line":229,"column":61}},"type":"if","locations":[{"start":{"line":228,"column":8},"end":{"line":229,"column":61}},{"start":{},"end":{}}],"line":228},"33":{"loc":{"start":{"line":230,"column":8},"end":{"line":231,"column":105}},"type":"if","locations":[{"start":{"line":230,"column":8},"end":{"line":231,"column":105}},{"start":{},"end":{}}],"line":230},"34":{"loc":{"start":{"line":233,"column":8},"end":{"line":237,"column":9}},"type":"if","locations":[{"start":{"line":233,"column":8},"end":{"line":237,"column":9}},{"start":{},"end":{}}],"line":233}},"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":8,"14":8,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":2,"27":2,"28":2,"29":2,"30":0,"31":2,"32":2,"33":2,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":0,"41":0,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"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":2,"71":6,"72":6,"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":2,"91":2,"92":0,"93":2,"94":0,"95":2,"96":0,"97":2,"98":0,"99":0,"100":2,"101":0,"102":0,"103":2,"104":3,"105":3,"106":3,"107":3,"108":3,"109":3,"110":3,"111":3,"112":3,"113":3,"114":3,"115":3,"116":0,"117":3,"118":0,"119":3,"120":0,"121":3,"122":0,"123":0,"124":3,"125":0,"126":0,"127":3,"128":1,"129":1,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":1},"f":{"0":8,"1":0,"2":2,"3":6,"4":6,"5":0,"6":2,"7":0,"8":0,"9":3,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0},"b":{"0":[0,0,0],"1":[0,0,0],"2":[0,0],"3":[0,0],"4":[0,0,0],"5":[0,0],"6":[0,0,0],"7":[0,0,0],"8":[0,0],"9":[0,2],"10":[2,2,2],"11":[2,0],"12":[0,0,0,0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0,0,0],"23":[0,0],"24":[0,0],"25":[0,2],"26":[0,2],"27":[0,2],"28":[0,2],"29":[0,2],"30":[0,3],"31":[0,3],"32":[0,3],"33":[0,3],"34":[0,3]},"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, PROTOCOL_VERSION } from '../MessageType';\nimport { deserializeTlv } from '../serialize/deserializeTlv';\nimport { getTlv } from '../serialize/getTlv';\nimport { bigIntToNumber, toBigInt } from '../util';\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;\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. This is a simpler message than DlcOffer.\n */\nexport class OrderOffer implements IDlcMessage {\n  public static type = MessageType.OrderOffer;\n\n  /**\n   * Creates an OrderOffer from JSON data\n   * @param json JSON object representing an order offer\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OrderOffer {\n    const instance = new OrderOffer();\n\n    // Basic fields with field name variations\n    instance.protocolVersion =\n      json.protocolVersion || json.protocol_version || PROTOCOL_VERSION;\n    instance.contractFlags = Buffer.from(\n      json.contractFlags || json.contract_flags || '00',\n      'hex',\n    );\n    instance.chainHash = Buffer.from(json.chainHash || json.chain_hash, 'hex');\n    instance.temporaryContractId = Buffer.from(\n      json.temporaryContractId || json.temporary_contract_id,\n      'hex',\n    );\n\n    // Use toBigInt helper to handle BigInt values from json-bigint\n    instance.offerCollateral = toBigInt(\n      json.offerCollateral ||\n        json.offerCollateralSatoshis ||\n        json.offer_collateral,\n    );\n\n    instance.feeRatePerVb = toBigInt(json.feeRatePerVb || json.fee_rate_per_vb);\n    instance.cetLocktime = json.cetLocktime || json.cet_locktime || 0;\n    instance.refundLocktime = json.refundLocktime || json.refund_locktime || 0;\n\n    // Use ContractInfo.fromJSON() - proper delegation\n    instance.contractInfo = ContractInfo.fromJSON(\n      json.contractInfo || json.contract_info,\n    );\n\n    return instance;\n  }\n\n  /**\n   * Deserializes an order_offer message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OrderOffer {\n    const instance = new OrderOffer();\n    const reader = new BufferReader(buf);\n\n    const type = reader.readUInt16BE(); // read type\n\n    // Validate type matches expected OrderOffer type\n    if (type !== MessageType.OrderOffer) {\n      throw new Error(\n        `Invalid message type. Expected ${MessageType.OrderOffer}, got ${type}`,\n      );\n    }\n\n    // BACKWARD COMPATIBILITY: Detect old vs new format\n    const nextBytes = reader.buffer.subarray(\n      reader.position,\n      reader.position + 5,\n    );\n    const nextBytesBuffer = Buffer.from(nextBytes);\n    const nextBytesReader = new BufferReader(nextBytesBuffer);\n    const possibleProtocolVersion = nextBytesReader.readUInt32BE();\n    const possibleContractFlags = nextBytesReader.readUInt8();\n\n    // Heuristic: protocol_version should be 1, contract_flags should be 0\n    const isNewFormat =\n      possibleProtocolVersion >= 1 &&\n      possibleProtocolVersion <= 10 &&\n      possibleContractFlags === 0;\n\n    if (isNewFormat) {\n      // New format with protocol_version\n      instance.protocolVersion = reader.readUInt32BE();\n      instance.contractFlags = reader.readBytes(1);\n    } else {\n      // Old format without protocol_version\n      instance.protocolVersion = 1; // Default to version 1\n      instance.contractFlags = reader.readBytes(1);\n    }\n\n    instance.chainHash = reader.readBytes(32);\n    instance.temporaryContractId = reader.readBytes(32);\n\n    // ContractInfo is serialized as sibling type in dlcspecs PR #163 format\n    instance.contractInfo = ContractInfo.deserialize(\n      Buffer.from(reader.buffer.subarray(reader.position)),\n    );\n    // Skip past the ContractInfo we just read\n    const contractInfoLength = instance.contractInfo.serialize().length;\n    reader.position += contractInfoLength;\n\n    instance.offerCollateral = reader.readUInt64BE();\n    instance.feeRatePerVb = reader.readUInt64BE();\n    instance.cetLocktime = reader.readUInt32BE();\n    instance.refundLocktime = reader.readUInt32BE();\n\n    // Parse TLV stream as per dlcspecs PR #163\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.OrderPositionInfo:\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          // Store unknown TLVs for future compatibility\n          if (!instance.unknownTlvs) {\n            instance.unknownTlvs = [];\n          }\n          instance.unknownTlvs.push({ type: Number(type), data: buf });\n          break;\n      }\n    }\n\n    return instance;\n  }\n\n  /**\n   * The type for order_offer message. order_offer = 62770\n   */\n  public type = OrderOffer.type;\n\n  // New fields as per dlcspecs PR #163\n  public protocolVersion: number = PROTOCOL_VERSION; // Default to current protocol version\n\n  public temporaryContractId: Buffer; // New field for contract identification\n\n  // Existing fields\n  public contractFlags: Buffer;\n\n  public chainHash: Buffer;\n\n  public contractInfo: ContractInfo;\n\n  public offerCollateral: 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  // Store unknown TLVs for forward compatibility\n  public unknownTlvs?: Array<{ type: number; data: Buffer }>;\n\n  // Legacy property for backward compatibility\n  public get offerCollateralSatoshis(): bigint {\n    return this.offerCollateral;\n  }\n\n  public set offerCollateralSatoshis(value: bigint) {\n    this.offerCollateral = value;\n  }\n\n  public validate(): void {\n    // 1. Type is set automatically in class\n    // 2. protocol_version validation\n    if (this.protocolVersion !== PROTOCOL_VERSION) {\n      throw new Error(\n        `Unsupported protocol version: ${this.protocolVersion}, expected: ${PROTOCOL_VERSION}`,\n      );\n    }\n\n    // 3. temporary_contract_id validation\n    if (!this.temporaryContractId || this.temporaryContractId.length !== 32) {\n      throw new Error('temporaryContractId must be 32 bytes');\n    }\n\n    // 4. contract_flags field is ignored\n    // 5. chain_hash must be validated as input by end user\n\n    // 6. offer_collateral must be greater than or equal to 1000\n    if (this.offerCollateral < 1000) {\n      throw new Error('offer_collateral must be greater than or equal to 1000');\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    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    // validate contractInfo\n    this.contractInfo.validate();\n\n    // totalCollateral should be > offerCollateral (logical validation)\n    if (this.contractInfo.getTotalCollateral() <= this.offerCollateral) {\n      throw new Error('totalCollateral should be greater than offerCollateral');\n    }\n  }\n\n  /**\n   * Converts order_offer 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    // Include unknown TLVs for debugging\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) =>\n        tlvs.push({ type: tlv.type, data: tlv.data.toString('hex') }),\n      );\n    }\n\n    return {\n      type: this.type,\n      protocolVersion: this.protocolVersion,\n      temporaryContractId: this.temporaryContractId.toString('hex'),\n      contractFlags: Number(this.contractFlags[0]),\n      chainHash: this.chainHash.toString('hex'),\n      contractInfo: this.contractInfo.toJSON(),\n      offerCollateral: bigIntToNumber(this.offerCollateral),\n      offerCollateralSatoshis: bigIntToNumber(this.offerCollateral), // Legacy field\n      feeRatePerVb: bigIntToNumber(this.feeRatePerVb),\n      cetLocktime: this.cetLocktime,\n      refundLocktime: this.refundLocktime,\n      tlvs,\n    };\n  }\n\n  /**\n   * Serializes the order_offer message into a Buffer\n   */\n  public serialize(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.type);\n\n    // New fields as per dlcspecs PR #163\n    writer.writeUInt32BE(this.protocolVersion);\n    writer.writeBytes(this.contractFlags);\n    writer.writeBytes(this.chainHash);\n    writer.writeBytes(this.temporaryContractId); // New field\n\n    writer.writeBytes(this.contractInfo.serialize());\n    writer.writeUInt64BE(this.offerCollateral);\n    writer.writeUInt64BE(this.feeRatePerVb);\n    writer.writeUInt32BE(this.cetLocktime);\n    writer.writeUInt32BE(this.refundLocktime);\n\n    // TLV stream as per dlcspecs PR #163\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    // Write unknown TLVs for forward compatibility\n    if (this.unknownTlvs) {\n      this.unknownTlvs.forEach((tlv) => {\n        writer.writeBytes(tlv.data);\n      });\n    }\n\n    return writer.toBuffer();\n  }\n}\n\nexport interface IOrderOfferJSON {\n  type: number;\n  protocolVersion: number;\n  temporaryContractId: string;\n  contractFlags: number;\n  chainHash: string;\n  contractInfo: IContractInfoV0JSON | IContractInfoV1JSON;\n  offerCollateral: number;\n  offerCollateralSatoshis: number; // Legacy field for backward compatibility\n  feeRatePerVb: number;\n  cetLocktime: number;\n  refundLocktime: number;\n  tlvs: (\n    | IOrderMetadataJSON\n    | IOrderIrcInfoJSON\n    | IOrderPositionInfoJSON\n    | IBatchFundingGroupJSON\n    | unknown\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);\n      container.addOffer(offer);\n    }\n    return container;\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3520bc7dc6fea65b1b489420161faf097d102918","contentHash":"0bc4eca02f1ebec9477094b9eb22b3833459aa7a039e5fdc5f464a4ba2a3034a"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfo.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfo.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":127}},"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":14,"column":8},"end":{"line":14,"column":38}},"7":{"start":{"line":22,"column":25},"end":{"line":22,"column":43}},"8":{"start":{"line":23,"column":8},"end":{"line":23,"column":75}},"9":{"start":{"line":24,"column":8},"end":{"line":24,"column":72}},"10":{"start":{"line":25,"column":8},"end":{"line":26,"column":69}},"11":{"start":{"line":27,"column":8},"end":{"line":27,"column":24}},"12":{"start":{"line":33,"column":25},"end":{"line":33,"column":43}},"13":{"start":{"line":34,"column":23},"end":{"line":34,"column":52}},"14":{"start":{"line":35,"column":8},"end":{"line":35,"column":29}},"15":{"start":{"line":36,"column":8},"end":{"line":36,"column":47}},"16":{"start":{"line":37,"column":8},"end":{"line":37,"column":53}},"17":{"start":{"line":38,"column":8},"end":{"line":38,"column":52}},"18":{"start":{"line":39,"column":8},"end":{"line":39,"column":61}},"19":{"start":{"line":40,"column":8},"end":{"line":40,"column":24}},"20":{"start":{"line":46,"column":25},"end":{"line":46,"column":43}},"21":{"start":{"line":47,"column":23},"end":{"line":47,"column":52}},"22":{"start":{"line":49,"column":8},"end":{"line":49,"column":53}},"23":{"start":{"line":50,"column":8},"end":{"line":50,"column":52}},"24":{"start":{"line":51,"column":8},"end":{"line":51,"column":61}},"25":{"start":{"line":52,"column":8},"end":{"line":52,"column":24}},"26":{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},"27":{"start":{"line":56,"column":12},"end":{"line":56,"column":78}},"28":{"start":{"line":58,"column":8},"end":{"line":60,"column":9}},"29":{"start":{"line":59,"column":12},"end":{"line":59,"column":77}},"30":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"31":{"start":{"line":62,"column":12},"end":{"line":62,"column":72}},"32":{"start":{"line":66,"column":8},"end":{"line":70,"column":10}},"33":{"start":{"line":73,"column":23},"end":{"line":73,"column":49}},"34":{"start":{"line":74,"column":8},"end":{"line":74,"column":39}},"35":{"start":{"line":75,"column":27},"end":{"line":75,"column":53}},"36":{"start":{"line":76,"column":8},"end":{"line":76,"column":51}},"37":{"start":{"line":77,"column":8},"end":{"line":77,"column":50}},"38":{"start":{"line":78,"column":8},"end":{"line":78,"column":61}},"39":{"start":{"line":79,"column":8},"end":{"line":79,"column":45}},"40":{"start":{"line":80,"column":8},"end":{"line":80,"column":49}},"41":{"start":{"line":81,"column":8},"end":{"line":81,"column":33}},"42":{"start":{"line":87,"column":23},"end":{"line":87,"column":49}},"43":{"start":{"line":88,"column":8},"end":{"line":88,"column":47}},"44":{"start":{"line":89,"column":8},"end":{"line":89,"column":46}},"45":{"start":{"line":90,"column":8},"end":{"line":90,"column":57}},"46":{"start":{"line":91,"column":8},"end":{"line":91,"column":33}},"47":{"start":{"line":94,"column":0},"end":{"line":94,"column":36}},"48":{"start":{"line":95,"column":0},"end":{"line":95,"column":61}},"49":{"start":{"line":101,"column":8},"end":{"line":101,"column":42}},"50":{"start":{"line":109,"column":25},"end":{"line":109,"column":47}},"51":{"start":{"line":110,"column":33},"end":{"line":110,"column":77}},"52":{"start":{"line":111,"column":8},"end":{"line":113,"column":9}},"53":{"start":{"line":112,"column":12},"end":{"line":112,"column":101}},"54":{"start":{"line":115,"column":8},"end":{"line":115,"column":99}},"55":{"start":{"line":116,"column":8},"end":{"line":116,"column":24}},"56":{"start":{"line":122,"column":25},"end":{"line":122,"column":47}},"57":{"start":{"line":123,"column":23},"end":{"line":123,"column":52}},"58":{"start":{"line":125,"column":8},"end":{"line":125,"column":29}},"59":{"start":{"line":126,"column":8},"end":{"line":126,"column":47}},"60":{"start":{"line":128,"column":8},"end":{"line":128,"column":127}},"61":{"start":{"line":129,"column":8},"end":{"line":129,"column":24}},"62":{"start":{"line":135,"column":8},"end":{"line":135,"column":64}},"63":{"start":{"line":138,"column":8},"end":{"line":138,"column":37}},"64":{"start":{"line":142,"column":8},"end":{"line":146,"column":10}},"65":{"start":{"line":149,"column":23},"end":{"line":149,"column":49}},"66":{"start":{"line":150,"column":8},"end":{"line":150,"column":39}},"67":{"start":{"line":151,"column":27},"end":{"line":151,"column":53}},"68":{"start":{"line":152,"column":8},"end":{"line":152,"column":61}},"69":{"start":{"line":153,"column":8},"end":{"line":153,"column":45}},"70":{"start":{"line":154,"column":8},"end":{"line":154,"column":49}},"71":{"start":{"line":155,"column":8},"end":{"line":155,"column":33}},"72":{"start":{"line":162,"column":8},"end":{"line":162,"column":45}},"73":{"start":{"line":169,"column":25},"end":{"line":169,"column":47}},"74":{"start":{"line":171,"column":8},"end":{"line":171,"column":89}},"75":{"start":{"line":172,"column":8},"end":{"line":172,"column":24}},"76":{"start":{"line":175,"column":0},"end":{"line":175,"column":44}},"77":{"start":{"line":176,"column":0},"end":{"line":176,"column":67}},"78":{"start":{"line":182,"column":8},"end":{"line":182,"column":41}},"79":{"start":{"line":184,"column":8},"end":{"line":184,"column":32}},"80":{"start":{"line":192,"column":25},"end":{"line":192,"column":46}},"81":{"start":{"line":193,"column":8},"end":{"line":193,"column":49}},"82":{"start":{"line":195,"column":30},"end":{"line":195,"column":89}},"83":{"start":{"line":197,"column":8},"end":{"line":197,"column":141}},"84":{"start":{"line":197,"column":73},"end":{"line":197,"column":139}},"85":{"start":{"line":199,"column":33},"end":{"line":199,"column":72}},"86":{"start":{"line":200,"column":8},"end":{"line":207,"column":9}},"87":{"start":{"line":202,"column":12},"end":{"line":202,"column":76}},"88":{"start":{"line":206,"column":12},"end":{"line":206,"column":46}},"89":{"start":{"line":208,"column":8},"end":{"line":208,"column":24}},"90":{"start":{"line":214,"column":25},"end":{"line":214,"column":46}},"91":{"start":{"line":215,"column":23},"end":{"line":215,"column":52}},"92":{"start":{"line":217,"column":8},"end":{"line":217,"column":29}},"93":{"start":{"line":218,"column":8},"end":{"line":218,"column":47}},"94":{"start":{"line":220,"column":8},"end":{"line":220,"column":51}},"95":{"start":{"line":221,"column":33},"end":{"line":221,"column":61}},"96":{"start":{"line":222,"column":8},"end":{"line":224,"column":9}},"97":{"start":{"line":222,"column":21},"end":{"line":222,"column":22}},"98":{"start":{"line":223,"column":12},"end":{"line":223,"column":123}},"99":{"start":{"line":226,"column":33},"end":{"line":226,"column":54}},"100":{"start":{"line":227,"column":8},"end":{"line":229,"column":9}},"101":{"start":{"line":228,"column":12},"end":{"line":228,"column":83}},"102":{"start":{"line":230,"column":8},"end":{"line":230,"column":24}},"103":{"start":{"line":233,"column":8},"end":{"line":235,"column":9}},"104":{"start":{"line":234,"column":12},"end":{"line":234,"column":64}},"105":{"start":{"line":236,"column":8},"end":{"line":238,"column":9}},"106":{"start":{"line":237,"column":12},"end":{"line":237,"column":88}},"107":{"start":{"line":239,"column":8},"end":{"line":241,"column":9}},"108":{"start":{"line":240,"column":12},"end":{"line":240,"column":67}},"109":{"start":{"line":243,"column":8},"end":{"line":243,"column":78}},"110":{"start":{"line":243,"column":53},"end":{"line":243,"column":76}},"111":{"start":{"line":245,"column":8},"end":{"line":247,"column":9}},"112":{"start":{"line":246,"column":12},"end":{"line":246,"column":41}},"113":{"start":{"line":253,"column":8},"end":{"line":253,"column":92}},"114":{"start":{"line":253,"column":57},"end":{"line":253,"column":89}},"115":{"start":{"line":257,"column":8},"end":{"line":263,"column":10}},"116":{"start":{"line":260,"column":67},"end":{"line":260,"column":77}},"117":{"start":{"line":266,"column":23},"end":{"line":266,"column":49}},"118":{"start":{"line":268,"column":27},"end":{"line":268,"column":53}},"119":{"start":{"line":269,"column":8},"end":{"line":269,"column":49}},"120":{"start":{"line":270,"column":8},"end":{"line":270,"column":59}},"121":{"start":{"line":271,"column":8},"end":{"line":273,"column":9}},"122":{"start":{"line":272,"column":12},"end":{"line":272,"column":60}},"123":{"start":{"line":275,"column":33},"end":{"line":277,"column":18}},"124":{"start":{"line":278,"column":8},"end":{"line":278,"column":51}},"125":{"start":{"line":280,"column":8},"end":{"line":280,"column":49}},"126":{"start":{"line":281,"column":8},"end":{"line":281,"column":33}},"127":{"start":{"line":288,"column":23},"end":{"line":288,"column":49}},"128":{"start":{"line":289,"column":8},"end":{"line":289,"column":45}},"129":{"start":{"line":290,"column":8},"end":{"line":290,"column":55}},"130":{"start":{"line":291,"column":8},"end":{"line":293,"column":9}},"131":{"start":{"line":292,"column":12},"end":{"line":292,"column":56}},"132":{"start":{"line":295,"column":33},"end":{"line":297,"column":18}},"133":{"start":{"line":298,"column":8},"end":{"line":298,"column":47}},"134":{"start":{"line":299,"column":8},"end":{"line":299,"column":33}},"135":{"start":{"line":306,"column":25},"end":{"line":306,"column":46}},"136":{"start":{"line":307,"column":23},"end":{"line":307,"column":52}},"137":{"start":{"line":309,"column":8},"end":{"line":309,"column":51}},"138":{"start":{"line":310,"column":33},"end":{"line":310,"column":61}},"139":{"start":{"line":311,"column":8},"end":{"line":313,"column":9}},"140":{"start":{"line":311,"column":21},"end":{"line":311,"column":22}},"141":{"start":{"line":312,"column":12},"end":{"line":312,"column":123}},"142":{"start":{"line":315,"column":33},"end":{"line":315,"column":54}},"143":{"start":{"line":316,"column":8},"end":{"line":318,"column":9}},"144":{"start":{"line":317,"column":12},"end":{"line":317,"column":83}},"145":{"start":{"line":319,"column":8},"end":{"line":319,"column":24}},"146":{"start":{"line":322,"column":0},"end":{"line":322,"column":42}},"147":{"start":{"line":323,"column":0},"end":{"line":323,"column":65}},"148":{"start":{"line":331,"column":23},"end":{"line":331,"column":52}},"149":{"start":{"line":332,"column":21},"end":{"line":332,"column":49}},"150":{"start":{"line":333,"column":8},"end":{"line":340,"column":9}},"151":{"start":{"line":335,"column":16},"end":{"line":335,"column":57}},"152":{"start":{"line":337,"column":16},"end":{"line":337,"column":56}},"153":{"start":{"line":339,"column":16},"end":{"line":339,"column":69}},"154":{"start":{"line":348,"column":8},"end":{"line":350,"column":9}},"155":{"start":{"line":349,"column":12},"end":{"line":349,"column":54}},"156":{"start":{"line":352,"column":8},"end":{"line":365,"column":9}},"157":{"start":{"line":353,"column":12},"end":{"line":353,"column":51}},"158":{"start":{"line":356,"column":13},"end":{"line":365,"column":9}},"159":{"start":{"line":357,"column":12},"end":{"line":357,"column":58}},"160":{"start":{"line":360,"column":13},"end":{"line":365,"column":9}},"161":{"start":{"line":361,"column":12},"end":{"line":361,"column":56}},"162":{"start":{"line":364,"column":12},"end":{"line":364,"column":90}},"163":{"start":{"line":371,"column":8},"end":{"line":376,"column":9}},"164":{"start":{"line":372,"column":12},"end":{"line":372,"column":68}},"165":{"start":{"line":374,"column":13},"end":{"line":376,"column":9}},"166":{"start":{"line":375,"column":12},"end":{"line":375,"column":49}},"167":{"start":{"line":377,"column":8},"end":{"line":377,"column":52}},"168":{"start":{"line":380,"column":0},"end":{"line":380,"column":32}},"169":{"start":{"line":389,"column":8},"end":{"line":389,"column":47}},"170":{"start":{"line":392,"column":0},"end":{"line":392,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":18},"end":{"line":15,"column":5}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":26},"end":{"line":28,"column":5}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":28},"end":{"line":41,"column":5}},"line":32},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":4},"end":{"line":45,"column":5}},"loc":{"start":{"line":45,"column":32},"end":{"line":53,"column":5}},"line":45},"4":{"name":"(anonymous_4)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":15},"end":{"line":64,"column":5}},"line":54},"5":{"name":"(anonymous_5)","decl":{"start":{"line":65,"column":4},"end":{"line":65,"column":5}},"loc":{"start":{"line":65,"column":13},"end":{"line":71,"column":5}},"line":65},"6":{"name":"(anonymous_6)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":16},"end":{"line":82,"column":5}},"line":72},"7":{"name":"(anonymous_7)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":20},"end":{"line":92,"column":5}},"line":86},"8":{"name":"(anonymous_8)","decl":{"start":{"line":100,"column":4},"end":{"line":100,"column":5}},"loc":{"start":{"line":100,"column":18},"end":{"line":102,"column":5}},"line":100},"9":{"name":"(anonymous_9)","decl":{"start":{"line":108,"column":4},"end":{"line":108,"column":5}},"loc":{"start":{"line":108,"column":26},"end":{"line":117,"column":5}},"line":108},"10":{"name":"(anonymous_10)","decl":{"start":{"line":121,"column":4},"end":{"line":121,"column":5}},"loc":{"start":{"line":121,"column":28},"end":{"line":130,"column":5}},"line":121},"11":{"name":"(anonymous_11)","decl":{"start":{"line":134,"column":4},"end":{"line":134,"column":5}},"loc":{"start":{"line":134,"column":29},"end":{"line":136,"column":5}},"line":134},"12":{"name":"(anonymous_12)","decl":{"start":{"line":137,"column":4},"end":{"line":137,"column":5}},"loc":{"start":{"line":137,"column":15},"end":{"line":139,"column":5}},"line":137},"13":{"name":"(anonymous_13)","decl":{"start":{"line":140,"column":4},"end":{"line":140,"column":5}},"loc":{"start":{"line":140,"column":13},"end":{"line":147,"column":5}},"line":140},"14":{"name":"(anonymous_14)","decl":{"start":{"line":148,"column":4},"end":{"line":148,"column":5}},"loc":{"start":{"line":148,"column":16},"end":{"line":156,"column":5}},"line":148},"15":{"name":"(anonymous_15)","decl":{"start":{"line":161,"column":4},"end":{"line":161,"column":5}},"loc":{"start":{"line":161,"column":20},"end":{"line":163,"column":5}},"line":161},"16":{"name":"(anonymous_16)","decl":{"start":{"line":168,"column":4},"end":{"line":168,"column":5}},"loc":{"start":{"line":168,"column":32},"end":{"line":173,"column":5}},"line":168},"17":{"name":"(anonymous_17)","decl":{"start":{"line":181,"column":4},"end":{"line":181,"column":5}},"loc":{"start":{"line":181,"column":18},"end":{"line":185,"column":5}},"line":181},"18":{"name":"(anonymous_18)","decl":{"start":{"line":191,"column":4},"end":{"line":191,"column":5}},"loc":{"start":{"line":191,"column":26},"end":{"line":209,"column":5}},"line":191},"19":{"name":"(anonymous_19)","decl":{"start":{"line":197,"column":51},"end":{"line":197,"column":52}},"loc":{"start":{"line":197,"column":73},"end":{"line":197,"column":139}},"line":197},"20":{"name":"(anonymous_20)","decl":{"start":{"line":213,"column":4},"end":{"line":213,"column":5}},"loc":{"start":{"line":213,"column":28},"end":{"line":231,"column":5}},"line":213},"21":{"name":"(anonymous_21)","decl":{"start":{"line":232,"column":4},"end":{"line":232,"column":5}},"loc":{"start":{"line":232,"column":15},"end":{"line":248,"column":5}},"line":232},"22":{"name":"(anonymous_22)","decl":{"start":{"line":243,"column":35},"end":{"line":243,"column":36}},"loc":{"start":{"line":243,"column":53},"end":{"line":243,"column":76}},"line":243},"23":{"name":"(anonymous_23)","decl":{"start":{"line":252,"column":4},"end":{"line":252,"column":5}},"loc":{"start":{"line":252,"column":29},"end":{"line":254,"column":5}},"line":252},"24":{"name":"(anonymous_24)","decl":{"start":{"line":253,"column":50},"end":{"line":253,"column":51}},"loc":{"start":{"line":253,"column":57},"end":{"line":253,"column":89}},"line":253},"25":{"name":"(anonymous_25)","decl":{"start":{"line":255,"column":4},"end":{"line":255,"column":5}},"loc":{"start":{"line":255,"column":13},"end":{"line":264,"column":5}},"line":255},"26":{"name":"(anonymous_26)","decl":{"start":{"line":260,"column":60},"end":{"line":260,"column":61}},"loc":{"start":{"line":260,"column":67},"end":{"line":260,"column":77}},"line":260},"27":{"name":"(anonymous_27)","decl":{"start":{"line":265,"column":4},"end":{"line":265,"column":5}},"loc":{"start":{"line":265,"column":16},"end":{"line":282,"column":5}},"line":265},"28":{"name":"(anonymous_28)","decl":{"start":{"line":287,"column":4},"end":{"line":287,"column":5}},"loc":{"start":{"line":287,"column":20},"end":{"line":300,"column":5}},"line":287},"29":{"name":"(anonymous_29)","decl":{"start":{"line":305,"column":4},"end":{"line":305,"column":5}},"loc":{"start":{"line":305,"column":32},"end":{"line":320,"column":5}},"line":305},"30":{"name":"(anonymous_30)","decl":{"start":{"line":330,"column":4},"end":{"line":330,"column":5}},"loc":{"start":{"line":330,"column":28},"end":{"line":341,"column":5}},"line":330},"31":{"name":"(anonymous_31)","decl":{"start":{"line":347,"column":4},"end":{"line":347,"column":5}},"loc":{"start":{"line":347,"column":26},"end":{"line":366,"column":5}},"line":347},"32":{"name":"(anonymous_32)","decl":{"start":{"line":370,"column":4},"end":{"line":370,"column":5}},"loc":{"start":{"line":370,"column":29},"end":{"line":378,"column":5}},"line":370},"33":{"name":"(anonymous_33)","decl":{"start":{"line":388,"column":4},"end":{"line":388,"column":5}},"loc":{"start":{"line":388,"column":26},"end":{"line":390,"column":5}},"line":388}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":31},"end":{"line":23,"column":74}},"type":"binary-expr","locations":[{"start":{"line":23,"column":31},"end":{"line":23,"column":47}},{"start":{"line":23,"column":51},"end":{"line":23,"column":69}},{"start":{"line":23,"column":73},"end":{"line":23,"column":74}}],"line":23},"1":{"loc":{"start":{"line":24,"column":30},"end":{"line":24,"column":71}},"type":"binary-expr","locations":[{"start":{"line":24,"column":30},"end":{"line":24,"column":45}},{"start":{"line":24,"column":49},"end":{"line":24,"column":66}},{"start":{"line":24,"column":70},"end":{"line":24,"column":71}}],"line":24},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":26,"column":68}},"type":"binary-expr","locations":[{"start":{"line":26,"column":12},"end":{"line":26,"column":33}},{"start":{"line":26,"column":37},"end":{"line":26,"column":59}},{"start":{"line":26,"column":63},"end":{"line":26,"column":68}}],"line":26},"3":{"loc":{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},"type":"if","locations":[{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},{"start":{},"end":{}}],"line":55},"4":{"loc":{"start":{"line":58,"column":8},"end":{"line":60,"column":9}},"type":"if","locations":[{"start":{"line":58,"column":8},"end":{"line":60,"column":9}},{"start":{},"end":{}}],"line":58},"5":{"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":{},"end":{}}],"line":61},"6":{"loc":{"start":{"line":78,"column":30},"end":{"line":78,"column":59}},"type":"cond-expr","locations":[{"start":{"line":78,"column":54},"end":{"line":78,"column":55}},{"start":{"line":78,"column":58},"end":{"line":78,"column":59}}],"line":78},"7":{"loc":{"start":{"line":90,"column":26},"end":{"line":90,"column":55}},"type":"cond-expr","locations":[{"start":{"line":90,"column":50},"end":{"line":90,"column":51}},{"start":{"line":90,"column":54},"end":{"line":90,"column":55}}],"line":90},"8":{"loc":{"start":{"line":110,"column":33},"end":{"line":110,"column":77}},"type":"binary-expr","locations":[{"start":{"line":110,"column":33},"end":{"line":110,"column":50}},{"start":{"line":110,"column":54},"end":{"line":110,"column":77}}],"line":110},"9":{"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":{},"end":{}}],"line":111},"10":{"loc":{"start":{"line":193,"column":29},"end":{"line":193,"column":48}},"type":"binary-expr","locations":[{"start":{"line":193,"column":29},"end":{"line":193,"column":43}},{"start":{"line":193,"column":47},"end":{"line":193,"column":48}}],"line":193},"11":{"loc":{"start":{"line":195,"column":30},"end":{"line":195,"column":89}},"type":"binary-expr","locations":[{"start":{"line":195,"column":30},"end":{"line":195,"column":54}},{"start":{"line":195,"column":58},"end":{"line":195,"column":83}},{"start":{"line":195,"column":87},"end":{"line":195,"column":89}}],"line":195},"12":{"loc":{"start":{"line":199,"column":33},"end":{"line":199,"column":72}},"type":"binary-expr","locations":[{"start":{"line":199,"column":33},"end":{"line":199,"column":50}},{"start":{"line":199,"column":54},"end":{"line":199,"column":72}}],"line":199},"13":{"loc":{"start":{"line":200,"column":8},"end":{"line":207,"column":9}},"type":"if","locations":[{"start":{"line":200,"column":8},"end":{"line":207,"column":9}},{"start":{"line":204,"column":13},"end":{"line":207,"column":9}}],"line":200},"14":{"loc":{"start":{"line":200,"column":12},"end":{"line":200,"column":71}},"type":"binary-expr","locations":[{"start":{"line":200,"column":12},"end":{"line":200,"column":37}},{"start":{"line":200,"column":41},"end":{"line":200,"column":71}}],"line":200},"15":{"loc":{"start":{"line":227,"column":8},"end":{"line":229,"column":9}},"type":"if","locations":[{"start":{"line":227,"column":8},"end":{"line":229,"column":9}},{"start":{},"end":{}}],"line":227},"16":{"loc":{"start":{"line":233,"column":8},"end":{"line":235,"column":9}},"type":"if","locations":[{"start":{"line":233,"column":8},"end":{"line":235,"column":9}},{"start":{},"end":{}}],"line":233},"17":{"loc":{"start":{"line":236,"column":8},"end":{"line":238,"column":9}},"type":"if","locations":[{"start":{"line":236,"column":8},"end":{"line":238,"column":9}},{"start":{},"end":{}}],"line":236},"18":{"loc":{"start":{"line":239,"column":8},"end":{"line":241,"column":9}},"type":"if","locations":[{"start":{"line":239,"column":8},"end":{"line":241,"column":9}},{"start":{},"end":{}}],"line":239},"19":{"loc":{"start":{"line":245,"column":8},"end":{"line":247,"column":9}},"type":"if","locations":[{"start":{"line":245,"column":8},"end":{"line":247,"column":9}},{"start":{},"end":{}}],"line":245},"20":{"loc":{"start":{"line":275,"column":33},"end":{"line":277,"column":18}},"type":"cond-expr","locations":[{"start":{"line":276,"column":14},"end":{"line":276,"column":47}},{"start":{"line":277,"column":14},"end":{"line":277,"column":18}}],"line":275},"21":{"loc":{"start":{"line":295,"column":33},"end":{"line":297,"column":18}},"type":"cond-expr","locations":[{"start":{"line":296,"column":14},"end":{"line":296,"column":47}},{"start":{"line":297,"column":14},"end":{"line":297,"column":18}}],"line":295},"22":{"loc":{"start":{"line":316,"column":8},"end":{"line":318,"column":9}},"type":"if","locations":[{"start":{"line":316,"column":8},"end":{"line":318,"column":9}},{"start":{},"end":{}}],"line":316},"23":{"loc":{"start":{"line":333,"column":8},"end":{"line":340,"column":9}},"type":"switch","locations":[{"start":{"line":334,"column":12},"end":{"line":335,"column":57}},{"start":{"line":336,"column":12},"end":{"line":337,"column":56}},{"start":{"line":338,"column":12},"end":{"line":339,"column":69}}],"line":333},"24":{"loc":{"start":{"line":348,"column":8},"end":{"line":350,"column":9}},"type":"if","locations":[{"start":{"line":348,"column":8},"end":{"line":350,"column":9}},{"start":{},"end":{}}],"line":348},"25":{"loc":{"start":{"line":352,"column":8},"end":{"line":365,"column":9}},"type":"if","locations":[{"start":{"line":352,"column":8},"end":{"line":365,"column":9}},{"start":{"line":356,"column":13},"end":{"line":365,"column":9}}],"line":352},"26":{"loc":{"start":{"line":356,"column":13},"end":{"line":365,"column":9}},"type":"if","locations":[{"start":{"line":356,"column":13},"end":{"line":365,"column":9}},{"start":{"line":360,"column":13},"end":{"line":365,"column":9}}],"line":356},"27":{"loc":{"start":{"line":360,"column":13},"end":{"line":365,"column":9}},"type":"if","locations":[{"start":{"line":360,"column":13},"end":{"line":365,"column":9}},{"start":{"line":363,"column":13},"end":{"line":365,"column":9}}],"line":360},"28":{"loc":{"start":{"line":371,"column":8},"end":{"line":376,"column":9}},"type":"if","locations":[{"start":{"line":371,"column":8},"end":{"line":376,"column":9}},{"start":{"line":374,"column":13},"end":{"line":376,"column":9}}],"line":371},"29":{"loc":{"start":{"line":374,"column":13},"end":{"line":376,"column":9}},"type":"if","locations":[{"start":{"line":374,"column":13},"end":{"line":376,"column":9}},{"start":{},"end":{}}],"line":374}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":25,"7":10,"8":10,"9":10,"10":10,"11":10,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":15,"21":15,"22":15,"23":15,"24":15,"25":15,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":5,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":41,"43":41,"44":41,"45":41,"46":41,"47":1,"48":1,"49":80,"50":7,"51":7,"52":7,"53":0,"54":7,"55":7,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":0,"63":9,"64":9,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":55,"73":21,"74":21,"75":21,"76":1,"77":1,"78":80,"79":80,"80":34,"81":34,"82":34,"83":34,"84":156,"85":34,"86":34,"87":10,"88":24,"89":34,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":17,"116":77,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":132,"128":132,"129":132,"130":132,"131":616,"132":132,"133":132,"134":132,"135":46,"136":46,"137":46,"138":46,"139":46,"140":46,"141":212,"142":46,"143":46,"144":15,"145":46,"146":1,"147":1,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":41,"155":0,"156":41,"157":0,"158":41,"159":7,"160":34,"161":34,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":1,"169":0,"170":1},"f":{"0":25,"1":10,"2":0,"3":15,"4":0,"5":5,"6":0,"7":41,"8":80,"9":7,"10":1,"11":0,"12":9,"13":9,"14":1,"15":55,"16":21,"17":80,"18":34,"19":156,"20":0,"21":0,"22":0,"23":0,"24":0,"25":17,"26":77,"27":0,"28":132,"29":46,"30":0,"31":41,"32":0,"33":0},"b":{"0":[10,0,0],"1":[10,0,0],"2":[10,10,10],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,41],"8":[7,7],"9":[0,7],"10":[34,0],"11":[34,0,0],"12":[34,24],"13":[10,24],"14":[34,34],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[41,91],"22":[15,31],"23":[0,0,0],"24":[0,41],"25":[0,41],"26":[7,34],"27":[34,0],"28":[0,0],"29":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfo.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleInfo.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  OracleAnnouncement,\n  OracleAnnouncementJSON,\n} from './OracleAnnouncement';\n\n/**\n * OracleParams describe allowed differences between oracles in\n * numerical outcome contracts, as per rust-dlc specification.\n */\nexport class OracleParams implements IDlcMessage {\n  public static type = MessageType.OracleParamsV0;\n\n  /**\n   * Creates an OracleParams from JSON data\n   * @param json JSON object representing oracle params\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OracleParams {\n    const instance = new OracleParams();\n    instance.maxErrorExp = json.maxErrorExp || json.max_error_exp || 0;\n    instance.minFailExp = json.minFailExp || json.min_fail_exp || 0;\n    instance.maximizeCoverage =\n      json.maximizeCoverage || json.maximize_coverage || false;\n    return instance;\n  }\n\n  /**\n   * Deserializes oracle_params_v0 message\n   */\n  public static deserialize(buf: Buffer): OracleParams {\n    const instance = new OracleParams();\n    const reader = new BufferReader(buf);\n\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize();\n    instance.maxErrorExp = reader.readUInt16BE();\n    instance.minFailExp = reader.readUInt16BE();\n    instance.maximizeCoverage = reader.readUInt8() === 1;\n\n    return instance;\n  }\n\n  /**\n   * Deserializes oracle params body without TLV wrapper (for optional deserialization)\n   */\n  public static deserializeBody(buf: Buffer): OracleParams {\n    const instance = new OracleParams();\n    const reader = new BufferReader(buf);\n\n    // No type/length to read - just the body content\n    instance.maxErrorExp = reader.readUInt16BE();\n    instance.minFailExp = reader.readUInt16BE();\n    instance.maximizeCoverage = reader.readUInt8() === 1;\n\n    return instance;\n  }\n\n  public type = OracleParams.type;\n  public length: bigint;\n\n  /** The maximum allowed difference between oracle expressed as a power of 2. */\n  public maxErrorExp: number;\n\n  /** The minimum allowed difference that should be supported by the contract expressed as a power of 2. */\n  public minFailExp: number;\n\n  /** Whether to maximize coverage of the interval between maxErrorExp and minFailExp. */\n  public maximizeCoverage: boolean;\n\n  public validate(): void {\n    if (this.maxErrorExp < 0) {\n      throw new Error('maxErrorExp must be greater than or equal to 0');\n    }\n    if (this.minFailExp < 0) {\n      throw new Error('minFailExp must be greater than or equal to 0');\n    }\n    if (this.maxErrorExp >= this.minFailExp) {\n      throw new Error('maxErrorExp must be less than minFailExp');\n    }\n  }\n\n  public toJSON(): OracleParamsJSON {\n    return {\n      maxErrorExp: this.maxErrorExp,\n      minFailExp: this.minFailExp,\n      maximizeCoverage: this.maximizeCoverage,\n    };\n  }\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.maxErrorExp);\n    dataWriter.writeUInt16BE(this.minFailExp);\n    dataWriter.writeUInt8(this.maximizeCoverage ? 1 : 0);\n\n    writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n\n  /**\n   * Serializes the oracle params body without TLV wrapper (for optional serialization)\n   */\n  public serializeBody(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.maxErrorExp);\n    writer.writeUInt16BE(this.minFailExp);\n    writer.writeUInt8(this.maximizeCoverage ? 1 : 0);\n    return writer.toBuffer();\n  }\n}\n\n/**\n * SingleOracleInfo contains information about a single oracle.\n */\nexport class SingleOracleInfo implements IDlcMessage {\n  public static type = MessageType.SingleOracleInfo;\n\n  /**\n   * Creates a SingleOracleInfo from JSON data\n   * @param json JSON object representing single oracle info\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): SingleOracleInfo {\n    const instance = new SingleOracleInfo();\n\n    const announcementData = json.announcement || json.oracleAnnouncement;\n    if (!announcementData) {\n      throw new Error(\n        'announcement or oracleAnnouncement is required for single oracle info',\n      );\n    }\n\n    // Parse announcement using proper fromJSON method\n    instance.announcement = OracleAnnouncement.fromJSON(announcementData);\n\n    return instance;\n  }\n\n  /**\n   * Deserializes single oracle info\n   */\n  public static deserialize(buf: Buffer): SingleOracleInfo {\n    const instance = new SingleOracleInfo();\n    const reader = new BufferReader(buf);\n\n    // Read the type and length that serialize() writes\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize(); // read length\n\n    // Read the announcement data\n    instance.announcement = OracleAnnouncement.deserialize(\n      reader.readBytes(Number(instance.length)),\n    );\n\n    return instance;\n  }\n\n  public type = SingleOracleInfo.type;\n  public length: bigint;\n\n  /** The oracle announcement from the oracle. */\n  public announcement: OracleAnnouncement;\n\n  /**\n   * Returns the closest maturity date amongst all events\n   */\n  public getClosestMaturityDate(): number {\n    return this.announcement.oracleEvent.eventMaturityEpoch;\n  }\n\n  public validate(): void {\n    this.announcement.validate();\n  }\n\n  public toJSON(): SingleOracleInfoJSON {\n    // Return enum variant format for Rust compatibility\n    return {\n      single: {\n        oracleAnnouncement: this.announcement.toJSON(),\n      },\n    };\n  }\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  /**\n   * Serializes the body without TLV wrapper (for embedding in ContractInfo)\n   * This matches rust-dlc behavior where OracleInfo.write() doesn't add type_id\n   */\n  public serializeBody(): Buffer {\n    return this.announcement.serialize();\n  }\n\n  /**\n   * Deserializes the body without TLV wrapper (for embedding in ContractInfo)\n   * This matches rust-dlc behavior where OracleInfo is read without type_id\n   */\n  public static deserializeBody(buf: Buffer): SingleOracleInfo {\n    const instance = new SingleOracleInfo();\n    // No type/length to read - just the announcement data directly\n    instance.announcement = OracleAnnouncement.deserialize(buf);\n    return instance;\n  }\n}\n\n/**\n * MultiOracleInfo contains information about multiple oracles used in multi-oracle based contracts.\n */\nexport class MultiOracleInfo implements IDlcMessage {\n  public static type = MessageType.MultiOracleInfo;\n\n  /**\n   * Creates a MultiOracleInfo from JSON data\n   * @param json JSON object representing multi oracle info\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): MultiOracleInfo {\n    const instance = new MultiOracleInfo();\n\n    instance.threshold = json.threshold || 1;\n\n    // Parse oracle announcements using proper fromJSON method\n    const announcements =\n      json.oracleAnnouncements || json.oracle_announcements || [];\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    instance.announcements = announcements.map((announcementJson: any) =>\n      OracleAnnouncement.fromJSON(announcementJson),\n    );\n\n    // Parse oracle params if present (null means explicitly absent)\n    const oracleParamsData = json.oracleParams || json.oracle_params;\n    if (oracleParamsData !== null && oracleParamsData !== undefined) {\n      // Create OracleParams from JSON data using the fromJSON method\n      instance.oracleParams = OracleParams.fromJSON(oracleParamsData);\n    } else {\n      // Explicitly null/undefined - will serialize as 00 (not present)\n      instance.oracleParams = undefined;\n    }\n\n    return instance;\n  }\n\n  /**\n   * Deserializes multi oracle info\n   */\n  public static deserialize(buf: Buffer): MultiOracleInfo {\n    const instance = new MultiOracleInfo();\n    const reader = new BufferReader(buf);\n\n    // Read the type and length that serialize() writes\n    reader.readBigSize(); // read type\n    instance.length = reader.readBigSize(); // read length\n\n    // In rust-dlc format, MultiOracleInfo body is: threshold + announcements + optional oracle params\n    instance.threshold = reader.readUInt16BE();\n\n    const numAnnouncements = Number(reader.readBigSize()); // Changed from readUInt16BE to readBigSize to match rust-dlc vec_cb\n    for (let i = 0; i < numAnnouncements; i++) {\n      instance.announcements.push(\n        OracleAnnouncement.deserialize(getTlv(reader)),\n      );\n    }\n\n    // Optional oracle params using Optional sub-type format\n    const oracleParamsData = reader.readOptional();\n    if (oracleParamsData) {\n      instance.oracleParams = OracleParams.deserializeBody(oracleParamsData);\n    }\n\n    return instance;\n  }\n\n  public type = MultiOracleInfo.type;\n  public length: bigint;\n\n  /** The threshold to be used for the contract (e.g. 2 of 3). */\n  public threshold: number;\n\n  /** The set of oracle announcements. */\n  public announcements: OracleAnnouncement[] = [];\n\n  /** The parameters to be used when allowing differences between oracle outcomes in numerical outcome contracts. */\n  public oracleParams?: OracleParams;\n\n  public validate(): void {\n    if (this.threshold <= 0) {\n      throw new Error('threshold must be greater than 0');\n    }\n    if (this.threshold > this.announcements.length) {\n      throw new Error(\n        'threshold cannot be greater than number of announcements',\n      );\n    }\n    if (this.announcements.length === 0) {\n      throw new Error('must have at least one announcement');\n    }\n\n    // Validate all announcements\n    this.announcements.forEach((announcement) => announcement.validate());\n\n    // Validate oracle params if present\n    if (this.oracleParams) {\n      this.oracleParams.validate();\n    }\n  }\n\n  /**\n   * Returns the closest maturity date amongst all events\n   */\n  public getClosestMaturityDate(): number {\n    return Math.min(\n      ...this.announcements.map((a) => a.oracleEvent.eventMaturityEpoch),\n    );\n  }\n\n  public toJSON(): MultiOracleInfoJSON {\n    // Return enum variant format for Rust compatibility\n    return {\n      multi: {\n        threshold: this.threshold,\n        oracleAnnouncements: this.announcements.map((a) => a.toJSON()),\n        oracleParams: this.oracleParams?.toJSON(),\n      },\n    };\n  }\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.threshold);\n    dataWriter.writeBigSize(this.announcements.length); // Changed from writeUInt16BE to writeBigSize to match rust-dlc vec_cb\n\n    for (const announcement of this.announcements) {\n      dataWriter.writeBytes(announcement.serialize());\n    }\n\n    // Use Optional serialization for oracle params (body content only, not TLV wrapped)\n    const oracleParamsData = this.oracleParams\n      ? this.oracleParams.serializeBody()\n      : null;\n    dataWriter.writeOptional(oracleParamsData);\n\n    // writer.writeBigSize(dataWriter.size);\n    writer.writeBytes(dataWriter.toBuffer());\n\n    return writer.toBuffer();\n  }\n\n  /**\n   * Serializes the body without TLV wrapper (for embedding in ContractInfo)\n   * This matches rust-dlc behavior where OracleInfo.write() doesn't add type_id\n   */\n  public serializeBody(): Buffer {\n    const writer = new BufferWriter();\n    writer.writeUInt16BE(this.threshold);\n    writer.writeBigSize(this.announcements.length); // Changed from writeUInt16BE to writeBigSize to match rust-dlc vec_cb\n\n    for (const announcement of this.announcements) {\n      writer.writeBytes(announcement.serialize());\n    }\n\n    // Use Optional serialization for oracle params (body content only, not TLV wrapped)\n    const oracleParamsData = this.oracleParams\n      ? this.oracleParams.serializeBody()\n      : null;\n    writer.writeOptional(oracleParamsData);\n\n    return writer.toBuffer();\n  }\n\n  /**\n   * Deserializes the body without TLV wrapper (for embedding in ContractInfo)\n   * This matches rust-dlc behavior where OracleInfo is read without type_id\n   */\n  public static deserializeBody(buf: Buffer): MultiOracleInfo {\n    const instance = new MultiOracleInfo();\n    const reader = new BufferReader(buf);\n\n    // No type/length to read - directly read the multi-oracle body\n    instance.threshold = reader.readUInt16BE();\n\n    const numAnnouncements = Number(reader.readBigSize()); // BigSize for announcements count\n    for (let i = 0; i < numAnnouncements; i++) {\n      instance.announcements.push(\n        OracleAnnouncement.deserialize(getTlv(reader)),\n      );\n    }\n\n    // Optional oracle params using Optional sub-type format\n    const oracleParamsData = reader.readOptional();\n    if (oracleParamsData) {\n      instance.oracleParams = OracleParams.deserializeBody(oracleParamsData);\n    }\n\n    return instance;\n  }\n}\n\n/**\n * OracleInfo contains information about the oracles to be used in\n * executing a DLC. Updated to support both single and multi-oracle\n * patterns as per rust-dlc specification.\n */\nexport abstract class OracleInfo implements IDlcMessage {\n  public static deserialize(buf: Buffer): SingleOracleInfo | MultiOracleInfo {\n    const reader = new BufferReader(buf);\n    const type = Number(reader.readBigSize());\n\n    switch (type) {\n      case MessageType.SingleOracleInfo:\n        return SingleOracleInfo.deserialize(buf);\n      case MessageType.MultiOracleInfo:\n        return MultiOracleInfo.deserialize(buf);\n      default:\n        throw new Error(`Unknown oracle info type: ${type}`);\n    }\n  }\n\n  /**\n   * Creates an OracleInfo from JSON data (e.g., from test vectors)\n   * @param json JSON object representing oracle info\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OracleInfo {\n    if (!json) {\n      throw new Error('oracleInfo is required');\n    }\n\n    // Handle direct single oracle (legacy format)\n    if (json.announcement) {\n      return SingleOracleInfo.fromJSON(json);\n    }\n    // Handle wrapped single oracle\n    else if (json.single) {\n      return SingleOracleInfo.fromJSON(json.single);\n    }\n    // Handle multi oracle\n    else if (json.multi) {\n      return MultiOracleInfo.fromJSON(json.multi);\n    } else {\n      throw new Error(\n        'oracleInfo must have either announcement, single, or multi',\n      );\n    }\n  }\n\n  public abstract type: number;\n  public abstract validate(): void;\n  public abstract toJSON(): SingleOracleInfoJSON | MultiOracleInfoJSON;\n  public abstract serialize(): Buffer;\n  public abstract serializeBody(): Buffer;\n\n  /**\n   * Returns the closest maturity date amongst all events\n   */\n  public getClosestMaturityDate(): number {\n    if (this instanceof SingleOracleInfo) {\n      return this.announcement.oracleEvent.eventMaturityEpoch;\n    } else if (this instanceof MultiOracleInfo) {\n      return this.getClosestMaturityDate();\n    }\n    throw new Error('Unknown oracle info type');\n  }\n}\n\n// For backward compatibility, keep the V0 class as alias to SingleOracleInfo\nexport class OracleInfoV0 extends SingleOracleInfo {\n  /**\n   * Creates an OracleInfoV0 from JSON data (alias for SingleOracleInfo.fromJSON)\n   * @param json JSON object representing oracle info\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n  public static fromJSON(json: any): OracleInfoV0 {\n    return SingleOracleInfo.fromJSON(json) as OracleInfoV0;\n  }\n}\n\n// JSON interfaces\nexport interface OracleParamsJSON {\n  type?: number; // Made optional for rust-dlc compatibility\n  maxErrorExp: number;\n  minFailExp: number;\n  maximizeCoverage: boolean;\n}\n\n// Rust-dlc enum variant format for SingleOracleInfo\nexport interface SingleOracleInfoJSON {\n  single: {\n    oracleAnnouncement: OracleAnnouncementJSON;\n  };\n}\n\n// Rust-dlc enum variant format for MultiOracleInfo\nexport interface MultiOracleInfoJSON {\n  multi: {\n    threshold: number;\n    oracleAnnouncements: OracleAnnouncementJSON[];\n    oracleParams?: OracleParamsJSON;\n  };\n}\n\n// Backward compatibility type alias\nexport type OracleInfoV0JSON = SingleOracleInfoJSON;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fcb23d68a00803e00e3c76e6aba40ddece76407b","contentHash":"73a8eba72faeb8b0942aafd4aad8a30bff8053355a65f85170d225e771dbbd7c"},"/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":15,"column":8},"end":{"line":15,"column":35}},"5":{"start":{"line":16,"column":8},"end":{"line":16,"column":28}},"6":{"start":{"line":23,"column":25},"end":{"line":23,"column":40}},"7":{"start":{"line":24,"column":23},"end":{"line":24,"column":52}},"8":{"start":{"line":25,"column":8},"end":{"line":25,"column":30}},"9":{"start":{"line":26,"column":8},"end":{"line":26,"column":51}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":49}},"11":{"start":{"line":28,"column":8},"end":{"line":28,"column":24}},"12":{"start":{"line":34,"column":23},"end":{"line":34,"column":49}},"13":{"start":{"line":35,"column":8},"end":{"line":35,"column":40}},"14":{"start":{"line":36,"column":8},"end":{"line":36,"column":43}},"15":{"start":{"line":37,"column":8},"end":{"line":37,"column":43}},"16":{"start":{"line":38,"column":8},"end":{"line":38,"column":33}},"17":{"start":{"line":41,"column":0},"end":{"line":41,"column":30}},"18":{"start":{"line":42,"column":0},"end":{"line":42,"column":53}},"19":{"start":{"line":44,"column":0},"end":{"line":48,"column":65}},"20":{"start":{"line":45,"column":4},"end":{"line":45,"column":54}},"21":{"start":{"line":46,"column":4},"end":{"line":46,"column":52}},"22":{"start":{"line":47,"column":4},"end":{"line":47,"column":50}},"23":{"start":{"line":50,"column":0},"end":{"line":50,"column":32}}},"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":29,"column":5}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":16},"end":{"line":39,"column":5}},"line":33},"3":{"name":"(anonymous_3)","decl":{"start":{"line":44,"column":1},"end":{"line":44,"column":2}},"loc":{"start":{"line":44,"column":23},"end":{"line":48,"column":1}},"line":44}},"branchMap":{"0":{"loc":{"start":{"line":48,"column":16},"end":{"line":48,"column":63}},"type":"binary-expr","locations":[{"start":{"line":48,"column":16},"end":{"line":48,"column":34}},{"start":{"line":48,"column":39},"end":{"line":48,"column":62}}],"line":48}},"s":{"0":1,"1":1,"2":1,"3":1,"4":2,"5":2,"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},"f":{"0":2,"1":1,"2":1,"3":1},"b":{"0":[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;;;GAGG;AACH,MAAa,SAAS;IAAtB;QAkBE;;WAEG;QACI,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAItB,eAAU,GAAe,CAAC,CAAC;IAapC,CAAC;IAnCC;;;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;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,8BAsCC;AArCe,cAAI,GAAG,yBAAW,CAAC,SAAS,CAAC;AAuC7C,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iDAAW,CAAA;IACX,+CAAU,CAAA;IACV,6CAAS,CAAA;AACX,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAED,+BAA+B;AAClB,QAAA,WAAW,GAAG,SAAS,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * DlcCancel message contains information about a node's desire to cancel\n * a DLC contract negotiation.\n */\nexport class DlcCancel implements IDlcMessage {\n  public static type = MessageType.DlcCancel;\n\n  /**\n   * Deserializes a dlc_cancel message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): DlcCancel {\n    const instance = new DlcCancel();\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 dlc_cancel message. dlc_cancel = 52172\n   */\n  public type = DlcCancel.type;\n\n  public contractId: Buffer;\n\n  public cancelType: CancelType = 0;\n\n  /**\n   * Serializes the dlc_cancel 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\n// Backward compatibility alias\nexport const DlcCancelV0 = DlcCancel;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2af77da8e3df358a9918810edfc1f4cc087d181b","contentHash":"e5a25e48fd24d8122a50c0f44d1bb271f9332e9d1cfc1d3e1bf114da74ce2305"},"/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":43}},"28":{"start":{"line":59,"column":26},"end":{"line":59,"column":45}},"29":{"start":{"line":60,"column":23},"end":{"line":60,"column":48}},"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":";;;AAAA,+CAAuC;AAEvC,0BAA0D;AAE1D;;;GAGG;AACH,MAAa,gBAAgB;IAC3B;;;OAGG;IACI,MAAM,CAAC,QAAQ,CAAC,IAA2B;QAChD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAExC,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAC1E,QAAQ,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC5E,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAClE,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACpE,QAAQ,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChE,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClE,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,QAAQ,CAAC,MAAM,GAAG,YAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAEtC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,eAAe,CAC3B,QAAkB,EAClB,SAAoB,EACpB,MAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAExC,QAAQ,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC;QACrD,QAAQ,CAAC,mBAAmB,GAAG,SAAS,CAAC,aAAa,CAAC;QACvD,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC7C,QAAQ,CAAC,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC;QAC/C,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,cAAc,CAAC;QACvD,QAAQ,CAAC,oBAAoB,GAAG,SAAS,CAAC,cAAc,CAAC;QACzD,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC9C,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAExC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAoBD;;OAEG;IACI,MAAM;QACX,OAAO;YACL,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC3D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7D,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrD,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACrD,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;YACvD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC/C,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAEM,aAAa;QAKlB,MAAM,QAAQ,GAAG,IAAI,YAAQ,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,aAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,mBAAe,EAAE,CAAC;QAErC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACjD,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACnD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACzC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACnD,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACrD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAEpC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF;AAjGD,4CAiGC","sourcesContent":["import { Tx } from '@node-dlc/bitcoin';\n\nimport { DlcAccept, DlcOffer, DlcTransactions } 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: DlcOffer,\n    dlcAccept: DlcAccept,\n    dlcTxs: DlcTransactions,\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: DlcOffer;\n    dlcAccept: DlcAccept;\n    dlcTxs: DlcTransactions;\n  } {\n    const dlcOffer = new DlcOffer();\n    const dlcAccept = new DlcAccept();\n    const dlcTxs = new DlcTransactions();\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":"c879d7b5e73ad64eeb83a0148b3d5c35715efb8c","contentHash":"5f5930f85a2104438346f9d1a0348bca95a1a3d540f07ebc5ecc7fe67d016384"},"/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":14,"column":8},"end":{"line":14,"column":32}},"5":{"start":{"line":15,"column":8},"end":{"line":15,"column":22}},"6":{"start":{"line":18,"column":23},"end":{"line":18,"column":52}},"7":{"start":{"line":19,"column":21},"end":{"line":19,"column":50}},"8":{"start":{"line":20,"column":8},"end":{"line":25,"column":9}},"9":{"start":{"line":22,"column":16},"end":{"line":22,"column":49}},"10":{"start":{"line":24,"column":16},"end":{"line":24,"column":73}},"11":{"start":{"line":32,"column":25},"end":{"line":32,"column":37}},"12":{"start":{"line":33,"column":23},"end":{"line":33,"column":52}},"13":{"start":{"line":34,"column":8},"end":{"line":34,"column":30}},"14":{"start":{"line":35,"column":23},"end":{"line":35,"column":43}},"15":{"start":{"line":36,"column":8},"end":{"line":38,"column":9}},"16":{"start":{"line":36,"column":21},"end":{"line":36,"column":22}},"17":{"start":{"line":37,"column":12},"end":{"line":37,"column":52}},"18":{"start":{"line":39,"column":8},"end":{"line":39,"column":24}},"19":{"start":{"line":45,"column":23},"end":{"line":45,"column":49}},"20":{"start":{"line":46,"column":8},"end":{"line":46,"column":40}},"21":{"start":{"line":47,"column":8},"end":{"line":47,"column":45}},"22":{"start":{"line":48,"column":8},"end":{"line":50,"column":9}},"23":{"start":{"line":49,"column":12},"end":{"line":49,"column":34}},"24":{"start":{"line":51,"column":8},"end":{"line":51,"column":33}},"25":{"start":{"line":54,"column":0},"end":{"line":54,"column":24}},"26":{"start":{"line":55,"column":0},"end":{"line":55,"column":47}},"27":{"start":{"line":57,"column":0},"end":{"line":57,"column":26}}},"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":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":28},"end":{"line":26,"column":5}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":30},"end":{"line":40,"column":5}},"line":31},"3":{"name":"(anonymous_3)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":16},"end":{"line":52,"column":5}},"line":44}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":8},"end":{"line":25,"column":9}},"type":"switch","locations":[{"start":{"line":21,"column":12},"end":{"line":22,"column":49}},{"start":{"line":23,"column":12},"end":{"line":24,"column":73}}],"line":20}},"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":1,"26":1,"27":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;;GAEG;AACH,MAAa,MAAM;IAAnB;QAkCE;;WAEG;QACI,SAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEnB,QAAG,GAAa,EAAE,CAAC;IAe5B,CAAC;IAnDQ,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,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACnC;gBACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;SAC5D;IACH,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,aAAa,CAAC,GAAW;QACtC,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;QAC9B,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;;AArDH,wBAsDC;AArDe,WAAI,GAAG,yBAAW,CAAC,MAAM,CAAC;AAuD1C,mDAAmD;AACtC,QAAA,QAAQ,GAAG,MAAM,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * DlcIds message contains list of buffers\n */\nexport class DlcIds implements IDlcMessage {\n  public static type = MessageType.DlcIds;\n\n  public static deserialize(buf: Buffer): DlcIds {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcIdsV0:\n        return DlcIds.deserializeV0(buf);\n      default:\n        throw new Error(`DLC IDs message type must be DlcIdsV0`);\n    }\n  }\n\n  /**\n   * Deserializes an dlc_ids message\n   * @param buf\n   */\n  private static deserializeV0(buf: Buffer): DlcIds {\n    const instance = new DlcIds();\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 message\n   */\n  public type = DlcIds.type;\n\n  public ids: Buffer[] = [];\n\n  /**\n   * Serializes the dlc_ids 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\n// Legacy support - keeping old class name as alias\nexport const DlcIdsV0 = DlcIds;\nexport type DlcIdsV0 = DlcIds;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"68968626f0a6bcd3d9313ab375b6c75caf1af1d7","contentHash":"7c71c70efedfd8ce26634647823d85ce45d87702643373e909250bbf7d7c61f0"},"/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":14,"column":8},"end":{"line":14,"column":33}},"5":{"start":{"line":17,"column":23},"end":{"line":17,"column":52}},"6":{"start":{"line":18,"column":21},"end":{"line":18,"column":50}},"7":{"start":{"line":19,"column":8},"end":{"line":24,"column":9}},"8":{"start":{"line":21,"column":16},"end":{"line":21,"column":50}},"9":{"start":{"line":23,"column":16},"end":{"line":23,"column":75}},"10":{"start":{"line":31,"column":25},"end":{"line":31,"column":38}},"11":{"start":{"line":32,"column":23},"end":{"line":32,"column":52}},"12":{"start":{"line":33,"column":8},"end":{"line":33,"column":30}},"13":{"start":{"line":34,"column":8},"end":{"line":34,"column":54}},"14":{"start":{"line":35,"column":8},"end":{"line":35,"column":55}},"15":{"start":{"line":36,"column":8},"end":{"line":36,"column":53}},"16":{"start":{"line":37,"column":8},"end":{"line":37,"column":55}},"17":{"start":{"line":38,"column":8},"end":{"line":38,"column":54}},"18":{"start":{"line":39,"column":8},"end":{"line":39,"column":60}},"19":{"start":{"line":40,"column":8},"end":{"line":40,"column":24}},"20":{"start":{"line":46,"column":23},"end":{"line":46,"column":49}},"21":{"start":{"line":47,"column":8},"end":{"line":47,"column":40}},"22":{"start":{"line":48,"column":8},"end":{"line":48,"column":48}},"23":{"start":{"line":49,"column":8},"end":{"line":49,"column":49}},"24":{"start":{"line":50,"column":8},"end":{"line":50,"column":47}},"25":{"start":{"line":51,"column":8},"end":{"line":51,"column":49}},"26":{"start":{"line":52,"column":8},"end":{"line":52,"column":48}},"27":{"start":{"line":53,"column":8},"end":{"line":53,"column":54}},"28":{"start":{"line":54,"column":8},"end":{"line":54,"column":33}},"29":{"start":{"line":57,"column":0},"end":{"line":57,"column":26}},"30":{"start":{"line":58,"column":0},"end":{"line":58,"column":49}},"31":{"start":{"line":60,"column":0},"end":{"line":60,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":18},"end":{"line":15,"column":5}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":28},"end":{"line":25,"column":5}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":30},"end":{"line":41,"column":5}},"line":30},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":4},"end":{"line":45,"column":5}},"loc":{"start":{"line":45,"column":16},"end":{"line":55,"column":5}},"line":45}},"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":50}},{"start":{"line":22,"column":12},"end":{"line":23,"column":75}}],"line":19}},"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":1,"30":1,"31":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;;GAEG;AACH,MAAa,OAAO;IAApB;QAoCE;;WAEG;QACI,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7B,CAAC;IAjEQ,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,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACpC;gBACE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC9D;IACH,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,aAAa,CAAC,GAAW;QACtC,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,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;;AAnEH,0BAoEC;AAnEe,YAAI,GAAG,yBAAW,CAAC,OAAO,CAAC;AAqE3C,mDAAmD;AACtC,QAAA,SAAS,GAAG,OAAO,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\n/**\n * DlcInfo message contains list of buffers\n */\nexport class DlcInfo implements IDlcMessage {\n  public static type = MessageType.DlcInfo;\n\n  public static deserialize(buf: Buffer): DlcInfo {\n    const reader = new BufferReader(buf);\n\n    const type = Number(reader.readUInt16BE());\n\n    switch (type) {\n      case MessageType.DlcInfoV0:\n        return DlcInfo.deserializeV0(buf);\n      default:\n        throw new Error(`DLC Info message type must be DlcInfoV0`);\n    }\n  }\n\n  /**\n   * Deserializes an dlc_info message\n   * @param buf\n   */\n  private static deserializeV0(buf: Buffer): DlcInfo {\n    const instance = new DlcInfo();\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 message\n   */\n  public type = DlcInfo.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 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\n// Legacy support - keeping old class name as alias\nexport const DlcInfoV0 = DlcInfo;\nexport type DlcInfoV0 = DlcInfo;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5ae16caab2fd4e3c77eac8fa5dfbe4ee22169d9e","contentHash":"e80de05498064eaf81c6558c769e5a3855825fc4d2a596b7b783195c6f1079de"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainer.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainer.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":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":28},"end":{"line":8,"column":58}},"7":{"start":{"line":18,"column":8},"end":{"line":18,"column":46}},"8":{"start":{"line":25,"column":25},"end":{"line":25,"column":51}},"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":114}},"19":{"start":{"line":36,"column":8},"end":{"line":36,"column":111}},"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":52}},"40":{"start":{"line":66,"column":0},"end":{"line":66,"column":75}}},"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":3,"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":2,"26":2,"27":2,"28":2,"29":2,"30":2,"31":2,"32":2,"33":2,"34":2,"35":2,"36":2,"37":2,"38":2,"39":1,"40":1},"f":{"0":3,"1":1,"2":0,"3":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainer.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleEventContainer.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 { OracleAnnouncement } from './OracleAnnouncement';\nimport { OracleAttestation } from './OracleAttestation';\n\n/**\n * OracleEventContainer contains information about the oracles to be used in\n * executing a DLC.\n */\nexport class OracleEventContainer implements IDlcMessage {\n  public static type = MessageType.OracleEventContainer;\n\n  /**\n   * Deserializes an oracle_info_v0 message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleEventContainer {\n    const instance = new OracleEventContainer();\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 = OracleAnnouncement.deserialize(getTlv(reader));\n\n    instance.attestation = OracleAttestation.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 = OracleEventContainer.type;\n\n  public length: bigint;\n\n  public oracleName: string;\n\n  public uri: string;\n\n  public announcement: OracleAnnouncement;\n\n  public attestation: OracleAttestation;\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":"59ad252ba3a231a60771a17711d939aab6e26a60","contentHash":"6ca1c79f32871dd6ff7af1061734993f05adde7b65ae2d04944b260048815a5f"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleIdentifier.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleIdentifier.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":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":42}},"5":{"start":{"line":18,"column":25},"end":{"line":18,"column":47}},"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":44}},"26":{"start":{"line":57,"column":0},"end":{"line":57,"column":67}}},"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/OracleIdentifier.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/messaging/lib/messages/OracleIdentifier.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAE7D,gDAA6C;AAG7C,MAAa,gBAAgB;IAA7B;QAsBE;;WAEG;QACI,SAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;IAyCtC,CAAC;IA/DC;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,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,4CAkEC;AAjEe,qBAAI,GAAG,yBAAW,CAAC,gBAAgB,CAAC","sourcesContent":["import { BufferReader, BufferWriter } from '@node-dlc/bufio';\n\nimport { MessageType } from '../MessageType';\nimport { IDlcMessage } from './DlcMessage';\n\nexport class OracleIdentifier implements IDlcMessage {\n  public static type = MessageType.OracleIdentifier;\n\n  /**\n   * Deserializes an oracle_event message\n   * @param buf\n   */\n  public static deserialize(buf: Buffer): OracleIdentifier {\n    const instance = new OracleIdentifier();\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 = OracleIdentifier.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(): IOracleIdentifierJSON {\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 IOracleIdentifierJSON {\n  type: number;\n  oracleName: string;\n  oraclePubkey: string;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"00e009f9a74cc4e1b5a5900695693f19e489907c","contentHash":"ca4d424037066fb3b17616d3afc2e244a2b113f31e1d0214d163879344aaec5e"},"/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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"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":{},"end":{}}],"line":27}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1,"10":1,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":1,"18":1,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":1},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0]},"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":"4eabca5e5875aa6b46e92b0e72519de008e1c570","contentHash":"59e0e0b2faad9930b8be22caa4fe493ce86a2660d23f794307bbbbbda9486f92"}}