@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.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +108 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +77 -0
- package/.github/actions/setup-rust-wasm/action.yml +25 -0
- package/.github/dependabot.yml +107 -0
- package/.github/workflows/auth-latest.yml +67 -0
- package/.github/workflows/b3pay-site.yml +49 -0
- package/.github/workflows/ci.yml +430 -0
- package/.github/workflows/codeql.yml +41 -0
- package/.github/workflows/dependency-review.yml +68 -0
- package/.github/workflows/docs-check.yml +98 -0
- package/.github/workflows/docs.yml +265 -0
- package/.github/workflows/e2e.yml +90 -0
- package/.github/workflows/examples-published.yml +97 -0
- package/.github/workflows/release.yml +326 -0
- package/.husky/pre-commit +12 -0
- package/.prettierignore +109 -0
- package/.prettierrc +6 -0
- package/AGENTS.md +103 -0
- package/CHANGELOG.md +3268 -0
- package/CLAUDE.md +93 -0
- package/CNAME +1 -0
- package/CODE_OF_CONDUCT.md +7 -0
- package/CONTRIBUTING.md +433 -0
- package/LICENSE +21 -0
- package/README.md +2 -2
- package/SECURITY.md +74 -0
- package/b3pay-module.json +194 -0
- package/docs/.remarkrc.json +10 -0
- package/docs/README.md +64 -0
- package/docs/astro.config.mjs +205 -0
- package/docs/favicon.svg +15 -0
- package/docs/package.json +39 -0
- package/docs/public/favicon.svg +15 -0
- package/docs/public/ic-reactor-social-card.png +0 -0
- package/docs/scripts/b3pay-static.mjs +22 -0
- package/docs/scripts/check-example-docs.mjs +214 -0
- package/docs/scripts/check-links.mjs +212 -0
- package/docs/scripts/fix-dist-links.js +125 -0
- package/docs/scripts/fix-frontmatter.js +71 -0
- package/docs/scripts/remove-redundant-h1.cjs +48 -0
- package/docs/scripts/rewrite-typedoc-links.js +110 -0
- package/docs/scripts/split-index.js +69 -0
- package/docs/src/assets/ic-reactor-hero-dark.svg +23 -0
- package/docs/src/assets/ic-reactor-hero-light.svg +23 -0
- package/docs/src/assets/ic-reactor-lockup-dark.svg +15 -0
- package/docs/src/assets/ic-reactor-lockup-light.svg +15 -0
- package/docs/src/assets/ic-reactor-mark-dark.svg +14 -0
- package/docs/src/assets/ic-reactor-mark-light.svg +14 -0
- package/docs/src/assets/layers/candid-core-layer-icon-dark.svg +4 -0
- package/docs/src/assets/layers/candid-core-layer-icon-light.svg +4 -0
- package/docs/src/assets/layers/candid-profile-layer-icon-dark.svg +4 -0
- package/docs/src/assets/layers/candid-profile-layer-icon-light.svg +4 -0
- package/docs/src/assets/layers/ic-reactor-layer-icon-dark.svg +4 -0
- package/docs/src/assets/layers/ic-reactor-layer-icon-light.svg +4 -0
- package/docs/src/components/LibraryCards.astro +172 -0
- package/docs/src/components/LibraryIcon.astro +28 -0
- package/docs/src/components/SiteTitle.astro +241 -0
- package/docs/src/content/docs/404.mdx +19 -0
- package/docs/src/content/docs/build/agent-tools.mdx +593 -0
- package/docs/src/content/docs/build/icrc1-wallet.mdx +619 -0
- package/docs/src/content/docs/build/ssr-per-user.mdx +552 -0
- package/docs/src/content/docs/examples/canister-studio.mdx +95 -0
- package/docs/src/content/docs/examples/icrc-ledger.mdx +45 -0
- package/docs/src/content/docs/examples/index.mdx +38 -0
- package/docs/src/content/docs/examples/next-ssr.mdx +73 -0
- package/docs/src/content/docs/examples/node-agent-tool.mdx +80 -0
- package/docs/src/content/docs/examples/vite-wallet.mdx +71 -0
- package/docs/src/content/docs/guides/auth.mdx +1181 -0
- package/docs/src/content/docs/guides/client.mdx +551 -0
- package/docs/src/content/docs/guides/deploy.mdx +180 -0
- package/docs/src/content/docs/guides/errors.mdx +475 -0
- package/docs/src/content/docs/guides/getting-started.mdx +620 -0
- package/docs/src/content/docs/guides/reads.mdx +586 -0
- package/docs/src/content/docs/guides/ssr.mdx +529 -0
- package/docs/src/content/docs/guides/testing.mdx +401 -0
- package/docs/src/content/docs/guides/values.mdx +261 -0
- package/docs/src/content/docs/guides/vite-plugin.mdx +690 -0
- package/docs/src/content/docs/guides/writes.mdx +572 -0
- package/docs/src/content/docs/ic-reactor/index.mdx +167 -0
- package/docs/src/content/docs/index.mdx +65 -0
- package/docs/src/content/docs/migrating-from-3.mdx +535 -0
- package/docs/src/content/docs/packages/core.mdx +186 -0
- package/docs/src/content/docs/packages/mcp.mdx +163 -0
- package/docs/src/content/docs/packages/react.mdx +207 -0
- package/docs/src/content/docs/packages/vite-plugin.mdx +73 -0
- package/docs/src/content/docs/versioning.mdx +104 -0
- package/docs/src/content.config.ts +7 -0
- package/docs/src/styles/custom.css +189 -0
- package/docs/tsconfig.typedoc.json +26 -0
- package/docs/typedoc-entry.ts +17 -0
- package/docs/typedoc.json +37 -0
- package/e2e/Cargo.lock +646 -0
- package/e2e/Cargo.toml +3 -0
- package/e2e/README.md +101 -0
- package/e2e/frontends/build.mjs +94 -0
- package/e2e/frontends/index.html +10 -0
- package/e2e/global-setup.ts +65 -0
- package/e2e/icp.yaml +38 -0
- package/e2e/package.json +40 -0
- package/e2e/setup.ts +6 -0
- package/e2e/src/actor/Cargo.toml +14 -0
- package/e2e/src/actor/hello_actor.did +10 -0
- package/e2e/src/actor/src/lib.rs +73 -0
- package/e2e/src/calls.test.ts +132 -0
- package/e2e/src/declarations/hello_actor.envelope.json +175 -0
- package/e2e/src/declarations/hello_actor.ts +15 -0
- package/e2e/src/errors.test.ts +107 -0
- package/e2e/src/frontend-headers.test.ts +253 -0
- package/e2e/src/identity.test.ts +61 -0
- package/e2e/src/react.test.tsx +59 -0
- package/e2e/src/replica.ts +70 -0
- package/e2e/src/vite-env.test.ts +108 -0
- package/e2e/test.sh +47 -0
- package/e2e/tsconfig.json +20 -0
- package/e2e/tsconfig.typecheck.json +9 -0
- package/e2e/vitest.config.ts +22 -0
- package/eslint.config.mjs +100 -0
- package/evals/PREREGISTRATION.md +1346 -0
- package/evals/README.md +756 -0
- package/evals/conditions/thin/condition.json +8 -0
- package/evals/conditions/thin/docs/candid-core-cli.README.md +90 -0
- package/evals/conditions/thin/docs/candid-core-schema.README.md +339 -0
- package/evals/conditions/thin/package.json +25 -0
- package/evals/conditions/thin/starter/src/generated/icrc1.ts +57 -0
- package/evals/conditions/thin-guide/condition.json +10 -0
- package/evals/conditions/thin-guide/docs/llms.txt +292 -0
- package/evals/conditions/v3/condition.json +9 -0
- package/evals/conditions/v3/docs/ic-reactor-core.llms.txt +232 -0
- package/evals/conditions/v3/docs/ic-reactor-react.llms.txt +280 -0
- package/evals/conditions/v3/docs/llms-full.txt +1053 -0
- package/evals/conditions/v3/package.json +26 -0
- package/evals/conditions/v3/starter/src/declarations/icrc1.did.d.ts +95 -0
- package/evals/conditions/v3/starter/src/declarations/icrc1.did.js +140 -0
- package/evals/conditions/v4/PORTING.md +384 -0
- package/evals/conditions/v4/README.md +106 -0
- package/evals/conditions/v4/condition.json +5 -0
- package/evals/conditions/v4/docs/llms.txt +323 -0
- package/evals/conditions/v4/package.json +27 -0
- package/evals/conditions/v4/starter/src/generated/icrc1.ts +78 -0
- package/evals/conditions/v4-proto/condition.json +6 -0
- package/evals/conditions/v4-proto/docs/llms.txt +291 -0
- package/evals/conditions/v4-proto/lib/SHIM-NOTES.md +20 -0
- package/evals/conditions/v4-proto/lib/package.json +27 -0
- package/evals/conditions/v4-proto/lib/src/client.ts +471 -0
- package/evals/conditions/v4-proto/lib/src/errors.ts +214 -0
- package/evals/conditions/v4-proto/lib/src/index.ts +36 -0
- package/evals/conditions/v4-proto/lib/src/principal.ts +175 -0
- package/evals/conditions/v4-proto/lib/src/service.ts +69 -0
- package/evals/conditions/v4-proto/lib/src/types.ts +174 -0
- package/evals/conditions/v4-proto/lib/test/runtime.test.ts +170 -0
- package/evals/conditions/v4-proto/lib/test/tsconfig.json +10 -0
- package/evals/conditions/v4-proto/lib/test/types.test-d.ts +145 -0
- package/evals/conditions/v4-proto/lib/test/vitest.config.mjs +8 -0
- package/evals/conditions/v4-proto/lib/tsconfig.json +17 -0
- package/evals/conditions/v4-proto/package.json +26 -0
- package/evals/conditions/v4-proto/starter/src/generated/icrc1.service.ts +19 -0
- package/evals/conditions/v4-proto/starter/src/generated/icrc1.ts +57 -0
- package/evals/drive.mjs +1221 -0
- package/evals/gate.mjs +161 -0
- package/evals/harness/aggregate.mjs +534 -0
- package/evals/harness/aggregate.test.mjs +344 -0
- package/evals/harness/assemble.mjs +216 -0
- package/evals/harness/assemble.test.mjs +143 -0
- package/evals/harness/auth.mjs +91 -0
- package/evals/harness/check-docs.mjs +157 -0
- package/evals/harness/declarations/icrc1.did.d.ts +95 -0
- package/evals/harness/declarations/icrc1.did.js +140 -0
- package/evals/harness/drive-auth.test.mjs +584 -0
- package/evals/harness/drive.test.mjs +509 -0
- package/evals/harness/fake-auth.ts +67 -0
- package/evals/harness/fake-ledger.ts +178 -0
- package/evals/harness/gate-plan.mjs +104 -0
- package/evals/harness/gate-plan.test.mjs +243 -0
- package/evals/harness/icrc1.did +88 -0
- package/evals/harness/judge.mjs +63 -0
- package/evals/harness/judge.test.mjs +81 -0
- package/evals/harness/leak-scan.mjs +1373 -0
- package/evals/harness/leak-scan.test.mjs +1300 -0
- package/evals/harness/probes/amounts.ts +14 -0
- package/evals/harness/probes/node-tool.probe.ts +48 -0
- package/evals/harness/probes/probe.mjs +149 -0
- package/evals/harness/probes/react-wallet.probe.ts +96 -0
- package/evals/harness/public/support/auth.ts +38 -0
- package/evals/harness/public/support/fake-replica.d.ts +28 -0
- package/evals/harness/public/support/fake-replica.js +434 -0
- package/evals/harness/public/support/ledger.idl.d.ts +95 -0
- package/evals/harness/public/support/ledger.idl.js +140 -0
- package/evals/harness/public/support/world.ts +179 -0
- package/evals/harness/runs.mjs +139 -0
- package/evals/harness/sandbox.mjs +88 -0
- package/evals/harness/sandbox.test.mjs +134 -0
- package/evals/harness/ship.mjs +264 -0
- package/evals/harness/ship.test.mjs +552 -0
- package/evals/harness/world.ts +291 -0
- package/evals/package.json +26 -0
- package/evals/pnpm-lock.yaml +1537 -0
- package/evals/pnpm-workspace.yaml +12 -0
- package/evals/results/2026-09-30T14-22-05-924Z/pilot.json +384 -0
- package/evals/results/2026-09-30T14-22-05-924Z/pilot.rescanned.json +404 -0
- package/evals/results/2026-09-30T14-22-05-924Z/pilot.rescanned.rescored.json +404 -0
- package/evals/results/2026-09-30T14-22-05-924Z/plan.json +240 -0
- package/evals/results/2026-09-30T14-22-05-924Z/summary.json +1800 -0
- package/evals/results/2026-09-30T14-22-05-924Z/summary.rescanned.json +1843 -0
- package/evals/results/2026-09-30T14-22-05-924Z/summary.rescanned.rescored.json +2100 -0
- package/evals/results/2026-09-30T15-48-23-343Z/pilot.json +404 -0
- package/evals/results/2026-09-30T15-48-23-343Z/pilot.rescored.json +404 -0
- package/evals/results/2026-09-30T15-48-23-343Z/plan.json +242 -0
- package/evals/results/2026-09-30T15-48-23-343Z/summary.json +1843 -0
- package/evals/results/2026-09-30T15-48-23-343Z/summary.rescored.json +2195 -0
- package/evals/results/2026-10-03-beta1-gate/pilot.json +162 -0
- package/evals/results/2026-10-03-beta1-gate/plan.json +141 -0
- package/evals/results/2026-10-03-beta1-gate/summary.json +983 -0
- package/evals/results/2026-10-05-ga-gate/contaminated-run.json +55 -0
- package/evals/results/2026-10-05-ga-gate/pilot.json +162 -0
- package/evals/results/2026-10-05-ga-gate/plan.json +457 -0
- package/evals/results/2026-10-05-ga-gate/summary.json +1037 -0
- package/evals/results/2026-10-05-ga-gate/summary.rescanned.json +1037 -0
- package/evals/results/README.md +31 -0
- package/evals/runs-pilot.log +150 -0
- package/evals/runs-pilot2.log +150 -0
- package/evals/score.mjs +256 -0
- package/evals/setup.mjs +547 -0
- package/evals/tasks/node-tool/faulty/thin-accepts-exponent/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/thin-accepts-exponent/src/index.ts +121 -0
- package/evals/tasks/node-tool/faulty/thin-anonymous-transfer/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/thin-anonymous-transfer/src/index.ts +116 -0
- package/evals/tasks/node-tool/faulty/thin-every-reject-may-have-executed/meta.json +9 -0
- package/evals/tasks/node-tool/faulty/thin-every-reject-may-have-executed/src/index.ts +118 -0
- package/evals/tasks/node-tool/faulty/thin-fetches-root-key-off-local/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/thin-fetches-root-key-off-local/src/index.ts +118 -0
- package/evals/tasks/node-tool/faulty/thin-ignores-root-key/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/thin-ignores-root-key/src/index.ts +117 -0
- package/evals/tasks/node-tool/faulty/thin-misclassifies-reject-codes/meta.json +9 -0
- package/evals/tasks/node-tool/faulty/thin-misclassifies-reject-codes/src/index.ts +119 -0
- package/evals/tasks/node-tool/faulty/thin-no-nat64-cap/meta.json +9 -0
- package/evals/tasks/node-tool/faulty/thin-no-nat64-cap/src/index.ts +118 -0
- package/evals/tasks/node-tool/faulty/thin-number-amount/meta.json +10 -0
- package/evals/tasks/node-tool/faulty/thin-number-amount/src/index.ts +117 -0
- package/evals/tasks/node-tool/faulty/thin-truncates-fraction-digits/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/thin-truncates-fraction-digits/src/index.ts +120 -0
- package/evals/tasks/node-tool/faulty/thin-unvalidated-recipient/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/thin-unvalidated-recipient/src/index.ts +118 -0
- package/evals/tasks/node-tool/faulty/v3-retry-call-errors/meta.json +11 -0
- package/evals/tasks/node-tool/faulty/v3-retry-call-errors/src/index.ts +149 -0
- package/evals/tasks/node-tool/faulty/v4-anonymous-identity-sent/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/v4-anonymous-identity-sent/src/index.ts +71 -0
- package/evals/tasks/node-tool/faulty/v4-never-may-have-executed/meta.json +9 -0
- package/evals/tasks/node-tool/faulty/v4-never-may-have-executed/src/index.ts +84 -0
- package/evals/tasks/node-tool/faulty/v4-proto-never-may-have-executed/meta.json +9 -0
- package/evals/tasks/node-tool/faulty/v4-proto-never-may-have-executed/src/index.ts +72 -0
- package/evals/tasks/node-tool/faulty/v4-proto-refuses-nat64-max/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/v4-proto-refuses-nat64-max/src/index.ts +72 -0
- package/evals/tasks/node-tool/faulty/v4-refuses-nat64-max/meta.json +5 -0
- package/evals/tasks/node-tool/faulty/v4-refuses-nat64-max/src/index.ts +84 -0
- package/evals/tasks/node-tool/hidden/node-tool.test.ts +312 -0
- package/evals/tasks/node-tool/prompt.md +55 -0
- package/evals/tasks/node-tool/prompt.minimal.md +30 -0
- package/evals/tasks/node-tool/solutions/thin/reference/src/index.ts +118 -0
- package/evals/tasks/node-tool/solutions/thin/reference-module-scope/src/index.ts +145 -0
- package/evals/tasks/node-tool/solutions/thin-guide/reference/src/index.ts +118 -0
- package/evals/tasks/node-tool/solutions/thin-guide/reference-module-scope/src/index.ts +145 -0
- package/evals/tasks/node-tool/solutions/v3/reference/src/index.ts +140 -0
- package/evals/tasks/node-tool/solutions/v3/reference-module-scope/src/index.ts +153 -0
- package/evals/tasks/node-tool/solutions/v4/reference/src/index.ts +84 -0
- package/evals/tasks/node-tool/solutions/v4/reference-module-scope/src/index.ts +105 -0
- package/evals/tasks/node-tool/solutions/v4-proto/reference/src/index.ts +72 -0
- package/evals/tasks/node-tool/solutions/v4-proto/reference-module-scope/src/index.ts +87 -0
- package/evals/tasks/node-tool/starter/src/contract.ts +31 -0
- package/evals/tasks/node-tool/starter/src/index.ts +7 -0
- package/evals/tasks/node-tool/starter/test/smoke.test.ts +22 -0
- package/evals/tasks/node-tool/starter/tsconfig.json +17 -0
- package/evals/tasks/node-tool/task.json +63 -0
- package/evals/tasks/react-wallet/faulty/thin-accepts-exponent/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/thin-accepts-exponent/src/Wallet.tsx +216 -0
- package/evals/tasks/react-wallet/faulty/thin-anonymous-transfer/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/thin-anonymous-transfer/src/Wallet.tsx +212 -0
- package/evals/tasks/react-wallet/faulty/thin-both-auth-buttons/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/thin-both-auth-buttons/src/Wallet.tsx +210 -0
- package/evals/tasks/react-wallet/faulty/thin-constant-balance-key/meta.json +8 -0
- package/evals/tasks/react-wallet/faulty/thin-constant-balance-key/src/Wallet.tsx +213 -0
- package/evals/tasks/react-wallet/faulty/thin-no-nat64-cap/meta.json +9 -0
- package/evals/tasks/react-wallet/faulty/thin-no-nat64-cap/src/Wallet.tsx +213 -0
- package/evals/tasks/react-wallet/faulty/thin-number-balance/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/thin-number-balance/src/Wallet.tsx +213 -0
- package/evals/tasks/react-wallet/faulty/thin-transfer-as-query/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/thin-transfer-as-query/src/Wallet.tsx +254 -0
- package/evals/tasks/react-wallet/faulty/thin-truncates-fraction-digits/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/thin-truncates-fraction-digits/src/Wallet.tsx +215 -0
- package/evals/tasks/react-wallet/faulty/thin-unguarded-balance-effect/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/thin-unguarded-balance-effect/src/Wallet.tsx +214 -0
- package/evals/tasks/react-wallet/faulty/v3-http-4xx-unknown/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/v3-http-4xx-unknown/src/Wallet.tsx +224 -0
- package/evals/tasks/react-wallet/faulty/v3-mutation-retry-3/meta.json +12 -0
- package/evals/tasks/react-wallet/faulty/v3-mutation-retry-3/src/Wallet.tsx +225 -0
- package/evals/tasks/react-wallet/faulty/v3-unknown-as-error/meta.json +11 -0
- package/evals/tasks/react-wallet/faulty/v3-unknown-as-error/src/Wallet.tsx +182 -0
- package/evals/tasks/react-wallet/faulty/v4-every-reject-unknown/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/v4-every-reject-unknown/src/Wallet.tsx +160 -0
- package/evals/tasks/react-wallet/faulty/v4-keep-previous-data/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/v4-keep-previous-data/src/Wallet.tsx +166 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-every-reject-unknown/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-every-reject-unknown/src/Wallet.tsx +161 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-keep-previous-data/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-keep-previous-data/src/Wallet.tsx +163 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-retry-spread/meta.json +12 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-retry-spread/src/Wallet.tsx +162 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-status-not-idle/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/v4-proto-status-not-idle/src/Wallet.tsx +163 -0
- package/evals/tasks/react-wallet/faulty/v4-retry-spread/meta.json +12 -0
- package/evals/tasks/react-wallet/faulty/v4-retry-spread/src/Wallet.tsx +163 -0
- package/evals/tasks/react-wallet/faulty/v4-status-not-idle/meta.json +5 -0
- package/evals/tasks/react-wallet/faulty/v4-status-not-idle/src/Wallet.tsx +162 -0
- package/evals/tasks/react-wallet/hidden/react-wallet.test.ts +536 -0
- package/evals/tasks/react-wallet/prompt.md +88 -0
- package/evals/tasks/react-wallet/prompt.minimal.md +51 -0
- package/evals/tasks/react-wallet/solutions/thin/reference/src/Wallet.tsx +213 -0
- package/evals/tasks/react-wallet/solutions/thin/reference-module-scope/src/Wallet.tsx +227 -0
- package/evals/tasks/react-wallet/solutions/thin-guide/reference/src/Wallet.tsx +213 -0
- package/evals/tasks/react-wallet/solutions/thin-guide/reference-module-scope/src/Wallet.tsx +227 -0
- package/evals/tasks/react-wallet/solutions/v3/reference/src/Wallet.tsx +224 -0
- package/evals/tasks/react-wallet/solutions/v3/reference-module-scope/src/Wallet.tsx +230 -0
- package/evals/tasks/react-wallet/solutions/v4/reference/src/Wallet.tsx +160 -0
- package/evals/tasks/react-wallet/solutions/v4/reference-module-scope/src/Wallet.tsx +178 -0
- package/evals/tasks/react-wallet/solutions/v4-proto/reference/src/Wallet.tsx +161 -0
- package/evals/tasks/react-wallet/solutions/v4-proto/reference-module-scope/src/Wallet.tsx +161 -0
- package/evals/tasks/react-wallet/starter/src/Wallet.tsx +12 -0
- package/evals/tasks/react-wallet/starter/src/auth.ts +16 -0
- package/evals/tasks/react-wallet/starter/src/config.ts +14 -0
- package/evals/tasks/react-wallet/starter/src/ii-auth.ts +43 -0
- package/evals/tasks/react-wallet/starter/src/main.tsx +15 -0
- package/evals/tasks/react-wallet/starter/test/smoke.test.ts +34 -0
- package/evals/tasks/react-wallet/starter/tsconfig.json +18 -0
- package/evals/tasks/react-wallet/task.json +84 -0
- package/examples/canister-studio/.stackblitzrc +4 -0
- package/examples/canister-studio/README.md +183 -0
- package/examples/canister-studio/did/ckbtc_minter.did +806 -0
- package/examples/canister-studio/did/icp_ledger.did +586 -0
- package/examples/canister-studio/did/icrc1.did +88 -0
- package/examples/canister-studio/package.json +45 -0
- package/examples/canister-studio/scripts/smoke.ts +188 -0
- package/examples/canister-studio/src/calls/CacheKeyPanel.tsx +104 -0
- package/examples/canister-studio/src/calls/ConfirmWrite.tsx +265 -0
- package/examples/canister-studio/src/calls/ErrorPanel.test.tsx +113 -0
- package/examples/canister-studio/src/calls/ErrorPanel.tsx +214 -0
- package/examples/canister-studio/src/calls/MethodRunner.test.tsx +354 -0
- package/examples/canister-studio/src/calls/MethodRunner.tsx +57 -0
- package/examples/canister-studio/src/calls/ReadRunner.tsx +244 -0
- package/examples/canister-studio/src/calls/ResendPanel.tsx +165 -0
- package/examples/canister-studio/src/calls/ShareLink.tsx +59 -0
- package/examples/canister-studio/src/calls/WriteRunner.test.tsx +678 -0
- package/examples/canister-studio/src/calls/WriteRunner.tsx +670 -0
- package/examples/canister-studio/src/calls/dedupe.ts +189 -0
- package/examples/canister-studio/src/calls/error-info.ts +168 -0
- package/examples/canister-studio/src/calls/history.test.ts +284 -0
- package/examples/canister-studio/src/calls/history.ts +287 -0
- package/examples/canister-studio/src/calls/kinds.ts +68 -0
- package/examples/canister-studio/src/calls/prepare.ts +32 -0
- package/examples/canister-studio/src/calls/query-options.ts +30 -0
- package/examples/canister-studio/src/calls/read.ts +47 -0
- package/examples/canister-studio/src/calls/readback.ts +100 -0
- package/examples/canister-studio/src/calls/record.ts +123 -0
- package/examples/canister-studio/src/calls/safe-calls.test.ts +299 -0
- package/examples/canister-studio/src/calls/share.ts +46 -0
- package/examples/canister-studio/src/calls/testing/doubles.tsx +108 -0
- package/examples/canister-studio/src/calls/testing/fixtures.ts +185 -0
- package/examples/canister-studio/src/calls/useCanisterHandle.ts +35 -0
- package/examples/canister-studio/src/canisters/ckbtc_minter.envelope.json +4228 -0
- package/examples/canister-studio/src/canisters/ckbtc_minter.ts +868 -0
- package/examples/canister-studio/src/canisters/icp_ledger.envelope.json +3454 -0
- package/examples/canister-studio/src/canisters/icp_ledger.ts +584 -0
- package/examples/canister-studio/src/canisters/icrc1.envelope.json +840 -0
- package/examples/canister-studio/src/canisters/icrc1.ts +78 -0
- package/examples/canister-studio/src/components/ActionButton.tsx +32 -0
- package/examples/canister-studio/src/components/AppHeader.tsx +83 -0
- package/examples/canister-studio/src/components/AppShell.tsx +29 -0
- package/examples/canister-studio/src/components/AuthButton.tsx +79 -0
- package/examples/canister-studio/src/components/Badge.tsx +79 -0
- package/examples/canister-studio/src/components/CanisterHeader.tsx +200 -0
- package/examples/canister-studio/src/components/CanisterJump.tsx +130 -0
- package/examples/canister-studio/src/components/Card.tsx +64 -0
- package/examples/canister-studio/src/components/Code.tsx +101 -0
- package/examples/canister-studio/src/components/CopyButton.tsx +126 -0
- package/examples/canister-studio/src/components/Disclosure.tsx +34 -0
- package/examples/canister-studio/src/components/EmptyState.tsx +34 -0
- package/examples/canister-studio/src/components/MethodList.test.tsx +137 -0
- package/examples/canister-studio/src/components/MethodList.tsx +244 -0
- package/examples/canister-studio/src/components/Notice.tsx +36 -0
- package/examples/canister-studio/src/components/ProvenanceBadge.tsx +44 -0
- package/examples/canister-studio/src/components/RouteError.tsx +42 -0
- package/examples/canister-studio/src/components/SectionBoundary.tsx +76 -0
- package/examples/canister-studio/src/components/Spinner.tsx +33 -0
- package/examples/canister-studio/src/components/Tabs.tsx +96 -0
- package/examples/canister-studio/src/components/canister/CanisterLoadFailure.test.tsx +56 -0
- package/examples/canister-studio/src/components/canister/CanisterLoadFailure.tsx +165 -0
- package/examples/canister-studio/src/components/canister/CanisterNotFound.tsx +59 -0
- package/examples/canister-studio/src/components/canister/CanisterPending.tsx +33 -0
- package/examples/canister-studio/src/components/canister/MethodOverview.tsx +93 -0
- package/examples/canister-studio/src/components/canister/MethodWorkspace.test.tsx +201 -0
- package/examples/canister-studio/src/components/canister/MethodWorkspace.tsx +187 -0
- package/examples/canister-studio/src/components/canister/shared-call.test.ts +186 -0
- package/examples/canister-studio/src/components/canister/shared-call.ts +133 -0
- package/examples/canister-studio/src/components/canister/shared-link-loader.test.ts +116 -0
- package/examples/canister-studio/src/components/canister/use-canister-page.ts +44 -0
- package/examples/canister-studio/src/components/canister/workspace-key.test.ts +27 -0
- package/examples/canister-studio/src/components/canister/workspace-key.ts +36 -0
- package/examples/canister-studio/src/components/canister-id-input.ts +69 -0
- package/examples/canister-studio/src/components/canister-names.ts +11 -0
- package/examples/canister-studio/src/components/download.ts +34 -0
- package/examples/canister-studio/src/components/fallbacks.tsx +33 -0
- package/examples/canister-studio/src/components/helpers.test.ts +107 -0
- package/examples/canister-studio/src/components/history/HistoryList.tsx +284 -0
- package/examples/canister-studio/src/components/home/FeaturedLedger.tsx +149 -0
- package/examples/canister-studio/src/components/home/OpenCanister.tsx +99 -0
- package/examples/canister-studio/src/components/home/featured.test.tsx +92 -0
- package/examples/canister-studio/src/components/home/featured.ts +64 -0
- package/examples/canister-studio/src/components/interface/CandidTab.tsx +38 -0
- package/examples/canister-studio/src/components/interface/CompatReport.tsx +92 -0
- package/examples/canister-studio/src/components/interface/CompatibilityTab.tsx +190 -0
- package/examples/canister-studio/src/components/interface/ProjectTab.tsx +196 -0
- package/examples/canister-studio/src/components/interface/TypeScriptTab.tsx +114 -0
- package/examples/canister-studio/src/components/interface/tools.test.tsx +169 -0
- package/examples/canister-studio/src/components/modes.ts +31 -0
- package/examples/canister-studio/src/components/playground/MethodPicker.tsx +67 -0
- package/examples/canister-studio/src/components/playground/PlaygroundForms.tsx +112 -0
- package/examples/canister-studio/src/components/playground/PlaygroundTools.tsx +219 -0
- package/examples/canister-studio/src/components/playground/sample.ts +43 -0
- package/examples/canister-studio/src/components/playground/target.test.tsx +86 -0
- package/examples/canister-studio/src/components/primitives.test.tsx +121 -0
- package/examples/canister-studio/src/components/provenance.ts +38 -0
- package/examples/canister-studio/src/components/route-render.test.tsx +71 -0
- package/examples/canister-studio/src/components/use-task.ts +56 -0
- package/examples/canister-studio/src/components/wallet/BalancePanel.tsx +110 -0
- package/examples/canister-studio/src/components/wallet/LedgerSummary.tsx +63 -0
- package/examples/canister-studio/src/components/wallet/MinterPanel.tsx +255 -0
- package/examples/canister-studio/src/components/wallet/SendPanel.test.tsx +297 -0
- package/examples/canister-studio/src/components/wallet/SendPanel.tsx +446 -0
- package/examples/canister-studio/src/components/wallet/ledgers.test.ts +36 -0
- package/examples/canister-studio/src/components/wallet/ledgers.ts +111 -0
- package/examples/canister-studio/src/forms/JsonPanel.tsx +157 -0
- package/examples/canister-studio/src/forms/MethodForm.test.tsx +369 -0
- package/examples/canister-studio/src/forms/MethodForm.tsx +368 -0
- package/examples/canister-studio/src/forms/TypedForm.tsx +55 -0
- package/examples/canister-studio/src/forms/context.ts +62 -0
- package/examples/canister-studio/src/forms/convert.ts +131 -0
- package/examples/canister-studio/src/forms/edge.test.ts +252 -0
- package/examples/canister-studio/src/forms/engine.test.ts +358 -0
- package/examples/canister-studio/src/forms/engine.ts +1492 -0
- package/examples/canister-studio/src/forms/fields/BytesField.tsx +210 -0
- package/examples/canister-studio/src/forms/fields/Field.tsx +106 -0
- package/examples/canister-studio/src/forms/fields/FieldShell.tsx +101 -0
- package/examples/canister-studio/src/forms/fields/Group.tsx +74 -0
- package/examples/canister-studio/src/forms/fields/ListField.tsx +256 -0
- package/examples/canister-studio/src/forms/fields/Segmented.tsx +78 -0
- package/examples/canister-studio/src/forms/fields/TimestampField.tsx +108 -0
- package/examples/canister-studio/src/forms/fields/UnitsField.tsx +119 -0
- package/examples/canister-studio/src/forms/fields/composites.tsx +389 -0
- package/examples/canister-studio/src/forms/fields/leaves.tsx +350 -0
- package/examples/canister-studio/src/forms/fields.test.tsx +396 -0
- package/examples/canister-studio/src/forms/helpers.test.ts +225 -0
- package/examples/canister-studio/src/forms/hints.ts +128 -0
- package/examples/canister-studio/src/forms/json.ts +119 -0
- package/examples/canister-studio/src/forms/parsing.test.ts +217 -0
- package/examples/canister-studio/src/forms/useMethodForm.ts +251 -0
- package/examples/canister-studio/src/interface/browser.test.ts +23 -0
- package/examples/canister-studio/src/interface/browser.ts +153 -0
- package/examples/canister-studio/src/interface/cache.ts +68 -0
- package/examples/canister-studio/src/interface/cli-cache.test.ts +155 -0
- package/examples/canister-studio/src/interface/cli-cache.ts +125 -0
- package/examples/canister-studio/src/interface/compile.server.test.ts +198 -0
- package/examples/canister-studio/src/interface/compile.server.ts +262 -0
- package/examples/canister-studio/src/interface/compile.test.ts +108 -0
- package/examples/canister-studio/src/interface/compile.ts +305 -0
- package/examples/canister-studio/src/interface/docs.test.ts +75 -0
- package/examples/canister-studio/src/interface/docs.ts +100 -0
- package/examples/canister-studio/src/interface/functions.test.ts +42 -0
- package/examples/canister-studio/src/interface/functions.ts +200 -0
- package/examples/canister-studio/src/interface/live-candid.server.ts +91 -0
- package/examples/canister-studio/src/interface/live-loader.test.ts +515 -0
- package/examples/canister-studio/src/interface/live-loader.ts +364 -0
- package/examples/canister-studio/src/interface/load.test.ts +328 -0
- package/examples/canister-studio/src/interface/load.ts +249 -0
- package/examples/canister-studio/src/interface/read-candid.test.ts +185 -0
- package/examples/canister-studio/src/interface/read-candid.ts +233 -0
- package/examples/canister-studio/src/interface/server-result.ts +42 -0
- package/examples/canister-studio/src/interface/typed.ts +68 -0
- package/examples/canister-studio/src/interface/types.ts +121 -0
- package/examples/canister-studio/src/lib/format.test.ts +107 -0
- package/examples/canister-studio/src/lib/format.ts +139 -0
- package/examples/canister-studio/src/lib/hex.test.ts +43 -0
- package/examples/canister-studio/src/lib/hex.ts +33 -0
- package/examples/canister-studio/src/lib/ids.test.ts +70 -0
- package/examples/canister-studio/src/lib/ids.ts +93 -0
- package/examples/canister-studio/src/lib/reactor.test.ts +55 -0
- package/examples/canister-studio/src/lib/reactor.ts +55 -0
- package/examples/canister-studio/src/lib/registry.test.ts +74 -0
- package/examples/canister-studio/src/lib/registry.ts +238 -0
- package/examples/canister-studio/src/lib/schema.ts +148 -0
- package/examples/canister-studio/src/routeTree.gen.ts +227 -0
- package/examples/canister-studio/src/router.test.ts +290 -0
- package/examples/canister-studio/src/router.tsx +127 -0
- package/examples/canister-studio/src/routes/__root.tsx +58 -0
- package/examples/canister-studio/src/routes/canister.$canisterId.index.tsx +172 -0
- package/examples/canister-studio/src/routes/canister.$canisterId.interface.tsx +98 -0
- package/examples/canister-studio/src/routes/canister.$canisterId.tsx +91 -0
- package/examples/canister-studio/src/routes/history.tsx +55 -0
- package/examples/canister-studio/src/routes/index.tsx +169 -0
- package/examples/canister-studio/src/routes/playground.tsx +286 -0
- package/examples/canister-studio/src/routes/safety.tsx +57 -0
- package/examples/canister-studio/src/routes/wallet.tsx +213 -0
- package/examples/canister-studio/src/safety/LabTransferForm.tsx +84 -0
- package/examples/canister-studio/src/safety/RequestLog.tsx +79 -0
- package/examples/canister-studio/src/safety/SafetyLab.test.tsx +89 -0
- package/examples/canister-studio/src/safety/SafetyLab.tsx +140 -0
- package/examples/canister-studio/src/safety/ScenarioCard.tsx +262 -0
- package/examples/canister-studio/src/safety/lab-run.ts +283 -0
- package/examples/canister-studio/src/safety/mock-ledger.test.ts +99 -0
- package/examples/canister-studio/src/safety/mock-ledger.ts +263 -0
- package/examples/canister-studio/src/safety/scenarios.test.ts +157 -0
- package/examples/canister-studio/src/safety/scenarios.ts +924 -0
- package/examples/canister-studio/src/styles.css +3453 -0
- package/examples/canister-studio/src/styles.test.ts +46 -0
- package/examples/canister-studio/src/values/CallPreview.test.tsx +86 -0
- package/examples/canister-studio/src/values/CallPreview.tsx +148 -0
- package/examples/canister-studio/src/values/ErrValueView.tsx +66 -0
- package/examples/canister-studio/src/values/Inspector.tsx +133 -0
- package/examples/canister-studio/src/values/ReplyView.test.tsx +341 -0
- package/examples/canister-studio/src/values/ReplyView.tsx +164 -0
- package/examples/canister-studio/src/values/candid-text.test.ts +516 -0
- package/examples/canister-studio/src/values/candid-text.ts +479 -0
- package/examples/canister-studio/src/values/hints.ts +58 -0
- package/examples/canister-studio/src/values/json.test.ts +66 -0
- package/examples/canister-studio/src/values/json.ts +31 -0
- package/examples/canister-studio/src/values/leaves.tsx +309 -0
- package/examples/canister-studio/src/values/schema.test.ts +123 -0
- package/examples/canister-studio/src/values/schema.ts +78 -0
- package/examples/canister-studio/src/values/test-router.tsx +21 -0
- package/examples/canister-studio/src/values/tree.tsx +670 -0
- package/examples/canister-studio/src/values/use-sha256.ts +29 -0
- package/examples/canister-studio/tsconfig.json +20 -0
- package/examples/canister-studio/vite.config.ts +50 -0
- package/examples/canister-studio/vitest.config.ts +20 -0
- package/examples/icrc-ledger/.stackblitzrc +4 -0
- package/examples/icrc-ledger/README.md +100 -0
- package/examples/icrc-ledger/ckbtc_minter.did +12 -0
- package/examples/icrc-ledger/icp_ledger.did +147 -0
- package/examples/icrc-ledger/icrc1.did +88 -0
- package/examples/icrc-ledger/index.html +13 -0
- package/examples/icrc-ledger/package.json +40 -0
- package/examples/icrc-ledger/scripts/smoke.ts +151 -0
- package/examples/icrc-ledger/src/App.tsx +71 -0
- package/examples/icrc-ledger/src/ErrorPanel.tsx +105 -0
- package/examples/icrc-ledger/src/MainnetTab.tsx +450 -0
- package/examples/icrc-ledger/src/SandboxTab.test.tsx +379 -0
- package/examples/icrc-ledger/src/SandboxTab.tsx +761 -0
- package/examples/icrc-ledger/src/blocks.test.ts +247 -0
- package/examples/icrc-ledger/src/blocks.ts +140 -0
- package/examples/icrc-ledger/src/canisters/ckbtc_minter.envelope.json +96 -0
- package/examples/icrc-ledger/src/canisters/ckbtc_minter.ts +16 -0
- package/examples/icrc-ledger/src/canisters/icp_ledger.envelope.json +690 -0
- package/examples/icrc-ledger/src/canisters/icp_ledger.ts +223 -0
- package/examples/icrc-ledger/src/canisters/icrc1.envelope.json +840 -0
- package/examples/icrc-ledger/src/canisters/icrc1.ts +78 -0
- package/examples/icrc-ledger/src/format.test.ts +41 -0
- package/examples/icrc-ledger/src/format.ts +68 -0
- package/examples/icrc-ledger/src/ledger.ts +15 -0
- package/examples/icrc-ledger/src/main.tsx +10 -0
- package/examples/icrc-ledger/src/minter.ts +16 -0
- package/examples/icrc-ledger/src/sandbox.test.ts +464 -0
- package/examples/icrc-ledger/src/sandbox.ts +281 -0
- package/examples/icrc-ledger/src/styles.css +391 -0
- package/examples/icrc-ledger/src/transfer-form.test.ts +62 -0
- package/examples/icrc-ledger/src/transfer-form.ts +97 -0
- package/examples/icrc-ledger/tsconfig.json +19 -0
- package/examples/icrc-ledger/vite.config.ts +44 -0
- package/examples/icrc-ledger/vitest.config.ts +12 -0
- package/examples/next-ssr/.stackblitzrc +4 -0
- package/examples/next-ssr/README.md +112 -0
- package/examples/next-ssr/icrc1.did +88 -0
- package/examples/next-ssr/next.config.ts +10 -0
- package/examples/next-ssr/package.json +41 -0
- package/examples/next-ssr/scripts/smoke.ts +169 -0
- package/examples/next-ssr/src/app/account/CertifiedBalances.tsx +58 -0
- package/examples/next-ssr/src/app/account/account.test.tsx +165 -0
- package/examples/next-ssr/src/app/account/page.tsx +82 -0
- package/examples/next-ssr/src/app/api/balance/[ledger]/[principal]/route.ts +10 -0
- package/examples/next-ssr/src/app/globals.css +278 -0
- package/examples/next-ssr/src/app/layout.tsx +34 -0
- package/examples/next-ssr/src/app/page.tsx +46 -0
- package/examples/next-ssr/src/app/providers.browser.test.tsx +127 -0
- package/examples/next-ssr/src/app/providers.test.tsx +73 -0
- package/examples/next-ssr/src/app/providers.tsx +60 -0
- package/examples/next-ssr/src/canisters/icrc1.envelope.json +840 -0
- package/examples/next-ssr/src/canisters/icrc1.ts +78 -0
- package/examples/next-ssr/src/components/BalanceTable.tsx +43 -0
- package/examples/next-ssr/src/components/LedgerCard.test.tsx +96 -0
- package/examples/next-ssr/src/components/LedgerCard.tsx +230 -0
- package/examples/next-ssr/src/components/LedgerError.tsx +32 -0
- package/examples/next-ssr/src/components/LedgerSections.tsx +22 -0
- package/examples/next-ssr/src/components/MyBalances.test.tsx +253 -0
- package/examples/next-ssr/src/components/MyBalances.tsx +129 -0
- package/examples/next-ssr/src/components/SessionBadge.tsx +18 -0
- package/examples/next-ssr/src/components/hydration.test.tsx +259 -0
- package/examples/next-ssr/src/components/server-data.ts +10 -0
- package/examples/next-ssr/src/format.ts +46 -0
- package/examples/next-ssr/src/ledgers.ts +38 -0
- package/examples/next-ssr/src/server/balance-route.test.ts +151 -0
- package/examples/next-ssr/src/server/balance-route.ts +157 -0
- package/examples/next-ssr/src/server/error-summary.test.ts +34 -0
- package/examples/next-ssr/src/server/error-summary.ts +37 -0
- package/examples/next-ssr/src/server/parse-owner.test.ts +39 -0
- package/examples/next-ssr/src/server/parse-owner.ts +34 -0
- package/examples/next-ssr/src/server/prefetch-ledgers.test.ts +137 -0
- package/examples/next-ssr/src/server/prefetch-ledgers.ts +70 -0
- package/examples/next-ssr/src/server/read-balances.test.ts +103 -0
- package/examples/next-ssr/src/server/read-balances.ts +78 -0
- package/examples/next-ssr/src/server/request-client.rsc.test.tsx +110 -0
- package/examples/next-ssr/src/server/request-client.ts +24 -0
- package/examples/next-ssr/src/testing/mock-ledgers.ts +115 -0
- package/examples/next-ssr/src/testing/react-server-dom-turbopack.d.ts +15 -0
- package/examples/next-ssr/src/testing/setup.ts +10 -0
- package/examples/next-ssr/tsconfig.json +31 -0
- package/examples/next-ssr/vitest.config.ts +59 -0
- package/examples/node-agent-tool/.stackblitzrc +4 -0
- package/examples/node-agent-tool/README.md +165 -0
- package/examples/node-agent-tool/icp.yaml +11 -0
- package/examples/node-agent-tool/icrc1.did +88 -0
- package/examples/node-agent-tool/package.json +32 -0
- package/examples/node-agent-tool/src/canisters/icrc1.envelope.json +840 -0
- package/examples/node-agent-tool/src/canisters/icrc1.ts +78 -0
- package/examples/node-agent-tool/src/cli.test.ts +64 -0
- package/examples/node-agent-tool/src/cli.ts +23 -0
- package/examples/node-agent-tool/src/command-line.ts +159 -0
- package/examples/node-agent-tool/src/commands/balance.ts +73 -0
- package/examples/node-agent-tool/src/commands/demo.test.ts +51 -0
- package/examples/node-agent-tool/src/commands/demo.ts +359 -0
- package/examples/node-agent-tool/src/commands/info.ts +69 -0
- package/examples/node-agent-tool/src/commands/reads.test.ts +133 -0
- package/examples/node-agent-tool/src/commands/resend.test.ts +363 -0
- package/examples/node-agent-tool/src/commands/transfer.test.ts +313 -0
- package/examples/node-agent-tool/src/commands/transfer.ts +415 -0
- package/examples/node-agent-tool/src/commands/watch.test.ts +159 -0
- package/examples/node-agent-tool/src/commands/watch.ts +135 -0
- package/examples/node-agent-tool/src/commands/whoami.ts +36 -0
- package/examples/node-agent-tool/src/context.ts +20 -0
- package/examples/node-agent-tool/src/dispatch.ts +70 -0
- package/examples/node-agent-tool/src/failure.test.ts +59 -0
- package/examples/node-agent-tool/src/failure.ts +176 -0
- package/examples/node-agent-tool/src/identity.test.ts +242 -0
- package/examples/node-agent-tool/src/identity.ts +228 -0
- package/examples/node-agent-tool/src/input.ts +110 -0
- package/examples/node-agent-tool/src/ledgers.test.ts +74 -0
- package/examples/node-agent-tool/src/ledgers.ts +62 -0
- package/examples/node-agent-tool/src/mock-ledger.ts +211 -0
- package/examples/node-agent-tool/src/network.test.ts +128 -0
- package/examples/node-agent-tool/src/network.ts +101 -0
- package/examples/node-agent-tool/src/output.test.ts +208 -0
- package/examples/node-agent-tool/src/output.ts +163 -0
- package/examples/node-agent-tool/src/run.ts +73 -0
- package/examples/node-agent-tool/src/test-kit.ts +167 -0
- package/examples/node-agent-tool/tsconfig.json +18 -0
- package/examples/node-agent-tool/vitest.config.ts +8 -0
- package/examples/vite-wallet/.stackblitzrc +4 -0
- package/examples/vite-wallet/Cargo.lock +646 -0
- package/examples/vite-wallet/Cargo.toml +5 -0
- package/examples/vite-wallet/README.md +107 -0
- package/examples/vite-wallet/backend/Cargo.toml +12 -0
- package/examples/vite-wallet/backend/backend.did +37 -0
- package/examples/vite-wallet/backend/src/lib.rs +133 -0
- package/examples/vite-wallet/icp.yaml +44 -0
- package/examples/vite-wallet/index.html +13 -0
- package/examples/vite-wallet/ledger.did +54 -0
- package/examples/vite-wallet/package.json +46 -0
- package/examples/vite-wallet/public/.ic-assets.json5 +26 -0
- package/examples/vite-wallet/scripts/faucet-args.test.ts +30 -0
- package/examples/vite-wallet/scripts/faucet-args.ts +41 -0
- package/examples/vite-wallet/scripts/faucet.ts +41 -0
- package/examples/vite-wallet/src/AddressBook.test.tsx +191 -0
- package/examples/vite-wallet/src/AddressBook.tsx +147 -0
- package/examples/vite-wallet/src/App.tsx +53 -0
- package/examples/vite-wallet/src/Balance.test.tsx +57 -0
- package/examples/vite-wallet/src/Balance.tsx +58 -0
- package/examples/vite-wallet/src/EnvironmentPanel.test.tsx +83 -0
- package/examples/vite-wallet/src/EnvironmentPanel.tsx +103 -0
- package/examples/vite-wallet/src/ErrorNote.tsx +70 -0
- package/examples/vite-wallet/src/Profile.test.tsx +145 -0
- package/examples/vite-wallet/src/Profile.tsx +92 -0
- package/examples/vite-wallet/src/SendIcp.test.tsx +231 -0
- package/examples/vite-wallet/src/SendIcp.tsx +244 -0
- package/examples/vite-wallet/src/SendToContact.test.tsx +113 -0
- package/examples/vite-wallet/src/SendToContact.tsx +102 -0
- package/examples/vite-wallet/src/SignIn.test.tsx +106 -0
- package/examples/vite-wallet/src/SignIn.tsx +120 -0
- package/examples/vite-wallet/src/Wallet.test.tsx +89 -0
- package/examples/vite-wallet/src/account-switch.test.tsx +108 -0
- package/examples/vite-wallet/src/auth/dev-accounts.test.ts +113 -0
- package/examples/vite-wallet/src/auth/dev-accounts.ts +216 -0
- package/examples/vite-wallet/src/auth/local-page.test.ts +28 -0
- package/examples/vite-wallet/src/auth/local-page.ts +20 -0
- package/examples/vite-wallet/src/auth/wallet-auth.test.ts +159 -0
- package/examples/vite-wallet/src/auth/wallet-auth.ts +131 -0
- package/examples/vite-wallet/src/canisters/backend.envelope.json +275 -0
- package/examples/vite-wallet/src/canisters/backend.ts +58 -0
- package/examples/vite-wallet/src/canisters/ledger.envelope.json +451 -0
- package/examples/vite-wallet/src/canisters/ledger.ts +56 -0
- package/examples/vite-wallet/src/client.ts +45 -0
- package/examples/vite-wallet/src/main.tsx +18 -0
- package/examples/vite-wallet/src/optimistic-contacts.ts +113 -0
- package/examples/vite-wallet/src/refusal.ts +17 -0
- package/examples/vite-wallet/src/styles.css +282 -0
- package/examples/vite-wallet/src/test/test-wallet.tsx +322 -0
- package/examples/vite-wallet/src/token.ts +50 -0
- package/examples/vite-wallet/src/transfer.test.ts +178 -0
- package/examples/vite-wallet/src/transfer.ts +110 -0
- package/examples/vite-wallet/src/use-canisters.ts +49 -0
- package/examples/vite-wallet/tsconfig.json +19 -0
- package/examples/vite-wallet/vite.config.ts +47 -0
- package/examples/vite-wallet/vitest.config.ts +17 -0
- package/package.json +9 -4
- package/packages/core/.size-limit.js +47 -0
- package/packages/core/LICENSE +21 -0
- package/packages/core/README.md +84 -0
- package/packages/core/llms.txt +610 -0
- package/packages/core/package.json +89 -0
- package/packages/core/src/call.ts +961 -0
- package/packages/core/src/canister.ts +259 -0
- package/packages/core/src/client.ts +2061 -0
- package/packages/core/src/errors.ts +1079 -0
- package/packages/core/src/hydration.ts +239 -0
- package/packages/core/src/index.ts +23 -0
- package/packages/core/src/keys.ts +108 -0
- package/packages/core/src/management.ts +138 -0
- package/packages/core/src/network.ts +1020 -0
- package/packages/core/src/options.ts +1000 -0
- package/packages/core/src/runtime.ts +50 -0
- package/packages/core/src/testing/fake-replica.ts +1166 -0
- package/packages/core/src/testing/index.ts +16 -0
- package/packages/core/src/testing/test-auth.ts +340 -0
- package/packages/core/src/testing/test-client.ts +559 -0
- package/packages/core/src/types.ts +541 -0
- package/packages/core/src/units.ts +299 -0
- package/packages/core/src/version.ts +4 -0
- package/packages/core/tests/canister-helpers.ts +187 -0
- package/packages/core/tests/canister-id.test.ts +158 -0
- package/packages/core/tests/canister-unwrap.test.ts +94 -0
- package/packages/core/tests/canister.test-d.ts +406 -0
- package/packages/core/tests/canister.test.ts +1921 -0
- package/packages/core/tests/client-account-change.test.ts +131 -0
- package/packages/core/tests/client-agents.test.ts +402 -0
- package/packages/core/tests/client-auth-network.test.ts +719 -0
- package/packages/core/tests/client-disposed.test.ts +403 -0
- package/packages/core/tests/client-helpers.ts +136 -0
- package/packages/core/tests/client-hydration.test.ts +166 -0
- package/packages/core/tests/client-pinned.test.ts +626 -0
- package/packages/core/tests/client-session.test.ts +348 -0
- package/packages/core/tests/client.test-d.ts +181 -0
- package/packages/core/tests/client.test.ts +1162 -0
- package/packages/core/tests/encode.test.ts +171 -0
- package/packages/core/tests/env-canister-id.test.ts +666 -0
- package/packages/core/tests/env-cookie-copies.test.ts +182 -0
- package/packages/core/tests/error-guard.test.ts +222 -0
- package/packages/core/tests/errors.test-d.ts +280 -0
- package/packages/core/tests/errors.test.ts +1359 -0
- package/packages/core/tests/fixtures/README.md +28 -0
- package/packages/core/tests/fixtures/accounts.did +21 -0
- package/packages/core/tests/fixtures/accounts.envelope.json +367 -0
- package/packages/core/tests/fixtures/accounts.ts +26 -0
- package/packages/core/tests/fixtures/archive.did +31 -0
- package/packages/core/tests/fixtures/archive.envelope.json +259 -0
- package/packages/core/tests/fixtures/archive.ts +55 -0
- package/packages/core/tests/fixtures/icrc1.did +88 -0
- package/packages/core/tests/fixtures/icrc1.envelope.json +840 -0
- package/packages/core/tests/fixtures/icrc1.ts +78 -0
- package/packages/core/tests/fixtures/management.did +724 -0
- package/packages/core/tests/fixtures/management.envelope.json +4455 -0
- package/packages/core/tests/fixtures/management.ts +486 -0
- package/packages/core/tests/fixtures/shapes.did +33 -0
- package/packages/core/tests/fixtures/shapes.envelope.json +440 -0
- package/packages/core/tests/fixtures/shapes.ts +56 -0
- package/packages/core/tests/fixtures/skippable.did +15 -0
- package/packages/core/tests/fixtures/skippable.envelope.json +182 -0
- package/packages/core/tests/fixtures/skippable.ts +33 -0
- package/packages/core/tests/func.test.ts +154 -0
- package/packages/core/tests/identity-attributes.test.ts +214 -0
- package/packages/core/tests/keys.test.ts +289 -0
- package/packages/core/tests/management.test.ts +206 -0
- package/packages/core/tests/network-helpers.ts +121 -0
- package/packages/core/tests/network.test-d.ts +78 -0
- package/packages/core/tests/network.test.ts +1051 -0
- package/packages/core/tests/options.test.ts +1594 -0
- package/packages/core/tests/redirect-sign-in.test.ts +393 -0
- package/packages/core/tests/resend.test-d.ts +81 -0
- package/packages/core/tests/resend.test.ts +723 -0
- package/packages/core/tests/skip.test-d.ts +125 -0
- package/packages/core/tests/testing-entry.test.ts +73 -0
- package/packages/core/tests/testing-fake-replica.test.ts +1242 -0
- package/packages/core/tests/testing-test-auth.test-d.ts +84 -0
- package/packages/core/tests/testing-test-auth.test.ts +483 -0
- package/packages/core/tests/testing-test-client.test-d.ts +184 -0
- package/packages/core/tests/testing-test-client.test.ts +1272 -0
- package/packages/core/tests/time-realm.test.ts +63 -0
- package/packages/core/tests/time.test.ts +238 -0
- package/packages/core/tests/traps/README.md +39 -0
- package/packages/core/tests/traps/anonymous-write.test.ts +145 -0
- package/packages/core/tests/traps/classification-table.test.ts +256 -0
- package/packages/core/tests/traps/err-arm.test.ts +144 -0
- package/packages/core/tests/traps/fetch-spy.ts +39 -0
- package/packages/core/tests/traps/invalidation-after-write.test.ts +178 -0
- package/packages/core/tests/traps/ledger.ts +248 -0
- package/packages/core/tests/traps/root-key-off-local.test.ts +130 -0
- package/packages/core/tests/traps/stale-data-across-users.test.ts +173 -0
- package/packages/core/tests/traps/unresolved-name.test.ts +155 -0
- package/packages/core/tests/traps/update-as-query.test.ts +244 -0
- package/packages/core/tests/traps/update-not-resent.test.ts +126 -0
- package/packages/core/tests/traps/update-resent-when-never-delivered.test.ts +159 -0
- package/packages/core/tests/traps.test-d.ts +476 -0
- package/packages/core/tests/units.test-d.ts +118 -0
- package/packages/core/tests/units.test.ts +634 -0
- package/packages/core/tsconfig.json +19 -0
- package/packages/core/tsconfig.typecheck.json +16 -0
- package/packages/core/vitest.config.ts +13 -0
- package/packages/mcp/LICENSE +21 -0
- package/packages/mcp/README.md +189 -0
- package/packages/mcp/package.json +62 -0
- package/packages/mcp/src/candid/candid-text.test.ts +455 -0
- package/packages/mcp/src/candid/candid-text.ts +501 -0
- package/packages/mcp/src/candid/contract.test.ts +398 -0
- package/packages/mcp/src/candid/formats.ts +155 -0
- package/packages/mcp/src/candid/hex.ts +29 -0
- package/packages/mcp/src/candid/json-schema.test.ts +758 -0
- package/packages/mcp/src/candid/json-schema.ts +454 -0
- package/packages/mcp/src/candid/json.test.ts +1207 -0
- package/packages/mcp/src/candid/json.ts +1053 -0
- package/packages/mcp/src/candid/schema-walk.ts +189 -0
- package/packages/mcp/src/candid/type-text.test.ts +179 -0
- package/packages/mcp/src/candid/type-text.ts +238 -0
- package/packages/mcp/src/cli.ts +134 -0
- package/packages/mcp/src/identity.ts +188 -0
- package/packages/mcp/src/interface/cache.test.ts +48 -0
- package/packages/mcp/src/interface/cache.ts +68 -0
- package/packages/mcp/src/interface/cli-cache.test.ts +150 -0
- package/packages/mcp/src/interface/cli-cache.ts +122 -0
- package/packages/mcp/src/interface/compile-worker.test.ts +246 -0
- package/packages/mcp/src/interface/compile-worker.ts +290 -0
- package/packages/mcp/src/interface/compile.test.ts +155 -0
- package/packages/mcp/src/interface/compile.ts +281 -0
- package/packages/mcp/src/interface/docs.test.ts +105 -0
- package/packages/mcp/src/interface/docs.ts +86 -0
- package/packages/mcp/src/interface/fixtures/icrc1.did +88 -0
- package/packages/mcp/src/interface/hex.ts +8 -0
- package/packages/mcp/src/interface/ids.test.ts +71 -0
- package/packages/mcp/src/interface/ids.ts +87 -0
- package/packages/mcp/src/interface/loader.test.ts +804 -0
- package/packages/mcp/src/interface/loader.ts +519 -0
- package/packages/mcp/src/interface/read-candid.test.ts +300 -0
- package/packages/mcp/src/interface/read-candid.ts +259 -0
- package/packages/mcp/src/interface/types.ts +113 -0
- package/packages/mcp/src/network.ts +122 -0
- package/packages/mcp/src/options.ts +149 -0
- package/packages/mcp/src/server/approval.ts +159 -0
- package/packages/mcp/src/server/naming.ts +43 -0
- package/packages/mcp/src/server/results.ts +102 -0
- package/packages/mcp/src/server/server.ts +797 -0
- package/packages/mcp/src/server/tools.ts +116 -0
- package/packages/mcp/src/usage.ts +40 -0
- package/packages/mcp/tests/approval.test.ts +60 -0
- package/packages/mcp/tests/identity.test.ts +234 -0
- package/packages/mcp/tests/naming.test.ts +62 -0
- package/packages/mcp/tests/options.test.ts +140 -0
- package/packages/mcp/tests/server.test.ts +997 -0
- package/packages/mcp/tsconfig.json +19 -0
- package/packages/mcp/tsconfig.typecheck.json +10 -0
- package/packages/mcp/vitest.config.ts +10 -0
- package/packages/react/LICENSE +21 -0
- package/packages/react/README.md +328 -0
- package/packages/react/llms.txt +95 -0
- package/packages/react/package.json +95 -0
- package/packages/react/src/index.tsx +678 -0
- package/packages/react/tests/abandoned-render.test.tsx +816 -0
- package/packages/react/tests/auth.test.tsx +315 -0
- package/packages/react/tests/caller-keys.test.tsx +2334 -0
- package/packages/react/tests/client-time.test.ts +40 -0
- package/packages/react/tests/entry.test.ts +52 -0
- package/packages/react/tests/helpers.tsx +291 -0
- package/packages/react/tests/hydration.test.tsx +262 -0
- package/packages/react/tests/ownership.test.tsx +260 -0
- package/packages/react/tests/provider.server.test.tsx +169 -0
- package/packages/react/tests/query-client.test.tsx +107 -0
- package/packages/react/tests/strict-mode.test.tsx +288 -0
- package/packages/react/tests/suspense.test-d.tsx +357 -0
- package/packages/react/tests/two-query-cores.test.tsx +135 -0
- package/packages/react/tests/types.test-d.tsx +63 -0
- package/packages/react/tsconfig.json +23 -0
- package/packages/react/tsconfig.test.json +8 -0
- package/packages/react/tsconfig.typecheck.json +16 -0
- package/packages/react/vitest.config.ts +39 -0
- package/packages/vite-plugin/LICENSE +21 -0
- package/packages/vite-plugin/README.md +532 -0
- package/packages/vite-plugin/package.json +76 -0
- package/packages/vite-plugin/src/describe-value.test.ts +43 -0
- package/packages/vite-plugin/src/describe-value.ts +167 -0
- package/packages/vite-plugin/src/dev-environment.test.ts +747 -0
- package/packages/vite-plugin/src/dev-environment.ts +510 -0
- package/packages/vite-plugin/src/env.ts +431 -0
- package/packages/vite-plugin/src/fetch.ts +348 -0
- package/packages/vite-plugin/src/file-identity.ts +106 -0
- package/packages/vite-plugin/src/generate.ts +691 -0
- package/packages/vite-plugin/src/index.test.ts +1243 -0
- package/packages/vite-plugin/src/index.ts +2565 -0
- package/packages/vite-plugin/src/interface.ts +339 -0
- package/packages/vite-plugin/src/local-host.ts +34 -0
- package/packages/vite-plugin/src/options.ts +641 -0
- package/packages/vite-plugin/src/principal-text.test.ts +87 -0
- package/packages/vite-plugin/src/principal-text.ts +98 -0
- package/packages/vite-plugin/tests/close.test.ts +141 -0
- package/packages/vite-plugin/tests/environment-mode.test.ts +136 -0
- package/packages/vite-plugin/tests/fake-ic.ts +214 -0
- package/packages/vite-plugin/tests/fetch-sdk.test.ts +27 -0
- package/packages/vite-plugin/tests/fetch.test.ts +1196 -0
- package/packages/vite-plugin/tests/fixtures/fake-cli/bin.js +90 -0
- package/packages/vite-plugin/tests/fixtures/fake-cli/package.json +8 -0
- package/packages/vite-plugin/tests/fixtures/icrc1.did +88 -0
- package/packages/vite-plugin/tests/generation.test.ts +1036 -0
- package/packages/vite-plugin/tests/icp-command.test.ts +194 -0
- package/packages/vite-plugin/tests/icp-timeout.test.ts +83 -0
- package/packages/vite-plugin/tests/no-process-exit.test.ts +83 -0
- package/packages/vite-plugin/tests/on-generated.test.ts +323 -0
- package/packages/vite-plugin/tests/output-collision.test.ts +329 -0
- package/packages/vite-plugin/tests/package.test.ts +62 -0
- package/packages/vite-plugin/tests/project.test.ts +2993 -0
- package/packages/vite-plugin/tests/support.ts +339 -0
- package/packages/vite-plugin/tests/timeout.test.ts +107 -0
- package/packages/vite-plugin/tsconfig.json +23 -0
- package/packages/vite-plugin/tsconfig.typecheck.json +16 -0
- package/packages/vite-plugin/vitest.config.ts +9 -0
- package/pnpm-workspace.yaml +23 -0
- package/scripts/ai-context-files.js +72 -0
- package/scripts/assemble-docs-site.mjs +485 -0
- package/scripts/assemble-docs-site.test.mjs +568 -0
- package/scripts/build-examples.js +58 -0
- package/scripts/check-ai-context.js +963 -0
- package/scripts/check-ai-context.test.mjs +811 -0
- package/scripts/check-exports.mjs +767 -0
- package/scripts/check-exports.test.mjs +1136 -0
- package/scripts/check-snippets/ambient.d.ts +428 -0
- package/scripts/check-snippets/app/generated/backend.did +7 -0
- package/scripts/check-snippets/app/generated/backend.ts +15 -0
- package/scripts/check-snippets/app/generated/icrc1.did +88 -0
- package/scripts/check-snippets/app/generated/icrc1.ts +78 -0
- package/scripts/check-snippets/app/globals.ts +26 -0
- package/scripts/check-snippets/docs/guides/App.tsx +21 -0
- package/scripts/check-snippets/docs/guides/app/providers.tsx +23 -0
- package/scripts/check-snippets/docs/guides/auth-client.ts +47 -0
- package/scripts/check-snippets/docs/guides/canisters/backend.ts +3 -0
- package/scripts/check-snippets/docs/guides/canisters/icrc1.ts +3 -0
- package/scripts/check-snippets/docs/guides/components/LedgerCard.tsx +26 -0
- package/scripts/check-snippets/docs/guides/components/shell.tsx +11 -0
- package/scripts/check-snippets/docs/guides/components/sign-in-page.tsx +29 -0
- package/scripts/check-snippets/docs/guides/components/slow-section.tsx +5 -0
- package/scripts/check-snippets/docs/guides/generated/accounts.ts +95 -0
- package/scripts/check-snippets/docs/guides/generated/ckbtc_minter.ts +40 -0
- package/scripts/check-snippets/docs/guides/generated/icp_ledger.ts +267 -0
- package/scripts/check-snippets/docs/guides/ledger.ts +10 -0
- package/scripts/check-snippets/docs/guides/server/request-client.ts +8 -0
- package/scripts/check-snippets.mjs +993 -0
- package/scripts/check-snippets.test.mjs +338 -0
- package/scripts/check-stack.mjs +501 -0
- package/scripts/check-stack.test.mjs +800 -0
- package/scripts/clean-node-modules.js +67 -0
- package/scripts/example-projects.js +58 -0
- package/scripts/export-budget.mjs +145 -0
- package/scripts/faults.json +6749 -0
- package/scripts/lib/fault-workspace.mjs +210 -0
- package/scripts/lib/io.mjs +29 -0
- package/scripts/lib/io.test.mjs +38 -0
- package/scripts/lib/markdown-fences.mjs +56 -0
- package/scripts/lib/markdown-fences.test.mjs +84 -0
- package/scripts/lib/package-exports.mjs +54 -0
- package/scripts/lib/package-exports.test.mjs +66 -0
- package/scripts/lib/release-pr-steps.mjs +47 -0
- package/scripts/release-tag.mjs +95 -0
- package/scripts/release-tag.test.mjs +278 -0
- package/scripts/release-workflow.test.mjs +98 -0
- package/scripts/release.js +167 -0
- package/scripts/release.test.mjs +347 -0
- package/scripts/removed-v3-names.js +125 -0
- package/scripts/size-app/.size-limit.js +90 -0
- package/scripts/size-app/core.js +3 -0
- package/scripts/size-app/package.json +24 -0
- package/scripts/size-app/react.js +4 -0
- package/scripts/size-app.test.mjs +73 -0
- package/scripts/sync-ai-context-versions.js +102 -0
- package/scripts/sync-example-versions.js +151 -0
- package/scripts/test-examples-published.mjs +1585 -0
- package/scripts/test-examples-published.test.mjs +1586 -0
- package/scripts/traps/any-method-vars-not-a-list.json +5 -0
- package/scripts/traps/canister-method-unknown.json +5 -0
- package/scripts/traps/client-says-who-calls-once.json +5 -0
- package/scripts/traps/client-says-who-calls.json +5 -0
- package/scripts/traps/err-only-on-canister-err.json +14 -0
- package/scripts/traps/format-units-refuses-missing-value.json +5 -0
- package/scripts/traps/format-units-refuses-number.json +5 -0
- package/scripts/traps/format-units-unknown-option.json +5 -0
- package/scripts/traps/guard-err-is-the-methods.json +5 -0
- package/scripts/traps/guard-false-keeps-every-kind.json +5 -0
- package/scripts/traps/internals-not-exported.json +9 -0
- package/scripts/traps/network-refuses-unknown-name.json +5 -0
- package/scripts/traps/never-err-has-no-type.json +5 -0
- package/scripts/traps/options-method-unknown.json +5 -0
- package/scripts/traps/options-vars-wrong-type.json +5 -0
- package/scripts/traps/parse-units-refuses-number.json +5 -0
- package/scripts/traps/parse-units-unknown-option.json +5 -0
- package/scripts/traps/principal-is-not-plain-text.json +14 -0
- package/scripts/traps/query-options-refuses-oneway.json +5 -0
- package/scripts/traps/query-options-refuses-update.json +5 -0
- package/scripts/traps/refuse-next-unknown-option.json +5 -0
- package/scripts/traps/resend-key-reads-the-methods-arg.json +5 -0
- package/scripts/traps/resend-states-its-dedupe-key.json +5 -0
- package/scripts/traps/suspense-refuses-argument-skip.json +5 -0
- package/scripts/traps/suspense-refuses-skippable-read.json +5 -0
- package/scripts/traps/suspense-refuses-vars-skip-fits.json +5 -0
- package/scripts/traps/test-handler-method-unknown.json +5 -0
- package/scripts/traps/test-handler-nat-is-bigint.json +5 -0
- package/scripts/traps/test-handler-takes-the-domain-value.json +5 -0
- package/scripts/traps/vars-of-two-arguments-are-the-tuple.json +5 -0
- package/scripts/typecheck-examples.js +122 -0
- package/scripts/verify-faults.mjs +375 -0
- package/scripts/verify-faults.test.mjs +402 -0
- package/scripts/verify-package-artifacts.mjs +590 -0
- package/scripts/verify-peer-floors.js +399 -0
- package/scripts/verify-peer-floors.test.mjs +422 -0
- package/scripts/verify-test-fails-rules.mjs +104 -0
- package/scripts/verify-test-fails-rules.test.mjs +215 -0
- package/scripts/verify-test-fails.js +371 -0
- package/scripts/verify-traps.mjs +505 -0
- package/scripts/verify-traps.test.mjs +521 -0
- package/scripts/verify-typescript-floor.js +239 -0
- package/skill-packages/ic-reactor/SKILL.md +103 -0
- package/stack.json +8 -0
- package/tsconfig.base.json +23 -0
- 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).
|