@inkd/sdk 0.9.0

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.
Files changed (106) hide show
  1. package/README.md +288 -0
  2. package/dist/InkdClient.d.ts +89 -0
  3. package/dist/InkdClient.d.ts.map +1 -0
  4. package/dist/InkdClient.js +398 -0
  5. package/dist/InkdClient.js.map +1 -0
  6. package/dist/ProjectRegistry.d.ts +655 -0
  7. package/dist/ProjectRegistry.d.ts.map +1 -0
  8. package/dist/ProjectRegistry.js +708 -0
  9. package/dist/ProjectRegistry.js.map +1 -0
  10. package/dist/__tests__/InkdClient.advanced.test.d.ts +10 -0
  11. package/dist/__tests__/InkdClient.advanced.test.d.ts.map +1 -0
  12. package/dist/__tests__/InkdClient.advanced.test.js +588 -0
  13. package/dist/__tests__/InkdClient.advanced.test.js.map +1 -0
  14. package/dist/__tests__/InkdClient.connectArweave.test.d.ts +10 -0
  15. package/dist/__tests__/InkdClient.connectArweave.test.d.ts.map +1 -0
  16. package/dist/__tests__/InkdClient.connectArweave.test.js +132 -0
  17. package/dist/__tests__/InkdClient.connectArweave.test.js.map +1 -0
  18. package/dist/__tests__/InkdClient.test.d.ts +2 -0
  19. package/dist/__tests__/InkdClient.test.d.ts.map +1 -0
  20. package/dist/__tests__/InkdClient.test.js +259 -0
  21. package/dist/__tests__/InkdClient.test.js.map +1 -0
  22. package/dist/__tests__/ProjectRegistry.test.d.ts +8 -0
  23. package/dist/__tests__/ProjectRegistry.test.d.ts.map +1 -0
  24. package/dist/__tests__/ProjectRegistry.test.js +689 -0
  25. package/dist/__tests__/ProjectRegistry.test.js.map +1 -0
  26. package/dist/__tests__/arweave.test.d.ts +9 -0
  27. package/dist/__tests__/arweave.test.d.ts.map +1 -0
  28. package/dist/__tests__/arweave.test.js +353 -0
  29. package/dist/__tests__/arweave.test.js.map +1 -0
  30. package/dist/__tests__/encryption.test.d.ts +2 -0
  31. package/dist/__tests__/encryption.test.d.ts.map +1 -0
  32. package/dist/__tests__/encryption.test.js +154 -0
  33. package/dist/__tests__/encryption.test.js.map +1 -0
  34. package/dist/__tests__/errors.test.d.ts +2 -0
  35. package/dist/__tests__/errors.test.d.ts.map +1 -0
  36. package/dist/__tests__/errors.test.js +136 -0
  37. package/dist/__tests__/errors.test.js.map +1 -0
  38. package/dist/__tests__/events.test.d.ts +10 -0
  39. package/dist/__tests__/events.test.d.ts.map +1 -0
  40. package/dist/__tests__/events.test.js +380 -0
  41. package/dist/__tests__/events.test.js.map +1 -0
  42. package/dist/__tests__/index.InkdClient.test.d.ts +8 -0
  43. package/dist/__tests__/index.InkdClient.test.d.ts.map +1 -0
  44. package/dist/__tests__/index.InkdClient.test.js +422 -0
  45. package/dist/__tests__/index.InkdClient.test.js.map +1 -0
  46. package/dist/__tests__/multicall.test.d.ts +9 -0
  47. package/dist/__tests__/multicall.test.d.ts.map +1 -0
  48. package/dist/__tests__/multicall.test.js +362 -0
  49. package/dist/__tests__/multicall.test.js.map +1 -0
  50. package/dist/__tests__/types.test.d.ts +2 -0
  51. package/dist/__tests__/types.test.d.ts.map +1 -0
  52. package/dist/__tests__/types.test.js +35 -0
  53. package/dist/__tests__/types.test.js.map +1 -0
  54. package/dist/abi.d.ts +2632 -0
  55. package/dist/abi.d.ts.map +1 -0
  56. package/dist/abi.js +3423 -0
  57. package/dist/abi.js.map +1 -0
  58. package/dist/arweave.d.ts +45 -0
  59. package/dist/arweave.d.ts.map +1 -0
  60. package/dist/arweave.js +154 -0
  61. package/dist/arweave.js.map +1 -0
  62. package/dist/encryption.d.ts +52 -0
  63. package/dist/encryption.d.ts.map +1 -0
  64. package/dist/encryption.js +80 -0
  65. package/dist/encryption.js.map +1 -0
  66. package/dist/errors.d.ts +63 -0
  67. package/dist/errors.d.ts.map +1 -0
  68. package/dist/errors.js +124 -0
  69. package/dist/errors.js.map +1 -0
  70. package/dist/events.d.ts +136 -0
  71. package/dist/events.d.ts.map +1 -0
  72. package/dist/events.js +131 -0
  73. package/dist/events.js.map +1 -0
  74. package/dist/hooks/index.d.ts +5 -0
  75. package/dist/hooks/index.d.ts.map +1 -0
  76. package/dist/hooks/index.js +12 -0
  77. package/dist/hooks/index.js.map +1 -0
  78. package/dist/hooks/useInkd.d.ts +24 -0
  79. package/dist/hooks/useInkd.d.ts.map +1 -0
  80. package/dist/hooks/useInkd.js +109 -0
  81. package/dist/hooks/useInkd.js.map +1 -0
  82. package/dist/hooks/useInkdHolder.d.ts +16 -0
  83. package/dist/hooks/useInkdHolder.d.ts.map +1 -0
  84. package/dist/hooks/useInkdHolder.js +45 -0
  85. package/dist/hooks/useInkdHolder.js.map +1 -0
  86. package/dist/hooks/useInscriptions.d.ts +17 -0
  87. package/dist/hooks/useInscriptions.d.ts.map +1 -0
  88. package/dist/hooks/useInscriptions.js +46 -0
  89. package/dist/hooks/useInscriptions.js.map +1 -0
  90. package/dist/hooks/useToken.d.ts +16 -0
  91. package/dist/hooks/useToken.d.ts.map +1 -0
  92. package/dist/hooks/useToken.js +45 -0
  93. package/dist/hooks/useToken.js.map +1 -0
  94. package/dist/index.d.ts +54 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +290 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/multicall.d.ts +134 -0
  99. package/dist/multicall.d.ts.map +1 -0
  100. package/dist/multicall.js +182 -0
  101. package/dist/multicall.js.map +1 -0
  102. package/dist/types.d.ts +187 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +32 -0
  105. package/dist/types.js.map +1 -0
  106. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectRegistry.js","sourceRoot":"","sources":["../src/ProjectRegistry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;AAWH,iFAAiF;AAEjF,gDAAgD;AACnC,QAAA,iBAAiB,GAAG;IAC/B,6EAA6E;IAC7E;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,IAAI,EAAa,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,MAAM,EAAW,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,aAAa,EAAI,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,SAAS,EAAQ,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,YAAY,EAAK,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,OAAO,EAAU,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,UAAU,EAAO,IAAI,EAAE,MAAM,EAAK;oBAC1C,EAAE,IAAI,EAAE,SAAS,EAAQ,IAAI,EAAE,MAAM,EAAK;oBAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,WAAW,EAAM,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,cAAc,EAAG,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,QAAQ,EAAS,IAAI,EAAE,MAAM,EAAK;iBAC3C;aACF;SACF;QACD,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAK,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;SAC1C;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,SAAS,EAAE;oBACxC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAG;oBACxC,EAAE,IAAI,EAAE,YAAY,EAAG,IAAI,EAAE,QAAQ,EAAG;oBACxC,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,QAAQ,EAAG;oBACxC,EAAE,IAAI,EAAE,UAAU,EAAK,IAAI,EAAE,SAAS,EAAE;oBACxC,EAAE,IAAI,EAAE,UAAU,EAAK,IAAI,EAAE,SAAS,EAAE;iBACzC;aACF;SACF;QACD,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC1C,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC1C,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,OAAO,EAAG,IAAI,EAAE,SAAS,EAAE;SACpC;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,IAAI,EAAa,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,MAAM,EAAW,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,aAAa,EAAI,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,SAAS,EAAQ,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,YAAY,EAAK,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,OAAO,EAAU,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,UAAU,EAAO,IAAI,EAAE,MAAM,EAAK;oBAC1C,EAAE,IAAI,EAAE,SAAS,EAAQ,IAAI,EAAE,MAAM,EAAK;oBAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAG;oBAC1C,EAAE,IAAI,EAAE,WAAW,EAAM,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,cAAc,EAAG,IAAI,EAAE,SAAS,EAAE;oBAC1C,EAAE,IAAI,EAAE,QAAQ,EAAS,IAAI,EAAE,MAAM,EAAK;iBAC3C;aACF;SACF;QACD,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAK,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;SAC1C;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACrC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACrC,eAAe,EAAE,MAAM;KACxB;IACD,6EAA6E;IAC7E;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAW,IAAI,EAAE,QAAQ,EAAG;YAC1C,EAAE,IAAI,EAAE,aAAa,EAAI,IAAI,EAAE,QAAQ,EAAG;YAC1C,EAAE,IAAI,EAAE,SAAS,EAAQ,IAAI,EAAE,QAAQ,EAAG;YAC1C,EAAE,IAAI,EAAE,UAAU,EAAO,IAAI,EAAE,MAAM,EAAK;YAC1C,EAAE,IAAI,EAAE,YAAY,EAAK,IAAI,EAAE,QAAQ,EAAG;YAC1C,EAAE,IAAI,EAAE,SAAS,EAAQ,IAAI,EAAE,MAAM,EAAK;YAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAG;SAC3C;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAG;YACxC,EAAE,IAAI,EAAE,YAAY,EAAG,IAAI,EAAE,QAAQ,EAAG;YACxC,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,QAAQ,EAAG;SACzC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,SAAS;KAC3B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAK,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;SAC1C;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAK,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;SAC1C;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,UAAU,EAAG,IAAI,EAAE,SAAS,EAAE;SACvC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,SAAS;KAC3B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,UAAU,EAAG,IAAI,EAAE,MAAM,EAAK;SACvC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAG;SACzC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,UAAU,EAAG,IAAI,EAAE,QAAQ,EAAG;SACvC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD,6EAA6E;IAC7E;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,OAAO,EAAM,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YACrD,EAAE,IAAI,EAAE,MAAM,EAAO,IAAI,EAAE,QAAQ,EAAG,OAAO,EAAE,KAAK,EAAE;YACtD,EAAE,IAAI,EAAE,SAAS,EAAI,IAAI,EAAE,QAAQ,EAAG,OAAO,EAAE,KAAK,EAAE;SACvD;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAG;YACxD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAG,OAAO,EAAE,KAAK,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAG,IAAI,EAAE,QAAQ,EAAG,OAAO,EAAE,KAAK,EAAE;YACxD,EAAE,IAAI,EAAE,UAAU,EAAK,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACzD;KACF;CACO,CAAC;AAEX,8DAA8D;AACjD,QAAA,cAAc,GAAG;IAC5B;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,QAAQ,EAAG,IAAI,EAAE,SAAS,EAAE;SACrC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACrC,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAI,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;CACO,CAAC;AAwFX,iFAAiF;AAEjF,MAAa,oBAAqB,SAAQ,KAAK;IAC7C;QACE,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC;AAED,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe,EAAE,QAAgB;QAC3C,KAAK,CACH,+CAA+C;YAC7C,QAAQ,OAAO,UAAU,QAAQ,EAAE,CACtC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AARD,0DAQC;AAED,MAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,GAAW;QACrB,KAAK,CACH,oDAAoD,GAAG,eAAe,CACvE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAPD,wDAOC;AAED,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAa,eAAe;IAClB,MAAM,CAAwB;IAC9B,YAAY,GAAmD,IAAI,CAAC;IACpE,YAAY,GAAwB,IAAI,CAAC;IAEjD,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,+EAA+E;IAE/E;;;OAGG;IACH,OAAO,CACL,YAAqD,EACrD,YAA0B;QAE1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,gFAAgF;IAEhF,uEAAuE;IACvE,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAY,CAAC;QACd,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,YAAoB;QAEpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;SAChC,CAA4B,CAAC;IAChC,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAW,CAAC;QAEb,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CACtC,CACF,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,gBAAgB,CAAC,KAAc;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAsB,CAAC;IAC1B,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAuB,CAAC;IAC3B,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,OAAgB;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;SAC3B,CAAqB,CAAC;IACzB,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAC3B,CAAqB,CAAC;IACzB,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,gBAAgB,CACpB,MAAM,GAAG,EAAE,EACX,KAAK,GAAG,IAAI;QAEZ,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;SACtB,CAAuB,CAAC;IAC3B,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,YAAY;SAC3B,CAAoB,CAAC;IACxB,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,aAAa;SAC5B,CAAoB,CAAC;IACxB,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,cAAc;SAC7B,CAAoB,CAAC;IACxB,CAAC;IAED,gFAAgF;IAEhF;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,IAA0B;QAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,mBAAmB;SAClC,CAAW,CAAC;QAEb,MAAM,OAAO,GAAG,IAAI,CAAC,YAAa,CAAC,OAAO,CAAC,OAAkB,CAAC;QAE9D,gBAAgB;QAChB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACpD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,GAAG,EAAE,sBAAc;YACnB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAW,CAAC;QAEb,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,MAAM,IAAI,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;QAED,oBAAoB;QACpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACtD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,GAAG,EAAE,sBAAc;YACnB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;SAC7C,CAAW,CAAC;QAEb,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;gBACvD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACjC,GAAG,EAAE,sBAAc;gBACnB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;aAChD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,iBAAiB;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE;gBACJ,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,WAAW,IAAI,EAAE;gBACtB,IAAI,CAAC,OAAO,IAAI,KAAK;gBACrB,IAAI,CAAC,QAAQ,IAAI,IAAI;gBACrB,IAAI,CAAC,UAAU,IAAI,EAAE;gBACrB,IAAI,CAAC,OAAO,IAAI,KAAK;gBACrB,IAAI,CAAC,aAAa,IAAI,EAAE;aACzB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CACf,IAAwB,EACxB,KAAc;QAEd,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE;gBACJ,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,SAAS,IAAI,EAAE;aACrB;YACD,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;SACvB,CAAW,CAAC;QAEb,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAG,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,YAAqB;QAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,YAAqB;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,oBAAoB;YAClC,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,QAAiB,EACjB,KAAc;QAEd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC3B,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,QAAiB;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,WAAmB;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;SAC/B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;QACxD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACpC,GAAG,EAAE,yBAAiB;YACtB,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,YAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAEhF;;;OAGG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB;QACxB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,gFAAgF;IAExE,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,MAAM,IAAI,oBAAoB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,IAAoB;QACnD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,GAAqC,CAAC;YAChD,iDAAiD;YACjD,wBAAwB;YACxB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACH,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAxZD,0CAwZC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @file InkdClient.advanced.test.ts
3
+ * @description Edge-case and untested-method coverage for InkdClient.
4
+ * Covers: grantAccess, revokeAccess, listForSale, buyToken,
5
+ * getInscriptions, removeInscription, updateInscription,
6
+ * getTokensByOwner, batch mint, full inscribe flow, and
7
+ * connection guards for all previously uncovered methods.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=InkdClient.advanced.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InkdClient.advanced.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/InkdClient.advanced.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,588 @@
1
+ "use strict";
2
+ /**
3
+ * @file InkdClient.advanced.test.ts
4
+ * @description Edge-case and untested-method coverage for InkdClient.
5
+ * Covers: grantAccess, revokeAccess, listForSale, buyToken,
6
+ * getInscriptions, removeInscription, updateInscription,
7
+ * getTokensByOwner, batch mint, full inscribe flow, and
8
+ * connection guards for all previously uncovered methods.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const vitest_1 = require("vitest");
12
+ const InkdClient_1 = require("../InkdClient");
13
+ const errors_1 = require("../errors");
14
+ // ─── Shared Config ────────────────────────────────────────────────────────────
15
+ const TEST_CONFIG = {
16
+ tokenAddress: "0x1111111111111111111111111111111111111111",
17
+ vaultAddress: "0x2222222222222222222222222222222222222222",
18
+ registryAddress: "0x3333333333333333333333333333333333333333",
19
+ chainId: 84532,
20
+ };
21
+ const ZERO_HASH = "0xdeadbeef";
22
+ const BLOCK_TIMESTAMP = 1700000000n;
23
+ // ─── Mock Factories ───────────────────────────────────────────────────────────
24
+ function makeMockPublicClient(overrides = {}) {
25
+ return {
26
+ readContract: vitest_1.vi.fn(),
27
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({ logs: [] }),
28
+ getBlock: vitest_1.vi.fn().mockResolvedValue({ timestamp: BLOCK_TIMESTAMP }),
29
+ ...overrides,
30
+ };
31
+ }
32
+ function makeMockWalletClient(overrides = {}) {
33
+ return {
34
+ writeContract: vitest_1.vi.fn().mockResolvedValue(ZERO_HASH),
35
+ account: { address: "0xuser" },
36
+ ...overrides,
37
+ };
38
+ }
39
+ /** Inject a fake Arweave client into the private field. */
40
+ function injectMockArweave(client, uploadResult = { hash: "arweave-tx-id", size: 1024 }) {
41
+ const mockArweave = {
42
+ uploadFile: vitest_1.vi.fn().mockResolvedValue(uploadResult),
43
+ connect: vitest_1.vi.fn().mockResolvedValue(undefined),
44
+ };
45
+ // Access private field via type cast for test injection
46
+ client.arweave = mockArweave;
47
+ return mockArweave;
48
+ }
49
+ function connectClient(client, publicOverrides = {}, walletOverrides = {}) {
50
+ const pub = makeMockPublicClient(publicOverrides);
51
+ const wal = makeMockWalletClient(walletOverrides);
52
+ // @ts-expect-error — mock clients lack full viem types
53
+ client.connect(wal, pub);
54
+ return { pub, wal };
55
+ }
56
+ // ─── Connection Guards (previously uncovered methods) ─────────────────────────
57
+ (0, vitest_1.describe)("InkdClient — connection guards (additional methods)", () => {
58
+ let client;
59
+ (0, vitest_1.beforeEach)(() => {
60
+ client = new InkdClient_1.InkdClient(TEST_CONFIG);
61
+ });
62
+ (0, vitest_1.it)("getInscriptions: throws ClientNotConnected without publicClient", async () => {
63
+ await (0, vitest_1.expect)(client.getInscriptions(1n)).rejects.toThrow(errors_1.ClientNotConnected);
64
+ });
65
+ (0, vitest_1.it)("removeInscription: throws ClientNotConnected without wallet", async () => {
66
+ await (0, vitest_1.expect)(client.removeInscription(1n, 0)).rejects.toThrow(errors_1.ClientNotConnected);
67
+ });
68
+ (0, vitest_1.it)("updateInscription: throws ClientNotConnected without wallet", async () => {
69
+ await (0, vitest_1.expect)(client.updateInscription(1n, 0, "new data")).rejects.toThrow(errors_1.ClientNotConnected);
70
+ });
71
+ (0, vitest_1.it)("updateInscription: throws ArweaveNotConnected when wallet connected but no arweave", async () => {
72
+ connectClient(client);
73
+ await (0, vitest_1.expect)(client.updateInscription(1n, 0, Buffer.from("data"))).rejects.toThrow(errors_1.ArweaveNotConnected);
74
+ });
75
+ (0, vitest_1.it)("grantAccess: throws ClientNotConnected without wallet", async () => {
76
+ await (0, vitest_1.expect)(client.grantAccess(1n, "0x0000000000000000000000000000000000000001", 3600)).rejects.toThrow(errors_1.ClientNotConnected);
77
+ });
78
+ (0, vitest_1.it)("revokeAccess: throws ClientNotConnected without wallet", async () => {
79
+ await (0, vitest_1.expect)(client.revokeAccess(1n, "0x0000000000000000000000000000000000000001")).rejects.toThrow(errors_1.ClientNotConnected);
80
+ });
81
+ (0, vitest_1.it)("listForSale: throws ClientNotConnected without wallet", async () => {
82
+ await (0, vitest_1.expect)(client.listForSale(1n, 1000000000000000n)).rejects.toThrow(errors_1.ClientNotConnected);
83
+ });
84
+ (0, vitest_1.it)("buyToken: throws ClientNotConnected without wallet", async () => {
85
+ await (0, vitest_1.expect)(client.buyToken(1n)).rejects.toThrow(errors_1.ClientNotConnected);
86
+ });
87
+ (0, vitest_1.it)("getTokensByOwner: throws ClientNotConnected without publicClient", async () => {
88
+ await (0, vitest_1.expect)(client.getTokensByOwner("0x0000000000000000000000000000000000000001")).rejects.toThrow(errors_1.ClientNotConnected);
89
+ });
90
+ (0, vitest_1.it)("estimateInscribeCost: throws ClientNotConnected without publicClient", async () => {
91
+ await (0, vitest_1.expect)(client.estimateInscribeCost(1024)).rejects.toThrow(errors_1.ClientNotConnected);
92
+ });
93
+ });
94
+ // ─── getInscriptions() ────────────────────────────────────────────────────────
95
+ (0, vitest_1.describe)("InkdClient — getInscriptions()", () => {
96
+ (0, vitest_1.it)("returns a mapped array of inscriptions", async () => {
97
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
98
+ const rawInscriptions = [
99
+ {
100
+ arweaveHash: "abc123",
101
+ contentType: "application/json",
102
+ size: 512n,
103
+ name: "brain.json",
104
+ createdAt: 1700000000n,
105
+ isRemoved: false,
106
+ version: 1n,
107
+ },
108
+ {
109
+ arweaveHash: "def456",
110
+ contentType: "text/plain",
111
+ size: 100n,
112
+ name: "readme.txt",
113
+ createdAt: 1700001000n,
114
+ isRemoved: true,
115
+ version: 2n,
116
+ },
117
+ ];
118
+ const { pub } = connectClient(client, {
119
+ readContract: vitest_1.vi.fn().mockResolvedValue(rawInscriptions),
120
+ });
121
+ const result = await client.getInscriptions(42n);
122
+ (0, vitest_1.expect)(pub.readContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
123
+ address: TEST_CONFIG.vaultAddress,
124
+ functionName: "getInscriptions",
125
+ args: [42n],
126
+ }));
127
+ (0, vitest_1.expect)(result).toHaveLength(2);
128
+ (0, vitest_1.expect)(result[0].arweaveHash).toBe("abc123");
129
+ (0, vitest_1.expect)(result[0].contentType).toBe("application/json");
130
+ (0, vitest_1.expect)(result[0].size).toBe(512n);
131
+ (0, vitest_1.expect)(result[0].isRemoved).toBe(false);
132
+ (0, vitest_1.expect)(result[0].version).toBe(1n);
133
+ (0, vitest_1.expect)(result[1].isRemoved).toBe(true);
134
+ });
135
+ (0, vitest_1.it)("returns empty array when token has no inscriptions", async () => {
136
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
137
+ connectClient(client, {
138
+ readContract: vitest_1.vi.fn().mockResolvedValue([]),
139
+ });
140
+ const result = await client.getInscriptions(1n);
141
+ (0, vitest_1.expect)(result).toEqual([]);
142
+ });
143
+ });
144
+ // ─── removeInscription() ─────────────────────────────────────────────────────
145
+ (0, vitest_1.describe)("InkdClient — removeInscription()", () => {
146
+ (0, vitest_1.it)("calls writeContract with correct args and returns hash + tokenId", async () => {
147
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
148
+ const { wal } = connectClient(client);
149
+ const result = await client.removeInscription(7n, 2);
150
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
151
+ address: TEST_CONFIG.vaultAddress,
152
+ functionName: "removeInscription",
153
+ args: [7n, 2n],
154
+ }));
155
+ (0, vitest_1.expect)(result.hash).toBe(ZERO_HASH);
156
+ (0, vitest_1.expect)(result.tokenId).toBe(7n);
157
+ });
158
+ (0, vitest_1.it)("converts numeric index to BigInt for contract call", async () => {
159
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
160
+ const { wal } = connectClient(client);
161
+ await client.removeInscription(1n, 0);
162
+ const call = wal.writeContract.mock.calls[0][0];
163
+ (0, vitest_1.expect)(call.args[1]).toBe(0n); // index converted to BigInt
164
+ });
165
+ });
166
+ // ─── updateInscription() ─────────────────────────────────────────────────────
167
+ (0, vitest_1.describe)("InkdClient — updateInscription()", () => {
168
+ (0, vitest_1.it)("uploads to Arweave and calls updateInscription on-chain with string data", async () => {
169
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
170
+ const { wal } = connectClient(client);
171
+ const mockArweave = injectMockArweave(client, {
172
+ hash: "new-arweave-tx",
173
+ size: 256,
174
+ });
175
+ const result = await client.updateInscription(5n, 1, "updated brain data");
176
+ (0, vitest_1.expect)(mockArweave.uploadFile).toHaveBeenCalledOnce();
177
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
178
+ address: TEST_CONFIG.vaultAddress,
179
+ functionName: "updateInscription",
180
+ args: [5n, 1n, "new-arweave-tx"],
181
+ }));
182
+ (0, vitest_1.expect)(result.hash).toBe(ZERO_HASH);
183
+ (0, vitest_1.expect)(result.tokenId).toBe(5n);
184
+ });
185
+ (0, vitest_1.it)("accepts Buffer data", async () => {
186
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
187
+ connectClient(client);
188
+ injectMockArweave(client);
189
+ await (0, vitest_1.expect)(client.updateInscription(1n, 0, Buffer.from("buffer payload"), "image/png")).resolves.toBeDefined();
190
+ });
191
+ (0, vitest_1.it)("accepts Uint8Array data", async () => {
192
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
193
+ connectClient(client);
194
+ injectMockArweave(client);
195
+ await (0, vitest_1.expect)(client.updateInscription(1n, 0, new Uint8Array([1, 2, 3]))).resolves.toBeDefined();
196
+ });
197
+ (0, vitest_1.it)("uses application/octet-stream when no contentType given", async () => {
198
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
199
+ connectClient(client);
200
+ const mockArweave = injectMockArweave(client);
201
+ await client.updateInscription(1n, 0, "data");
202
+ (0, vitest_1.expect)(mockArweave.uploadFile).toHaveBeenCalledWith(vitest_1.expect.anything(), "application/octet-stream");
203
+ });
204
+ });
205
+ // ─── grantAccess() ────────────────────────────────────────────────────────────
206
+ (0, vitest_1.describe)("InkdClient — grantAccess()", () => {
207
+ (0, vitest_1.it)("calculates expiresAt from block timestamp + duration", async () => {
208
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
209
+ const DURATION = 3600; // 1 hour
210
+ const expectedExpiry = BLOCK_TIMESTAMP + BigInt(DURATION);
211
+ const { wal } = connectClient(client);
212
+ const TARGET_WALLET = "0x0000000000000000000000000000000000000042";
213
+ await client.grantAccess(1n, TARGET_WALLET, DURATION);
214
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
215
+ address: TEST_CONFIG.vaultAddress,
216
+ functionName: "grantReadAccess",
217
+ args: [1n, TARGET_WALLET, expectedExpiry],
218
+ }));
219
+ });
220
+ (0, vitest_1.it)("returns hash and tokenId", async () => {
221
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
222
+ connectClient(client);
223
+ const result = await client.grantAccess(9n, "0x0000000000000000000000000000000000000001", 86400);
224
+ (0, vitest_1.expect)(result.hash).toBe(ZERO_HASH);
225
+ (0, vitest_1.expect)(result.tokenId).toBe(9n);
226
+ });
227
+ (0, vitest_1.it)("fetches block timestamp before calling contract", async () => {
228
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
229
+ const { pub } = connectClient(client);
230
+ await client.grantAccess(1n, "0x0000000000000000000000000000000000000001", 100);
231
+ (0, vitest_1.expect)(pub.getBlock).toHaveBeenCalledOnce();
232
+ });
233
+ });
234
+ // ─── revokeAccess() ───────────────────────────────────────────────────────────
235
+ (0, vitest_1.describe)("InkdClient — revokeAccess()", () => {
236
+ (0, vitest_1.it)("calls revokeAccess on the vault contract", async () => {
237
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
238
+ const { wal } = connectClient(client);
239
+ const TARGET = "0x0000000000000000000000000000000000000099";
240
+ const result = await client.revokeAccess(3n, TARGET);
241
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
242
+ address: TEST_CONFIG.vaultAddress,
243
+ functionName: "revokeAccess",
244
+ args: [3n, TARGET],
245
+ }));
246
+ (0, vitest_1.expect)(result.hash).toBe(ZERO_HASH);
247
+ (0, vitest_1.expect)(result.tokenId).toBe(3n);
248
+ });
249
+ });
250
+ // ─── listForSale() ────────────────────────────────────────────────────────────
251
+ (0, vitest_1.describe)("InkdClient — listForSale()", () => {
252
+ (0, vitest_1.it)("first approves registry, then calls listForSale", async () => {
253
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
254
+ const { wal } = connectClient(client);
255
+ const PRICE = 500000000000000000n; // 0.5 ETH
256
+ await client.listForSale(4n, PRICE);
257
+ // Two writeContract calls: approve + listForSale
258
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledTimes(2);
259
+ const [approveCall, listCall] = wal.writeContract.mock.calls;
260
+ // First call: approve
261
+ (0, vitest_1.expect)(approveCall[0]).toMatchObject({
262
+ address: TEST_CONFIG.tokenAddress,
263
+ functionName: "approve",
264
+ args: [TEST_CONFIG.registryAddress, 4n],
265
+ });
266
+ // Second call: listForSale
267
+ (0, vitest_1.expect)(listCall[0]).toMatchObject({
268
+ address: TEST_CONFIG.registryAddress,
269
+ functionName: "listForSale",
270
+ args: [4n, PRICE],
271
+ });
272
+ });
273
+ (0, vitest_1.it)("returns hash and tokenId", async () => {
274
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
275
+ connectClient(client);
276
+ const result = await client.listForSale(2n, 1000000000000000n);
277
+ (0, vitest_1.expect)(result.hash).toBe(ZERO_HASH);
278
+ (0, vitest_1.expect)(result.tokenId).toBe(2n);
279
+ });
280
+ });
281
+ // ─── buyToken() ───────────────────────────────────────────────────────────────
282
+ (0, vitest_1.describe)("InkdClient — buyToken()", () => {
283
+ (0, vitest_1.it)("reads listing price and calls buyToken with correct value", async () => {
284
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
285
+ const LISTING_PRICE = 250000000000000000n; // 0.25 ETH
286
+ // listings() returns: [listingId, seller, price, createdAt, isActive]
287
+ const mockListing = [0n, "0xseller", LISTING_PRICE, 1700000000n, true];
288
+ const { pub, wal } = connectClient(client, {
289
+ readContract: vitest_1.vi.fn().mockResolvedValue(mockListing),
290
+ });
291
+ const result = await client.buyToken(6n);
292
+ (0, vitest_1.expect)(pub.readContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
293
+ address: TEST_CONFIG.registryAddress,
294
+ functionName: "listings",
295
+ args: [6n],
296
+ }));
297
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
298
+ address: TEST_CONFIG.registryAddress,
299
+ functionName: "buyToken",
300
+ args: [6n],
301
+ value: LISTING_PRICE,
302
+ }));
303
+ (0, vitest_1.expect)(result.hash).toBe(ZERO_HASH);
304
+ (0, vitest_1.expect)(result.tokenId).toBe(6n);
305
+ });
306
+ (0, vitest_1.it)("extracts price from listing index 2", async () => {
307
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
308
+ const PRICE = 100000000000000n;
309
+ const listing = [1n, "0xseller", PRICE, 1700000000n, true];
310
+ const { wal } = connectClient(client, {
311
+ readContract: vitest_1.vi.fn().mockResolvedValue(listing),
312
+ });
313
+ await client.buyToken(99n);
314
+ const buyCall = wal.writeContract.mock.calls[0][0];
315
+ (0, vitest_1.expect)(buyCall.value).toBe(PRICE);
316
+ });
317
+ });
318
+ // ─── getTokensByOwner() ───────────────────────────────────────────────────────
319
+ (0, vitest_1.describe)("InkdClient — getTokensByOwner()", () => {
320
+ (0, vitest_1.it)("returns full token data for each owned token ID", async () => {
321
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
322
+ const OWNER = "0xowner1111111111111111111111111111111111111";
323
+ // readContract is called: once for getTokensByOwner, then 4 times per token (owner, mintedAt, inscCount, tokenURI)
324
+ let callIndex = 0;
325
+ const tokenData = [
326
+ OWNER, 1700000000n, 2n, "data:application/json,token1",
327
+ OWNER, 1700001000n, 5n, "data:application/json,token2",
328
+ ];
329
+ const { pub } = connectClient(client, {
330
+ readContract: vitest_1.vi.fn().mockImplementation(({ functionName }) => {
331
+ if (functionName === "getTokensByOwner") {
332
+ return Promise.resolve([10n, 11n]);
333
+ }
334
+ return Promise.resolve(tokenData[callIndex++]);
335
+ }),
336
+ });
337
+ const tokens = await client.getTokensByOwner(OWNER);
338
+ (0, vitest_1.expect)(pub.readContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
339
+ functionName: "getTokensByOwner",
340
+ args: [OWNER],
341
+ }));
342
+ (0, vitest_1.expect)(tokens).toHaveLength(2);
343
+ (0, vitest_1.expect)(tokens[0].tokenId).toBe(10n);
344
+ (0, vitest_1.expect)(tokens[1].tokenId).toBe(11n);
345
+ });
346
+ (0, vitest_1.it)("returns empty array when owner holds no tokens", async () => {
347
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
348
+ connectClient(client, {
349
+ readContract: vitest_1.vi.fn().mockImplementation(({ functionName }) => {
350
+ if (functionName === "getTokensByOwner")
351
+ return Promise.resolve([]);
352
+ return Promise.resolve("fallback");
353
+ }),
354
+ });
355
+ const tokens = await client.getTokensByOwner("0x0000000000000000000000000000000000000000");
356
+ (0, vitest_1.expect)(tokens).toEqual([]);
357
+ });
358
+ });
359
+ // ─── mintToken() batch (quantity > 1) ────────────────────────────────────────
360
+ (0, vitest_1.describe)("InkdClient — mintToken() batch", () => {
361
+ (0, vitest_1.it)("calls batchMint when quantity > 1", async () => {
362
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
363
+ const MINT_PRICE = 10000000000000000n; // 0.01 ETH
364
+ const { wal } = connectClient(client, {
365
+ readContract: vitest_1.vi.fn().mockResolvedValue(MINT_PRICE),
366
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({
367
+ logs: [
368
+ { topics: ["0xTransfer", "0x0", "0xuser", "0x1"] },
369
+ { topics: ["0xTransfer", "0x0", "0xuser", "0x2"] },
370
+ { topics: ["0xTransfer", "0x0", "0xuser", "0x3"] },
371
+ ],
372
+ }),
373
+ });
374
+ const result = await client.mintToken({ quantity: 3 });
375
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
376
+ functionName: "batchMint",
377
+ args: [3n],
378
+ value: MINT_PRICE * 3n,
379
+ }));
380
+ // result.tokenId is the first tokenId from the batch
381
+ (0, vitest_1.expect)(result.tokenId).toBe(1n);
382
+ });
383
+ (0, vitest_1.it)("multiplies mint price by quantity for batchMint value", async () => {
384
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
385
+ const PRICE = 5000000000000000n; // 0.005 ETH
386
+ const { wal } = connectClient(client, {
387
+ readContract: vitest_1.vi.fn().mockResolvedValue(PRICE),
388
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({ logs: [] }),
389
+ });
390
+ await client.mintToken({ quantity: 10 });
391
+ const call = wal.writeContract.mock.calls[0][0];
392
+ (0, vitest_1.expect)(call.value).toBe(PRICE * 10n);
393
+ });
394
+ (0, vitest_1.it)("single mint (quantity=1) uses regular mint, not batchMint", async () => {
395
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
396
+ const { wal } = connectClient(client, {
397
+ readContract: vitest_1.vi.fn().mockResolvedValue(0n),
398
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({ logs: [] }),
399
+ });
400
+ await client.mintToken({ quantity: 1 });
401
+ const call = wal.writeContract.mock.calls[0][0];
402
+ (0, vitest_1.expect)(call.functionName).toBe("mint"); // not batchMint
403
+ });
404
+ (0, vitest_1.it)("extractAllTokenIdsFromLogs: skips log with invalid topic[3] (catch branch)", async () => {
405
+ // First log has an unparseable topic[3] — BigInt("not-a-bigint") throws → catch fires
406
+ // Second log is valid — should be included in result
407
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
408
+ const MINT_PRICE = 1000000000000000n;
409
+ connectClient(client, {
410
+ readContract: vitest_1.vi.fn().mockResolvedValue(MINT_PRICE),
411
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({
412
+ logs: [
413
+ { topics: ["0xTransfer", "0x0", "0xuser", "not-a-bigint"] }, // ← triggers catch
414
+ { topics: ["0xTransfer", "0x0", "0xuser", "0x5"] }, // ← valid: 5n
415
+ ],
416
+ }),
417
+ });
418
+ const result = await client.mintToken({ quantity: 2 });
419
+ // Only the valid log contributes; tokenId = first valid tokenId = 5n
420
+ (0, vitest_1.expect)(result.tokenId).toBe(5n);
421
+ });
422
+ });
423
+ // ─── inscribe() full flow ─────────────────────────────────────────────────────
424
+ (0, vitest_1.describe)("InkdClient — inscribe() full flow", () => {
425
+ (0, vitest_1.it)("encrypts, uploads to Arweave, and inscribes on-chain", async () => {
426
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
427
+ const { wal } = connectClient(client, {
428
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({
429
+ logs: [
430
+ // Inscribed event: [topic0, tokenId, inscriptionIndex]
431
+ { topics: ["0xInscribed", "0x5", "0x3"] },
432
+ ],
433
+ }),
434
+ });
435
+ const mockArweave = injectMockArweave(client, {
436
+ hash: "arweave-inscription-id",
437
+ size: 2048,
438
+ });
439
+ const result = await client.inscribe(5n, Buffer.from("agent memory data"), {
440
+ contentType: "application/json",
441
+ name: "memory.json",
442
+ });
443
+ // Arweave upload happened
444
+ (0, vitest_1.expect)(mockArweave.uploadFile).toHaveBeenCalledWith(vitest_1.expect.any(Uint8Array), "application/json", undefined // no extra tags
445
+ );
446
+ // On-chain inscribe
447
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
448
+ address: TEST_CONFIG.vaultAddress,
449
+ functionName: "inscribe",
450
+ args: [5n, "arweave-inscription-id", "application/json", 2048n, "memory.json"],
451
+ value: 0n,
452
+ }));
453
+ (0, vitest_1.expect)(result.hash).toBe(ZERO_HASH);
454
+ (0, vitest_1.expect)(result.inscriptionIndex).toBe(3n);
455
+ (0, vitest_1.expect)(result.upload.hash).toBe("arweave-inscription-id");
456
+ (0, vitest_1.expect)(result.upload.size).toBe(2048);
457
+ });
458
+ (0, vitest_1.it)("handles string data input by converting to Buffer", async () => {
459
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
460
+ connectClient(client, {
461
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({ logs: [] }),
462
+ });
463
+ const mockArweave = injectMockArweave(client);
464
+ await client.inscribe(1n, "plain string data");
465
+ const uploadCall = mockArweave.uploadFile.mock.calls[0];
466
+ (0, vitest_1.expect)(uploadCall[0]).toBeInstanceOf(Uint8Array);
467
+ });
468
+ (0, vitest_1.it)("uses default contentType when none provided", async () => {
469
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
470
+ connectClient(client, {
471
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({ logs: [] }),
472
+ });
473
+ const mockArweave = injectMockArweave(client);
474
+ await client.inscribe(1n, Buffer.from("data"));
475
+ const uploadCall = mockArweave.uploadFile.mock.calls[0];
476
+ (0, vitest_1.expect)(uploadCall[1]).toBe("application/octet-stream");
477
+ });
478
+ (0, vitest_1.it)("passes custom value to writeContract when specified", async () => {
479
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
480
+ const { wal } = connectClient(client, {
481
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({ logs: [] }),
482
+ });
483
+ injectMockArweave(client);
484
+ const CUSTOM_VALUE = 1000000000000000n;
485
+ await client.inscribe(1n, "data", { value: CUSTOM_VALUE });
486
+ (0, vitest_1.expect)(wal.writeContract).toHaveBeenCalledWith(vitest_1.expect.objectContaining({ value: CUSTOM_VALUE }));
487
+ });
488
+ (0, vitest_1.it)("returns inscriptionIndex=0n when no matching logs", async () => {
489
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
490
+ connectClient(client, {
491
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({
492
+ logs: [{ topics: ["0xSomeOtherEvent"] }],
493
+ }),
494
+ });
495
+ injectMockArweave(client);
496
+ const result = await client.inscribe(1n, "data");
497
+ (0, vitest_1.expect)(result.inscriptionIndex).toBe(0n);
498
+ });
499
+ (0, vitest_1.it)("extractInscriptionIndexFromLogs: skips log with invalid topic[2] (catch branch), falls back to next valid log", async () => {
500
+ // First log has an unparseable topic[2] — BigInt throws → catch fires → continue
501
+ // Second log has valid topic[2] = 0x9 → inscriptionIndex = 9n
502
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
503
+ connectClient(client, {
504
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({
505
+ logs: [
506
+ { topics: ["0xInscribed", "0x1", "not-a-bigint"] }, // ← triggers catch
507
+ { topics: ["0xInscribed", "0x1", "0x9"] }, // ← valid: 9n
508
+ ],
509
+ }),
510
+ });
511
+ injectMockArweave(client);
512
+ const result = await client.inscribe(1n, "data");
513
+ (0, vitest_1.expect)(result.inscriptionIndex).toBe(9n);
514
+ });
515
+ });
516
+ // ─── estimateInscribeCost() edge cases ───────────────────────────────────────
517
+ (0, vitest_1.describe)("InkdClient — estimateInscribeCost() edge cases", () => {
518
+ (0, vitest_1.it)("handles 0 bytes gracefully (rounds up to 1 KB for arweave)", async () => {
519
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
520
+ connectClient(client, {
521
+ readContract: vitest_1.vi.fn().mockResolvedValue(0n),
522
+ });
523
+ const estimate = await client.estimateInscribeCost(0);
524
+ // ceil(0 / 1024) = 0, so arweave cost = 0
525
+ (0, vitest_1.expect)(estimate.arweave).toBe(0n);
526
+ (0, vitest_1.expect)(estimate.total).toBeGreaterThan(0n); // gas still applies
527
+ });
528
+ (0, vitest_1.it)("has total = gas + arweave + protocolFee always", async () => {
529
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
530
+ connectClient(client, {
531
+ readContract: vitest_1.vi.fn().mockResolvedValue(100n), // 1% fee
532
+ });
533
+ const estimate = await client.estimateInscribeCost(50_000);
534
+ (0, vitest_1.expect)(estimate.total).toBe(estimate.gas + estimate.arweave + estimate.protocolFee);
535
+ });
536
+ (0, vitest_1.it)("protocol fee is zero when feeBps is 0", async () => {
537
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
538
+ connectClient(client, {
539
+ readContract: vitest_1.vi.fn().mockResolvedValue(0n),
540
+ });
541
+ const estimate = await client.estimateInscribeCost(1024);
542
+ (0, vitest_1.expect)(estimate.protocolFee).toBe(0n);
543
+ });
544
+ (0, vitest_1.it)("larger feeBps yields higher protocolFee", async () => {
545
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
546
+ const withLowFee = makeMockPublicClient({
547
+ readContract: vitest_1.vi.fn().mockResolvedValue(10n),
548
+ });
549
+ const withHighFee = makeMockPublicClient({
550
+ readContract: vitest_1.vi.fn().mockResolvedValue(500n),
551
+ });
552
+ const clientA = new InkdClient_1.InkdClient(TEST_CONFIG);
553
+ const clientB = new InkdClient_1.InkdClient(TEST_CONFIG);
554
+ // @ts-expect-error — mock
555
+ clientA.connect(makeMockWalletClient(), withLowFee);
556
+ // @ts-expect-error — mock
557
+ clientB.connect(makeMockWalletClient(), withHighFee);
558
+ const estA = await clientA.estimateInscribeCost(1024);
559
+ const estB = await clientB.estimateInscribeCost(1024);
560
+ (0, vitest_1.expect)(estB.protocolFee).toBeGreaterThan(estA.protocolFee);
561
+ void client; // suppress unused warning
562
+ });
563
+ });
564
+ // ─── setEncryptionProvider() with inscribe integration ────────────────────────
565
+ (0, vitest_1.describe)("InkdClient — custom encryption provider with inscribe", () => {
566
+ (0, vitest_1.it)("uses the custom provider's encrypt method instead of passthrough", async () => {
567
+ const client = new InkdClient_1.InkdClient(TEST_CONFIG);
568
+ connectClient(client, {
569
+ waitForTransactionReceipt: vitest_1.vi.fn().mockResolvedValue({ logs: [] }),
570
+ });
571
+ const ENCRYPTED_DATA = new Uint8Array([0xde, 0xad, 0xbe, 0xef]);
572
+ const mockProvider = {
573
+ encrypt: vitest_1.vi.fn().mockResolvedValue({
574
+ ciphertext: ENCRYPTED_DATA,
575
+ encryptedSymmetricKey: "mock-key",
576
+ accessControlConditions: [],
577
+ }),
578
+ decrypt: vitest_1.vi.fn(),
579
+ };
580
+ client.setEncryptionProvider(mockProvider);
581
+ const mockArweave = injectMockArweave(client);
582
+ await client.inscribe(1n, Buffer.from("raw data"));
583
+ (0, vitest_1.expect)(mockProvider.encrypt).toHaveBeenCalledOnce();
584
+ // The encrypted payload should have been passed to arweave upload
585
+ (0, vitest_1.expect)(mockArweave.uploadFile).toHaveBeenCalledWith(ENCRYPTED_DATA, "application/octet-stream", undefined);
586
+ });
587
+ });
588
+ //# sourceMappingURL=InkdClient.advanced.test.js.map