@ixo/openhands-sdk 0.0.0-stage → 0.1.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/LICENSE +201 -0
- package/README.md +246 -2
- package/dist/cjs/board.d.ts +20 -0
- package/dist/cjs/board.d.ts.map +1 -0
- package/dist/cjs/board.js +60 -0
- package/dist/cjs/board.js.map +1 -0
- package/dist/cjs/campaign/badges.d.ts +30 -0
- package/dist/cjs/campaign/badges.d.ts.map +1 -0
- package/dist/cjs/campaign/badges.js +69 -0
- package/dist/cjs/campaign/badges.js.map +1 -0
- package/dist/cjs/campaign/bands.d.ts +161 -0
- package/dist/cjs/campaign/bands.d.ts.map +1 -0
- package/dist/cjs/campaign/bands.js +186 -0
- package/dist/cjs/campaign/bands.js.map +1 -0
- package/dist/cjs/campaign/campaign.d.ts +50 -0
- package/dist/cjs/campaign/campaign.d.ts.map +1 -0
- package/dist/cjs/campaign/campaign.js +183 -0
- package/dist/cjs/campaign/campaign.js.map +1 -0
- package/dist/cjs/campaign/campaigns.d.ts +2 -0
- package/dist/cjs/campaign/campaigns.d.ts.map +1 -0
- package/dist/cjs/campaign/campaigns.js +37 -0
- package/dist/cjs/campaign/campaigns.js.map +1 -0
- package/dist/cjs/campaign/cleanable.d.ts +13 -0
- package/dist/cjs/campaign/cleanable.d.ts.map +1 -0
- package/dist/cjs/campaign/cleanable.js +6 -0
- package/dist/cjs/campaign/cleanable.js.map +1 -0
- package/dist/cjs/campaign/cleanup.d.ts +78 -0
- package/dist/cjs/campaign/cleanup.d.ts.map +1 -0
- package/dist/cjs/campaign/cleanup.js +132 -0
- package/dist/cjs/campaign/cleanup.js.map +1 -0
- package/dist/cjs/campaign/commit.d.ts +39 -0
- package/dist/cjs/campaign/commit.d.ts.map +1 -0
- package/dist/cjs/campaign/commit.js +43 -0
- package/dist/cjs/campaign/commit.js.map +1 -0
- package/dist/cjs/campaign/field.d.ts +50 -0
- package/dist/cjs/campaign/field.d.ts.map +1 -0
- package/dist/cjs/campaign/field.js +94 -0
- package/dist/cjs/campaign/field.js.map +1 -0
- package/dist/cjs/campaign/fold.d.ts +227 -0
- package/dist/cjs/campaign/fold.d.ts.map +1 -0
- package/dist/cjs/campaign/fold.js +459 -0
- package/dist/cjs/campaign/fold.js.map +1 -0
- package/dist/cjs/campaign/funding.d.ts +153 -0
- package/dist/cjs/campaign/funding.d.ts.map +1 -0
- package/dist/cjs/campaign/funding.js +168 -0
- package/dist/cjs/campaign/funding.js.map +1 -0
- package/dist/cjs/campaign/landing.d.ts +20 -0
- package/dist/cjs/campaign/landing.d.ts.map +1 -0
- package/dist/cjs/campaign/landing.js +54 -0
- package/dist/cjs/campaign/landing.js.map +1 -0
- package/dist/cjs/campaign/pledges.d.ts +237 -0
- package/dist/cjs/campaign/pledges.d.ts.map +1 -0
- package/dist/cjs/campaign/pledges.js +235 -0
- package/dist/cjs/campaign/pledges.js.map +1 -0
- package/dist/cjs/campaign/pledgesChain.d.ts +58 -0
- package/dist/cjs/campaign/pledgesChain.d.ts.map +1 -0
- package/dist/cjs/campaign/pledgesChain.js +102 -0
- package/dist/cjs/campaign/pledgesChain.js.map +1 -0
- package/dist/cjs/campaign/pool.d.ts +137 -0
- package/dist/cjs/campaign/pool.d.ts.map +1 -0
- package/dist/cjs/campaign/pool.js +237 -0
- package/dist/cjs/campaign/pool.js.map +1 -0
- package/dist/cjs/campaign/record.d.ts +115 -0
- package/dist/cjs/campaign/record.d.ts.map +1 -0
- package/dist/cjs/campaign/record.js +291 -0
- package/dist/cjs/campaign/record.js.map +1 -0
- package/dist/cjs/campaign/rule.d.ts +311 -0
- package/dist/cjs/campaign/rule.d.ts.map +1 -0
- package/dist/cjs/campaign/rule.js +210 -0
- package/dist/cjs/campaign/rule.js.map +1 -0
- package/dist/cjs/campaign/spot.d.ts +37 -0
- package/dist/cjs/campaign/spot.d.ts.map +1 -0
- package/dist/cjs/campaign/spot.js +170 -0
- package/dist/cjs/campaign/spot.js.map +1 -0
- package/dist/cjs/campaign/spots.d.ts +437 -0
- package/dist/cjs/campaign/spots.d.ts.map +1 -0
- package/dist/cjs/campaign/spots.js +790 -0
- package/dist/cjs/campaign/spots.js.map +1 -0
- package/dist/cjs/campaign/standings.d.ts +236 -0
- package/dist/cjs/campaign/standings.d.ts.map +1 -0
- package/dist/cjs/campaign/standings.js +372 -0
- package/dist/cjs/campaign/standings.js.map +1 -0
- package/dist/cjs/campaign/treasurySends.d.ts +116 -0
- package/dist/cjs/campaign/treasurySends.d.ts.map +1 -0
- package/dist/cjs/campaign/treasurySends.js +198 -0
- package/dist/cjs/campaign/treasurySends.js.map +1 -0
- package/dist/cjs/campaign.d.ts +29 -0
- package/dist/cjs/campaign.d.ts.map +1 -0
- package/dist/cjs/campaign.js +44 -0
- package/dist/cjs/campaign.js.map +1 -0
- package/dist/cjs/chain/account.d.ts +47 -0
- package/dist/cjs/chain/account.d.ts.map +1 -0
- package/dist/cjs/chain/account.js +196 -0
- package/dist/cjs/chain/account.js.map +1 -0
- package/dist/cjs/chain/accountProof.d.ts +135 -0
- package/dist/cjs/chain/accountProof.d.ts.map +1 -0
- package/dist/cjs/chain/accountProof.js +199 -0
- package/dist/cjs/chain/accountProof.js.map +1 -0
- package/dist/cjs/chain/allowance.d.ts +17 -0
- package/dist/cjs/chain/allowance.d.ts.map +1 -0
- package/dist/cjs/chain/allowance.js +81 -0
- package/dist/cjs/chain/allowance.js.map +1 -0
- package/dist/cjs/chain/allowanceRead.d.ts +2 -0
- package/dist/cjs/chain/allowanceRead.d.ts.map +1 -0
- package/dist/cjs/chain/allowanceRead.js +59 -0
- package/dist/cjs/chain/allowanceRead.js.map +1 -0
- package/dist/cjs/chain/ask.d.ts +211 -0
- package/dist/cjs/chain/ask.d.ts.map +1 -0
- package/dist/cjs/chain/ask.js +559 -0
- package/dist/cjs/chain/ask.js.map +1 -0
- package/dist/cjs/chain/bridge.d.ts +50 -0
- package/dist/cjs/chain/bridge.d.ts.map +1 -0
- package/dist/cjs/chain/bridge.js +82 -0
- package/dist/cjs/chain/bridge.js.map +1 -0
- package/dist/cjs/chain/broadcast.d.ts +40 -0
- package/dist/cjs/chain/broadcast.d.ts.map +1 -0
- package/dist/cjs/chain/broadcast.js +189 -0
- package/dist/cjs/chain/broadcast.js.map +1 -0
- package/dist/cjs/chain/delegate.d.ts +154 -0
- package/dist/cjs/chain/delegate.d.ts.map +1 -0
- package/dist/cjs/chain/delegate.js +245 -0
- package/dist/cjs/chain/delegate.js.map +1 -0
- package/dist/cjs/chain/encoding.d.ts +7 -0
- package/dist/cjs/chain/encoding.d.ts.map +1 -0
- package/dist/cjs/chain/encoding.js +29 -0
- package/dist/cjs/chain/encoding.js.map +1 -0
- package/dist/cjs/chain/env.d.ts +50 -0
- package/dist/cjs/chain/env.d.ts.map +1 -0
- package/dist/cjs/chain/env.js +89 -0
- package/dist/cjs/chain/env.js.map +1 -0
- package/dist/cjs/chain/gate.d.ts +12 -0
- package/dist/cjs/chain/gate.d.ts.map +1 -0
- package/dist/cjs/chain/gate.js +55 -0
- package/dist/cjs/chain/gate.js.map +1 -0
- package/dist/cjs/chain/grantPending.d.ts +31 -0
- package/dist/cjs/chain/grantPending.d.ts.map +1 -0
- package/dist/cjs/chain/grantPending.js +56 -0
- package/dist/cjs/chain/grantPending.js.map +1 -0
- package/dist/cjs/chain/guest.d.ts +97 -0
- package/dist/cjs/chain/guest.d.ts.map +1 -0
- package/dist/cjs/chain/guest.js +211 -0
- package/dist/cjs/chain/guest.js.map +1 -0
- package/dist/cjs/chain/iid.d.ts +26 -0
- package/dist/cjs/chain/iid.d.ts.map +1 -0
- package/dist/cjs/chain/iid.js +71 -0
- package/dist/cjs/chain/iid.js.map +1 -0
- package/dist/cjs/chain/money.d.ts +48 -0
- package/dist/cjs/chain/money.d.ts.map +1 -0
- package/dist/cjs/chain/money.js +72 -0
- package/dist/cjs/chain/money.js.map +1 -0
- package/dist/cjs/chain/oracle.d.ts +24 -0
- package/dist/cjs/chain/oracle.d.ts.map +1 -0
- package/dist/cjs/chain/oracle.js +46 -0
- package/dist/cjs/chain/oracle.js.map +1 -0
- package/dist/cjs/chain/pendingTransact.d.ts +31 -0
- package/dist/cjs/chain/pendingTransact.d.ts.map +1 -0
- package/dist/cjs/chain/pendingTransact.js +64 -0
- package/dist/cjs/chain/pendingTransact.js.map +1 -0
- package/dist/cjs/chain/query.d.ts +75 -0
- package/dist/cjs/chain/query.d.ts.map +1 -0
- package/dist/cjs/chain/query.js +171 -0
- package/dist/cjs/chain/query.js.map +1 -0
- package/dist/cjs/chain/send.d.ts +42 -0
- package/dist/cjs/chain/send.d.ts.map +1 -0
- package/dist/cjs/chain/send.js +54 -0
- package/dist/cjs/chain/send.js.map +1 -0
- package/dist/cjs/chain/session.d.ts +109 -0
- package/dist/cjs/chain/session.d.ts.map +1 -0
- package/dist/cjs/chain/session.js +145 -0
- package/dist/cjs/chain/session.js.map +1 -0
- package/dist/cjs/chain/signWith.d.ts +69 -0
- package/dist/cjs/chain/signWith.d.ts.map +1 -0
- package/dist/cjs/chain/signWith.js +277 -0
- package/dist/cjs/chain/signWith.js.map +1 -0
- package/dist/cjs/chain/signer.d.ts +38 -0
- package/dist/cjs/chain/signer.d.ts.map +1 -0
- package/dist/cjs/chain/signer.js +78 -0
- package/dist/cjs/chain/signer.js.map +1 -0
- package/dist/cjs/chain/signx.d.ts +233 -0
- package/dist/cjs/chain/signx.d.ts.map +1 -0
- package/dist/cjs/chain/signx.js +490 -0
- package/dist/cjs/chain/signx.js.map +1 -0
- package/dist/cjs/chain/sponsor.d.ts +2 -0
- package/dist/cjs/chain/sponsor.d.ts.map +1 -0
- package/dist/cjs/chain/sponsor.js +76 -0
- package/dist/cjs/chain/sponsor.js.map +1 -0
- package/dist/cjs/chain/store.d.ts +115 -0
- package/dist/cjs/chain/store.d.ts.map +1 -0
- package/dist/cjs/chain/store.js +212 -0
- package/dist/cjs/chain/store.js.map +1 -0
- package/dist/cjs/chain/subscription.d.ts +73 -0
- package/dist/cjs/chain/subscription.d.ts.map +1 -0
- package/dist/cjs/chain/subscription.js +248 -0
- package/dist/cjs/chain/subscription.js.map +1 -0
- package/dist/cjs/chain/takeBack.d.ts +114 -0
- package/dist/cjs/chain/takeBack.d.ts.map +1 -0
- package/dist/cjs/chain/takeBack.js +190 -0
- package/dist/cjs/chain/takeBack.js.map +1 -0
- package/dist/cjs/chain/union.d.ts +125 -0
- package/dist/cjs/chain/union.d.ts.map +1 -0
- package/dist/cjs/chain/union.js +338 -0
- package/dist/cjs/chain/union.js.map +1 -0
- package/dist/cjs/chain/webauthn.d.ts +22 -0
- package/dist/cjs/chain/webauthn.d.ts.map +1 -0
- package/dist/cjs/chain/webauthn.js +70 -0
- package/dist/cjs/chain/webauthn.js.map +1 -0
- package/dist/cjs/chain.d.ts +35 -0
- package/dist/cjs/chain.d.ts.map +1 -0
- package/dist/cjs/chain.js +119 -0
- package/dist/cjs/chain.js.map +1 -0
- package/dist/cjs/config.d.ts +120 -0
- package/dist/cjs/config.d.ts.map +1 -0
- package/dist/cjs/config.js +128 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/data/accept.d.ts +69 -0
- package/dist/cjs/data/accept.d.ts.map +1 -0
- package/dist/cjs/data/accept.js +192 -0
- package/dist/cjs/data/accept.js.map +1 -0
- package/dist/cjs/data/agent.d.ts +87 -0
- package/dist/cjs/data/agent.d.ts.map +1 -0
- package/dist/cjs/data/agent.js +112 -0
- package/dist/cjs/data/agent.js.map +1 -0
- package/dist/cjs/data/askFilter.d.ts +45 -0
- package/dist/cjs/data/askFilter.d.ts.map +1 -0
- package/dist/cjs/data/askFilter.js +53 -0
- package/dist/cjs/data/askFilter.js.map +1 -0
- package/dist/cjs/data/authenticators.d.ts +35 -0
- package/dist/cjs/data/authenticators.d.ts.map +1 -0
- package/dist/cjs/data/authenticators.js +76 -0
- package/dist/cjs/data/authenticators.js.map +1 -0
- package/dist/cjs/data/balance.d.ts +39 -0
- package/dist/cjs/data/balance.d.ts.map +1 -0
- package/dist/cjs/data/balance.js +119 -0
- package/dist/cjs/data/balance.js.map +1 -0
- package/dist/cjs/data/board/assemble.d.ts +140 -0
- package/dist/cjs/data/board/assemble.d.ts.map +1 -0
- package/dist/cjs/data/board/assemble.js +556 -0
- package/dist/cjs/data/board/assemble.js.map +1 -0
- package/dist/cjs/data/board/coverage.d.ts +112 -0
- package/dist/cjs/data/board/coverage.d.ts.map +1 -0
- package/dist/cjs/data/board/coverage.js +192 -0
- package/dist/cjs/data/board/coverage.js.map +1 -0
- package/dist/cjs/data/board/facts.d.ts +63 -0
- package/dist/cjs/data/board/facts.d.ts.map +1 -0
- package/dist/cjs/data/board/facts.js +137 -0
- package/dist/cjs/data/board/facts.js.map +1 -0
- package/dist/cjs/data/board/fixtures.d.ts +21 -0
- package/dist/cjs/data/board/fixtures.d.ts.map +1 -0
- package/dist/cjs/data/board/fixtures.js +46 -0
- package/dist/cjs/data/board/fixtures.js.map +1 -0
- package/dist/cjs/data/board/query.d.ts +12 -0
- package/dist/cjs/data/board/query.d.ts.map +1 -0
- package/dist/cjs/data/board/query.js +82 -0
- package/dist/cjs/data/board/query.js.map +1 -0
- package/dist/cjs/data/board/rank.d.ts +22 -0
- package/dist/cjs/data/board/rank.d.ts.map +1 -0
- package/dist/cjs/data/board/rank.js +51 -0
- package/dist/cjs/data/board/rank.js.map +1 -0
- package/dist/cjs/data/board/read.d.ts +102 -0
- package/dist/cjs/data/board/read.d.ts.map +1 -0
- package/dist/cjs/data/board/read.js +211 -0
- package/dist/cjs/data/board/read.js.map +1 -0
- package/dist/cjs/data/board/series.d.ts +50 -0
- package/dist/cjs/data/board/series.d.ts.map +1 -0
- package/dist/cjs/data/board/series.js +161 -0
- package/dist/cjs/data/board/series.js.map +1 -0
- package/dist/cjs/data/board/trust.d.ts +31 -0
- package/dist/cjs/data/board/trust.d.ts.map +1 -0
- package/dist/cjs/data/board/trust.js +53 -0
- package/dist/cjs/data/board/trust.js.map +1 -0
- package/dist/cjs/data/board/types.d.ts +338 -0
- package/dist/cjs/data/board/types.d.ts.map +1 -0
- package/dist/cjs/data/board/types.js +88 -0
- package/dist/cjs/data/board/types.js.map +1 -0
- package/dist/cjs/data/board/url.d.ts +22 -0
- package/dist/cjs/data/board/url.d.ts.map +1 -0
- package/dist/cjs/data/board/url.js +70 -0
- package/dist/cjs/data/board/url.js.map +1 -0
- package/dist/cjs/data/board/words.d.ts +25 -0
- package/dist/cjs/data/board/words.d.ts.map +1 -0
- package/dist/cjs/data/board/words.js +60 -0
- package/dist/cjs/data/board/words.js.map +1 -0
- package/dist/cjs/data/cid.d.ts +49 -0
- package/dist/cjs/data/cid.d.ts.map +1 -0
- package/dist/cjs/data/cid.js +91 -0
- package/dist/cjs/data/cid.js.map +1 -0
- package/dist/cjs/data/concurrency.d.ts +14 -0
- package/dist/cjs/data/concurrency.d.ts.map +1 -0
- package/dist/cjs/data/concurrency.js +32 -0
- package/dist/cjs/data/concurrency.js.map +1 -0
- package/dist/cjs/data/credentials.d.ts +28 -0
- package/dist/cjs/data/credentials.d.ts.map +1 -0
- package/dist/cjs/data/credentials.js +81 -0
- package/dist/cjs/data/credentials.js.map +1 -0
- package/dist/cjs/data/denoms.d.ts +11 -0
- package/dist/cjs/data/denoms.d.ts.map +1 -0
- package/dist/cjs/data/denoms.js +106 -0
- package/dist/cjs/data/denoms.js.map +1 -0
- package/dist/cjs/data/displayNames.d.ts +58 -0
- package/dist/cjs/data/displayNames.d.ts.map +1 -0
- package/dist/cjs/data/displayNames.js +99 -0
- package/dist/cjs/data/displayNames.js.map +1 -0
- package/dist/cjs/data/docPath.d.ts +28 -0
- package/dist/cjs/data/docPath.d.ts.map +1 -0
- package/dist/cjs/data/docPath.js +44 -0
- package/dist/cjs/data/docPath.js.map +1 -0
- package/dist/cjs/data/docUrls.d.ts +38 -0
- package/dist/cjs/data/docUrls.d.ts.map +1 -0
- package/dist/cjs/data/docUrls.js +70 -0
- package/dist/cjs/data/docUrls.js.map +1 -0
- package/dist/cjs/data/docs.d.ts +61 -0
- package/dist/cjs/data/docs.d.ts.map +1 -0
- package/dist/cjs/data/docs.js +199 -0
- package/dist/cjs/data/docs.js.map +1 -0
- package/dist/cjs/data/engine.d.ts +193 -0
- package/dist/cjs/data/engine.d.ts.map +1 -0
- package/dist/cjs/data/engine.js +411 -0
- package/dist/cjs/data/engine.js.map +1 -0
- package/dist/cjs/data/engineUrl.d.ts +19 -0
- package/dist/cjs/data/engineUrl.d.ts.map +1 -0
- package/dist/cjs/data/engineUrl.js +30 -0
- package/dist/cjs/data/engineUrl.js.map +1 -0
- package/dist/cjs/data/envelope.d.ts +69 -0
- package/dist/cjs/data/envelope.d.ts.map +1 -0
- package/dist/cjs/data/envelope.js +77 -0
- package/dist/cjs/data/envelope.js.map +1 -0
- package/dist/cjs/data/format.d.ts +122 -0
- package/dist/cjs/data/format.d.ts.map +1 -0
- package/dist/cjs/data/format.js +272 -0
- package/dist/cjs/data/format.js.map +1 -0
- package/dist/cjs/data/gql.d.ts +56 -0
- package/dist/cjs/data/gql.d.ts.map +1 -0
- package/dist/cjs/data/gql.js +109 -0
- package/dist/cjs/data/gql.js.map +1 -0
- package/dist/cjs/data/granters.d.ts +15 -0
- package/dist/cjs/data/granters.d.ts.map +1 -0
- package/dist/cjs/data/granters.js +76 -0
- package/dist/cjs/data/granters.js.map +1 -0
- package/dist/cjs/data/index.d.ts +18 -0
- package/dist/cjs/data/index.d.ts.map +1 -0
- package/dist/cjs/data/index.js +88 -0
- package/dist/cjs/data/index.js.map +1 -0
- package/dist/cjs/data/install.d.ts +95 -0
- package/dist/cjs/data/install.d.ts.map +1 -0
- package/dist/cjs/data/install.js +123 -0
- package/dist/cjs/data/install.js.map +1 -0
- package/dist/cjs/data/issueMessage.d.ts +20 -0
- package/dist/cjs/data/issueMessage.d.ts.map +1 -0
- package/dist/cjs/data/issueMessage.js +20 -0
- package/dist/cjs/data/issueMessage.js.map +1 -0
- package/dist/cjs/data/linked.d.ts +54 -0
- package/dist/cjs/data/linked.d.ts.map +1 -0
- package/dist/cjs/data/linked.js +142 -0
- package/dist/cjs/data/linked.js.map +1 -0
- package/dist/cjs/data/network.d.ts +21 -0
- package/dist/cjs/data/network.d.ts.map +1 -0
- package/dist/cjs/data/network.js +28 -0
- package/dist/cjs/data/network.js.map +1 -0
- package/dist/cjs/data/openness.d.ts +93 -0
- package/dist/cjs/data/openness.d.ts.map +1 -0
- package/dist/cjs/data/openness.js +145 -0
- package/dist/cjs/data/openness.js.map +1 -0
- package/dist/cjs/data/oracleInfo.d.ts +20 -0
- package/dist/cjs/data/oracleInfo.d.ts.map +1 -0
- package/dist/cjs/data/oracleInfo.js +38 -0
- package/dist/cjs/data/oracleInfo.js.map +1 -0
- package/dist/cjs/data/oracles.d.ts +44 -0
- package/dist/cjs/data/oracles.d.ts.map +1 -0
- package/dist/cjs/data/oracles.js +115 -0
- package/dist/cjs/data/oracles.js.map +1 -0
- package/dist/cjs/data/outbound.d.ts +50 -0
- package/dist/cjs/data/outbound.d.ts.map +1 -0
- package/dist/cjs/data/outbound.js +102 -0
- package/dist/cjs/data/outbound.js.map +1 -0
- package/dist/cjs/data/paged.d.ts +48 -0
- package/dist/cjs/data/paged.d.ts.map +1 -0
- package/dist/cjs/data/paged.js +81 -0
- package/dist/cjs/data/paged.js.map +1 -0
- package/dist/cjs/data/profiles.d.ts +3 -0
- package/dist/cjs/data/profiles.d.ts.map +1 -0
- package/dist/cjs/data/profiles.js +71 -0
- package/dist/cjs/data/profiles.js.map +1 -0
- package/dist/cjs/data/proof.d.ts +93 -0
- package/dist/cjs/data/proof.d.ts.map +1 -0
- package/dist/cjs/data/proof.js +166 -0
- package/dist/cjs/data/proof.js.map +1 -0
- package/dist/cjs/data/queue.d.ts +49 -0
- package/dist/cjs/data/queue.d.ts.map +1 -0
- package/dist/cjs/data/queue.js +118 -0
- package/dist/cjs/data/queue.js.map +1 -0
- package/dist/cjs/data/rates.d.ts +143 -0
- package/dist/cjs/data/rates.d.ts.map +1 -0
- package/dist/cjs/data/rates.js +265 -0
- package/dist/cjs/data/rates.js.map +1 -0
- package/dist/cjs/data/receipt.d.ts +207 -0
- package/dist/cjs/data/receipt.d.ts.map +1 -0
- package/dist/cjs/data/receipt.js +320 -0
- package/dist/cjs/data/receipt.js.map +1 -0
- package/dist/cjs/data/resources.d.ts +30 -0
- package/dist/cjs/data/resources.d.ts.map +1 -0
- package/dist/cjs/data/resources.js +29 -0
- package/dist/cjs/data/resources.js.map +1 -0
- package/dist/cjs/data/sametask.d.ts +35 -0
- package/dist/cjs/data/sametask.d.ts.map +1 -0
- package/dist/cjs/data/sametask.js +45 -0
- package/dist/cjs/data/sametask.js.map +1 -0
- package/dist/cjs/data/shortName.d.ts +52 -0
- package/dist/cjs/data/shortName.d.ts.map +1 -0
- package/dist/cjs/data/shortName.js +122 -0
- package/dist/cjs/data/shortName.js.map +1 -0
- package/dist/cjs/data/threads.d.ts +97 -0
- package/dist/cjs/data/threads.d.ts.map +1 -0
- package/dist/cjs/data/threads.js +214 -0
- package/dist/cjs/data/threads.js.map +1 -0
- package/dist/cjs/data/trace.d.ts +133 -0
- package/dist/cjs/data/trace.d.ts.map +1 -0
- package/dist/cjs/data/trace.js +125 -0
- package/dist/cjs/data/trace.js.map +1 -0
- package/dist/cjs/data/traceWords.d.ts +54 -0
- package/dist/cjs/data/traceWords.d.ts.map +1 -0
- package/dist/cjs/data/traceWords.js +192 -0
- package/dist/cjs/data/traceWords.js.map +1 -0
- package/dist/cjs/data/types.d.ts +50 -0
- package/dist/cjs/data/types.d.ts.map +1 -0
- package/dist/cjs/data/types.js +9 -0
- package/dist/cjs/data/types.js.map +1 -0
- package/dist/cjs/data/verdict.d.ts +37 -0
- package/dist/cjs/data/verdict.d.ts.map +1 -0
- package/dist/cjs/data/verdict.js +57 -0
- package/dist/cjs/data/verdict.js.map +1 -0
- package/dist/cjs/data/work.d.ts +46 -0
- package/dist/cjs/data/work.d.ts.map +1 -0
- package/dist/cjs/data/work.js +105 -0
- package/dist/cjs/data/work.js.map +1 -0
- package/dist/cjs/envRead.d.ts +15 -0
- package/dist/cjs/envRead.d.ts.map +1 -0
- package/dist/cjs/envRead.js +26 -0
- package/dist/cjs/envRead.js.map +1 -0
- package/dist/cjs/geo/box.d.ts +64 -0
- package/dist/cjs/geo/box.d.ts.map +1 -0
- package/dist/cjs/geo/box.js +97 -0
- package/dist/cjs/geo/box.js.map +1 -0
- package/dist/cjs/geo/exif.d.ts +20 -0
- package/dist/cjs/geo/exif.d.ts.map +1 -0
- package/dist/cjs/geo/exif.js +220 -0
- package/dist/cjs/geo/exif.js.map +1 -0
- package/dist/cjs/geo/exifcarry.d.ts +31 -0
- package/dist/cjs/geo/exifcarry.d.ts.map +1 -0
- package/dist/cjs/geo/exifcarry.js +81 -0
- package/dist/cjs/geo/exifcarry.js.map +1 -0
- package/dist/cjs/geo/exifnote.d.ts +86 -0
- package/dist/cjs/geo/exifnote.d.ts.map +1 -0
- package/dist/cjs/geo/exifnote.js +253 -0
- package/dist/cjs/geo/exifnote.js.map +1 -0
- package/dist/cjs/geo/mentions.d.ts +44 -0
- package/dist/cjs/geo/mentions.d.ts.map +1 -0
- package/dist/cjs/geo/mentions.js +199 -0
- package/dist/cjs/geo/mentions.js.map +1 -0
- package/dist/cjs/geo/osm.d.ts +112 -0
- package/dist/cjs/geo/osm.d.ts.map +1 -0
- package/dist/cjs/geo/osm.js +178 -0
- package/dist/cjs/geo/osm.js.map +1 -0
- package/dist/cjs/geo/place.d.ts +51 -0
- package/dist/cjs/geo/place.d.ts.map +1 -0
- package/dist/cjs/geo/place.js +106 -0
- package/dist/cjs/geo/place.js.map +1 -0
- package/dist/cjs/geo/search.d.ts +41 -0
- package/dist/cjs/geo/search.d.ts.map +1 -0
- package/dist/cjs/geo/search.js +187 -0
- package/dist/cjs/geo/search.js.map +1 -0
- package/dist/cjs/geo/sun.d.ts +39 -0
- package/dist/cjs/geo/sun.d.ts.map +1 -0
- package/dist/cjs/geo/sun.js +55 -0
- package/dist/cjs/geo/sun.js.map +1 -0
- package/dist/cjs/geo/tiles.d.ts +89 -0
- package/dist/cjs/geo/tiles.d.ts.map +1 -0
- package/dist/cjs/geo/tiles.js +146 -0
- package/dist/cjs/geo/tiles.js.map +1 -0
- package/dist/cjs/geo.d.ts +20 -0
- package/dist/cjs/geo.d.ts.map +1 -0
- package/dist/cjs/geo.js +35 -0
- package/dist/cjs/geo.js.map +1 -0
- package/dist/cjs/given.d.ts +15 -0
- package/dist/cjs/given.d.ts.map +1 -0
- package/dist/cjs/given.js +25 -0
- package/dist/cjs/given.js.map +1 -0
- package/dist/cjs/network.d.ts +23 -0
- package/dist/cjs/network.d.ts.map +1 -0
- package/dist/cjs/network.js +56 -0
- package/dist/cjs/network.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/protocol.d.ts +40 -0
- package/dist/cjs/protocol.d.ts.map +1 -0
- package/dist/cjs/protocol.js +54 -0
- package/dist/cjs/protocol.js.map +1 -0
- package/dist/cjs/rubric/bridge.d.ts +428 -0
- package/dist/cjs/rubric/bridge.d.ts.map +1 -0
- package/dist/cjs/rubric/bridge.js +917 -0
- package/dist/cjs/rubric/bridge.js.map +1 -0
- package/dist/cjs/rubric/call.d.ts +73 -0
- package/dist/cjs/rubric/call.d.ts.map +1 -0
- package/dist/cjs/rubric/call.js +132 -0
- package/dist/cjs/rubric/call.js.map +1 -0
- package/dist/cjs/rubric/card.d.ts +74 -0
- package/dist/cjs/rubric/card.d.ts.map +1 -0
- package/dist/cjs/rubric/card.js +45 -0
- package/dist/cjs/rubric/card.js.map +1 -0
- package/dist/cjs/rubric/chain.d.ts +44 -0
- package/dist/cjs/rubric/chain.d.ts.map +1 -0
- package/dist/cjs/rubric/chain.js +52 -0
- package/dist/cjs/rubric/chain.js.map +1 -0
- package/dist/cjs/rubric/claimForm.d.ts +142 -0
- package/dist/cjs/rubric/claimForm.d.ts.map +1 -0
- package/dist/cjs/rubric/claimForm.js +112 -0
- package/dist/cjs/rubric/claimForm.js.map +1 -0
- package/dist/cjs/rubric/claimFormResource.d.ts +34 -0
- package/dist/cjs/rubric/claimFormResource.d.ts.map +1 -0
- package/dist/cjs/rubric/claimFormResource.js +38 -0
- package/dist/cjs/rubric/claimFormResource.js.map +1 -0
- package/dist/cjs/rubric/compose.d.ts +99 -0
- package/dist/cjs/rubric/compose.d.ts.map +1 -0
- package/dist/cjs/rubric/compose.js +229 -0
- package/dist/cjs/rubric/compose.js.map +1 -0
- package/dist/cjs/rubric/confidence.d.ts +81 -0
- package/dist/cjs/rubric/confidence.d.ts.map +1 -0
- package/dist/cjs/rubric/confidence.js +87 -0
- package/dist/cjs/rubric/confidence.js.map +1 -0
- package/dist/cjs/rubric/draft.d.ts +224 -0
- package/dist/cjs/rubric/draft.d.ts.map +1 -0
- package/dist/cjs/rubric/draft.js +214 -0
- package/dist/cjs/rubric/draft.js.map +1 -0
- package/dist/cjs/rubric/gateMet.d.ts +46 -0
- package/dist/cjs/rubric/gateMet.d.ts.map +1 -0
- package/dist/cjs/rubric/gateMet.js +110 -0
- package/dist/cjs/rubric/gateMet.js.map +1 -0
- package/dist/cjs/rubric/leg.d.ts +106 -0
- package/dist/cjs/rubric/leg.d.ts.map +1 -0
- package/dist/cjs/rubric/leg.js +147 -0
- package/dist/cjs/rubric/leg.js.map +1 -0
- package/dist/cjs/rubric/publish.d.ts +39 -0
- package/dist/cjs/rubric/publish.d.ts.map +1 -0
- package/dist/cjs/rubric/publish.js +34 -0
- package/dist/cjs/rubric/publish.js.map +1 -0
- package/dist/cjs/rubric/reanchor.d.ts +79 -0
- package/dist/cjs/rubric/reanchor.d.ts.map +1 -0
- package/dist/cjs/rubric/reanchor.js +154 -0
- package/dist/cjs/rubric/reanchor.js.map +1 -0
- package/dist/cjs/rubric/receipt.d.ts +96 -0
- package/dist/cjs/rubric/receipt.d.ts.map +1 -0
- package/dist/cjs/rubric/receipt.js +28 -0
- package/dist/cjs/rubric/receipt.js.map +1 -0
- package/dist/cjs/rubric/roundTrips.d.ts +17 -0
- package/dist/cjs/rubric/roundTrips.d.ts.map +1 -0
- package/dist/cjs/rubric/roundTrips.js +24 -0
- package/dist/cjs/rubric/roundTrips.js.map +1 -0
- package/dist/cjs/rubric/terms.d.ts +611 -0
- package/dist/cjs/rubric/terms.d.ts.map +1 -0
- package/dist/cjs/rubric/terms.js +777 -0
- package/dist/cjs/rubric/terms.js.map +1 -0
- package/dist/cjs/rubric/wants.d.ts +36 -0
- package/dist/cjs/rubric/wants.d.ts.map +1 -0
- package/dist/cjs/rubric/wants.js +57 -0
- package/dist/cjs/rubric/wants.js.map +1 -0
- package/dist/cjs/rubric.d.ts +30 -0
- package/dist/cjs/rubric.d.ts.map +1 -0
- package/dist/cjs/rubric.js +71 -0
- package/dist/cjs/rubric.js.map +1 -0
- package/dist/cjs/udid/base58.d.ts +8 -0
- package/dist/cjs/udid/base58.d.ts.map +1 -0
- package/dist/cjs/udid/base58.js +57 -0
- package/dist/cjs/udid/base58.js.map +1 -0
- package/dist/cjs/udid/canonical.d.ts +17 -0
- package/dist/cjs/udid/canonical.d.ts.map +1 -0
- package/dist/cjs/udid/canonical.js +34 -0
- package/dist/cjs/udid/canonical.js.map +1 -0
- package/dist/cjs/udid/cid.d.ts +22 -0
- package/dist/cjs/udid/cid.d.ts.map +1 -0
- package/dist/cjs/udid/cid.js +54 -0
- package/dist/cjs/udid/cid.js.map +1 -0
- package/dist/cjs/udid/key.d.ts +41 -0
- package/dist/cjs/udid/key.d.ts.map +1 -0
- package/dist/cjs/udid/key.js +64 -0
- package/dist/cjs/udid/key.js.map +1 -0
- package/dist/cjs/udid/resolve.d.ts +56 -0
- package/dist/cjs/udid/resolve.d.ts.map +1 -0
- package/dist/cjs/udid/resolve.js +168 -0
- package/dist/cjs/udid/resolve.js.map +1 -0
- package/dist/cjs/udid/schema.d.ts +150 -0
- package/dist/cjs/udid/schema.d.ts.map +1 -0
- package/dist/cjs/udid/schema.js +155 -0
- package/dist/cjs/udid/schema.js.map +1 -0
- package/dist/cjs/udid/verify.d.ts +35 -0
- package/dist/cjs/udid/verify.d.ts.map +1 -0
- package/dist/cjs/udid/verify.js +97 -0
- package/dist/cjs/udid/verify.js.map +1 -0
- package/dist/cjs/udid/wrapper.d.ts +90 -0
- package/dist/cjs/udid/wrapper.d.ts.map +1 -0
- package/dist/cjs/udid/wrapper.js +41 -0
- package/dist/cjs/udid/wrapper.js.map +1 -0
- package/dist/cjs/udid.d.ts +17 -0
- package/dist/cjs/udid.d.ts.map +1 -0
- package/dist/cjs/udid.js +33 -0
- package/dist/cjs/udid.js.map +1 -0
- package/dist/esm/board.d.ts +20 -0
- package/dist/esm/board.d.ts.map +1 -0
- package/dist/esm/board.js +23 -0
- package/dist/esm/board.js.map +1 -0
- package/dist/esm/campaign/badges.d.ts +30 -0
- package/dist/esm/campaign/badges.d.ts.map +1 -0
- package/dist/esm/campaign/badges.js +65 -0
- package/dist/esm/campaign/badges.js.map +1 -0
- package/dist/esm/campaign/bands.d.ts +161 -0
- package/dist/esm/campaign/bands.d.ts.map +1 -0
- package/dist/esm/campaign/bands.js +176 -0
- package/dist/esm/campaign/bands.js.map +1 -0
- package/dist/esm/campaign/campaign.d.ts +50 -0
- package/dist/esm/campaign/campaign.d.ts.map +1 -0
- package/dist/esm/campaign/campaign.js +147 -0
- package/dist/esm/campaign/campaign.js.map +1 -0
- package/dist/esm/campaign/campaigns.d.ts +2 -0
- package/dist/esm/campaign/campaigns.d.ts.map +1 -0
- package/dist/esm/campaign/campaigns.js +34 -0
- package/dist/esm/campaign/campaigns.js.map +1 -0
- package/dist/esm/campaign/cleanable.d.ts +13 -0
- package/dist/esm/campaign/cleanable.d.ts.map +1 -0
- package/dist/esm/campaign/cleanable.js +2 -0
- package/dist/esm/campaign/cleanable.js.map +1 -0
- package/dist/esm/campaign/cleanup.d.ts +78 -0
- package/dist/esm/campaign/cleanup.d.ts.map +1 -0
- package/dist/esm/campaign/cleanup.js +129 -0
- package/dist/esm/campaign/cleanup.js.map +1 -0
- package/dist/esm/campaign/commit.d.ts +39 -0
- package/dist/esm/campaign/commit.d.ts.map +1 -0
- package/dist/esm/campaign/commit.js +37 -0
- package/dist/esm/campaign/commit.js.map +1 -0
- package/dist/esm/campaign/field.d.ts +50 -0
- package/dist/esm/campaign/field.d.ts.map +1 -0
- package/dist/esm/campaign/field.js +88 -0
- package/dist/esm/campaign/field.js.map +1 -0
- package/dist/esm/campaign/fold.d.ts +227 -0
- package/dist/esm/campaign/fold.d.ts.map +1 -0
- package/dist/esm/campaign/fold.js +403 -0
- package/dist/esm/campaign/fold.js.map +1 -0
- package/dist/esm/campaign/funding.d.ts +153 -0
- package/dist/esm/campaign/funding.d.ts.map +1 -0
- package/dist/esm/campaign/funding.js +160 -0
- package/dist/esm/campaign/funding.js.map +1 -0
- package/dist/esm/campaign/landing.d.ts +20 -0
- package/dist/esm/campaign/landing.d.ts.map +1 -0
- package/dist/esm/campaign/landing.js +49 -0
- package/dist/esm/campaign/landing.js.map +1 -0
- package/dist/esm/campaign/pledges.d.ts +237 -0
- package/dist/esm/campaign/pledges.d.ts.map +1 -0
- package/dist/esm/campaign/pledges.js +210 -0
- package/dist/esm/campaign/pledges.js.map +1 -0
- package/dist/esm/campaign/pledgesChain.d.ts +58 -0
- package/dist/esm/campaign/pledgesChain.d.ts.map +1 -0
- package/dist/esm/campaign/pledgesChain.js +96 -0
- package/dist/esm/campaign/pledgesChain.js.map +1 -0
- package/dist/esm/campaign/pool.d.ts +137 -0
- package/dist/esm/campaign/pool.d.ts.map +1 -0
- package/dist/esm/campaign/pool.js +194 -0
- package/dist/esm/campaign/pool.js.map +1 -0
- package/dist/esm/campaign/record.d.ts +115 -0
- package/dist/esm/campaign/record.d.ts.map +1 -0
- package/dist/esm/campaign/record.js +252 -0
- package/dist/esm/campaign/record.js.map +1 -0
- package/dist/esm/campaign/rule.d.ts +311 -0
- package/dist/esm/campaign/rule.d.ts.map +1 -0
- package/dist/esm/campaign/rule.js +197 -0
- package/dist/esm/campaign/rule.js.map +1 -0
- package/dist/esm/campaign/spot.d.ts +37 -0
- package/dist/esm/campaign/spot.d.ts.map +1 -0
- package/dist/esm/campaign/spot.js +167 -0
- package/dist/esm/campaign/spot.js.map +1 -0
- package/dist/esm/campaign/spots.d.ts +437 -0
- package/dist/esm/campaign/spots.d.ts.map +1 -0
- package/dist/esm/campaign/spots.js +735 -0
- package/dist/esm/campaign/spots.js.map +1 -0
- package/dist/esm/campaign/standings.d.ts +236 -0
- package/dist/esm/campaign/standings.d.ts.map +1 -0
- package/dist/esm/campaign/standings.js +357 -0
- package/dist/esm/campaign/standings.js.map +1 -0
- package/dist/esm/campaign/treasurySends.d.ts +116 -0
- package/dist/esm/campaign/treasurySends.d.ts.map +1 -0
- package/dist/esm/campaign/treasurySends.js +190 -0
- package/dist/esm/campaign/treasurySends.js.map +1 -0
- package/dist/esm/campaign.d.ts +29 -0
- package/dist/esm/campaign.d.ts.map +1 -0
- package/dist/esm/campaign.js +28 -0
- package/dist/esm/campaign.js.map +1 -0
- package/dist/esm/chain/account.d.ts +47 -0
- package/dist/esm/chain/account.d.ts.map +1 -0
- package/dist/esm/chain/account.js +156 -0
- package/dist/esm/chain/account.js.map +1 -0
- package/dist/esm/chain/accountProof.d.ts +135 -0
- package/dist/esm/chain/accountProof.d.ts.map +1 -0
- package/dist/esm/chain/accountProof.js +153 -0
- package/dist/esm/chain/accountProof.js.map +1 -0
- package/dist/esm/chain/allowance.d.ts +17 -0
- package/dist/esm/chain/allowance.d.ts.map +1 -0
- package/dist/esm/chain/allowance.js +74 -0
- package/dist/esm/chain/allowance.js.map +1 -0
- package/dist/esm/chain/allowanceRead.d.ts +2 -0
- package/dist/esm/chain/allowanceRead.d.ts.map +1 -0
- package/dist/esm/chain/allowanceRead.js +56 -0
- package/dist/esm/chain/allowanceRead.js.map +1 -0
- package/dist/esm/chain/ask.d.ts +211 -0
- package/dist/esm/chain/ask.d.ts.map +1 -0
- package/dist/esm/chain/ask.js +509 -0
- package/dist/esm/chain/ask.js.map +1 -0
- package/dist/esm/chain/bridge.d.ts +50 -0
- package/dist/esm/chain/bridge.d.ts.map +1 -0
- package/dist/esm/chain/bridge.js +78 -0
- package/dist/esm/chain/bridge.js.map +1 -0
- package/dist/esm/chain/broadcast.d.ts +40 -0
- package/dist/esm/chain/broadcast.d.ts.map +1 -0
- package/dist/esm/chain/broadcast.js +147 -0
- package/dist/esm/chain/broadcast.js.map +1 -0
- package/dist/esm/chain/delegate.d.ts +154 -0
- package/dist/esm/chain/delegate.d.ts.map +1 -0
- package/dist/esm/chain/delegate.js +230 -0
- package/dist/esm/chain/delegate.js.map +1 -0
- package/dist/esm/chain/encoding.d.ts +7 -0
- package/dist/esm/chain/encoding.d.ts.map +1 -0
- package/dist/esm/chain/encoding.js +22 -0
- package/dist/esm/chain/encoding.js.map +1 -0
- package/dist/esm/chain/env.d.ts +50 -0
- package/dist/esm/chain/env.d.ts.map +1 -0
- package/dist/esm/chain/env.js +83 -0
- package/dist/esm/chain/env.js.map +1 -0
- package/dist/esm/chain/gate.d.ts +12 -0
- package/dist/esm/chain/gate.d.ts.map +1 -0
- package/dist/esm/chain/gate.js +52 -0
- package/dist/esm/chain/gate.js.map +1 -0
- package/dist/esm/chain/grantPending.d.ts +31 -0
- package/dist/esm/chain/grantPending.d.ts.map +1 -0
- package/dist/esm/chain/grantPending.js +50 -0
- package/dist/esm/chain/grantPending.js.map +1 -0
- package/dist/esm/chain/guest.d.ts +97 -0
- package/dist/esm/chain/guest.d.ts.map +1 -0
- package/dist/esm/chain/guest.js +168 -0
- package/dist/esm/chain/guest.js.map +1 -0
- package/dist/esm/chain/iid.d.ts +26 -0
- package/dist/esm/chain/iid.d.ts.map +1 -0
- package/dist/esm/chain/iid.js +62 -0
- package/dist/esm/chain/iid.js.map +1 -0
- package/dist/esm/chain/money.d.ts +48 -0
- package/dist/esm/chain/money.d.ts.map +1 -0
- package/dist/esm/chain/money.js +65 -0
- package/dist/esm/chain/money.js.map +1 -0
- package/dist/esm/chain/oracle.d.ts +24 -0
- package/dist/esm/chain/oracle.d.ts.map +1 -0
- package/dist/esm/chain/oracle.js +41 -0
- package/dist/esm/chain/oracle.js.map +1 -0
- package/dist/esm/chain/pendingTransact.d.ts +31 -0
- package/dist/esm/chain/pendingTransact.d.ts.map +1 -0
- package/dist/esm/chain/pendingTransact.js +59 -0
- package/dist/esm/chain/pendingTransact.js.map +1 -0
- package/dist/esm/chain/query.d.ts +75 -0
- package/dist/esm/chain/query.d.ts.map +1 -0
- package/dist/esm/chain/query.js +160 -0
- package/dist/esm/chain/query.js.map +1 -0
- package/dist/esm/chain/send.d.ts +42 -0
- package/dist/esm/chain/send.d.ts.map +1 -0
- package/dist/esm/chain/send.js +48 -0
- package/dist/esm/chain/send.js.map +1 -0
- package/dist/esm/chain/session.d.ts +109 -0
- package/dist/esm/chain/session.d.ts.map +1 -0
- package/dist/esm/chain/session.js +133 -0
- package/dist/esm/chain/session.js.map +1 -0
- package/dist/esm/chain/signWith.d.ts +69 -0
- package/dist/esm/chain/signWith.d.ts.map +1 -0
- package/dist/esm/chain/signWith.js +238 -0
- package/dist/esm/chain/signWith.js.map +1 -0
- package/dist/esm/chain/signer.d.ts +38 -0
- package/dist/esm/chain/signer.d.ts.map +1 -0
- package/dist/esm/chain/signer.js +73 -0
- package/dist/esm/chain/signer.js.map +1 -0
- package/dist/esm/chain/signx.d.ts +233 -0
- package/dist/esm/chain/signx.d.ts.map +1 -0
- package/dist/esm/chain/signx.js +475 -0
- package/dist/esm/chain/signx.js.map +1 -0
- package/dist/esm/chain/sponsor.d.ts +2 -0
- package/dist/esm/chain/sponsor.d.ts.map +1 -0
- package/dist/esm/chain/sponsor.js +73 -0
- package/dist/esm/chain/sponsor.js.map +1 -0
- package/dist/esm/chain/store.d.ts +115 -0
- package/dist/esm/chain/store.d.ts.map +1 -0
- package/dist/esm/chain/store.js +164 -0
- package/dist/esm/chain/store.js.map +1 -0
- package/dist/esm/chain/subscription.d.ts +73 -0
- package/dist/esm/chain/subscription.d.ts.map +1 -0
- package/dist/esm/chain/subscription.js +206 -0
- package/dist/esm/chain/subscription.js.map +1 -0
- package/dist/esm/chain/takeBack.d.ts +114 -0
- package/dist/esm/chain/takeBack.d.ts.map +1 -0
- package/dist/esm/chain/takeBack.js +177 -0
- package/dist/esm/chain/takeBack.js.map +1 -0
- package/dist/esm/chain/union.d.ts +125 -0
- package/dist/esm/chain/union.d.ts.map +1 -0
- package/dist/esm/chain/union.js +295 -0
- package/dist/esm/chain/union.js.map +1 -0
- package/dist/esm/chain/webauthn.d.ts +22 -0
- package/dist/esm/chain/webauthn.d.ts.map +1 -0
- package/dist/esm/chain/webauthn.js +65 -0
- package/dist/esm/chain/webauthn.js.map +1 -0
- package/dist/esm/chain.d.ts +35 -0
- package/dist/esm/chain.d.ts.map +1 -0
- package/dist/esm/chain.js +50 -0
- package/dist/esm/chain.js.map +1 -0
- package/dist/esm/config.d.ts +120 -0
- package/dist/esm/config.d.ts.map +1 -0
- package/dist/esm/config.js +115 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/data/accept.d.ts +69 -0
- package/dist/esm/data/accept.d.ts.map +1 -0
- package/dist/esm/data/accept.js +151 -0
- package/dist/esm/data/accept.js.map +1 -0
- package/dist/esm/data/agent.d.ts +87 -0
- package/dist/esm/data/agent.d.ts.map +1 -0
- package/dist/esm/data/agent.js +108 -0
- package/dist/esm/data/agent.js.map +1 -0
- package/dist/esm/data/askFilter.d.ts +45 -0
- package/dist/esm/data/askFilter.d.ts.map +1 -0
- package/dist/esm/data/askFilter.js +45 -0
- package/dist/esm/data/askFilter.js.map +1 -0
- package/dist/esm/data/authenticators.d.ts +35 -0
- package/dist/esm/data/authenticators.d.ts.map +1 -0
- package/dist/esm/data/authenticators.js +71 -0
- package/dist/esm/data/authenticators.js.map +1 -0
- package/dist/esm/data/balance.d.ts +39 -0
- package/dist/esm/data/balance.d.ts.map +1 -0
- package/dist/esm/data/balance.js +111 -0
- package/dist/esm/data/balance.js.map +1 -0
- package/dist/esm/data/board/assemble.d.ts +140 -0
- package/dist/esm/data/board/assemble.d.ts.map +1 -0
- package/dist/esm/data/board/assemble.js +539 -0
- package/dist/esm/data/board/assemble.js.map +1 -0
- package/dist/esm/data/board/coverage.d.ts +112 -0
- package/dist/esm/data/board/coverage.d.ts.map +1 -0
- package/dist/esm/data/board/coverage.js +180 -0
- package/dist/esm/data/board/coverage.js.map +1 -0
- package/dist/esm/data/board/facts.d.ts +63 -0
- package/dist/esm/data/board/facts.d.ts.map +1 -0
- package/dist/esm/data/board/facts.js +127 -0
- package/dist/esm/data/board/facts.js.map +1 -0
- package/dist/esm/data/board/fixtures.d.ts +21 -0
- package/dist/esm/data/board/fixtures.d.ts.map +1 -0
- package/dist/esm/data/board/fixtures.js +40 -0
- package/dist/esm/data/board/fixtures.js.map +1 -0
- package/dist/esm/data/board/query.d.ts +12 -0
- package/dist/esm/data/board/query.d.ts.map +1 -0
- package/dist/esm/data/board/query.js +67 -0
- package/dist/esm/data/board/query.js.map +1 -0
- package/dist/esm/data/board/rank.d.ts +22 -0
- package/dist/esm/data/board/rank.d.ts.map +1 -0
- package/dist/esm/data/board/rank.js +45 -0
- package/dist/esm/data/board/rank.js.map +1 -0
- package/dist/esm/data/board/read.d.ts +102 -0
- package/dist/esm/data/board/read.d.ts.map +1 -0
- package/dist/esm/data/board/read.js +163 -0
- package/dist/esm/data/board/read.js.map +1 -0
- package/dist/esm/data/board/series.d.ts +50 -0
- package/dist/esm/data/board/series.d.ts.map +1 -0
- package/dist/esm/data/board/series.js +153 -0
- package/dist/esm/data/board/series.js.map +1 -0
- package/dist/esm/data/board/trust.d.ts +31 -0
- package/dist/esm/data/board/trust.d.ts.map +1 -0
- package/dist/esm/data/board/trust.js +47 -0
- package/dist/esm/data/board/trust.js.map +1 -0
- package/dist/esm/data/board/types.d.ts +338 -0
- package/dist/esm/data/board/types.d.ts.map +1 -0
- package/dist/esm/data/board/types.js +79 -0
- package/dist/esm/data/board/types.js.map +1 -0
- package/dist/esm/data/board/url.d.ts +22 -0
- package/dist/esm/data/board/url.d.ts.map +1 -0
- package/dist/esm/data/board/url.js +65 -0
- package/dist/esm/data/board/url.js.map +1 -0
- package/dist/esm/data/board/words.d.ts +25 -0
- package/dist/esm/data/board/words.d.ts.map +1 -0
- package/dist/esm/data/board/words.js +53 -0
- package/dist/esm/data/board/words.js.map +1 -0
- package/dist/esm/data/cid.d.ts +49 -0
- package/dist/esm/data/cid.d.ts.map +1 -0
- package/dist/esm/data/cid.js +82 -0
- package/dist/esm/data/cid.js.map +1 -0
- package/dist/esm/data/concurrency.d.ts +14 -0
- package/dist/esm/data/concurrency.d.ts.map +1 -0
- package/dist/esm/data/concurrency.js +29 -0
- package/dist/esm/data/concurrency.js.map +1 -0
- package/dist/esm/data/credentials.d.ts +28 -0
- package/dist/esm/data/credentials.d.ts.map +1 -0
- package/dist/esm/data/credentials.js +78 -0
- package/dist/esm/data/credentials.js.map +1 -0
- package/dist/esm/data/denoms.d.ts +11 -0
- package/dist/esm/data/denoms.d.ts.map +1 -0
- package/dist/esm/data/denoms.js +102 -0
- package/dist/esm/data/denoms.js.map +1 -0
- package/dist/esm/data/displayNames.d.ts +58 -0
- package/dist/esm/data/displayNames.d.ts.map +1 -0
- package/dist/esm/data/displayNames.js +94 -0
- package/dist/esm/data/displayNames.js.map +1 -0
- package/dist/esm/data/docPath.d.ts +28 -0
- package/dist/esm/data/docPath.d.ts.map +1 -0
- package/dist/esm/data/docPath.js +37 -0
- package/dist/esm/data/docPath.js.map +1 -0
- package/dist/esm/data/docUrls.d.ts +38 -0
- package/dist/esm/data/docUrls.d.ts.map +1 -0
- package/dist/esm/data/docUrls.js +46 -0
- package/dist/esm/data/docUrls.js.map +1 -0
- package/dist/esm/data/docs.d.ts +61 -0
- package/dist/esm/data/docs.d.ts.map +1 -0
- package/dist/esm/data/docs.js +177 -0
- package/dist/esm/data/docs.js.map +1 -0
- package/dist/esm/data/engine.d.ts +193 -0
- package/dist/esm/data/engine.d.ts.map +1 -0
- package/dist/esm/data/engine.js +362 -0
- package/dist/esm/data/engine.js.map +1 -0
- package/dist/esm/data/engineUrl.d.ts +19 -0
- package/dist/esm/data/engineUrl.d.ts.map +1 -0
- package/dist/esm/data/engineUrl.js +23 -0
- package/dist/esm/data/engineUrl.js.map +1 -0
- package/dist/esm/data/envelope.d.ts +69 -0
- package/dist/esm/data/envelope.d.ts.map +1 -0
- package/dist/esm/data/envelope.js +72 -0
- package/dist/esm/data/envelope.js.map +1 -0
- package/dist/esm/data/format.d.ts +122 -0
- package/dist/esm/data/format.d.ts.map +1 -0
- package/dist/esm/data/format.js +250 -0
- package/dist/esm/data/format.js.map +1 -0
- package/dist/esm/data/gql.d.ts +56 -0
- package/dist/esm/data/gql.d.ts.map +1 -0
- package/dist/esm/data/gql.js +100 -0
- package/dist/esm/data/gql.js.map +1 -0
- package/dist/esm/data/granters.d.ts +15 -0
- package/dist/esm/data/granters.d.ts.map +1 -0
- package/dist/esm/data/granters.js +71 -0
- package/dist/esm/data/granters.js.map +1 -0
- package/dist/esm/data/index.d.ts +18 -0
- package/dist/esm/data/index.d.ts.map +1 -0
- package/dist/esm/data/index.js +39 -0
- package/dist/esm/data/index.js.map +1 -0
- package/dist/esm/data/install.d.ts +95 -0
- package/dist/esm/data/install.d.ts.map +1 -0
- package/dist/esm/data/install.js +116 -0
- package/dist/esm/data/install.js.map +1 -0
- package/dist/esm/data/issueMessage.d.ts +20 -0
- package/dist/esm/data/issueMessage.d.ts.map +1 -0
- package/dist/esm/data/issueMessage.js +15 -0
- package/dist/esm/data/issueMessage.js.map +1 -0
- package/dist/esm/data/linked.d.ts +54 -0
- package/dist/esm/data/linked.d.ts.map +1 -0
- package/dist/esm/data/linked.js +136 -0
- package/dist/esm/data/linked.js.map +1 -0
- package/dist/esm/data/network.d.ts +21 -0
- package/dist/esm/data/network.d.ts.map +1 -0
- package/dist/esm/data/network.js +23 -0
- package/dist/esm/data/network.js.map +1 -0
- package/dist/esm/data/openness.d.ts +93 -0
- package/dist/esm/data/openness.d.ts.map +1 -0
- package/dist/esm/data/openness.js +140 -0
- package/dist/esm/data/openness.js.map +1 -0
- package/dist/esm/data/oracleInfo.d.ts +20 -0
- package/dist/esm/data/oracleInfo.d.ts.map +1 -0
- package/dist/esm/data/oracleInfo.js +35 -0
- package/dist/esm/data/oracleInfo.js.map +1 -0
- package/dist/esm/data/oracles.d.ts +44 -0
- package/dist/esm/data/oracles.d.ts.map +1 -0
- package/dist/esm/data/oracles.js +110 -0
- package/dist/esm/data/oracles.js.map +1 -0
- package/dist/esm/data/outbound.d.ts +50 -0
- package/dist/esm/data/outbound.d.ts.map +1 -0
- package/dist/esm/data/outbound.js +96 -0
- package/dist/esm/data/outbound.js.map +1 -0
- package/dist/esm/data/paged.d.ts +48 -0
- package/dist/esm/data/paged.d.ts.map +1 -0
- package/dist/esm/data/paged.js +75 -0
- package/dist/esm/data/paged.js.map +1 -0
- package/dist/esm/data/profiles.d.ts +3 -0
- package/dist/esm/data/profiles.d.ts.map +1 -0
- package/dist/esm/data/profiles.js +66 -0
- package/dist/esm/data/profiles.js.map +1 -0
- package/dist/esm/data/proof.d.ts +93 -0
- package/dist/esm/data/proof.d.ts.map +1 -0
- package/dist/esm/data/proof.js +128 -0
- package/dist/esm/data/proof.js.map +1 -0
- package/dist/esm/data/queue.d.ts +49 -0
- package/dist/esm/data/queue.d.ts.map +1 -0
- package/dist/esm/data/queue.js +115 -0
- package/dist/esm/data/queue.js.map +1 -0
- package/dist/esm/data/rates.d.ts +143 -0
- package/dist/esm/data/rates.d.ts.map +1 -0
- package/dist/esm/data/rates.js +249 -0
- package/dist/esm/data/rates.js.map +1 -0
- package/dist/esm/data/receipt.d.ts +207 -0
- package/dist/esm/data/receipt.d.ts.map +1 -0
- package/dist/esm/data/receipt.js +305 -0
- package/dist/esm/data/receipt.js.map +1 -0
- package/dist/esm/data/resources.d.ts +30 -0
- package/dist/esm/data/resources.d.ts.map +1 -0
- package/dist/esm/data/resources.js +24 -0
- package/dist/esm/data/resources.js.map +1 -0
- package/dist/esm/data/sametask.d.ts +35 -0
- package/dist/esm/data/sametask.d.ts.map +1 -0
- package/dist/esm/data/sametask.js +40 -0
- package/dist/esm/data/sametask.js.map +1 -0
- package/dist/esm/data/shortName.d.ts +52 -0
- package/dist/esm/data/shortName.d.ts.map +1 -0
- package/dist/esm/data/shortName.js +119 -0
- package/dist/esm/data/shortName.js.map +1 -0
- package/dist/esm/data/threads.d.ts +97 -0
- package/dist/esm/data/threads.d.ts.map +1 -0
- package/dist/esm/data/threads.js +177 -0
- package/dist/esm/data/threads.js.map +1 -0
- package/dist/esm/data/trace.d.ts +133 -0
- package/dist/esm/data/trace.d.ts.map +1 -0
- package/dist/esm/data/trace.js +122 -0
- package/dist/esm/data/trace.js.map +1 -0
- package/dist/esm/data/traceWords.d.ts +54 -0
- package/dist/esm/data/traceWords.d.ts.map +1 -0
- package/dist/esm/data/traceWords.js +178 -0
- package/dist/esm/data/traceWords.js.map +1 -0
- package/dist/esm/data/types.d.ts +50 -0
- package/dist/esm/data/types.d.ts.map +1 -0
- package/dist/esm/data/types.js +6 -0
- package/dist/esm/data/types.js.map +1 -0
- package/dist/esm/data/verdict.d.ts +37 -0
- package/dist/esm/data/verdict.d.ts.map +1 -0
- package/dist/esm/data/verdict.js +51 -0
- package/dist/esm/data/verdict.js.map +1 -0
- package/dist/esm/data/work.d.ts +46 -0
- package/dist/esm/data/work.d.ts.map +1 -0
- package/dist/esm/data/work.js +68 -0
- package/dist/esm/data/work.js.map +1 -0
- package/dist/esm/envRead.d.ts +15 -0
- package/dist/esm/envRead.d.ts.map +1 -0
- package/dist/esm/envRead.js +20 -0
- package/dist/esm/envRead.js.map +1 -0
- package/dist/esm/geo/box.d.ts +64 -0
- package/dist/esm/geo/box.d.ts.map +1 -0
- package/dist/esm/geo/box.js +85 -0
- package/dist/esm/geo/box.js.map +1 -0
- package/dist/esm/geo/exif.d.ts +20 -0
- package/dist/esm/geo/exif.d.ts.map +1 -0
- package/dist/esm/geo/exif.js +215 -0
- package/dist/esm/geo/exif.js.map +1 -0
- package/dist/esm/geo/exifcarry.d.ts +31 -0
- package/dist/esm/geo/exifcarry.d.ts.map +1 -0
- package/dist/esm/geo/exifcarry.js +77 -0
- package/dist/esm/geo/exifcarry.js.map +1 -0
- package/dist/esm/geo/exifnote.d.ts +86 -0
- package/dist/esm/geo/exifnote.d.ts.map +1 -0
- package/dist/esm/geo/exifnote.js +243 -0
- package/dist/esm/geo/exifnote.js.map +1 -0
- package/dist/esm/geo/mentions.d.ts +44 -0
- package/dist/esm/geo/mentions.d.ts.map +1 -0
- package/dist/esm/geo/mentions.js +190 -0
- package/dist/esm/geo/mentions.js.map +1 -0
- package/dist/esm/geo/osm.d.ts +112 -0
- package/dist/esm/geo/osm.d.ts.map +1 -0
- package/dist/esm/geo/osm.js +171 -0
- package/dist/esm/geo/osm.js.map +1 -0
- package/dist/esm/geo/place.d.ts +51 -0
- package/dist/esm/geo/place.d.ts.map +1 -0
- package/dist/esm/geo/place.js +99 -0
- package/dist/esm/geo/place.js.map +1 -0
- package/dist/esm/geo/search.d.ts +41 -0
- package/dist/esm/geo/search.d.ts.map +1 -0
- package/dist/esm/geo/search.js +182 -0
- package/dist/esm/geo/search.js.map +1 -0
- package/dist/esm/geo/sun.d.ts +39 -0
- package/dist/esm/geo/sun.d.ts.map +1 -0
- package/dist/esm/geo/sun.js +51 -0
- package/dist/esm/geo/sun.js.map +1 -0
- package/dist/esm/geo/tiles.d.ts +89 -0
- package/dist/esm/geo/tiles.d.ts.map +1 -0
- package/dist/esm/geo/tiles.js +136 -0
- package/dist/esm/geo/tiles.js.map +1 -0
- package/dist/esm/geo.d.ts +20 -0
- package/dist/esm/geo.d.ts.map +1 -0
- package/dist/esm/geo.js +19 -0
- package/dist/esm/geo.js.map +1 -0
- package/dist/esm/given.d.ts +15 -0
- package/dist/esm/given.d.ts.map +1 -0
- package/dist/esm/given.js +18 -0
- package/dist/esm/given.js.map +1 -0
- package/dist/esm/network.d.ts +23 -0
- package/dist/esm/network.d.ts.map +1 -0
- package/dist/esm/network.js +48 -0
- package/dist/esm/network.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/protocol.d.ts +40 -0
- package/dist/esm/protocol.d.ts.map +1 -0
- package/dist/esm/protocol.js +38 -0
- package/dist/esm/protocol.js.map +1 -0
- package/dist/esm/rubric/bridge.d.ts +428 -0
- package/dist/esm/rubric/bridge.d.ts.map +1 -0
- package/dist/esm/rubric/bridge.js +911 -0
- package/dist/esm/rubric/bridge.js.map +1 -0
- package/dist/esm/rubric/call.d.ts +73 -0
- package/dist/esm/rubric/call.d.ts.map +1 -0
- package/dist/esm/rubric/call.js +120 -0
- package/dist/esm/rubric/call.js.map +1 -0
- package/dist/esm/rubric/card.d.ts +74 -0
- package/dist/esm/rubric/card.d.ts.map +1 -0
- package/dist/esm/rubric/card.js +38 -0
- package/dist/esm/rubric/card.js.map +1 -0
- package/dist/esm/rubric/chain.d.ts +44 -0
- package/dist/esm/rubric/chain.d.ts.map +1 -0
- package/dist/esm/rubric/chain.js +49 -0
- package/dist/esm/rubric/chain.js.map +1 -0
- package/dist/esm/rubric/claimForm.d.ts +142 -0
- package/dist/esm/rubric/claimForm.d.ts.map +1 -0
- package/dist/esm/rubric/claimForm.js +109 -0
- package/dist/esm/rubric/claimForm.js.map +1 -0
- package/dist/esm/rubric/claimFormResource.d.ts +34 -0
- package/dist/esm/rubric/claimFormResource.d.ts.map +1 -0
- package/dist/esm/rubric/claimFormResource.js +33 -0
- package/dist/esm/rubric/claimFormResource.js.map +1 -0
- package/dist/esm/rubric/compose.d.ts +99 -0
- package/dist/esm/rubric/compose.d.ts.map +1 -0
- package/dist/esm/rubric/compose.js +225 -0
- package/dist/esm/rubric/compose.js.map +1 -0
- package/dist/esm/rubric/confidence.d.ts +81 -0
- package/dist/esm/rubric/confidence.d.ts.map +1 -0
- package/dist/esm/rubric/confidence.js +82 -0
- package/dist/esm/rubric/confidence.js.map +1 -0
- package/dist/esm/rubric/draft.d.ts +224 -0
- package/dist/esm/rubric/draft.d.ts.map +1 -0
- package/dist/esm/rubric/draft.js +206 -0
- package/dist/esm/rubric/draft.js.map +1 -0
- package/dist/esm/rubric/gateMet.d.ts +46 -0
- package/dist/esm/rubric/gateMet.d.ts.map +1 -0
- package/dist/esm/rubric/gateMet.js +104 -0
- package/dist/esm/rubric/gateMet.js.map +1 -0
- package/dist/esm/rubric/leg.d.ts +106 -0
- package/dist/esm/rubric/leg.d.ts.map +1 -0
- package/dist/esm/rubric/leg.js +138 -0
- package/dist/esm/rubric/leg.js.map +1 -0
- package/dist/esm/rubric/publish.d.ts +39 -0
- package/dist/esm/rubric/publish.d.ts.map +1 -0
- package/dist/esm/rubric/publish.js +29 -0
- package/dist/esm/rubric/publish.js.map +1 -0
- package/dist/esm/rubric/reanchor.d.ts +79 -0
- package/dist/esm/rubric/reanchor.d.ts.map +1 -0
- package/dist/esm/rubric/reanchor.js +146 -0
- package/dist/esm/rubric/reanchor.js.map +1 -0
- package/dist/esm/rubric/receipt.d.ts +96 -0
- package/dist/esm/rubric/receipt.d.ts.map +1 -0
- package/dist/esm/rubric/receipt.js +25 -0
- package/dist/esm/rubric/receipt.js.map +1 -0
- package/dist/esm/rubric/roundTrips.d.ts +17 -0
- package/dist/esm/rubric/roundTrips.d.ts.map +1 -0
- package/dist/esm/rubric/roundTrips.js +20 -0
- package/dist/esm/rubric/roundTrips.js.map +1 -0
- package/dist/esm/rubric/terms.d.ts +611 -0
- package/dist/esm/rubric/terms.d.ts.map +1 -0
- package/dist/esm/rubric/terms.js +755 -0
- package/dist/esm/rubric/terms.js.map +1 -0
- package/dist/esm/rubric/wants.d.ts +36 -0
- package/dist/esm/rubric/wants.d.ts.map +1 -0
- package/dist/esm/rubric/wants.js +52 -0
- package/dist/esm/rubric/wants.js.map +1 -0
- package/dist/esm/rubric.d.ts +30 -0
- package/dist/esm/rubric.d.ts.map +1 -0
- package/dist/esm/rubric.js +30 -0
- package/dist/esm/rubric.js.map +1 -0
- package/dist/esm/udid/base58.d.ts +8 -0
- package/dist/esm/udid/base58.d.ts.map +1 -0
- package/dist/esm/udid/base58.js +53 -0
- package/dist/esm/udid/base58.js.map +1 -0
- package/dist/esm/udid/canonical.d.ts +17 -0
- package/dist/esm/udid/canonical.d.ts.map +1 -0
- package/dist/esm/udid/canonical.js +28 -0
- package/dist/esm/udid/canonical.js.map +1 -0
- package/dist/esm/udid/cid.d.ts +22 -0
- package/dist/esm/udid/cid.d.ts.map +1 -0
- package/dist/esm/udid/cid.js +46 -0
- package/dist/esm/udid/cid.js.map +1 -0
- package/dist/esm/udid/key.d.ts +41 -0
- package/dist/esm/udid/key.d.ts.map +1 -0
- package/dist/esm/udid/key.js +58 -0
- package/dist/esm/udid/key.js.map +1 -0
- package/dist/esm/udid/resolve.d.ts +56 -0
- package/dist/esm/udid/resolve.d.ts.map +1 -0
- package/dist/esm/udid/resolve.js +162 -0
- package/dist/esm/udid/resolve.js.map +1 -0
- package/dist/esm/udid/schema.d.ts +150 -0
- package/dist/esm/udid/schema.d.ts.map +1 -0
- package/dist/esm/udid/schema.js +151 -0
- package/dist/esm/udid/schema.js.map +1 -0
- package/dist/esm/udid/verify.d.ts +35 -0
- package/dist/esm/udid/verify.d.ts.map +1 -0
- package/dist/esm/udid/verify.js +93 -0
- package/dist/esm/udid/verify.js.map +1 -0
- package/dist/esm/udid/wrapper.d.ts +90 -0
- package/dist/esm/udid/wrapper.d.ts.map +1 -0
- package/dist/esm/udid/wrapper.js +37 -0
- package/dist/esm/udid/wrapper.js.map +1 -0
- package/dist/esm/udid.d.ts +17 -0
- package/dist/esm/udid.d.ts.map +1 -0
- package/dist/esm/udid.js +17 -0
- package/dist/esm/udid.js.map +1 -0
- package/package.json +210 -4
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { type DocStore } from "../data/docUrls.ts";
|
|
2
|
+
import { type QiSession } from "./session.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Putting a document where anyone can check it.
|
|
5
|
+
*
|
|
6
|
+
* Two doors, one rule. A person who is signed in through the auth hub holds
|
|
7
|
+
* an ed25519 signing key the hub registered on their DID document; with it
|
|
8
|
+
* they write to their **own** filesystem namespace, published, and the file's
|
|
9
|
+
* content address is the same one the network's IPFS pins would give the
|
|
10
|
+
* bytes. Everyone else — a phone that has not signed in, the worker's own
|
|
11
|
+
* keys, a script — uploads to **IPFS** through the ixo gateway, whose door is
|
|
12
|
+
* open the way the cellnode's was.
|
|
13
|
+
*
|
|
14
|
+
* The filesystem is tried first and never insisted on: a person whose DID
|
|
15
|
+
* document does not carry the key yet, a token the worker refuses, a bad
|
|
16
|
+
* minute at the worker — each falls through to the gateway, and the caller
|
|
17
|
+
* gets an address either way. What never happens is a document that could
|
|
18
|
+
* not be stored because the better store was fussy.
|
|
19
|
+
*
|
|
20
|
+
* **What the browser holds.** The signing key never leaves the browser: it
|
|
21
|
+
* mints a single-use token — one write, one subtree, five minutes, addressed
|
|
22
|
+
* to this network's filesystem worker by DID — and only the token travels.
|
|
23
|
+
* A token lifted from a network log is worth one write under `/openhands`
|
|
24
|
+
* in the signer's own namespace, for the minutes it has left.
|
|
25
|
+
*/
|
|
26
|
+
export interface Stored {
|
|
27
|
+
cid: string;
|
|
28
|
+
/** Where the bytes can be fetched from — the store that took them. */
|
|
29
|
+
url: string;
|
|
30
|
+
store: DocStore;
|
|
31
|
+
}
|
|
32
|
+
/** The key that signs filesystem tokens, and the account it signs for. */
|
|
33
|
+
export interface Signer {
|
|
34
|
+
mnemonic: string;
|
|
35
|
+
address: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The most this estate will store as one document.
|
|
39
|
+
*
|
|
40
|
+
* The cellnode's measured ceiling was 2.8 MB, and every phone's photograph
|
|
41
|
+
* is shrunk to a few hundred kilobytes before it gets here; the gateway
|
|
42
|
+
* takes a hundred megabytes and the filesystem five gigabytes, but nothing
|
|
43
|
+
* this estate publishes is bigger than a photograph, and a ceiling this side
|
|
44
|
+
* of the store is what keeps a bug from becoming a bill.
|
|
45
|
+
*/
|
|
46
|
+
export declare const MAX_PROOF_BYTES = 2800000;
|
|
47
|
+
/** The service an ask's entity publishes so other readers can find its documents. */
|
|
48
|
+
export declare const ipfsService: () => {
|
|
49
|
+
id: string;
|
|
50
|
+
type: string;
|
|
51
|
+
serviceEndpoint: string;
|
|
52
|
+
};
|
|
53
|
+
/** The filesystem worker's DID — a `did:web` on its own host, as it publishes at `/.well-known/did.json`. */
|
|
54
|
+
export declare const vfsDid: () => string;
|
|
55
|
+
/** The one subtree a token from this app may write. */
|
|
56
|
+
export declare const VFS_SCOPE = "/openhands";
|
|
57
|
+
/**
|
|
58
|
+
* A single-use write token for the signer's own namespace, scoped to this
|
|
59
|
+
* app's subtree. `@ixo/ucan` is loaded here rather than at the top: it
|
|
60
|
+
* carries ucanto and its codecs, which no page should pay for until a
|
|
61
|
+
* document is actually being stored.
|
|
62
|
+
*/
|
|
63
|
+
export declare function mintVfsBearer(signer: Signer, options?: {
|
|
64
|
+
ttlSeconds?: number;
|
|
65
|
+
}): Promise<string>;
|
|
66
|
+
/**
|
|
67
|
+
* Where a document goes in the signer's tree: one folder per network and
|
|
68
|
+
* month, a name that says what it is, and enough randomness that two
|
|
69
|
+
* uploads in the same millisecond cannot collide on the path.
|
|
70
|
+
*/
|
|
71
|
+
export declare function vfsPathFor(kind: string, contentType: string): string;
|
|
72
|
+
type Body = Blob | Uint8Array | string;
|
|
73
|
+
/** Stored on the filesystem, or null when the worker would not take it (the caller falls back). */
|
|
74
|
+
export declare function uploadToVfs(body: Body, contentType: string, args: {
|
|
75
|
+
bearer: string;
|
|
76
|
+
path: string;
|
|
77
|
+
signal?: AbortSignal;
|
|
78
|
+
}): Promise<Stored | null>;
|
|
79
|
+
/** Stored on IPFS through the gateway, or null. */
|
|
80
|
+
export declare function uploadToIpfs(body: Body, contentType: string, args?: {
|
|
81
|
+
name?: string;
|
|
82
|
+
signal?: AbortSignal;
|
|
83
|
+
}): Promise<Stored | null>;
|
|
84
|
+
export interface UploadOptions {
|
|
85
|
+
/** What the document is, for its name in a filesystem. */
|
|
86
|
+
kind?: string;
|
|
87
|
+
/** A filename to record with the bytes. */
|
|
88
|
+
name?: string;
|
|
89
|
+
/** Who is signed in. `undefined` asks the browser's session; `null` is nobody. */
|
|
90
|
+
signer?: Signer | null;
|
|
91
|
+
signal?: AbortSignal;
|
|
92
|
+
}
|
|
93
|
+
/** The signer in this browser's session, when the hub gave it a signing key. */
|
|
94
|
+
export declare function signerFromSession(session?: QiSession | null): Signer | null;
|
|
95
|
+
/** Forget a refusal — for tests, and for a person who has just signed in. */
|
|
96
|
+
export declare const resetStoreMemory: () => void;
|
|
97
|
+
export declare function uploadDoc(body: Body, contentType: string, options?: UploadOptions): Promise<Stored | null>;
|
|
98
|
+
/**
|
|
99
|
+
* Publishing a JSON document — an ask's terms, a claim envelope, a receipt.
|
|
100
|
+
* The returned address is the hash of the bytes, so what was promised gets
|
|
101
|
+
* the same kind of identity as the work itself: fetchable, and impossible to
|
|
102
|
+
* edit after the fact without changing the address it lives at.
|
|
103
|
+
*/
|
|
104
|
+
export declare const uploadPublicJson: (doc: unknown, options?: UploadOptions) => Promise<Stored | null>;
|
|
105
|
+
/**
|
|
106
|
+
* The same, for a document whose EXACT bytes matter: a rubric's on-chain
|
|
107
|
+
* proof is the hash of what a reader will fetch, so the text that was hashed
|
|
108
|
+
* has to be the text that was stored — re-serialising an object in between
|
|
109
|
+
* is how those two quietly stop being the same thing.
|
|
110
|
+
*/
|
|
111
|
+
export declare const uploadPublicText: (text: string, contentType?: string, options?: UploadOptions) => Promise<Stored | null>;
|
|
112
|
+
/** A photograph or file somebody handed over. */
|
|
113
|
+
export declare function uploadProofFile(file: File, options?: UploadOptions): Promise<Stored | null>;
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/chain/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC3G,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,0EAA0E;AAC1E,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,UAAY,CAAC;AAEzC,qFAAqF;AACrF,eAAO,MAAM,WAAW;;;;CAA0F,CAAC;AAEnH,6GAA6G;AAC7G,eAAO,MAAM,MAAM,QAAO,MAAkE,CAAC;AAE7F,uDAAuD;AACvD,eAAO,MAAM,SAAS,eAAe,CAAC;AAKtC;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAc1G;AAWD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,KAAK,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;AAKvC,mGAAmG;AACnG,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBvJ;AAED,mDAAmD;AACnD,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB9I;AAED,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,SAAS,GAAG,IAA2D,GAAG,MAAM,GAAG,IAAI,CAGjI;AAgBD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,QAAO,IAAkC,CAAC;AAEvE,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcpH;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,OAAO,EAAE,UAAS,aAAkB,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAC9B,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,oBAAgC,EAAE,UAAS,aAAkB,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CACzD,CAAC;AAE5E,iDAAiD;AACjD,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGrG"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ipfsGatewayUrl, ipfsDocUrl, network, vfsUrl, vfsDocUrl } from "../data/docUrls.js";
|
|
2
|
+
import { loadSession } from "./session.js";
|
|
3
|
+
/**
|
|
4
|
+
* The most this estate will store as one document.
|
|
5
|
+
*
|
|
6
|
+
* The cellnode's measured ceiling was 2.8 MB, and every phone's photograph
|
|
7
|
+
* is shrunk to a few hundred kilobytes before it gets here; the gateway
|
|
8
|
+
* takes a hundred megabytes and the filesystem five gigabytes, but nothing
|
|
9
|
+
* this estate publishes is bigger than a photograph, and a ceiling this side
|
|
10
|
+
* of the store is what keeps a bug from becoming a bill.
|
|
11
|
+
*/
|
|
12
|
+
export const MAX_PROOF_BYTES = 2_800_000;
|
|
13
|
+
/** The service an ask's entity publishes so other readers can find its documents. */
|
|
14
|
+
export const ipfsService = () => ({ id: "{id}#ipfs", type: "Ipfs", serviceEndpoint: `${ipfsGatewayUrl()}/ipfs/` });
|
|
15
|
+
/** The filesystem worker's DID — a `did:web` on its own host, as it publishes at `/.well-known/did.json`. */
|
|
16
|
+
export const vfsDid = () => `did:web:${new URL(vfsUrl()).host.replace(/:/g, "%3A")}`;
|
|
17
|
+
/** The one subtree a token from this app may write. */
|
|
18
|
+
export const VFS_SCOPE = "/openhands";
|
|
19
|
+
/** How long a token lives. A write takes seconds; the rest is clock skew. */
|
|
20
|
+
const TOKEN_TTL_SECONDS = 300;
|
|
21
|
+
/**
|
|
22
|
+
* A single-use write token for the signer's own namespace, scoped to this
|
|
23
|
+
* app's subtree. `@ixo/ucan` is loaded here rather than at the top: it
|
|
24
|
+
* carries ucanto and its codecs, which no page should pay for until a
|
|
25
|
+
* document is actually being stored.
|
|
26
|
+
*/
|
|
27
|
+
export async function mintVfsBearer(signer, options = {}) {
|
|
28
|
+
const { signerFromMnemonic, createInvocation, serializeInvocation } = await import("@ixo/ucan");
|
|
29
|
+
const did = `did:ixo:${signer.address}`;
|
|
30
|
+
const { signer: key } = await signerFromMnemonic(signer.mnemonic, did);
|
|
31
|
+
const invocation = await createInvocation({
|
|
32
|
+
issuer: key,
|
|
33
|
+
audience: vfsDid(),
|
|
34
|
+
capability: { can: "fs/write", with: `ixo:filesystem${VFS_SCOPE}` },
|
|
35
|
+
expiration: Math.floor(Date.now() / 1000) + (options.ttlSeconds ?? TOKEN_TTL_SECONDS),
|
|
36
|
+
/* Two identical tokens in the same second would share a content address,
|
|
37
|
+
and the worker refuses an address it has seen. */
|
|
38
|
+
facts: [{ nonce: crypto.randomUUID() }]
|
|
39
|
+
});
|
|
40
|
+
return serializeInvocation(invocation);
|
|
41
|
+
}
|
|
42
|
+
const EXTENSIONS = {
|
|
43
|
+
"application/json": "json",
|
|
44
|
+
"application/ld+json": "jsonld",
|
|
45
|
+
"image/jpeg": "jpg",
|
|
46
|
+
"image/png": "png",
|
|
47
|
+
"image/webp": "webp",
|
|
48
|
+
"text/plain": "txt"
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Where a document goes in the signer's tree: one folder per network and
|
|
52
|
+
* month, a name that says what it is, and enough randomness that two
|
|
53
|
+
* uploads in the same millisecond cannot collide on the path.
|
|
54
|
+
*/
|
|
55
|
+
export function vfsPathFor(kind, contentType) {
|
|
56
|
+
const now = new Date();
|
|
57
|
+
const month = `${now.getUTCFullYear()}/${String(now.getUTCMonth() + 1).padStart(2, "0")}`;
|
|
58
|
+
const ext = EXTENSIONS[contentType.split(";")[0].trim().toLowerCase()] ?? "bin";
|
|
59
|
+
const safeKind = kind.toLowerCase().replace(/[^a-z0-9-]+/g, "-").replace(/^-+|-+$/g, "") || "doc";
|
|
60
|
+
const rand = Math.random().toString(36).slice(2, 8);
|
|
61
|
+
return `${VFS_SCOPE}/${network()}/${month}/${safeKind}-${Date.now().toString(36)}-${rand}.${ext}`;
|
|
62
|
+
}
|
|
63
|
+
/** The body as something `fetch` sends whole — never a stream, which cannot be sent twice. */
|
|
64
|
+
const asBody = (body) => (body instanceof Uint8Array ? body : body);
|
|
65
|
+
/** Stored on the filesystem, or null when the worker would not take it (the caller falls back). */
|
|
66
|
+
export async function uploadToVfs(body, contentType, args) {
|
|
67
|
+
try {
|
|
68
|
+
const url = `${vfsUrl()}/api/fs/files?path=${encodeURIComponent(args.path)}&public=true`;
|
|
69
|
+
const response = await fetch(url, {
|
|
70
|
+
method: "POST",
|
|
71
|
+
headers: { authorization: `Bearer ${args.bearer}`, "content-type": contentType },
|
|
72
|
+
body: asBody(body),
|
|
73
|
+
signal: args.signal ?? AbortSignal.timeout(30_000)
|
|
74
|
+
});
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
await response.body?.cancel().catch(() => undefined);
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
const meta = (await response.json());
|
|
80
|
+
return typeof meta.cid === "string" && meta.cid ? { cid: meta.cid, url: vfsDocUrl(meta.cid), store: "vfs" } : null;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** Stored on IPFS through the gateway, or null. */
|
|
87
|
+
export async function uploadToIpfs(body, contentType, args = {}) {
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetch(`${ipfsGatewayUrl()}/upload`, {
|
|
90
|
+
method: "POST",
|
|
91
|
+
headers: { "content-type": contentType, ...(args.name ? { "x-file-name": args.name.slice(0, 120) } : {}) },
|
|
92
|
+
body: asBody(body),
|
|
93
|
+
signal: args.signal ?? AbortSignal.timeout(60_000)
|
|
94
|
+
});
|
|
95
|
+
if (!response.ok) {
|
|
96
|
+
await response.body?.cancel().catch(() => undefined);
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
const doc = (await response.json());
|
|
100
|
+
return typeof doc.cid === "string" && doc.cid ? { cid: doc.cid, url: ipfsDocUrl(doc.cid), store: "ipfs" } : null;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** The signer in this browser's session, when the hub gave it a signing key. */
|
|
107
|
+
export function signerFromSession(session = typeof window === "undefined" ? null : loadSession()) {
|
|
108
|
+
const mnemonic = session?.signingKey?.mnemonic;
|
|
109
|
+
return mnemonic && session?.address ? { mnemonic, address: session.address } : null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Store a document: the signer's filesystem when there is a signer and the
|
|
113
|
+
* worker takes it, else IPFS. Null only when neither door opened.
|
|
114
|
+
*/
|
|
115
|
+
/**
|
|
116
|
+
* When the filesystem last refused a write, it is not asked again for a
|
|
117
|
+
* while. A submission is several uploads — photographs, a thumbnail, the
|
|
118
|
+
* envelope — and readers find a photograph on the store that holds its
|
|
119
|
+
* envelope, so the whole of one has to land in one place: a store that
|
|
120
|
+
* failed halfway is left alone until the submission is well past.
|
|
121
|
+
*/
|
|
122
|
+
const VFS_REST_MS = 10 * 60_000;
|
|
123
|
+
let vfsRestingUntil = 0;
|
|
124
|
+
/** Forget a refusal — for tests, and for a person who has just signed in. */
|
|
125
|
+
export const resetStoreMemory = () => void (vfsRestingUntil = 0);
|
|
126
|
+
export async function uploadDoc(body, contentType, options = {}) {
|
|
127
|
+
const signer = options.signer === undefined ? signerFromSession() : options.signer;
|
|
128
|
+
if (signer && Date.now() >= vfsRestingUntil) {
|
|
129
|
+
try {
|
|
130
|
+
const bearer = await mintVfsBearer(signer);
|
|
131
|
+
const stored = await uploadToVfs(body, contentType, { bearer, path: vfsPathFor(options.kind ?? "doc", contentType), signal: options.signal });
|
|
132
|
+
if (stored)
|
|
133
|
+
return stored;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
/* A key the library could not use, or a worker that would not answer:
|
|
137
|
+
the gateway is the door that is always open. */
|
|
138
|
+
}
|
|
139
|
+
if (!options.signal?.aborted)
|
|
140
|
+
vfsRestingUntil = Date.now() + VFS_REST_MS;
|
|
141
|
+
}
|
|
142
|
+
return uploadToIpfs(body, contentType, { name: options.name, signal: options.signal });
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Publishing a JSON document — an ask's terms, a claim envelope, a receipt.
|
|
146
|
+
* The returned address is the hash of the bytes, so what was promised gets
|
|
147
|
+
* the same kind of identity as the work itself: fetchable, and impossible to
|
|
148
|
+
* edit after the fact without changing the address it lives at.
|
|
149
|
+
*/
|
|
150
|
+
export const uploadPublicJson = (doc, options = {}) => uploadPublicText(JSON.stringify(doc), "application/json", options);
|
|
151
|
+
/**
|
|
152
|
+
* The same, for a document whose EXACT bytes matter: a rubric's on-chain
|
|
153
|
+
* proof is the hash of what a reader will fetch, so the text that was hashed
|
|
154
|
+
* has to be the text that was stored — re-serialising an object in between
|
|
155
|
+
* is how those two quietly stop being the same thing.
|
|
156
|
+
*/
|
|
157
|
+
export const uploadPublicText = (text, contentType = "application/json", options = {}) => uploadDoc(text, contentType, { kind: options.kind ?? "doc", ...options });
|
|
158
|
+
/** A photograph or file somebody handed over. */
|
|
159
|
+
export async function uploadProofFile(file, options = {}) {
|
|
160
|
+
if (file.size > MAX_PROOF_BYTES)
|
|
161
|
+
return null;
|
|
162
|
+
return uploadDoc(file, file.type || "application/octet-stream", { kind: options.kind ?? (file.type.startsWith("image/") ? "photo" : "file"), name: options.name ?? file.name, ...options });
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/chain/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { EncodeObject } from "@cosmjs/proto-signing";
|
|
2
|
+
import { type PhonePrompt } from "./signWith.ts";
|
|
3
|
+
import type { QiSession } from "./session.ts";
|
|
4
|
+
export interface Subscription {
|
|
5
|
+
/** The claim collection the credit is billed through. */
|
|
6
|
+
collectionId: string;
|
|
7
|
+
/** The deed's admin account — where the PAY actually sits. */
|
|
8
|
+
admin: string;
|
|
9
|
+
/**
|
|
10
|
+
* True when the submit right has to be created by the drawer before the
|
|
11
|
+
* claim — the mainnet shape. False when it was granted directly.
|
|
12
|
+
*/
|
|
13
|
+
authorize?: boolean;
|
|
14
|
+
/** Base units of `denom` sitting on the subscription. */
|
|
15
|
+
credit: string;
|
|
16
|
+
denom: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The subscriptions this address may draw from, found from the address alone.
|
|
20
|
+
*
|
|
21
|
+
* Read from **authz grants**, not from entity ownership. Deeds belong to the
|
|
22
|
+
* service — one address owns all 147 on testnet — so asking "which deeds does
|
|
23
|
+
* this person own" is the wrong question and answers nothing. Asking "what has
|
|
24
|
+
* this person been authorised to do" answers exactly the right one, in a single
|
|
25
|
+
* query, and only ever returns subscriptions they can actually act on.
|
|
26
|
+
*
|
|
27
|
+
* A drawable subscription needs **both** authorisations on the same collection:
|
|
28
|
+
* one to make the claim, one to approve it.
|
|
29
|
+
*/
|
|
30
|
+
export declare function drawableSubscriptions(address: string, restUrl: string): Promise<Subscription[]>;
|
|
31
|
+
/**
|
|
32
|
+
* The message that makes our own submit right, for a subscription granted
|
|
33
|
+
* in the meta shape.
|
|
34
|
+
*
|
|
35
|
+
* Signed by the drawer, executed as the admin under the meta-authorisation —
|
|
36
|
+
* the same wrapping as the claim itself. It grants the drawer one submit on
|
|
37
|
+
* this collection, capped at exactly the amount about to be drawn, so the
|
|
38
|
+
* right it leaves behind is worth nothing more than the claim it enabled.
|
|
39
|
+
* Sits first in the transaction: messages run in order, and the claim needs
|
|
40
|
+
* the right to exist before it is checked.
|
|
41
|
+
*/
|
|
42
|
+
export declare function authorizeMsg(args: {
|
|
43
|
+
address: string;
|
|
44
|
+
did: string;
|
|
45
|
+
subscription: Subscription;
|
|
46
|
+
amount: string;
|
|
47
|
+
}): EncodeObject;
|
|
48
|
+
/**
|
|
49
|
+
* The messages that draw credit onto a key, built to ride in one
|
|
50
|
+
* transaction — two, or three when the submit right must be made first.
|
|
51
|
+
*
|
|
52
|
+
* Order is load-bearing: the claim must exist before it can be evaluated, and
|
|
53
|
+
* messages in a transaction execute in sequence — so submit then approve works
|
|
54
|
+
* where the reverse cannot. Both are signed by the same person, because they
|
|
55
|
+
* hold both authorisations.
|
|
56
|
+
*
|
|
57
|
+
* The amount is set on the claim itself. The subscription collections carry
|
|
58
|
+
* **empty payment legs**, so a custom amount is the only thing that pays out —
|
|
59
|
+
* proven on chain 2026-08-24 before any of this was built.
|
|
60
|
+
*/
|
|
61
|
+
export declare function drawMsgs(args: {
|
|
62
|
+
address: string;
|
|
63
|
+
did: string;
|
|
64
|
+
subscription: Subscription;
|
|
65
|
+
claimId: string;
|
|
66
|
+
amount: string;
|
|
67
|
+
}): EncodeObject[];
|
|
68
|
+
/** Draw credit onto the signed-in key, through whichever door this account signs with. */
|
|
69
|
+
export declare function drawCredit(session: QiSession, subscription: Subscription, args: {
|
|
70
|
+
claimId: string;
|
|
71
|
+
amount: string;
|
|
72
|
+
}, prompt?: PhonePrompt): Promise<import("./signWith.ts").SignResult>;
|
|
73
|
+
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../src/chain/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM1D,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiC9C,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAUD;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkErG;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAgB7H;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,EAAE,CAqC5I;AAED,0FAA0F;AAC1F,wBAAsB,UAAU,CAC9B,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzC,MAAM,CAAC,EAAE,WAAW,+CAWrB"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { cosmos, ixo } from "@ixo/impactxclient-sdk";
|
|
2
|
+
import Long from "long";
|
|
3
|
+
import { pagedRest } from "../data/paged.js";
|
|
4
|
+
import { signWithSession } from "./signWith.js";
|
|
5
|
+
/**
|
|
6
|
+
* PAY bought with a card, and how it becomes money you can spend here.
|
|
7
|
+
*
|
|
8
|
+
* A top-up through ixo's checkout does not land in a wallet. It lands on a
|
|
9
|
+
* `deed/subscription` entity the **subscriptions service owns**, so no bank
|
|
10
|
+
* send can ever move it — only the entity's owner could sign that, and the
|
|
11
|
+
* buyer is not the owner. (`bridge.ts` assumed otherwise; it is right for
|
|
12
|
+
* entity accounts a person genuinely owns and wrong for bought PAY.)
|
|
13
|
+
*
|
|
14
|
+
* Credit leaves a subscription exactly one way: **an approved claim pays it
|
|
15
|
+
* out.** And the buyer holds both halves of that themselves — a
|
|
16
|
+
* `SubmitClaimAuthorization` and an `EvaluateClaimAuthorization` on their own
|
|
17
|
+
* collection, granted at signup. So they can draw their own money: submit a
|
|
18
|
+
* claim naming themselves, approve it, done. No third party, and nothing to
|
|
19
|
+
* ask ixo for.
|
|
20
|
+
*
|
|
21
|
+
* Once drawn it is an ordinary balance, which is the point of doing it this
|
|
22
|
+
* way — escrow, posting and agent allowances all work untouched.
|
|
23
|
+
*/
|
|
24
|
+
const SUBMIT_AUTH = "/ixo.claims.v1beta1.SubmitClaimAuthorization";
|
|
25
|
+
const EVALUATE_AUTH = "/ixo.claims.v1beta1.EvaluateClaimAuthorization";
|
|
26
|
+
/**
|
|
27
|
+
* The meta-authorisation: not the right to submit, but the right to *create*
|
|
28
|
+
* one's own submit authorisation on the collection. This is the shape the
|
|
29
|
+
* mainnet subscriptions service grants (testnet grants the submit right
|
|
30
|
+
* directly), found 2026-09-15 when a 10 PAY credit read as no credit at all.
|
|
31
|
+
* A draw under this shape is one message longer — see `authorizeMsg`.
|
|
32
|
+
*/
|
|
33
|
+
const CREATE_AUTH = "/ixo.claims.v1beta1.CreateClaimAuthorizationAuthorization";
|
|
34
|
+
/**
|
|
35
|
+
* The subscriptions this address may draw from, found from the address alone.
|
|
36
|
+
*
|
|
37
|
+
* Read from **authz grants**, not from entity ownership. Deeds belong to the
|
|
38
|
+
* service — one address owns all 147 on testnet — so asking "which deeds does
|
|
39
|
+
* this person own" is the wrong question and answers nothing. Asking "what has
|
|
40
|
+
* this person been authorised to do" answers exactly the right one, in a single
|
|
41
|
+
* query, and only ever returns subscriptions they can actually act on.
|
|
42
|
+
*
|
|
43
|
+
* A drawable subscription needs **both** authorisations on the same collection:
|
|
44
|
+
* one to make the claim, one to approve it.
|
|
45
|
+
*/
|
|
46
|
+
export async function drawableSubscriptions(address, restUrl) {
|
|
47
|
+
/* Every page, and a refusal throws. An unanswered node used to read as "no
|
|
48
|
+
subscriptions", which is a person told they have no credit when the
|
|
49
|
+
truth was that we could not look; the route and the gate already turn a
|
|
50
|
+
throw into "unavailable". */
|
|
51
|
+
const grants = await pagedRest(`${restUrl}/cosmos/authz/v1beta1/grants/grantee/${encodeURIComponent(address)}`, { key: "grants", limit: 200, timeoutMs: 15_000 });
|
|
52
|
+
/* Collection → which powers we have seen, and whose admin. `create` is the
|
|
53
|
+
meta-authorisation to make our own submit right; `submit` the right
|
|
54
|
+
itself. Either, with `evaluate`, is a draw. */
|
|
55
|
+
const seen = new Map();
|
|
56
|
+
const entryFor = (collectionId, admin) => {
|
|
57
|
+
const entry = seen.get(collectionId) ?? { admin, submit: false, create: false, evaluate: false };
|
|
58
|
+
seen.set(collectionId, entry);
|
|
59
|
+
return entry;
|
|
60
|
+
};
|
|
61
|
+
for (const grant of grants) {
|
|
62
|
+
const type = grant.authorization?.["@type"] ?? "";
|
|
63
|
+
if (type !== SUBMIT_AUTH && type !== EVALUATE_AUTH && type !== CREATE_AUTH)
|
|
64
|
+
continue;
|
|
65
|
+
const admin = grant.authorization?.admin ?? "";
|
|
66
|
+
if (!admin)
|
|
67
|
+
continue;
|
|
68
|
+
for (const constraint of grant.authorization?.constraints ?? []) {
|
|
69
|
+
if (type === CREATE_AUTH) {
|
|
70
|
+
/* Only a constraint that lets us make a SUBMIT right counts, and it
|
|
71
|
+
names its collections outright — an unlisted collection is not
|
|
72
|
+
ours to guess at. */
|
|
73
|
+
const kinds = constraint.allowed_auth_types ?? "";
|
|
74
|
+
if (kinds !== "SUBMIT" && kinds !== "ALL")
|
|
75
|
+
continue;
|
|
76
|
+
for (const collectionId of constraint.collection_ids ?? [])
|
|
77
|
+
entryFor(collectionId, admin).create = true;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const collectionId = constraint.collection_id ?? constraint.collection_ids?.[0];
|
|
81
|
+
if (!collectionId)
|
|
82
|
+
continue;
|
|
83
|
+
const entry = entryFor(collectionId, admin);
|
|
84
|
+
if (type === SUBMIT_AUTH)
|
|
85
|
+
entry.submit = true;
|
|
86
|
+
else
|
|
87
|
+
entry.evaluate = true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const drawable = [...seen.entries()].filter(([, one]) => (one.submit || one.create) && one.evaluate);
|
|
91
|
+
/* The credit is whatever sits on the deed's admin account, read from the
|
|
92
|
+
same node the grants came from — one network per call, by construction,
|
|
93
|
+
rather than a balance reader that picks its own from the environment. */
|
|
94
|
+
const balancesOf = async (account) => {
|
|
95
|
+
const balances = await pagedRest(`${restUrl}/cosmos/bank/v1beta1/balances/${encodeURIComponent(account)}`, { key: "balances", limit: 200, timeoutMs: 15_000 });
|
|
96
|
+
return Object.fromEntries(balances.filter((one) => one.denom && one.amount).map((one) => [one.denom, one.amount]));
|
|
97
|
+
};
|
|
98
|
+
const found = await Promise.all(drawable.map(async ([collectionId, one]) => {
|
|
99
|
+
/* No catch: a balance we could not read is not a balance of zero, and
|
|
100
|
+
hiding the subscription would say "no credit" about money that is there. */
|
|
101
|
+
const balances = await balancesOf(one.admin);
|
|
102
|
+
/* Credit is PAY, or IXO on a chain that runs asks in IXO — never
|
|
103
|
+
whatever else happens to sit on the admin account. A mainnet deed
|
|
104
|
+
held ten of an IBC token beside its PAY, and once the PAY was drawn
|
|
105
|
+
that token read as "$10.00 still to bring in", for ever. */
|
|
106
|
+
const denom = balances["upay"] ? "upay" : balances["uixo"] ? "uixo" : "upay";
|
|
107
|
+
/* A direct submit right is used as it is; only the meta shape needs
|
|
108
|
+
the extra message. */
|
|
109
|
+
return { collectionId, admin: one.admin, credit: balances[denom] ?? "0", denom, ...(one.submit ? {} : { authorize: true }) };
|
|
110
|
+
}));
|
|
111
|
+
return found.filter((one) => Number(one.credit) > 0);
|
|
112
|
+
}
|
|
113
|
+
/** Wrap a claims message as the admin account, which is what the grants permit. */
|
|
114
|
+
const asAdmin = (grantee, typeUrl, value) => ({
|
|
115
|
+
typeUrl: "/cosmos.authz.v1beta1.MsgExec",
|
|
116
|
+
value: cosmos.authz.v1beta1.MsgExec.fromPartial({ grantee, msgs: [{ typeUrl, value }] })
|
|
117
|
+
});
|
|
118
|
+
/**
|
|
119
|
+
* The message that makes our own submit right, for a subscription granted
|
|
120
|
+
* in the meta shape.
|
|
121
|
+
*
|
|
122
|
+
* Signed by the drawer, executed as the admin under the meta-authorisation —
|
|
123
|
+
* the same wrapping as the claim itself. It grants the drawer one submit on
|
|
124
|
+
* this collection, capped at exactly the amount about to be drawn, so the
|
|
125
|
+
* right it leaves behind is worth nothing more than the claim it enabled.
|
|
126
|
+
* Sits first in the transaction: messages run in order, and the claim needs
|
|
127
|
+
* the right to exist before it is checked.
|
|
128
|
+
*/
|
|
129
|
+
export function authorizeMsg(args) {
|
|
130
|
+
const { address, did, subscription, amount } = args;
|
|
131
|
+
const create = ixo.claims.v1beta1.MsgCreateClaimAuthorization.fromPartial({
|
|
132
|
+
creatorAddress: address,
|
|
133
|
+
creatorDid: did,
|
|
134
|
+
granteeAddress: address,
|
|
135
|
+
adminAddress: subscription.admin,
|
|
136
|
+
collectionId: subscription.collectionId,
|
|
137
|
+
authType: ixo.claims.v1beta1.CreateClaimAuthorizationType.SUBMIT,
|
|
138
|
+
agentQuota: Long.fromNumber(1),
|
|
139
|
+
maxAmount: [{ denom: subscription.denom, amount }],
|
|
140
|
+
maxCw20Payment: [],
|
|
141
|
+
maxCw1155Payment: [],
|
|
142
|
+
memberAddress: ""
|
|
143
|
+
});
|
|
144
|
+
return asAdmin(address, "/ixo.claims.v1beta1.MsgCreateClaimAuthorization", ixo.claims.v1beta1.MsgCreateClaimAuthorization.encode(create).finish());
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The messages that draw credit onto a key, built to ride in one
|
|
148
|
+
* transaction — two, or three when the submit right must be made first.
|
|
149
|
+
*
|
|
150
|
+
* Order is load-bearing: the claim must exist before it can be evaluated, and
|
|
151
|
+
* messages in a transaction execute in sequence — so submit then approve works
|
|
152
|
+
* where the reverse cannot. Both are signed by the same person, because they
|
|
153
|
+
* hold both authorisations.
|
|
154
|
+
*
|
|
155
|
+
* The amount is set on the claim itself. The subscription collections carry
|
|
156
|
+
* **empty payment legs**, so a custom amount is the only thing that pays out —
|
|
157
|
+
* proven on chain 2026-08-24 before any of this was built.
|
|
158
|
+
*/
|
|
159
|
+
export function drawMsgs(args) {
|
|
160
|
+
const { address, did, subscription, claimId, amount } = args;
|
|
161
|
+
const money = [{ denom: subscription.denom, amount }];
|
|
162
|
+
const submit = ixo.claims.v1beta1.MsgSubmitClaim.fromPartial({
|
|
163
|
+
collectionId: subscription.collectionId,
|
|
164
|
+
claimId,
|
|
165
|
+
agentDid: did,
|
|
166
|
+
agentAddress: address,
|
|
167
|
+
adminAddress: subscription.admin,
|
|
168
|
+
useIntent: false,
|
|
169
|
+
amount: money,
|
|
170
|
+
cw20Payment: [],
|
|
171
|
+
cw1155Payment: [],
|
|
172
|
+
memberAddress: ""
|
|
173
|
+
});
|
|
174
|
+
const approve = ixo.claims.v1beta1.MsgEvaluateClaim.fromPartial({
|
|
175
|
+
claimId,
|
|
176
|
+
collectionId: subscription.collectionId,
|
|
177
|
+
oracle: did,
|
|
178
|
+
agentDid: did,
|
|
179
|
+
agentAddress: address,
|
|
180
|
+
adminAddress: subscription.admin,
|
|
181
|
+
status: 1,
|
|
182
|
+
reason: 1,
|
|
183
|
+
verificationProof: "openhands:credit-draw",
|
|
184
|
+
amount: money,
|
|
185
|
+
cw20Payment: [],
|
|
186
|
+
cw1155Payment: []
|
|
187
|
+
});
|
|
188
|
+
return [
|
|
189
|
+
...(subscription.authorize ? [authorizeMsg({ address, did, subscription, amount })] : []),
|
|
190
|
+
asAdmin(address, "/ixo.claims.v1beta1.MsgSubmitClaim", ixo.claims.v1beta1.MsgSubmitClaim.encode(submit).finish()),
|
|
191
|
+
asAdmin(address, "/ixo.claims.v1beta1.MsgEvaluateClaim", ixo.claims.v1beta1.MsgEvaluateClaim.encode(approve).finish())
|
|
192
|
+
];
|
|
193
|
+
}
|
|
194
|
+
/** Draw credit onto the signed-in key, through whichever door this account signs with. */
|
|
195
|
+
export async function drawCredit(session, subscription, args, prompt) {
|
|
196
|
+
/* Bought credit is money the buyer cannot yet spend gas from — sponsor
|
|
197
|
+
first, or the draw fails on a fee for a coin they do not hold. */
|
|
198
|
+
const { ensureSponsored } = await import("./sponsor.js");
|
|
199
|
+
/* A draw is two `MsgExec`s, so any grant that carries `MsgExec` will do. */
|
|
200
|
+
await ensureSponsored(session.address, "", ["/cosmos.authz.v1beta1.MsgExec"]);
|
|
201
|
+
if (!session.did)
|
|
202
|
+
throw new Error("this session has no ixo identity to claim with");
|
|
203
|
+
const messages = drawMsgs({ address: session.address, did: session.did, subscription, ...args });
|
|
204
|
+
return signWithSession(session, messages, "Bring your ixo credit in", prompt);
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/chain/subscription.ts"],"names":[],"mappings":"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"}
|