UNPKG

@node-dlc/core

Version:
1 lines 468 kB
{"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/core/lib/dlc/CETCalculator.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/core/lib/dlc/CETCalculator.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":273}},"4":{"start":{"line":7,"column":23},"end":{"line":7,"column":63}},"5":{"start":{"line":8,"column":22},"end":{"line":8,"column":53}},"6":{"start":{"line":10,"column":4},"end":{"line":10,"column":37}},"7":{"start":{"line":10,"column":29},"end":{"line":10,"column":35}},"8":{"start":{"line":12,"column":0},"end":{"line":12,"column":36}},"9":{"start":{"line":14,"column":4},"end":{"line":18,"column":5}},"10":{"start":{"line":14,"column":17},"end":{"line":14,"column":18}},"11":{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},"12":{"start":{"line":16,"column":12},"end":{"line":16,"column":33}},"13":{"start":{"line":19,"column":4},"end":{"line":19,"column":14}},"14":{"start":{"line":21,"column":0},"end":{"line":21,"column":30}},"15":{"start":{"line":23,"column":24},"end":{"line":23,"column":27}},"16":{"start":{"line":24,"column":19},"end":{"line":24,"column":21}},"17":{"start":{"line":25,"column":4},"end":{"line":29,"column":5}},"18":{"start":{"line":26,"column":8},"end":{"line":26,"column":58}},"19":{"start":{"line":27,"column":8},"end":{"line":27,"column":53}},"20":{"start":{"line":28,"column":8},"end":{"line":28,"column":20}},"21":{"start":{"line":30,"column":4},"end":{"line":30,"column":28}},"22":{"start":{"line":32,"column":0},"end":{"line":32,"column":30}},"23":{"start":{"line":34,"column":24},"end":{"line":34,"column":57}},"24":{"start":{"line":35,"column":22},"end":{"line":35,"column":53}},"25":{"start":{"line":36,"column":25},"end":{"line":36,"column":27}},"26":{"start":{"line":37,"column":4},"end":{"line":43,"column":5}},"27":{"start":{"line":37,"column":17},"end":{"line":37,"column":18}},"28":{"start":{"line":38,"column":8},"end":{"line":42,"column":18}},"29":{"start":{"line":39,"column":12},"end":{"line":39,"column":46}},"30":{"start":{"line":42,"column":12},"end":{"line":42,"column":18}},"31":{"start":{"line":44,"column":4},"end":{"line":48,"column":6}},"32":{"start":{"line":50,"column":0},"end":{"line":50,"column":40}},"33":{"start":{"line":52,"column":27},"end":{"line":52,"column":55}},"34":{"start":{"line":53,"column":26},"end":{"line":53,"column":84}},"35":{"start":{"line":53,"column":73},"end":{"line":53,"column":83}},"36":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"37":{"start":{"line":55,"column":8},"end":{"line":55,"column":21}},"38":{"start":{"line":57,"column":22},"end":{"line":67,"column":6}},"39":{"start":{"line":58,"column":26},"end":{"line":58,"column":56}},"40":{"start":{"line":60,"column":28},"end":{"line":60,"column":46}},"41":{"start":{"line":61,"column":8},"end":{"line":61,"column":58}},"42":{"start":{"line":62,"column":23},"end":{"line":62,"column":25}},"43":{"start":{"line":63,"column":8},"end":{"line":65,"column":9}},"44":{"start":{"line":63,"column":21},"end":{"line":63,"column":26}},"45":{"start":{"line":64,"column":12},"end":{"line":64,"column":57}},"46":{"start":{"line":66,"column":8},"end":{"line":66,"column":22}},"47":{"start":{"line":68,"column":4},"end":{"line":68,"column":68}},"48":{"start":{"line":68,"column":37},"end":{"line":68,"column":41}},"49":{"start":{"line":70,"column":0},"end":{"line":70,"column":40}},"50":{"start":{"line":72,"column":27},"end":{"line":72,"column":55}},"51":{"start":{"line":73,"column":25},"end":{"line":73,"column":90}},"52":{"start":{"line":73,"column":72},"end":{"line":73,"column":89}},"53":{"start":{"line":74,"column":4},"end":{"line":76,"column":5}},"54":{"start":{"line":75,"column":8},"end":{"line":75,"column":28}},"55":{"start":{"line":77,"column":21},"end":{"line":87,"column":6}},"56":{"start":{"line":78,"column":26},"end":{"line":78,"column":55}},"57":{"start":{"line":80,"column":28},"end":{"line":80,"column":46}},"58":{"start":{"line":81,"column":8},"end":{"line":81,"column":58}},"59":{"start":{"line":82,"column":23},"end":{"line":82,"column":25}},"60":{"start":{"line":83,"column":8},"end":{"line":85,"column":9}},"61":{"start":{"line":83,"column":21},"end":{"line":83,"column":26}},"62":{"start":{"line":84,"column":12},"end":{"line":84,"column":57}},"63":{"start":{"line":86,"column":8},"end":{"line":86,"column":22}},"64":{"start":{"line":88,"column":4},"end":{"line":88,"column":76}},"65":{"start":{"line":88,"column":59},"end":{"line":88,"column":63}},"66":{"start":{"line":90,"column":0},"end":{"line":90,"column":38}},"67":{"start":{"line":92,"column":19},"end":{"line":92,"column":21}},"68":{"start":{"line":93,"column":4},"end":{"line":95,"column":5}},"69":{"start":{"line":94,"column":8},"end":{"line":94,"column":39}},"70":{"start":{"line":96,"column":4},"end":{"line":96,"column":18}},"71":{"start":{"line":98,"column":0},"end":{"line":98,"column":42}},"72":{"start":{"line":100,"column":53},"end":{"line":100,"column":96}},"73":{"start":{"line":101,"column":4},"end":{"line":120,"column":5}},"74":{"start":{"line":102,"column":34},"end":{"line":102,"column":41}},"75":{"start":{"line":103,"column":35},"end":{"line":103,"column":49}},"76":{"start":{"line":105,"column":8},"end":{"line":105,"column":30}},"77":{"start":{"line":107,"column":9},"end":{"line":120,"column":5}},"78":{"start":{"line":108,"column":23},"end":{"line":108,"column":25}},"79":{"start":{"line":109,"column":8},"end":{"line":111,"column":9}},"80":{"start":{"line":109,"column":21},"end":{"line":109,"column":56}},"81":{"start":{"line":110,"column":12},"end":{"line":110,"column":46}},"82":{"start":{"line":112,"column":8},"end":{"line":112,"column":22}},"83":{"start":{"line":115,"column":22},"end":{"line":115,"column":55}},"84":{"start":{"line":116,"column":23},"end":{"line":116,"column":68}},"85":{"start":{"line":117,"column":21},"end":{"line":117,"column":51}},"86":{"start":{"line":118,"column":26},"end":{"line":118,"column":56}},"87":{"start":{"line":119,"column":8},"end":{"line":119,"column":61}},"88":{"start":{"line":119,"column":36},"end":{"line":119,"column":59}},"89":{"start":{"line":122,"column":0},"end":{"line":122,"column":54}},"90":{"start":{"line":147,"column":4},"end":{"line":149,"column":5}},"91":{"start":{"line":148,"column":8},"end":{"line":148,"column":69}},"92":{"start":{"line":150,"column":30},"end":{"line":150,"column":62}},"93":{"start":{"line":151,"column":34},"end":{"line":159,"column":5}},"94":{"start":{"line":152,"column":30},"end":{"line":152,"column":106}},"95":{"start":{"line":152,"column":72},"end":{"line":152,"column":105}},"96":{"start":{"line":153,"column":8},"end":{"line":158,"column":10}},"97":{"start":{"line":160,"column":18},"end":{"line":160,"column":90}},"98":{"start":{"line":160,"column":27},"end":{"line":160,"column":90}},"99":{"start":{"line":161,"column":30},"end":{"line":161,"column":84}},"100":{"start":{"line":162,"column":20},"end":{"line":162,"column":110}},"101":{"start":{"line":162,"column":29},"end":{"line":162,"column":110}},"102":{"start":{"line":163,"column":19},"end":{"line":163,"column":21}},"103":{"start":{"line":165,"column":4},"end":{"line":169,"column":7}},"104":{"start":{"line":171,"column":4},"end":{"line":185,"column":5}},"105":{"start":{"line":172,"column":8},"end":{"line":176,"column":11}},"106":{"start":{"line":178,"column":8},"end":{"line":182,"column":11}},"107":{"start":{"line":184,"column":8},"end":{"line":184,"column":49}},"108":{"start":{"line":186,"column":25},"end":{"line":186,"column":41}},"109":{"start":{"line":188,"column":4},"end":{"line":256,"column":5}},"110":{"start":{"line":189,"column":42},"end":{"line":189,"column":79}},"111":{"start":{"line":191,"column":41},"end":{"line":191,"column":98}},"112":{"start":{"line":193,"column":28},"end":{"line":193,"column":130}},"113":{"start":{"line":194,"column":39},"end":{"line":194,"column":53}},"114":{"start":{"line":195,"column":28},"end":{"line":197,"column":30}},"115":{"start":{"line":198,"column":8},"end":{"line":255,"column":9}},"116":{"start":{"line":199,"column":38},"end":{"line":201,"column":73}},"117":{"start":{"line":202,"column":44},"end":{"line":202,"column":90}},"118":{"start":{"line":203,"column":41},"end":{"line":203,"column":119}},"119":{"start":{"line":204,"column":40},"end":{"line":204,"column":87}},"120":{"start":{"line":205,"column":12},"end":{"line":210,"column":13}},"121":{"start":{"line":209,"column":16},"end":{"line":209,"column":74}},"122":{"start":{"line":211,"column":32},"end":{"line":211,"column":76}},"123":{"start":{"line":212,"column":12},"end":{"line":220,"column":13}},"124":{"start":{"line":213,"column":16},"end":{"line":217,"column":19}},"125":{"start":{"line":218,"column":16},"end":{"line":218,"column":58}},"126":{"start":{"line":219,"column":16},"end":{"line":219,"column":22}},"127":{"start":{"line":221,"column":12},"end":{"line":246,"column":13}},"128":{"start":{"line":226,"column":16},"end":{"line":243,"column":17}},"129":{"start":{"line":227,"column":20},"end":{"line":231,"column":23}},"130":{"start":{"line":234,"column":20},"end":{"line":242,"column":23}},"131":{"start":{"line":244,"column":16},"end":{"line":244,"column":36}},"132":{"start":{"line":245,"column":16},"end":{"line":245,"column":22}},"133":{"start":{"line":247,"column":12},"end":{"line":251,"column":15}},"134":{"start":{"line":252,"column":12},"end":{"line":252,"column":53}},"135":{"start":{"line":253,"column":12},"end":{"line":253,"column":46}},"136":{"start":{"line":254,"column":12},"end":{"line":254,"column":73}},"137":{"start":{"line":258,"column":4},"end":{"line":262,"column":7}},"138":{"start":{"line":264,"column":4},"end":{"line":264,"column":45}},"139":{"start":{"line":266,"column":0},"end":{"line":266,"column":42}},"140":{"start":{"line":267,"column":21},"end":{"line":280,"column":1}},"141":{"start":{"line":268,"column":4},"end":{"line":279,"column":11}},"142":{"start":{"line":269,"column":21},"end":{"line":269,"column":40}},"143":{"start":{"line":270,"column":8},"end":{"line":277,"column":9}},"144":{"start":{"line":271,"column":12},"end":{"line":276,"column":13}},"145":{"start":{"line":274,"column":16},"end":{"line":274,"column":45}},"146":{"start":{"line":275,"column":16},"end":{"line":275,"column":27}},"147":{"start":{"line":278,"column":8},"end":{"line":278,"column":31}},"148":{"start":{"line":281,"column":0},"end":{"line":281,"column":36}},"149":{"start":{"line":283,"column":23},"end":{"line":283,"column":70}},"150":{"start":{"line":284,"column":16},"end":{"line":286,"column":49}},"151":{"start":{"line":287,"column":26},"end":{"line":289,"column":27}},"152":{"start":{"line":290,"column":4},"end":{"line":290,"column":54}},"153":{"start":{"line":292,"column":0},"end":{"line":292,"column":34}}},"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":"zipWithIndex","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":21}},"loc":{"start":{"line":9,"column":27},"end":{"line":11,"column":1}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":19},"end":{"line":10,"column":20}},"loc":{"start":{"line":10,"column":29},"end":{"line":10,"column":35}},"line":10},"3":{"name":"dropUntil","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":18}},"loc":{"start":{"line":13,"column":32},"end":{"line":20,"column":1}},"line":13},"4":{"name":"decompose","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":18}},"loc":{"start":{"line":22,"column":41},"end":{"line":31,"column":1}},"line":22},"5":{"name":"separatePrefix","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":23}},"loc":{"start":{"line":33,"column":53},"end":{"line":49,"column":1}},"line":33},"6":{"name":"frontGroupings","decl":{"start":{"line":51,"column":9},"end":{"line":51,"column":23}},"loc":{"start":{"line":51,"column":38},"end":{"line":69,"column":1}},"line":51},"7":{"name":"(anonymous_7)","decl":{"start":{"line":53,"column":66},"end":{"line":53,"column":67}},"loc":{"start":{"line":53,"column":73},"end":{"line":53,"column":83}},"line":53},"8":{"name":"(anonymous_8)","decl":{"start":{"line":58,"column":16},"end":{"line":58,"column":17}},"loc":{"start":{"line":58,"column":26},"end":{"line":58,"column":56}},"line":58},"9":{"name":"(anonymous_9)","decl":{"start":{"line":59,"column":17},"end":{"line":59,"column":18}},"loc":{"start":{"line":59,"column":29},"end":{"line":67,"column":5}},"line":59},"10":{"name":"(anonymous_10)","decl":{"start":{"line":68,"column":30},"end":{"line":68,"column":31}},"loc":{"start":{"line":68,"column":37},"end":{"line":68,"column":41}},"line":68},"11":{"name":"backGroupings","decl":{"start":{"line":71,"column":9},"end":{"line":71,"column":22}},"loc":{"start":{"line":71,"column":37},"end":{"line":89,"column":1}},"line":71},"12":{"name":"(anonymous_12)","decl":{"start":{"line":73,"column":65},"end":{"line":73,"column":66}},"loc":{"start":{"line":73,"column":72},"end":{"line":73,"column":89}},"line":73},"13":{"name":"(anonymous_13)","decl":{"start":{"line":78,"column":16},"end":{"line":78,"column":17}},"loc":{"start":{"line":78,"column":26},"end":{"line":78,"column":55}},"line":78},"14":{"name":"(anonymous_14)","decl":{"start":{"line":79,"column":17},"end":{"line":79,"column":18}},"loc":{"start":{"line":79,"column":29},"end":{"line":87,"column":5}},"line":79},"15":{"name":"(anonymous_15)","decl":{"start":{"line":88,"column":52},"end":{"line":88,"column":53}},"loc":{"start":{"line":88,"column":59},"end":{"line":88,"column":63}},"line":88},"16":{"name":"middleGroupings","decl":{"start":{"line":91,"column":9},"end":{"line":91,"column":24}},"loc":{"start":{"line":91,"column":57},"end":{"line":97,"column":1}},"line":91},"17":{"name":"groupByIgnoringDigits","decl":{"start":{"line":99,"column":9},"end":{"line":99,"column":30}},"loc":{"start":{"line":99,"column":60},"end":{"line":121,"column":1}},"line":99},"18":{"name":"(anonymous_18)","decl":{"start":{"line":102,"column":27},"end":{"line":102,"column":28}},"loc":{"start":{"line":102,"column":34},"end":{"line":102,"column":41}},"line":102},"19":{"name":"(anonymous_19)","decl":{"start":{"line":103,"column":28},"end":{"line":103,"column":29}},"loc":{"start":{"line":103,"column":35},"end":{"line":103,"column":49}},"line":103},"20":{"name":"(anonymous_20)","decl":{"start":{"line":119,"column":29},"end":{"line":119,"column":30}},"loc":{"start":{"line":119,"column":36},"end":{"line":119,"column":59}},"line":119},"21":{"name":"splitIntoRanges","decl":{"start":{"line":144,"column":9},"end":{"line":144,"column":24}},"loc":{"start":{"line":146,"column":43},"end":{"line":265,"column":1}},"line":146},"22":{"name":"(anonymous_22)","decl":{"start":{"line":151,"column":34},"end":{"line":151,"column":35}},"loc":{"start":{"line":151,"column":47},"end":{"line":159,"column":5}},"line":151},"23":{"name":"(anonymous_23)","decl":{"start":{"line":152,"column":58},"end":{"line":152,"column":59}},"loc":{"start":{"line":152,"column":72},"end":{"line":152,"column":105}},"line":152},"24":{"name":"(anonymous_24)","decl":{"start":{"line":160,"column":18},"end":{"line":160,"column":19}},"loc":{"start":{"line":160,"column":27},"end":{"line":160,"column":90}},"line":160},"25":{"name":"(anonymous_25)","decl":{"start":{"line":162,"column":20},"end":{"line":162,"column":21}},"loc":{"start":{"line":162,"column":29},"end":{"line":162,"column":110}},"line":162},"26":{"name":"(anonymous_26)","decl":{"start":{"line":267,"column":21},"end":{"line":267,"column":22}},"loc":{"start":{"line":267,"column":34},"end":{"line":280,"column":1}},"line":267},"27":{"name":"(anonymous_27)","decl":{"start":{"line":268,"column":26},"end":{"line":268,"column":27}},"loc":{"start":{"line":268,"column":42},"end":{"line":279,"column":5}},"line":268},"28":{"name":"roundPayout","decl":{"start":{"line":282,"column":9},"end":{"line":282,"column":20}},"loc":{"start":{"line":282,"column":39},"end":{"line":291,"column":1}},"line":282}},"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":15,"column":8},"end":{"line":17,"column":9}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},{"start":{"line":15,"column":8},"end":{"line":17,"column":9}}],"line":15},"4":{"loc":{"start":{"line":38,"column":8},"end":{"line":42,"column":18}},"type":"if","locations":[{"start":{"line":38,"column":8},"end":{"line":42,"column":18}},{"start":{"line":38,"column":8},"end":{"line":42,"column":18}}],"line":38},"5":{"loc":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"type":"if","locations":[{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},{"start":{"line":54,"column":4},"end":{"line":56,"column":5}}],"line":54},"6":{"loc":{"start":{"line":74,"column":4},"end":{"line":76,"column":5}},"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":76,"column":5}},{"start":{"line":74,"column":4},"end":{"line":76,"column":5}}],"line":74},"7":{"loc":{"start":{"line":101,"column":4},"end":{"line":120,"column":5}},"type":"if","locations":[{"start":{"line":101,"column":4},"end":{"line":120,"column":5}},{"start":{"line":101,"column":4},"end":{"line":120,"column":5}}],"line":101},"8":{"loc":{"start":{"line":101,"column":8},"end":{"line":104,"column":38}},"type":"binary-expr","locations":[{"start":{"line":101,"column":8},"end":{"line":101,"column":21}},{"start":{"line":102,"column":9},"end":{"line":102,"column":42}},{"start":{"line":103,"column":12},"end":{"line":103,"column":50}},{"start":{"line":104,"column":12},"end":{"line":104,"column":37}}],"line":101},"9":{"loc":{"start":{"line":107,"column":9},"end":{"line":120,"column":5}},"type":"if","locations":[{"start":{"line":107,"column":9},"end":{"line":120,"column":5}},{"start":{"line":107,"column":9},"end":{"line":120,"column":5}}],"line":107},"10":{"loc":{"start":{"line":147,"column":4},"end":{"line":149,"column":5}},"type":"if","locations":[{"start":{"line":147,"column":4},"end":{"line":149,"column":5}},{"start":{"line":147,"column":4},"end":{"line":149,"column":5}}],"line":147},"11":{"loc":{"start":{"line":154,"column":12},"end":{"line":156,"column":27}},"type":"cond-expr","locations":[{"start":{"line":155,"column":18},"end":{"line":155,"column":62}},{"start":{"line":156,"column":18},"end":{"line":156,"column":27}}],"line":154},"12":{"loc":{"start":{"line":171,"column":4},"end":{"line":185,"column":5}},"type":"if","locations":[{"start":{"line":171,"column":4},"end":{"line":185,"column":5}},{"start":{"line":171,"column":4},"end":{"line":185,"column":5}}],"line":171},"13":{"loc":{"start":{"line":191,"column":41},"end":{"line":191,"column":98}},"type":"binary-expr","locations":[{"start":{"line":191,"column":41},"end":{"line":191,"column":92}},{"start":{"line":191,"column":96},"end":{"line":191,"column":98}}],"line":191},"14":{"loc":{"start":{"line":201,"column":22},"end":{"line":201,"column":72}},"type":"cond-expr","locations":[{"start":{"line":201,"column":36},"end":{"line":201,"column":52}},{"start":{"line":201,"column":55},"end":{"line":201,"column":72}}],"line":201},"15":{"loc":{"start":{"line":203,"column":60},"end":{"line":203,"column":118}},"type":"cond-expr","locations":[{"start":{"line":203,"column":74},"end":{"line":203,"column":94}},{"start":{"line":203,"column":97},"end":{"line":203,"column":118}}],"line":203},"16":{"loc":{"start":{"line":205,"column":12},"end":{"line":210,"column":13}},"type":"if","locations":[{"start":{"line":205,"column":12},"end":{"line":210,"column":13}},{"start":{"line":205,"column":12},"end":{"line":210,"column":13}}],"line":205},"17":{"loc":{"start":{"line":205,"column":16},"end":{"line":208,"column":85}},"type":"binary-expr","locations":[{"start":{"line":205,"column":17},"end":{"line":205,"column":29}},{"start":{"line":206,"column":16},"end":{"line":206,"column":79}},{"start":{"line":207,"column":17},"end":{"line":207,"column":28}},{"start":{"line":208,"column":20},"end":{"line":208,"column":84}}],"line":205},"18":{"loc":{"start":{"line":212,"column":12},"end":{"line":220,"column":13}},"type":"if","locations":[{"start":{"line":212,"column":12},"end":{"line":220,"column":13}},{"start":{"line":212,"column":12},"end":{"line":220,"column":13}}],"line":212},"19":{"loc":{"start":{"line":221,"column":12},"end":{"line":246,"column":13}},"type":"if","locations":[{"start":{"line":221,"column":12},"end":{"line":246,"column":13}},{"start":{"line":221,"column":12},"end":{"line":246,"column":13}}],"line":221},"20":{"loc":{"start":{"line":221,"column":16},"end":{"line":224,"column":31}},"type":"binary-expr","locations":[{"start":{"line":221,"column":16},"end":{"line":221,"column":57}},{"start":{"line":222,"column":16},"end":{"line":222,"column":43}},{"start":{"line":223,"column":16},"end":{"line":223,"column":33}},{"start":{"line":224,"column":16},"end":{"line":224,"column":31}}],"line":221},"21":{"loc":{"start":{"line":226,"column":16},"end":{"line":243,"column":17}},"type":"if","locations":[{"start":{"line":226,"column":16},"end":{"line":243,"column":17}},{"start":{"line":226,"column":16},"end":{"line":243,"column":17}}],"line":226},"22":{"loc":{"start":{"line":226,"column":20},"end":{"line":226,"column":78}},"type":"binary-expr","locations":[{"start":{"line":226,"column":20},"end":{"line":226,"column":48}},{"start":{"line":226,"column":52},"end":{"line":226,"column":78}}],"line":226},"23":{"loc":{"start":{"line":270,"column":8},"end":{"line":277,"column":9}},"type":"if","locations":[{"start":{"line":270,"column":8},"end":{"line":277,"column":9}},{"start":{"line":270,"column":8},"end":{"line":277,"column":9}}],"line":270},"24":{"loc":{"start":{"line":271,"column":12},"end":{"line":276,"column":13}},"type":"if","locations":[{"start":{"line":271,"column":12},"end":{"line":276,"column":13}},{"start":{"line":271,"column":12},"end":{"line":276,"column":13}}],"line":271},"25":{"loc":{"start":{"line":271,"column":16},"end":{"line":273,"column":44}},"type":"binary-expr","locations":[{"start":{"line":271,"column":17},"end":{"line":271,"column":49}},{"start":{"line":272,"column":16},"end":{"line":272,"column":60}},{"start":{"line":273,"column":16},"end":{"line":273,"column":44}}],"line":271},"26":{"loc":{"start":{"line":284,"column":16},"end":{"line":286,"column":49}},"type":"cond-expr","locations":[{"start":{"line":285,"column":10},"end":{"line":285,"column":32}},{"start":{"line":286,"column":10},"end":{"line":286,"column":49}}],"line":284},"27":{"loc":{"start":{"line":287,"column":26},"end":{"line":289,"column":27}},"type":"cond-expr","locations":[{"start":{"line":288,"column":10},"end":{"line":288,"column":44}},{"start":{"line":289,"column":10},"end":{"line":289,"column":27}}],"line":287}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":18,"7":80,"8":1,"9":18,"10":18,"11":31,"12":16,"13":2,"14":1,"15":29,"16":29,"17":29,"18":141,"19":141,"20":141,"21":29,"22":1,"23":12,"24":12,"25":12,"26":12,"27":12,"28":24,"29":13,"30":11,"31":12,"32":1,"33":9,"34":9,"35":14,"36":9,"37":1,"38":8,"39":34,"40":26,"41":26,"42":26,"43":26,"44":26,"45":58,"46":26,"47":8,"48":34,"49":1,"50":9,"51":9,"52":17,"53":9,"54":1,"55":8,"56":31,"57":23,"58":23,"59":23,"60":23,"61":23,"62":21,"63":23,"64":8,"65":31,"66":1,"67":9,"68":9,"69":17,"70":9,"71":1,"72":12,"73":12,"74":15,"75":4,"76":2,"77":10,"78":1,"79":1,"80":1,"81":8,"82":1,"83":9,"84":9,"85":9,"86":9,"87":9,"88":114,"89":1,"90":18,"91":0,"92":18,"93":18,"94":21,"95":34,"96":21,"97":18,"98":4999,"99":18,"100":18,"101":21,"102":18,"103":18,"104":18,"105":4,"106":4,"107":4,"108":14,"109":14,"110":21,"111":21,"112":21,"113":21,"114":21,"115":21,"116":4985,"117":4985,"118":4985,"119":4985,"120":4985,"121":2472,"122":4985,"123":4985,"124":6,"125":6,"126":6,"127":4979,"128":14,"129":0,"130":14,"131":14,"132":14,"133":4965,"134":4965,"135":4965,"136":4965,"137":14,"138":14,"139":1,"140":1,"141":20,"142":5075,"143":5075,"144":5055,"145":39,"146":39,"147":5036,"148":1,"149":9909,"150":9909,"151":9909,"152":9909,"153":1},"f":{"0":1,"1":18,"2":80,"3":18,"4":29,"5":12,"6":9,"7":14,"8":34,"9":26,"10":34,"11":9,"12":17,"13":31,"14":23,"15":31,"16":9,"17":12,"18":15,"19":4,"20":114,"21":18,"22":21,"23":34,"24":4999,"25":21,"26":20,"27":5075,"28":9909},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[16,15],"4":[13,11],"5":[1,8],"6":[1,8],"7":[2,10],"8":[12,11,2,2],"9":[1,9],"10":[0,18],"11":[21,0],"12":[4,14],"13":[21,13],"14":[2253,2732],"15":[2253,2732],"16":[2472,2513],"17":[4985,2732,3665,2253],"18":[6,4979],"19":[14,4965],"20":[4979,4975,4975,4969],"21":[0,14],"22":[14,14],"23":[5055,20],"24":[39,5016],"25":[5055,5043,5054],"26":[9909,0],"27":[4949,4960]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/core/lib/dlc/CETCalculator.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/core/lib/dlc/CETCalculator.ts"],"names":[],"mappings":"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","sourcesContent":["import BigNumber from 'bignumber.js';\n\nimport { BigIntMath, toBigInt } from '../utils/BigIntUtils';\nimport { HyperbolaPayoutCurve } from './HyperbolaPayoutCurve';\nimport { PolynomialPayoutCurve } from './PolynomialPayoutCurve';\n\nexport function zipWithIndex<T>(arr: T[]): [T, number][] {\n return arr.map((a, i) => [a, i]);\n}\n\nexport function dropUntil<T>(data: T[], check: (_: T) => boolean): T[] {\n for (let i = 0; i < data.length; i++) {\n if (check(data[i])) {\n return data.slice(i);\n }\n }\n return [];\n}\n\nexport function decompose(\n num: bigint,\n base: number,\n numDigits: number,\n): number[] {\n let currentNumber = num;\n const digits = [];\n while (numDigits > 0) {\n digits.push(Number(currentNumber % BigInt(base)));\n currentNumber = currentNumber / BigInt(base);\n numDigits--;\n }\n return digits.reverse();\n}\n\nexport function separatePrefix(\n start: bigint,\n end: bigint,\n base: number,\n numDigits: number,\n): {\n prefixDigits: number[];\n startDigits: number[];\n endDigits: number[];\n} {\n const startDigits = decompose(start, base, numDigits);\n const endDigits = decompose(end, base, numDigits);\n\n const prefixDigits: number[] = [];\n for (let i = 0; i < startDigits.length; i++) {\n if (startDigits[i] === endDigits[i]) {\n prefixDigits.push(startDigits[i]);\n } else break;\n }\n\n return {\n prefixDigits,\n startDigits: startDigits.splice(prefixDigits.length),\n endDigits: endDigits.splice(prefixDigits.length),\n };\n}\n\nexport function frontGroupings(digits: number[], base: number): number[][] {\n const digitsReversed = Array.from(digits).reverse();\n const nonZeroDigits = dropUntil(\n zipWithIndex(digitsReversed),\n (a) => a[0] !== 0,\n );\n\n if (nonZeroDigits.length === 0) {\n return [[0]];\n }\n const fromFront = nonZeroDigits\n .filter((_, i) => i !== nonZeroDigits.length - 1)\n .flatMap(([d, i]) => {\n const fixedDigits = Array.from(digits);\n fixedDigits.length = fixedDigits.length - (i + 1);\n\n const result: number[][] = [];\n for (let n = d + 1; n < base; n++) {\n result.push([...Array.from(fixedDigits), n]);\n }\n return result;\n });\n\n return [nonZeroDigits.map((a) => a[0]).reverse(), ...fromFront];\n}\n\nexport function backGroupings(digits: number[], base: number): number[][] {\n const digitsReversed = Array.from(digits).reverse();\n const nonMaxDigits = dropUntil(\n zipWithIndex(digitsReversed),\n (a) => a[0] !== base - 1,\n );\n\n if (nonMaxDigits.length === 0) {\n return [[base - 1]];\n }\n\n const fromBack = nonMaxDigits\n .filter((_, i) => i !== nonMaxDigits.length - 1)\n .flatMap(([d, i]) => {\n const fixedDigits = Array.from(digits);\n fixedDigits.length = fixedDigits.length - (i + 1);\n\n const result: number[][] = [];\n for (let n = d - 1; n >= 0; n--) {\n result.push([...Array.from(fixedDigits), n]);\n }\n\n return result;\n });\n\n return [...fromBack.reverse(), nonMaxDigits.map((a) => a[0]).reverse()];\n}\n\nexport function middleGroupings(\n firstDigitStart: number,\n firstDigitEnd: number,\n): number[][] {\n const result = [];\n while (++firstDigitStart < firstDigitEnd) {\n result.push([firstDigitStart]);\n }\n return result;\n}\n\nexport function groupByIgnoringDigits(\n start: bigint,\n end: bigint,\n base: number,\n numDigits: number,\n): number[][] {\n const { prefixDigits, startDigits, endDigits } = separatePrefix(\n start,\n end,\n base,\n numDigits,\n );\n\n if (\n start === end ||\n (startDigits.every((n) => n === 0) &&\n endDigits.every((n) => n === base - 1) &&\n prefixDigits.length !== 0)\n ) {\n return [prefixDigits];\n } else if (prefixDigits.length === numDigits - 1) {\n const result = [];\n for (\n let i = startDigits[startDigits.length - 1];\n i <= endDigits[endDigits.length - 1];\n i++\n ) {\n result.push([...prefixDigits, i]);\n }\n\n return result;\n } else {\n const front = frontGroupings(startDigits, base);\n const middle = middleGroupings(startDigits[0], endDigits[0]);\n const back = backGroupings(endDigits, base);\n\n const groupings = [...front, ...middle, ...back];\n\n return groupings.map((g) => [...prefixDigits, ...g]);\n }\n}\n\nexport interface RoundingInterval {\n beginInterval: bigint;\n roundingMod: bigint;\n}\n\nexport type CETPayout = {\n indexFrom: bigint;\n indexTo: bigint;\n payout: bigint;\n};\n\n/**\n * Performs optimized evaluation and rounding for strictly monotonic hyperbolas on intervals (from, to)\n * e.g. hyperbolas with the form b = c = 0\n *\n * The next start of a payout range is determined by finding the outcome at the next mid-rounding payout.\n * Uses an inverse function of the hyperbola to find the outcome.\n *\n * Optimizes rounding from O(to - from) to O(totalCollateral / rounding)\n *\n *\n * Evaluates and rounds a payout_function equivalent to:\n *\n * payout_function_v0\n * num_pieces: 1\n * endpoint_0: from\n * endpoint_payout_0: fromPayout\n * extra_precision_0: 0\n * payout_curve_piece: HyperbolaPayoutCurve\n * endpoint_1: to\n * endpoint_payout_1: toPayout\n */\nexport function splitIntoRanges(\n from: bigint,\n to: bigint,\n fromPayout: bigint, // endpoint_payout\n toPayout: bigint, // endpoint_payout\n totalCollateral: bigint,\n curve: HyperbolaPayoutCurve | PolynomialPayoutCurve,\n roundingIntervals: RoundingInterval[],\n): CETPayout[] {\n if (to - from <= 0) {\n throw new Error('`to` must be strictly greater than `from`');\n }\n\n const reversedIntervals = [...roundingIntervals].reverse();\n\n const getRoundingForOutcome = (outcome: bigint): [bigint, number] => {\n const roundingIndex = reversedIntervals.findIndex(\n (interval) => interval.beginInterval <= outcome,\n );\n\n return [\n roundingIndex !== -1\n ? reversedIntervals[roundingIndex].roundingMod\n : BigInt(1),\n roundingIndex,\n ];\n };\n\n const clamp = (val: bigint) =>\n BigIntMath.clamp(BigInt(0), val, totalCollateral);\n\n const totalCollateralBN = new BigNumber(totalCollateral.toString());\n const clampBN = (val: BigNumber) =>\n BigNumber.max(0, BigNumber.min(val, totalCollateralBN));\n\n const result: CETPayout[] = [];\n\n // outcome = endpoint_0\n result.push({\n payout: fromPayout,\n indexFrom: from,\n indexTo: from,\n });\n\n // In the case of a constant payout curve (fromPayout === toPayout), we can skip the range evaluation\n if (fromPayout === toPayout) {\n result.push({\n payout: toPayout,\n indexFrom: from,\n indexTo: to,\n });\n // outcome = endpoint_1\n result.push({\n payout: toPayout,\n indexFrom: to,\n indexTo: to,\n });\n // merge neighbouring ranges with same payout\n return mergePayouts(result);\n }\n\n let currentOutcome = from + BigInt(1);\n\n // iterate over entire range of outcomes from [from, to]\n while (currentOutcome < to) {\n const [rounding, roundingIndex] = getRoundingForOutcome(currentOutcome);\n\n // either the next rounding interval, or the end of the range\n const nextFirstRoundingOutcome =\n reversedIntervals[roundingIndex - 1]?.beginInterval || to;\n\n // temporary variable to hold the current payout\n let currentPayout = new BigNumber(\n roundPayout(\n clampBN(curve.getPayout(currentOutcome)),\n rounding,\n ).toString(),\n );\n\n let currentMidRoundedOutcome = currentOutcome;\n\n const isAscending = curve\n .getPayout(nextFirstRoundingOutcome)\n .gt(currentPayout);\n\n while (currentMidRoundedOutcome < nextFirstRoundingOutcome) {\n const nextRoundedPayout = currentPayout\n .integerValue()\n .plus(isAscending ? Number(rounding) : -Number(rounding));\n\n const nextRoundedPayoutBigInt = toBigInt(nextRoundedPayout);\n\n const nextMidRoundedPayout = currentPayout.plus(\n isAscending ? Number(rounding) / 2 : -Number(rounding) / 2,\n );\n\n let nextMidRoundedOutcome = curve.getOutcomeForPayout(\n nextMidRoundedPayout,\n );\n\n if (\n (!isAscending &&\n curve.getPayout(nextMidRoundedOutcome).lt(nextMidRoundedPayout)) ||\n (isAscending &&\n curve.getPayout(nextMidRoundedOutcome).gte(nextMidRoundedPayout))\n ) {\n nextMidRoundedOutcome = nextMidRoundedOutcome - BigInt(1);\n }\n\n const nextOutcome = curve.getOutcomeForPayout(nextRoundedPayout);\n\n if (nextMidRoundedOutcome >= nextFirstRoundingOutcome) {\n result.push({\n payout: clamp(toBigInt(currentPayout)),\n indexFrom: currentMidRoundedOutcome,\n indexTo: nextFirstRoundingOutcome - BigInt(1),\n });\n\n currentOutcome = nextFirstRoundingOutcome;\n break;\n }\n\n if (\n nextRoundedPayoutBigInt > totalCollateral ||\n nextRoundedPayoutBigInt < 0 ||\n nextOutcome >= to ||\n nextOutcome < 0 // undefined on curve\n ) {\n if (nextMidRoundedOutcome < from || nextMidRoundedOutcome > to) {\n result.push({\n payout: clamp(toBigInt(currentPayout)),\n indexFrom: currentMidRoundedOutcome,\n indexTo: to,\n });\n } else {\n result.push(\n {\n payout: clamp(toBigInt(currentPayout)),\n indexFrom: currentMidRoundedOutcome,\n indexTo: nextMidRoundedOutcome,\n },\n {\n payout: clamp(nextRoundedPayoutBigInt),\n indexFrom: nextMidRoundedOutcome + BigInt(1),\n indexTo: to - BigInt(1),\n },\n );\n }\n\n currentOutcome = to;\n break;\n }\n\n result.push({\n payout: clamp(toBigInt(currentPayout)),\n indexFrom: currentMidRoundedOutcome,\n indexTo: nextMidRoundedOutcome,\n });\n\n currentOutcome = nextOutcome + BigInt(1);\n currentPayout = nextRoundedPayout;\n\n currentMidRoundedOutcome = nextMidRoundedOutcome + BigInt(1);\n }\n }\n\n // outcome = endpoint_1\n result.push({\n payout: toPayout,\n indexFrom: to,\n indexTo: to,\n });\n\n // merge neighbouring ranges with same payout\n return mergePayouts(result);\n}\n\nexport const mergePayouts = (payouts: CETPayout[]): CETPayout[] => {\n return payouts.reduce((acc: CETPayout[], range) => {\n const prev = acc[acc.length - 1];\n if (prev) {\n if (\n (prev.indexTo === range.indexFrom ||\n prev.indexTo + BigInt(1) === range.indexFrom) &&\n prev.payout === range.payout\n ) {\n prev.indexTo = range.indexTo;\n return acc;\n }\n }\n\n return [...acc, range];\n }, []);\n};\n\nexport function roundPayout(payout: BigNumber, rounding: bigint): bigint {\n const roundingBN = new BigNumber(rounding.toString());\n const mod = payout.gte(0)\n ? payout.mod(roundingBN)\n : payout.mod(roundingBN).plus(roundingBN);\n\n const roundedPayout = mod.gte(roundingBN.dividedBy(2))\n ? payout.plus(roundingBN).minus(mod)\n : payout.minus(mod);\n\n return toBigInt(roundedPayout);\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"16ac62a291cdd091cc86c66325e8457ae1472cce","contentHash":"45ef2b3ca43131ef6708e754dab9173499d47d5934fe3fbbe5b563804ca50761"},"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/core/lib/utils/BigIntUtils.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/node-dlc/packages/core/lib/utils/BigIntUtils.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":47}},"2":{"start":{"line":6,"column":8},"end":{"line":8,"column":9}},"3":{"start":{"line":7,"column":12},"end":{"line":7,"column":24}},"4":{"start":{"line":9,"column":8},"end":{"line":11,"column":9}},"5":{"start":{"line":10,"column":12},"end":{"line":10,"column":29}},"6":{"start":{"line":12,"column":18},"end":{"line":12,"column":27}},"7":{"start":{"line":13,"column":8},"end":{"line":17,"column":9}},"8":{"start":{"line":13,"column":21},"end":{"line":13,"column":22}},"9":{"start":{"line":14,"column":12},"end":{"line":16,"column":13}},"10":{"start":{"line":15,"column":16},"end":{"line":15,"column":32}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":19}},"12":{"start":{"line":21,"column":8},"end":{"line":23,"column":9}},"13":{"start":{"line":22,"column":12},"end":{"line":22,"column":24}},"14":{"start":{"line":24,"column":8},"end":{"line":26,"column":9}},"15":{"start":{"line":25,"column":12},"end":{"line":25,"column":29}},"16":{"start":{"line":27,"column":18},"end":{"line":27,"column":27}},"17":{"start":{"line":28,"column":8},"end":{"line":32,"column":9}},"18":{"start":{"line":28,"column":21},"end":{"line":28,"column":22}},"19":{"start":{"line":29,"column":12},"end":{"line":31,"column":13}},"20":{"start":{"line":30,"column":16},"end":{"line":30,"column":32}},"21":{"start":{"line":33,"column":8},"end":{"line":33,"column":19}},"22":{"start":{"line":36,"column":8},"end":{"line":38,"column":9}},"23":{"start":{"line":37,"column":12},"end":{"line":37,"column":29}},"24":{"start":{"line":39,"column":8},"end":{"line":41,"column":9}},"25":{"start":{"line":40,"column":12},"end":{"line":40,"column":30}},"26":{"start":{"line":42,"column":8},"end":{"line":42,"column":25}},"27":{"start":{"line":45,"column":8},"end":{"line":47,"column":9}},"28":{"start":{"line":46,"column":12},"end":{"line":46,"column":26}},"29":{"start":{"line":48,"column":8},"end":{"line":48,"column":21}},"30":{"start":{"line":51,"column":8},"end":{"line":51,"column":49}},"31":{"start":{"line":54,"column":0},"end":{"line":54,"column":32}},"32":{"start":{"line":56,"column":4},"end":{"line":56,"column":49}},"33":{"start":{"line":58,"column":0},"