arc402-cli 0.7.4 → 0.8.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 (256) hide show
  1. package/MIGRATION-SPEC.md +108 -0
  2. package/dist/abis.js +14 -17
  3. package/dist/abis.js.map +1 -1
  4. package/dist/bundler.d.ts +1 -1
  5. package/dist/bundler.d.ts.map +1 -1
  6. package/dist/bundler.js +27 -61
  7. package/dist/bundler.js.map +1 -1
  8. package/dist/client.d.ts +1 -1
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +5 -9
  11. package/dist/client.js.map +1 -1
  12. package/dist/coinbase-smart-wallet.js +1 -4
  13. package/dist/coinbase-smart-wallet.js.map +1 -1
  14. package/dist/commands/accept.js +25 -28
  15. package/dist/commands/accept.js.map +1 -1
  16. package/dist/commands/agent-handshake.js +15 -18
  17. package/dist/commands/agent-handshake.js.map +1 -1
  18. package/dist/commands/agent.js +98 -104
  19. package/dist/commands/agent.js.map +1 -1
  20. package/dist/commands/agreements.js +62 -98
  21. package/dist/commands/agreements.js.map +1 -1
  22. package/dist/commands/arbitrator.js +45 -81
  23. package/dist/commands/arbitrator.js.map +1 -1
  24. package/dist/commands/arena-handshake.js +27 -30
  25. package/dist/commands/arena-handshake.js.map +1 -1
  26. package/dist/commands/arena.js +12 -18
  27. package/dist/commands/arena.js.map +1 -1
  28. package/dist/commands/backup.js +30 -36
  29. package/dist/commands/backup.js.map +1 -1
  30. package/dist/commands/cancel.js +15 -18
  31. package/dist/commands/cancel.js.map +1 -1
  32. package/dist/commands/channel.js +45 -81
  33. package/dist/commands/channel.js.map +1 -1
  34. package/dist/commands/coldstart.js +31 -34
  35. package/dist/commands/coldstart.js.map +1 -1
  36. package/dist/commands/config.js +23 -29
  37. package/dist/commands/config.js.map +1 -1
  38. package/dist/commands/contract-interaction.js +12 -15
  39. package/dist/commands/contract-interaction.js.map +1 -1
  40. package/dist/commands/daemon.d.ts.map +1 -1
  41. package/dist/commands/daemon.js +98 -135
  42. package/dist/commands/daemon.js.map +1 -1
  43. package/dist/commands/deliver.js +37 -76
  44. package/dist/commands/deliver.js.map +1 -1
  45. package/dist/commands/discover.js +24 -27
  46. package/dist/commands/discover.js.map +1 -1
  47. package/dist/commands/dispute.js +104 -110
  48. package/dist/commands/dispute.js.map +1 -1
  49. package/dist/commands/doctor.js +16 -55
  50. package/dist/commands/doctor.js.map +1 -1
  51. package/dist/commands/endpoint.js +56 -95
  52. package/dist/commands/endpoint.js.map +1 -1
  53. package/dist/commands/feed.js +11 -18
  54. package/dist/commands/feed.js.map +1 -1
  55. package/dist/commands/hire.js +37 -40
  56. package/dist/commands/hire.js.map +1 -1
  57. package/dist/commands/migrate.js +30 -33
  58. package/dist/commands/migrate.js.map +1 -1
  59. package/dist/commands/negotiate.d.ts.map +1 -1
  60. package/dist/commands/negotiate.js +34 -36
  61. package/dist/commands/negotiate.js.map +1 -1
  62. package/dist/commands/openshell.js +68 -104
  63. package/dist/commands/openshell.js.map +1 -1
  64. package/dist/commands/owner.js +17 -20
  65. package/dist/commands/owner.js.map +1 -1
  66. package/dist/commands/policy.js +41 -43
  67. package/dist/commands/policy.js.map +1 -1
  68. package/dist/commands/relay.d.ts.map +1 -1
  69. package/dist/commands/relay.js +18 -51
  70. package/dist/commands/relay.js.map +1 -1
  71. package/dist/commands/remediate.js +20 -23
  72. package/dist/commands/remediate.js.map +1 -1
  73. package/dist/commands/reputation.js +25 -27
  74. package/dist/commands/reputation.js.map +1 -1
  75. package/dist/commands/setup.js +65 -104
  76. package/dist/commands/setup.js.map +1 -1
  77. package/dist/commands/trust.js +17 -20
  78. package/dist/commands/trust.js.map +1 -1
  79. package/dist/commands/verify.js +18 -21
  80. package/dist/commands/verify.js.map +1 -1
  81. package/dist/commands/wallet.js +619 -625
  82. package/dist/commands/wallet.js.map +1 -1
  83. package/dist/commands/watch.js +33 -36
  84. package/dist/commands/watch.js.map +1 -1
  85. package/dist/commands/watchtower.js +37 -73
  86. package/dist/commands/watchtower.js.map +1 -1
  87. package/dist/commands/workroom.d.ts.map +1 -1
  88. package/dist/commands/workroom.js +138 -171
  89. package/dist/commands/workroom.js.map +1 -1
  90. package/dist/config.js +21 -65
  91. package/dist/config.js.map +1 -1
  92. package/dist/daemon/config.d.ts.map +1 -1
  93. package/dist/daemon/config.js +16 -53
  94. package/dist/daemon/config.js.map +1 -1
  95. package/dist/daemon/hire-listener.d.ts +3 -3
  96. package/dist/daemon/hire-listener.d.ts.map +1 -1
  97. package/dist/daemon/hire-listener.js +13 -47
  98. package/dist/daemon/hire-listener.js.map +1 -1
  99. package/dist/daemon/index.d.ts +1 -1
  100. package/dist/daemon/index.d.ts.map +1 -1
  101. package/dist/daemon/index.js +50 -88
  102. package/dist/daemon/index.js.map +1 -1
  103. package/dist/daemon/job-lifecycle.d.ts +1 -1
  104. package/dist/daemon/job-lifecycle.d.ts.map +1 -1
  105. package/dist/daemon/job-lifecycle.js +11 -51
  106. package/dist/daemon/job-lifecycle.js.map +1 -1
  107. package/dist/daemon/notify.d.ts +1 -1
  108. package/dist/daemon/notify.d.ts.map +1 -1
  109. package/dist/daemon/notify.js +19 -53
  110. package/dist/daemon/notify.js.map +1 -1
  111. package/dist/daemon/token-metering.js +8 -47
  112. package/dist/daemon/token-metering.js.map +1 -1
  113. package/dist/daemon/userops.d.ts +2 -2
  114. package/dist/daemon/userops.d.ts.map +1 -1
  115. package/dist/daemon/userops.js +23 -27
  116. package/dist/daemon/userops.js.map +1 -1
  117. package/dist/daemon/wallet-monitor.d.ts +1 -1
  118. package/dist/daemon/wallet-monitor.d.ts.map +1 -1
  119. package/dist/daemon/wallet-monitor.js +8 -12
  120. package/dist/daemon/wallet-monitor.js.map +1 -1
  121. package/dist/drain-v4.js +26 -64
  122. package/dist/drain-v4.js.map +1 -1
  123. package/dist/endpoint-config.js +20 -63
  124. package/dist/endpoint-config.js.map +1 -1
  125. package/dist/endpoint-notify.js +9 -48
  126. package/dist/endpoint-notify.js.map +1 -1
  127. package/dist/index.js +16 -50
  128. package/dist/index.js.map +1 -1
  129. package/dist/openshell-runtime.d.ts.map +1 -1
  130. package/dist/openshell-runtime.js +38 -82
  131. package/dist/openshell-runtime.js.map +1 -1
  132. package/dist/program.d.ts.map +1 -1
  133. package/dist/program.js +77 -83
  134. package/dist/program.js.map +1 -1
  135. package/dist/repl.js +25 -31
  136. package/dist/repl.js.map +1 -1
  137. package/dist/signing.js +3 -6
  138. package/dist/signing.js.map +1 -1
  139. package/dist/telegram-notify.js +3 -40
  140. package/dist/telegram-notify.js.map +1 -1
  141. package/dist/tui/App.d.ts.map +1 -1
  142. package/dist/tui/App.js +44 -50
  143. package/dist/tui/App.js.map +1 -1
  144. package/dist/tui/Footer.js +4 -7
  145. package/dist/tui/Footer.js.map +1 -1
  146. package/dist/tui/Header.js +7 -13
  147. package/dist/tui/Header.js.map +1 -1
  148. package/dist/tui/InputLine.js +17 -23
  149. package/dist/tui/InputLine.js.map +1 -1
  150. package/dist/tui/Viewport.js +5 -8
  151. package/dist/tui/Viewport.js.map +1 -1
  152. package/dist/tui/WalletConnectPairing.d.ts +23 -0
  153. package/dist/tui/WalletConnectPairing.d.ts.map +1 -0
  154. package/dist/tui/WalletConnectPairing.js +75 -0
  155. package/dist/tui/WalletConnectPairing.js.map +1 -0
  156. package/dist/tui/index.d.ts.map +1 -1
  157. package/dist/tui/index.js +14 -21
  158. package/dist/tui/index.js.map +1 -1
  159. package/dist/tui/useChat.js +13 -19
  160. package/dist/tui/useChat.js.map +1 -1
  161. package/dist/tui/useCommand.js +12 -18
  162. package/dist/tui/useCommand.js.map +1 -1
  163. package/dist/tui/useScroll.js +9 -12
  164. package/dist/tui/useScroll.js.map +1 -1
  165. package/dist/ui/banner.js +12 -19
  166. package/dist/ui/banner.js.map +1 -1
  167. package/dist/ui/colors.js +13 -19
  168. package/dist/ui/colors.js.map +1 -1
  169. package/dist/ui/format.js +6 -14
  170. package/dist/ui/format.js.map +1 -1
  171. package/dist/ui/spinner.js +6 -12
  172. package/dist/ui/spinner.js.map +1 -1
  173. package/dist/ui/tree.js +3 -6
  174. package/dist/ui/tree.js.map +1 -1
  175. package/dist/utils/format.js +27 -41
  176. package/dist/utils/format.js.map +1 -1
  177. package/dist/utils/hash.js +4 -42
  178. package/dist/utils/hash.js.map +1 -1
  179. package/dist/utils/time.js +2 -6
  180. package/dist/utils/time.js.map +1 -1
  181. package/dist/wallet-router.d.ts +1 -1
  182. package/dist/wallet-router.d.ts.map +1 -1
  183. package/dist/wallet-router.js +12 -19
  184. package/dist/wallet-router.js.map +1 -1
  185. package/dist/walletconnect-session.d.ts +1 -1
  186. package/dist/walletconnect-session.d.ts.map +1 -1
  187. package/dist/walletconnect-session.js +6 -11
  188. package/dist/walletconnect-session.js.map +1 -1
  189. package/dist/walletconnect.d.ts +6 -1
  190. package/dist/walletconnect.d.ts.map +1 -1
  191. package/dist/walletconnect.js +32 -35
  192. package/dist/walletconnect.js.map +1 -1
  193. package/package.json +7 -6
  194. package/src/bundler.ts +1 -1
  195. package/src/client.ts +1 -1
  196. package/src/commands/accept.ts +7 -7
  197. package/src/commands/agent-handshake.ts +4 -4
  198. package/src/commands/agent.ts +9 -9
  199. package/src/commands/agreements.ts +8 -8
  200. package/src/commands/arbitrator.ts +5 -5
  201. package/src/commands/arena-handshake.ts +6 -6
  202. package/src/commands/arena.ts +2 -2
  203. package/src/commands/backup.ts +1 -1
  204. package/src/commands/cancel.ts +6 -6
  205. package/src/commands/channel.ts +6 -6
  206. package/src/commands/coldstart.ts +5 -5
  207. package/src/commands/config.ts +2 -2
  208. package/src/commands/contract-interaction.ts +2 -2
  209. package/src/commands/daemon.ts +14 -11
  210. package/src/commands/deliver.ts +9 -9
  211. package/src/commands/discover.ts +5 -5
  212. package/src/commands/dispute.ts +7 -7
  213. package/src/commands/doctor.ts +2 -2
  214. package/src/commands/endpoint.ts +6 -6
  215. package/src/commands/feed.ts +1 -1
  216. package/src/commands/hire.ts +10 -10
  217. package/src/commands/migrate.ts +7 -7
  218. package/src/commands/negotiate.ts +6 -5
  219. package/src/commands/openshell.ts +4 -4
  220. package/src/commands/owner.ts +5 -5
  221. package/src/commands/policy.ts +5 -5
  222. package/src/commands/relay.ts +5 -1
  223. package/src/commands/remediate.ts +5 -5
  224. package/src/commands/reputation.ts +6 -6
  225. package/src/commands/setup.ts +1 -1
  226. package/src/commands/trust.ts +6 -6
  227. package/src/commands/verify.ts +6 -6
  228. package/src/commands/wallet.ts +15 -15
  229. package/src/commands/watch.ts +3 -3
  230. package/src/commands/watchtower.ts +6 -6
  231. package/src/commands/workroom.ts +14 -10
  232. package/src/daemon/config.ts +2 -1
  233. package/src/daemon/hire-listener.ts +3 -3
  234. package/src/daemon/index.ts +10 -9
  235. package/src/daemon/job-lifecycle.ts +1 -1
  236. package/src/daemon/notify.ts +4 -4
  237. package/src/daemon/userops.ts +4 -4
  238. package/src/daemon/wallet-monitor.ts +2 -2
  239. package/src/endpoint-notify.ts +1 -1
  240. package/src/index.ts +8 -7
  241. package/src/openshell-runtime.ts +5 -1
  242. package/src/program.ts +36 -36
  243. package/src/repl.ts +3 -3
  244. package/src/tui/App.tsx +15 -10
  245. package/src/tui/Header.tsx +1 -1
  246. package/src/tui/InputLine.tsx +1 -1
  247. package/src/tui/WalletConnectPairing.tsx +131 -0
  248. package/src/tui/index.tsx +7 -8
  249. package/src/tui/useChat.ts +1 -1
  250. package/src/tui/useCommand.ts +4 -4
  251. package/src/ui/banner.ts +2 -2
  252. package/src/ui/tree.ts +1 -1
  253. package/src/wallet-router.ts +2 -2
  254. package/src/walletconnect-session.ts +1 -1
  255. package/src/walletconnect.ts +20 -5
  256. package/tsconfig.json +16 -7
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/ui/spinner.ts"],"names":[],"mappings":";;;;;AAeA,oCAwCC;AAvDD,8CAA+B;AAC/B,kDAA0B;AAE1B,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACjC,CAAC;AASF,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAClC,OAAO;YACL,OAAO,CAAC,GAAY,IAAI,IAAI,GAAG;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,GAAY,IAAI,IAAI,GAAG;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,CAAS,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,KAAI,CAAC;SACV,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAQ,IAAA,aAAG,EAAC;QACxB,IAAI;QACJ,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,OAAO;QACL,OAAO,CAAC,GAAY;YAClB,QAAQ,CAAC,cAAc,CAAC;gBACtB,MAAM,EAAE,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBACxB,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI;gBAC1B,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAY;YACf,QAAQ,CAAC,cAAc,CAAC;gBACtB,MAAM,EAAE,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBACtB,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI;gBAC1B,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAY;YACjB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI;YACF,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/ui/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,GAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACjC,CAAC;AASF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAClC,OAAO;YACL,OAAO,CAAC,GAAY,IAAI,IAAI,GAAG;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,GAAY,IAAI,IAAI,GAAG;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,CAAS,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,KAAI,CAAC;SACV,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAQ,GAAG,CAAC;QACxB,IAAI;QACJ,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,OAAO;QACL,OAAO,CAAC,GAAY;YAClB,QAAQ,CAAC,cAAc,CAAC;gBACtB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBACxB,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI;gBAC1B,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAY;YACf,QAAQ,CAAC,cAAc,CAAC;gBACtB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBACtB,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI;gBAC1B,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAY;YACjB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI;YACF,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/ui/tree.js CHANGED
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderTree = renderTree;
4
- const colors_1 = require("./colors");
5
- function renderTree(items) {
1
+ import { c } from "./colors.js";
2
+ export function renderTree(items) {
6
3
  items.forEach((item, i) => {
7
4
  const isLast = item.last ?? (i === items.length - 1);
8
5
  const branch = isLast ? "└" : "├";
9
6
  const paddedLabel = item.label.padEnd(10);
10
- console.log(` ${colors_1.c.dim(branch)} ${colors_1.c.dim(paddedLabel)} ${colors_1.c.white(item.value)}`);
7
+ console.log(` ${c.dim(branch)} ${c.dim(paddedLabel)} ${c.white(item.value)}`);
11
8
  });
12
9
  }
13
10
  //# sourceMappingURL=tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/ui/tree.ts"],"names":[],"mappings":";;AAQA,gCAOC;AAfD,qCAA6B;AAQ7B,SAAgB,UAAU,CAAC,KAAiB;IAC1C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,UAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,UAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,UAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/ui/tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAQhC,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,21 +1,9 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.reputationSignalLabel = exports.identityTierLabel = exports.formatDate = exports.truncateAddress = void 0;
7
- exports.getTrustTier = getTrustTier;
8
- exports.agreementStatusLabel = agreementStatusLabel;
9
- exports.colourStatus = colourStatus;
10
- exports.printTable = printTable;
11
- const chalk_1 = __importDefault(require("chalk"));
12
- const cli_table3_1 = __importDefault(require("cli-table3"));
13
- const sdk_1 = require("@arc402/sdk");
14
- const truncateAddress = (address) => address.length <= 12 ? address : `${address.slice(0, 6)}...${address.slice(-4)}`;
15
- exports.truncateAddress = truncateAddress;
16
- const formatDate = (timestamp) => new Date(timestamp * 1000).toLocaleString();
17
- exports.formatDate = formatDate;
18
- function getTrustTier(score) {
1
+ import chalk from "chalk";
2
+ import Table from "cli-table3";
3
+ import { AgreementStatus, IdentityTier, ReputationSignalType } from "@arc402/sdk";
4
+ export const truncateAddress = (address) => address.length <= 12 ? address : `${address.slice(0, 6)}...${address.slice(-4)}`;
5
+ export const formatDate = (timestamp) => new Date(timestamp * 1000).toLocaleString();
6
+ export function getTrustTier(score) {
19
7
  if (score >= 800)
20
8
  return "Autonomous";
21
9
  if (score >= 600)
@@ -26,35 +14,33 @@ function getTrustTier(score) {
26
14
  return "Restricted";
27
15
  return "Probationary";
28
16
  }
29
- function agreementStatusLabel(status) {
30
- return sdk_1.AgreementStatus[status] ?? "UNKNOWN";
17
+ export function agreementStatusLabel(status) {
18
+ return AgreementStatus[status] ?? "UNKNOWN";
31
19
  }
32
- function colourStatus(status) {
20
+ export function colourStatus(status) {
33
21
  const label = agreementStatusLabel(status);
34
22
  switch (status) {
35
- case sdk_1.AgreementStatus.PROPOSED:
36
- case sdk_1.AgreementStatus.REVISION_REQUESTED:
37
- return chalk_1.default.yellow(label);
38
- case sdk_1.AgreementStatus.ACCEPTED:
39
- case sdk_1.AgreementStatus.REVISED:
40
- case sdk_1.AgreementStatus.PENDING_VERIFICATION:
41
- return chalk_1.default.blue(label);
42
- case sdk_1.AgreementStatus.FULFILLED:
43
- return chalk_1.default.green(label);
44
- case sdk_1.AgreementStatus.DISPUTED:
45
- case sdk_1.AgreementStatus.ESCALATED_TO_HUMAN:
46
- case sdk_1.AgreementStatus.ESCALATED_TO_ARBITRATION:
47
- return chalk_1.default.red(label);
23
+ case AgreementStatus.PROPOSED:
24
+ case AgreementStatus.REVISION_REQUESTED:
25
+ return chalk.yellow(label);
26
+ case AgreementStatus.ACCEPTED:
27
+ case AgreementStatus.REVISED:
28
+ case AgreementStatus.PENDING_VERIFICATION:
29
+ return chalk.blue(label);
30
+ case AgreementStatus.FULFILLED:
31
+ return chalk.green(label);
32
+ case AgreementStatus.DISPUTED:
33
+ case AgreementStatus.ESCALATED_TO_HUMAN:
34
+ case AgreementStatus.ESCALATED_TO_ARBITRATION:
35
+ return chalk.red(label);
48
36
  default:
49
- return chalk_1.default.gray(label);
37
+ return chalk.gray(label);
50
38
  }
51
39
  }
52
- const identityTierLabel = (tier) => sdk_1.IdentityTier[tier] ?? "NONE";
53
- exports.identityTierLabel = identityTierLabel;
54
- const reputationSignalLabel = (signal) => sdk_1.ReputationSignalType[signal] ?? "UNKNOWN";
55
- exports.reputationSignalLabel = reputationSignalLabel;
56
- function printTable(head, rows) {
57
- const table = new cli_table3_1.default({ head: head.map((value) => chalk_1.default.cyan(value)), style: { head: [], border: [] } });
40
+ export const identityTierLabel = (tier) => IdentityTier[tier] ?? "NONE";
41
+ export const reputationSignalLabel = (signal) => ReputationSignalType[signal] ?? "UNKNOWN";
42
+ export function printTable(head, rows) {
43
+ const table = new Table({ head: head.map((value) => chalk.cyan(value)), style: { head: [], border: [] } });
58
44
  rows.forEach((row) => table.push(row));
59
45
  console.log(table.toString());
60
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":";;;;;;AAOA,oCAMC;AAED,oDAEC;AAED,oCAmBC;AAKD,gCAIC;AA/CD,kDAA0B;AAC1B,4DAA+B;AAC/B,qCAAkF;AAE3E,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAAxH,QAAA,eAAe,mBAAyG;AAC9H,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;AAAhF,QAAA,UAAU,cAAsE;AAE7F,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,YAAY,CAAC;IACtC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,YAAY,CAAC;IACtC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAuB;IAC1D,OAAO,qBAAe,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;AAC9C,CAAC;AAED,SAAgB,YAAY,CAAC,MAAuB;IAClD,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,qBAAe,CAAC,QAAQ,CAAC;QAC9B,KAAK,qBAAe,CAAC,kBAAkB;YACrC,OAAO,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,qBAAe,CAAC,QAAQ,CAAC;QAC9B,KAAK,qBAAe,CAAC,OAAO,CAAC;QAC7B,KAAK,qBAAe,CAAC,oBAAoB;YACvC,OAAO,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,qBAAe,CAAC,SAAS;YAC5B,OAAO,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,qBAAe,CAAC,QAAQ,CAAC;QAC9B,KAAK,qBAAe,CAAC,kBAAkB,CAAC;QACxC,KAAK,qBAAe,CAAC,wBAAwB;YAC3C,OAAO,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B;YACE,OAAO,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAAC,IAAkB,EAAE,EAAE,CAAC,kBAAY,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AAAzE,QAAA,iBAAiB,qBAAwD;AAC/E,MAAM,qBAAqB,GAAG,CAAC,MAA4B,EAAE,EAAE,CAAC,0BAAoB,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;AAApG,QAAA,qBAAqB,yBAA+E;AAEjH,SAAgB,UAAU,CAAC,IAAc,EAAE,IAA2B;IACpE,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3G,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,5 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.hashString = exports.hashFile = void 0;
37
- const fs = __importStar(require("fs"));
38
- const ethers_1 = require("ethers");
39
- const hashFile = (filePath) => ethers_1.ethers.keccak256(fs.readFileSync(filePath));
40
- exports.hashFile = hashFile;
41
- const hashString = (value) => ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(value));
42
- exports.hashString = hashString;
1
+ import * as fs from "fs";
2
+ import { ethers } from "ethers";
3
+ export const hashFile = (filePath) => ethers.keccak256(fs.readFileSync(filePath));
4
+ export const hashString = (value) => ethers.keccak256(ethers.toUtf8Bytes(value));
43
5
  //# sourceMappingURL=hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,mCAAgC;AAEzB,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAA7E,QAAA,QAAQ,YAAqE;AACnF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,eAAM,CAAC,SAAS,CAAC,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAA5E,QAAA,UAAU,cAAkE"}
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -1,8 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseDuration = parseDuration;
4
- exports.formatDeadline = formatDeadline;
5
- function parseDuration(duration) {
1
+ export function parseDuration(duration) {
6
2
  const now = Math.floor(Date.now() / 1000);
7
3
  const match = duration.match(/^(\d+)([hd])$/i);
8
4
  if (!match)
@@ -10,7 +6,7 @@ function parseDuration(duration) {
10
6
  const value = Number(match[1]);
11
7
  return now + (match[2].toLowerCase() === "d" ? value * 86400 : value * 3600);
12
8
  }
13
- function formatDeadline(deadline) {
9
+ export function formatDeadline(deadline) {
14
10
  const diff = deadline - Math.floor(Date.now() / 1000);
15
11
  if (diff < 0)
16
12
  return "EXPIRED";
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":";;AAAA,sCAMC;AAED,wCAMC;AAdD,SAAgB,aAAa,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,0BAA0B,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,SAAgB,cAAc,CAAC,QAAgB;IAC7C,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,0BAA0B,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC;AAChF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ethers } from "ethers";
2
- import { Arc402Config } from "./config";
2
+ import { Arc402Config } from "./config.js";
3
3
  /**
4
4
  * Attempts to decode a known ARC402Wallet custom error from a thrown error.
5
5
  * If a recognized error is found, prints a human-readable message and exits.
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-router.d.ts","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA8CxC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAyCnD;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAMnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAS1D;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,qBAAqB,EAAE,MAAM,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,GAAE,MAAW,EAClB,aAAa,GAAE,MAA2B,EAC1C,iBAAiB,GAAE,MAAW,GAC7B,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAoB7C"}
1
+ {"version":3,"file":"wallet-router.d.ts","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8C3C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAyCnD;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAMnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAS1D;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,qBAAqB,EAAE,MAAM,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,GAAE,MAAW,EAClB,aAAa,GAAE,MAA2B,EAC1C,iBAAiB,GAAE,MAAW,GAC7B,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAoB7C"}
@@ -1,14 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleWalletError = handleWalletError;
4
- exports.decodeWalletError = decodeWalletError;
5
- exports.getEffectiveSender = getEffectiveSender;
6
- exports.printSenderInfo = printSenderInfo;
7
- exports.executeContractWriteViaWallet = executeContractWriteViaWallet;
8
- const ethers_1 = require("ethers");
9
- const abis_1 = require("./abis");
1
+ import { ethers } from "ethers";
2
+ import { ARC402_WALLET_EXECUTE_ABI } from "./abis.js";
10
3
  // ─── ARC402Wallet custom error decoder ─────────────────────────────────────
11
- const WALLET_CUSTOM_ERROR_IFACE = new ethers_1.ethers.Interface([
4
+ const WALLET_CUSTOM_ERROR_IFACE = new ethers.Interface([
12
5
  "error WVel()",
13
6
  "error WCtx()",
14
7
  "error WAtt()",
@@ -43,7 +36,7 @@ const WALLET_ERROR_HELP = {
43
36
  * If a recognized error is found, prints a human-readable message and exits.
44
37
  * Otherwise, rethrows the original error.
45
38
  */
46
- function handleWalletError(e) {
39
+ export function handleWalletError(e) {
47
40
  // Extract revert data from various ethers v6 error shapes
48
41
  let errorData;
49
42
  if (e && typeof e === "object") {
@@ -104,26 +97,26 @@ const WALLET_ERROR_SELECTOR_MAP = {
104
97
  * Decode a 4-byte ARC402Wallet custom error selector into a human-readable message.
105
98
  * Returns null if the selector is not a known wallet error.
106
99
  */
107
- function decodeWalletError(errorData) {
100
+ export function decodeWalletError(errorData) {
108
101
  if (!errorData || errorData.length < 10)
109
102
  return null;
110
103
  const selector = errorData.slice(0, 10).toLowerCase();
111
104
  return WALLET_ERROR_SELECTOR_MAP[selector] ?? null;
112
105
  }
113
- function getEffectiveSender(config) {
106
+ export function getEffectiveSender(config) {
114
107
  if (config.walletContractAddress) {
115
108
  return { address: config.walletContractAddress, useContract: true };
116
109
  }
117
- const wallet = new ethers_1.ethers.Wallet(config.privateKey);
110
+ const wallet = new ethers.Wallet(config.privateKey);
118
111
  return { address: wallet.address, useContract: false };
119
112
  }
120
- function printSenderInfo(config) {
113
+ export function printSenderInfo(config) {
121
114
  if (config.walletContractAddress) {
122
115
  console.log(`Using ARC402Wallet: ${config.walletContractAddress}`);
123
116
  console.log(`Policy enforcement active — transaction subject to configured limits`);
124
117
  }
125
118
  else {
126
- const wallet = new ethers_1.ethers.Wallet(config.privateKey);
119
+ const wallet = new ethers.Wallet(config.privateKey);
127
120
  console.log(`Using EOA wallet: ${wallet.address}`);
128
121
  console.log(`Tip: run \`arc402 wallet deploy\` to enable spending limits and policy enforcement`);
129
122
  }
@@ -132,10 +125,10 @@ function printSenderInfo(config) {
132
125
  * Route a write transaction through the ARC402Wallet's executeContractCall when deployed,
133
126
  * otherwise encode calldata directly against the target contract using the provided ABI.
134
127
  */
135
- async function executeContractWriteViaWallet(walletContractAddress, signer, targetAddress, contractAbi, functionName, args, value = 0n, approvalToken = ethers_1.ethers.ZeroAddress, maxApprovalAmount = 0n) {
136
- const iface = new ethers_1.ethers.Interface(contractAbi);
128
+ export async function executeContractWriteViaWallet(walletContractAddress, signer, targetAddress, contractAbi, functionName, args, value = 0n, approvalToken = ethers.ZeroAddress, maxApprovalAmount = 0n) {
129
+ const iface = new ethers.Interface(contractAbi);
137
130
  const data = iface.encodeFunctionData(functionName, args);
138
- const walletContract = new ethers_1.ethers.Contract(walletContractAddress, abis_1.ARC402_WALLET_EXECUTE_ABI, signer);
131
+ const walletContract = new ethers.Contract(walletContractAddress, ARC402_WALLET_EXECUTE_ABI, signer);
139
132
  try {
140
133
  return await walletContract.executeContractCall({
141
134
  target: targetAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-router.js","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-router.js","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Arc402Config } from "./config";
1
+ import { Arc402Config } from "./config.js";
2
2
  export interface WCSessionData {
3
3
  topic: string;
4
4
  expiry: number;
@@ -1 +1 @@
1
- {"version":3,"file":"walletconnect-session.d.ts","sourceRoot":"","sources":["../src/walletconnect-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAMjG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAGhF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAGzD"}
1
+ {"version":3,"file":"walletconnect-session.d.ts","sourceRoot":"","sources":["../src/walletconnect-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAMjG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAGhF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAGzD"}
@@ -1,11 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadWCSession = loadWCSession;
4
- exports.saveWCSession = saveWCSession;
5
- exports.clearWCSession = clearWCSession;
6
- const config_1 = require("./config");
1
+ import { saveConfig } from "./config.js";
7
2
  /** Returns null if no session, expired, or wrong chainId. */
8
- function loadWCSession(config, requiredChainId) {
3
+ export function loadWCSession(config, requiredChainId) {
9
4
  if (!config.wcSession)
10
5
  return null;
11
6
  const now = Math.floor(Date.now() / 1000);
@@ -15,12 +10,12 @@ function loadWCSession(config, requiredChainId) {
15
10
  return null;
16
11
  return config.wcSession;
17
12
  }
18
- function saveWCSession(config, session) {
13
+ export function saveWCSession(config, session) {
19
14
  config.wcSession = session;
20
- (0, config_1.saveConfig)(config);
15
+ saveConfig(config);
21
16
  }
22
- function clearWCSession(config) {
17
+ export function clearWCSession(config) {
23
18
  delete config.wcSession;
24
- (0, config_1.saveConfig)(config);
19
+ saveConfig(config);
25
20
  }
26
21
  //# sourceMappingURL=walletconnect-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"walletconnect-session.js","sourceRoot":"","sources":["../src/walletconnect-session.ts"],"names":[],"mappings":";;AAUA,sCAMC;AAED,sCAGC;AAED,wCAGC;AA1BD,qCAAoD;AASpD,6DAA6D;AAC7D,SAAgB,aAAa,CAAC,MAAoB,EAAE,eAAuB;IACzE,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,MAAM,CAAC,SAA0B,CAAC;AAC3C,CAAC;AAED,SAAgB,aAAa,CAAC,MAAoB,EAAE,OAAsB;IACxE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,SAAgB,cAAc,CAAC,MAAoB;IACjD,OAAO,MAAM,CAAC,SAAS,CAAC;IACxB,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"walletconnect-session.js","sourceRoot":"","sources":["../src/walletconnect-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AASvD,6DAA6D;AAC7D,MAAM,UAAU,aAAa,CAAC,MAAoB,EAAE,eAAuB;IACzE,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,MAAM,CAAC,SAA0B,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAoB,EAAE,OAAsB;IACxE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,OAAO,MAAM,CAAC,SAAS,CAAC;IACxB,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { SignClient } from "@walletconnect/sign-client";
2
- import { Arc402Config } from "./config";
2
+ import { Arc402Config } from "./config.js";
3
3
  export type TelegramOpts = {
4
4
  botToken: string;
5
5
  chatId: string;
@@ -12,10 +12,15 @@ type WCSession = ReturnType<SignClientT["session"]["get"]>;
12
12
  * On fresh connect, shows deep links + QR and waits for WC approval.
13
13
  * Saves session to config after a successful fresh pairing.
14
14
  */
15
+ export type WCCallbacks = {
16
+ onUri?: (uri: string, links: Record<string, string>) => void;
17
+ onStatus?: (status: "connecting" | "connected" | "chain-switching" | "ready" | "error", detail?: string) => void;
18
+ };
15
19
  export declare function connectPhoneWallet(projectId: string, chainId: number, config: Arc402Config, opts?: {
16
20
  telegramOpts?: TelegramOpts;
17
21
  prompt?: string;
18
22
  hardware?: boolean;
23
+ callbacks?: WCCallbacks;
19
24
  }): Promise<{
20
25
  client: SignClientT;
21
26
  session: WCSession;
@@ -1 +1 @@
1
- {"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAWxC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,KAAK,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AA2B3D;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1E,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+HvE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1E,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAuE9C"}
1
+ {"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAW3C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,KAAK,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AA2B3D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAClH,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,WAAW,CAAA;CAAE,GACnG,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyIvE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1E,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAuE9C"}
@@ -1,18 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.connectPhoneWallet = connectPhoneWallet;
7
- exports.sendTransactionWithSession = sendTransactionWithSession;
8
- exports.requestPhoneWalletSignature = requestPhoneWalletSignature;
9
- const sign_client_1 = require("@walletconnect/sign-client");
10
- const keyvaluestorage_1 = require("@walletconnect/keyvaluestorage");
11
- const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
12
- const path_1 = __importDefault(require("path"));
13
- const os_1 = __importDefault(require("os"));
14
- const walletconnect_session_1 = require("./walletconnect-session");
15
- const telegram_notify_1 = require("./telegram-notify");
1
+ import { SignClient } from "@walletconnect/sign-client";
2
+ import { KeyValueStorage } from "@walletconnect/keyvaluestorage";
3
+ import qrcode from "qrcode-terminal";
4
+ import path from "path";
5
+ import os from "os";
6
+ import { loadWCSession, saveWCSession, clearWCSession } from "./walletconnect-session.js";
7
+ import { sendWalletConnectApprovalButton } from "./telegram-notify.js";
16
8
  // Suppress unhandled rejections from stale WalletConnect sessions (known SDK issue)
17
9
  process.on("unhandledRejection", (reason) => {
18
10
  const msg = reason instanceof Error ? reason.message : String(reason);
@@ -21,9 +13,9 @@ process.on("unhandledRejection", (reason) => {
21
13
  console.error("Unhandled rejection:", msg);
22
14
  });
23
15
  async function makeSignClient(projectId) {
24
- const storageDir = path_1.default.join(os_1.default.homedir(), ".arc402");
25
- const storagePath = path_1.default.join(storageDir, "wc-storage.json");
26
- return sign_client_1.SignClient.init({
16
+ const storageDir = path.join(os.homedir(), ".arc402");
17
+ const storagePath = path.join(storageDir, "wc-storage.json");
18
+ return SignClient.init({
27
19
  projectId,
28
20
  metadata: {
29
21
  name: "ARC-402 CLI",
@@ -31,7 +23,7 @@ async function makeSignClient(projectId) {
31
23
  url: "https://app.arc402.xyz",
32
24
  icons: [],
33
25
  },
34
- storage: new keyvaluestorage_1.KeyValueStorage({ database: storagePath }),
26
+ storage: new KeyValueStorage({ database: storagePath }),
35
27
  });
36
28
  }
37
29
  function walletLinks(encodedUri) {
@@ -43,15 +35,10 @@ function walletLinks(encodedUri) {
43
35
  "Rainbow": `rainbow://wc?uri=${encodedUri}`,
44
36
  };
45
37
  }
46
- /**
47
- * Step 1 of the two-step flow: connect the phone wallet (or resume a valid session).
48
- * On fresh connect, shows deep links + QR and waits for WC approval.
49
- * Saves session to config after a successful fresh pairing.
50
- */
51
- async function connectPhoneWallet(projectId, chainId, config, opts) {
38
+ export async function connectPhoneWallet(projectId, chainId, config, opts) {
52
39
  const client = await makeSignClient(projectId);
53
40
  // Try to restore an existing valid session
54
- const stored = (0, walletconnect_session_1.loadWCSession)(config, chainId);
41
+ const stored = loadWCSession(config, chainId);
55
42
  if (stored) {
56
43
  try {
57
44
  const session = client.session.get(stored.topic);
@@ -66,7 +53,7 @@ async function connectPhoneWallet(projectId, chainId, config, opts) {
66
53
  }
67
54
  catch {
68
55
  // Session stale or timed out — clear locally and do fresh pairing
69
- (0, walletconnect_session_1.clearWCSession)(config);
56
+ clearWCSession(config);
70
57
  try {
71
58
  await client.disconnect({ topic: stored.topic, reason: { code: 6000, message: "session stale" } });
72
59
  }
@@ -87,7 +74,13 @@ async function connectPhoneWallet(projectId, chainId, config, opts) {
87
74
  throw new Error("Failed to create WalletConnect session");
88
75
  const encodedUri = encodeURIComponent(uri);
89
76
  const displayPrompt = opts?.prompt ?? "Connect your phone wallet";
90
- if (opts?.hardware) {
77
+ const cbs = opts?.callbacks;
78
+ if (cbs?.onUri) {
79
+ // Callback mode — let the caller handle rendering (e.g. Ink TUI)
80
+ cbs.onUri(uri, walletLinks(encodedUri));
81
+ cbs.onStatus?.("connecting");
82
+ }
83
+ else if (opts?.hardware) {
91
84
  console.log("\n─────────────────────────────────────────────────────");
92
85
  console.log("Paste this URI into Ledger Live, Trezor Suite, or any WalletConnect-compatible signer:\n");
93
86
  console.log(uri);
@@ -103,12 +96,12 @@ async function connectPhoneWallet(projectId, chainId, config, opts) {
103
96
  console.log(`${name}:\n${link}\n`);
104
97
  }
105
98
  console.log("Or scan QR:");
106
- qrcode_terminal_1.default.generate(uri, { small: true });
99
+ qrcode.generate(uri, { small: true });
107
100
  console.log("\nWaiting for approval...");
108
101
  }
109
102
  const telegramOpts = opts?.hardware ? undefined : opts?.telegramOpts;
110
103
  if (telegramOpts) {
111
- await (0, telegram_notify_1.sendWalletConnectApprovalButton)({
104
+ await sendWalletConnectApprovalButton({
112
105
  botToken: telegramOpts.botToken,
113
106
  chatId: telegramOpts.chatId,
114
107
  threadId: telegramOpts.threadId,
@@ -123,9 +116,11 @@ async function connectPhoneWallet(projectId, chainId, config, opts) {
123
116
  }
124
117
  const session = await approval();
125
118
  const account = session.namespaces.eip155.accounts[0].split(":")[2];
119
+ cbs?.onStatus?.("connected", account);
126
120
  // Ensure wallet is on the correct chain before sending any tx
127
121
  const hexChainId = `0x${chainId.toString(16)}`;
128
122
  const networkName = chainId === 8453 ? "Base" : chainId === 84532 ? "Base Sepolia" : `chain ${chainId}`;
123
+ cbs?.onStatus?.("chain-switching", networkName);
129
124
  // First try adding the chain (MetaMask ignores if already added)
130
125
  if (chainId === 8453) {
131
126
  try {
@@ -160,21 +155,23 @@ async function connectPhoneWallet(projectId, chainId, config, opts) {
160
155
  }
161
156
  }
162
157
  if (!chainSwitched) {
158
+ cbs?.onStatus?.("error", `Could not auto-switch to ${networkName}`);
163
159
  console.log(`\n⚠ Could not auto-switch to ${networkName}. IMPORTANT: Switch to ${networkName} in your wallet NOW before approving the next transaction.`);
164
160
  console.log(` Otherwise the transaction will go to Ethereum mainnet and fail.`);
165
161
  // Give user 5 seconds to read the warning and switch
166
162
  await new Promise(r => setTimeout(r, 5000));
167
163
  }
164
+ cbs?.onStatus?.("ready", account);
168
165
  // Persist session (WC sessions last 7 days by default)
169
166
  const expiry = Math.floor(Date.now() / 1000) + 7 * 24 * 60 * 60;
170
- (0, walletconnect_session_1.saveWCSession)(config, { topic: session.topic, expiry, account, chainId });
167
+ saveWCSession(config, { topic: session.topic, expiry, account, chainId });
171
168
  return { client, session, account };
172
169
  }
173
170
  /**
174
171
  * Step 2 of the two-step flow: send a transaction with an established session.
175
172
  * Returns the transaction hash.
176
173
  */
177
- async function sendTransactionWithSession(client, session, account, chainId, tx) {
174
+ export async function sendTransactionWithSession(client, session, account, chainId, tx) {
178
175
  return client.request({
179
176
  topic: session.topic,
180
177
  chainId: `eip155:${chainId}`,
@@ -188,7 +185,7 @@ async function sendTransactionWithSession(client, session, account, chainId, tx)
188
185
  * Convenience wrapper: connect + send in one call.
189
186
  * Used by commands that haven't been split into two steps (e.g. policy set-limit).
190
187
  */
191
- async function requestPhoneWalletSignature(projectId, chainId, buildTx, prompt, telegramOpts, config) {
188
+ export async function requestPhoneWalletSignature(projectId, chainId, buildTx, prompt, telegramOpts, config) {
192
189
  if (!config) {
193
190
  // Legacy path: no session persistence, disconnect after use
194
191
  const client = await makeSignClient(projectId);
@@ -211,10 +208,10 @@ async function requestPhoneWalletSignature(projectId, chainId, buildTx, prompt,
211
208
  for (const [name, link] of Object.entries(links))
212
209
  console.log(`${name}:\n${link}\n`);
213
210
  console.log("Or scan QR:");
214
- qrcode_terminal_1.default.generate(uri, { small: true });
211
+ qrcode.generate(uri, { small: true });
215
212
  console.log("\nWaiting for approval...");
216
213
  if (telegramOpts) {
217
- await (0, telegram_notify_1.sendWalletConnectApprovalButton)({
214
+ await sendWalletConnectApprovalButton({
218
215
  botToken: telegramOpts.botToken,
219
216
  chatId: telegramOpts.chatId,
220
217
  threadId: telegramOpts.threadId,