@keetanetwork/anchor 0.0.26 → 0.0.28

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.
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAC;AAEzE,cAAc,mBAAmB,CAAC;AAwBlC,MAAM,UAAU,UAAU,CAAC,KAAgB;IAC1C,OAAM,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,OAAM,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,OAAM,CAAC,KAAK,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAe;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC9C,MAAK,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAK,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAM,CAAC,KAAK,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACxC,OAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,OAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC/C,MAAK,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAK,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAM,CAAC,KAAK,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACzC,OAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IAC1C,OAAM,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAK,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAM,CAAC,KAAK,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,OAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAClE,CAAC;AAoCA,CAAC;AAMD,CAAC;AA0BF,MAAM,UAAU,mBAAmB,CAAC,KAAc;IACjD,OAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAS,CAAC,EAAE,KAAc;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC,CAAC,CAAC,CAAC;AACL,CAAC;AAID;;GAEG;AACH,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC,SAAS,gBAAgB,CAAC,IAAyB;IAClD,MAAM,KAAK,GAAsC,CAAC,CAAE,EAAE,EAAE,IAAI,CAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAmC,EAAE,CAAC;IAElD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,SAAS;QACV,CAAC;QAED,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,GAAG,IAAI,CAAC;QACjC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,SAAS;QACV,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,CAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,CAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,KAAK,MAAM,CAAE,GAAG,EAAE,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,yEAAyE;gBACzE,KAAK,CAAC,IAAI,CAAC,CAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAA4B,CAAE,CAAC,CAAC;YACjF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,CAAE,MAAM,EAAE,OAAO,CAAE,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,4BAA4B,EAAE,CAAC;YACjD,MAAK,CAAC,IAAI,oBAAoB,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAC9E,CAAC;IACF,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;YACxC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,MAAM;YACnB,iBAAiB,EAAE,KAAK;SACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAA8B;IAChF,IAAI,KAAK,YAAY,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/I,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,OAAM,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,KAAK,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,OAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACP,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAM,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACnE,OAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC;AACF,CAAC;AAQD,SAAS,eAAe,CAAC,KAAc;IACtC,OAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC7C,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,OAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACpC,CAAC;AAGD,MAAM,UAAU,wCAAwC,CAAC,KAAkB;IAC1E,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAM,CAAC;YACN,IAAI,EAAE,kCAAkC,CAAC,KAAK,CAAC,IAAI,CAAC;YACpD,EAAE,EAAE,kCAAkC,CAAC,KAAK,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,OAAM,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;AACF,CAAC;AAiCD,MAAM,UAAU,6DAA6D,CAAC,KAA8G;IAC3L,OAAM,CAAC,gBAAgB,CAAC;QACvB,KAAK,EAAE,wCAAwC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5D,IAAI,EAAE,EAAE,QAAQ,EAAE,oCAAoC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC7E,EAAE,EAAE,EAAE,QAAQ,EAAE,oCAAoC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE;QACxG,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;KAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAsHD,MAAM,UAAU,8DAA8D,CAAC,KAAuD;IACrI,OAAM,CAAC,CAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAE,CAAC,CAAC;AACzC,CAAC;AA0KD,MAAM,UAAU,sFAAsF,CAAC,KAAgK;IACtQ,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,OAAM,CAAC,gBAAgB,CAAC;QACvB,KAAK,EAAE,EAAE,IAAI,EAAE,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,kCAAkC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAC/G,QAAQ,EAAE,oCAAoC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9D,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAuBD,MAAM,UAAU,0EAA0E,CAAC,aAAgJ;IAC1O,OAAM,CAAC,CAAE,gBAAgB,CAAE,CAAC,CAAC;AAC9B,CAAC;AAgDD,MAAM,UAAU,uEAAuE,CAAC,KAAkI;IACzN,OAAM,CAAC,gBAAgB,CAAC;QACvB,cAAc,EAAE,oCAAoC,CAAC,KAAK,CAAC,cAAc,CAAC;QAC1E,KAAK,EAAE,wCAAwC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5D,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,qBAAqB,IAAI,KAAK,CAAC,CAAC,CAAC;YACpC,mBAAmB,EAAE,oCAAoC,CAAC,KAAK,CAAC,mBAAmB,CAAC;YACpF,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;SAC5C,CAAC,CAAC,CAAC;YACH,2BAA2B,EAAE,KAAK,CAAC,2BAA2B;SAC9D,CAAC;KACF,CAAC,CAAC,CAAA;AACJ,CAAC;AA2CD,MAAM,UAAU,qEAAqE,CAAC,aAAsI;IAC3N,OAAM,CAAC,CAAE,sCAAsC,CAAE,CAAC,CAAC;AACpD,CAAC;AA8BD,MAAM,UAAU,6DAA6D,CAAC,aAAsH;IACnM,OAAM,CAAC,CAAE,mBAAmB,CAAE,CAAC,CAAC;AACjC,CAAC;AAoBD,MAAM,UAAU,qDAAqD,CAAC,aAAsG;IAC3K,OAAM,CAAC,CAAE,WAAW,CAAE,CAAC,CAAC;AACzB,CAAC;AASD,MAAM,CAAC,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2E,CAAC;AACnH,MAAM,CAAC,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2J,CAAC;AACxO,MAAM,CAAC,MAAM,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmK,CAAC;AACjP,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+I,CAAC;AACnN,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;OAAyI,CAAC;AAC7M,MAAM,CAAC,MAAM,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiJ,CAAC;AACtN,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuJ,CAAC;AAClO,MAAM,CAAC,MAAM,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+J,CAAC;AAC3O,MAAM,CAAC,MAAM,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuL,CAAC;AAC/Q,MAAM,CAAC,MAAM,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyL,CAAC;AACrR,MAAM,CAAC,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiK,CAAC;AACjP,MAAM,CAAC,MAAM,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyK,CAAC;AAC1P,MAAM,CAAC,MAAM,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiM,CAAC;AAC9R,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA6F,CAAC;AAC3I,MAAM,CAAC,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuH,CAAC;AAClL,MAAM,CAAC,MAAM,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+H,CAAC;AAE3L,MAAM,CAAC,MAAM,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;sFAA4I,CAAC;AAC3M,MAAM,CAAC,MAAM,kDAAkD,gJAA8I,CAAC;AAC9M,MAAM,CAAC,MAAM,8DAA8D,iyLAAsK,CAAC;AAClP,MAAM,CAAC,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sFAAwK,CAAC;AACrP,MAAM,CAAC,MAAM,2EAA2E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sFAAgM,CAAC;AACzR,MAAM,CAAC,MAAM,4DAA4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sFAAkK,CAAC;AAC5O,MAAM,CAAC,MAAM,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sFAA8I,CAAC;AAC9M,MAAM,CAAC,MAAM,mDAAmD;;;;;;;;;;;;;;;;;;;sFAAgJ,CAAC;AACjN,MAAM,CAAC,MAAM,sEAAsE;;;;;;;;;;;;;;;;;;;sFAAsL,CAAC;AAC1Q,MAAM,CAAC,MAAM,0CAA0C;;;;;;;sFAA8H,CAAC;AAgBtL,MAAM,CAAC,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiK,CAAC;AAO9O,MAAM,2CAA4C,SAAQ,oBAAoB;IAC7E,MAAM,CAAmB,IAAI,GAAW,6CAA6C,CAAC;IACrE,uDAAuD,CAAU;IAC1E,MAAM,CAAU,uDAAuD,GAAG,sCAAsC,CAAC;IAEhH,mBAAmB,CAAY;IAC/B,gBAAgB,CAAuB;IACvC,OAAO,CAAiE;IACxE,eAAe,CAAwB;IAEhD,YAAY,IAKX,EAAE,OAAgB;QAClB,KAAK,CAAC,OAAO,IAAI,8CAA8C,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAEtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,yDAAyD,EAAE;YACtF,KAAK,EAAE,2CAA2C,CAAC,uDAAuD;YAC1G,UAAU,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAc;QAC/B,OAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,yDAAyD,EAAE,2CAA2C,CAAC,uDAAuD,CAAC,CAAC,CAAC;IACtM,CAAC;IAGD,eAAe,CAAC,WAA8C;QAC7D,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE1F,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;YACxC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;gBACxB,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,8CAA8C;gBACpD,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE;gBACzE,KAAK,EAAE,IAAI,CAAC,OAAO;aACnB,CAAC,CAAC;QACJ,CAAC;QAED,OAAM,CAAC;YACN,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,WAAW;SACxB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACL,OAAM,CAAC;YACN,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAS,OAAO;gBACjE,OAAM,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC;YACF,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAS,IAAI;gBACtD,OAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC;SACF,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAc;QACnC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEpE,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;YACxB,MAAK,CAAC,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,MAAM,GAAG,+DAA+D,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3F,MAAM,KAAK,GAAG,IAAI,IAAI,CACrB;YACC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAS,YAAY;gBACxE,OAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,UAAS,UAAU;gBAC9D,OAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC;SACF,EACD,OAAO,CACP,CAAC;QAEF,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;;AAGF,MAAM,CAAC,MAAM,MAAM,GAEf;IACH;;OAEG;IACH,cAAc,EAAE,2CAA2C;CAC3D,CAAC","sourcesContent":["import type { ServiceMetadata } from '../../lib/resolver.ts';\nimport { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport * as CurrencyInfo from '@keetanetwork/currency-info';\nimport type { AccountKeyAlgorithm, IdentifierKeyAlgorithm, TokenAddress, TokenPublicKeyString } from '@keetanetwork/keetanet-client/lib/account.js';\nimport { createAssert, createAssertEquals, createIs } from 'typia';\nimport type { ToJSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nimport type { HTTPSignedField } from '../../lib/http-server/common.js';\nimport type { Signable } from '../../lib/utils/signing.js';\nimport type { SharableCertificateAttributes } from '../../lib/certificates.js';\nimport { KeetaNet } from '../../client/index.js';\nimport { KeetaAnchorUserError } from '../../lib/error.js';\nimport type { AssetLocationLike, AssetLocationString, AssetLocationInput, AssetLocationCanonical } from './lib/location.js';\nimport { convertAssetLocationInputToCanonical } from './lib/location.js';\n\nexport * from './lib/location.js';\n\ntype HexString = `0x${string}`;\n\n\nexport type KeetaNetAccount = InstanceType<typeof KeetaNetLib.Account>;\nexport type KeetaNetTokenPublicKeyString = ReturnType<InstanceType<typeof KeetaNetLib.Account<typeof KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN>>['publicKeyString']['get']>;\n\nexport type ISOCountryCode = CurrencyInfo.ISOCountryCode;\n\ntype CurrencySearchCanonical = CurrencyInfo.ISOCurrencyCode | `$${string}`; /* XXX:TODO */\ntype CurrencySearchInput = CurrencySearchCanonical | CurrencyInfo.Currency;\n\ntype TokenSearchInput = TokenAddress | TokenPublicKeyString;\ntype TokenSearchCanonical = TokenPublicKeyString;\n\nexport type EVMAsset = `evm:${HexString}`;\nexport type TronAsset = `tron:${string}`;\nexport type SolanaAsset = `solana:${string}`;\nexport type ChainAssetString = SolanaAsset | EVMAsset | TronAsset | TokenPublicKeyString;\nexport type MovableAssetSearchInput = CurrencySearchInput | TokenSearchInput | ChainAssetString;\nexport type MovableAssetSearchCanonical = CurrencySearchCanonical | TokenSearchCanonical | ChainAssetString;\nexport type MovableAsset = TokenAddress | TokenPublicKeyString | CurrencySearchInput | ChainAssetString;\n\nexport function toEVMAsset(input: HexString): EVMAsset {\n\treturn(`evm:${input}`);\n}\n\nfunction isHexString(input: unknown): input is HexString {\n\tif (typeof input === 'string' && input.startsWith('0x')) {\n\t\treturn(true);\n\t}\n\n\treturn(false);\n}\n\nexport function parseEVMAsset(input: EVMAsset): HexString {\n\tconst parts = input.split(':');\n\tif (parts.length !== 2 || parts[0] !== 'evm') {\n\t\tthrow(new Error('Invalid EVMAsset string'));\n\t}\n\n\tconst value = parts[1];\n\tif (!isHexString(value)) {\n\t\tthrow(new Error('Invalid hex string in EVMAsset'));\n\t}\n\n\treturn(value);\n}\n\nexport function isEVMAsset(input: unknown): input is EVMAsset {\n\treturn(typeof input === 'string' && input.startsWith('evm:0x'));\n}\n\nexport function toTronAsset(input: string): TronAsset {\n\treturn(`tron:${input}`);\n}\n\nexport function parseTronAsset(input: TronAsset): string {\n\tconst parts = input.split(':');\n\tif (parts.length !== 2 || parts[0] !== 'tron') {\n\t\tthrow(new Error('Invalid TronAsset string'));\n\t}\n\n\tconst value = parts[1];\n\tif (!value || typeof value !== 'string' || value.length === 0) {\n\t\tthrow(new Error('Invalid hex string in TronAsset'));\n\t}\n\n\treturn(value);\n}\n\nexport function isTronAsset(input: unknown): input is TronAsset {\n\treturn(typeof input === 'string' && input.startsWith('tron:'));\n}\n\nexport function toSolanaAsset(input: string): SolanaAsset {\n\treturn(`solana:${input}`);\n}\n\nexport function parseSolanaAsset(input: SolanaAsset): string {\n\tconst parts = input.split(':');\n\tif (parts.length !== 2 || parts[0] !== 'solana') {\n\t\tthrow(new Error('Invalid SolanaAsset string'));\n\t}\n\tconst value = parts[1];\n\tif (!value || typeof value !== 'string' || value.length === 0) {\n\t\tthrow(new Error('Invalid string in SolanaAsset'));\n\t}\n\treturn(value);\n}\n\nexport function isSolanaAsset(input: unknown): input is SolanaAsset {\n\treturn(typeof input === 'string' && input.startsWith('solana:'));\n}\n\nexport type ProviderSearchInput = {\n\tasset?: MovableAsset | AssetPair;\n\tfrom?: AssetLocationInput;\n\tto?: AssetLocationInput;\n\trail?: Rail | Rail[];\n}\n\n// A given asset should have a location and ID for the contract or public key for that asset\nexport interface Asset {\n\tlocation?: AssetLocationString;\n\t/**\n\t * Keeta token public key string, evm contract address, or a currency code\n\t */\n\tid: string;\n}\n\ntype FiatRails = 'ACH' | 'ACH_DEBIT' | 'WIRE' | 'WIRE_RECEIVE' | 'PIX_PUSH' | 'SPEI_PUSH' | 'WIRE_INTL_PUSH' | 'CLABE_PUSH' | 'SEPA_PUSH';\ntype CryptoRails = 'KEETA_SEND' | 'EVM_SEND' | 'EVM_CALL' | 'SOLANA_SEND' | 'BITCOIN_SEND' | 'TRON_SEND';\nexport type Rail = FiatRails | CryptoRails;\n\n// Rails can be inbound, outbound or common (inbound and outbound)\nexport interface AssetWithRails extends Asset {\n\trails: (({\n\t\tinbound: Rail[];\n\t\toutbound?: Rail[];\n\t} | {\n\t\tinbound?: Rail[];\n\t\toutbound: Rail[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: Rail[];\n\t});\n};\n\n// A given asset path should consist of exactly one tuple of locations\nexport interface AssetPath {\n\tpair: [ AssetWithRails, AssetWithRails ];\n\tkycProviders?: string[];\n};\n\nexport type AssetMetadataTargetValue = TokenPublicKeyString | CurrencySearchCanonical | `$${string}`;\nexport interface SupportedAssets {\n\tasset: AssetMetadataTargetValue | [ AssetMetadataTargetValue, AssetMetadataTargetValue ];\n\tpaths: AssetPath[];\n}\n\nexport interface AssetWithRailsMetadata {\n\tlocation: string;\n\tid: string;\n\trails: (({\n\t\tinbound: Rail[];\n\t\toutbound?: Rail[];\n\t} | {\n\t\tinbound?: Rail[];\n\t\toutbound: Rail[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: Rail[];\n\t})\n}\n\n\nexport function commonJSONStringify(input: unknown): string {\n\treturn(JSON.stringify(input, function(_, value: unknown) {\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn(String(value));\n\t\t} else if (KeetaNet.lib.Account.isInstance(value)) {\n\t\t\treturn(value.publicKeyString.get());\n\t\t}\n\n\t\treturn(value);\n\t}));\n}\n\ntype SignableObjectInput = { [key: string | number | symbol]: SignableObjectInput } | SignableObjectInput[] | Signable[number] | undefined | null | boolean;\n\n/**\n * The maximum queue length for the commonToSignable function to prevent DoS attacks\n */\nconst TO_SIGNABLE_MAX_QUEUE_LENGTH = 250;\n\nfunction commonToSignable(item: SignableObjectInput): Signable {\n\tconst queue: [ string, SignableObjectInput ][] = [[ '', item ]];\n\tconst result: [ string, Signable[number] ][] = [];\n\n\twhile (queue.length > 0) {\n\t\tconst next = queue.shift();\n\n\t\tif (!next) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [ prefix, current ] = next;\n\t\tif (current === null || current === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof current === 'boolean') {\n\t\t\tresult.push([ prefix, current ? 1 : 0 ]);\n\t\t} else if (Array.isArray(current)) {\n\t\t\tfor (let i = 0; i < current.length; i++) {\n\t\t\t\tqueue.push([ `${prefix}[${i}]`, current[i] ]);\n\t\t\t}\n\t\t} else if (typeof current === 'object') {\n\t\t\tfor (const [ key, value ] of Object.entries(current)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tqueue.push([ prefix ? `${prefix}.${key}` : key, value as SignableObjectInput ]);\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push([ prefix, current ]);\n\t\t}\n\n\t\tif (queue.length > TO_SIGNABLE_MAX_QUEUE_LENGTH) {\n\t\t\tthrow(new KeetaAnchorUserError('Too much data to sign in commonToSignable'));\n\t\t}\n\t}\n\n\tresult.sort((a, b) => {\n\t\treturn(a[0].localeCompare(b[0], 'en-US', {\n\t\t\tusage: 'sort',\n\t\t\tnumeric: true,\n\t\t\tsensitivity: 'case',\n\t\t\tignorePunctuation: false\n\t\t}));\n\t});\n\n\treturn(result.map(item => item[1]));\n}\n\nexport function convertAssetSearchInputToCanonical(input: MovableAssetSearchInput): MovableAssetSearchCanonical {\n\tif (input instanceof CurrencyInfo.Currency || CurrencyInfo.Currency.isCurrencyCode(input) || CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\tif (CurrencyInfo.Currency.isCurrencyCode(input)) {\n\t\t\treturn(input);\n\t\t} else if (CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\t\tinput = new CurrencyInfo.Currency(input);\n\t\t}\n\n\t\treturn(input.code);\n\t} else {\n\t\tif (typeof input === 'string') {\n\t\t\treturn(input);\n\t\t}\n\n\t\tinput.assertKeyType(KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN);\n\t\treturn(input.publicKeyString.get());\n\t}\n}\n\nexport type AssetPair<From extends MovableAsset = MovableAsset, To extends MovableAsset = MovableAsset> = { from: From; to: To; };\nexport type AssetOrPair = MovableAsset | AssetPair;\n\nexport type AssetPairCanonical<From extends MovableAssetSearchCanonical = MovableAssetSearchCanonical, To extends MovableAssetSearchCanonical = MovableAssetSearchCanonical> = { from: From; to: To; };\nexport type AssetOrPairCanonical = MovableAssetSearchCanonical | AssetPairCanonical;\n\nfunction isAssetPairLike(input: unknown): input is AssetPair {\n\treturn(typeof input === 'object' && input !== null && 'from' in input && 'to' in input);\n}\n\nexport function toAssetPair(input: AssetOrPair): AssetPair {\n\tif (isAssetPairLike(input)) {\n\t\treturn(input);\n\t}\n\n\treturn({ from: input, to: input });\n}\n\n\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetOrPair): AssetOrPairCanonical {\n\tif (isAssetPairLike(input)) {\n\t\treturn({\n\t\t\tfrom: convertAssetSearchInputToCanonical(input.from),\n\t\t\tto: convertAssetSearchInputToCanonical(input.to)\n\t\t});\n\t} else {\n\t\treturn(convertAssetSearchInputToCanonical(input));\n\t}\n}\n\n\nexport type Operations = NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'];\nexport type OperationNames = keyof Operations;\n\nexport type RecipientResolved = AddressResolved | { type: 'persistent-address'; persistentAddressId: string; };\n\n\ntype ConvertToExternalRequest<\n\tInternal extends object,\n\tOverrides extends object,\n\tSigned = { signed?: HTTPSignedField | undefined }\n> =\n\tToJSONSerializable<Omit<Internal, keyof Overrides>> &\n\tOverrides &\n\tSigned;\n\nexport type KeetaAssetMovementAnchorInitiateTransferClientRequest = {\n\taccount?: KeetaNetAccount | undefined;\n\tasset: AssetOrPair;\n\tfrom: { location: AssetLocationLike; };\n\tto: { location: AssetLocationLike; recipient: RecipientResolved; };\n\tvalue: string | bigint;\n\tallowedRails?: Rail[];\n}\n\nexport type KeetaAssetMovementAnchorInitiateTransferRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorInitiateTransferClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tfrom: { location: AssetLocationCanonical; };\n\tto: { location: AssetLocationCanonical; recipient: RecipientResolved; };\n}>;\n\nexport function getKeetaAssetMovementAnchorInitiateTransferRequestSigningData(input: KeetaAssetMovementAnchorInitiateTransferClientRequest | KeetaAssetMovementAnchorInitiateTransferRequest): Signable {\n\treturn(commonToSignable({\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\tfrom: { location: convertAssetLocationInputToCanonical(input.from.location) },\n\t\tto: { location: convertAssetLocationInputToCanonical(input.to.location), recipient: input.to.recipient },\n\t\tvalue: String(input.value)\n\t}));\n}\n\nexport type AssetTransferInstructions = ({\n\ttype: 'KEETA_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: string;\n\n\texternal?: string;\n} | {\n\ttype: 'EVM_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: HexString;\n} | {\n\ttype: 'EVM_CALL';\n\tlocation: AssetLocationLike;\n\n\tcontractAddress: string;\n\tcontractMethodName: string;\n\tcontractMethodArgs: string[];\n} | {\n\ttype: 'WIRE' | 'ACH' | 'SEPA_PUSH';\n\n\t/**\n\t * The resolved bank account address details to send funds to\n\t */\n\taccount: BankAccountAddressResolved;\n\n\t/**\n\t * Optional deposit message to include with the transfer, ex: for wire this is a reference note.\n\t */\n\tdepositMessage?: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\tvalue: string;\n} | {\n\ttype: 'TRON_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Tron address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. SUN for TRX).\n\t */\n\tvalue: string;\n\n\t/**\n\t * TRC20 token contract address if non-TRX.\n\t * Omitting will indicate native TRX.\n\t */\n\ttokenAddress?: string;\n} | {\n\ttype: 'BITCOIN_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Bitcoin address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount in sats to send, as a string\n\t */\n\tvalue: string;\n} | {\n\ttype: 'SOLANA_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Solana recipient address (base58 pubkey).\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string (e.g. in lamports or\n\t * normalized units, depending on your convention).\n\t */\n\tvalue: string;\n\n\t/**\n\t * SPL token mint address if non-native SOL.\n\t * Omitting will indicate native SOL.\n\t */\n\ttokenMintAddress?: string;\n}) & ({\n\tassetFee: string;\n\ttotalReceiveAmount?: string;\n\tpersistentAddressId?: string;\n});\n\nexport type KeetaAssetMovementAnchorInitiateTransferResponse = ({\n\tok: true;\n\tid: string;\n\tinstructionChoices: AssetTransferInstructions[];\n}) | ({\n\tok: false;\n\terror: string;\n})\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusClientRequest {\n\taccount?: KeetaNetAccount;\n\tid: string;\n}\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusRequest {\n\tid: string;\n}\n\nexport function getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData(input: KeetaAssetMovementAnchorGetTransferStatusRequest): Signable {\n\treturn([ 'get-transaction', input.id ]);\n}\n\ntype TransactionStatus = string;\n\nexport type TransactionId = {\n\tid: string;\n\tnonce: string;\n};\n\ntype TransactionIds<T extends string> = {\n\t[type in T]: TransactionId | null;\n};\n\nexport type KeetaAssetMovementTransaction = {\n\tid: string;\n\tstatus: TransactionStatus;\n\tasset: AssetOrPair;\n\n\tfrom: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'persistentForwarding' | 'deposit' | 'finalization'>;\n\t};\n\n\tto: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'withdraw'>;\n\t};\n\n\tfee: {\n\t\tasset: MovableAsset;\n\t\tvalue: string;\n\t} | null;\n\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport type KeetaAssetMovementAnchorGetTransferStatusResponse = ({\n\tok: true;\n\ttransaction: KeetaAssetMovementTransaction;\n} | {\n\tok: false;\n\terror: string;\n});\n\ntype PhysicalAddress = {\n\tline1: string;\n\tline2?: string;\n\tcountry: ISOCountryCode;\n\tpostalCode: string;\n\tsubdivision: string;\n\tcity: string;\n};\n\ntype USBankAccountType = 'checking' | 'savings';\n\nexport type BankAccountAddressResolved = {\n\ttype: 'bank-account';\n\taccountAddress?: PhysicalAddress | string;\n\tobfuscated?: false;\n\n\tbankName?: string;\n\n\taccountOwner: {\n\t\ttype: 'individual';\n\t\tfirstName: string;\n\t\tlastName: string;\n\t} | {\n\t\ttype: 'business';\n\t\tbusinessName: string;\n\t} | {\n\t\ttype: 'unknown';\n\t\tbeneficiaryName: string;\n\t}\n} & ({\n\taccountType: 'us';\n\n\taccountNumber: string;\n\troutingNumber: string;\n\taccountTypeDetail: USBankAccountType;\n} | {\n\taccountType: 'iban-swift';\n\n\n\tcountry?: ISOCountryCode;\n\n\taccountNumber?: string;\n\tbic?: string;\n\n\tiban?: string;\n\n\tbankAddress?: PhysicalAddress;\n\n\tswift?: {\n\t\tcategory: string;\n\t\tpurposeOfFunds: string[];\n\t\tbusinessDescription: string;\n\t}\n} | {\n\taccountType: 'clabe';\n\n\taccountNumber: string;\n} | ({\n\taccountType: 'pix';\n\tdocument?: {\n\t\ttype?: 'cpf' | 'cnpj';\n\t\tnumber: string;\n\t}\n} & ({\n\tbrCode: string;\n} | {\n\tpixKey: string;\n})));\n\nexport type BankAccountAddressObfuscated = {\n\ttype: 'bank-account';\n\tobfuscated: true;\n\n\taccountOwner?: {\n\t\ttype?: 'individual' | 'business';\n\t\tname?: string;\n\t\tbusinessName?: string;\n\t}\n\n\tbankName?: string;\n\n\taccountNumberEnding?: string;\n} & ({\n\taccountType: 'us';\n\n\troutingNumber: string;\n\taccountTypeDetail?: USBankAccountType;\n\n} | {\n\taccountType: 'iban-swift';\n\tcountry?: ISOCountryCode;\n\tbic?: string;\n} | {\n\taccountType: 'clabe';\n} | {\n\taccountType: 'pix';\n})\n\ntype CryptoAddress = string;\ntype AddressResolved = BankAccountAddressResolved | CryptoAddress;\ntype AddressObfuscated = BankAccountAddressObfuscated | CryptoAddress;\n\nexport type PersistentAddressTemplateData = {\n\tid: string;\n\tlocation: AssetLocationLike;\n\tasset: MovableAsset;\n\taddress: AddressObfuscated;\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset: MovableAsset;\n\tlocation: AssetLocationLike;\n\taddress: AddressResolved;\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tlocation: AssetLocationCanonical;\n\taddress: AddressResolved;\n}>;\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest): Signable {\n\tconst pair = toAssetPair(input.asset);\n\treturn(commonToSignable({\n\t\tasset: { from: convertAssetSearchInputToCanonical(pair.from), to: convertAssetSearchInputToCanonical(pair.to) },\n\t\tlocation: convertAssetLocationInputToCanonical(input.location),\n\t\taddress: input.address\n\t}));\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = (({\n\tok: true;\n} & PersistentAddressTemplateData) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset?: MovableAsset[];\n\tlocation?: AssetLocationLike[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = ToJSONSerializable<Pick<KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest, 'account' | 'pagination'>> & {\n\tasset?: MovableAssetSearchCanonical[] | undefined;\n\tlocation?: AssetLocationCanonical[] | undefined;\n\tsigned?: HTTPSignedField;\n}\n\nexport function getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorListForwardingAddressTemplateRequest): Signable {\n\treturn([ 'list-templates' ]);\n}\n\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = (({\n\tok: true;\n\ttemplates: PersistentAddressTemplateData[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\n\nexport type KeetaPersistentForwardingAddressDetails = {\n\tid?: string;\n\taddress: AddressObfuscated | AddressResolved;\n\tasset?: AssetOrPair;\n\tsourceLocation?: AssetLocationLike;\n\tdestinationLocation?: AssetLocationLike;\n\tdestinationAddress?: AddressResolved | AddressObfuscated;\n\toutgoingRail?: Rail;\n\tincomingRail?: Rail[];\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsourceLocation: AssetLocationLike;\n\tasset: AssetOrPair;\n\toutgoingRail?: Rail;\n} & ({\n\tdestinationLocation: AssetLocationLike;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField;\n\tsourceLocation: AssetLocationCanonical;\n\tasset: AssetOrPairCanonical;\n\toutgoingRail?: Rail | undefined;\n} & ({\n\tdestinationLocation: AssetLocationCanonical;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingRequest): Signable {\n\treturn(commonToSignable({\n\t\tsourceLocation: convertAssetLocationInputToCanonical(input.sourceLocation),\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\toutgoingRail: input.outgoingRail,\n\t\t...('destinationLocation' in input ? {\n\t\t\tdestinationLocation: convertAssetLocationInputToCanonical(input.destinationLocation),\n\t\t\tdestinationAddress: input.destinationAddress\n\t\t} : {\n\t\t\tpersistentAddressTemplateId: input.persistentAddressTemplateId\n\t\t})\n\t}))\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingResponse = (({\n\tok: true;\n} & KeetaPersistentForwardingAddressDetails) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationLike;\n\t\tdestinationLocation?: AssetLocationLike;\n\t\tasset?: MovableAsset;\n\t\tdestinationAddress?: string;\n\t\tpersistentAddressTemplateId?: string;\n\t}[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationCanonical | undefined;\n\t\tdestinationLocation?: AssetLocationCanonical | undefined;\n\t\tasset?: MovableAssetSearchCanonical | undefined;\n\t\tdestinationAddress?: string | undefined;\n\t\tpersistentAddressTemplateId?: string | undefined;\n\t}[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingResponse = (({\n\tok: true;\n\taddresses: KeetaPersistentForwardingAddressDetails[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport function getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListPersistentForwardingClientRequest | KeetaAssetMovementAnchorListPersistentForwardingRequest): Signable {\n\treturn([ 'list-persistent-forwarding-addresses' ]);\n}\n\ntype PaginationQuery = {\n\tlimit?: number;\n\toffset?: number;\n}\n\ntype PaginationResponseInformation = {\n\ttotal: string;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsClientRequest = {\n\taccount?: KeetaNetAccount;\n\tpersistentAddresses?: ({ location: AssetLocationLike; } & ({ persistentAddress?: string; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string; }))[];\n\tfrom?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tto?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\ttransactions?: { location: AssetLocationLike; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tpersistentAddresses?: ({ location: AssetLocationCanonical; } & ({ persistentAddress?: string | undefined; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string | undefined; }))[] | undefined;\n\tfrom?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\tto?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\ttransactions?: { location: AssetLocationCanonical; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport function getKeetaAssetMovementAnchorlistTransactionsRequestSigningData(_ignore_input: KeetaAssetMovementAnchorlistTransactionsClientRequest | KeetaAssetMovementAnchorlistTransactionsRequest): Signable {\n\treturn([ 'list-transactions' ]);\n}\n\nexport type KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = (({\n\tok: true;\n\ttransactions: KeetaAssetMovementTransaction[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorShareKYCClientRequest = {\n\taccount: KeetaNetAccount;\n\tattributes: string | SharableCertificateAttributes;\n\ttosAgreement?: { id: string; };\n}\n\nexport type KeetaAssetMovementAnchorShareKYCRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorShareKYCClientRequest, {\n\tattributes: string;\n}, { signed: HTTPSignedField }>;\n\nexport function getKeetaAssetMovementAnchorShareKYCRequestSigningData(_ignore_input: KeetaAssetMovementAnchorShareKYCClientRequest | KeetaAssetMovementAnchorShareKYCRequest): Signable {\n\treturn([ 'share-kyc' ]);\n}\n\nexport type KeetaAssetMovementAnchorShareKYCResponse = ({\n\tok: true;\n} | {\n\tok: false;\n\terror: string;\n});\n\nexport const assertKeetaSupportedAssets: (input: unknown) => SupportedAssets[] = createAssert<SupportedAssets[]>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferRequest = createAssert<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferResponse = createAssertEquals<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusRequest = createAssert<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusResponse: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusResponse = createAssertEquals<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const assertKeetaAssetMovementAnchorlistTransactionsRequest: (input: unknown) => KeetaAssetMovementAnchorlistTransactionsRequest = createAssert<KeetaAssetMovementAnchorlistTransactionsRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorListPersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorListPersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createAssertEquals<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const assertBankAccountAddressObfuscated: (input: unknown) => BankAccountAddressObfuscated = createAssert<BankAccountAddressObfuscated>();\nexport const assertBankAccountAddressResolved: (input: unknown) => BankAccountAddressResolved = createAssert<BankAccountAddressResolved>();\nexport const assertKeetaAssetMovementAnchorShareKYCRequest: (input: unknown) => KeetaAssetMovementAnchorShareKYCRequest = createAssert<KeetaAssetMovementAnchorShareKYCRequest>();\nexport const assertKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => KeetaAssetMovementAnchorShareKYCResponse = createAssertEquals<KeetaAssetMovementAnchorShareKYCResponse>();\n\nexport const isKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferRequest = createIs<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const isKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusRequest = createIs<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const isKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferResponse = createIs<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const isKeetaAssetMovementAnchorGetExchangeStatusResponse: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusResponse = createIs<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => input is KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createIs<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const isKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => input is KeetaAssetMovementAnchorShareKYCResponse = createIs<KeetaAssetMovementAnchorShareKYCResponse>();\n\ntype Account = InstanceType<typeof KeetaNet.lib.Account<Exclude<AccountKeyAlgorithm, IdentifierKeyAlgorithm>>>;\n\ntype KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow = {\n\ttype: 'url-flow';\n\turl: string;\n}\n\ninterface KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties {\n\ttosFlow: KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow | undefined;\n\tneededAttributes: string[] | undefined;\n\tshareWithPrincipals: ReturnType<Account['publicKeyString']['get']>[];\n\tacceptedIssuers: string[];\n}\n\nexport const assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties>();\n\n\n\ntype KeetaAssetMovementAnchorKYCShareNeededErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties;\n\ntype KeetaNetCertificate = InstanceType<typeof KeetaNet.lib.Utils.Certificate.Certificate>\nclass KeetaAssetMovementAnchorKYCShareNeededError extends KeetaAnchorUserError {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorKYCShareNeededError';\n\tprivate readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID = '3f4d6acd-8915-40de-94fa-4c6c48c01623';\n\n\treadonly shareWithPrincipals: Account[];\n\treadonly neededAttributes: string[] | undefined;\n\treadonly tosFlow: KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow | undefined;\n\treadonly acceptedIssuers: KeetaNetCertificate[];\n\n\tconstructor(args: {\n\t\tneededAttributes?: string[] | undefined;\n\t\tshareWithPrincipals: Account[];\n\t\ttosFlow?: KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow | undefined;\n\t\tacceptedIssuers: KeetaNetCertificate[];\n\t}, message?: string) {\n\t\tsuper(message ?? 'User Not Onboarded to Asset Movement Service');\n\t\tthis.statusCode = 403;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.neededAttributes = args.neededAttributes;\n\t\tthis.tosFlow = args.tosFlow;\n\t\tthis.shareWithPrincipals = args.shareWithPrincipals;\n\t\tthis.acceptedIssuers = args.acceptedIssuers;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorKYCShareNeededError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID));\n\t}\n\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_KYC_SHARE_NEEDED',\n\t\t\t\tdata: { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorKYCShareNeededErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\ttosFlow: this.tosFlow,\n\t\t\tneededAttributes: this.neededAttributes,\n\t\t\tshareWithPrincipals: this.shareWithPrincipals.map(function(account) {\n\t\t\t\treturn(account.publicKeyString.get());\n\t\t\t}),\n\t\t\tacceptedIssuers: this.acceptedIssuers.map(function(cert) {\n\t\t\t\treturn(cert.toString());\n\t\t\t})\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorKYCShareNeededError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorKYCShareNeededError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\tshareWithPrincipals: parsed.shareWithPrincipals.map(function(pubKeyString) {\n\t\t\t\t\treturn(KeetaNet.lib.Account.fromPublicKeyString(pubKeyString).assertAccount());\n\t\t\t\t}),\n\t\t\t\tneededAttributes: parsed.neededAttributes,\n\t\t\t\ttosFlow: parsed.tosFlow,\n\t\t\t\tacceptedIssuers: parsed.acceptedIssuers.map(function(certString) {\n\t\t\t\t\treturn(new KeetaNet.lib.Utils.Certificate.Certificate(certString));\n\t\t\t\t})\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\nexport const Errors: {\n\tKYCShareNeeded: typeof KeetaAssetMovementAnchorKYCShareNeededError;\n} = {\n\t/**\n\t * The user is required to share KYC details\n\t */\n\tKYCShareNeeded: KeetaAssetMovementAnchorKYCShareNeededError\n};\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2J,CAAC;AACxO,MAAM,CAAC,MAAM,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmK,CAAC;AACjP,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+I,CAAC;AACnN,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;OAAyI,CAAC;AAC7M,MAAM,CAAC,MAAM,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiJ,CAAC;AACtN,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuJ,CAAC;AAClO,MAAM,CAAC,MAAM,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+J,CAAC;AAC3O,MAAM,CAAC,MAAM,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuL,CAAC;AAC/Q,MAAM,CAAC,MAAM,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyL,CAAC;AACrR,MAAM,CAAC,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiK,CAAC;AACjP,MAAM,CAAC,MAAM,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyK,CAAC;AAC1P,MAAM,CAAC,MAAM,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiM,CAAC;AAC9R,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","sourcesContent":["import type { ServiceMetadata } from '../../lib/resolver.ts';\nimport { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport * as CurrencyInfo from '@keetanetwork/currency-info';\nimport type { AccountKeyAlgorithm, IdentifierKeyAlgorithm, TokenAddress, TokenPublicKeyString } from '@keetanetwork/keetanet-client/lib/account.js';\nimport { createAssert, createAssertEquals, createIs } from 'typia';\nimport type { ToJSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nimport type { HTTPSignedField } from '../../lib/http-server/common.js';\nimport type { Signable } from '../../lib/utils/signing.js';\nimport type { SharableCertificateAttributes } from '../../lib/certificates.js';\nimport { KeetaNet } from '../../client/index.js';\nimport { KeetaAnchorUserError } from '../../lib/error.js';\nimport type { AssetLocationLike, AssetLocationString, AssetLocationInput, AssetLocationCanonical } from './lib/location.js';\nimport { convertAssetLocationInputToCanonical } from './lib/location.js';\n\nexport * from './lib/location.js';\n\ntype HexString = `0x${string}`;\n\n\nexport type KeetaNetAccount = InstanceType<typeof KeetaNetLib.Account>;\nexport type KeetaNetTokenPublicKeyString = ReturnType<InstanceType<typeof KeetaNetLib.Account<typeof KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN>>['publicKeyString']['get']>;\n\nexport type ISOCountryCode = CurrencyInfo.ISOCountryCode;\n\ntype CurrencySearchCanonical = CurrencyInfo.ISOCurrencyCode | `$${string}`; /* XXX:TODO */\ntype CurrencySearchInput = CurrencySearchCanonical | CurrencyInfo.Currency;\n\ntype TokenSearchInput = TokenAddress | TokenPublicKeyString;\ntype TokenSearchCanonical = TokenPublicKeyString;\n\nexport type EVMAsset = `evm:${HexString}`;\nexport type TronAsset = `tron:${string}`;\nexport type SolanaAsset = `solana:${string}`;\nexport type ChainAssetString = SolanaAsset | EVMAsset | TronAsset | TokenPublicKeyString;\nexport type MovableAssetSearchInput = CurrencySearchInput | TokenSearchInput | ChainAssetString;\nexport type MovableAssetSearchCanonical = CurrencySearchCanonical | TokenSearchCanonical | ChainAssetString;\nexport type MovableAsset = TokenAddress | TokenPublicKeyString | CurrencySearchInput | ChainAssetString;\n\nexport function toEVMAsset(input: HexString): EVMAsset {\n\treturn(`evm:${input}`);\n}\n\nfunction isHexString(input: unknown): input is HexString {\n\tif (typeof input === 'string' && input.startsWith('0x')) {\n\t\treturn(true);\n\t}\n\n\treturn(false);\n}\n\nexport function parseEVMAsset(input: EVMAsset): HexString {\n\tconst parts = input.split(':');\n\tif (parts.length !== 2 || parts[0] !== 'evm') {\n\t\tthrow(new Error('Invalid EVMAsset string'));\n\t}\n\n\tconst value = parts[1];\n\tif (!isHexString(value)) {\n\t\tthrow(new Error('Invalid hex string in EVMAsset'));\n\t}\n\n\treturn(value);\n}\n\nexport function isEVMAsset(input: unknown): input is EVMAsset {\n\treturn(typeof input === 'string' && input.startsWith('evm:0x'));\n}\n\nexport function toTronAsset(input: string): TronAsset {\n\treturn(`tron:${input}`);\n}\n\nexport function parseTronAsset(input: TronAsset): string {\n\tconst parts = input.split(':');\n\tif (parts.length !== 2 || parts[0] !== 'tron') {\n\t\tthrow(new Error('Invalid TronAsset string'));\n\t}\n\n\tconst value = parts[1];\n\tif (!value || typeof value !== 'string' || value.length === 0) {\n\t\tthrow(new Error('Invalid hex string in TronAsset'));\n\t}\n\n\treturn(value);\n}\n\nexport function isTronAsset(input: unknown): input is TronAsset {\n\treturn(typeof input === 'string' && input.startsWith('tron:'));\n}\n\nexport function toSolanaAsset(input: string): SolanaAsset {\n\treturn(`solana:${input}`);\n}\n\nexport function parseSolanaAsset(input: SolanaAsset): string {\n\tconst parts = input.split(':');\n\tif (parts.length !== 2 || parts[0] !== 'solana') {\n\t\tthrow(new Error('Invalid SolanaAsset string'));\n\t}\n\tconst value = parts[1];\n\tif (!value || typeof value !== 'string' || value.length === 0) {\n\t\tthrow(new Error('Invalid string in SolanaAsset'));\n\t}\n\treturn(value);\n}\n\nexport function isSolanaAsset(input: unknown): input is SolanaAsset {\n\treturn(typeof input === 'string' && input.startsWith('solana:'));\n}\n\nexport type ProviderSearchInput = {\n\tasset?: MovableAsset | AssetPair;\n\tfrom?: AssetLocationInput;\n\tto?: AssetLocationInput;\n\trail?: Rail | Rail[];\n}\n\n// A given asset should have a location and ID for the contract or public key for that asset\nexport interface Asset {\n\tlocation?: AssetLocationString;\n\t/**\n\t * Keeta token public key string, evm contract address, or a currency code\n\t */\n\tid: string;\n}\n\ntype FiatRails = 'ACH' | 'ACH_DEBIT' | 'WIRE' | 'WIRE_RECEIVE' | 'PIX_PUSH' | 'SPEI_PUSH' | 'WIRE_INTL_PUSH' | 'CLABE_PUSH' | 'SEPA_PUSH';\ntype CryptoRails = 'KEETA_SEND' | 'EVM_SEND' | 'EVM_CALL' | 'SOLANA_SEND' | 'BITCOIN_SEND' | 'TRON_SEND';\nexport type Rail = FiatRails | CryptoRails;\n\n// Rails can be inbound, outbound or common (inbound and outbound)\nexport interface AssetWithRails extends Asset {\n\trails: (({\n\t\tinbound: Rail[];\n\t\toutbound?: Rail[];\n\t} | {\n\t\tinbound?: Rail[];\n\t\toutbound: Rail[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: Rail[];\n\t});\n};\n\n// A given asset path should consist of exactly one tuple of locations\nexport interface AssetPath {\n\tpair: [ AssetWithRails, AssetWithRails ];\n\tkycProviders?: string[];\n};\n\nexport type AssetMetadataTargetValue = TokenPublicKeyString | CurrencySearchCanonical | `$${string}`;\nexport interface SupportedAssets {\n\tasset: AssetMetadataTargetValue | [ AssetMetadataTargetValue, AssetMetadataTargetValue ];\n\tpaths: AssetPath[];\n}\n\nexport interface AssetWithRailsMetadata {\n\tlocation: string;\n\tid: string;\n\trails: (({\n\t\tinbound: Rail[];\n\t\toutbound?: Rail[];\n\t} | {\n\t\tinbound?: Rail[];\n\t\toutbound: Rail[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: Rail[];\n\t})\n}\n\n\nexport function commonJSONStringify(input: unknown): string {\n\treturn(JSON.stringify(input, function(_, value: unknown) {\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn(String(value));\n\t\t} else if (KeetaNet.lib.Account.isInstance(value)) {\n\t\t\treturn(value.publicKeyString.get());\n\t\t}\n\n\t\treturn(value);\n\t}));\n}\n\ntype SignableObjectInput = { [key: string | number | symbol]: SignableObjectInput } | SignableObjectInput[] | Signable[number] | undefined | null | boolean;\n\n/**\n * The maximum queue length for the commonToSignable function to prevent DoS attacks\n */\nconst TO_SIGNABLE_MAX_QUEUE_LENGTH = 250;\n\nfunction commonToSignable(item: SignableObjectInput): Signable {\n\tconst queue: [ string, SignableObjectInput ][] = [[ '', item ]];\n\tconst result: [ string, Signable[number] ][] = [];\n\n\twhile (queue.length > 0) {\n\t\tconst next = queue.shift();\n\n\t\tif (!next) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [ prefix, current ] = next;\n\t\tif (current === null || current === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof current === 'boolean') {\n\t\t\tresult.push([ prefix, current ? 1 : 0 ]);\n\t\t} else if (Array.isArray(current)) {\n\t\t\tfor (let i = 0; i < current.length; i++) {\n\t\t\t\tqueue.push([ `${prefix}[${i}]`, current[i] ]);\n\t\t\t}\n\t\t} else if (typeof current === 'object') {\n\t\t\tfor (const [ key, value ] of Object.entries(current)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tqueue.push([ prefix ? `${prefix}.${key}` : key, value as SignableObjectInput ]);\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push([ prefix, current ]);\n\t\t}\n\n\t\tif (queue.length > TO_SIGNABLE_MAX_QUEUE_LENGTH) {\n\t\t\tthrow(new KeetaAnchorUserError('Too much data to sign in commonToSignable'));\n\t\t}\n\t}\n\n\tresult.sort((a, b) => {\n\t\treturn(a[0].localeCompare(b[0], 'en-US', {\n\t\t\tusage: 'sort',\n\t\t\tnumeric: true,\n\t\t\tsensitivity: 'case',\n\t\t\tignorePunctuation: false\n\t\t}));\n\t});\n\n\treturn(result.map(item => item[1]));\n}\n\nexport function convertAssetSearchInputToCanonical(input: MovableAssetSearchInput): MovableAssetSearchCanonical {\n\tif (input instanceof CurrencyInfo.Currency || CurrencyInfo.Currency.isCurrencyCode(input) || CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\tif (CurrencyInfo.Currency.isCurrencyCode(input)) {\n\t\t\treturn(input);\n\t\t} else if (CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\t\tinput = new CurrencyInfo.Currency(input);\n\t\t}\n\n\t\treturn(input.code);\n\t} else {\n\t\tif (typeof input === 'string') {\n\t\t\treturn(input);\n\t\t}\n\n\t\tinput.assertKeyType(KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN);\n\t\treturn(input.publicKeyString.get());\n\t}\n}\n\nexport type AssetPair<From extends MovableAsset = MovableAsset, To extends MovableAsset = MovableAsset> = { from: From; to: To; };\nexport type AssetOrPair = MovableAsset | AssetPair;\n\nexport type AssetPairCanonical<From extends MovableAssetSearchCanonical = MovableAssetSearchCanonical, To extends MovableAssetSearchCanonical = MovableAssetSearchCanonical> = { from: From; to: To; };\nexport type AssetOrPairCanonical = MovableAssetSearchCanonical | AssetPairCanonical;\n\nfunction isAssetPairLike(input: unknown): input is AssetPair {\n\treturn(typeof input === 'object' && input !== null && 'from' in input && 'to' in input);\n}\n\nexport function toAssetPair(input: AssetOrPair): AssetPair {\n\tif (isAssetPairLike(input)) {\n\t\treturn(input);\n\t}\n\n\treturn({ from: input, to: input });\n}\n\n\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetOrPair): AssetOrPairCanonical {\n\tif (isAssetPairLike(input)) {\n\t\treturn({\n\t\t\tfrom: convertAssetSearchInputToCanonical(input.from),\n\t\t\tto: convertAssetSearchInputToCanonical(input.to)\n\t\t});\n\t} else {\n\t\treturn(convertAssetSearchInputToCanonical(input));\n\t}\n}\n\n\nexport type Operations = NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'];\nexport type OperationNames = keyof Operations;\n\nexport type RecipientResolved = AddressResolved | { type: 'persistent-address'; persistentAddressId: string; };\n\n\ntype ConvertToExternalRequest<\n\tInternal extends object,\n\tOverrides extends object,\n\tSigned = { signed?: HTTPSignedField | undefined }\n> =\n\tToJSONSerializable<Omit<Internal, keyof Overrides>> &\n\tOverrides &\n\tSigned;\n\nexport type KeetaAssetMovementAnchorInitiateTransferClientRequest = {\n\taccount?: KeetaNetAccount | undefined;\n\tasset: AssetOrPair;\n\tfrom: { location: AssetLocationLike; };\n\tto: { location: AssetLocationLike; recipient: RecipientResolved; };\n\tvalue: string | bigint;\n\tallowedRails?: Rail[];\n}\n\nexport type KeetaAssetMovementAnchorInitiateTransferRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorInitiateTransferClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tfrom: { location: AssetLocationCanonical; };\n\tto: { location: AssetLocationCanonical; recipient: RecipientResolved; };\n}>;\n\nexport function getKeetaAssetMovementAnchorInitiateTransferRequestSigningData(input: KeetaAssetMovementAnchorInitiateTransferClientRequest | KeetaAssetMovementAnchorInitiateTransferRequest): Signable {\n\treturn(commonToSignable({\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\tfrom: { location: convertAssetLocationInputToCanonical(input.from.location) },\n\t\tto: { location: convertAssetLocationInputToCanonical(input.to.location), recipient: input.to.recipient },\n\t\tvalue: String(input.value)\n\t}));\n}\n\nexport type AssetTransferInstructions = ({\n\ttype: 'KEETA_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: string;\n\n\texternal?: string;\n} | {\n\ttype: 'EVM_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: HexString;\n} | {\n\ttype: 'EVM_CALL';\n\tlocation: AssetLocationLike;\n\n\tcontractAddress: string;\n\tcontractMethodName: string;\n\tcontractMethodArgs: string[];\n} | {\n\ttype: 'WIRE' | 'ACH' | 'SEPA_PUSH';\n\n\t/**\n\t * The resolved bank account address details to send funds to\n\t */\n\taccount: BankAccountAddressResolved;\n\n\t/**\n\t * Optional deposit message to include with the transfer, ex: for wire this is a reference note.\n\t */\n\tdepositMessage?: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\tvalue: string;\n} | {\n\ttype: 'TRON_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Tron address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. SUN for TRX).\n\t */\n\tvalue: string;\n\n\t/**\n\t * TRC20 token contract address if non-TRX.\n\t * Omitting will indicate native TRX.\n\t */\n\ttokenAddress?: string;\n} | {\n\ttype: 'BITCOIN_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Bitcoin address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount in sats to send, as a string\n\t */\n\tvalue: string;\n} | {\n\ttype: 'SOLANA_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Solana recipient address (base58 pubkey).\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string (e.g. in lamports or\n\t * normalized units, depending on your convention).\n\t */\n\tvalue: string;\n\n\t/**\n\t * SPL token mint address if non-native SOL.\n\t * Omitting will indicate native SOL.\n\t */\n\ttokenMintAddress?: string;\n}) & ({\n\tassetFee: string;\n\ttotalReceiveAmount?: string;\n\tpersistentAddressId?: string;\n});\n\nexport type KeetaAssetMovementAnchorInitiateTransferResponse = ({\n\tok: true;\n\tid: string;\n\tinstructionChoices: AssetTransferInstructions[];\n}) | ({\n\tok: false;\n\terror: string;\n})\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusClientRequest {\n\taccount?: KeetaNetAccount;\n\tid: string;\n}\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusRequest {\n\tid: string;\n}\n\nexport function getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData(input: KeetaAssetMovementAnchorGetTransferStatusRequest): Signable {\n\treturn([ 'get-transaction', input.id ]);\n}\n\ntype TransactionStatus = string;\n\nexport type TransactionId = {\n\tid: string;\n\tnonce: string;\n};\n\ntype TransactionIds<T extends string> = {\n\t[type in T]: TransactionId | null;\n};\n\nexport type KeetaAssetMovementTransaction = {\n\tid: string;\n\tstatus: TransactionStatus;\n\tasset: AssetOrPair;\n\n\tfrom: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'persistentForwarding' | 'deposit' | 'finalization'>;\n\t};\n\n\tto: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'withdraw'>;\n\t};\n\n\tfee: {\n\t\tasset: MovableAsset;\n\t\tvalue: string;\n\t} | null;\n\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport type KeetaAssetMovementAnchorGetTransferStatusResponse = ({\n\tok: true;\n\ttransaction: KeetaAssetMovementTransaction;\n} | {\n\tok: false;\n\terror: string;\n});\n\ntype PhysicalAddress = {\n\tline1: string;\n\tline2?: string;\n\tcountry: ISOCountryCode;\n\tpostalCode: string;\n\tsubdivision: string;\n\tcity: string;\n};\n\ntype USBankAccountType = 'checking' | 'savings';\n\nexport type BankAccountAddressResolved = {\n\ttype: 'bank-account';\n\taccountAddress?: PhysicalAddress | string;\n\tobfuscated?: false;\n\n\tbankName?: string;\n\n\taccountOwner: {\n\t\ttype: 'individual';\n\t\tfirstName: string;\n\t\tlastName: string;\n\t} | {\n\t\ttype: 'business';\n\t\tbusinessName: string;\n\t} | {\n\t\ttype: 'unknown';\n\t\tbeneficiaryName: string;\n\t}\n} & ({\n\taccountType: 'us';\n\n\taccountNumber: string;\n\troutingNumber: string;\n\taccountTypeDetail: USBankAccountType;\n} | {\n\taccountType: 'iban-swift';\n\n\n\tcountry?: ISOCountryCode;\n\n\taccountNumber?: string;\n\tbic?: string;\n\n\tiban?: string;\n\n\tbankAddress?: PhysicalAddress;\n\n\tswift?: {\n\t\tcategory: string;\n\t\tpurposeOfFunds: string[];\n\t\tbusinessDescription: string;\n\t}\n} | {\n\taccountType: 'clabe';\n\n\taccountNumber: string;\n} | ({\n\taccountType: 'pix';\n\tdocument?: {\n\t\ttype?: 'cpf' | 'cnpj';\n\t\tnumber: string;\n\t}\n} & ({\n\tbrCode: string;\n} | {\n\tpixKey: string;\n})));\n\nexport type BankAccountAddressObfuscated = {\n\ttype: 'bank-account';\n\tobfuscated: true;\n\n\taccountOwner?: {\n\t\ttype?: 'individual' | 'business';\n\t\tname?: string;\n\t\tbusinessName?: string;\n\t}\n\n\tbankName?: string;\n\n\taccountNumberEnding?: string;\n} & ({\n\taccountType: 'us';\n\n\troutingNumber: string;\n\taccountTypeDetail?: USBankAccountType;\n\n} | {\n\taccountType: 'iban-swift';\n\tcountry?: ISOCountryCode;\n\tbic?: string;\n} | {\n\taccountType: 'clabe';\n} | {\n\taccountType: 'pix';\n})\n\ntype CryptoAddress = string;\ntype AddressResolved = BankAccountAddressResolved | CryptoAddress;\ntype AddressObfuscated = BankAccountAddressObfuscated | CryptoAddress;\n\nexport type PersistentAddressTemplateData = {\n\tid: string;\n\tlocation: AssetLocationLike;\n\tasset: MovableAsset;\n\taddress: AddressObfuscated;\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset: MovableAsset;\n\tlocation: AssetLocationLike;\n\taddress: AddressResolved;\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tlocation: AssetLocationCanonical;\n\taddress: AddressResolved;\n}>;\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest): Signable {\n\tconst pair = toAssetPair(input.asset);\n\treturn(commonToSignable({\n\t\tasset: { from: convertAssetSearchInputToCanonical(pair.from), to: convertAssetSearchInputToCanonical(pair.to) },\n\t\tlocation: convertAssetLocationInputToCanonical(input.location),\n\t\taddress: input.address\n\t}));\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = (({\n\tok: true;\n} & PersistentAddressTemplateData) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset?: MovableAsset[];\n\tlocation?: AssetLocationLike[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = ToJSONSerializable<Pick<KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest, 'account' | 'pagination'>> & {\n\tasset?: MovableAssetSearchCanonical[] | undefined;\n\tlocation?: AssetLocationCanonical[] | undefined;\n\tsigned?: HTTPSignedField;\n}\n\nexport function getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorListForwardingAddressTemplateRequest): Signable {\n\treturn([ 'list-templates' ]);\n}\n\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = (({\n\tok: true;\n\ttemplates: PersistentAddressTemplateData[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\n\nexport type KeetaPersistentForwardingAddressDetails = {\n\tid?: string;\n\taddress: AddressObfuscated | AddressResolved;\n\tasset?: AssetOrPair;\n\tsourceLocation?: AssetLocationLike;\n\tdestinationLocation?: AssetLocationLike;\n\tdestinationAddress?: AddressResolved | AddressObfuscated;\n\toutgoingRail?: Rail;\n\tincomingRail?: Rail[];\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsourceLocation: AssetLocationLike;\n\tasset: AssetOrPair;\n\toutgoingRail?: Rail;\n} & ({\n\tdestinationLocation: AssetLocationLike;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField;\n\tsourceLocation: AssetLocationCanonical;\n\tasset: AssetOrPairCanonical;\n\toutgoingRail?: Rail | undefined;\n} & ({\n\tdestinationLocation: AssetLocationCanonical;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingRequest): Signable {\n\treturn(commonToSignable({\n\t\tsourceLocation: convertAssetLocationInputToCanonical(input.sourceLocation),\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\toutgoingRail: input.outgoingRail,\n\t\t...('destinationLocation' in input ? {\n\t\t\tdestinationLocation: convertAssetLocationInputToCanonical(input.destinationLocation),\n\t\t\tdestinationAddress: input.destinationAddress\n\t\t} : {\n\t\t\tpersistentAddressTemplateId: input.persistentAddressTemplateId\n\t\t})\n\t}))\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingResponse = (({\n\tok: true;\n} & KeetaPersistentForwardingAddressDetails) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationLike;\n\t\tdestinationLocation?: AssetLocationLike;\n\t\tasset?: MovableAsset;\n\t\tdestinationAddress?: string;\n\t\tpersistentAddressTemplateId?: string;\n\t}[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationCanonical | undefined;\n\t\tdestinationLocation?: AssetLocationCanonical | undefined;\n\t\tasset?: MovableAssetSearchCanonical | undefined;\n\t\tdestinationAddress?: string | undefined;\n\t\tpersistentAddressTemplateId?: string | undefined;\n\t}[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingResponse = (({\n\tok: true;\n\taddresses: KeetaPersistentForwardingAddressDetails[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport function getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListPersistentForwardingClientRequest | KeetaAssetMovementAnchorListPersistentForwardingRequest): Signable {\n\treturn([ 'list-persistent-forwarding-addresses' ]);\n}\n\ntype PaginationQuery = {\n\tlimit?: number;\n\toffset?: number;\n}\n\ntype PaginationResponseInformation = {\n\ttotal: string;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsClientRequest = {\n\taccount?: KeetaNetAccount;\n\tpersistentAddresses?: ({ location: AssetLocationLike; } & ({ persistentAddress?: string; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string; }))[];\n\tfrom?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tto?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\ttransactions?: { location: AssetLocationLike; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tpersistentAddresses?: ({ location: AssetLocationCanonical; } & ({ persistentAddress?: string | undefined; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string | undefined; }))[] | undefined;\n\tfrom?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\tto?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\ttransactions?: { location: AssetLocationCanonical; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport function getKeetaAssetMovementAnchorlistTransactionsRequestSigningData(_ignore_input: KeetaAssetMovementAnchorlistTransactionsClientRequest | KeetaAssetMovementAnchorlistTransactionsRequest): Signable {\n\treturn([ 'list-transactions' ]);\n}\n\nexport type KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = (({\n\tok: true;\n\ttransactions: KeetaAssetMovementTransaction[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorShareKYCClientRequest = {\n\taccount: KeetaNetAccount;\n\tattributes: string | SharableCertificateAttributes;\n\ttosAgreement?: { id: string; };\n}\n\nexport type KeetaAssetMovementAnchorShareKYCRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorShareKYCClientRequest, {\n\tattributes: string;\n}, { signed: HTTPSignedField }>;\n\nexport function getKeetaAssetMovementAnchorShareKYCRequestSigningData(_ignore_input: KeetaAssetMovementAnchorShareKYCClientRequest | KeetaAssetMovementAnchorShareKYCRequest): Signable {\n\treturn([ 'share-kyc' ]);\n}\n\nexport type KeetaAssetMovementAnchorShareKYCResponse = ({\n\tok: true;\n} | {\n\tok: false;\n\terror: string;\n});\n\nexport const assertKeetaSupportedAssets: (input: unknown) => SupportedAssets[] = createAssert<SupportedAssets[]>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferRequest = createAssert<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferResponse = createAssertEquals<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusRequest = createAssert<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusResponse: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusResponse = createAssertEquals<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const assertKeetaAssetMovementAnchorlistTransactionsRequest: (input: unknown) => KeetaAssetMovementAnchorlistTransactionsRequest = createAssert<KeetaAssetMovementAnchorlistTransactionsRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorListPersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorListPersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createAssertEquals<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const assertBankAccountAddressObfuscated: (input: unknown) => BankAccountAddressObfuscated = createAssert<BankAccountAddressObfuscated>();\nexport const assertBankAccountAddressResolved: (input: unknown) => BankAccountAddressResolved = createAssert<BankAccountAddressResolved>();\nexport const assertKeetaAssetMovementAnchorShareKYCRequest: (input: unknown) => KeetaAssetMovementAnchorShareKYCRequest = createAssert<KeetaAssetMovementAnchorShareKYCRequest>();\nexport const assertKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => KeetaAssetMovementAnchorShareKYCResponse = createAssertEquals<KeetaAssetMovementAnchorShareKYCResponse>();\n\nexport const isKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferRequest = createIs<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const isKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusRequest = createIs<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const isKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferResponse = createIs<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const isKeetaAssetMovementAnchorGetExchangeStatusResponse: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusResponse = createIs<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => input is KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createIs<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const isKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => input is KeetaAssetMovementAnchorShareKYCResponse = createIs<KeetaAssetMovementAnchorShareKYCResponse>();\n\ntype Account = InstanceType<typeof KeetaNet.lib.Account<Exclude<AccountKeyAlgorithm, IdentifierKeyAlgorithm>>>;\n\ntype KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow = {\n\ttype: 'url-flow';\n\turl: string;\n}\n\ninterface KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties {\n\ttosFlow: KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow | undefined;\n\tneededAttributes: string[] | undefined;\n\tshareWithPrincipals: ReturnType<Account['publicKeyString']['get']>[];\n\tacceptedIssuers: { name: string; value: string; }[][];\n}\n\nexport const assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties>();\n\n\n\ntype KeetaAssetMovementAnchorKYCShareNeededErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties;\n\nclass KeetaAssetMovementAnchorKYCShareNeededError extends KeetaAnchorUserError {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorKYCShareNeededError';\n\tprivate readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID = '3f4d6acd-8915-40de-94fa-4c6c48c01623';\n\n\treadonly shareWithPrincipals: Account[];\n\treadonly neededAttributes: string[] | undefined;\n\treadonly tosFlow: KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow | undefined;\n\treadonly acceptedIssuers: { name: string; value: string; }[][];\n\n\tconstructor(args: {\n\t\tneededAttributes?: string[] | undefined;\n\t\tshareWithPrincipals: Account[];\n\t\ttosFlow?: KeetaAssetMovementAnchorKYCShareNeededErrorTOSFlow | undefined;\n\t\tacceptedIssuers: { name: string; value: string; }[][];\n\t}, message?: string) {\n\t\tsuper(message ?? 'User Not Onboarded to Asset Movement Service');\n\t\tthis.statusCode = 403;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.neededAttributes = args.neededAttributes;\n\t\tthis.tosFlow = args.tosFlow;\n\t\tthis.shareWithPrincipals = args.shareWithPrincipals;\n\t\tthis.acceptedIssuers = args.acceptedIssuers;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorKYCShareNeededError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID));\n\t}\n\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_KYC_SHARE_NEEDED',\n\t\t\t\tdata: { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorKYCShareNeededErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\ttosFlow: this.tosFlow,\n\t\t\tneededAttributes: this.neededAttributes,\n\t\t\tshareWithPrincipals: this.shareWithPrincipals.map(function(account) {\n\t\t\t\treturn(account.publicKeyString.get());\n\t\t\t}),\n\t\t\tacceptedIssuers: this.acceptedIssuers\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorKYCShareNeededError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorKYCShareNeededError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\tshareWithPrincipals: parsed.shareWithPrincipals.map(function(pubKeyString) {\n\t\t\t\t\treturn(KeetaNet.lib.Account.fromPublicKeyString(pubKeyString).assertAccount());\n\t\t\t\t}),\n\t\t\t\tneededAttributes: parsed.neededAttributes,\n\t\t\t\ttosFlow: parsed.tosFlow,\n\t\t\t\tacceptedIssuers: parsed.acceptedIssuers\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\nexport const Errors: {\n\tKYCShareNeeded: typeof KeetaAssetMovementAnchorKYCShareNeededError;\n} = {\n\t/**\n\t * The user is required to share KYC details\n\t */\n\tKYCShareNeeded: KeetaAssetMovementAnchorKYCShareNeededError\n};\n"]}
@@ -32,8 +32,8 @@ export const GenericOrganizationIdentificationSchema = {
32
32
  type: 'struct',
33
33
  fieldNames: ['id', 'issuer', 'schemeName'],
34
34
  contains: {
35
- id: { type: 'string', kind: 'utf8' },
36
- issuer: { optional: { type: 'string', kind: 'utf8' } },
35
+ id: { type: 'context', kind: 'explicit', value: 0, contains: { type: 'string', kind: 'utf8' } },
36
+ issuer: { optional: { type: 'context', kind: 'explicit', value: 1, contains: { type: 'string', kind: 'utf8' } } },
37
37
  schemeName: { optional: OrganizationIdentificationSchemeNameChoiceSchema }
38
38
  }
39
39
  };
@@ -42,8 +42,8 @@ export const GenericPersonIdentificationSchema = {
42
42
  type: 'struct',
43
43
  fieldNames: ['id', 'issuer', 'schemeName'],
44
44
  contains: {
45
- id: { type: 'string', kind: 'utf8' },
46
- issuer: { optional: { type: 'string', kind: 'utf8' } },
45
+ id: { type: 'context', kind: 'explicit', value: 0, contains: { type: 'string', kind: 'utf8' } },
46
+ issuer: { optional: { type: 'context', kind: 'explicit', value: 1, contains: { type: 'string', kind: 'utf8' } } },
47
47
  schemeName: { optional: PersonIdentificationSchemeNameChoiceSchema }
48
48
  }
49
49
  };
@@ -52,8 +52,8 @@ export const OtherContactSchema = {
52
52
  type: 'struct',
53
53
  fieldNames: ['channelType', 'id'],
54
54
  contains: {
55
- channelType: { type: 'string', kind: 'utf8' },
56
- id: { optional: { type: 'string', kind: 'utf8' } }
55
+ channelType: { type: 'context', kind: 'explicit', value: 0, contains: { type: 'string', kind: 'utf8' } },
56
+ id: { optional: { type: 'context', kind: 'explicit', value: 1, contains: { type: 'string', kind: 'utf8' } } }
57
57
  }
58
58
  };
59
59
  // Generated ASN.1 schemas for ISO 20022 sequence-of-choice types
@@ -115,16 +115,16 @@ export const AddressSchema = {
115
115
  type: 'struct',
116
116
  fieldNames: ['addressLines', 'addressType', 'buildingNumber', 'country', 'countrySubDivision', 'department', 'postalCode', 'streetName', 'subDepartment', 'townName'],
117
117
  contains: {
118
- addressLines: { optional: { sequenceOf: { type: 'string', kind: 'utf8' } } },
118
+ addressLines: { optional: { type: 'context', kind: 'explicit', value: 0, contains: { sequenceOf: { type: 'string', kind: 'utf8' } } } },
119
119
  addressType: { optional: AddressTypeSchema },
120
- buildingNumber: { optional: { type: 'string', kind: 'utf8' } },
121
- country: { optional: { type: 'string', kind: 'utf8' } },
122
- countrySubDivision: { optional: { type: 'string', kind: 'utf8' } },
123
- department: { optional: { type: 'string', kind: 'utf8' } },
124
- postalCode: { optional: { type: 'string', kind: 'utf8' } },
125
- streetName: { optional: { type: 'string', kind: 'utf8' } },
126
- subDepartment: { optional: { type: 'string', kind: 'utf8' } },
127
- townName: { optional: { type: 'string', kind: 'utf8' } }
120
+ buildingNumber: { optional: { type: 'context', kind: 'explicit', value: 2, contains: { type: 'string', kind: 'utf8' } } },
121
+ country: { optional: { type: 'context', kind: 'explicit', value: 3, contains: { type: 'string', kind: 'utf8' } } },
122
+ countrySubDivision: { optional: { type: 'context', kind: 'explicit', value: 4, contains: { type: 'string', kind: 'utf8' } } },
123
+ department: { optional: { type: 'context', kind: 'explicit', value: 5, contains: { type: 'string', kind: 'utf8' } } },
124
+ postalCode: { optional: { type: 'context', kind: 'explicit', value: 6, contains: { type: 'string', kind: 'utf8' } } },
125
+ streetName: { optional: { type: 'context', kind: 'explicit', value: 7, contains: { type: 'string', kind: 'utf8' } } },
126
+ subDepartment: { optional: { type: 'context', kind: 'explicit', value: 8, contains: { type: 'string', kind: 'utf8' } } },
127
+ townName: { optional: { type: 'context', kind: 'explicit', value: 9, contains: { type: 'string', kind: 'utf8' } } }
128
128
  }
129
129
  };
130
130
  export const DateAndPlaceOfBirthFields = ['birthDate', 'cityOfBirth', 'countryOfBirth', 'provinceOfBirth'];
@@ -132,10 +132,10 @@ export const DateAndPlaceOfBirthSchema = {
132
132
  type: 'struct',
133
133
  fieldNames: ['birthDate', 'cityOfBirth', 'countryOfBirth', 'provinceOfBirth'],
134
134
  contains: {
135
- birthDate: ASN1.ValidateASN1.IsDate,
136
- cityOfBirth: { type: 'string', kind: 'utf8' },
137
- countryOfBirth: { type: 'string', kind: 'utf8' },
138
- provinceOfBirth: { optional: { type: 'string', kind: 'utf8' } }
135
+ birthDate: { type: 'context', kind: 'explicit', value: 0, contains: ASN1.ValidateASN1.IsDate },
136
+ cityOfBirth: { type: 'context', kind: 'explicit', value: 1, contains: { type: 'string', kind: 'utf8' } },
137
+ countryOfBirth: { type: 'context', kind: 'explicit', value: 2, contains: { type: 'string', kind: 'utf8' } },
138
+ provinceOfBirth: { optional: { type: 'context', kind: 'explicit', value: 3, contains: { type: 'string', kind: 'utf8' } } }
139
139
  }
140
140
  };
141
141
  export const EntityTypeFields = ['organization', 'person'];
@@ -143,8 +143,8 @@ export const EntityTypeSchema = {
143
143
  type: 'struct',
144
144
  fieldNames: ['organization', 'person'],
145
145
  contains: {
146
- organization: { optional: { sequenceOf: GenericOrganizationIdentificationSchema } },
147
- person: { optional: { sequenceOf: GenericPersonIdentificationSchema } }
146
+ organization: { optional: { type: 'context', kind: 'explicit', value: 0, contains: { sequenceOf: GenericOrganizationIdentificationSchema } } },
147
+ person: { optional: { type: 'context', kind: 'explicit', value: 1, contains: { sequenceOf: GenericPersonIdentificationSchema } } }
148
148
  }
149
149
  };
150
150
  export const ContactDetailsFields = ['department', 'emailAddress', 'emailPurpose', 'faxNumber', 'fullName', 'jobResponsibility', 'jobTitle', 'mobileNumber', 'namePrefix', 'other', 'phoneNumber', 'preferredMethod'];
@@ -152,18 +152,18 @@ export const ContactDetailsSchema = {
152
152
  type: 'struct',
153
153
  fieldNames: ['department', 'emailAddress', 'emailPurpose', 'faxNumber', 'fullName', 'jobResponsibility', 'jobTitle', 'mobileNumber', 'namePrefix', 'other', 'phoneNumber', 'preferredMethod'],
154
154
  contains: {
155
- department: { optional: { type: 'string', kind: 'utf8' } },
156
- emailAddress: { optional: { type: 'string', kind: 'utf8' } },
157
- emailPurpose: { optional: { type: 'string', kind: 'utf8' } },
158
- faxNumber: { optional: { type: 'string', kind: 'utf8' } },
159
- fullName: { optional: { type: 'string', kind: 'utf8' } },
160
- jobResponsibility: { optional: { type: 'string', kind: 'utf8' } },
161
- jobTitle: { optional: { type: 'string', kind: 'utf8' } },
162
- mobileNumber: { optional: { type: 'string', kind: 'utf8' } },
163
- namePrefix: { optional: { type: 'string', kind: 'utf8' } },
164
- other: { optional: { sequenceOf: OtherContactSchema } },
165
- phoneNumber: { optional: { type: 'string', kind: 'utf8' } },
166
- preferredMethod: { optional: { type: 'string', kind: 'utf8' } }
155
+ department: { optional: { type: 'context', kind: 'explicit', value: 0, contains: { type: 'string', kind: 'utf8' } } },
156
+ emailAddress: { optional: { type: 'context', kind: 'explicit', value: 1, contains: { type: 'string', kind: 'utf8' } } },
157
+ emailPurpose: { optional: { type: 'context', kind: 'explicit', value: 2, contains: { type: 'string', kind: 'utf8' } } },
158
+ faxNumber: { optional: { type: 'context', kind: 'explicit', value: 3, contains: { type: 'string', kind: 'utf8' } } },
159
+ fullName: { optional: { type: 'context', kind: 'explicit', value: 4, contains: { type: 'string', kind: 'utf8' } } },
160
+ jobResponsibility: { optional: { type: 'context', kind: 'explicit', value: 5, contains: { type: 'string', kind: 'utf8' } } },
161
+ jobTitle: { optional: { type: 'context', kind: 'explicit', value: 6, contains: { type: 'string', kind: 'utf8' } } },
162
+ mobileNumber: { optional: { type: 'context', kind: 'explicit', value: 7, contains: { type: 'string', kind: 'utf8' } } },
163
+ namePrefix: { optional: { type: 'context', kind: 'explicit', value: 8, contains: { type: 'string', kind: 'utf8' } } },
164
+ other: { optional: { type: 'context', kind: 'explicit', value: 9, contains: { sequenceOf: OtherContactSchema } } },
165
+ phoneNumber: { optional: { type: 'context', kind: 'explicit', value: 10, contains: { type: 'string', kind: 'utf8' } } },
166
+ preferredMethod: { optional: { type: 'context', kind: 'explicit', value: 11, contains: { type: 'string', kind: 'utf8' } } }
167
167
  }
168
168
  };
169
169
  export const DocumentFields = ['documentNumber', 'front', 'back', 'selfie', 'fullName', 'firstName', 'lastName', 'dob', 'gender', 'address', 'expiresAt', 'issuedAt', 'issuingState', 'issuingCountry', 'refNumber', 'nationality', 'curp', 'claveDeElector', 'classifiedDocumentType', 'curpValidationResponse', 'sambaActivityHistoryResponse'];
@@ -171,27 +171,27 @@ export const DocumentSchema = {
171
171
  type: 'struct',
172
172
  fieldNames: ['documentNumber', 'front', 'back', 'selfie', 'fullName', 'firstName', 'lastName', 'dob', 'gender', 'address', 'expiresAt', 'issuedAt', 'issuingState', 'issuingCountry', 'refNumber', 'nationality', 'curp', 'claveDeElector', 'classifiedDocumentType', 'curpValidationResponse', 'sambaActivityHistoryResponse'],
173
173
  contains: {
174
- documentNumber: { type: 'string', kind: 'utf8' },
175
- front: { optional: ReferenceSchema },
176
- back: { optional: ReferenceSchema },
177
- selfie: { optional: ReferenceSchema },
178
- fullName: { optional: { type: 'string', kind: 'utf8' } },
179
- firstName: { optional: { type: 'string', kind: 'utf8' } },
180
- lastName: { optional: { type: 'string', kind: 'utf8' } },
181
- dob: { optional: ASN1.ValidateASN1.IsDate },
182
- gender: { optional: { type: 'string', kind: 'utf8' } },
183
- address: { optional: AddressSchema },
184
- expiresAt: { optional: ASN1.ValidateASN1.IsDate },
185
- issuedAt: { optional: ASN1.ValidateASN1.IsDate },
186
- issuingState: { optional: { type: 'string', kind: 'utf8' } },
187
- issuingCountry: { optional: { type: 'string', kind: 'utf8' } },
188
- refNumber: { optional: { type: 'string', kind: 'utf8' } },
189
- nationality: { optional: { type: 'string', kind: 'utf8' } },
190
- curp: { optional: { type: 'string', kind: 'utf8' } },
191
- claveDeElector: { optional: { type: 'string', kind: 'utf8' } },
192
- classifiedDocumentType: { optional: { type: 'string', kind: 'utf8' } },
193
- curpValidationResponse: { optional: { type: 'string', kind: 'utf8' } },
194
- sambaActivityHistoryResponse: { optional: { type: 'string', kind: 'utf8' } }
174
+ documentNumber: { type: 'context', kind: 'explicit', value: 0, contains: { type: 'string', kind: 'utf8' } },
175
+ front: { optional: { type: 'context', kind: 'explicit', value: 1, contains: ReferenceSchema } },
176
+ back: { optional: { type: 'context', kind: 'explicit', value: 2, contains: ReferenceSchema } },
177
+ selfie: { optional: { type: 'context', kind: 'explicit', value: 3, contains: ReferenceSchema } },
178
+ fullName: { optional: { type: 'context', kind: 'explicit', value: 4, contains: { type: 'string', kind: 'utf8' } } },
179
+ firstName: { optional: { type: 'context', kind: 'explicit', value: 5, contains: { type: 'string', kind: 'utf8' } } },
180
+ lastName: { optional: { type: 'context', kind: 'explicit', value: 6, contains: { type: 'string', kind: 'utf8' } } },
181
+ dob: { optional: { type: 'context', kind: 'explicit', value: 7, contains: ASN1.ValidateASN1.IsDate } },
182
+ gender: { optional: { type: 'context', kind: 'explicit', value: 8, contains: { type: 'string', kind: 'utf8' } } },
183
+ address: { optional: { type: 'context', kind: 'explicit', value: 9, contains: AddressSchema } },
184
+ expiresAt: { optional: { type: 'context', kind: 'explicit', value: 10, contains: ASN1.ValidateASN1.IsDate } },
185
+ issuedAt: { optional: { type: 'context', kind: 'explicit', value: 11, contains: ASN1.ValidateASN1.IsDate } },
186
+ issuingState: { optional: { type: 'context', kind: 'explicit', value: 12, contains: { type: 'string', kind: 'utf8' } } },
187
+ issuingCountry: { optional: { type: 'context', kind: 'explicit', value: 13, contains: { type: 'string', kind: 'utf8' } } },
188
+ refNumber: { optional: { type: 'context', kind: 'explicit', value: 14, contains: { type: 'string', kind: 'utf8' } } },
189
+ nationality: { optional: { type: 'context', kind: 'explicit', value: 15, contains: { type: 'string', kind: 'utf8' } } },
190
+ curp: { optional: { type: 'context', kind: 'explicit', value: 16, contains: { type: 'string', kind: 'utf8' } } },
191
+ claveDeElector: { optional: { type: 'context', kind: 'explicit', value: 17, contains: { type: 'string', kind: 'utf8' } } },
192
+ classifiedDocumentType: { optional: { type: 'context', kind: 'explicit', value: 18, contains: { type: 'string', kind: 'utf8' } } },
193
+ curpValidationResponse: { optional: { type: 'context', kind: 'explicit', value: 19, contains: { type: 'string', kind: 'utf8' } } },
194
+ sambaActivityHistoryResponse: { optional: { type: 'context', kind: 'explicit', value: 20, contains: { type: 'string', kind: 'utf8' } } }
195
195
  }
196
196
  };
197
197
  export const CertificateAttributeOIDDB = {