@ixo/openhands-sdk 0.0.0-stage → 0.2.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 +245 -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 +124 -0
- package/dist/cjs/data/install.d.ts.map +1 -0
- package/dist/cjs/data/install.js +164 -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 +124 -0
- package/dist/esm/data/install.d.ts.map +1 -0
- package/dist/esm/data/install.js +156 -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,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Who is signed in, and what they can sign with.
|
|
4
|
+
*
|
|
5
|
+
* Three rungs of one ladder, not three kinds of user. A passkey session is a
|
|
6
|
+
* pointer to a credential and nothing more — possession IS the credential. A
|
|
7
|
+
* connected session (SignX or the auth hub) additionally carries an ixo
|
|
8
|
+
* identity: a DID, the name they call themselves, and usually a Matrix
|
|
9
|
+
* identity of their own.
|
|
10
|
+
*
|
|
11
|
+
* **The Matrix half is always optional.** INFRA §1.1: phones older than some
|
|
12
|
+
* unknown release send no matrix payload at all, so nothing may require it —
|
|
13
|
+
* the chain half of a session has to work without a vault, and chat falls back
|
|
14
|
+
* to the relay that already serves everyone.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.speaksForItself = exports.kindOf = void 0;
|
|
18
|
+
exports.loadSession = loadSession;
|
|
19
|
+
exports.withoutSecrets = withoutSecrets;
|
|
20
|
+
exports.previousSessions = previousSessions;
|
|
21
|
+
exports.forgetPrevious = forgetPrevious;
|
|
22
|
+
exports.saveSession = saveSession;
|
|
23
|
+
exports.clearSession = clearSession;
|
|
24
|
+
exports.subscribeSession = subscribeSession;
|
|
25
|
+
/** Passkey is the default so a session stored before the ladder still reads. */
|
|
26
|
+
const kindOf = (session) => session.kind ?? "passkey";
|
|
27
|
+
exports.kindOf = kindOf;
|
|
28
|
+
/** Whether this session can post to a room as itself rather than through the bot. */
|
|
29
|
+
const speaksForItself = (session) => Boolean(session?.matrix?.accessToken);
|
|
30
|
+
exports.speaksForItself = speaksForItself;
|
|
31
|
+
const KEY = "qi.session";
|
|
32
|
+
const EVENT = "qi-session-changed";
|
|
33
|
+
function loadSession() {
|
|
34
|
+
if (typeof window === "undefined")
|
|
35
|
+
return null;
|
|
36
|
+
try {
|
|
37
|
+
const raw = window.localStorage.getItem(KEY);
|
|
38
|
+
if (!raw)
|
|
39
|
+
return null;
|
|
40
|
+
const parsed = JSON.parse(raw);
|
|
41
|
+
if (!parsed.address)
|
|
42
|
+
return null;
|
|
43
|
+
/* A session with no kind is a passkey session written before the ladder,
|
|
44
|
+
and those are only usable with their credential. A connected session
|
|
45
|
+
needs no credential — its door does the signing. */
|
|
46
|
+
return (0, exports.kindOf)(parsed) === "passkey" ? (parsed.credentialId && parsed.authenticatorId ? parsed : null) : parsed;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/*
|
|
53
|
+
* Signing in as somebody else must never be silent (ID9).
|
|
54
|
+
*
|
|
55
|
+
* A second door replaces the session in place, and the account that was there
|
|
56
|
+
* a moment ago can hold money and a public record. So the one it replaces is
|
|
57
|
+
* kept — not to sign anyone in behind their back, but so the app can ask the
|
|
58
|
+
* only question worth asking: *was that you too?* If yes, the ceremony joins
|
|
59
|
+
* them. If no, one tap forgets it. Doing neither, and saying nothing, is the
|
|
60
|
+
* behaviour this exists to prevent.
|
|
61
|
+
*
|
|
62
|
+
* Passkey sessions are the ones that matter here: the credential is still on
|
|
63
|
+
* the device, so a session kept this way can still sign.
|
|
64
|
+
*
|
|
65
|
+
* **What is kept is who, never what signs** (scale review 2026-10, D22). The
|
|
66
|
+
* list used to hold each replaced session whole — an auth-hub session key's
|
|
67
|
+
* mnemonic, the filesystem signing key's, a Matrix access token, a SignX
|
|
68
|
+
* post token — and kept them after sign-out, so "signed out" left every key
|
|
69
|
+
* this browser had ever held sitting in storage. The question this list
|
|
70
|
+
* exists to ask needs an address and a door, and a passkey's pointer, none of
|
|
71
|
+
* which is secret. The price is named: an auth-hub account found here can no
|
|
72
|
+
* longer sign the union from this list, and joins by signing in again.
|
|
73
|
+
*/
|
|
74
|
+
const PREVIOUS_KEY = "qi.session.previous";
|
|
75
|
+
const KEEP_PREVIOUS = 3;
|
|
76
|
+
/** A session with every key, token and ciphertext taken out: what may outlive it. */
|
|
77
|
+
function withoutSecrets(session) {
|
|
78
|
+
const { sessionKey: _sessionKey, signingKey: _signingKey, postToken: _postToken, matrix, ...rest } = session;
|
|
79
|
+
if (!matrix)
|
|
80
|
+
return rest;
|
|
81
|
+
const { accessToken: _accessToken, encryptedMnemonic: _encryptedMnemonic, ...publicMatrix } = matrix;
|
|
82
|
+
return { ...rest, matrix: publicMatrix };
|
|
83
|
+
}
|
|
84
|
+
const holdsSecrets = (session) => Boolean(session.sessionKey || session.signingKey || session.postToken || session.matrix?.accessToken || session.matrix?.encryptedMnemonic);
|
|
85
|
+
function previousSessions() {
|
|
86
|
+
if (typeof window === "undefined")
|
|
87
|
+
return [];
|
|
88
|
+
try {
|
|
89
|
+
const parsed = JSON.parse(window.localStorage.getItem(PREVIOUS_KEY) ?? "[]");
|
|
90
|
+
if (!Array.isArray(parsed))
|
|
91
|
+
return [];
|
|
92
|
+
const kept = parsed.filter((one) => one?.address);
|
|
93
|
+
/* A list written before secrets were stripped is cleaned the first time
|
|
94
|
+
it is read, rather than waiting for the next sign-in to rewrite it. */
|
|
95
|
+
if (kept.some(holdsSecrets)) {
|
|
96
|
+
const clean = kept.map(withoutSecrets);
|
|
97
|
+
window.localStorage.setItem(PREVIOUS_KEY, JSON.stringify(clean));
|
|
98
|
+
return clean;
|
|
99
|
+
}
|
|
100
|
+
return kept;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** Drop one — "that wasn't me", or the ceremony finished with it. */
|
|
107
|
+
function forgetPrevious(address) {
|
|
108
|
+
const kept = previousSessions().filter((one) => one.address !== address);
|
|
109
|
+
window.localStorage.setItem(PREVIOUS_KEY, JSON.stringify(kept));
|
|
110
|
+
window.dispatchEvent(new Event(EVENT));
|
|
111
|
+
}
|
|
112
|
+
function saveSession(session) {
|
|
113
|
+
const replaced = loadSession();
|
|
114
|
+
if (replaced && replaced.address !== session.address) {
|
|
115
|
+
/* Keep the newest few, most recent first, never the one signing in now —
|
|
116
|
+
coming back to an account you already had is not a second identity. */
|
|
117
|
+
const kept = [withoutSecrets(replaced), ...previousSessions().filter((one) => one.address !== replaced.address)]
|
|
118
|
+
.filter((one) => one.address !== session.address)
|
|
119
|
+
.slice(0, KEEP_PREVIOUS);
|
|
120
|
+
window.localStorage.setItem(PREVIOUS_KEY, JSON.stringify(kept));
|
|
121
|
+
}
|
|
122
|
+
window.localStorage.setItem(KEY, JSON.stringify(session));
|
|
123
|
+
window.dispatchEvent(new Event(EVENT));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Sign out: the session, and the accounts it remembered replacing.
|
|
127
|
+
*
|
|
128
|
+
* A browser somebody signed out of is often one somebody else uses next, and
|
|
129
|
+
* "was that you too?" asked of a stranger names the accounts the last person
|
|
130
|
+
* held. Signing out forgets them all (D22).
|
|
131
|
+
*/
|
|
132
|
+
function clearSession() {
|
|
133
|
+
window.localStorage.removeItem(KEY);
|
|
134
|
+
window.localStorage.removeItem(PREVIOUS_KEY);
|
|
135
|
+
window.dispatchEvent(new Event(EVENT));
|
|
136
|
+
}
|
|
137
|
+
function subscribeSession(callback) {
|
|
138
|
+
window.addEventListener(EVENT, callback);
|
|
139
|
+
window.addEventListener("storage", callback);
|
|
140
|
+
return () => {
|
|
141
|
+
window.removeEventListener(EVENT, callback);
|
|
142
|
+
window.removeEventListener("storage", callback);
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/chain/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { EncodeObject } from "@cosmjs/proto-signing";
|
|
2
|
+
import { type QiSession } from "./session.ts";
|
|
3
|
+
/**
|
|
4
|
+
* One way to sign, whoever you are.
|
|
5
|
+
*
|
|
6
|
+
* Before the identity ladder every signing site called `broadcastWithPasskey`
|
|
7
|
+
* directly, which is now only one of three answers. This dispatches on what
|
|
8
|
+
* the session actually holds, so `/ask`, PosterTools and the union ceremony
|
|
9
|
+
* each have one call site rather than a branch each.
|
|
10
|
+
*
|
|
11
|
+
* The SignX path is the interesting one: the phone decodes the body, shows the
|
|
12
|
+
* messages on its own screen, signs, **and broadcasts itself**. We never hold
|
|
13
|
+
* a key. What comes back is a result — and the trap INFRA §1.1 names is that
|
|
14
|
+
* **a broadcast that landed with `code ≠ 0` still arrives on the success
|
|
15
|
+
* channel**, so this throws on it. A failed payout must never read as paid.
|
|
16
|
+
*/
|
|
17
|
+
export interface SignResult {
|
|
18
|
+
transactionHash: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SignHooks {
|
|
21
|
+
/**
|
|
22
|
+
* Called with the transaction's hash once it is signed and before its bytes
|
|
23
|
+
* leave this device, and awaited: a caller moving money keeps the hash first
|
|
24
|
+
* (`postAsk` re-saves its marker with it), so an ending that does not say
|
|
25
|
+
* whether the transaction landed can still be looked up. Throwing here
|
|
26
|
+
* stops the broadcast. Not called on the phone path, where the phone
|
|
27
|
+
* broadcasts on its own and every unknown ending already carries the hash
|
|
28
|
+
* (`unknownOutcome`).
|
|
29
|
+
*/
|
|
30
|
+
onSigned?: (transactionHash: string) => void | Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The chain said no to this transaction: refused at CheckTx, or included with
|
|
34
|
+
* a non-zero code. Either way it did not do what it said, and nothing moved
|
|
35
|
+
* but the fee — the one failure a caller moving money may treat as final.
|
|
36
|
+
* Carries the same `code` and `log` cosmjs's `BroadcastTxError` does, so one
|
|
37
|
+
* test (`isChainRefusal`) recognises both.
|
|
38
|
+
*/
|
|
39
|
+
export declare class ChainRefusal extends Error {
|
|
40
|
+
readonly code: number;
|
|
41
|
+
readonly log: string;
|
|
42
|
+
constructor(code: number, log: string);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Whether an error is the chain's own "no" — a non-zero code with a log —
|
|
46
|
+
* rather than an ending that does not say (a dropped connection, an RPC 5xx,
|
|
47
|
+
* a timeout). Duck-typed because cosmjs's `BroadcastTxError` comes from a
|
|
48
|
+
* module this file must not load eagerly.
|
|
49
|
+
*/
|
|
50
|
+
export declare function isChainRefusal(error: unknown): boolean;
|
|
51
|
+
/** What the phone needs shown: a link to tap here, a code to scan there. */
|
|
52
|
+
export interface PhoneSignRequest {
|
|
53
|
+
deeplink: string;
|
|
54
|
+
/** Where to fetch the QR for it, already stamped so the route will draw it. */
|
|
55
|
+
qrUrl: string;
|
|
56
|
+
}
|
|
57
|
+
/** How a caller shows a QR and waits, without this module knowing about UI. */
|
|
58
|
+
export interface PhonePrompt {
|
|
59
|
+
show: (request: PhoneSignRequest) => void;
|
|
60
|
+
done: () => void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Sign and broadcast, by whatever means this session has.
|
|
64
|
+
*
|
|
65
|
+
* `prompt` is only consulted for phone signing; a passkey session never sees
|
|
66
|
+
* it, which is why it is optional rather than a required no-op.
|
|
67
|
+
*/
|
|
68
|
+
export declare function signWithSession(session: QiSession, messages: EncodeObject[], memo?: string, prompt?: PhonePrompt, hooks?: SignHooks): Promise<SignResult>;
|
|
69
|
+
//# sourceMappingURL=signWith.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signWith.d.ts","sourceRoot":"","sources":["../../../src/chain/signWith.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAMtC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAItD;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAyKD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,IAAI,SAAgC,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAwCtL"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ChainRefusal = void 0;
|
|
37
|
+
exports.isChainRefusal = isChainRefusal;
|
|
38
|
+
exports.signWithSession = signWithSession;
|
|
39
|
+
const session_ts_1 = require("./session.js");
|
|
40
|
+
/**
|
|
41
|
+
* The chain said no to this transaction: refused at CheckTx, or included with
|
|
42
|
+
* a non-zero code. Either way it did not do what it said, and nothing moved
|
|
43
|
+
* but the fee — the one failure a caller moving money may treat as final.
|
|
44
|
+
* Carries the same `code` and `log` cosmjs's `BroadcastTxError` does, so one
|
|
45
|
+
* test (`isChainRefusal`) recognises both.
|
|
46
|
+
*/
|
|
47
|
+
class ChainRefusal extends Error {
|
|
48
|
+
code;
|
|
49
|
+
log;
|
|
50
|
+
constructor(code, log) {
|
|
51
|
+
super(log || `Transaction failed (code ${code})`);
|
|
52
|
+
this.name = "ChainRefusal";
|
|
53
|
+
this.code = code;
|
|
54
|
+
this.log = log;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ChainRefusal = ChainRefusal;
|
|
58
|
+
/**
|
|
59
|
+
* Whether an error is the chain's own "no" — a non-zero code with a log —
|
|
60
|
+
* rather than an ending that does not say (a dropped connection, an RPC 5xx,
|
|
61
|
+
* a timeout). Duck-typed because cosmjs's `BroadcastTxError` comes from a
|
|
62
|
+
* module this file must not load eagerly.
|
|
63
|
+
*/
|
|
64
|
+
function isChainRefusal(error) {
|
|
65
|
+
if (!(error instanceof Error))
|
|
66
|
+
return false;
|
|
67
|
+
const shaped = error;
|
|
68
|
+
return typeof shaped.code === "number" && shaped.code !== 0 && typeof shaped.log === "string";
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* An ending that does not say whether the transaction landed. Named
|
|
72
|
+
* `TimeoutError` with the hash attached — the same shape cosmjs gives a
|
|
73
|
+
* broadcast that was sent but not seen in time — so a caller moving money
|
|
74
|
+
* (`postAsk`) treats every such ending as "pending, check before retrying"
|
|
75
|
+
* rather than as a failure it may simply repeat.
|
|
76
|
+
*/
|
|
77
|
+
function unknownOutcome(message, transactionHash) {
|
|
78
|
+
const error = new Error(message);
|
|
79
|
+
error.name = "TimeoutError";
|
|
80
|
+
error.txId = transactionHash;
|
|
81
|
+
return error;
|
|
82
|
+
}
|
|
83
|
+
const POLL_MS = 2000;
|
|
84
|
+
/**
|
|
85
|
+
* Five minutes of wall clock, not three: a ceremony's timeout is a claim
|
|
86
|
+
* about the journey it serves, and this journey crosses an app boundary —
|
|
87
|
+
* cold start, read the transaction, sign, find the way back. The login paid
|
|
88
|
+
* for the two-minute version of this mistake; three minutes was the same
|
|
89
|
+
* mistake with more room.
|
|
90
|
+
*/
|
|
91
|
+
const GIVE_UP_MS = 5 * 60 * 1000;
|
|
92
|
+
/** How many failed polls in a row are a hiccup rather than a dead request. */
|
|
93
|
+
const BLIPS_ALLOWED = 4;
|
|
94
|
+
async function signViaPhone(session, messages, memo, prompt) {
|
|
95
|
+
/* Everything below is reached only by a session that signs with a phone.
|
|
96
|
+
Most people never have one, and /t/[id] sits on the byte ceiling, so the
|
|
97
|
+
polling loop and the encoder load when they are actually used. */
|
|
98
|
+
if (!session.did)
|
|
99
|
+
throw new Error("this session has no ixo identity to sign with");
|
|
100
|
+
/* The registry that knows ixo's messages already lives in broadcast.ts's
|
|
101
|
+
client; encoding here keeps the phone's payload identical to what the
|
|
102
|
+
chain would have received from us. */
|
|
103
|
+
const [{ encodeTxBody }, { pubkeyHexFor, didOf }] = await Promise.all([Promise.resolve().then(() => __importStar(require("./broadcast.js"))), Promise.resolve().then(() => __importStar(require("./iid.js")))]);
|
|
104
|
+
const txBodyHex = await encodeTxBody(messages, memo);
|
|
105
|
+
const pubkey = await pubkeyHexFor(session.address);
|
|
106
|
+
const started = await fetch("/api/signx/transact/start", {
|
|
107
|
+
method: "POST",
|
|
108
|
+
headers: { "content-type": "application/json" },
|
|
109
|
+
/* The post token is how the route knows this is the signed-in person and
|
|
110
|
+
not a page asking our relay to stamp somebody else's transaction (C9). */
|
|
111
|
+
body: JSON.stringify({ address: session.address, did: session.did ?? didOf(session.address), pubkey, txBodyHexes: [txBodyHex], postToken: session.postToken })
|
|
112
|
+
}).then(async (response) => {
|
|
113
|
+
if (response.ok)
|
|
114
|
+
return response.json();
|
|
115
|
+
/* A refusal with a reason (sign in again; not a transaction we build) is
|
|
116
|
+
said as itself, not as an unreachable relay. */
|
|
117
|
+
const refused = (await response.json().catch(() => null));
|
|
118
|
+
if (response.status === 401 && refused?.why)
|
|
119
|
+
throw new Error(refused.why);
|
|
120
|
+
return null;
|
|
121
|
+
});
|
|
122
|
+
if (!started)
|
|
123
|
+
throw new Error("could not reach the signing relay");
|
|
124
|
+
/*
|
|
125
|
+
* The request outlives this page from here on. On a phone the deeplink
|
|
126
|
+
* backgrounds the tab and iOS may discard it; the phone signs AND
|
|
127
|
+
* broadcasts on its own, so the transaction can succeed while nobody is
|
|
128
|
+
* left to hear it. The shell's `finishPendingTransacts` chases whatever
|
|
129
|
+
* this page never got to clear.
|
|
130
|
+
*/
|
|
131
|
+
const { rememberTransact, forgetTransact } = await Promise.resolve().then(() => __importStar(require("./pendingTransact.js")));
|
|
132
|
+
rememberTransact({ sessionHash: started.sessionHash, transactionHash: started.transactionHash, memo, startedAt: new Date().toISOString() });
|
|
133
|
+
prompt?.show({ deeplink: started.deeplink, qrUrl: started.qrUrl });
|
|
134
|
+
/*
|
|
135
|
+
* **Every answer that is not "not yet" ends the wait** — and the wait is
|
|
136
|
+
* driven by two things, not one: the timer, and the tab coming back to the
|
|
137
|
+
* front. iOS suspends timers in a backgrounded tab, and the trip to the
|
|
138
|
+
* app backgrounds this one — so the deadline is only allowed to expire
|
|
139
|
+
* with a **final ask**, never silently: if the phone signed while this
|
|
140
|
+
* page was suspended, the answer is sitting on the relay, and a page that
|
|
141
|
+
* says "timed out" over a transaction that landed is the exact lie this
|
|
142
|
+
* path exists to prevent.
|
|
143
|
+
*/
|
|
144
|
+
const until = Date.now() + GIVE_UP_MS;
|
|
145
|
+
let blips = 0;
|
|
146
|
+
return await new Promise((resolve, reject) => {
|
|
147
|
+
let settled = false;
|
|
148
|
+
let inFlight = false;
|
|
149
|
+
let timer;
|
|
150
|
+
let onReturn;
|
|
151
|
+
const finish = (act, clear) => {
|
|
152
|
+
if (settled)
|
|
153
|
+
return;
|
|
154
|
+
settled = true;
|
|
155
|
+
if (timer)
|
|
156
|
+
clearInterval(timer);
|
|
157
|
+
if (onReturn && typeof document !== "undefined")
|
|
158
|
+
document.removeEventListener("visibilitychange", onReturn);
|
|
159
|
+
if (clear)
|
|
160
|
+
forgetTransact(started.transactionHash);
|
|
161
|
+
prompt?.done();
|
|
162
|
+
act();
|
|
163
|
+
};
|
|
164
|
+
const tick = async (last = false) => {
|
|
165
|
+
if (settled || inFlight)
|
|
166
|
+
return;
|
|
167
|
+
inFlight = true;
|
|
168
|
+
try {
|
|
169
|
+
const response = await fetch("/api/signx/transact/poll", {
|
|
170
|
+
method: "POST",
|
|
171
|
+
headers: { "content-type": "application/json" },
|
|
172
|
+
body: JSON.stringify({ sessionHash: started.sessionHash, transactionHash: started.transactionHash })
|
|
173
|
+
}).catch(() => null);
|
|
174
|
+
if (!response) {
|
|
175
|
+
if (++blips > BLIPS_ALLOWED)
|
|
176
|
+
finish(() => reject(unknownOutcome("lost contact with the signing relay. Check your connection; if your phone already approved it, the money still moves and this page will catch up", started.transactionHash)), false);
|
|
177
|
+
else if (last)
|
|
178
|
+
finish(() => reject(unknownOutcome("the signing request timed out. If your phone approved it, this page will say so when it hears back", started.transactionHash)), false);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const answer = (await response.json().catch(() => null));
|
|
182
|
+
if (!response.ok) {
|
|
183
|
+
/* 5xx is worth another try; 429 and 4xx will not fix themselves in
|
|
184
|
+
the two seconds before the next one, so they end it with a reason. */
|
|
185
|
+
if (response.status >= 500 && ++blips <= BLIPS_ALLOWED && !last)
|
|
186
|
+
return;
|
|
187
|
+
finish(() => reject(new Error(answer?.error || `the signing relay answered ${response.status}`)), true);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
blips = 0;
|
|
191
|
+
if (!answer)
|
|
192
|
+
return;
|
|
193
|
+
/* The relay told us this is over — the session is gone, or the phone
|
|
194
|
+
declined. Either way nobody is going to answer this code. */
|
|
195
|
+
if (answer.failed) {
|
|
196
|
+
finish(() => reject(new Error(answer.why || "your phone did not complete this")), true);
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (answer.waiting) {
|
|
200
|
+
/* The deadline may only expire with an answer in hand. "Not yet"
|
|
201
|
+
on the final ask is the one honest timeout. */
|
|
202
|
+
if (last)
|
|
203
|
+
finish(() => reject(unknownOutcome("the signing request timed out. Nothing was signed. If you approved it late, the page will catch up on its own", started.transactionHash)), false);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
/* The whole reason this is checked here: the relay's success channel
|
|
207
|
+
carries failures too. */
|
|
208
|
+
if (answer.code !== 0) {
|
|
209
|
+
const code = typeof answer.code === "number" ? answer.code : -1;
|
|
210
|
+
finish(() => reject(new ChainRefusal(code, answer.rawLog?.slice(0, 200) || `the transaction failed on chain (code ${answer.code})`)), true);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
finish(() => resolve({ transactionHash: answer.transactionHash ?? "" }), true);
|
|
214
|
+
}
|
|
215
|
+
finally {
|
|
216
|
+
inFlight = false;
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
timer = setInterval(() => void tick(Date.now() > until), POLL_MS);
|
|
220
|
+
if (typeof document !== "undefined") {
|
|
221
|
+
/* The moment the tab fronts again, ask — waiting for the next tick
|
|
222
|
+
after a phone trip is waiting on a timer iOS may have shelved. */
|
|
223
|
+
onReturn = () => {
|
|
224
|
+
if (document.visibilityState === "visible")
|
|
225
|
+
void tick(Date.now() > until);
|
|
226
|
+
};
|
|
227
|
+
document.addEventListener("visibilitychange", onReturn);
|
|
228
|
+
}
|
|
229
|
+
void tick();
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Sign and broadcast, by whatever means this session has.
|
|
234
|
+
*
|
|
235
|
+
* `prompt` is only consulted for phone signing; a passkey session never sees
|
|
236
|
+
* it, which is why it is optional rather than a required no-op.
|
|
237
|
+
*/
|
|
238
|
+
async function signWithSession(session, messages, memo = "Signed on Openhands Network", prompt, hooks) {
|
|
239
|
+
const kind = (0, session_ts_1.kindOf)(session);
|
|
240
|
+
if (kind === "passkey") {
|
|
241
|
+
const { broadcastWithPasskey } = await Promise.resolve().then(() => __importStar(require("./broadcast.js")));
|
|
242
|
+
const result = await broadcastWithPasskey(session, messages, memo, hooks);
|
|
243
|
+
return { transactionHash: result.transactionHash ?? "" };
|
|
244
|
+
}
|
|
245
|
+
if (kind === "signx")
|
|
246
|
+
return signViaPhone(session, messages, memo, prompt);
|
|
247
|
+
/*
|
|
248
|
+
* The auth hub hands over a session key — a secp mnemonic it registered on
|
|
249
|
+
* chain as a smart-account authenticator of the account, with that
|
|
250
|
+
* authenticator's id. **It is not the account's own key**: its derived
|
|
251
|
+
* address is another address entirely, so a plain wallet built from it
|
|
252
|
+
* cannot sign as the account — cosmjs refuses the signer before anything
|
|
253
|
+
* reaches the chain, which is what every hub-signed act here died of. It
|
|
254
|
+
* signs through the smart-account path, naming its authenticator, exactly
|
|
255
|
+
* as the portal and Jambo do. The root recovery mnemonic stays where the
|
|
256
|
+
* hub keeps it: away from this browser.
|
|
257
|
+
*/
|
|
258
|
+
if (session.sessionKey?.mnemonic) {
|
|
259
|
+
const { broadcastAsAccount, broadcastWithWallet } = await Promise.resolve().then(() => __importStar(require("./broadcast.js")));
|
|
260
|
+
if (session.sessionKey.authenticatorId) {
|
|
261
|
+
const result = await broadcastAsAccount({ address: session.address, mnemonic: session.sessionKey.mnemonic, authenticatorId: session.sessionKey.authenticatorId }, messages, memo, hooks);
|
|
262
|
+
return { transactionHash: result.transactionHash ?? "" };
|
|
263
|
+
}
|
|
264
|
+
/* No authenticator id: only a key that IS the account can sign with a
|
|
265
|
+
plain wallet, and that is checked rather than assumed, so the failure
|
|
266
|
+
says what is missing instead of cosmjs saying something else. */
|
|
267
|
+
const { DirectSecp256k1HdWallet } = await Promise.resolve().then(() => __importStar(require("@cosmjs/proto-signing")));
|
|
268
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(session.sessionKey.mnemonic, { prefix: "ixo" });
|
|
269
|
+
const [own] = await wallet.getAccounts();
|
|
270
|
+
if (own?.address !== session.address)
|
|
271
|
+
throw new Error("this session's key is not the account's own, and the hub named no authenticator for it. Sign in again");
|
|
272
|
+
const result = await broadcastWithWallet(wallet, session.address, messages, memo, hooks);
|
|
273
|
+
return { transactionHash: result.transactionHash ?? "" };
|
|
274
|
+
}
|
|
275
|
+
throw new Error("This account has no way to sign here. Sign in again.");
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=signWith.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signWith.js","sourceRoot":"","sources":["../../../src/chain/signWith.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { AccountData, DirectSecp256k1HdWallet, DirectSignResponse, OfflineDirectSigner } from "@cosmjs/proto-signing";
|
|
2
|
+
/**
|
|
3
|
+
* Signs Cosmos SignDocs with a passkey: the tx hash becomes the WebAuthn
|
|
4
|
+
* challenge, and the assertion (authenticatorData + clientDataJSON +
|
|
5
|
+
* signature) travels in the signature slot for the chain's AuthnVerification
|
|
6
|
+
* authenticator to verify.
|
|
7
|
+
*/
|
|
8
|
+
export declare class PasskeySigner implements OfflineDirectSigner {
|
|
9
|
+
private readonly address;
|
|
10
|
+
private readonly credentialId;
|
|
11
|
+
constructor(address: string, credentialId: string);
|
|
12
|
+
getAccounts(): Promise<readonly AccountData[]>;
|
|
13
|
+
signDirect(signerAddress: string, signDoc: Parameters<OfflineDirectSigner["signDirect"]>[1]): Promise<DirectSignResponse>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Signs Cosmos SignDocs with an auth-hub session key, for the account it was
|
|
17
|
+
* registered on.
|
|
18
|
+
*
|
|
19
|
+
* The mnemonic-driven twin of `PasskeySigner`. An auth-hub account is a
|
|
20
|
+
* smart account, and the key the hub hands a browser is a *session key* it
|
|
21
|
+
* added on chain as a `SignatureVerification` authenticator — so that key's
|
|
22
|
+
* own address is not the account's, and a plain wallet built from it cannot
|
|
23
|
+
* sign as the account: cosmjs looks the signer address up in
|
|
24
|
+
* `getAccounts()` and stops there. This reports the account's address with an
|
|
25
|
+
* empty public key, which is how a smart-account signer says "verify me by
|
|
26
|
+
* the authenticator the transaction names", and signs the document with the
|
|
27
|
+
* session key. The `TxExtension` beside it (`broadcastAsAccount`) names which
|
|
28
|
+
* authenticator that is. The same shape the portal and the Jambo app sign
|
|
29
|
+
* with, and the shape the hub's own demo proved against the chain.
|
|
30
|
+
*/
|
|
31
|
+
export declare class SessionKeySigner implements OfflineDirectSigner {
|
|
32
|
+
private readonly wallet;
|
|
33
|
+
private readonly address;
|
|
34
|
+
constructor(wallet: DirectSecp256k1HdWallet, address: string);
|
|
35
|
+
getAccounts(): Promise<readonly AccountData[]>;
|
|
36
|
+
signDirect(signerAddress: string, signDoc: Parameters<OfflineDirectSigner["signDirect"]>[1]): Promise<DirectSignResponse>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/chain/signer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK3H;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,mBAAmB;IAIvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAK3C,WAAW,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAI9C,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAchI;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM;IAKtD,WAAW,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAI9C,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAMhI"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SessionKeySigner = exports.PasskeySigner = void 0;
|
|
4
|
+
const crypto_1 = require("@cosmjs/crypto");
|
|
5
|
+
const proto_signing_1 = require("@cosmjs/proto-signing");
|
|
6
|
+
const encoding_ts_1 = require("./encoding.js");
|
|
7
|
+
const webauthn_ts_1 = require("./webauthn.js");
|
|
8
|
+
/**
|
|
9
|
+
* Signs Cosmos SignDocs with a passkey: the tx hash becomes the WebAuthn
|
|
10
|
+
* challenge, and the assertion (authenticatorData + clientDataJSON +
|
|
11
|
+
* signature) travels in the signature slot for the chain's AuthnVerification
|
|
12
|
+
* authenticator to verify.
|
|
13
|
+
*/
|
|
14
|
+
class PasskeySigner {
|
|
15
|
+
/* Plain fields rather than constructor parameter properties: node's
|
|
16
|
+
strip-only TypeScript cannot parse those, and the smokes run this package
|
|
17
|
+
directly so a live script proves the same code the browser runs. */
|
|
18
|
+
address;
|
|
19
|
+
credentialId;
|
|
20
|
+
constructor(address, credentialId) {
|
|
21
|
+
this.address = address;
|
|
22
|
+
this.credentialId = credentialId;
|
|
23
|
+
}
|
|
24
|
+
async getAccounts() {
|
|
25
|
+
return [{ address: this.address, algo: "secp256k1", pubkey: new Uint8Array() }];
|
|
26
|
+
}
|
|
27
|
+
async signDirect(signerAddress, signDoc) {
|
|
28
|
+
if (signerAddress !== this.address)
|
|
29
|
+
throw new Error(`Address ${signerAddress} not found in wallet`);
|
|
30
|
+
const challenge = (0, crypto_1.sha256)((0, proto_signing_1.makeSignBytes)(signDoc));
|
|
31
|
+
const assertion = await (0, webauthn_ts_1.assertWithCredential)(this.credentialId, challenge, (0, encoding_ts_1.base64urlToBytes)(this.credentialId));
|
|
32
|
+
return {
|
|
33
|
+
signed: signDoc,
|
|
34
|
+
signature: {
|
|
35
|
+
pub_key: { type: "tendermint/PubKeySecp256k1", value: "" },
|
|
36
|
+
signature: (0, encoding_ts_1.utf8ToBase64)(JSON.stringify(assertion))
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.PasskeySigner = PasskeySigner;
|
|
42
|
+
/**
|
|
43
|
+
* Signs Cosmos SignDocs with an auth-hub session key, for the account it was
|
|
44
|
+
* registered on.
|
|
45
|
+
*
|
|
46
|
+
* The mnemonic-driven twin of `PasskeySigner`. An auth-hub account is a
|
|
47
|
+
* smart account, and the key the hub hands a browser is a *session key* it
|
|
48
|
+
* added on chain as a `SignatureVerification` authenticator — so that key's
|
|
49
|
+
* own address is not the account's, and a plain wallet built from it cannot
|
|
50
|
+
* sign as the account: cosmjs looks the signer address up in
|
|
51
|
+
* `getAccounts()` and stops there. This reports the account's address with an
|
|
52
|
+
* empty public key, which is how a smart-account signer says "verify me by
|
|
53
|
+
* the authenticator the transaction names", and signs the document with the
|
|
54
|
+
* session key. The `TxExtension` beside it (`broadcastAsAccount`) names which
|
|
55
|
+
* authenticator that is. The same shape the portal and the Jambo app sign
|
|
56
|
+
* with, and the shape the hub's own demo proved against the chain.
|
|
57
|
+
*/
|
|
58
|
+
class SessionKeySigner {
|
|
59
|
+
wallet;
|
|
60
|
+
address;
|
|
61
|
+
constructor(wallet, address) {
|
|
62
|
+
this.wallet = wallet;
|
|
63
|
+
this.address = address;
|
|
64
|
+
}
|
|
65
|
+
async getAccounts() {
|
|
66
|
+
return [{ address: this.address, algo: "secp256k1", pubkey: new Uint8Array() }];
|
|
67
|
+
}
|
|
68
|
+
async signDirect(signerAddress, signDoc) {
|
|
69
|
+
if (signerAddress !== this.address)
|
|
70
|
+
throw new Error(`Address ${signerAddress} not found in wallet`);
|
|
71
|
+
const [own] = await this.wallet.getAccounts();
|
|
72
|
+
if (!own)
|
|
73
|
+
throw new Error("the session key has no account");
|
|
74
|
+
return this.wallet.signDirect(own.address, signDoc);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SessionKeySigner = SessionKeySigner;
|
|
78
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/chain/signer.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,yDAAsD;AAGtD,+CAA+D;AAC/D,+CAAqD;AAErD;;;;;GAKG;AACH,MAAa,aAAa;IACxB;;0EAEsE;IACrD,OAAO,CAAS;IAChB,YAAY,CAAS;IAEtC,YAAY,OAAe,EAAE,YAAoB;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,aAAqB,EAAE,OAAyD;QAC/F,IAAI,aAAa,KAAK,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,aAAa,sBAAsB,CAAC,CAAC;QAEpG,MAAM,SAAS,GAAG,IAAA,eAAM,EAAC,IAAA,6BAAa,EAAC,OAAO,CAAC,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,IAAA,kCAAoB,EAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAA,8BAAgB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAEhH,OAAO;YACL,MAAM,EAAE,OAAO;YACf,SAAS,EAAE;gBACT,OAAO,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC1D,SAAS,EAAE,IAAA,0BAAY,EAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;aACnD;SACF,CAAC;IACJ,CAAC;CACF;AA9BD,sCA8BC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAa,gBAAgB;IACV,MAAM,CAA0B;IAChC,OAAO,CAAS;IAEjC,YAAY,MAA+B,EAAE,OAAe;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,aAAqB,EAAE,OAAyD;QAC/F,IAAI,aAAa,KAAK,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,aAAa,sBAAsB,CAAC,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAnBD,4CAmBC"}
|