@ic-reactor/mcp 0.0.0-stage → 0.0.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 (1041) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +108 -0
  2. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.yml +77 -0
  4. package/.github/actions/setup-rust-wasm/action.yml +25 -0
  5. package/.github/dependabot.yml +107 -0
  6. package/.github/workflows/auth-latest.yml +67 -0
  7. package/.github/workflows/b3pay-site.yml +49 -0
  8. package/.github/workflows/ci.yml +430 -0
  9. package/.github/workflows/codeql.yml +41 -0
  10. package/.github/workflows/dependency-review.yml +68 -0
  11. package/.github/workflows/docs-check.yml +98 -0
  12. package/.github/workflows/docs.yml +265 -0
  13. package/.github/workflows/e2e.yml +90 -0
  14. package/.github/workflows/examples-published.yml +97 -0
  15. package/.github/workflows/release.yml +326 -0
  16. package/.husky/pre-commit +12 -0
  17. package/.prettierignore +109 -0
  18. package/.prettierrc +6 -0
  19. package/AGENTS.md +103 -0
  20. package/CHANGELOG.md +3268 -0
  21. package/CLAUDE.md +93 -0
  22. package/CNAME +1 -0
  23. package/CODE_OF_CONDUCT.md +7 -0
  24. package/CONTRIBUTING.md +433 -0
  25. package/LICENSE +21 -0
  26. package/README.md +2 -2
  27. package/SECURITY.md +74 -0
  28. package/b3pay-module.json +194 -0
  29. package/docs/.remarkrc.json +10 -0
  30. package/docs/README.md +64 -0
  31. package/docs/astro.config.mjs +205 -0
  32. package/docs/favicon.svg +15 -0
  33. package/docs/package.json +39 -0
  34. package/docs/public/favicon.svg +15 -0
  35. package/docs/public/ic-reactor-social-card.png +0 -0
  36. package/docs/scripts/b3pay-static.mjs +22 -0
  37. package/docs/scripts/check-example-docs.mjs +214 -0
  38. package/docs/scripts/check-links.mjs +212 -0
  39. package/docs/scripts/fix-dist-links.js +125 -0
  40. package/docs/scripts/fix-frontmatter.js +71 -0
  41. package/docs/scripts/remove-redundant-h1.cjs +48 -0
  42. package/docs/scripts/rewrite-typedoc-links.js +110 -0
  43. package/docs/scripts/split-index.js +69 -0
  44. package/docs/src/assets/ic-reactor-hero-dark.svg +23 -0
  45. package/docs/src/assets/ic-reactor-hero-light.svg +23 -0
  46. package/docs/src/assets/ic-reactor-lockup-dark.svg +15 -0
  47. package/docs/src/assets/ic-reactor-lockup-light.svg +15 -0
  48. package/docs/src/assets/ic-reactor-mark-dark.svg +14 -0
  49. package/docs/src/assets/ic-reactor-mark-light.svg +14 -0
  50. package/docs/src/assets/layers/candid-core-layer-icon-dark.svg +4 -0
  51. package/docs/src/assets/layers/candid-core-layer-icon-light.svg +4 -0
  52. package/docs/src/assets/layers/candid-profile-layer-icon-dark.svg +4 -0
  53. package/docs/src/assets/layers/candid-profile-layer-icon-light.svg +4 -0
  54. package/docs/src/assets/layers/ic-reactor-layer-icon-dark.svg +4 -0
  55. package/docs/src/assets/layers/ic-reactor-layer-icon-light.svg +4 -0
  56. package/docs/src/components/LibraryCards.astro +172 -0
  57. package/docs/src/components/LibraryIcon.astro +28 -0
  58. package/docs/src/components/SiteTitle.astro +241 -0
  59. package/docs/src/content/docs/404.mdx +19 -0
  60. package/docs/src/content/docs/build/agent-tools.mdx +593 -0
  61. package/docs/src/content/docs/build/icrc1-wallet.mdx +619 -0
  62. package/docs/src/content/docs/build/ssr-per-user.mdx +552 -0
  63. package/docs/src/content/docs/examples/canister-studio.mdx +95 -0
  64. package/docs/src/content/docs/examples/icrc-ledger.mdx +45 -0
  65. package/docs/src/content/docs/examples/index.mdx +38 -0
  66. package/docs/src/content/docs/examples/next-ssr.mdx +73 -0
  67. package/docs/src/content/docs/examples/node-agent-tool.mdx +80 -0
  68. package/docs/src/content/docs/examples/vite-wallet.mdx +71 -0
  69. package/docs/src/content/docs/guides/auth.mdx +1181 -0
  70. package/docs/src/content/docs/guides/client.mdx +551 -0
  71. package/docs/src/content/docs/guides/deploy.mdx +180 -0
  72. package/docs/src/content/docs/guides/errors.mdx +475 -0
  73. package/docs/src/content/docs/guides/getting-started.mdx +620 -0
  74. package/docs/src/content/docs/guides/reads.mdx +586 -0
  75. package/docs/src/content/docs/guides/ssr.mdx +529 -0
  76. package/docs/src/content/docs/guides/testing.mdx +401 -0
  77. package/docs/src/content/docs/guides/values.mdx +261 -0
  78. package/docs/src/content/docs/guides/vite-plugin.mdx +690 -0
  79. package/docs/src/content/docs/guides/writes.mdx +572 -0
  80. package/docs/src/content/docs/ic-reactor/index.mdx +167 -0
  81. package/docs/src/content/docs/index.mdx +65 -0
  82. package/docs/src/content/docs/migrating-from-3.mdx +535 -0
  83. package/docs/src/content/docs/packages/core.mdx +186 -0
  84. package/docs/src/content/docs/packages/mcp.mdx +163 -0
  85. package/docs/src/content/docs/packages/react.mdx +207 -0
  86. package/docs/src/content/docs/packages/vite-plugin.mdx +73 -0
  87. package/docs/src/content/docs/versioning.mdx +104 -0
  88. package/docs/src/content.config.ts +7 -0
  89. package/docs/src/styles/custom.css +189 -0
  90. package/docs/tsconfig.typedoc.json +26 -0
  91. package/docs/typedoc-entry.ts +17 -0
  92. package/docs/typedoc.json +37 -0
  93. package/e2e/Cargo.lock +646 -0
  94. package/e2e/Cargo.toml +3 -0
  95. package/e2e/README.md +101 -0
  96. package/e2e/frontends/build.mjs +94 -0
  97. package/e2e/frontends/index.html +10 -0
  98. package/e2e/global-setup.ts +65 -0
  99. package/e2e/icp.yaml +38 -0
  100. package/e2e/package.json +40 -0
  101. package/e2e/setup.ts +6 -0
  102. package/e2e/src/actor/Cargo.toml +14 -0
  103. package/e2e/src/actor/hello_actor.did +10 -0
  104. package/e2e/src/actor/src/lib.rs +73 -0
  105. package/e2e/src/calls.test.ts +132 -0
  106. package/e2e/src/declarations/hello_actor.envelope.json +175 -0
  107. package/e2e/src/declarations/hello_actor.ts +15 -0
  108. package/e2e/src/errors.test.ts +107 -0
  109. package/e2e/src/frontend-headers.test.ts +253 -0
  110. package/e2e/src/identity.test.ts +61 -0
  111. package/e2e/src/react.test.tsx +59 -0
  112. package/e2e/src/replica.ts +70 -0
  113. package/e2e/src/vite-env.test.ts +108 -0
  114. package/e2e/test.sh +47 -0
  115. package/e2e/tsconfig.json +20 -0
  116. package/e2e/tsconfig.typecheck.json +9 -0
  117. package/e2e/vitest.config.ts +22 -0
  118. package/eslint.config.mjs +100 -0
  119. package/evals/PREREGISTRATION.md +1346 -0
  120. package/evals/README.md +756 -0
  121. package/evals/conditions/thin/condition.json +8 -0
  122. package/evals/conditions/thin/docs/candid-core-cli.README.md +90 -0
  123. package/evals/conditions/thin/docs/candid-core-schema.README.md +339 -0
  124. package/evals/conditions/thin/package.json +25 -0
  125. package/evals/conditions/thin/starter/src/generated/icrc1.ts +57 -0
  126. package/evals/conditions/thin-guide/condition.json +10 -0
  127. package/evals/conditions/thin-guide/docs/llms.txt +292 -0
  128. package/evals/conditions/v3/condition.json +9 -0
  129. package/evals/conditions/v3/docs/ic-reactor-core.llms.txt +232 -0
  130. package/evals/conditions/v3/docs/ic-reactor-react.llms.txt +280 -0
  131. package/evals/conditions/v3/docs/llms-full.txt +1053 -0
  132. package/evals/conditions/v3/package.json +26 -0
  133. package/evals/conditions/v3/starter/src/declarations/icrc1.did.d.ts +95 -0
  134. package/evals/conditions/v3/starter/src/declarations/icrc1.did.js +140 -0
  135. package/evals/conditions/v4/PORTING.md +384 -0
  136. package/evals/conditions/v4/README.md +106 -0
  137. package/evals/conditions/v4/condition.json +5 -0
  138. package/evals/conditions/v4/docs/llms.txt +323 -0
  139. package/evals/conditions/v4/package.json +27 -0
  140. package/evals/conditions/v4/starter/src/generated/icrc1.ts +78 -0
  141. package/evals/conditions/v4-proto/condition.json +6 -0
  142. package/evals/conditions/v4-proto/docs/llms.txt +291 -0
  143. package/evals/conditions/v4-proto/lib/SHIM-NOTES.md +20 -0
  144. package/evals/conditions/v4-proto/lib/package.json +27 -0
  145. package/evals/conditions/v4-proto/lib/src/client.ts +471 -0
  146. package/evals/conditions/v4-proto/lib/src/errors.ts +214 -0
  147. package/evals/conditions/v4-proto/lib/src/index.ts +36 -0
  148. package/evals/conditions/v4-proto/lib/src/principal.ts +175 -0
  149. package/evals/conditions/v4-proto/lib/src/service.ts +69 -0
  150. package/evals/conditions/v4-proto/lib/src/types.ts +174 -0
  151. package/evals/conditions/v4-proto/lib/test/runtime.test.ts +170 -0
  152. package/evals/conditions/v4-proto/lib/test/tsconfig.json +10 -0
  153. package/evals/conditions/v4-proto/lib/test/types.test-d.ts +145 -0
  154. package/evals/conditions/v4-proto/lib/test/vitest.config.mjs +8 -0
  155. package/evals/conditions/v4-proto/lib/tsconfig.json +17 -0
  156. package/evals/conditions/v4-proto/package.json +26 -0
  157. package/evals/conditions/v4-proto/starter/src/generated/icrc1.service.ts +19 -0
  158. package/evals/conditions/v4-proto/starter/src/generated/icrc1.ts +57 -0
  159. package/evals/drive.mjs +1221 -0
  160. package/evals/gate.mjs +161 -0
  161. package/evals/harness/aggregate.mjs +534 -0
  162. package/evals/harness/aggregate.test.mjs +344 -0
  163. package/evals/harness/assemble.mjs +216 -0
  164. package/evals/harness/assemble.test.mjs +143 -0
  165. package/evals/harness/auth.mjs +91 -0
  166. package/evals/harness/check-docs.mjs +157 -0
  167. package/evals/harness/declarations/icrc1.did.d.ts +95 -0
  168. package/evals/harness/declarations/icrc1.did.js +140 -0
  169. package/evals/harness/drive-auth.test.mjs +584 -0
  170. package/evals/harness/drive.test.mjs +509 -0
  171. package/evals/harness/fake-auth.ts +67 -0
  172. package/evals/harness/fake-ledger.ts +178 -0
  173. package/evals/harness/gate-plan.mjs +104 -0
  174. package/evals/harness/gate-plan.test.mjs +243 -0
  175. package/evals/harness/icrc1.did +88 -0
  176. package/evals/harness/judge.mjs +63 -0
  177. package/evals/harness/judge.test.mjs +81 -0
  178. package/evals/harness/leak-scan.mjs +1373 -0
  179. package/evals/harness/leak-scan.test.mjs +1300 -0
  180. package/evals/harness/probes/amounts.ts +14 -0
  181. package/evals/harness/probes/node-tool.probe.ts +48 -0
  182. package/evals/harness/probes/probe.mjs +149 -0
  183. package/evals/harness/probes/react-wallet.probe.ts +96 -0
  184. package/evals/harness/public/support/auth.ts +38 -0
  185. package/evals/harness/public/support/fake-replica.d.ts +28 -0
  186. package/evals/harness/public/support/fake-replica.js +434 -0
  187. package/evals/harness/public/support/ledger.idl.d.ts +95 -0
  188. package/evals/harness/public/support/ledger.idl.js +140 -0
  189. package/evals/harness/public/support/world.ts +179 -0
  190. package/evals/harness/runs.mjs +139 -0
  191. package/evals/harness/sandbox.mjs +88 -0
  192. package/evals/harness/sandbox.test.mjs +134 -0
  193. package/evals/harness/ship.mjs +264 -0
  194. package/evals/harness/ship.test.mjs +552 -0
  195. package/evals/harness/world.ts +291 -0
  196. package/evals/package.json +26 -0
  197. package/evals/pnpm-lock.yaml +1537 -0
  198. package/evals/pnpm-workspace.yaml +12 -0
  199. package/evals/results/2026-09-30T14-22-05-924Z/pilot.json +384 -0
  200. package/evals/results/2026-09-30T14-22-05-924Z/pilot.rescanned.json +404 -0
  201. package/evals/results/2026-09-30T14-22-05-924Z/pilot.rescanned.rescored.json +404 -0
  202. package/evals/results/2026-09-30T14-22-05-924Z/plan.json +240 -0
  203. package/evals/results/2026-09-30T14-22-05-924Z/summary.json +1800 -0
  204. package/evals/results/2026-09-30T14-22-05-924Z/summary.rescanned.json +1843 -0
  205. package/evals/results/2026-09-30T14-22-05-924Z/summary.rescanned.rescored.json +2100 -0
  206. package/evals/results/2026-09-30T15-48-23-343Z/pilot.json +404 -0
  207. package/evals/results/2026-09-30T15-48-23-343Z/pilot.rescored.json +404 -0
  208. package/evals/results/2026-09-30T15-48-23-343Z/plan.json +242 -0
  209. package/evals/results/2026-09-30T15-48-23-343Z/summary.json +1843 -0
  210. package/evals/results/2026-09-30T15-48-23-343Z/summary.rescored.json +2195 -0
  211. package/evals/results/2026-10-03-beta1-gate/pilot.json +162 -0
  212. package/evals/results/2026-10-03-beta1-gate/plan.json +141 -0
  213. package/evals/results/2026-10-03-beta1-gate/summary.json +983 -0
  214. package/evals/results/2026-10-05-ga-gate/contaminated-run.json +55 -0
  215. package/evals/results/2026-10-05-ga-gate/pilot.json +162 -0
  216. package/evals/results/2026-10-05-ga-gate/plan.json +457 -0
  217. package/evals/results/2026-10-05-ga-gate/summary.json +1037 -0
  218. package/evals/results/2026-10-05-ga-gate/summary.rescanned.json +1037 -0
  219. package/evals/results/README.md +31 -0
  220. package/evals/runs-pilot.log +150 -0
  221. package/evals/runs-pilot2.log +150 -0
  222. package/evals/score.mjs +256 -0
  223. package/evals/setup.mjs +547 -0
  224. package/evals/tasks/node-tool/faulty/thin-accepts-exponent/meta.json +5 -0
  225. package/evals/tasks/node-tool/faulty/thin-accepts-exponent/src/index.ts +121 -0
  226. package/evals/tasks/node-tool/faulty/thin-anonymous-transfer/meta.json +5 -0
  227. package/evals/tasks/node-tool/faulty/thin-anonymous-transfer/src/index.ts +116 -0
  228. package/evals/tasks/node-tool/faulty/thin-every-reject-may-have-executed/meta.json +9 -0
  229. package/evals/tasks/node-tool/faulty/thin-every-reject-may-have-executed/src/index.ts +118 -0
  230. package/evals/tasks/node-tool/faulty/thin-fetches-root-key-off-local/meta.json +5 -0
  231. package/evals/tasks/node-tool/faulty/thin-fetches-root-key-off-local/src/index.ts +118 -0
  232. package/evals/tasks/node-tool/faulty/thin-ignores-root-key/meta.json +5 -0
  233. package/evals/tasks/node-tool/faulty/thin-ignores-root-key/src/index.ts +117 -0
  234. package/evals/tasks/node-tool/faulty/thin-misclassifies-reject-codes/meta.json +9 -0
  235. package/evals/tasks/node-tool/faulty/thin-misclassifies-reject-codes/src/index.ts +119 -0
  236. package/evals/tasks/node-tool/faulty/thin-no-nat64-cap/meta.json +9 -0
  237. package/evals/tasks/node-tool/faulty/thin-no-nat64-cap/src/index.ts +118 -0
  238. package/evals/tasks/node-tool/faulty/thin-number-amount/meta.json +10 -0
  239. package/evals/tasks/node-tool/faulty/thin-number-amount/src/index.ts +117 -0
  240. package/evals/tasks/node-tool/faulty/thin-truncates-fraction-digits/meta.json +5 -0
  241. package/evals/tasks/node-tool/faulty/thin-truncates-fraction-digits/src/index.ts +120 -0
  242. package/evals/tasks/node-tool/faulty/thin-unvalidated-recipient/meta.json +5 -0
  243. package/evals/tasks/node-tool/faulty/thin-unvalidated-recipient/src/index.ts +118 -0
  244. package/evals/tasks/node-tool/faulty/v3-retry-call-errors/meta.json +11 -0
  245. package/evals/tasks/node-tool/faulty/v3-retry-call-errors/src/index.ts +149 -0
  246. package/evals/tasks/node-tool/faulty/v4-anonymous-identity-sent/meta.json +5 -0
  247. package/evals/tasks/node-tool/faulty/v4-anonymous-identity-sent/src/index.ts +71 -0
  248. package/evals/tasks/node-tool/faulty/v4-never-may-have-executed/meta.json +9 -0
  249. package/evals/tasks/node-tool/faulty/v4-never-may-have-executed/src/index.ts +84 -0
  250. package/evals/tasks/node-tool/faulty/v4-proto-never-may-have-executed/meta.json +9 -0
  251. package/evals/tasks/node-tool/faulty/v4-proto-never-may-have-executed/src/index.ts +72 -0
  252. package/evals/tasks/node-tool/faulty/v4-proto-refuses-nat64-max/meta.json +5 -0
  253. package/evals/tasks/node-tool/faulty/v4-proto-refuses-nat64-max/src/index.ts +72 -0
  254. package/evals/tasks/node-tool/faulty/v4-refuses-nat64-max/meta.json +5 -0
  255. package/evals/tasks/node-tool/faulty/v4-refuses-nat64-max/src/index.ts +84 -0
  256. package/evals/tasks/node-tool/hidden/node-tool.test.ts +312 -0
  257. package/evals/tasks/node-tool/prompt.md +55 -0
  258. package/evals/tasks/node-tool/prompt.minimal.md +30 -0
  259. package/evals/tasks/node-tool/solutions/thin/reference/src/index.ts +118 -0
  260. package/evals/tasks/node-tool/solutions/thin/reference-module-scope/src/index.ts +145 -0
  261. package/evals/tasks/node-tool/solutions/thin-guide/reference/src/index.ts +118 -0
  262. package/evals/tasks/node-tool/solutions/thin-guide/reference-module-scope/src/index.ts +145 -0
  263. package/evals/tasks/node-tool/solutions/v3/reference/src/index.ts +140 -0
  264. package/evals/tasks/node-tool/solutions/v3/reference-module-scope/src/index.ts +153 -0
  265. package/evals/tasks/node-tool/solutions/v4/reference/src/index.ts +84 -0
  266. package/evals/tasks/node-tool/solutions/v4/reference-module-scope/src/index.ts +105 -0
  267. package/evals/tasks/node-tool/solutions/v4-proto/reference/src/index.ts +72 -0
  268. package/evals/tasks/node-tool/solutions/v4-proto/reference-module-scope/src/index.ts +87 -0
  269. package/evals/tasks/node-tool/starter/src/contract.ts +31 -0
  270. package/evals/tasks/node-tool/starter/src/index.ts +7 -0
  271. package/evals/tasks/node-tool/starter/test/smoke.test.ts +22 -0
  272. package/evals/tasks/node-tool/starter/tsconfig.json +17 -0
  273. package/evals/tasks/node-tool/task.json +63 -0
  274. package/evals/tasks/react-wallet/faulty/thin-accepts-exponent/meta.json +5 -0
  275. package/evals/tasks/react-wallet/faulty/thin-accepts-exponent/src/Wallet.tsx +216 -0
  276. package/evals/tasks/react-wallet/faulty/thin-anonymous-transfer/meta.json +5 -0
  277. package/evals/tasks/react-wallet/faulty/thin-anonymous-transfer/src/Wallet.tsx +212 -0
  278. package/evals/tasks/react-wallet/faulty/thin-both-auth-buttons/meta.json +5 -0
  279. package/evals/tasks/react-wallet/faulty/thin-both-auth-buttons/src/Wallet.tsx +210 -0
  280. package/evals/tasks/react-wallet/faulty/thin-constant-balance-key/meta.json +8 -0
  281. package/evals/tasks/react-wallet/faulty/thin-constant-balance-key/src/Wallet.tsx +213 -0
  282. package/evals/tasks/react-wallet/faulty/thin-no-nat64-cap/meta.json +9 -0
  283. package/evals/tasks/react-wallet/faulty/thin-no-nat64-cap/src/Wallet.tsx +213 -0
  284. package/evals/tasks/react-wallet/faulty/thin-number-balance/meta.json +5 -0
  285. package/evals/tasks/react-wallet/faulty/thin-number-balance/src/Wallet.tsx +213 -0
  286. package/evals/tasks/react-wallet/faulty/thin-transfer-as-query/meta.json +5 -0
  287. package/evals/tasks/react-wallet/faulty/thin-transfer-as-query/src/Wallet.tsx +254 -0
  288. package/evals/tasks/react-wallet/faulty/thin-truncates-fraction-digits/meta.json +5 -0
  289. package/evals/tasks/react-wallet/faulty/thin-truncates-fraction-digits/src/Wallet.tsx +215 -0
  290. package/evals/tasks/react-wallet/faulty/thin-unguarded-balance-effect/meta.json +5 -0
  291. package/evals/tasks/react-wallet/faulty/thin-unguarded-balance-effect/src/Wallet.tsx +214 -0
  292. package/evals/tasks/react-wallet/faulty/v3-http-4xx-unknown/meta.json +5 -0
  293. package/evals/tasks/react-wallet/faulty/v3-http-4xx-unknown/src/Wallet.tsx +224 -0
  294. package/evals/tasks/react-wallet/faulty/v3-mutation-retry-3/meta.json +12 -0
  295. package/evals/tasks/react-wallet/faulty/v3-mutation-retry-3/src/Wallet.tsx +225 -0
  296. package/evals/tasks/react-wallet/faulty/v3-unknown-as-error/meta.json +11 -0
  297. package/evals/tasks/react-wallet/faulty/v3-unknown-as-error/src/Wallet.tsx +182 -0
  298. package/evals/tasks/react-wallet/faulty/v4-every-reject-unknown/meta.json +5 -0
  299. package/evals/tasks/react-wallet/faulty/v4-every-reject-unknown/src/Wallet.tsx +160 -0
  300. package/evals/tasks/react-wallet/faulty/v4-keep-previous-data/meta.json +5 -0
  301. package/evals/tasks/react-wallet/faulty/v4-keep-previous-data/src/Wallet.tsx +166 -0
  302. package/evals/tasks/react-wallet/faulty/v4-proto-every-reject-unknown/meta.json +5 -0
  303. package/evals/tasks/react-wallet/faulty/v4-proto-every-reject-unknown/src/Wallet.tsx +161 -0
  304. package/evals/tasks/react-wallet/faulty/v4-proto-keep-previous-data/meta.json +5 -0
  305. package/evals/tasks/react-wallet/faulty/v4-proto-keep-previous-data/src/Wallet.tsx +163 -0
  306. package/evals/tasks/react-wallet/faulty/v4-proto-retry-spread/meta.json +12 -0
  307. package/evals/tasks/react-wallet/faulty/v4-proto-retry-spread/src/Wallet.tsx +162 -0
  308. package/evals/tasks/react-wallet/faulty/v4-proto-status-not-idle/meta.json +5 -0
  309. package/evals/tasks/react-wallet/faulty/v4-proto-status-not-idle/src/Wallet.tsx +163 -0
  310. package/evals/tasks/react-wallet/faulty/v4-retry-spread/meta.json +12 -0
  311. package/evals/tasks/react-wallet/faulty/v4-retry-spread/src/Wallet.tsx +163 -0
  312. package/evals/tasks/react-wallet/faulty/v4-status-not-idle/meta.json +5 -0
  313. package/evals/tasks/react-wallet/faulty/v4-status-not-idle/src/Wallet.tsx +162 -0
  314. package/evals/tasks/react-wallet/hidden/react-wallet.test.ts +536 -0
  315. package/evals/tasks/react-wallet/prompt.md +88 -0
  316. package/evals/tasks/react-wallet/prompt.minimal.md +51 -0
  317. package/evals/tasks/react-wallet/solutions/thin/reference/src/Wallet.tsx +213 -0
  318. package/evals/tasks/react-wallet/solutions/thin/reference-module-scope/src/Wallet.tsx +227 -0
  319. package/evals/tasks/react-wallet/solutions/thin-guide/reference/src/Wallet.tsx +213 -0
  320. package/evals/tasks/react-wallet/solutions/thin-guide/reference-module-scope/src/Wallet.tsx +227 -0
  321. package/evals/tasks/react-wallet/solutions/v3/reference/src/Wallet.tsx +224 -0
  322. package/evals/tasks/react-wallet/solutions/v3/reference-module-scope/src/Wallet.tsx +230 -0
  323. package/evals/tasks/react-wallet/solutions/v4/reference/src/Wallet.tsx +160 -0
  324. package/evals/tasks/react-wallet/solutions/v4/reference-module-scope/src/Wallet.tsx +178 -0
  325. package/evals/tasks/react-wallet/solutions/v4-proto/reference/src/Wallet.tsx +161 -0
  326. package/evals/tasks/react-wallet/solutions/v4-proto/reference-module-scope/src/Wallet.tsx +161 -0
  327. package/evals/tasks/react-wallet/starter/src/Wallet.tsx +12 -0
  328. package/evals/tasks/react-wallet/starter/src/auth.ts +16 -0
  329. package/evals/tasks/react-wallet/starter/src/config.ts +14 -0
  330. package/evals/tasks/react-wallet/starter/src/ii-auth.ts +43 -0
  331. package/evals/tasks/react-wallet/starter/src/main.tsx +15 -0
  332. package/evals/tasks/react-wallet/starter/test/smoke.test.ts +34 -0
  333. package/evals/tasks/react-wallet/starter/tsconfig.json +18 -0
  334. package/evals/tasks/react-wallet/task.json +84 -0
  335. package/examples/canister-studio/.stackblitzrc +4 -0
  336. package/examples/canister-studio/README.md +183 -0
  337. package/examples/canister-studio/did/ckbtc_minter.did +806 -0
  338. package/examples/canister-studio/did/icp_ledger.did +586 -0
  339. package/examples/canister-studio/did/icrc1.did +88 -0
  340. package/examples/canister-studio/package.json +45 -0
  341. package/examples/canister-studio/scripts/smoke.ts +188 -0
  342. package/examples/canister-studio/src/calls/CacheKeyPanel.tsx +104 -0
  343. package/examples/canister-studio/src/calls/ConfirmWrite.tsx +265 -0
  344. package/examples/canister-studio/src/calls/ErrorPanel.test.tsx +113 -0
  345. package/examples/canister-studio/src/calls/ErrorPanel.tsx +214 -0
  346. package/examples/canister-studio/src/calls/MethodRunner.test.tsx +354 -0
  347. package/examples/canister-studio/src/calls/MethodRunner.tsx +57 -0
  348. package/examples/canister-studio/src/calls/ReadRunner.tsx +244 -0
  349. package/examples/canister-studio/src/calls/ResendPanel.tsx +165 -0
  350. package/examples/canister-studio/src/calls/ShareLink.tsx +59 -0
  351. package/examples/canister-studio/src/calls/WriteRunner.test.tsx +678 -0
  352. package/examples/canister-studio/src/calls/WriteRunner.tsx +670 -0
  353. package/examples/canister-studio/src/calls/dedupe.ts +189 -0
  354. package/examples/canister-studio/src/calls/error-info.ts +168 -0
  355. package/examples/canister-studio/src/calls/history.test.ts +284 -0
  356. package/examples/canister-studio/src/calls/history.ts +287 -0
  357. package/examples/canister-studio/src/calls/kinds.ts +68 -0
  358. package/examples/canister-studio/src/calls/prepare.ts +32 -0
  359. package/examples/canister-studio/src/calls/query-options.ts +30 -0
  360. package/examples/canister-studio/src/calls/read.ts +47 -0
  361. package/examples/canister-studio/src/calls/readback.ts +100 -0
  362. package/examples/canister-studio/src/calls/record.ts +123 -0
  363. package/examples/canister-studio/src/calls/safe-calls.test.ts +299 -0
  364. package/examples/canister-studio/src/calls/share.ts +46 -0
  365. package/examples/canister-studio/src/calls/testing/doubles.tsx +108 -0
  366. package/examples/canister-studio/src/calls/testing/fixtures.ts +185 -0
  367. package/examples/canister-studio/src/calls/useCanisterHandle.ts +35 -0
  368. package/examples/canister-studio/src/canisters/ckbtc_minter.envelope.json +4228 -0
  369. package/examples/canister-studio/src/canisters/ckbtc_minter.ts +868 -0
  370. package/examples/canister-studio/src/canisters/icp_ledger.envelope.json +3454 -0
  371. package/examples/canister-studio/src/canisters/icp_ledger.ts +584 -0
  372. package/examples/canister-studio/src/canisters/icrc1.envelope.json +840 -0
  373. package/examples/canister-studio/src/canisters/icrc1.ts +78 -0
  374. package/examples/canister-studio/src/components/ActionButton.tsx +32 -0
  375. package/examples/canister-studio/src/components/AppHeader.tsx +83 -0
  376. package/examples/canister-studio/src/components/AppShell.tsx +29 -0
  377. package/examples/canister-studio/src/components/AuthButton.tsx +79 -0
  378. package/examples/canister-studio/src/components/Badge.tsx +79 -0
  379. package/examples/canister-studio/src/components/CanisterHeader.tsx +200 -0
  380. package/examples/canister-studio/src/components/CanisterJump.tsx +130 -0
  381. package/examples/canister-studio/src/components/Card.tsx +64 -0
  382. package/examples/canister-studio/src/components/Code.tsx +101 -0
  383. package/examples/canister-studio/src/components/CopyButton.tsx +126 -0
  384. package/examples/canister-studio/src/components/Disclosure.tsx +34 -0
  385. package/examples/canister-studio/src/components/EmptyState.tsx +34 -0
  386. package/examples/canister-studio/src/components/MethodList.test.tsx +137 -0
  387. package/examples/canister-studio/src/components/MethodList.tsx +244 -0
  388. package/examples/canister-studio/src/components/Notice.tsx +36 -0
  389. package/examples/canister-studio/src/components/ProvenanceBadge.tsx +44 -0
  390. package/examples/canister-studio/src/components/RouteError.tsx +42 -0
  391. package/examples/canister-studio/src/components/SectionBoundary.tsx +76 -0
  392. package/examples/canister-studio/src/components/Spinner.tsx +33 -0
  393. package/examples/canister-studio/src/components/Tabs.tsx +96 -0
  394. package/examples/canister-studio/src/components/canister/CanisterLoadFailure.test.tsx +56 -0
  395. package/examples/canister-studio/src/components/canister/CanisterLoadFailure.tsx +165 -0
  396. package/examples/canister-studio/src/components/canister/CanisterNotFound.tsx +59 -0
  397. package/examples/canister-studio/src/components/canister/CanisterPending.tsx +33 -0
  398. package/examples/canister-studio/src/components/canister/MethodOverview.tsx +93 -0
  399. package/examples/canister-studio/src/components/canister/MethodWorkspace.test.tsx +201 -0
  400. package/examples/canister-studio/src/components/canister/MethodWorkspace.tsx +187 -0
  401. package/examples/canister-studio/src/components/canister/shared-call.test.ts +186 -0
  402. package/examples/canister-studio/src/components/canister/shared-call.ts +133 -0
  403. package/examples/canister-studio/src/components/canister/shared-link-loader.test.ts +116 -0
  404. package/examples/canister-studio/src/components/canister/use-canister-page.ts +44 -0
  405. package/examples/canister-studio/src/components/canister/workspace-key.test.ts +27 -0
  406. package/examples/canister-studio/src/components/canister/workspace-key.ts +36 -0
  407. package/examples/canister-studio/src/components/canister-id-input.ts +69 -0
  408. package/examples/canister-studio/src/components/canister-names.ts +11 -0
  409. package/examples/canister-studio/src/components/download.ts +34 -0
  410. package/examples/canister-studio/src/components/fallbacks.tsx +33 -0
  411. package/examples/canister-studio/src/components/helpers.test.ts +107 -0
  412. package/examples/canister-studio/src/components/history/HistoryList.tsx +284 -0
  413. package/examples/canister-studio/src/components/home/FeaturedLedger.tsx +149 -0
  414. package/examples/canister-studio/src/components/home/OpenCanister.tsx +99 -0
  415. package/examples/canister-studio/src/components/home/featured.test.tsx +92 -0
  416. package/examples/canister-studio/src/components/home/featured.ts +64 -0
  417. package/examples/canister-studio/src/components/interface/CandidTab.tsx +38 -0
  418. package/examples/canister-studio/src/components/interface/CompatReport.tsx +92 -0
  419. package/examples/canister-studio/src/components/interface/CompatibilityTab.tsx +190 -0
  420. package/examples/canister-studio/src/components/interface/ProjectTab.tsx +196 -0
  421. package/examples/canister-studio/src/components/interface/TypeScriptTab.tsx +114 -0
  422. package/examples/canister-studio/src/components/interface/tools.test.tsx +169 -0
  423. package/examples/canister-studio/src/components/modes.ts +31 -0
  424. package/examples/canister-studio/src/components/playground/MethodPicker.tsx +67 -0
  425. package/examples/canister-studio/src/components/playground/PlaygroundForms.tsx +112 -0
  426. package/examples/canister-studio/src/components/playground/PlaygroundTools.tsx +219 -0
  427. package/examples/canister-studio/src/components/playground/sample.ts +43 -0
  428. package/examples/canister-studio/src/components/playground/target.test.tsx +86 -0
  429. package/examples/canister-studio/src/components/primitives.test.tsx +121 -0
  430. package/examples/canister-studio/src/components/provenance.ts +38 -0
  431. package/examples/canister-studio/src/components/route-render.test.tsx +71 -0
  432. package/examples/canister-studio/src/components/use-task.ts +56 -0
  433. package/examples/canister-studio/src/components/wallet/BalancePanel.tsx +110 -0
  434. package/examples/canister-studio/src/components/wallet/LedgerSummary.tsx +63 -0
  435. package/examples/canister-studio/src/components/wallet/MinterPanel.tsx +255 -0
  436. package/examples/canister-studio/src/components/wallet/SendPanel.test.tsx +297 -0
  437. package/examples/canister-studio/src/components/wallet/SendPanel.tsx +446 -0
  438. package/examples/canister-studio/src/components/wallet/ledgers.test.ts +36 -0
  439. package/examples/canister-studio/src/components/wallet/ledgers.ts +111 -0
  440. package/examples/canister-studio/src/forms/JsonPanel.tsx +157 -0
  441. package/examples/canister-studio/src/forms/MethodForm.test.tsx +369 -0
  442. package/examples/canister-studio/src/forms/MethodForm.tsx +368 -0
  443. package/examples/canister-studio/src/forms/TypedForm.tsx +55 -0
  444. package/examples/canister-studio/src/forms/context.ts +62 -0
  445. package/examples/canister-studio/src/forms/convert.ts +131 -0
  446. package/examples/canister-studio/src/forms/edge.test.ts +252 -0
  447. package/examples/canister-studio/src/forms/engine.test.ts +358 -0
  448. package/examples/canister-studio/src/forms/engine.ts +1492 -0
  449. package/examples/canister-studio/src/forms/fields/BytesField.tsx +210 -0
  450. package/examples/canister-studio/src/forms/fields/Field.tsx +106 -0
  451. package/examples/canister-studio/src/forms/fields/FieldShell.tsx +101 -0
  452. package/examples/canister-studio/src/forms/fields/Group.tsx +74 -0
  453. package/examples/canister-studio/src/forms/fields/ListField.tsx +256 -0
  454. package/examples/canister-studio/src/forms/fields/Segmented.tsx +78 -0
  455. package/examples/canister-studio/src/forms/fields/TimestampField.tsx +108 -0
  456. package/examples/canister-studio/src/forms/fields/UnitsField.tsx +119 -0
  457. package/examples/canister-studio/src/forms/fields/composites.tsx +389 -0
  458. package/examples/canister-studio/src/forms/fields/leaves.tsx +350 -0
  459. package/examples/canister-studio/src/forms/fields.test.tsx +396 -0
  460. package/examples/canister-studio/src/forms/helpers.test.ts +225 -0
  461. package/examples/canister-studio/src/forms/hints.ts +128 -0
  462. package/examples/canister-studio/src/forms/json.ts +119 -0
  463. package/examples/canister-studio/src/forms/parsing.test.ts +217 -0
  464. package/examples/canister-studio/src/forms/useMethodForm.ts +251 -0
  465. package/examples/canister-studio/src/interface/browser.test.ts +23 -0
  466. package/examples/canister-studio/src/interface/browser.ts +153 -0
  467. package/examples/canister-studio/src/interface/cache.ts +68 -0
  468. package/examples/canister-studio/src/interface/cli-cache.test.ts +155 -0
  469. package/examples/canister-studio/src/interface/cli-cache.ts +125 -0
  470. package/examples/canister-studio/src/interface/compile.server.test.ts +198 -0
  471. package/examples/canister-studio/src/interface/compile.server.ts +262 -0
  472. package/examples/canister-studio/src/interface/compile.test.ts +108 -0
  473. package/examples/canister-studio/src/interface/compile.ts +305 -0
  474. package/examples/canister-studio/src/interface/docs.test.ts +75 -0
  475. package/examples/canister-studio/src/interface/docs.ts +100 -0
  476. package/examples/canister-studio/src/interface/functions.test.ts +42 -0
  477. package/examples/canister-studio/src/interface/functions.ts +200 -0
  478. package/examples/canister-studio/src/interface/live-candid.server.ts +91 -0
  479. package/examples/canister-studio/src/interface/live-loader.test.ts +515 -0
  480. package/examples/canister-studio/src/interface/live-loader.ts +364 -0
  481. package/examples/canister-studio/src/interface/load.test.ts +328 -0
  482. package/examples/canister-studio/src/interface/load.ts +249 -0
  483. package/examples/canister-studio/src/interface/read-candid.test.ts +185 -0
  484. package/examples/canister-studio/src/interface/read-candid.ts +233 -0
  485. package/examples/canister-studio/src/interface/server-result.ts +42 -0
  486. package/examples/canister-studio/src/interface/typed.ts +68 -0
  487. package/examples/canister-studio/src/interface/types.ts +121 -0
  488. package/examples/canister-studio/src/lib/format.test.ts +107 -0
  489. package/examples/canister-studio/src/lib/format.ts +139 -0
  490. package/examples/canister-studio/src/lib/hex.test.ts +43 -0
  491. package/examples/canister-studio/src/lib/hex.ts +33 -0
  492. package/examples/canister-studio/src/lib/ids.test.ts +70 -0
  493. package/examples/canister-studio/src/lib/ids.ts +93 -0
  494. package/examples/canister-studio/src/lib/reactor.test.ts +55 -0
  495. package/examples/canister-studio/src/lib/reactor.ts +55 -0
  496. package/examples/canister-studio/src/lib/registry.test.ts +74 -0
  497. package/examples/canister-studio/src/lib/registry.ts +238 -0
  498. package/examples/canister-studio/src/lib/schema.ts +148 -0
  499. package/examples/canister-studio/src/routeTree.gen.ts +227 -0
  500. package/examples/canister-studio/src/router.test.ts +290 -0
  501. package/examples/canister-studio/src/router.tsx +127 -0
  502. package/examples/canister-studio/src/routes/__root.tsx +58 -0
  503. package/examples/canister-studio/src/routes/canister.$canisterId.index.tsx +172 -0
  504. package/examples/canister-studio/src/routes/canister.$canisterId.interface.tsx +98 -0
  505. package/examples/canister-studio/src/routes/canister.$canisterId.tsx +91 -0
  506. package/examples/canister-studio/src/routes/history.tsx +55 -0
  507. package/examples/canister-studio/src/routes/index.tsx +169 -0
  508. package/examples/canister-studio/src/routes/playground.tsx +286 -0
  509. package/examples/canister-studio/src/routes/safety.tsx +57 -0
  510. package/examples/canister-studio/src/routes/wallet.tsx +213 -0
  511. package/examples/canister-studio/src/safety/LabTransferForm.tsx +84 -0
  512. package/examples/canister-studio/src/safety/RequestLog.tsx +79 -0
  513. package/examples/canister-studio/src/safety/SafetyLab.test.tsx +89 -0
  514. package/examples/canister-studio/src/safety/SafetyLab.tsx +140 -0
  515. package/examples/canister-studio/src/safety/ScenarioCard.tsx +262 -0
  516. package/examples/canister-studio/src/safety/lab-run.ts +283 -0
  517. package/examples/canister-studio/src/safety/mock-ledger.test.ts +99 -0
  518. package/examples/canister-studio/src/safety/mock-ledger.ts +263 -0
  519. package/examples/canister-studio/src/safety/scenarios.test.ts +157 -0
  520. package/examples/canister-studio/src/safety/scenarios.ts +924 -0
  521. package/examples/canister-studio/src/styles.css +3453 -0
  522. package/examples/canister-studio/src/styles.test.ts +46 -0
  523. package/examples/canister-studio/src/values/CallPreview.test.tsx +86 -0
  524. package/examples/canister-studio/src/values/CallPreview.tsx +148 -0
  525. package/examples/canister-studio/src/values/ErrValueView.tsx +66 -0
  526. package/examples/canister-studio/src/values/Inspector.tsx +133 -0
  527. package/examples/canister-studio/src/values/ReplyView.test.tsx +341 -0
  528. package/examples/canister-studio/src/values/ReplyView.tsx +164 -0
  529. package/examples/canister-studio/src/values/candid-text.test.ts +516 -0
  530. package/examples/canister-studio/src/values/candid-text.ts +479 -0
  531. package/examples/canister-studio/src/values/hints.ts +58 -0
  532. package/examples/canister-studio/src/values/json.test.ts +66 -0
  533. package/examples/canister-studio/src/values/json.ts +31 -0
  534. package/examples/canister-studio/src/values/leaves.tsx +309 -0
  535. package/examples/canister-studio/src/values/schema.test.ts +123 -0
  536. package/examples/canister-studio/src/values/schema.ts +78 -0
  537. package/examples/canister-studio/src/values/test-router.tsx +21 -0
  538. package/examples/canister-studio/src/values/tree.tsx +670 -0
  539. package/examples/canister-studio/src/values/use-sha256.ts +29 -0
  540. package/examples/canister-studio/tsconfig.json +20 -0
  541. package/examples/canister-studio/vite.config.ts +50 -0
  542. package/examples/canister-studio/vitest.config.ts +20 -0
  543. package/examples/icrc-ledger/.stackblitzrc +4 -0
  544. package/examples/icrc-ledger/README.md +100 -0
  545. package/examples/icrc-ledger/ckbtc_minter.did +12 -0
  546. package/examples/icrc-ledger/icp_ledger.did +147 -0
  547. package/examples/icrc-ledger/icrc1.did +88 -0
  548. package/examples/icrc-ledger/index.html +13 -0
  549. package/examples/icrc-ledger/package.json +40 -0
  550. package/examples/icrc-ledger/scripts/smoke.ts +151 -0
  551. package/examples/icrc-ledger/src/App.tsx +71 -0
  552. package/examples/icrc-ledger/src/ErrorPanel.tsx +105 -0
  553. package/examples/icrc-ledger/src/MainnetTab.tsx +450 -0
  554. package/examples/icrc-ledger/src/SandboxTab.test.tsx +379 -0
  555. package/examples/icrc-ledger/src/SandboxTab.tsx +761 -0
  556. package/examples/icrc-ledger/src/blocks.test.ts +247 -0
  557. package/examples/icrc-ledger/src/blocks.ts +140 -0
  558. package/examples/icrc-ledger/src/canisters/ckbtc_minter.envelope.json +96 -0
  559. package/examples/icrc-ledger/src/canisters/ckbtc_minter.ts +16 -0
  560. package/examples/icrc-ledger/src/canisters/icp_ledger.envelope.json +690 -0
  561. package/examples/icrc-ledger/src/canisters/icp_ledger.ts +223 -0
  562. package/examples/icrc-ledger/src/canisters/icrc1.envelope.json +840 -0
  563. package/examples/icrc-ledger/src/canisters/icrc1.ts +78 -0
  564. package/examples/icrc-ledger/src/format.test.ts +41 -0
  565. package/examples/icrc-ledger/src/format.ts +68 -0
  566. package/examples/icrc-ledger/src/ledger.ts +15 -0
  567. package/examples/icrc-ledger/src/main.tsx +10 -0
  568. package/examples/icrc-ledger/src/minter.ts +16 -0
  569. package/examples/icrc-ledger/src/sandbox.test.ts +464 -0
  570. package/examples/icrc-ledger/src/sandbox.ts +281 -0
  571. package/examples/icrc-ledger/src/styles.css +391 -0
  572. package/examples/icrc-ledger/src/transfer-form.test.ts +62 -0
  573. package/examples/icrc-ledger/src/transfer-form.ts +97 -0
  574. package/examples/icrc-ledger/tsconfig.json +19 -0
  575. package/examples/icrc-ledger/vite.config.ts +44 -0
  576. package/examples/icrc-ledger/vitest.config.ts +12 -0
  577. package/examples/next-ssr/.stackblitzrc +4 -0
  578. package/examples/next-ssr/README.md +112 -0
  579. package/examples/next-ssr/icrc1.did +88 -0
  580. package/examples/next-ssr/next.config.ts +10 -0
  581. package/examples/next-ssr/package.json +41 -0
  582. package/examples/next-ssr/scripts/smoke.ts +169 -0
  583. package/examples/next-ssr/src/app/account/CertifiedBalances.tsx +58 -0
  584. package/examples/next-ssr/src/app/account/account.test.tsx +165 -0
  585. package/examples/next-ssr/src/app/account/page.tsx +82 -0
  586. package/examples/next-ssr/src/app/api/balance/[ledger]/[principal]/route.ts +10 -0
  587. package/examples/next-ssr/src/app/globals.css +278 -0
  588. package/examples/next-ssr/src/app/layout.tsx +34 -0
  589. package/examples/next-ssr/src/app/page.tsx +46 -0
  590. package/examples/next-ssr/src/app/providers.browser.test.tsx +127 -0
  591. package/examples/next-ssr/src/app/providers.test.tsx +73 -0
  592. package/examples/next-ssr/src/app/providers.tsx +60 -0
  593. package/examples/next-ssr/src/canisters/icrc1.envelope.json +840 -0
  594. package/examples/next-ssr/src/canisters/icrc1.ts +78 -0
  595. package/examples/next-ssr/src/components/BalanceTable.tsx +43 -0
  596. package/examples/next-ssr/src/components/LedgerCard.test.tsx +96 -0
  597. package/examples/next-ssr/src/components/LedgerCard.tsx +230 -0
  598. package/examples/next-ssr/src/components/LedgerError.tsx +32 -0
  599. package/examples/next-ssr/src/components/LedgerSections.tsx +22 -0
  600. package/examples/next-ssr/src/components/MyBalances.test.tsx +253 -0
  601. package/examples/next-ssr/src/components/MyBalances.tsx +129 -0
  602. package/examples/next-ssr/src/components/SessionBadge.tsx +18 -0
  603. package/examples/next-ssr/src/components/hydration.test.tsx +259 -0
  604. package/examples/next-ssr/src/components/server-data.ts +10 -0
  605. package/examples/next-ssr/src/format.ts +46 -0
  606. package/examples/next-ssr/src/ledgers.ts +38 -0
  607. package/examples/next-ssr/src/server/balance-route.test.ts +151 -0
  608. package/examples/next-ssr/src/server/balance-route.ts +157 -0
  609. package/examples/next-ssr/src/server/error-summary.test.ts +34 -0
  610. package/examples/next-ssr/src/server/error-summary.ts +37 -0
  611. package/examples/next-ssr/src/server/parse-owner.test.ts +39 -0
  612. package/examples/next-ssr/src/server/parse-owner.ts +34 -0
  613. package/examples/next-ssr/src/server/prefetch-ledgers.test.ts +137 -0
  614. package/examples/next-ssr/src/server/prefetch-ledgers.ts +70 -0
  615. package/examples/next-ssr/src/server/read-balances.test.ts +103 -0
  616. package/examples/next-ssr/src/server/read-balances.ts +78 -0
  617. package/examples/next-ssr/src/server/request-client.rsc.test.tsx +110 -0
  618. package/examples/next-ssr/src/server/request-client.ts +24 -0
  619. package/examples/next-ssr/src/testing/mock-ledgers.ts +115 -0
  620. package/examples/next-ssr/src/testing/react-server-dom-turbopack.d.ts +15 -0
  621. package/examples/next-ssr/src/testing/setup.ts +10 -0
  622. package/examples/next-ssr/tsconfig.json +31 -0
  623. package/examples/next-ssr/vitest.config.ts +59 -0
  624. package/examples/node-agent-tool/.stackblitzrc +4 -0
  625. package/examples/node-agent-tool/README.md +165 -0
  626. package/examples/node-agent-tool/icp.yaml +11 -0
  627. package/examples/node-agent-tool/icrc1.did +88 -0
  628. package/examples/node-agent-tool/package.json +32 -0
  629. package/examples/node-agent-tool/src/canisters/icrc1.envelope.json +840 -0
  630. package/examples/node-agent-tool/src/canisters/icrc1.ts +78 -0
  631. package/examples/node-agent-tool/src/cli.test.ts +64 -0
  632. package/examples/node-agent-tool/src/cli.ts +23 -0
  633. package/examples/node-agent-tool/src/command-line.ts +159 -0
  634. package/examples/node-agent-tool/src/commands/balance.ts +73 -0
  635. package/examples/node-agent-tool/src/commands/demo.test.ts +51 -0
  636. package/examples/node-agent-tool/src/commands/demo.ts +359 -0
  637. package/examples/node-agent-tool/src/commands/info.ts +69 -0
  638. package/examples/node-agent-tool/src/commands/reads.test.ts +133 -0
  639. package/examples/node-agent-tool/src/commands/resend.test.ts +363 -0
  640. package/examples/node-agent-tool/src/commands/transfer.test.ts +313 -0
  641. package/examples/node-agent-tool/src/commands/transfer.ts +415 -0
  642. package/examples/node-agent-tool/src/commands/watch.test.ts +159 -0
  643. package/examples/node-agent-tool/src/commands/watch.ts +135 -0
  644. package/examples/node-agent-tool/src/commands/whoami.ts +36 -0
  645. package/examples/node-agent-tool/src/context.ts +20 -0
  646. package/examples/node-agent-tool/src/dispatch.ts +70 -0
  647. package/examples/node-agent-tool/src/failure.test.ts +59 -0
  648. package/examples/node-agent-tool/src/failure.ts +176 -0
  649. package/examples/node-agent-tool/src/identity.test.ts +242 -0
  650. package/examples/node-agent-tool/src/identity.ts +228 -0
  651. package/examples/node-agent-tool/src/input.ts +110 -0
  652. package/examples/node-agent-tool/src/ledgers.test.ts +74 -0
  653. package/examples/node-agent-tool/src/ledgers.ts +62 -0
  654. package/examples/node-agent-tool/src/mock-ledger.ts +211 -0
  655. package/examples/node-agent-tool/src/network.test.ts +128 -0
  656. package/examples/node-agent-tool/src/network.ts +101 -0
  657. package/examples/node-agent-tool/src/output.test.ts +208 -0
  658. package/examples/node-agent-tool/src/output.ts +163 -0
  659. package/examples/node-agent-tool/src/run.ts +73 -0
  660. package/examples/node-agent-tool/src/test-kit.ts +167 -0
  661. package/examples/node-agent-tool/tsconfig.json +18 -0
  662. package/examples/node-agent-tool/vitest.config.ts +8 -0
  663. package/examples/vite-wallet/.stackblitzrc +4 -0
  664. package/examples/vite-wallet/Cargo.lock +646 -0
  665. package/examples/vite-wallet/Cargo.toml +5 -0
  666. package/examples/vite-wallet/README.md +107 -0
  667. package/examples/vite-wallet/backend/Cargo.toml +12 -0
  668. package/examples/vite-wallet/backend/backend.did +37 -0
  669. package/examples/vite-wallet/backend/src/lib.rs +133 -0
  670. package/examples/vite-wallet/icp.yaml +44 -0
  671. package/examples/vite-wallet/index.html +13 -0
  672. package/examples/vite-wallet/ledger.did +54 -0
  673. package/examples/vite-wallet/package.json +46 -0
  674. package/examples/vite-wallet/public/.ic-assets.json5 +26 -0
  675. package/examples/vite-wallet/scripts/faucet-args.test.ts +30 -0
  676. package/examples/vite-wallet/scripts/faucet-args.ts +41 -0
  677. package/examples/vite-wallet/scripts/faucet.ts +41 -0
  678. package/examples/vite-wallet/src/AddressBook.test.tsx +191 -0
  679. package/examples/vite-wallet/src/AddressBook.tsx +147 -0
  680. package/examples/vite-wallet/src/App.tsx +53 -0
  681. package/examples/vite-wallet/src/Balance.test.tsx +57 -0
  682. package/examples/vite-wallet/src/Balance.tsx +58 -0
  683. package/examples/vite-wallet/src/EnvironmentPanel.test.tsx +83 -0
  684. package/examples/vite-wallet/src/EnvironmentPanel.tsx +103 -0
  685. package/examples/vite-wallet/src/ErrorNote.tsx +70 -0
  686. package/examples/vite-wallet/src/Profile.test.tsx +145 -0
  687. package/examples/vite-wallet/src/Profile.tsx +92 -0
  688. package/examples/vite-wallet/src/SendIcp.test.tsx +231 -0
  689. package/examples/vite-wallet/src/SendIcp.tsx +244 -0
  690. package/examples/vite-wallet/src/SendToContact.test.tsx +113 -0
  691. package/examples/vite-wallet/src/SendToContact.tsx +102 -0
  692. package/examples/vite-wallet/src/SignIn.test.tsx +106 -0
  693. package/examples/vite-wallet/src/SignIn.tsx +120 -0
  694. package/examples/vite-wallet/src/Wallet.test.tsx +89 -0
  695. package/examples/vite-wallet/src/account-switch.test.tsx +108 -0
  696. package/examples/vite-wallet/src/auth/dev-accounts.test.ts +113 -0
  697. package/examples/vite-wallet/src/auth/dev-accounts.ts +216 -0
  698. package/examples/vite-wallet/src/auth/local-page.test.ts +28 -0
  699. package/examples/vite-wallet/src/auth/local-page.ts +20 -0
  700. package/examples/vite-wallet/src/auth/wallet-auth.test.ts +159 -0
  701. package/examples/vite-wallet/src/auth/wallet-auth.ts +131 -0
  702. package/examples/vite-wallet/src/canisters/backend.envelope.json +275 -0
  703. package/examples/vite-wallet/src/canisters/backend.ts +58 -0
  704. package/examples/vite-wallet/src/canisters/ledger.envelope.json +451 -0
  705. package/examples/vite-wallet/src/canisters/ledger.ts +56 -0
  706. package/examples/vite-wallet/src/client.ts +45 -0
  707. package/examples/vite-wallet/src/main.tsx +18 -0
  708. package/examples/vite-wallet/src/optimistic-contacts.ts +113 -0
  709. package/examples/vite-wallet/src/refusal.ts +17 -0
  710. package/examples/vite-wallet/src/styles.css +282 -0
  711. package/examples/vite-wallet/src/test/test-wallet.tsx +322 -0
  712. package/examples/vite-wallet/src/token.ts +50 -0
  713. package/examples/vite-wallet/src/transfer.test.ts +178 -0
  714. package/examples/vite-wallet/src/transfer.ts +110 -0
  715. package/examples/vite-wallet/src/use-canisters.ts +49 -0
  716. package/examples/vite-wallet/tsconfig.json +19 -0
  717. package/examples/vite-wallet/vite.config.ts +47 -0
  718. package/examples/vite-wallet/vitest.config.ts +17 -0
  719. package/package.json +9 -4
  720. package/packages/core/.size-limit.js +47 -0
  721. package/packages/core/LICENSE +21 -0
  722. package/packages/core/README.md +84 -0
  723. package/packages/core/llms.txt +610 -0
  724. package/packages/core/package.json +89 -0
  725. package/packages/core/src/call.ts +961 -0
  726. package/packages/core/src/canister.ts +259 -0
  727. package/packages/core/src/client.ts +2061 -0
  728. package/packages/core/src/errors.ts +1079 -0
  729. package/packages/core/src/hydration.ts +239 -0
  730. package/packages/core/src/index.ts +23 -0
  731. package/packages/core/src/keys.ts +108 -0
  732. package/packages/core/src/management.ts +138 -0
  733. package/packages/core/src/network.ts +1020 -0
  734. package/packages/core/src/options.ts +1000 -0
  735. package/packages/core/src/runtime.ts +50 -0
  736. package/packages/core/src/testing/fake-replica.ts +1166 -0
  737. package/packages/core/src/testing/index.ts +16 -0
  738. package/packages/core/src/testing/test-auth.ts +340 -0
  739. package/packages/core/src/testing/test-client.ts +559 -0
  740. package/packages/core/src/types.ts +541 -0
  741. package/packages/core/src/units.ts +299 -0
  742. package/packages/core/src/version.ts +4 -0
  743. package/packages/core/tests/canister-helpers.ts +187 -0
  744. package/packages/core/tests/canister-id.test.ts +158 -0
  745. package/packages/core/tests/canister-unwrap.test.ts +94 -0
  746. package/packages/core/tests/canister.test-d.ts +406 -0
  747. package/packages/core/tests/canister.test.ts +1921 -0
  748. package/packages/core/tests/client-account-change.test.ts +131 -0
  749. package/packages/core/tests/client-agents.test.ts +402 -0
  750. package/packages/core/tests/client-auth-network.test.ts +719 -0
  751. package/packages/core/tests/client-disposed.test.ts +403 -0
  752. package/packages/core/tests/client-helpers.ts +136 -0
  753. package/packages/core/tests/client-hydration.test.ts +166 -0
  754. package/packages/core/tests/client-pinned.test.ts +626 -0
  755. package/packages/core/tests/client-session.test.ts +348 -0
  756. package/packages/core/tests/client.test-d.ts +181 -0
  757. package/packages/core/tests/client.test.ts +1162 -0
  758. package/packages/core/tests/encode.test.ts +171 -0
  759. package/packages/core/tests/env-canister-id.test.ts +666 -0
  760. package/packages/core/tests/env-cookie-copies.test.ts +182 -0
  761. package/packages/core/tests/error-guard.test.ts +222 -0
  762. package/packages/core/tests/errors.test-d.ts +280 -0
  763. package/packages/core/tests/errors.test.ts +1359 -0
  764. package/packages/core/tests/fixtures/README.md +28 -0
  765. package/packages/core/tests/fixtures/accounts.did +21 -0
  766. package/packages/core/tests/fixtures/accounts.envelope.json +367 -0
  767. package/packages/core/tests/fixtures/accounts.ts +26 -0
  768. package/packages/core/tests/fixtures/archive.did +31 -0
  769. package/packages/core/tests/fixtures/archive.envelope.json +259 -0
  770. package/packages/core/tests/fixtures/archive.ts +55 -0
  771. package/packages/core/tests/fixtures/icrc1.did +88 -0
  772. package/packages/core/tests/fixtures/icrc1.envelope.json +840 -0
  773. package/packages/core/tests/fixtures/icrc1.ts +78 -0
  774. package/packages/core/tests/fixtures/management.did +724 -0
  775. package/packages/core/tests/fixtures/management.envelope.json +4455 -0
  776. package/packages/core/tests/fixtures/management.ts +486 -0
  777. package/packages/core/tests/fixtures/shapes.did +33 -0
  778. package/packages/core/tests/fixtures/shapes.envelope.json +440 -0
  779. package/packages/core/tests/fixtures/shapes.ts +56 -0
  780. package/packages/core/tests/fixtures/skippable.did +15 -0
  781. package/packages/core/tests/fixtures/skippable.envelope.json +182 -0
  782. package/packages/core/tests/fixtures/skippable.ts +33 -0
  783. package/packages/core/tests/func.test.ts +154 -0
  784. package/packages/core/tests/identity-attributes.test.ts +214 -0
  785. package/packages/core/tests/keys.test.ts +289 -0
  786. package/packages/core/tests/management.test.ts +206 -0
  787. package/packages/core/tests/network-helpers.ts +121 -0
  788. package/packages/core/tests/network.test-d.ts +78 -0
  789. package/packages/core/tests/network.test.ts +1051 -0
  790. package/packages/core/tests/options.test.ts +1594 -0
  791. package/packages/core/tests/redirect-sign-in.test.ts +393 -0
  792. package/packages/core/tests/resend.test-d.ts +81 -0
  793. package/packages/core/tests/resend.test.ts +723 -0
  794. package/packages/core/tests/skip.test-d.ts +125 -0
  795. package/packages/core/tests/testing-entry.test.ts +73 -0
  796. package/packages/core/tests/testing-fake-replica.test.ts +1242 -0
  797. package/packages/core/tests/testing-test-auth.test-d.ts +84 -0
  798. package/packages/core/tests/testing-test-auth.test.ts +483 -0
  799. package/packages/core/tests/testing-test-client.test-d.ts +184 -0
  800. package/packages/core/tests/testing-test-client.test.ts +1272 -0
  801. package/packages/core/tests/time-realm.test.ts +63 -0
  802. package/packages/core/tests/time.test.ts +238 -0
  803. package/packages/core/tests/traps/README.md +39 -0
  804. package/packages/core/tests/traps/anonymous-write.test.ts +145 -0
  805. package/packages/core/tests/traps/classification-table.test.ts +256 -0
  806. package/packages/core/tests/traps/err-arm.test.ts +144 -0
  807. package/packages/core/tests/traps/fetch-spy.ts +39 -0
  808. package/packages/core/tests/traps/invalidation-after-write.test.ts +178 -0
  809. package/packages/core/tests/traps/ledger.ts +248 -0
  810. package/packages/core/tests/traps/root-key-off-local.test.ts +130 -0
  811. package/packages/core/tests/traps/stale-data-across-users.test.ts +173 -0
  812. package/packages/core/tests/traps/unresolved-name.test.ts +155 -0
  813. package/packages/core/tests/traps/update-as-query.test.ts +244 -0
  814. package/packages/core/tests/traps/update-not-resent.test.ts +126 -0
  815. package/packages/core/tests/traps/update-resent-when-never-delivered.test.ts +159 -0
  816. package/packages/core/tests/traps.test-d.ts +476 -0
  817. package/packages/core/tests/units.test-d.ts +118 -0
  818. package/packages/core/tests/units.test.ts +634 -0
  819. package/packages/core/tsconfig.json +19 -0
  820. package/packages/core/tsconfig.typecheck.json +16 -0
  821. package/packages/core/vitest.config.ts +13 -0
  822. package/packages/mcp/LICENSE +21 -0
  823. package/packages/mcp/README.md +189 -0
  824. package/packages/mcp/package.json +62 -0
  825. package/packages/mcp/src/candid/candid-text.test.ts +455 -0
  826. package/packages/mcp/src/candid/candid-text.ts +501 -0
  827. package/packages/mcp/src/candid/contract.test.ts +398 -0
  828. package/packages/mcp/src/candid/formats.ts +155 -0
  829. package/packages/mcp/src/candid/hex.ts +29 -0
  830. package/packages/mcp/src/candid/json-schema.test.ts +758 -0
  831. package/packages/mcp/src/candid/json-schema.ts +454 -0
  832. package/packages/mcp/src/candid/json.test.ts +1207 -0
  833. package/packages/mcp/src/candid/json.ts +1053 -0
  834. package/packages/mcp/src/candid/schema-walk.ts +189 -0
  835. package/packages/mcp/src/candid/type-text.test.ts +179 -0
  836. package/packages/mcp/src/candid/type-text.ts +238 -0
  837. package/packages/mcp/src/cli.ts +134 -0
  838. package/packages/mcp/src/identity.ts +188 -0
  839. package/packages/mcp/src/interface/cache.test.ts +48 -0
  840. package/packages/mcp/src/interface/cache.ts +68 -0
  841. package/packages/mcp/src/interface/cli-cache.test.ts +150 -0
  842. package/packages/mcp/src/interface/cli-cache.ts +122 -0
  843. package/packages/mcp/src/interface/compile-worker.test.ts +246 -0
  844. package/packages/mcp/src/interface/compile-worker.ts +290 -0
  845. package/packages/mcp/src/interface/compile.test.ts +155 -0
  846. package/packages/mcp/src/interface/compile.ts +281 -0
  847. package/packages/mcp/src/interface/docs.test.ts +105 -0
  848. package/packages/mcp/src/interface/docs.ts +86 -0
  849. package/packages/mcp/src/interface/fixtures/icrc1.did +88 -0
  850. package/packages/mcp/src/interface/hex.ts +8 -0
  851. package/packages/mcp/src/interface/ids.test.ts +71 -0
  852. package/packages/mcp/src/interface/ids.ts +87 -0
  853. package/packages/mcp/src/interface/loader.test.ts +804 -0
  854. package/packages/mcp/src/interface/loader.ts +519 -0
  855. package/packages/mcp/src/interface/read-candid.test.ts +300 -0
  856. package/packages/mcp/src/interface/read-candid.ts +259 -0
  857. package/packages/mcp/src/interface/types.ts +113 -0
  858. package/packages/mcp/src/network.ts +122 -0
  859. package/packages/mcp/src/options.ts +149 -0
  860. package/packages/mcp/src/server/approval.ts +159 -0
  861. package/packages/mcp/src/server/naming.ts +43 -0
  862. package/packages/mcp/src/server/results.ts +102 -0
  863. package/packages/mcp/src/server/server.ts +797 -0
  864. package/packages/mcp/src/server/tools.ts +116 -0
  865. package/packages/mcp/src/usage.ts +40 -0
  866. package/packages/mcp/tests/approval.test.ts +60 -0
  867. package/packages/mcp/tests/identity.test.ts +234 -0
  868. package/packages/mcp/tests/naming.test.ts +62 -0
  869. package/packages/mcp/tests/options.test.ts +140 -0
  870. package/packages/mcp/tests/server.test.ts +997 -0
  871. package/packages/mcp/tsconfig.json +19 -0
  872. package/packages/mcp/tsconfig.typecheck.json +10 -0
  873. package/packages/mcp/vitest.config.ts +10 -0
  874. package/packages/react/LICENSE +21 -0
  875. package/packages/react/README.md +328 -0
  876. package/packages/react/llms.txt +95 -0
  877. package/packages/react/package.json +95 -0
  878. package/packages/react/src/index.tsx +678 -0
  879. package/packages/react/tests/abandoned-render.test.tsx +816 -0
  880. package/packages/react/tests/auth.test.tsx +315 -0
  881. package/packages/react/tests/caller-keys.test.tsx +2334 -0
  882. package/packages/react/tests/client-time.test.ts +40 -0
  883. package/packages/react/tests/entry.test.ts +52 -0
  884. package/packages/react/tests/helpers.tsx +291 -0
  885. package/packages/react/tests/hydration.test.tsx +262 -0
  886. package/packages/react/tests/ownership.test.tsx +260 -0
  887. package/packages/react/tests/provider.server.test.tsx +169 -0
  888. package/packages/react/tests/query-client.test.tsx +107 -0
  889. package/packages/react/tests/strict-mode.test.tsx +288 -0
  890. package/packages/react/tests/suspense.test-d.tsx +357 -0
  891. package/packages/react/tests/two-query-cores.test.tsx +135 -0
  892. package/packages/react/tests/types.test-d.tsx +63 -0
  893. package/packages/react/tsconfig.json +23 -0
  894. package/packages/react/tsconfig.test.json +8 -0
  895. package/packages/react/tsconfig.typecheck.json +16 -0
  896. package/packages/react/vitest.config.ts +39 -0
  897. package/packages/vite-plugin/LICENSE +21 -0
  898. package/packages/vite-plugin/README.md +532 -0
  899. package/packages/vite-plugin/package.json +76 -0
  900. package/packages/vite-plugin/src/describe-value.test.ts +43 -0
  901. package/packages/vite-plugin/src/describe-value.ts +167 -0
  902. package/packages/vite-plugin/src/dev-environment.test.ts +747 -0
  903. package/packages/vite-plugin/src/dev-environment.ts +510 -0
  904. package/packages/vite-plugin/src/env.ts +431 -0
  905. package/packages/vite-plugin/src/fetch.ts +348 -0
  906. package/packages/vite-plugin/src/file-identity.ts +106 -0
  907. package/packages/vite-plugin/src/generate.ts +691 -0
  908. package/packages/vite-plugin/src/index.test.ts +1243 -0
  909. package/packages/vite-plugin/src/index.ts +2565 -0
  910. package/packages/vite-plugin/src/interface.ts +339 -0
  911. package/packages/vite-plugin/src/local-host.ts +34 -0
  912. package/packages/vite-plugin/src/options.ts +641 -0
  913. package/packages/vite-plugin/src/principal-text.test.ts +87 -0
  914. package/packages/vite-plugin/src/principal-text.ts +98 -0
  915. package/packages/vite-plugin/tests/close.test.ts +141 -0
  916. package/packages/vite-plugin/tests/environment-mode.test.ts +136 -0
  917. package/packages/vite-plugin/tests/fake-ic.ts +214 -0
  918. package/packages/vite-plugin/tests/fetch-sdk.test.ts +27 -0
  919. package/packages/vite-plugin/tests/fetch.test.ts +1196 -0
  920. package/packages/vite-plugin/tests/fixtures/fake-cli/bin.js +90 -0
  921. package/packages/vite-plugin/tests/fixtures/fake-cli/package.json +8 -0
  922. package/packages/vite-plugin/tests/fixtures/icrc1.did +88 -0
  923. package/packages/vite-plugin/tests/generation.test.ts +1036 -0
  924. package/packages/vite-plugin/tests/icp-command.test.ts +194 -0
  925. package/packages/vite-plugin/tests/icp-timeout.test.ts +83 -0
  926. package/packages/vite-plugin/tests/no-process-exit.test.ts +83 -0
  927. package/packages/vite-plugin/tests/on-generated.test.ts +323 -0
  928. package/packages/vite-plugin/tests/output-collision.test.ts +329 -0
  929. package/packages/vite-plugin/tests/package.test.ts +62 -0
  930. package/packages/vite-plugin/tests/project.test.ts +2993 -0
  931. package/packages/vite-plugin/tests/support.ts +339 -0
  932. package/packages/vite-plugin/tests/timeout.test.ts +107 -0
  933. package/packages/vite-plugin/tsconfig.json +23 -0
  934. package/packages/vite-plugin/tsconfig.typecheck.json +16 -0
  935. package/packages/vite-plugin/vitest.config.ts +9 -0
  936. package/pnpm-workspace.yaml +23 -0
  937. package/scripts/ai-context-files.js +72 -0
  938. package/scripts/assemble-docs-site.mjs +485 -0
  939. package/scripts/assemble-docs-site.test.mjs +568 -0
  940. package/scripts/build-examples.js +58 -0
  941. package/scripts/check-ai-context.js +963 -0
  942. package/scripts/check-ai-context.test.mjs +811 -0
  943. package/scripts/check-exports.mjs +767 -0
  944. package/scripts/check-exports.test.mjs +1136 -0
  945. package/scripts/check-snippets/ambient.d.ts +428 -0
  946. package/scripts/check-snippets/app/generated/backend.did +7 -0
  947. package/scripts/check-snippets/app/generated/backend.ts +15 -0
  948. package/scripts/check-snippets/app/generated/icrc1.did +88 -0
  949. package/scripts/check-snippets/app/generated/icrc1.ts +78 -0
  950. package/scripts/check-snippets/app/globals.ts +26 -0
  951. package/scripts/check-snippets/docs/guides/App.tsx +21 -0
  952. package/scripts/check-snippets/docs/guides/app/providers.tsx +23 -0
  953. package/scripts/check-snippets/docs/guides/auth-client.ts +47 -0
  954. package/scripts/check-snippets/docs/guides/canisters/backend.ts +3 -0
  955. package/scripts/check-snippets/docs/guides/canisters/icrc1.ts +3 -0
  956. package/scripts/check-snippets/docs/guides/components/LedgerCard.tsx +26 -0
  957. package/scripts/check-snippets/docs/guides/components/shell.tsx +11 -0
  958. package/scripts/check-snippets/docs/guides/components/sign-in-page.tsx +29 -0
  959. package/scripts/check-snippets/docs/guides/components/slow-section.tsx +5 -0
  960. package/scripts/check-snippets/docs/guides/generated/accounts.ts +95 -0
  961. package/scripts/check-snippets/docs/guides/generated/ckbtc_minter.ts +40 -0
  962. package/scripts/check-snippets/docs/guides/generated/icp_ledger.ts +267 -0
  963. package/scripts/check-snippets/docs/guides/ledger.ts +10 -0
  964. package/scripts/check-snippets/docs/guides/server/request-client.ts +8 -0
  965. package/scripts/check-snippets.mjs +993 -0
  966. package/scripts/check-snippets.test.mjs +338 -0
  967. package/scripts/check-stack.mjs +501 -0
  968. package/scripts/check-stack.test.mjs +800 -0
  969. package/scripts/clean-node-modules.js +67 -0
  970. package/scripts/example-projects.js +58 -0
  971. package/scripts/export-budget.mjs +145 -0
  972. package/scripts/faults.json +6749 -0
  973. package/scripts/lib/fault-workspace.mjs +210 -0
  974. package/scripts/lib/io.mjs +29 -0
  975. package/scripts/lib/io.test.mjs +38 -0
  976. package/scripts/lib/markdown-fences.mjs +56 -0
  977. package/scripts/lib/markdown-fences.test.mjs +84 -0
  978. package/scripts/lib/package-exports.mjs +54 -0
  979. package/scripts/lib/package-exports.test.mjs +66 -0
  980. package/scripts/lib/release-pr-steps.mjs +47 -0
  981. package/scripts/release-tag.mjs +95 -0
  982. package/scripts/release-tag.test.mjs +278 -0
  983. package/scripts/release-workflow.test.mjs +98 -0
  984. package/scripts/release.js +167 -0
  985. package/scripts/release.test.mjs +347 -0
  986. package/scripts/removed-v3-names.js +125 -0
  987. package/scripts/size-app/.size-limit.js +90 -0
  988. package/scripts/size-app/core.js +3 -0
  989. package/scripts/size-app/package.json +24 -0
  990. package/scripts/size-app/react.js +4 -0
  991. package/scripts/size-app.test.mjs +73 -0
  992. package/scripts/sync-ai-context-versions.js +102 -0
  993. package/scripts/sync-example-versions.js +151 -0
  994. package/scripts/test-examples-published.mjs +1585 -0
  995. package/scripts/test-examples-published.test.mjs +1586 -0
  996. package/scripts/traps/any-method-vars-not-a-list.json +5 -0
  997. package/scripts/traps/canister-method-unknown.json +5 -0
  998. package/scripts/traps/client-says-who-calls-once.json +5 -0
  999. package/scripts/traps/client-says-who-calls.json +5 -0
  1000. package/scripts/traps/err-only-on-canister-err.json +14 -0
  1001. package/scripts/traps/format-units-refuses-missing-value.json +5 -0
  1002. package/scripts/traps/format-units-refuses-number.json +5 -0
  1003. package/scripts/traps/format-units-unknown-option.json +5 -0
  1004. package/scripts/traps/guard-err-is-the-methods.json +5 -0
  1005. package/scripts/traps/guard-false-keeps-every-kind.json +5 -0
  1006. package/scripts/traps/internals-not-exported.json +9 -0
  1007. package/scripts/traps/network-refuses-unknown-name.json +5 -0
  1008. package/scripts/traps/never-err-has-no-type.json +5 -0
  1009. package/scripts/traps/options-method-unknown.json +5 -0
  1010. package/scripts/traps/options-vars-wrong-type.json +5 -0
  1011. package/scripts/traps/parse-units-refuses-number.json +5 -0
  1012. package/scripts/traps/parse-units-unknown-option.json +5 -0
  1013. package/scripts/traps/principal-is-not-plain-text.json +14 -0
  1014. package/scripts/traps/query-options-refuses-oneway.json +5 -0
  1015. package/scripts/traps/query-options-refuses-update.json +5 -0
  1016. package/scripts/traps/refuse-next-unknown-option.json +5 -0
  1017. package/scripts/traps/resend-key-reads-the-methods-arg.json +5 -0
  1018. package/scripts/traps/resend-states-its-dedupe-key.json +5 -0
  1019. package/scripts/traps/suspense-refuses-argument-skip.json +5 -0
  1020. package/scripts/traps/suspense-refuses-skippable-read.json +5 -0
  1021. package/scripts/traps/suspense-refuses-vars-skip-fits.json +5 -0
  1022. package/scripts/traps/test-handler-method-unknown.json +5 -0
  1023. package/scripts/traps/test-handler-nat-is-bigint.json +5 -0
  1024. package/scripts/traps/test-handler-takes-the-domain-value.json +5 -0
  1025. package/scripts/traps/vars-of-two-arguments-are-the-tuple.json +5 -0
  1026. package/scripts/typecheck-examples.js +122 -0
  1027. package/scripts/verify-faults.mjs +375 -0
  1028. package/scripts/verify-faults.test.mjs +402 -0
  1029. package/scripts/verify-package-artifacts.mjs +590 -0
  1030. package/scripts/verify-peer-floors.js +399 -0
  1031. package/scripts/verify-peer-floors.test.mjs +422 -0
  1032. package/scripts/verify-test-fails-rules.mjs +104 -0
  1033. package/scripts/verify-test-fails-rules.test.mjs +215 -0
  1034. package/scripts/verify-test-fails.js +371 -0
  1035. package/scripts/verify-traps.mjs +505 -0
  1036. package/scripts/verify-traps.test.mjs +521 -0
  1037. package/scripts/verify-typescript-floor.js +239 -0
  1038. package/skill-packages/ic-reactor/SKILL.md +103 -0
  1039. package/stack.json +8 -0
  1040. package/tsconfig.base.json +23 -0
  1041. package/tsconfig.json +8 -0
@@ -0,0 +1,868 @@
1
+ // Generated by Meant from a Meant Contract. Do not edit.
2
+ import * as $ from "@meantjs/schema";
3
+
4
+ /** Represents an account on the ckBTC ledger. */
5
+ export type Account = { owner: $.Principal; subaccount: Uint8Array | null };
6
+ /** Represents an account on the ckBTC ledger. */
7
+ const $Account: $.Schema<Account> = $.c.rec(() => $.c.record({ owner: $.c.principal, subaccount: $.c.opt($.c.blob()) }));
8
+ export { $Account as Account };
9
+
10
+ export type BitcoinAddress = { tag: "p2wsh_v0"; value: Uint8Array } | { tag: "p2tr_v1"; value: Uint8Array } | { tag: "p2sh"; value: Uint8Array } | { tag: "p2wpkh_v0"; value: Uint8Array } | { tag: "p2pkh"; value: Uint8Array };
11
+ const $BitcoinAddress: $.Schema<BitcoinAddress> = $.c.rec(() => $.c.variant({ p2wsh_v0: $.c.blob(), p2tr_v1: $.c.blob(), p2sh: $.c.blob(), p2wpkh_v0: $.c.blob(), p2pkh: $.c.blob() }));
12
+ export { $BitcoinAddress as BitcoinAddress };
13
+
14
+ export type BtcNetwork =
15
+ | {
16
+ /** The public Bitcoin mainnet. */
17
+ tag: "Mainnet";
18
+ }
19
+ | {
20
+ /** A local Bitcoin regtest installation. */
21
+ tag: "Regtest";
22
+ }
23
+ | {
24
+ /** The public Bitcoin testnet. */
25
+ tag: "Testnet";
26
+ };
27
+ const $BtcNetwork: $.Schema<BtcNetwork> = $.c.rec(() => $.c.variant({ Mainnet: $.c.null, Regtest: $.c.null, Testnet: $.c.null }));
28
+ export { $BtcNetwork as BtcNetwork };
29
+
30
+ export type BurnMemo =
31
+ | {
32
+ /** The minter consolidated UTXOs. */
33
+ tag: "Consolidate";
34
+ value: {
35
+ /** The total value of the consolidated UTXOs. */
36
+ value: bigint;
37
+ /** The number of input UTXOs that were consolidated. */
38
+ inputs: bigint;
39
+ };
40
+ }
41
+ | {
42
+ /** The minter processed a retrieve_btc request. */
43
+ tag: "Convert";
44
+ value: {
45
+ /** The status of the Bitcoin check. */
46
+ status: Status | null;
47
+ /** The destination of the retrieve BTC request. */
48
+ address: string | null;
49
+ /** The check fee for the burn. */
50
+ kyt_fee: bigint | null;
51
+ };
52
+ };
53
+ const $BurnMemo: $.Schema<BurnMemo> = $.c.rec(() => $.c.variant({ Consolidate: $.c.record({ value: $.c.nat64, inputs: $.c.nat64 }), Convert: $.c.record({ status: $.c.opt($Status), address: $.c.opt($.c.text), kyt_fee: $.c.opt($.c.nat64) }) }));
54
+ export { $BurnMemo as BurnMemo };
55
+
56
+ export type CanisterStatusResponse = { memory_metrics: MemoryMetrics; status: CanisterStatusType; memory_size: bigint; ready_for_migration: boolean; version: bigint; cycles: bigint; settings: DefiniteCanisterSettings; query_stats: QueryStats; idle_cycles_burned_per_day: bigint; module_hash: Uint8Array | null; reserved_cycles: bigint };
57
+ const $CanisterStatusResponse: $.Schema<CanisterStatusResponse> = $.c.rec(() => $.c.record({ memory_metrics: $MemoryMetrics, status: $CanisterStatusType, memory_size: $.c.nat, ready_for_migration: $.c.bool, version: $.c.nat64, cycles: $.c.nat, settings: $DefiniteCanisterSettings, query_stats: $QueryStats, idle_cycles_burned_per_day: $.c.nat, module_hash: $.c.opt($.c.blob()), reserved_cycles: $.c.nat }));
58
+ export { $CanisterStatusResponse as CanisterStatusResponse };
59
+
60
+ export type CanisterStatusType = { tag: "stopped" } | { tag: "stopping" } | { tag: "running" };
61
+ const $CanisterStatusType: $.Schema<CanisterStatusType> = $.c.rec(() => $.c.variant({ stopped: $.c.null, stopping: $.c.null, running: $.c.null }));
62
+ export { $CanisterStatusType as CanisterStatusType };
63
+
64
+ export type DecodeLedgerMemoArgs = {
65
+ /** The encoded memo type */
66
+ memo_type: MemoType;
67
+ /** The encoded memo from a minter transaction on the ledger */
68
+ encoded_memo: Uint8Array;
69
+ };
70
+ const $DecodeLedgerMemoArgs: $.Schema<DecodeLedgerMemoArgs> = $.c.rec(() => $.c.record({ memo_type: $MemoType, encoded_memo: $.c.blob() }));
71
+ export { $DecodeLedgerMemoArgs as DecodeLedgerMemoArgs };
72
+
73
+ export type DecodeLedgerMemoError =
74
+ | {
75
+ /** The provided memo could not be decoded. */
76
+ tag: "InvalidMemo";
77
+ value: string;
78
+ };
79
+ const $DecodeLedgerMemoError: $.Schema<DecodeLedgerMemoError> = $.c.rec(() => $.c.variant({ InvalidMemo: $.c.text }));
80
+ export { $DecodeLedgerMemoError as DecodeLedgerMemoError };
81
+
82
+ export type DecodeLedgerMemoResult =
83
+ | {
84
+ /**
85
+ * The decoded memo, if the minter was able to decode it. This field is `opt`, so that other memo types can be
86
+ * added in the future.
87
+ */
88
+ tag: "Ok";
89
+ value: DecodedMemo | null;
90
+ }
91
+ | {
92
+ /**
93
+ * An error in case the minter was not able to decode the provided memo. This field is `opt`, so that other error
94
+ * types can be added in the future.
95
+ */
96
+ tag: "Err";
97
+ value: DecodeLedgerMemoError | null;
98
+ };
99
+ const $DecodeLedgerMemoResult: $.Schema<DecodeLedgerMemoResult> = $.c.rec(() => $.c.variant({ Ok: $.c.opt($DecodedMemo), Err: $.c.opt($DecodeLedgerMemoError) }));
100
+ export { $DecodeLedgerMemoResult as DecodeLedgerMemoResult };
101
+
102
+ export type DecodedMemo =
103
+ | {
104
+ /** The decoded BurnMemo - `opt` since other variants of `BurnMemo` could be added in the future. */
105
+ tag: "Burn";
106
+ value: BurnMemo | null;
107
+ }
108
+ | {
109
+ /** The decoded MintMemo - `opt` since other variants of `MintMemo` could be added in the future. */
110
+ tag: "Mint";
111
+ value: MintMemo | null;
112
+ };
113
+ const $DecodedMemo: $.Schema<DecodedMemo> = $.c.rec(() => $.c.variant({ Burn: $.c.opt($BurnMemo), Mint: $.c.opt($MintMemo) }));
114
+ export { $DecodedMemo as DecodedMemo };
115
+
116
+ export type DefiniteCanisterSettings = { freezing_threshold: bigint; wasm_memory_threshold: bigint; environment_variables: Array<environment_variable>; controllers: Array<$.Principal>; reserved_cycles_limit: bigint; log_visibility: LogVisibility; wasm_memory_limit: bigint; memory_allocation: bigint; compute_allocation: bigint };
117
+ const $DefiniteCanisterSettings: $.Schema<DefiniteCanisterSettings> = $.c.rec(() => $.c.record({ freezing_threshold: $.c.nat, wasm_memory_threshold: $.c.nat, environment_variables: $.c.vec($environment_variable), controllers: $.c.vec($.c.principal), reserved_cycles_limit: $.c.nat, log_visibility: $LogVisibility, wasm_memory_limit: $.c.nat, memory_allocation: $.c.nat, compute_allocation: $.c.nat }));
118
+ export { $DefiniteCanisterSettings as DefiniteCanisterSettings };
119
+
120
+ export type Event = { timestamp: bigint | null; payload: EventType };
121
+ const $Event: $.Schema<Event> = $.c.rec(() => $.c.record({ timestamp: $.c.opt($.c.nat64), payload: $EventType }));
122
+ export { $Event as Event };
123
+
124
+ export type EventType = { tag: "received_utxos"; value: { to_account: Account; mint_txid: bigint | null; utxos: Array<Utxo> } } | { tag: "schedule_deposit_reimbursement"; value: { burn_block_index: bigint; account: Account; amount: bigint; reason: ReimbursementReason } } | { tag: "sent_transaction"; value: { fee: bigint | null; change_output: { value: bigint; vout: number } | null; txid: Uint8Array; signed_tx: Uint8Array | null; withdrawal_fee: WithdrawalFee | null; utxos: Array<Utxo>; requests: Array<bigint>; submitted_at: bigint } } | { tag: "distributed_kyt_fee"; value: { block_index: bigint; amount: bigint; kyt_provider: $.Principal } } | { tag: "init"; value: InitArgs } | { tag: "upgrade"; value: UpgradeArgs } | { tag: "retrieve_btc_kyt_failed"; value: { block_index: bigint; owner: $.Principal; uuid: string; address: string; amount: bigint; kyt_provider: $.Principal } } | { tag: "suspended_utxo"; value: { utxo: Utxo; account: Account; reason: SuspendedReason } } | { tag: "accepted_retrieve_btc_request"; value: { received_at: bigint; block_index: bigint; address: BitcoinAddress; reimbursement_account: Account | null; amount: bigint; kyt_provider: $.Principal | null } } | { tag: "checked_utxo"; value: { clean: boolean; utxo: Utxo; uuid: string; kyt_provider: $.Principal | null } } | { tag: "schedule_withdrawal_reimbursement"; value: { burn_block_index: bigint; account: Account; amount: bigint; reason: WithdrawalReimbursementReason } } | { tag: "quarantined_withdrawal_reimbursement"; value: { burn_block_index: bigint } } | { tag: "removed_retrieve_btc_request"; value: RetrieveBtcOk } | { tag: "confirmed_transaction"; value: { txid: Uint8Array } } | { tag: "replaced_transaction"; value: { fee: bigint; change_output: { value: bigint; vout: number }; new_utxos: Array<Utxo> | null; old_txid: Uint8Array; withdrawal_fee: WithdrawalFee | null; new_txid: Uint8Array; submitted_at: bigint; reason: ReplacedReason | null } } | { tag: "checked_utxo_v2"; value: { utxo: Utxo; account: Account } } | { tag: "ignored_utxo"; value: { utxo: Utxo } } | { tag: "checked_utxo_mint_unknown"; value: { utxo: Utxo; account: Account } } | { tag: "created_consolidate_utxos_request"; value: { received_at: bigint; block_index: bigint; address: BitcoinAddress; amount: bigint } } | { tag: "reimbursed_failed_deposit"; value: { burn_block_index: bigint; mint_block_index: bigint } } | { tag: "reimbursed_withdrawal"; value: { burn_block_index: bigint; mint_block_index: bigint } };
125
+ const $EventType: $.Schema<EventType> = $.c.rec(() => $.c.variant({ received_utxos: $.c.record({ to_account: $Account, mint_txid: $.c.opt($.c.nat64), utxos: $.c.vec($Utxo) }), schedule_deposit_reimbursement: $.c.record({ burn_block_index: $.c.nat64, account: $Account, amount: $.c.nat64, reason: $ReimbursementReason }), sent_transaction: $.c.record({ fee: $.c.opt($.c.nat64), change_output: $.c.opt($.c.record({ value: $.c.nat64, vout: $.c.nat32 })), txid: $.c.blob(), signed_tx: $.c.opt($.c.blob()), withdrawal_fee: $.c.opt($WithdrawalFee), utxos: $.c.vec($Utxo), requests: $.c.vec($.c.nat64), submitted_at: $.c.nat64 }), distributed_kyt_fee: $.c.record({ block_index: $.c.nat64, amount: $.c.nat64, kyt_provider: $.c.principal }), init: $InitArgs, upgrade: $UpgradeArgs, retrieve_btc_kyt_failed: $.c.record({ block_index: $.c.nat64, owner: $.c.principal, uuid: $.c.text, address: $.c.text, amount: $.c.nat64, kyt_provider: $.c.principal }), suspended_utxo: $.c.record({ utxo: $Utxo, account: $Account, reason: $SuspendedReason }), accepted_retrieve_btc_request: $.c.record({ received_at: $.c.nat64, block_index: $.c.nat64, address: $BitcoinAddress, reimbursement_account: $.c.opt($Account), amount: $.c.nat64, kyt_provider: $.c.opt($.c.principal) }), checked_utxo: $.c.record({ clean: $.c.bool, utxo: $Utxo, uuid: $.c.text, kyt_provider: $.c.opt($.c.principal) }), schedule_withdrawal_reimbursement: $.c.record({ burn_block_index: $.c.nat64, account: $Account, amount: $.c.nat64, reason: $WithdrawalReimbursementReason }), quarantined_withdrawal_reimbursement: $.c.record({ burn_block_index: $.c.nat64 }), removed_retrieve_btc_request: $RetrieveBtcOk, confirmed_transaction: $.c.record({ txid: $.c.blob() }), replaced_transaction: $.c.record({ fee: $.c.nat64, change_output: $.c.record({ value: $.c.nat64, vout: $.c.nat32 }), new_utxos: $.c.opt($.c.vec($Utxo)), old_txid: $.c.blob(), withdrawal_fee: $.c.opt($WithdrawalFee), new_txid: $.c.blob(), submitted_at: $.c.nat64, reason: $.c.opt($ReplacedReason) }), checked_utxo_v2: $.c.record({ utxo: $Utxo, account: $Account }), ignored_utxo: $.c.record({ utxo: $Utxo }), checked_utxo_mint_unknown: $.c.record({ utxo: $Utxo, account: $Account }), created_consolidate_utxos_request: $.c.record({ received_at: $.c.nat64, block_index: $.c.nat64, address: $BitcoinAddress, amount: $.c.nat64 }), reimbursed_failed_deposit: $.c.record({ burn_block_index: $.c.nat64, mint_block_index: $.c.nat64 }), reimbursed_withdrawal: $.c.record({ burn_block_index: $.c.nat64, mint_block_index: $.c.nat64 }) }));
126
+ export { $EventType as EventType };
127
+
128
+ /** ICRC-10 supported standards record. */
129
+ export type Icrc10StandardRecord = { url: string; name: string };
130
+ /** ICRC-10 supported standards record. */
131
+ const $Icrc10StandardRecord: $.Schema<Icrc10StandardRecord> = $.c.rec(() => $.c.record({ url: $.c.text, name: $.c.text }));
132
+ export { $Icrc10StandardRecord as Icrc10StandardRecord };
133
+
134
+ export type Icrc21ConsentInfo = { metadata: Icrc21ConsentMessageMetadata; consent_message: Icrc21ConsentMessage };
135
+ const $Icrc21ConsentInfo: $.Schema<Icrc21ConsentInfo> = $.c.rec(() => $.c.record({ metadata: $Icrc21ConsentMessageMetadata, consent_message: $Icrc21ConsentMessage }));
136
+ export { $Icrc21ConsentInfo as Icrc21ConsentInfo };
137
+
138
+ export type Icrc21ConsentMessage = { tag: "FieldsDisplayMessage"; value: Icrc21FieldsDisplay } | { tag: "GenericDisplayMessage"; value: string };
139
+ const $Icrc21ConsentMessage: $.Schema<Icrc21ConsentMessage> = $.c.rec(() => $.c.variant({ FieldsDisplayMessage: $Icrc21FieldsDisplay, GenericDisplayMessage: $.c.text }));
140
+ export { $Icrc21ConsentMessage as Icrc21ConsentMessage };
141
+
142
+ /** ICRC-21 Canister Call Consent Message types. */
143
+ export type Icrc21ConsentMessageMetadata = { utc_offset_minutes: number | null; language: string };
144
+ /** ICRC-21 Canister Call Consent Message types. */
145
+ const $Icrc21ConsentMessageMetadata: $.Schema<Icrc21ConsentMessageMetadata> = $.c.rec(() => $.c.record({ utc_offset_minutes: $.c.opt($.c.int16), language: $.c.text }));
146
+ export { $Icrc21ConsentMessageMetadata as Icrc21ConsentMessageMetadata };
147
+
148
+ export type Icrc21ConsentMessageRequest = { arg: Uint8Array; method: string; user_preferences: Icrc21ConsentMessageSpec };
149
+ const $Icrc21ConsentMessageRequest: $.Schema<Icrc21ConsentMessageRequest> = $.c.rec(() => $.c.record({ arg: $.c.blob(), method: $.c.text, user_preferences: $Icrc21ConsentMessageSpec }));
150
+ export { $Icrc21ConsentMessageRequest as Icrc21ConsentMessageRequest };
151
+
152
+ export type Icrc21ConsentMessageSpec = { metadata: Icrc21ConsentMessageMetadata; device_spec: Icrc21DeviceSpec | null };
153
+ const $Icrc21ConsentMessageSpec: $.Schema<Icrc21ConsentMessageSpec> = $.c.rec(() => $.c.record({ metadata: $Icrc21ConsentMessageMetadata, device_spec: $.c.opt($Icrc21DeviceSpec) }));
154
+ export { $Icrc21ConsentMessageSpec as Icrc21ConsentMessageSpec };
155
+
156
+ export type Icrc21DeviceSpec = { tag: "GenericDisplay" } | { tag: "FieldsDisplay" };
157
+ const $Icrc21DeviceSpec: $.Schema<Icrc21DeviceSpec> = $.c.rec(() => $.c.variant({ GenericDisplay: $.c.null, FieldsDisplay: $.c.null }));
158
+ export { $Icrc21DeviceSpec as Icrc21DeviceSpec };
159
+
160
+ export type Icrc21Error = { tag: "GenericError"; value: { description: string; error_code: bigint } } | { tag: "InsufficientPayment"; value: Icrc21ErrorInfo } | { tag: "UnsupportedCanisterCall"; value: Icrc21ErrorInfo } | { tag: "ConsentMessageUnavailable"; value: Icrc21ErrorInfo };
161
+ const $Icrc21Error: $.Schema<Icrc21Error> = $.c.rec(() => $.c.variant({ GenericError: $.c.record({ description: $.c.text, error_code: $.c.nat }), InsufficientPayment: $Icrc21ErrorInfo, UnsupportedCanisterCall: $Icrc21ErrorInfo, ConsentMessageUnavailable: $Icrc21ErrorInfo }));
162
+ export { $Icrc21Error as Icrc21Error };
163
+
164
+ export type Icrc21ErrorInfo = { description: string };
165
+ const $Icrc21ErrorInfo: $.Schema<Icrc21ErrorInfo> = $.c.rec(() => $.c.record({ description: $.c.text }));
166
+ export { $Icrc21ErrorInfo as Icrc21ErrorInfo };
167
+
168
+ export type Icrc21FieldsDisplay = { fields: Array<[string, Icrc21Value]>; intent: string };
169
+ const $Icrc21FieldsDisplay: $.Schema<Icrc21FieldsDisplay> = $.c.rec(() => $.c.record({ fields: $.c.vec($.c.tuple([$.c.text, $Icrc21Value])), intent: $.c.text }));
170
+ export { $Icrc21FieldsDisplay as Icrc21FieldsDisplay };
171
+
172
+ export type Icrc21Value = { tag: "Text"; value: { content: string } } | { tag: "TokenAmount"; value: { decimals: number; amount: bigint; symbol: string } } | { tag: "TimestampSeconds"; value: { amount: bigint } } | { tag: "DurationSeconds"; value: { amount: bigint } };
173
+ const $Icrc21Value: $.Schema<Icrc21Value> = $.c.rec(() => $.c.variant({ Text: $.c.record({ content: $.c.text }), TokenAmount: $.c.record({ decimals: $.c.nat8, amount: $.c.nat64, symbol: $.c.text }), TimestampSeconds: $.c.record({ amount: $.c.nat64 }), DurationSeconds: $.c.record({ amount: $.c.nat64 }) }));
174
+ export { $Icrc21Value as Icrc21Value };
175
+
176
+ /** The initialization parameters of the minter canister. */
177
+ export type InitArgs = {
178
+ /** The expiration duration (in seconds) for cached entries in the get_utxos cache. */
179
+ get_utxos_cache_expiration_seconds: bigint | null;
180
+ /** The canister id of the KYT canister (deprecated, use btc_checker_principal instead). */
181
+ kyt_principal: $.Principal | null;
182
+ /**
183
+ * The name of the ECDSA key to use.
184
+ * E.g., "dfx_test_key" on the local replica.
185
+ */
186
+ ecdsa_key_name: string;
187
+ /** The minter's operation mode. */
188
+ mode: Mode;
189
+ /** The minimal amount of ckBTC that can be converted to BTC. */
190
+ retrieve_btc_min_amount: bigint;
191
+ /**
192
+ * The minimal amount of BTC that can be converted to ckBTC.
193
+ * UTXOs with lower values will be ignored.
194
+ */
195
+ deposit_btc_min_amount: bigint | null;
196
+ /**
197
+ * The principal of the ledger that handles ckBTC transfers.
198
+ * The default account of the ckBTC minter must be configured as
199
+ * the minting account of the ledger.
200
+ */
201
+ ledger_id: $.Principal;
202
+ /**
203
+ * Maximum time in nanoseconds that a transaction should spend in the queue
204
+ * before being sent.
205
+ */
206
+ max_time_in_queue_nanos: bigint;
207
+ /** The minter will interact with this Bitcoin network. */
208
+ btc_network: BtcNetwork;
209
+ /** The fee paid per Bitcoin check. */
210
+ check_fee: bigint | null;
211
+ /** The maximum number of input UTXOs allowed in a transaction. */
212
+ max_num_inputs_in_transaction: bigint | null;
213
+ /** The minimum number of available UTXOs to trigger a consolidation. */
214
+ utxo_consolidation_threshold: bigint | null;
215
+ /** The canister id of the Bitcoin checker canister. */
216
+ btc_checker_principal: $.Principal | null;
217
+ /**
218
+ * The minimum number of confirmations required for the minter to
219
+ * accept a Bitcoin transaction.
220
+ */
221
+ min_confirmations: number | null;
222
+ /** The fee paid per check by the KYT canister (deprecated, use check_fee instead). */
223
+ kyt_fee: bigint | null;
224
+ };
225
+ /** The initialization parameters of the minter canister. */
226
+ const $InitArgs: $.Schema<InitArgs> = $.c.rec(() => $.c.record({ get_utxos_cache_expiration_seconds: $.c.opt($.c.nat64), kyt_principal: $.c.opt($.c.principal), ecdsa_key_name: $.c.text, mode: $Mode, retrieve_btc_min_amount: $.c.nat64, deposit_btc_min_amount: $.c.opt($.c.nat64), ledger_id: $.c.principal, max_time_in_queue_nanos: $.c.nat64, btc_network: $BtcNetwork, check_fee: $.c.opt($.c.nat64), max_num_inputs_in_transaction: $.c.opt($.c.nat64), utxo_consolidation_threshold: $.c.opt($.c.nat64), btc_checker_principal: $.c.opt($.c.principal), min_confirmations: $.c.opt($.c.nat32), kyt_fee: $.c.opt($.c.nat64) }));
227
+ export { $InitArgs as InitArgs };
228
+
229
+ export type InvalidTransactionError = { tag: "too_many_inputs"; value: { max_num_inputs: bigint; num_inputs: bigint } };
230
+ const $InvalidTransactionError: $.Schema<InvalidTransactionError> = $.c.rec(() => $.c.variant({ too_many_inputs: $.c.record({ max_num_inputs: $.c.nat64, num_inputs: $.c.nat64 }) }));
231
+ export { $InvalidTransactionError as InvalidTransactionError };
232
+
233
+ export type LogVisibility = { tag: "controllers" } | { tag: "public" } | { tag: "allowed_viewers"; value: Array<$.Principal> };
234
+ const $LogVisibility: $.Schema<LogVisibility> = $.c.rec(() => $.c.variant({ controllers: $.c.null, public: $.c.null, allowed_viewers: $.c.vec($.c.principal) }));
235
+ export { $LogVisibility as LogVisibility };
236
+
237
+ export type MemoType = { tag: "Burn" } | { tag: "Mint" };
238
+ const $MemoType: $.Schema<MemoType> = $.c.rec(() => $.c.variant({ Burn: $.c.null, Mint: $.c.null }));
239
+ export { $MemoType as MemoType };
240
+
241
+ export type MemoryMetrics = { wasm_binary_size: bigint; wasm_chunk_store_size: bigint; canister_history_size: bigint; stable_memory_size: bigint; snapshots_size: bigint; wasm_memory_size: bigint; global_memory_size: bigint; custom_sections_size: bigint };
242
+ const $MemoryMetrics: $.Schema<MemoryMetrics> = $.c.rec(() => $.c.record({ wasm_binary_size: $.c.nat, wasm_chunk_store_size: $.c.nat, canister_history_size: $.c.nat, stable_memory_size: $.c.nat, snapshots_size: $.c.nat, wasm_memory_size: $.c.nat, global_memory_size: $.c.nat, custom_sections_size: $.c.nat }));
243
+ export { $MemoryMetrics as MemoryMetrics };
244
+
245
+ export type MintMemo =
246
+ | {
247
+ /** [deprecated] The minter minted accumulated check fees to the KYT provider. */
248
+ tag: "Kyt";
249
+ }
250
+ | {
251
+ tag: "ReimburseWithdrawal";
252
+ value: {
253
+ /**
254
+ * The id corresponding to the withdrawal request,
255
+ * which corresponds to the ledger burn index.
256
+ */
257
+ withdrawal_id: bigint;
258
+ };
259
+ }
260
+ | {
261
+ /**
262
+ * [deprecated] The minter failed to check retrieve btc destination address
263
+ * or the destination address is tainted.
264
+ */
265
+ tag: "KytFail";
266
+ value: {
267
+ /** The status of the Bitcoin check. */
268
+ status: Status | null;
269
+ associated_burn_index: bigint | null;
270
+ /** The Bitcoin check fee. */
271
+ kyt_fee: bigint | null;
272
+ };
273
+ }
274
+ | {
275
+ /** The minter converted a single UTXO to ckBTC. */
276
+ tag: "Convert";
277
+ value: {
278
+ /** The transaction ID of the accepted UTXO. */
279
+ txid: Uint8Array | null;
280
+ /** UTXO's output index within the BTC transaction. */
281
+ vout: number | null;
282
+ /** The Bitcoin check fee. */
283
+ kyt_fee: bigint | null;
284
+ };
285
+ };
286
+ const $MintMemo: $.Schema<MintMemo> = $.c.rec(() => $.c.variant({ Kyt: $.c.null, ReimburseWithdrawal: $.c.record({ withdrawal_id: $.c.nat64 }), KytFail: $.c.record({ status: $.c.opt($Status), associated_burn_index: $.c.opt($.c.nat64), kyt_fee: $.c.opt($.c.nat64) }), Convert: $.c.record({ txid: $.c.opt($.c.blob()), vout: $.c.opt($.c.nat32), kyt_fee: $.c.opt($.c.nat64) }) }));
287
+ export { $MintMemo as MintMemo };
288
+
289
+ export type MinterArg = { tag: "Upgrade"; value: UpgradeArgs | null } | { tag: "Init"; value: InitArgs };
290
+ const $MinterArg: $.Schema<MinterArg> = $.c.rec(() => $.c.variant({ Upgrade: $.c.opt($UpgradeArgs), Init: $InitArgs }));
291
+ export { $MinterArg as MinterArg };
292
+
293
+ export type MinterInfo = {
294
+ /**
295
+ * This amount is based on the `retrieve_btc_min_amount` setting during canister
296
+ * initialization or upgrades, but may vary according to current network fees.
297
+ */
298
+ retrieve_btc_min_amount: bigint;
299
+ /**
300
+ * Minimal amount of BTC that can be deposited to be converted into ckBTC.
301
+ * UTXOs with lower values will be ignored.
302
+ */
303
+ deposit_btc_min_amount: bigint | null;
304
+ min_confirmations: number;
305
+ /** The same as `check_fee`, but the old name is kept here to be backward compatible. */
306
+ kyt_fee: bigint;
307
+ };
308
+ const $MinterInfo: $.Schema<MinterInfo> = $.c.rec(() => $.c.record({ retrieve_btc_min_amount: $.c.nat64, deposit_btc_min_amount: $.c.opt($.c.nat64), min_confirmations: $.c.nat32, kyt_fee: $.c.nat64 }));
309
+ export { $MinterInfo as MinterInfo };
310
+
311
+ export type Mode =
312
+ | {
313
+ /** Only specified principals can modify minter's state. */
314
+ tag: "RestrictedTo";
315
+ value: Array<$.Principal>;
316
+ }
317
+ | {
318
+ /** Only specified principals can convert BTC to ckBTC. */
319
+ tag: "DepositsRestrictedTo";
320
+ value: Array<$.Principal>;
321
+ }
322
+ | {
323
+ /** The minter does not allow any state modifications. */
324
+ tag: "ReadOnly";
325
+ }
326
+ | {
327
+ /** Anyone can interact with the minter. */
328
+ tag: "GeneralAvailability";
329
+ };
330
+ const $Mode: $.Schema<Mode> = $.c.rec(() => $.c.variant({ RestrictedTo: $.c.vec($.c.principal), DepositsRestrictedTo: $.c.vec($.c.principal), ReadOnly: $.c.null, GeneralAvailability: $.c.null }));
331
+ export { $Mode as Mode };
332
+
333
+ /** Utxos that don't have enough confirmations to be processed. */
334
+ export type PendingUtxo = { confirmations: number; value: bigint; outpoint: { txid: Uint8Array; vout: number } };
335
+ /** Utxos that don't have enough confirmations to be processed. */
336
+ const $PendingUtxo: $.Schema<PendingUtxo> = $.c.rec(() => $.c.record({ confirmations: $.c.nat32, value: $.c.nat64, outpoint: $.c.record({ txid: $.c.blob(), vout: $.c.nat32 }) }));
337
+ export { $PendingUtxo as PendingUtxo };
338
+
339
+ export type QueryStats = { response_payload_bytes_total: bigint; num_instructions_total: bigint; num_calls_total: bigint; request_payload_bytes_total: bigint };
340
+ const $QueryStats: $.Schema<QueryStats> = $.c.rec(() => $.c.record({ response_payload_bytes_total: $.c.nat, num_instructions_total: $.c.nat, num_calls_total: $.c.nat, request_payload_bytes_total: $.c.nat }));
341
+ export { $QueryStats as QueryStats };
342
+
343
+ export type ReimbursedDeposit = { account: Account; mint_block_index: bigint; amount: bigint; reason: ReimbursementReason };
344
+ const $ReimbursedDeposit: $.Schema<ReimbursedDeposit> = $.c.rec(() => $.c.record({ account: $Account, mint_block_index: $.c.nat64, amount: $.c.nat64, reason: $ReimbursementReason }));
345
+ export { $ReimbursedDeposit as ReimbursedDeposit };
346
+
347
+ export type ReimbursementReason = { tag: "CallFailed" } | { tag: "TaintedDestination"; value: { kyt_fee: bigint; kyt_provider: $.Principal } };
348
+ const $ReimbursementReason: $.Schema<ReimbursementReason> = $.c.rec(() => $.c.variant({ CallFailed: $.c.null, TaintedDestination: $.c.record({ kyt_fee: $.c.nat64, kyt_provider: $.c.principal }) }));
349
+ export { $ReimbursementReason as ReimbursementReason };
350
+
351
+ export type ReimbursementRequest = { account: Account; amount: bigint; reason: ReimbursementReason };
352
+ const $ReimbursementRequest: $.Schema<ReimbursementRequest> = $.c.rec(() => $.c.record({ account: $Account, amount: $.c.nat64, reason: $ReimbursementReason }));
353
+ export { $ReimbursementRequest as ReimbursementRequest };
354
+
355
+ export type ReplacedReason = { tag: "to_cancel"; value: { reason: WithdrawalReimbursementReason } } | { tag: "to_retry" };
356
+ const $ReplacedReason: $.Schema<ReplacedReason> = $.c.rec(() => $.c.variant({ to_cancel: $.c.record({ reason: $WithdrawalReimbursementReason }), to_retry: $.c.null }));
357
+ export { $ReplacedReason as ReplacedReason };
358
+
359
+ export type RetrieveBtcArgs = {
360
+ /** The address to which the ckBTC minter should deposit BTC. */
361
+ address: string;
362
+ /** The amount of ckBTC in Satoshis that the client wants to withdraw. */
363
+ amount: bigint;
364
+ };
365
+ const $RetrieveBtcArgs: $.Schema<RetrieveBtcArgs> = $.c.rec(() => $.c.record({ address: $.c.text, amount: $.c.nat64 }));
366
+ export { $RetrieveBtcArgs as RetrieveBtcArgs };
367
+
368
+ export type RetrieveBtcError =
369
+ | {
370
+ /** The minter failed to parse the destination address. */
371
+ tag: "MalformedAddress";
372
+ value: string;
373
+ }
374
+ | {
375
+ /** A generic error reserved for future extensions. */
376
+ tag: "GenericError";
377
+ value: { error_message: string; error_code: bigint };
378
+ }
379
+ | {
380
+ /**
381
+ * The minter is overloaded, retry the request.
382
+ * The payload contains a human-readable message explaining what caused the unavailability.
383
+ */
384
+ tag: "TemporarilyUnavailable";
385
+ value: string;
386
+ }
387
+ | {
388
+ /**
389
+ * The minter is already processing another retrieval request for the same
390
+ * principal.
391
+ */
392
+ tag: "AlreadyProcessing";
393
+ }
394
+ | {
395
+ /**
396
+ * The withdrawal amount is too low.
397
+ * The payload contains the minimal withdrawal amount.
398
+ */
399
+ tag: "AmountTooLow";
400
+ value: bigint;
401
+ }
402
+ | {
403
+ /** The ckBTC balance of the withdrawal account is too low. */
404
+ tag: "InsufficientFunds";
405
+ value: { balance: bigint };
406
+ };
407
+ const $RetrieveBtcError: $.Schema<RetrieveBtcError> = $.c.rec(() => $.c.variant({ MalformedAddress: $.c.text, GenericError: $.c.record({ error_message: $.c.text, error_code: $.c.nat64 }), TemporarilyUnavailable: $.c.text, AlreadyProcessing: $.c.null, AmountTooLow: $.c.nat64, InsufficientFunds: $.c.record({ balance: $.c.nat64 }) }));
408
+ export { $RetrieveBtcError as RetrieveBtcError };
409
+
410
+ export type RetrieveBtcOk = {
411
+ /**
412
+ * Returns the burn transaction index corresponding to the withdrawal.
413
+ * You can use this index to query the withdrawal status.
414
+ */
415
+ block_index: bigint;
416
+ };
417
+ const $RetrieveBtcOk: $.Schema<RetrieveBtcOk> = $.c.rec(() => $.c.record({ block_index: $.c.nat64 }));
418
+ export { $RetrieveBtcOk as RetrieveBtcOk };
419
+
420
+ export type RetrieveBtcStatus =
421
+ | {
422
+ /**
423
+ * The minter is obtaining all required ECDSA signatures on the
424
+ * Bitcoin transaction for this request.
425
+ */
426
+ tag: "Signing";
427
+ }
428
+ | {
429
+ /**
430
+ * The minter received enough confirmations for the Bitcoin
431
+ * transaction for this request. The payload contains the
432
+ * identifier of the transaction on the Bitcoin network.
433
+ */
434
+ tag: "Confirmed";
435
+ value: { txid: Uint8Array };
436
+ }
437
+ | {
438
+ /**
439
+ * The minter signed the transaction and is waiting for a reply
440
+ * from the Bitcoin canister.
441
+ */
442
+ tag: "Sending";
443
+ value: { txid: Uint8Array };
444
+ }
445
+ | {
446
+ /** The amount was too low to cover the transaction fees. */
447
+ tag: "AmountTooLow";
448
+ }
449
+ | {
450
+ /**
451
+ * The minter does not have any information on the specified
452
+ * retrieval request. It can be that nobody submitted the
453
+ * request or the minter pruned the relevant information from the
454
+ * history to save space.
455
+ */
456
+ tag: "Unknown";
457
+ }
458
+ | {
459
+ /**
460
+ * The minter sent a transaction for the retrieve request.
461
+ * The payload contains the identifier of the transaction on the Bitcoin network.
462
+ */
463
+ tag: "Submitted";
464
+ value: { txid: Uint8Array };
465
+ }
466
+ | {
467
+ /** The minter did not send a Bitcoin transaction for this request yet. */
468
+ tag: "Pending";
469
+ };
470
+ const $RetrieveBtcStatus: $.Schema<RetrieveBtcStatus> = $.c.rec(() => $.c.variant({ Signing: $.c.null, Confirmed: $.c.record({ txid: $.c.blob() }), Sending: $.c.record({ txid: $.c.blob() }), AmountTooLow: $.c.null, Unknown: $.c.null, Submitted: $.c.record({ txid: $.c.blob() }), Pending: $.c.null }));
471
+ export { $RetrieveBtcStatus as RetrieveBtcStatus };
472
+
473
+ export type RetrieveBtcStatusV2 =
474
+ | {
475
+ /**
476
+ * The minter is obtaining all required ECDSA signatures on the
477
+ * Bitcoin transaction for this request.
478
+ */
479
+ tag: "Signing";
480
+ }
481
+ | {
482
+ /**
483
+ * The minter received enough confirmations for the Bitcoin
484
+ * transaction for this request. The payload contains the
485
+ * identifier of the transaction on the Bitcoin network.
486
+ */
487
+ tag: "Confirmed";
488
+ value: { txid: Uint8Array };
489
+ }
490
+ | {
491
+ /**
492
+ * The minter signed the transaction and is waiting for a reply
493
+ * from the Bitcoin canister.
494
+ */
495
+ tag: "Sending";
496
+ value: { txid: Uint8Array };
497
+ }
498
+ | {
499
+ /** The amount was too low to cover the transaction fees. */
500
+ tag: "AmountTooLow";
501
+ }
502
+ | {
503
+ /** The minter will try to reimburse this transaction. */
504
+ tag: "WillReimburse";
505
+ value: ReimbursementRequest;
506
+ }
507
+ | {
508
+ /**
509
+ * The minter does not have any information on the specified
510
+ * retrieval request. It can be that nobody submitted the
511
+ * request or the minter pruned the relevant information from the
512
+ * history to save space.
513
+ */
514
+ tag: "Unknown";
515
+ }
516
+ | {
517
+ /**
518
+ * The minter sent a transaction for the retrieve request.
519
+ * The payload contains the identifier of the transaction on the Bitcoin network.
520
+ */
521
+ tag: "Submitted";
522
+ value: { txid: Uint8Array };
523
+ }
524
+ | {
525
+ /** The retrieve Bitcoin request has been reimbursed. */
526
+ tag: "Reimbursed";
527
+ value: ReimbursedDeposit;
528
+ }
529
+ | {
530
+ /** The minter did not send a Bitcoin transaction for this request yet. */
531
+ tag: "Pending";
532
+ };
533
+ const $RetrieveBtcStatusV2: $.Schema<RetrieveBtcStatusV2> = $.c.rec(() => $.c.variant({ Signing: $.c.null, Confirmed: $.c.record({ txid: $.c.blob() }), Sending: $.c.record({ txid: $.c.blob() }), AmountTooLow: $.c.null, WillReimburse: $ReimbursementRequest, Unknown: $.c.null, Submitted: $.c.record({ txid: $.c.blob() }), Reimbursed: $ReimbursedDeposit, Pending: $.c.null }));
534
+ export { $RetrieveBtcStatusV2 as RetrieveBtcStatusV2 };
535
+
536
+ export type RetrieveBtcWithApprovalArgs = {
537
+ /** The subaccount to burn ckBTC from. */
538
+ from_subaccount: Uint8Array | null;
539
+ /** The address to which the ckBTC minter should deposit BTC. */
540
+ address: string;
541
+ /** The amount of ckBTC in Satoshis that the client wants to withdraw. */
542
+ amount: bigint;
543
+ };
544
+ const $RetrieveBtcWithApprovalArgs: $.Schema<RetrieveBtcWithApprovalArgs> = $.c.rec(() => $.c.record({ from_subaccount: $.c.opt($.c.blob()), address: $.c.text, amount: $.c.nat64 }));
545
+ export { $RetrieveBtcWithApprovalArgs as RetrieveBtcWithApprovalArgs };
546
+
547
+ export type RetrieveBtcWithApprovalError =
548
+ | {
549
+ /** The minter failed to parse the destination address. */
550
+ tag: "MalformedAddress";
551
+ value: string;
552
+ }
553
+ | {
554
+ /** A generic error reserved for future extensions. */
555
+ tag: "GenericError";
556
+ value: { error_message: string; error_code: bigint };
557
+ }
558
+ | {
559
+ /**
560
+ * The minter is overloaded, retry the request.
561
+ * The payload contains a human-readable message explaining what caused the unavailability.
562
+ */
563
+ tag: "TemporarilyUnavailable";
564
+ value: string;
565
+ }
566
+ | {
567
+ /** The allowance given to the minter is too low. */
568
+ tag: "InsufficientAllowance";
569
+ value: { allowance: bigint };
570
+ }
571
+ | {
572
+ /**
573
+ * The minter is already processing another retrieval request for the same
574
+ * principal.
575
+ */
576
+ tag: "AlreadyProcessing";
577
+ }
578
+ | {
579
+ /**
580
+ * The withdrawal amount is too low.
581
+ * The payload contains the minimal withdrawal amount.
582
+ */
583
+ tag: "AmountTooLow";
584
+ value: bigint;
585
+ }
586
+ | {
587
+ /** The ckBTC balance of the withdrawal account is too low. */
588
+ tag: "InsufficientFunds";
589
+ value: { balance: bigint };
590
+ };
591
+ const $RetrieveBtcWithApprovalError: $.Schema<RetrieveBtcWithApprovalError> = $.c.rec(() => $.c.variant({ MalformedAddress: $.c.text, GenericError: $.c.record({ error_message: $.c.text, error_code: $.c.nat64 }), TemporarilyUnavailable: $.c.text, InsufficientAllowance: $.c.record({ allowance: $.c.nat64 }), AlreadyProcessing: $.c.null, AmountTooLow: $.c.nat64, InsufficientFunds: $.c.record({ balance: $.c.nat64 }) }));
592
+ export { $RetrieveBtcWithApprovalError as RetrieveBtcWithApprovalError };
593
+
594
+ export type Status =
595
+ | { tag: "CallFailed" }
596
+ | {
597
+ /** The minter rejected a retrieve_btc due to a failed Bitcoin check. */
598
+ tag: "Rejected";
599
+ }
600
+ | {
601
+ /** The minter accepted a retrieve_btc request. */
602
+ tag: "Accepted";
603
+ };
604
+ const $Status: $.Schema<Status> = $.c.rec(() => $.c.variant({ CallFailed: $.c.null, Rejected: $.c.null, Accepted: $.c.null }));
605
+ export { $Status as Status };
606
+
607
+ export type SuspendedReason =
608
+ | {
609
+ /**
610
+ * The minter ignored this UTXO because UTXO's value is too small to pay
611
+ * the check fees.
612
+ */
613
+ tag: "ValueTooSmall";
614
+ }
615
+ | {
616
+ /** The Bitcoin checker considered this UTXO to be tainted. */
617
+ tag: "Quarantined";
618
+ };
619
+ const $SuspendedReason: $.Schema<SuspendedReason> = $.c.rec(() => $.c.variant({ ValueTooSmall: $.c.null, Quarantined: $.c.null }));
620
+ export { $SuspendedReason as SuspendedReason };
621
+
622
+ export type SuspendedUtxo = { utxo: Utxo; earliest_retry: bigint; reason: SuspendedReason };
623
+ const $SuspendedUtxo: $.Schema<SuspendedUtxo> = $.c.rec(() => $.c.record({ utxo: $Utxo, earliest_retry: $.c.nat64, reason: $SuspendedReason }));
624
+ export { $SuspendedUtxo as SuspendedUtxo };
625
+
626
+ /** Number of nanoseconds since the Unix Epoch */
627
+ export type Timestamp = bigint;
628
+ /** Number of nanoseconds since the Unix Epoch */
629
+ const $Timestamp: $.Schema<Timestamp> = $.c.rec(() => $.c.nat64);
630
+ export { $Timestamp as Timestamp };
631
+
632
+ export type UpdateBalanceError =
633
+ | {
634
+ /** A generic error reserved for future extensions. */
635
+ tag: "GenericError";
636
+ value: { error_message: string; error_code: bigint };
637
+ }
638
+ | {
639
+ /**
640
+ * The minter is overloaded, retry the request.
641
+ * The payload contains a human-readable message explaining what caused the unavailability.
642
+ */
643
+ tag: "TemporarilyUnavailable";
644
+ value: string;
645
+ }
646
+ | {
647
+ /** The minter is already processing another update balance request for the caller. */
648
+ tag: "AlreadyProcessing";
649
+ }
650
+ | {
651
+ /** There are no new UTXOs to process. */
652
+ tag: "NoNewUtxos";
653
+ value: { suspended_utxos: Array<SuspendedUtxo> | null; required_confirmations: number; pending_utxos: Array<PendingUtxo> | null; current_confirmations: number | null };
654
+ };
655
+ const $UpdateBalanceError: $.Schema<UpdateBalanceError> = $.c.rec(() => $.c.variant({ GenericError: $.c.record({ error_message: $.c.text, error_code: $.c.nat64 }), TemporarilyUnavailable: $.c.text, AlreadyProcessing: $.c.null, NoNewUtxos: $.c.record({ suspended_utxos: $.c.opt($.c.vec($SuspendedUtxo)), required_confirmations: $.c.nat32, pending_utxos: $.c.opt($.c.vec($PendingUtxo)), current_confirmations: $.c.opt($.c.nat32) }) }));
656
+ export { $UpdateBalanceError as UpdateBalanceError };
657
+
658
+ /** The upgrade parameters of the minter canister. */
659
+ export type UpgradeArgs = {
660
+ /** The expiration duration (in seconds) for cached entries in the get_utxos cache. */
661
+ get_utxos_cache_expiration_seconds: bigint | null;
662
+ /** The canister id of the KYT canister (deprecated, use btc_checker_principal instead). */
663
+ kyt_principal: $.Principal | null;
664
+ /** If set, overrides the current minter's operation mode. */
665
+ mode: Mode | null;
666
+ /** The minimal amount of ckBTC that the minter converts to BTC. */
667
+ retrieve_btc_min_amount: bigint | null;
668
+ /**
669
+ * The minimal amount of BTC that can be converted to ckBTC.
670
+ * UTXOs with lower values will be ignored.
671
+ */
672
+ deposit_btc_min_amount: bigint | null;
673
+ /**
674
+ * Maximum time in nanoseconds that a transaction should spend in the queue
675
+ * before being sent.
676
+ */
677
+ max_time_in_queue_nanos: bigint | null;
678
+ /** The fee per Bitcoin check. */
679
+ check_fee: bigint | null;
680
+ /** The maximum number of input UTXOs allowed in a transaction. */
681
+ max_num_inputs_in_transaction: bigint | null;
682
+ /** The minimum number of available UTXOs to trigger a consolidation. */
683
+ utxo_consolidation_threshold: bigint | null;
684
+ /** The principal of the Bitcoin checker canister. */
685
+ btc_checker_principal: $.Principal | null;
686
+ /**
687
+ * The minimum number of confirmations required for the minter to
688
+ * accept a Bitcoin transaction.
689
+ */
690
+ min_confirmations: number | null;
691
+ /** The fee paid per check by the KYT canister (deprecated, use check_fee instead). */
692
+ kyt_fee: bigint | null;
693
+ };
694
+ /** The upgrade parameters of the minter canister. */
695
+ const $UpgradeArgs: $.Schema<UpgradeArgs> = $.c.rec(() => $.c.record({ get_utxos_cache_expiration_seconds: $.c.opt($.c.nat64), kyt_principal: $.c.opt($.c.principal), mode: $.c.opt($Mode), retrieve_btc_min_amount: $.c.opt($.c.nat64), deposit_btc_min_amount: $.c.opt($.c.nat64), max_time_in_queue_nanos: $.c.opt($.c.nat64), check_fee: $.c.opt($.c.nat64), max_num_inputs_in_transaction: $.c.opt($.c.nat64), utxo_consolidation_threshold: $.c.opt($.c.nat64), btc_checker_principal: $.c.opt($.c.principal), min_confirmations: $.c.opt($.c.nat32), kyt_fee: $.c.opt($.c.nat64) }));
696
+ export { $UpgradeArgs as UpgradeArgs };
697
+
698
+ export type Utxo = { height: number; value: bigint; outpoint: { txid: Uint8Array; vout: number } };
699
+ const $Utxo: $.Schema<Utxo> = $.c.rec(() => $.c.record({ height: $.c.nat32, value: $.c.nat64, outpoint: $.c.record({ txid: $.c.blob(), vout: $.c.nat32 }) }));
700
+ export { $Utxo as Utxo };
701
+
702
+ /** The result of an [update_balance] call. */
703
+ export type UtxoStatus =
704
+ | {
705
+ /**
706
+ * The minter ignored this UTXO because UTXO's value is too small to pay
707
+ * the check fees.
708
+ */
709
+ tag: "ValueTooSmall";
710
+ value: Utxo;
711
+ }
712
+ | {
713
+ /** The Bitcoin checker considered this UTXO to be tainted. */
714
+ tag: "Tainted";
715
+ value: Utxo;
716
+ }
717
+ | {
718
+ /** The UTXO passed the Bitcoin check, and ckBTC has been minted. */
719
+ tag: "Minted";
720
+ value: { minted_amount: bigint; block_index: bigint; utxo: Utxo };
721
+ }
722
+ | {
723
+ /**
724
+ * The UTXO passed the Bitcoin check, but the minter failed to mint ckBTC
725
+ * because the Ledger was unavailable. Retrying the [update_balance] call
726
+ * should eventually advance the UTXO to the [Minted] state.
727
+ */
728
+ tag: "Checked";
729
+ value: Utxo;
730
+ };
731
+ /** The result of an [update_balance] call. */
732
+ const $UtxoStatus: $.Schema<UtxoStatus> = $.c.rec(() => $.c.variant({ ValueTooSmall: $Utxo, Tainted: $Utxo, Minted: $.c.record({ minted_amount: $.c.nat64, block_index: $.c.nat64, utxo: $Utxo }), Checked: $Utxo }));
733
+ export { $UtxoStatus as UtxoStatus };
734
+
735
+ export type WithdrawalFee = { minter_fee: bigint; bitcoin_fee: bigint };
736
+ const $WithdrawalFee: $.Schema<WithdrawalFee> = $.c.rec(() => $.c.record({ minter_fee: $.c.nat64, bitcoin_fee: $.c.nat64 }));
737
+ export { $WithdrawalFee as WithdrawalFee };
738
+
739
+ export type WithdrawalReimbursementReason = { tag: "invalid_transaction"; value: InvalidTransactionError };
740
+ const $WithdrawalReimbursementReason: $.Schema<WithdrawalReimbursementReason> = $.c.rec(() => $.c.variant({ invalid_transaction: $InvalidTransactionError }));
741
+ export { $WithdrawalReimbursementReason as WithdrawalReimbursementReason };
742
+
743
+ export type environment_variable = { value: string; name: string };
744
+ const $environment_variable: $.Schema<environment_variable> = $.c.rec(() => $.c.record({ value: $.c.text, name: $.c.text }));
745
+ export { $environment_variable as environment_variable };
746
+
747
+ const $actor: $.Schema<$.Principal> = $.c.rec(() => $.c.service({ get_minter_info: $.c.func([], [$MinterInfo], "query"), get_withdrawal_account: $.c.func([], [$Account], "update"), get_canister_status: $.c.func([], [$CanisterStatusResponse], "update"), decode_ledger_memo: $.c.func([$DecodeLedgerMemoArgs], [$DecodeLedgerMemoResult], "query"), retrieve_btc_status: $.c.func([$RetrieveBtcOk], [$RetrieveBtcStatus], "query"), retrieve_btc_status_v2_by_account: $.c.func([$.c.opt($Account)], [$.c.vec($.c.record({ block_index: $.c.nat64, status_v2: $.c.opt($RetrieveBtcStatusV2) }))], "query"), get_events: $.c.func([$.c.record({ start: $.c.nat64, length: $.c.nat64 })], [$.c.vec($Event)], "query"), estimate_withdrawal_fee: $.c.func([$.c.record({ amount: $.c.opt($.c.nat64) })], [$WithdrawalFee], "query"), get_btc_address: $.c.func([$.c.record({ owner: $.c.opt($.c.principal), subaccount: $.c.opt($.c.blob()) })], [$.c.text], "update"), retrieve_btc: $.c.func([$RetrieveBtcArgs], [$.c.variant({ Ok: $RetrieveBtcOk, Err: $RetrieveBtcError })], "update"), update_balance: $.c.func([$.c.record({ owner: $.c.opt($.c.principal), subaccount: $.c.opt($.c.blob()) })], [$.c.variant({ Ok: $.c.vec($UtxoStatus), Err: $UpdateBalanceError })], "update"), get_deposit_fee: $.c.func([], [$.c.nat64], "query"), icrc10_supported_standards: $.c.func([], [$.c.vec($Icrc10StandardRecord)], "query"), get_known_utxos: $.c.func([$.c.record({ owner: $.c.opt($.c.principal), subaccount: $.c.opt($.c.blob()) })], [$.c.vec($Utxo)], "query"), retrieve_btc_status_v2: $.c.func([$RetrieveBtcOk], [$RetrieveBtcStatusV2], "query"), retrieve_btc_with_approval: $.c.func([$RetrieveBtcWithApprovalArgs], [$.c.variant({ Ok: $RetrieveBtcOk, Err: $RetrieveBtcWithApprovalError })], "update"), icrc21_canister_call_consent_message: $.c.func([$Icrc21ConsentMessageRequest], [$.c.variant({ Ok: $Icrc21ConsentInfo, Err: $Icrc21Error })], "update") }));
748
+ export type Actor = {
749
+ /**
750
+ * Section "Minter Information" {{{
751
+ * Returns internal minter parameters.
752
+ */
753
+ get_minter_info: (() => Promise<MinterInfo>) & $.WithMode<"query">;
754
+ /**
755
+ * Returns the account to which the caller should deposit ckBTC
756
+ * before withdrawing BTC using the [retrieve_btc] endpoint.
757
+ */
758
+ get_withdrawal_account: (() => Promise<Account>) & $.WithMode<"update">;
759
+ get_canister_status: (() => Promise<CanisterStatusResponse>) & $.WithMode<"update">;
760
+ /**
761
+ * Section "Transaction Information" {{{
762
+ * Returns information related to minter transactions.
763
+ */
764
+ decode_ledger_memo: ((arg0: DecodeLedgerMemoArgs) => Promise<DecodeLedgerMemoResult>) & $.WithMode<"query">;
765
+ /**
766
+ * [deprecated] Returns the status of a withdrawal request.
767
+ * You should use retrieve_btc_status_v2 to retrieve the status of your withdrawal request.
768
+ */
769
+ retrieve_btc_status: ((arg0: RetrieveBtcOk) => Promise<RetrieveBtcStatus>) & $.WithMode<"query">;
770
+ /**
771
+ * Returns the withdrawal statues by account.
772
+ *
773
+ * # Note
774
+ * The _v2_ part indicates that you get a response in line with the retrieve_btc_status_v2 endpoint,
775
+ * i.e., you get a vector of RetrieveBtcStatusV2 and not RetrieveBtcStatus.
776
+ */
777
+ retrieve_btc_status_v2_by_account: ((arg0: Account | null) => Promise<Array<{ block_index: bigint; status_v2: RetrieveBtcStatusV2 | null }>>) & $.WithMode<"query">;
778
+ /**
779
+ * The minter keeps track of all state modifications in an internal event log.
780
+ *
781
+ * This method returns a list of events in the specified range.
782
+ * The minter can return fewer events than requested. The result is
783
+ * an empty vector if the start position is greater than the total
784
+ * number of events.
785
+ *
786
+ * NOTE: this method exists for debugging purposes.
787
+ * The ckBTC minter authors do not guarantee backward compatibility for this method.
788
+ */
789
+ get_events: ((arg0: { start: bigint; length: bigint }) => Promise<Array<Event>>) & $.WithMode<"query">;
790
+ /**
791
+ * Returns an estimate of the user's fee (in Satoshi) for a
792
+ * retrieve_btc request based on the current status of the Bitcoin network.
793
+ */
794
+ estimate_withdrawal_fee: ((arg0: { amount: bigint | null }) => Promise<WithdrawalFee>) & $.WithMode<"query">;
795
+ /**
796
+ * Returns the Bitcoin address to which the owner should send BTC
797
+ * before converting the amount to ckBTC using the [update_balance]
798
+ * endpoint.
799
+ *
800
+ * If the owner is not set, it defaults to the caller's principal.
801
+ * The resolved owner must be a non-anonymous principal.
802
+ */
803
+ get_btc_address: ((arg0: { owner: $.Principal | null; subaccount: Uint8Array | null }) => Promise<string>) & $.WithMode<"update">;
804
+ /**
805
+ * Submits a request to convert ckBTC to BTC.
806
+ *
807
+ * # Note
808
+ *
809
+ * The BTC retrieval process is slow. Instead of
810
+ * synchronously waiting for a BTC transaction to settle, this
811
+ * method returns a request ([block_index]) that the caller can use
812
+ * to query the request status.
813
+ *
814
+ * # Preconditions
815
+ *
816
+ * * The caller deposited the requested amount in ckBTC to the account
817
+ * that the [get_withdrawal_account] endpoint returns.
818
+ */
819
+ retrieve_btc: ((arg0: RetrieveBtcArgs) => Promise<{ tag: "Ok"; value: RetrieveBtcOk } | { tag: "Err"; value: RetrieveBtcError }>) & $.WithMode<"update">;
820
+ /**
821
+ * Mints ckBTC for newly deposited UTXOs.
822
+ *
823
+ * If the owner is not set, it defaults to the caller's principal.
824
+ *
825
+ * # Preconditions
826
+ *
827
+ * * The owner deposited some BTC to the address that the
828
+ * [get_btc_address] endpoint returns.
829
+ */
830
+ update_balance: ((arg0: { owner: $.Principal | null; subaccount: Uint8Array | null }) => Promise<{ tag: "Ok"; value: Array<UtxoStatus> } | { tag: "Err"; value: UpdateBalanceError }>) & $.WithMode<"update">;
831
+ /** Returns the fee that the minter will charge for a bitcoin deposit. */
832
+ get_deposit_fee: (() => Promise<bigint>) & $.WithMode<"query">;
833
+ /** Returns the list of supported ICRC standards. */
834
+ icrc10_supported_standards: (() => Promise<Array<Icrc10StandardRecord>>) & $.WithMode<"query">;
835
+ /**
836
+ * Returns UTXOs of the given account known by the minter (with no
837
+ * guarantee in the ordering of the returned values).
838
+ *
839
+ * If the owner is not set, it defaults to the caller's principal.
840
+ */
841
+ get_known_utxos: ((arg0: { owner: $.Principal | null; subaccount: Uint8Array | null }) => Promise<Array<Utxo>>) & $.WithMode<"query">;
842
+ /** Returns the status of a withdrawal request request using the RetrieveBtcStatusV2 type. */
843
+ retrieve_btc_status_v2: ((arg0: RetrieveBtcOk) => Promise<RetrieveBtcStatusV2>) & $.WithMode<"query">;
844
+ /**
845
+ * Submits a request to convert ckBTC to BTC.
846
+ *
847
+ * # Note
848
+ *
849
+ * The BTC retrieval process is slow. Instead of
850
+ * synchronously waiting for a BTC transaction to settle, this
851
+ * method returns a request ([block_index]) that the caller can use
852
+ * to query the request status.
853
+ *
854
+ * # Preconditions
855
+ *
856
+ * * The caller allowed the minter's principal to spend its funds
857
+ * using [icrc2_approve] on the ckBTC ledger.
858
+ */
859
+ retrieve_btc_with_approval: ((arg0: RetrieveBtcWithApprovalArgs) => Promise<{ tag: "Ok"; value: RetrieveBtcOk } | { tag: "Err"; value: RetrieveBtcWithApprovalError }>) & $.WithMode<"update">;
860
+ /**
861
+ * Returns a human-readable consent message describing the requested
862
+ * canister call. See the ICRC-21 standard for details:
863
+ * https://github.com/dfinity/ICRC/blob/main/ICRCs/ICRC-21/ICRC-21.md
864
+ */
865
+ icrc21_canister_call_consent_message: ((arg0: Icrc21ConsentMessageRequest) => Promise<{ tag: "Ok"; value: Icrc21ConsentInfo } | { tag: "Err"; value: Icrc21Error }>) & $.WithMode<"update">;
866
+ };
867
+ export { $actor as actor };
868
+ // Note: the actor is a service class; init args are install-time metadata not exposed here (issue #104).