ecash-agora 0.1.1-rc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial.js","sourceRoot":"","sources":["../src/partial.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;AAEtE,OAAO,EACH,uBAAuB,EACvB,UAAU,EACV,OAAO,EACP,kBAAkB,EAElB,UAAU,EACV,aAAa,EAEb,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,UAAU,EACV,MAAM,EACN,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,YAAY,EACZ,eAAe,EACf,MAAM,EACN,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,EACN,OAAO,EAEP,OAAO,EACP,UAAU,EAGV,WAAW,EACX,YAAY,EACZ,aAAa,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA6E7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCI;AACJ,MAAM,OAAO,YAAY;IA2DrB,YAAmB,MAalB;QACG,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,4BAA4B,CAAC;QACxE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,4BAA4B,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACxC,CAAC;IAED;;;;;;;;;;QAUI;IACG,MAAM,CAAC,iBAAiB,CAC3B,MAA0B,EAC1B,oBAA4B,GAAG;QAE/B,IAAI,MAAM,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,MAAM,CAAC,qBAAqB,GAAG,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,MAAM,CAAC,iBAAiB,GAAG,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC;QACD,IACI,MAAM,CAAC,aAAa,IAAI,KAAK;YAC7B,MAAM,CAAC,aAAa,GAAG,mBAAmB,EAC5C,CAAC;YACC,MAAM,IAAI,KAAK,CACX,0DAA0D,CAC7D,CAAC;QACN,CAAC;QACD,IACI,MAAM,CAAC,aAAa,IAAI,KAAK;YAC7B,MAAM,CAAC,aAAa,GAAG,eAAe,EACxC,CAAC;YACC,MAAM,IAAI,KAAK,CACX,sDAAsD,CACzD,CAAC;QACN,CAAC;QAED,uEAAuE;QACvE,MAAM,4BAA4B,GAAG,iBAAiB,GAAG,EAAE,CAAC;QAC5D,+DAA+D;QAC/D,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,4BAA4B,CAAC,GAAG,EAAE,CAAC;QAE/D,oDAAoD;QACpD,4CAA4C;QAC5C,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACxE,2DAA2D;QAC3D,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjE,MAAM,mBAAmB,GAAG,cAAc;YACtC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAM,CAAC,mBAAmB,IAAI,KAAK,CAAC;QAE1C,0EAA0E;QAC1E,gCAAgC;QAChC,IAAI,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;QACvC,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,OACI,WAAW,GAAG,mBAAmB,GAAG,YAAY;YAChD,kBAAkB,GAAG,kBAAkB,EACzC,CAAC;YACC,WAAW,KAAK,EAAE,CAAC;YACnB,kBAAkB,EAAE,CAAC;QACzB,CAAC;QAED,yDAAyD;QACzD,MAAM,YAAY,GACd,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW,CAAC;QAExE,iEAAiE;QACjE,IAAI,iBAAiB,GAAG,YAAY,CAAC;QACrC,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,OAAO,iBAAiB,GAAG,YAAY,EAAE,CAAC;YACtC,iBAAiB,KAAK,EAAE,CAAC;YACzB,iBAAiB,EAAE,CAAC;QACxB,CAAC;QAED,2DAA2D;QAC3D,IAAI,gBAAgB,GAAG,YAAY,GAAG,WAAW,CAAC;QAElD,iEAAiE;QACjE,wEAAwE;QACxE,oCAAoC;QACpC,MAAM,gCAAgC,GAAG,GAAG,EAAE,CAC1C,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;YAC7B,gBAAgB;YAChB,WAAW,CAAC;YAChB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEvE,oEAAoE;QACpE,2CAA2C;QAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,KAAK,CAAC;QACxD,gEAAgE;QAChE,oEAAoE;QACpE,4DAA4D;QAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;QACpD,IAAI,4BAA4B,GAAG,gCAAgC,EAAE,CAAC;QACtE,OACI,4BAA4B,GAAG,eAAe;YAC9C,4BAA4B,GAAG,aAAa,GAAG,gBAAgB,EACjE,CAAC;YACC,iBAAiB,EAAE,CAAC;YACpB,4BAA4B,GAAG,gCAAgC,EAAE,CAAC;QACtE,CAAC;QAED,sEAAsE;QACtE,IACI,WAAW,GAAG,gBAAgB,GAAG,4BAA4B,GAAG,EAAE;YAClE,YAAY,EACd,CAAC;YACC,IACI,WAAW,GAAG,gBAAgB;gBAC9B,4BAA4B,EAC9B,CAAC;gBACC,mDAAmD;gBACnD,gBAAgB,IAAI,EAAE,CAAC;gBACvB,4BAA4B;oBACxB,gCAAgC,EAAE,CAAC;YAC3C,CAAC;YACD,MAAM,cAAc,GAChB,YAAY,GAAG,4BAA4B,GAAG,EAAE,CAAC;YACrD,IAAI,cAAc,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;gBAC/B,yDAAyD;gBACzD,gBAAgB,GAAG,EAAE,CAAC;gBACtB,WAAW,GAAG,cAAc,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACJ,qDAAqD;gBACrD,gBAAgB,GAAG,cAAc,GAAG,WAAW,CAAC;YACpD,CAAC;YACD,oBAAoB;YACpB,4BAA4B,GAAG,gCAAgC,EAAE,CAAC;QACtE,CAAC;QAED,+CAA+C;QAC/C,IAAI,4BAA4B,GAC5B,CAAC,MAAM,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;YAC7C,CAAC,EAAE,GAAG,kBAAkB,CAAC,CAAC;QAE9B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;YAClC,WAAW;YACX,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC;YAC9C,gBAAgB;YAChB,4BAA4B;YAC5B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,4BAA4B;YAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,kBAAkB;SACtD,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;QACD,YAAY,CAAC,eAAe,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC;IACxB,CAAC;IAEM,eAAe;QAClB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpE,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;IACpC,CAAC;IAED;;;;QAII;IACG,aAAa;QAChB,OAAO,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnE,CAAC;IAED;;;;QAII;IACG,iBAAiB;QACpB,OAAO,CACH,CAAC,IAAI,CAAC,4BAA4B;YAC9B,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CACxB,CAAC;IACN,CAAC;IAED;;;;;;QAMI;IACG,SAAS,CAAC,cAAsB;QACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,mBAAmB,GAAG,cAAc,IAAI,iBAAiB,CAAC;QAChE,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,cAAc,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACX,qCAAqC,iBAAiB,QAAQ;gBAC1D,8DAA8D,CACrE,CAAC;QACN,CAAC;QACD,qBAAqB;QACrB,MAAM,cAAc,GAChB,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB;YACxC,IAAI,CAAC,4BAA4B;YACjC,EAAE,CAAC;YACP,IAAI,CAAC,4BAA4B,CAAC;QACtC,mBAAmB;QACnB,OAAO,cAAc,IAAI,gBAAgB,CAAC;IAC9C,CAAC;IAED;;;;QAII;IACG,qBAAqB,CAAC,cAAsB;QAC/C,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,OAAO,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,iBAAiB,CAAC;IACtE,CAAC;IAED;;;;;;QAMI;IACG,qBAAqB,CAAC,cAAuB;QAChD,cAAc,KAAd,cAAc,GAAK,IAAI,CAAC,aAAa,EAAE,EAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAC;IAC3C,CAAC;IAEM,UAAU;QACb,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;gBAC9B,yCAAyC;gBACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzD,aAAa,CAAC,WAAW,CAAC,CAAC;QAC3B,OAAO,WAAW,CAAC,IAAI,CAAC;IAC5B,CAAC;IAEM,cAAc;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,sEAAsE;QACtE,mBAAmB;QACnB,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;gBACvD,CAAC;aACJ,CAAC,CAAC,QAAQ,CAAC;YACZ,MAAM,oBAAoB,GAAG,IAAI,WAAW,CACxC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAC1C,CAAC;YACF,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5C,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YACrC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAClE,gDAAgD;YAChD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CACtC,CAAC,EACD,eAAe,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;YACF,yDAAyD;YACzD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3C,MAAM,oBAAoB,GAAG,IAAI,WAAW,CACxC,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAClD,CAAC;YACF,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5C,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAEM,MAAM;QACT,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE9D,mDAAmD;QACnD,gEAAgE;QAChE,uEAAuE;QACvE,iBAAiB;QACjB,MAAM,0BAA0B,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QACtD,0BAA0B,CAAC,MAAM,CAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAC3C,CAAC;QACF,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,IAAI,CAAC;QAE7D,OAAO,MAAM,CAAC,OAAO,CAAC;YAClB,gBAAgB;YAChB,WAAW,CAAC,cAAc,CAAC;YAC3B,gEAAgE;YAChE,WAAW,CAAC,oBAAoB,CAAC;YACjC,iEAAiE;YACjE,qDAAqD;YACrD,gBAAgB;YAChB,2BAA2B;YAC3B,MAAM;YACN,oBAAoB;YACpB,KAAK;YACL,uDAAuD;YACvD,UAAU;YACV,0CAA0C;YAC1C,MAAM;YAEN,2DAA2D;YAC3D,wDAAwD;YACxD,OAAO;YACP,4DAA4D;YAC5D,oEAAoE;YACpE,qBAAqB;YACrB,4BAA4B;YAC5B,SAAS;YAET,uDAAuD;YACvD,oCAAoC;YACpC,MAAM;YACN,mDAAmD;YACnD,YAAY,CAAC,IAAI,CAAC,4BAA4B,CAAC;YAC/C,8DAA8D;YAC9D,iEAAiE;YACjE,qBAAqB;YACrB,sBAAsB;YACtB,SAAS;YAET,0DAA0D;YAC1D,kCAAkC;YAClC,oCAAoC;YACpC,MAAM;YACN,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACnC,qDAAqD;YACrD,4CAA4C;YAC5C,MAAM;YACN,IAAI;YACJ,oCAAoC;YACpC,cAAc;YAEd,yCAAyC;YACzC,OAAO;YAEP,8CAA8C;YAC9C,wDAAwD;YACxD,gEAAgE;YAChE,MAAM;YAEN,gCAAgC;YAChC,iCAAiC;YACjC,YAAY,CAAC,CAAC,CAAC;YACf,iCAAiC;YACjC,OAAO;YAEP,qCAAqC;YACrC,YAAY,CAAC,aAAa,CAAC;YAC3B,uDAAuD;YACvD,QAAQ;YACR,sBAAsB;YACtB,OAAO;YAEP,wCAAwC;YACxC,OAAO;YAEP,wDAAwD;YACxD,kEAAkE;YAClE,YAAY;YAEZ,2DAA2D;YAC3D,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;YAE3C,mDAAmD;YACnD,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEnD,gEAAgE;YAChE,MAAM;YAEN,0CAA0C;YAC1C,MAAM;YAEN,gEAAgE;YAChE,YAAY,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;YACpD,MAAM;YAEN,+BAA+B;YAC/B,YAAY,CAAC,IAAI,CAAC,4BAA4B,CAAC;YAE/C,4DAA4D;YAC5D,wDAAwD;YACxD,2DAA2D;YAC3D,MAAM;YAEN,yDAAyD;YACzD,mCAAmC;YACnC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACxC,gEAAgE;YAChE,UAAU;YACV,0DAA0D;YAC1D,4DAA4D;YAC5D,mCAAmC;YACnC,wBAAwB;YACxB,sDAAsD;YACtD,MAAM;YAEN,+BAA+B;YAC/B,4CAA4C;YAC5C,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YACzD,qDAAqD;YACrD,QAAQ;YACR,sCAAsC;YACtC,OAAO;YACP,gEAAgE;YAChE,iCAAiC;YACjC,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC;YACxC,8CAA8C;YAC9C,QAAQ;YACR,kBAAkB;YAClB,MAAM;YACN,iCAAiC;YACjC,UAAU;YACV,6CAA6C;YAC7C,MAAM;YACN,6CAA6C;YAC7C,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1D,gDAAgD;YAChD,MAAM;YAEN,6DAA6D;YAC7D,kEAAkE;YAClE,MAAM;YACN,8DAA8D;YAC9D,sCAAsC;YACtC,aAAa;YAEb,+DAA+D;YAC/D,kCAAkC;YAClC,yCAAyC;YACzC,OAAO;YACP,qBAAqB;YACrB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI;YACJ,4CAA4C;YAC5C,UAAU;YACV,mCAAmC;YACnC,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YACjD,0DAA0D;YAC1D,MAAM;YAEN,0DAA0D;YAC1D,0BAA0B;YAE1B,gEAAgE;YAChE,uBAAuB;YACvB,wDAAwD;YACxD,oCAAoC;YACpC,WAAW;YACX,sBAAsB;YACtB,IAAI;YACJ,WAAW,CACP,IAAI,UAAU,CACV,cAAc,CAAC,MAAM,IAAI,YAAY;gBACjC,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC;gBACvC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAChC,CACJ;YAED,oDAAoD;YACpD,QAAQ;YACR,IAAI;YACJ,gBAAgB;YAChB,OAAO;YACP,iCAAiC;YACjC,+CAA+C;YAC/C,UAAU;YACV,qCAAqC;YACrC,8CAA8C;YAC9C,MAAM;YACN,uBAAuB;YACvB,uDAAuD;YACvD,MAAM;YACN,6CAA6C;YAC7C,2DAA2D;YAC3D,MAAM;YACN,iCAAiC;YACjC,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC/C,qDAAqD;YACrD,MAAM;YACN,8CAA8C;YAC9C,YAAY,CAAC,CAAC,CAAC;YACf,6CAA6C;YAC7C,OAAO;YACP,4DAA4D;YAC5D,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,iEAAiE;YACjE,QAAQ;YACR,uBAAuB;YACvB,MAAM;YACN,yBAAyB;YACzB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,gEAAgE;YAChE,QAAQ;YAER,wBAAwB;YACxB,KAAK;YACL,2DAA2D;YAC3D,QAAQ;YACR,yBAAyB;YACzB,MAAM;YACN,0BAA0B;YAC1B,YAAY,CAAC,EAAE,CAAC;YAChB,+DAA+D;YAC/D,QAAQ;YACR,wBAAwB;YACxB,OAAO;YACP,2CAA2C;YAC3C,mCAAmC;YACnC,aAAa;YAEb,+CAA+C;YAC/C,2DAA2D;YAC3D,MAAM;YACN,0CAA0C;YAC1C,kDAAkD;YAClD,UAAU;YACV,0BAA0B;YAC1B,sDAAsD;YACtD,MAAM;YACN,uBAAuB;YACvB,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvC,+BAA+B;YAC/B,0DAA0D;YAC1D,MAAM;YAEN,yDAAyD;YACzD,mEAAmE;YACnE,yDAAyD;YACzD,wCAAwC;YACxC,OAAO;YACP,wDAAwD;YACxD,YAAY;YACZ,wBAAwB;YACxB,QAAQ;YACR,0BAA0B;YAC1B,OAAO;YACP,sBAAsB;YACtB,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7B,QAAQ;YAER,6BAA6B;YAC7B,MAAM;YAEN,8DAA8D;YAC9D,yDAAyD;YACzD,OAAO;YACP,8CAA8C;YAC9C,YAAY;YACZ,wBAAwB;YACxB,SAAS;YAET,6BAA6B;YAC7B,8DAA8D;YAC9D,MAAM;YAEN,qCAAqC;YACrC,eAAe;YACf,wCAAwC;YACxC,eAAe;YACf,qCAAqC;YACrC,MAAM;YACN,oCAAoC;YACpC,iDAAiD;YACjD,iDAAiD;YACjD,MAAM;YACN,oDAAoD;YACpD,UAAU;YACV,uCAAuC;YACvC,yDAAyD;YACzD,cAAc;YAEd,uDAAuD;YACvD,gBAAgB;YAChB,IAAI;YACJ,+BAA+B;YAC/B,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACzB,sDAAsD;YACtD,UAAU;YAEV,gCAAgC;YAChC,qCAAqC;YACrC,OAAO;YACP,+CAA+C;YAC/C,MAAM;YAEN,8BAA8B;YAC9B,uCAAuC;YACvC,SAAS;YAET,gEAAgE;YAChE,mDAAmD;YACnD,OAAO;YACP,kDAAkD;YAClD,MAAM;YACN,iEAAiE;YACjE,qBAAqB;YACrB,0BAA0B;YAC1B,OAAO;YACP,2CAA2C;YAC3C,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9D,yDAAyD;YACzD,MAAM;YACN,4DAA4D;YAC5D,OAAO;YAEP,OAAO;YAEP,+DAA+D;YAC/D,6BAA6B;YAC7B,iCAAiC;YACjC,OAAO;YACP,iCAAiC;YACjC,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC;YACxC,yCAAyC;YACzC,QAAQ;YACR,mBAAmB;YACnB,MAAM;YAEN,QAAQ;YAER,gDAAgD;YAChD,GAAG,IAAI,CAAC,YAAY,EAAE;SACzB,CAAC,CAAC;IACP,CAAC;IAEO,oBAAoB,CAAC,aAAqB;QAC9C,qEAAqE;QACrE,yBAAyB;QACzB,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAEO,uBAAuB;QAC3B,OAAO;YACH,0DAA0D;YAC1D,qBAAqB;YACrB,KAAK;YACL,0BAA0B;YAC1B,IAAI;YACJ,uCAAuC;YACvC,MAAM;YACN,wCAAwC;YACxC,OAAO;YACP,0CAA0C;YAC1C,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACnC,0DAA0D;YAC1D,iDAAiD;YACjD,MAAM;YACN,wDAAwD;YACxD,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAChC,2DAA2D;YAC3D,+DAA+D;YAC/D,eAAe;YACf,6CAA6C;YAC7C,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpD,gDAAgD;YAChD,kEAAkE;YAClE,MAAM;YACN,2CAA2C;YAC3C,uDAAuD;YACvD,MAAM;YAEN,QAAQ;YAER,oDAAoD;YACpD,0BAA0B;YAC1B,IAAI;YACJ,uCAAuC;YACvC,MAAM;YACN,kCAAkC;YAClC,mCAAmC;YACnC,0CAA0C;YAC1C,YAAY,CAAC,CAAC,CAAC;YACf,8BAA8B;YAC9B,8CAA8C;YAC9C,OAAO;YACP,yCAAyC;YACzC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACnC,0DAA0D;YAC1D,iDAAiD;YACjD,MAAM;YACN,wDAAwD;YACxD,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAChC,2DAA2D;YAC3D,kEAAkE;YAClE,eAAe;YACf,6CAA6C;YAC7C,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpD,oEAAoE;YACpE,MAAM;YAEN,8BAA8B;YAC9B,wDAAwD;YACxD,MAAM;YAEN,wDAAwD;YACxD,wDAAwD;YACxD,OAAO;YAEP,iDAAiD;YACjD,iEAAiE;YACjE,kDAAkD;YAClD,oEAAoE;YACpE,mEAAmE;YACnE,+DAA+D;YAC/D,mEAAmE;YACnE,4DAA4D;YAC5D,IAAI;YACJ,sDAAsD;YACtD,UAAU;YACV,2DAA2D;YAC3D,eAAe;YAEf,2CAA2C;YAC3C,OAAO;YACP,2DAA2D;YAC3D,MAAM;SACT,CAAC;IACN,CAAC;IAEO,uBAAuB,CAAC,aAAqB;QACjD,qEAAqE;QACrE,qBAAqB;QACrB,OAAO;YACH,uDAAuD;YACvD,qBAAqB;YACrB,KAAK;YAEL,sBAAsB;YACtB,IAAI;YACJ,8DAA8D;YAC9D,4CAA4C;YAC5C,+DAA+D;YAC/D,+DAA+D;YAC/D,gEAAgE;YAChE,4DAA4D;YAC5D,yBAAyB;YACzB,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzC,oDAAoD;YACpD,UAAU;YACV,iDAAiD;YACjD,MAAM;YACN,yCAAyC;YACzC,OAAO;YACP,0CAA0C;YAC1C,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACnC,mDAAmD;YACnD,0CAA0C;YAC1C,MAAM;YAEN,4GAA4G;YAC5G,gFAAgF;YAChF,YAAY,CACR,CAAC,CAAC,uDAAuD,CAC5D;YAED,OAAO;YAEP,8DAA8D;YAC9D,4CAA4C;YAC5C,mBAAmB;YACnB,IAAI;YACJ,yCAAyC;YACzC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAEzC,QAAQ;YAER,6DAA6D;YAC7D,0DAA0D;YAC1D,UAAU;YAEV,iEAAiE;YACjE,0DAA0D;YAC1D,uDAAuD;YACvD,uDAAuD;YACvD,MAAM;YAEN,mCAAmC;YACnC,0CAA0C;YAC1C,YAAY,CAAC,CAAC,CAAC;YACf,8BAA8B;YAC9B,8CAA8C;YAC9C,OAAO;YAEP,yCAAyC;YACzC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACnC,0DAA0D;YAC1D,iDAAiD;YACjD,MAAM;YACN,oDAAoD;YACpD,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAEhC,2BAA2B;YAC3B,kEAAkE;YAClE,MAAM;YAEN,wCAAwC;YACxC,yDAAyD;YACzD,OAAO;YACP,0CAA0C;YAC1C,OAAO;YACP,iEAAiE;YACjE,MAAM;YAEN,6BAA6B;YAC7B,iCAAiC;YACjC,YAAY,CAAC,CAAC,CAAC;YACf,gCAAgC;YAChC,OAAO;YACP,gEAAgE;YAChE,YAAY,CAAC,aAAa,CAAC;YAC3B,8DAA8D;YAC9D,QAAQ;YACR,iCAAiC;YACjC,wBAAwB;YACxB,MAAM;YAEN,sDAAsD;YACtD,+BAA+B;YAC/B,OAAO;YACP,mDAAmD;YACnD,MAAM;YACN,mDAAmD;YACnD,OAAO;YACP,iDAAiD;YACjD,mDAAmD;YACnD,IAAI;YACJ,uDAAuD;YACvD,UAAU;YACV,6DAA6D;YAC7D,eAAe;YACf,2CAA2C;YAC3C,OAAO;YACP,+DAA+D;YAC/D,MAAM;SACT,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,WAAmB;QAC7C,oEAAoE;QACpE,IAAI,IAAI,CAAC,kBAAkB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7C,8DAA8D;YAC9D,+DAA+D;YAC/D,gEAAgE;YAChE,6DAA6D;YAC7D,iCAAiC;YACjC,OAAO;gBACH,YAAY,CAAC,CAAC,CAAC;gBACf,UAAU;gBACV,YAAY,CAAC,CAAC,CAAC;gBACf,QAAQ;gBACR,OAAO;aACV,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,4DAA4D;YAC5D,gCAAgC;YAChC,OAAO;gBACH,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACnD,UAAU;aACb,CAAC;QACN,CAAC;IACL,CAAC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YAC9B,gEAAgE;YAChE,mEAAmE;YACnE,gDAAgD;YAChD,OAAO;gBACH,iBAAiB;gBACjB,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACtD,cAAc;gBACd,WAAW,CAAC,cAAc,CAAC;gBAC3B,QAAQ;aACX,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED;;;;;;;;QAQI;IACG,QAAQ;QACX,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,OAAO,CAAC;YAClB,WAAW,CAAC,cAAc,CAAC;YAC3B,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC;YACxC,QAAQ;YACR,MAAM;YACN,iBAAiB;YACjB,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACtD,cAAc;YACd,WAAW,CAAC,cAAc,CAAC;YAC3B,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;;AApgCa,6BAAgB,GAAG,SAAS,CAAC;AAugC/C,SAAS,kBAAkB,CAAC,aAA4B;IACpD,QAAQ,aAAa,EAAE,CAAC;QACpB,KAAK,KAAK;YACN,mEAAmE;YACnE,4DAA4D;YAC5D,0CAA0C;YAC1C,OAAO;gBACH,WAAW,CAAC,cAAc,CAAC;gBAC3B,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;aACzD,CAAC;QACN;YACI,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,MAAoB,EACpB,mBAA2B,EAC3B,UAAsB,EACtB,UAAsB,EACb,EAAE;IACX,OAAO,CAAC,GAAQ,EAAE,KAAsB,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAC7D,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEvE,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,EAAE;YACvC,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAChC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpD,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;QAEpC,OAAO,MAAM,CAAC,OAAO,CAAC;YAClB,GAAG,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,WAAW,CAAC,UAAU,CAAC;YACvB,WAAW,CAAC,WAAW,CAAC;YACxB,WAAW,CAAC,eAAe,CAAC;YAC5B,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,gBAAgB;YAChE,YAAY,CAAC,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC3D,IAAI,EAAE,qBAAqB;YAC3B,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;SAC9C,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,OAAmB,EACnB,aAA4B,EACnB,EAAE;IACX,OAAO,CAAC,GAAQ,EAAE,KAAsB,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,aAAa,CAC3B,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EACjC,UAAU,CACb,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC;YAClB,GAAG,kBAAkB,CAAC,aAAa,CAAC;YACpC,WAAW,CAAC,SAAS,CAAC;YACtB,IAAI,EAAE,sBAAsB;YAC5B,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;SAC9C,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAmB,EAAE,EAAE;IAC3D,OAAO,CAAC,GAAQ,EAAE,KAAsB,EAAU,EAAE;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAC1B,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EACjC,UAAU,CACb,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC;YAClB,WAAW,CAAC,cAAc,CAAC;YAC3B,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACtD,WAAW,CAAC,QAAQ,CAAC;YACrB,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;SAC9C,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ // Copyright (c) 2024 The Bitcoin developers
2
+ // Distributed under the MIT software license, see the accompanying
3
+ // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
+
5
+ // @ts-check
6
+
7
+ import eslint from '@eslint/js';
8
+ import tseslint from 'typescript-eslint';
9
+
10
+ export default tseslint.config(
11
+ eslint.configs.recommended,
12
+ ...tseslint.configs.recommended,
13
+ {
14
+ ignores: ['dist/*'],
15
+ },
16
+ );
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "ecash-agora",
3
+ "version": "0.1.1rc",
4
+ "description": "Library for interacting with the eCash Agora protocol",
5
+ "main": "./dist/index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "build": "tsc && tsc -p ./tsconfig.build.json",
9
+ "test": "mocha --import=tsx ./src/*.test.ts ./src/**/*.test.ts",
10
+ "integration-tests": "mocha --import=tsx ./tests/*.test.ts --timeout 60000",
11
+ "coverage": "nyc npm run test",
12
+ "junit": "npm run test --reporter mocha-junit-reporter"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/Bitcoin-ABC/bitcoin-abc.git",
17
+ "directory": "modules/ecash-agora"
18
+ },
19
+ "keywords": [
20
+ "ecash",
21
+ "xec",
22
+ "bitcoin"
23
+ ],
24
+ "author": "Bitcoin ABC",
25
+ "license": "MIT",
26
+ "bugs": {
27
+ "url": "https://github.com/Bitcoin-ABC/bitcoin-abc/issues"
28
+ },
29
+ "homepage": "https://github.com/Bitcoin-ABC/bitcoin-abc#readme",
30
+ "devDependencies": {
31
+ "@istanbuljs/nyc-config-typescript": "^1.0.2",
32
+ "@types/chai": "^4.3.14",
33
+ "@types/chai-as-promised": "^7.1.8",
34
+ "@types/mocha": "^10.0.6",
35
+ "@types/node": "^20.12.7",
36
+ "chai": "^4.4.1",
37
+ "chai-as-promised": "^7.1.1",
38
+ "eslint-plugin-header": "^3.1.1",
39
+ "mocha": "^10.4.0",
40
+ "mocha-junit-reporter": "^2.2.1",
41
+ "nyc": "^15.1.0",
42
+ "source-map-support": "^0.5.21",
43
+ "ts-node": "^10.9.2",
44
+ "tsx": "^4.7.2",
45
+ "typescript": "^5.4.3",
46
+ "typescript-eslint": "^7.6.0"
47
+ },
48
+ "dependencies": {
49
+ "chronik-client": "file:../chronik-client",
50
+ "ecash-lib": "file:../ecash-lib"
51
+ }
52
+ }
@@ -0,0 +1,569 @@
1
+ // Copyright (c) 2024 The Bitcoin developers
2
+ // Distributed under the MIT software license, see the accompanying
3
+ // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
+
5
+ import { assert, expect, use } from 'chai';
6
+ import chaiAsPromised from 'chai-as-promised';
7
+ import { ChronikClient } from 'chronik-client';
8
+ import {
9
+ ALL_BIP143,
10
+ Ecc,
11
+ OutPoint,
12
+ P2PKHSignatory,
13
+ SLP_NFT1_CHILD,
14
+ SLP_NFT1_GROUP,
15
+ Script,
16
+ TxBuilder,
17
+ TxInput,
18
+ TxOutput,
19
+ fromHex,
20
+ initWasm,
21
+ shaRmd160,
22
+ slpGenesis,
23
+ slpSend,
24
+ toHex,
25
+ } from 'ecash-lib';
26
+ import { TestRunner } from 'ecash-lib/dist/test/testRunner.js';
27
+ import { parseAgoraTx } from '../src/ad.js';
28
+ import { AGORA_LOKAD_ID } from '../src/consts.js';
29
+ import {
30
+ AgoraOneshot,
31
+ AgoraOneshotAdSignatory,
32
+ AgoraOneshotSignatory,
33
+ } from '../src/oneshot.js';
34
+ import { Agora, AgoraOffer } from '../src/agora.js';
35
+
36
+ use(chaiAsPromised);
37
+
38
+ const NUM_COINS = 500;
39
+ const COIN_VALUE = 100000;
40
+
41
+ const SLP_TOKEN_TYPE_NFT1_GROUP = {
42
+ number: 0x81,
43
+ protocol: 'SLP' as const,
44
+ type: 'SLP_TOKEN_TYPE_NFT1_GROUP' as const,
45
+ };
46
+
47
+ const SLP_TOKEN_TYPE_NFT1_CHILD = {
48
+ number: 0x41,
49
+ protocol: 'SLP' as const,
50
+ type: 'SLP_TOKEN_TYPE_NFT1_CHILD' as const,
51
+ };
52
+
53
+ describe('SLP', () => {
54
+ let runner: TestRunner;
55
+ let chronik: ChronikClient;
56
+ let ecc: Ecc;
57
+
58
+ before(async () => {
59
+ await initWasm();
60
+ runner = await TestRunner.setup('setup_scripts/ecash-agora_base');
61
+ chronik = runner.chronik;
62
+ ecc = runner.ecc;
63
+ await runner.setupCoins(NUM_COINS, COIN_VALUE);
64
+ });
65
+
66
+ after(() => {
67
+ runner.stop();
68
+ });
69
+
70
+ it('SLP NFT1 Agora Oneshot', async () => {
71
+ // Tests the Agora Oneshot Script using SLP NFT1 tokens:
72
+ // 1. Seller creates an NFT1 GROUP token
73
+ // 2. Seller creates an NFT1 CHILD token using the group token
74
+ // 3. Seller sends the NFT to an ad setup output for an Agora Oneshot
75
+ // covenant that asks for 80000 sats
76
+ // 4. Seller finishes offer setup + sends NFT to the advertised P2SH
77
+ // 5. Buyer searches for NFT trades, finds the advertised one
78
+ // 6. Buyer attempts to buy the NFT using 79999 sats, which is rejected
79
+ // 7. Seller cancels the trade and changes the price to 70000 sats,
80
+ // with a new advertisement
81
+ // 8. Buyer searches for NFT trades again, finding both, one spent
82
+ // 9. Buyer successfully accepts advertized NFT offer for 70000 sats
83
+
84
+ // Create Agora object to access trades
85
+ const agora = new Agora(chronik);
86
+
87
+ const sellerSk = fromHex('11'.repeat(32));
88
+ const sellerPk = ecc.derivePubkey(sellerSk);
89
+ const sellerPkh = shaRmd160(sellerPk);
90
+ const sellerP2pkh = Script.p2pkh(sellerPkh);
91
+
92
+ const buyerSk = fromHex('22'.repeat(32));
93
+ const buyerPk = ecc.derivePubkey(buyerSk);
94
+ const buyerPkh = shaRmd160(buyerPk);
95
+ const buyerP2pkh = Script.p2pkh(buyerPkh);
96
+
97
+ await runner.sendToScript(50000, sellerP2pkh);
98
+
99
+ const utxos = await chronik.script('p2pkh', toHex(sellerPkh)).utxos();
100
+ expect(utxos.utxos.length).to.equal(1);
101
+ const utxo = utxos.utxos[0];
102
+
103
+ // 1. Seller creates an NFT1 GROUP token
104
+ const txBuildGenesisGroup = new TxBuilder({
105
+ inputs: [
106
+ {
107
+ input: {
108
+ prevOut: utxo.outpoint,
109
+ signData: {
110
+ value: utxo.value,
111
+ outputScript: sellerP2pkh,
112
+ },
113
+ },
114
+ signatory: P2PKHSignatory(sellerSk, sellerPk, ALL_BIP143),
115
+ },
116
+ ],
117
+ outputs: [
118
+ {
119
+ value: 0,
120
+ script: slpGenesis(
121
+ SLP_NFT1_GROUP,
122
+ {
123
+ tokenTicker: 'SLP NFT1 GROUP TOKEN',
124
+ decimals: 4,
125
+ },
126
+ 1,
127
+ ),
128
+ },
129
+ { value: 10000, script: sellerP2pkh },
130
+ ],
131
+ });
132
+ const genesisTx = txBuildGenesisGroup.sign(ecc);
133
+ const genesisTxid = (await chronik.broadcastTx(genesisTx.ser())).txid;
134
+ const groupTokenId = genesisTxid;
135
+
136
+ expect(await chronik.token(genesisTxid)).to.deep.equal({
137
+ tokenId: groupTokenId,
138
+ tokenType: SLP_TOKEN_TYPE_NFT1_GROUP,
139
+ genesisInfo: {
140
+ tokenTicker: 'SLP NFT1 GROUP TOKEN',
141
+ tokenName: '',
142
+ url: '',
143
+ hash: '',
144
+ decimals: 4,
145
+ },
146
+ timeFirstSeen: 1300000000,
147
+ });
148
+
149
+ // 2. Seller creates an NFT1 CHILD token using the group token
150
+ const txBuildGenesisChild = new TxBuilder({
151
+ inputs: [
152
+ {
153
+ input: {
154
+ prevOut: {
155
+ txid: genesisTxid,
156
+ outIdx: 1,
157
+ },
158
+ signData: {
159
+ value: 10000,
160
+ outputScript: sellerP2pkh,
161
+ },
162
+ },
163
+ signatory: P2PKHSignatory(sellerSk, sellerPk, ALL_BIP143),
164
+ },
165
+ ],
166
+ outputs: [
167
+ {
168
+ value: 0,
169
+ script: slpGenesis(
170
+ SLP_NFT1_CHILD,
171
+ {
172
+ tokenTicker: 'SLP NFT1 CHILD TOKEN',
173
+ decimals: 0,
174
+ },
175
+ 1,
176
+ ),
177
+ },
178
+ { value: 8000, script: sellerP2pkh },
179
+ ],
180
+ });
181
+ const genesisChildTx = txBuildGenesisChild.sign(ecc);
182
+ const genesisChildTxid = (
183
+ await chronik.broadcastTx(genesisChildTx.ser())
184
+ ).txid;
185
+ const childTokenId = genesisChildTxid;
186
+
187
+ expect(await chronik.token(childTokenId)).to.deep.equal({
188
+ tokenId: childTokenId,
189
+ tokenType: SLP_TOKEN_TYPE_NFT1_CHILD,
190
+ genesisInfo: {
191
+ tokenTicker: 'SLP NFT1 CHILD TOKEN',
192
+ tokenName: '',
193
+ url: '',
194
+ hash: '',
195
+ decimals: 0,
196
+ },
197
+ timeFirstSeen: 1300000000,
198
+ });
199
+
200
+ // 3. Seller sends the NFT to an ad setup output for an Agora Oneshot
201
+ // covenant that asks for 80000 sats
202
+ const enforcedOutputs: TxOutput[] = [
203
+ {
204
+ value: BigInt(0),
205
+ script: slpSend(childTokenId, SLP_NFT1_CHILD, [0, 1]),
206
+ },
207
+ { value: BigInt(80000), script: sellerP2pkh },
208
+ ];
209
+ const agoraOneshot = new AgoraOneshot({
210
+ enforcedOutputs,
211
+ cancelPk: sellerPk,
212
+ });
213
+ const agoraAdScript = agoraOneshot.adScript();
214
+ const agoraAdP2sh = Script.p2sh(shaRmd160(agoraAdScript.bytecode));
215
+ const txBuildAdSetup = new TxBuilder({
216
+ inputs: [
217
+ {
218
+ input: {
219
+ prevOut: {
220
+ txid: genesisChildTxid,
221
+ outIdx: 1,
222
+ },
223
+ signData: {
224
+ value: 8000,
225
+ outputScript: sellerP2pkh,
226
+ },
227
+ },
228
+ signatory: P2PKHSignatory(sellerSk, sellerPk, ALL_BIP143),
229
+ },
230
+ ],
231
+ outputs: [
232
+ {
233
+ value: 0,
234
+ script: slpSend(childTokenId, SLP_NFT1_CHILD, [1]),
235
+ },
236
+ { value: 7000, script: agoraAdP2sh },
237
+ ],
238
+ });
239
+ const adSetupTx = txBuildAdSetup.sign(ecc);
240
+ const adSetupTxid = (await chronik.broadcastTx(adSetupTx.ser())).txid;
241
+
242
+ // 4. Seller finishes offer setup + sends NFT to the advertised P2SH
243
+ const agoraScript = agoraOneshot.script();
244
+ const agoraP2sh = Script.p2sh(shaRmd160(agoraScript.bytecode));
245
+ const txBuildOffer = new TxBuilder({
246
+ inputs: [
247
+ {
248
+ input: {
249
+ prevOut: {
250
+ txid: adSetupTxid,
251
+ outIdx: 1,
252
+ },
253
+ signData: {
254
+ value: 7000,
255
+ redeemScript: agoraAdScript,
256
+ },
257
+ },
258
+ signatory: AgoraOneshotAdSignatory(sellerSk),
259
+ },
260
+ ],
261
+ outputs: [
262
+ {
263
+ value: 0,
264
+ script: slpSend(childTokenId, SLP_NFT1_CHILD, [1]),
265
+ },
266
+ { value: 546, script: agoraP2sh },
267
+ ],
268
+ });
269
+ const offerTx = txBuildOffer.sign(ecc);
270
+ const offerTxid = (await chronik.broadcastTx(offerTx.ser())).txid;
271
+ const offerOutpoint: OutPoint = {
272
+ txid: offerTxid,
273
+ outIdx: 1,
274
+ };
275
+ const offerTxBuilderInput: TxInput = {
276
+ prevOut: offerOutpoint,
277
+ signData: {
278
+ redeemScript: agoraScript,
279
+ value: 546,
280
+ },
281
+ };
282
+
283
+ // Expected created offer
284
+ const expectedOffer = new AgoraOffer({
285
+ variant: {
286
+ type: 'ONESHOT',
287
+ params: agoraOneshot,
288
+ },
289
+ outpoint: offerOutpoint,
290
+ txBuilderInput: offerTxBuilderInput,
291
+ token: {
292
+ tokenId: childTokenId,
293
+ tokenType: SLP_TOKEN_TYPE_NFT1_CHILD,
294
+ amount: '1',
295
+ isMintBaton: false,
296
+ },
297
+ });
298
+
299
+ // 5. Buyer searches for NFT trades, finds the advertised one
300
+ expect(await agora.allOfferedTokenIds()).to.deep.equal([childTokenId]);
301
+ expect(await agora.offeredGroupTokenIds()).to.deep.equal([
302
+ groupTokenId,
303
+ ]);
304
+ expect(await agora.offeredFungibleTokenIds()).to.deep.equal([]);
305
+
306
+ // Query by group token ID
307
+ expect(
308
+ await agora.activeOffersByGroupTokenId(groupTokenId),
309
+ ).to.deep.equal([expectedOffer]);
310
+ // activeOffersByGroupTokenId with child token ID -> empty result
311
+ expect(
312
+ await agora.activeOffersByGroupTokenId(childTokenId),
313
+ ).to.deep.equal([]);
314
+
315
+ // Query by child token ID
316
+ expect(await agora.activeOffersByTokenId(childTokenId)).to.deep.equal([
317
+ expectedOffer,
318
+ ]);
319
+ // activeOffersByTokenId with by group token ID -> empty result
320
+ expect(await agora.activeOffersByTokenId(groupTokenId)).to.deep.equal(
321
+ [],
322
+ );
323
+
324
+ // Query by cancelPk
325
+ expect(await agora.activeOffersByPubKey(toHex(sellerPk))).to.deep.equal(
326
+ [expectedOffer],
327
+ );
328
+
329
+ // Use LOKAD ID enpoint + parseAgoraTx to find offers
330
+ const agoraTxs = (
331
+ await chronik.lokadId(toHex(AGORA_LOKAD_ID)).history()
332
+ ).txs;
333
+ expect(agoraTxs.length).to.be.equal(1);
334
+ const agoraTx = agoraTxs[0];
335
+ expect(agoraTx.inputs.length).to.be.equal(1);
336
+ const parsedAd = parseAgoraTx(agoraTx);
337
+ if (parsedAd === undefined) {
338
+ throw 'Parsing agora tx failed';
339
+ }
340
+ if (parsedAd.type !== 'ONESHOT') {
341
+ throw 'Expected ONESHOT offer in this test';
342
+ }
343
+ expect(parsedAd).to.be.deep.equal({
344
+ type: 'ONESHOT',
345
+ params: agoraOneshot,
346
+ outpoint: offerOutpoint,
347
+ spentBy: undefined,
348
+ txBuilderInput: offerTxBuilderInput,
349
+ });
350
+
351
+ // 6. Buyer attempts to buy the NFT using 79999 sats, which is rejected
352
+ const buyerSatsTxid = await runner.sendToScript(90000, buyerP2pkh);
353
+ const txBuildAcceptFail = new TxBuilder({
354
+ version: 2,
355
+ inputs: [
356
+ {
357
+ input: parsedAd.txBuilderInput,
358
+ signatory: AgoraOneshotSignatory(
359
+ buyerSk,
360
+ buyerPk,
361
+ parsedAd.params.enforcedOutputs.length,
362
+ ),
363
+ },
364
+ {
365
+ input: {
366
+ prevOut: {
367
+ txid: buyerSatsTxid,
368
+ outIdx: 0,
369
+ },
370
+ signData: {
371
+ value: 90000,
372
+ outputScript: buyerP2pkh,
373
+ },
374
+ },
375
+ signatory: P2PKHSignatory(buyerSk, buyerPk, ALL_BIP143),
376
+ },
377
+ ],
378
+ outputs: [
379
+ {
380
+ value: 0,
381
+ script: slpSend(childTokenId, SLP_NFT1_CHILD, [0, 1]),
382
+ },
383
+ // failure: one sat missing
384
+ { value: 79999, script: sellerP2pkh },
385
+ { value: 546, script: buyerP2pkh },
386
+ ],
387
+ });
388
+
389
+ // Accepting trade failed, must send 80000 sats to seller, but sent 79999
390
+ const acceptFailTx = txBuildAcceptFail.sign(ecc);
391
+ // OP_EQUALVERIFY failed
392
+ assert.isRejected(chronik.broadcastTx(acceptFailTx.ser()));
393
+
394
+ // 7. Seller cancels the trade and changes the price to 70000 sats,
395
+ // with a new advertisement
396
+ const newEnforcedOutputs: TxOutput[] = [
397
+ {
398
+ value: BigInt(0),
399
+ script: slpSend(childTokenId, SLP_NFT1_CHILD, [0, 1]),
400
+ },
401
+ { value: BigInt(70000), script: sellerP2pkh },
402
+ ];
403
+ const newAgoraOneshot = new AgoraOneshot({
404
+ enforcedOutputs: newEnforcedOutputs,
405
+ cancelPk: sellerPk,
406
+ });
407
+ const newAgoraScript = newAgoraOneshot.script();
408
+ const newAgoraP2sh = Script.p2sh(shaRmd160(newAgoraScript.bytecode));
409
+ const newAgoraAdScript = newAgoraOneshot.adScript();
410
+ const cancelFeeSats = 600;
411
+ const newAdSetupTxid = await runner.sendToScript(
412
+ cancelFeeSats,
413
+ Script.p2sh(shaRmd160(newAgoraAdScript.bytecode)),
414
+ );
415
+ const offer1 = (await agora.activeOffersByTokenId(childTokenId))[0];
416
+ const offer1AdInput = {
417
+ input: {
418
+ prevOut: {
419
+ txid: newAdSetupTxid,
420
+ outIdx: 0,
421
+ },
422
+ signData: {
423
+ value: cancelFeeSats,
424
+ redeemScript: newAgoraAdScript,
425
+ },
426
+ },
427
+ signatory: AgoraOneshotAdSignatory(sellerSk),
428
+ };
429
+ expect(offer1.askedSats()).to.equal(80000n);
430
+ expect(
431
+ offer1.cancelFeeSats({
432
+ recipientScript: newAgoraP2sh,
433
+ extraInputs: [offer1AdInput],
434
+ }),
435
+ ).to.equal(BigInt(cancelFeeSats));
436
+ const cancelTx = offer1.cancelTx({
437
+ ecc,
438
+ cancelSk: sellerSk,
439
+ fuelInputs: [offer1AdInput],
440
+ recipientScript: newAgoraP2sh,
441
+ });
442
+ expect(cancelTx.serSize()).to.equal(cancelFeeSats);
443
+ const newOfferTxid = (await chronik.broadcastTx(cancelTx.ser())).txid;
444
+ const newOfferOutpoint: OutPoint = {
445
+ txid: newOfferTxid,
446
+ outIdx: 1,
447
+ };
448
+ const newOfferTxBuilderInput: TxInput = {
449
+ prevOut: newOfferOutpoint,
450
+ signData: {
451
+ redeemScript: newAgoraScript,
452
+ value: 546,
453
+ },
454
+ };
455
+
456
+ // 8. Buyer searches for NFT trades again, finding both, one spent
457
+ expect(await agora.allOfferedTokenIds()).to.deep.equal([childTokenId]);
458
+ expect(await agora.offeredGroupTokenIds()).to.deep.equal([
459
+ groupTokenId,
460
+ ]);
461
+ expect(await agora.offeredFungibleTokenIds()).to.deep.equal([]);
462
+
463
+ const newExpectedOffer = new AgoraOffer({
464
+ variant: {
465
+ type: 'ONESHOT',
466
+ params: newAgoraOneshot,
467
+ },
468
+ outpoint: newOfferOutpoint,
469
+ txBuilderInput: newOfferTxBuilderInput,
470
+ token: {
471
+ tokenId: childTokenId,
472
+ tokenType: SLP_TOKEN_TYPE_NFT1_CHILD,
473
+ amount: '1',
474
+ isMintBaton: false,
475
+ },
476
+ });
477
+
478
+ expect(
479
+ await agora.activeOffersByGroupTokenId(groupTokenId),
480
+ ).to.deep.equal([newExpectedOffer]);
481
+ expect(await agora.activeOffersByTokenId(childTokenId)).to.deep.equal([
482
+ newExpectedOffer,
483
+ ]);
484
+ expect(await agora.activeOffersByPubKey(toHex(sellerPk))).to.deep.equal(
485
+ [newExpectedOffer],
486
+ );
487
+
488
+ // Use LOKAD ID index + parseAgoraTx to find the offers
489
+ const newAgoraTxs = (
490
+ await chronik.lokadId(toHex(AGORA_LOKAD_ID)).history()
491
+ ).txs;
492
+ expect(newAgoraTxs.length).to.equal(2);
493
+ newAgoraTxs.sort(
494
+ (a, b) => +!a.outputs[1].spentBy - +!b.outputs[1].spentBy,
495
+ );
496
+ const parsedAds = newAgoraTxs.map(parseAgoraTx);
497
+ expect(parsedAds).to.deep.equal([
498
+ {
499
+ type: 'ONESHOT',
500
+ params: agoraOneshot,
501
+ outpoint: offerOutpoint,
502
+ txBuilderInput: offerTxBuilderInput,
503
+ spentBy: {
504
+ txid: newOfferTxid,
505
+ outIdx: 1,
506
+ },
507
+ },
508
+ {
509
+ type: 'ONESHOT',
510
+ params: newAgoraOneshot,
511
+ outpoint: newOfferOutpoint,
512
+ txBuilderInput: newOfferTxBuilderInput,
513
+ spentBy: undefined,
514
+ },
515
+ ]);
516
+
517
+ // 9. Buyer successfully accepts advertized NFT offer for 70000 sats
518
+ const offer2 = (await agora.activeOffersByTokenId(childTokenId))[0];
519
+ expect(offer2.askedSats()).to.equal(70000n);
520
+ const acceptFeeSats = 740;
521
+ const acceptSats = acceptFeeSats + Number(offer2.askedSats());
522
+ const acceptSatsTxid = await runner.sendToScript(
523
+ acceptSats,
524
+ buyerP2pkh,
525
+ );
526
+ const offer2AcceptInput = {
527
+ input: {
528
+ prevOut: {
529
+ txid: acceptSatsTxid,
530
+ outIdx: 0,
531
+ },
532
+ signData: {
533
+ value: acceptSats,
534
+ outputScript: buyerP2pkh,
535
+ },
536
+ },
537
+ signatory: P2PKHSignatory(buyerSk, buyerPk, ALL_BIP143),
538
+ };
539
+ expect(
540
+ offer2.acceptFeeSats({
541
+ recipientScript: buyerP2pkh,
542
+ extraInputs: [offer2AcceptInput],
543
+ }),
544
+ ).to.equal(BigInt(acceptFeeSats));
545
+ const acceptSuccessTx = offer2.acceptTx({
546
+ ecc,
547
+ covenantSk: buyerSk,
548
+ covenantPk: buyerPk,
549
+ fuelInputs: [offer2AcceptInput],
550
+ recipientScript: buyerP2pkh,
551
+ });
552
+ expect(acceptSuccessTx.serSize()).to.equal(acceptFeeSats);
553
+ await chronik.broadcastTx(acceptSuccessTx.ser());
554
+
555
+ // No trades left anymore
556
+ expect(await agora.allOfferedTokenIds()).to.deep.equal([]);
557
+ expect(await agora.offeredGroupTokenIds()).to.deep.equal([]);
558
+ expect(await agora.offeredFungibleTokenIds()).to.deep.equal([]);
559
+ expect(
560
+ await agora.activeOffersByGroupTokenId(groupTokenId),
561
+ ).to.deep.equal([]);
562
+ expect(await agora.activeOffersByTokenId(childTokenId)).to.deep.equal(
563
+ [],
564
+ );
565
+ expect(await agora.activeOffersByPubKey(toHex(sellerPk))).to.deep.equal(
566
+ [],
567
+ );
568
+ });
569
+ });