@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,190 @@
|
|
|
1
|
+
import { gql, gqlConnection } from "../data/gql.js";
|
|
2
|
+
import { amountIn } from "./pool.js";
|
|
3
|
+
import { askDenom } from "../chain/money.js";
|
|
4
|
+
/*
|
|
5
|
+
* The memo filter runs IN the query, and the answer is paged to its end.
|
|
6
|
+
*
|
|
7
|
+
* This used to fetch the newest 400 treasury sends and look for the memo
|
|
8
|
+
* among them (scale review D5/D13). That was the last belt against paying a
|
|
9
|
+
* card buyer twice, and it went blind the moment the treasury made 400 other
|
|
10
|
+
* sends between the first attempt and the retry — a busy afternoon, not an
|
|
11
|
+
* edge case. Blocksync filters a message by its transaction's memo
|
|
12
|
+
* (`transactionByTransactionHash: {memo: …}`), so the index now answers the
|
|
13
|
+
* question asked instead of a window around it.
|
|
14
|
+
*
|
|
15
|
+
* Only transactions that succeeded (`code: 0`) count as sent: a failed
|
|
16
|
+
* transaction with the right memo moved nothing.
|
|
17
|
+
*/
|
|
18
|
+
const SEND = '"/cosmos.bank.v1beta1.MsgSend"';
|
|
19
|
+
const SEND_FIELDS = "value transactionByTransactionHash { memo hash time code }";
|
|
20
|
+
/** The most rows a memo-prefix read returns; one more throws rather than answering short. */
|
|
21
|
+
export const MAX_SENDS = 10_000;
|
|
22
|
+
function toSend(node, denom) {
|
|
23
|
+
const tx = node.transactionByTransactionHash;
|
|
24
|
+
/* The message value is the MsgSend as the index stored it; a shape it does
|
|
25
|
+
not recognise reads as zero. */
|
|
26
|
+
const value = node.value;
|
|
27
|
+
return {
|
|
28
|
+
memo: (tx?.memo ?? "").trim(),
|
|
29
|
+
hash: tx?.hash ?? "",
|
|
30
|
+
at: tx?.time ?? "",
|
|
31
|
+
from: typeof value?.fromAddress === "string" ? value.fromAddress : "",
|
|
32
|
+
to: typeof value?.toAddress === "string" ? value.toAddress : "",
|
|
33
|
+
amountBase: amountIn(value?.amount, denom)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The send from `fromAddress` carrying exactly `memo`, newest first, or null.
|
|
38
|
+
*
|
|
39
|
+
* Throws when the index cannot answer. Keyed on the sender as well as the
|
|
40
|
+
* memo, deliberately: anybody can put any memo on a transaction, so a memo
|
|
41
|
+
* alone is not proof that *the treasury* paid — a stranger's one-coin send
|
|
42
|
+
* with the right memo would otherwise read as a delivery made.
|
|
43
|
+
*/
|
|
44
|
+
export async function sendWithMemo(fromAddress, memo, denom = askDenom()) {
|
|
45
|
+
const data = await gql(`query {
|
|
46
|
+
messages(
|
|
47
|
+
filter: {typeUrl: {equalTo: ${SEND}}, value: {contains: {fromAddress: ${JSON.stringify(fromAddress)}}}, transactionByTransactionHash: {memo: {equalTo: ${JSON.stringify(memo)}}, code: {equalTo: 0}}},
|
|
48
|
+
orderBy: ID_DESC,
|
|
49
|
+
first: 1
|
|
50
|
+
) {
|
|
51
|
+
nodes { ${SEND_FIELDS} }
|
|
52
|
+
}
|
|
53
|
+
}`,
|
|
54
|
+
/* No caching: this question is asked to decide whether to move money, and
|
|
55
|
+
a ten-second-old "no" is exactly the answer that pays twice. */
|
|
56
|
+
0);
|
|
57
|
+
const node = data.messages?.nodes?.[0];
|
|
58
|
+
return node ? toSend(node, denom) : null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Has this treasury already broadcast a send carrying exactly this memo?
|
|
62
|
+
*
|
|
63
|
+
* Throws when the index cannot answer. The caller decides what that means:
|
|
64
|
+
* the webhook treats it as "not proven paid" and falls through to its own
|
|
65
|
+
* memory, because refusing to deliver a payment somebody made is worse than
|
|
66
|
+
* the double-pay this guards against — and the memory catches the common
|
|
67
|
+
* case anyway.
|
|
68
|
+
*/
|
|
69
|
+
export async function sentWithMemo(fromAddress, memo) {
|
|
70
|
+
return (await sendWithMemo(fromAddress, memo)) !== null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The `MsgSend`s a transaction carried, or null when the index has no such
|
|
74
|
+
* transaction (or it carried no send). For the retry that already knows the
|
|
75
|
+
* hash it computed before broadcasting (D5): "did that exact transaction
|
|
76
|
+
* land, and where did it pay" is a lookup, not a scan.
|
|
77
|
+
*/
|
|
78
|
+
export async function sendByHash(hash) {
|
|
79
|
+
const wanted = hash.replace(/^0x/i, "").toUpperCase();
|
|
80
|
+
const data = await gql(`query {
|
|
81
|
+
messages(filter: {transactionHash: {equalTo: ${JSON.stringify(wanted)}}, typeUrl: {equalTo: ${SEND}}}, orderBy: ID_ASC, first: 100) {
|
|
82
|
+
nodes { ${SEND_FIELDS} }
|
|
83
|
+
}
|
|
84
|
+
}`, 0);
|
|
85
|
+
const nodes = data.messages?.nodes ?? [];
|
|
86
|
+
const tx = nodes[0]?.transactionByTransactionHash;
|
|
87
|
+
if (!tx)
|
|
88
|
+
return null;
|
|
89
|
+
return {
|
|
90
|
+
hash: tx.hash ?? wanted,
|
|
91
|
+
memo: (tx.memo ?? "").trim(),
|
|
92
|
+
at: tx.time ?? "",
|
|
93
|
+
code: typeof tx.code === "number" ? tx.code : null,
|
|
94
|
+
sends: nodes.map((node) => {
|
|
95
|
+
const value = node.value;
|
|
96
|
+
const amount = Array.isArray(value?.amount)
|
|
97
|
+
? value.amount
|
|
98
|
+
.filter((coin) => typeof coin?.denom === "string" && typeof coin?.amount === "string")
|
|
99
|
+
.map((coin) => ({ denom: coin.denom, amount: coin.amount }))
|
|
100
|
+
: [];
|
|
101
|
+
return { from: typeof value?.fromAddress === "string" ? value.fromAddress : "", to: typeof value?.toAddress === "string" ? value.toAddress : "", amount };
|
|
102
|
+
})
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** Every successful send matching `party`, whose memo starts with `prefix`, paged to the end. */
|
|
106
|
+
async function sendsMatching(party, prefix, maxRows) {
|
|
107
|
+
const contains = "fromAddress" in party ? `{fromAddress: ${JSON.stringify(party.fromAddress)}}` : `{toAddress: ${JSON.stringify(party.toAddress)}}`;
|
|
108
|
+
return gqlConnection(`query($first: Int!, $after: Cursor) {
|
|
109
|
+
messages(
|
|
110
|
+
filter: {typeUrl: {equalTo: ${SEND}}, value: {contains: ${contains}}, transactionByTransactionHash: {memo: {startsWith: ${JSON.stringify(prefix)}}, code: {equalTo: 0}}},
|
|
111
|
+
orderBy: ID_DESC,
|
|
112
|
+
first: $first,
|
|
113
|
+
after: $after
|
|
114
|
+
) {
|
|
115
|
+
pageInfo { hasNextPage endCursor }
|
|
116
|
+
nodes { ${SEND_FIELDS} }
|
|
117
|
+
}
|
|
118
|
+
}`, "messages", { revalidate: 30, pageSize: 500, maxRows });
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Every send this treasury made whose memo starts with a word — the evidence
|
|
122
|
+
* behind a backer's credential.
|
|
123
|
+
*
|
|
124
|
+
* A backing leaves no claim and no determination: it is a card payment that
|
|
125
|
+
* became a chain send into a pin's pool. So the transaction *is* the proof,
|
|
126
|
+
* and a credential that says "this person backed four cleanups" has to be
|
|
127
|
+
* able to point at four of them. Which is why the memo carries the backer's
|
|
128
|
+
* address at all.
|
|
129
|
+
*
|
|
130
|
+
* Every one, not a window: the memo prefix is filtered by the index and the
|
|
131
|
+
* answer paged to its end, so an old backing is not dropped for being old. A
|
|
132
|
+
* history longer than `limit` throws `TruncatedConnection` rather than
|
|
133
|
+
* quietly counting fewer backings than there were.
|
|
134
|
+
*
|
|
135
|
+
* **Ask only for fields a Transaction has** — hash, time, memo. An earlier
|
|
136
|
+
* draft asked the index for a block timestamp under a name this schema does
|
|
137
|
+
* not carry, so every call threw; the caller turns a failure into an empty
|
|
138
|
+
* list, so a backer's record simply read zero and nothing ever said why.
|
|
139
|
+
*
|
|
140
|
+
* `amountBase` is what the send carried **in `denom`** — the ask's denom
|
|
141
|
+
* unless the caller says otherwise — and nothing else it carried. `to` is
|
|
142
|
+
* where it went, so a reader can check a backing actually reached a pool.
|
|
143
|
+
*/
|
|
144
|
+
export async function sendsWithMemoPrefix(fromAddress, prefix, limit = MAX_SENDS, denom = askDenom()) {
|
|
145
|
+
const out = [];
|
|
146
|
+
const seen = new Set();
|
|
147
|
+
for (const node of await sendsMatching({ fromAddress }, prefix, limit)) {
|
|
148
|
+
const send = toSend(node, denom);
|
|
149
|
+
if (!send.memo.startsWith(prefix) || seen.has(send.memo))
|
|
150
|
+
continue;
|
|
151
|
+
seen.add(send.memo);
|
|
152
|
+
out.push({ memo: send.memo, hash: send.hash, at: send.at, to: send.to, amountBase: send.amountBase });
|
|
153
|
+
}
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Every send *into* an address whose memo starts with a word.
|
|
158
|
+
*
|
|
159
|
+
* The mirror of `sendsWithMemoPrefix`, and the round that needed it is the
|
|
160
|
+
* one where money stopped coming only from us. A card backing is a send the
|
|
161
|
+
* treasury makes, so asking what the treasury sent finds it. A sponsor's
|
|
162
|
+
* backing is a send from their own account into the pool, and the treasury
|
|
163
|
+
* query is blind to it — the pot would grow, the map would be right, and
|
|
164
|
+
* every screen that names a backer would show nothing.
|
|
165
|
+
*
|
|
166
|
+
* So: keyed on the recipient, which for a backing is the pool itself. One
|
|
167
|
+
* pool's whole funding history, whoever paid it.
|
|
168
|
+
*
|
|
169
|
+
* The same paging and the same honesty as its twin: it throws when the index
|
|
170
|
+
* cannot answer, because a caller that cannot tell "nobody backed this" from
|
|
171
|
+
* "we could not look" writes the bug this file already carries a scar from.
|
|
172
|
+
*
|
|
173
|
+
* **Anybody can send to a pool**, so unlike the treasury's own history this
|
|
174
|
+
* list is untrusted input: `amountBase` counts only coins in `denom` — the
|
|
175
|
+
* ask's, unless the caller says otherwise — because a memo on a coin of some
|
|
176
|
+
* other denom would otherwise read as a contribution of that many base units
|
|
177
|
+
* of PAY. Nothing is deduplicated: every message the index returns is a
|
|
178
|
+
* separate send and separate money, including two in one transaction.
|
|
179
|
+
*/
|
|
180
|
+
export async function sendsToWithMemoPrefix(toAddress, prefix, limit = MAX_SENDS, denom = askDenom()) {
|
|
181
|
+
const out = [];
|
|
182
|
+
for (const node of await sendsMatching({ toAddress }, prefix, limit)) {
|
|
183
|
+
const send = toSend(node, denom);
|
|
184
|
+
if (!send.memo.startsWith(prefix))
|
|
185
|
+
continue;
|
|
186
|
+
out.push({ memo: send.memo, hash: send.hash, at: send.at, from: send.from, amountBase: send.amountBase });
|
|
187
|
+
}
|
|
188
|
+
return out;
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=treasurySends.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treasurySends.js","sourceRoot":"","sources":["../../../src/campaign/treasurySends.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@ixo/openhands-sdk/campaign` — the cleanup campaign: spots, pins, the fold, pools, pledges, funding, standings, badges and the cleanup rubric. `campaign/rule` hashes with `node:crypto`, so only its TYPES ride here; import `@ixo/openhands-sdk/campaign/rule` for the parser.
|
|
3
|
+
*
|
|
4
|
+
* Isomorphic by contract: nothing reachable from here imports a `node:`
|
|
5
|
+
* builtin or a server-only package (`barrels.test.ts` walks the graph and
|
|
6
|
+
* fails if one appears), so a browser bundle can import this barrel. A module
|
|
7
|
+
* that needs Node stays reachable only by its own subpath.
|
|
8
|
+
*/
|
|
9
|
+
export * from "./campaign/spots.ts";
|
|
10
|
+
export * from "./campaign/cleanable.ts";
|
|
11
|
+
export * from "./campaign/pool.ts";
|
|
12
|
+
export * from "./campaign/landing.ts";
|
|
13
|
+
export * from "./campaign/fold.ts";
|
|
14
|
+
export * from "./campaign/standings.ts";
|
|
15
|
+
export * from "./campaign/record.ts";
|
|
16
|
+
export * from "./campaign/badges.ts";
|
|
17
|
+
export * from "./campaign/campaign.ts";
|
|
18
|
+
export * from "./campaign/campaigns.ts";
|
|
19
|
+
export * from "./campaign/pledges.ts";
|
|
20
|
+
export * from "./campaign/pledgesChain.ts";
|
|
21
|
+
export * from "./campaign/funding.ts";
|
|
22
|
+
export * from "./campaign/treasurySends.ts";
|
|
23
|
+
export * from "./campaign/bands.ts";
|
|
24
|
+
export * from "./campaign/spot.ts";
|
|
25
|
+
export * from "./campaign/cleanup.ts";
|
|
26
|
+
export * from "./campaign/field.ts";
|
|
27
|
+
export * from "./campaign/commit.ts";
|
|
28
|
+
export type * from "./campaign/rule.ts";
|
|
29
|
+
//# sourceMappingURL=campaign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.d.ts","sourceRoot":"","sources":["../../src/campaign.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,mBAAmB,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@ixo/openhands-sdk/campaign` — the cleanup campaign: spots, pins, the fold, pools, pledges, funding, standings, badges and the cleanup rubric. `campaign/rule` hashes with `node:crypto`, so only its TYPES ride here; import `@ixo/openhands-sdk/campaign/rule` for the parser.
|
|
3
|
+
*
|
|
4
|
+
* Isomorphic by contract: nothing reachable from here imports a `node:`
|
|
5
|
+
* builtin or a server-only package (`barrels.test.ts` walks the graph and
|
|
6
|
+
* fails if one appears), so a browser bundle can import this barrel. A module
|
|
7
|
+
* that needs Node stays reachable only by its own subpath.
|
|
8
|
+
*/
|
|
9
|
+
export * from "./campaign/spots.js";
|
|
10
|
+
export * from "./campaign/cleanable.js";
|
|
11
|
+
export * from "./campaign/pool.js";
|
|
12
|
+
export * from "./campaign/landing.js";
|
|
13
|
+
export * from "./campaign/fold.js";
|
|
14
|
+
export * from "./campaign/standings.js";
|
|
15
|
+
export * from "./campaign/record.js";
|
|
16
|
+
export * from "./campaign/badges.js";
|
|
17
|
+
export * from "./campaign/campaign.js";
|
|
18
|
+
export * from "./campaign/campaigns.js";
|
|
19
|
+
export * from "./campaign/pledges.js";
|
|
20
|
+
export * from "./campaign/pledgesChain.js";
|
|
21
|
+
export * from "./campaign/funding.js";
|
|
22
|
+
export * from "./campaign/treasurySends.js";
|
|
23
|
+
export * from "./campaign/bands.js";
|
|
24
|
+
export * from "./campaign/spot.js";
|
|
25
|
+
export * from "./campaign/cleanup.js";
|
|
26
|
+
export * from "./campaign/field.js";
|
|
27
|
+
export * from "./campaign/commit.js";
|
|
28
|
+
//# sourceMappingURL=campaign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../src/campaign.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type QiSession } from "./session.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Poll until the index shows an authenticator the chain already accepted.
|
|
4
|
+
*
|
|
5
|
+
* The budget is a parameter because the two callers pay for it differently.
|
|
6
|
+
* When somebody is watching a spinner, a long wait is the cost of the wait
|
|
7
|
+
* itself; when the wait happens behind a screen they are reading anyway — the
|
|
8
|
+
* recovery key — it is free, so it should be generous.
|
|
9
|
+
*/
|
|
10
|
+
export declare function waitForAuthenticator(keyId: string, budgetMs?: number): Promise<{
|
|
11
|
+
address: string;
|
|
12
|
+
id: string;
|
|
13
|
+
}>;
|
|
14
|
+
export interface CreatedAccount {
|
|
15
|
+
address: string;
|
|
16
|
+
/** The recovery key. Shown once by the caller, then let go. */
|
|
17
|
+
mnemonic: string;
|
|
18
|
+
/** What `settleNewAccount` needs to finish the job. */
|
|
19
|
+
credentialId: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function createAccount(label?: string): Promise<CreatedAccount>;
|
|
22
|
+
/**
|
|
23
|
+
* Finish the job the index was holding up: find the authenticator the chain
|
|
24
|
+
* already accepted and save the session.
|
|
25
|
+
*
|
|
26
|
+
* Called after the recovery key is on screen, so its wait costs the person
|
|
27
|
+
* nothing and can afford to be patient. If it never lands they are not
|
|
28
|
+
* stranded — the passkey is on chain, and signing in finds it.
|
|
29
|
+
*/
|
|
30
|
+
export declare function settleNewAccount(address: string, credentialId: string): Promise<QiSession>;
|
|
31
|
+
export declare function signIn(): Promise<QiSession>;
|
|
32
|
+
/**
|
|
33
|
+
* Prove control of a passkey account.
|
|
34
|
+
*
|
|
35
|
+
* The account holds no key in the browser — the mnemonic was shown once and
|
|
36
|
+
* stored nowhere — so this is a WebAuthn assertion over the message digest.
|
|
37
|
+
* The server checks it against the authenticator the chain has on record,
|
|
38
|
+
* which is the same record the chain itself checks every transaction against.
|
|
39
|
+
*/
|
|
40
|
+
export declare function proveWithPasskey(session: QiSession, message: string): Promise<{
|
|
41
|
+
kind: "webauthn";
|
|
42
|
+
credentialId: string;
|
|
43
|
+
authenticatorData: string;
|
|
44
|
+
clientDataJSON: string;
|
|
45
|
+
webauthnSignature: string;
|
|
46
|
+
} | null>;
|
|
47
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/chain/account.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAqC3D;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBrH;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA+C3E;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAKhG;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAQjD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAmB1I"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
|
|
2
|
+
import { ixo } from "@ixo/impactxclient-sdk";
|
|
3
|
+
import { broadcastWithWallet } from "./broadcast.js";
|
|
4
|
+
import { iidDocumentMsg } from "./iid.js";
|
|
5
|
+
import { saveSession } from "./session.js";
|
|
6
|
+
import { createCredential, discoverCredentialId } from "./webauthn.js";
|
|
7
|
+
import { givenConfig } from "../given.js";
|
|
8
|
+
import { hasEnv } from "../envRead.js";
|
|
9
|
+
/**
|
|
10
|
+
* An account appears around a person, not before them. The address is a plain
|
|
11
|
+
* secp account whose mnemonic doubles as the recovery key (shown once, stored
|
|
12
|
+
* nowhere); the passkey is added as a smart-account authenticator on top, so
|
|
13
|
+
* A passkey signs everything from then on and the mnemonic can restore access
|
|
14
|
+
* if every synced passkey is lost.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Ask the index which account a passkey belongs to.
|
|
18
|
+
*
|
|
19
|
+
* Throws when the index cannot be reached and answers `null` only when it
|
|
20
|
+
* genuinely has no such authenticator. The distinction matters: this used to
|
|
21
|
+
* swallow transport failures into the same `null`, so an unreachable index and
|
|
22
|
+
* a chain the index has not caught up with produced identical advice, and only
|
|
23
|
+
* one of them is fixed by waiting.
|
|
24
|
+
*/
|
|
25
|
+
async function authenticatorByKeyId(keyId) {
|
|
26
|
+
const response = await fetch(givenConfig().graphqlUrl ?? (hasEnv() ? process.env.NEXT_PUBLIC_GRAPHQL_URL : undefined) ?? "", {
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: { "content-type": "application/json" },
|
|
29
|
+
body: JSON.stringify({
|
|
30
|
+
query: `query { smartAccountAuthenticators(filter: {keyId: {equalTo: ${JSON.stringify(keyId)}}}) { nodes { address id } } }`
|
|
31
|
+
}),
|
|
32
|
+
signal: AbortSignal.timeout(15_000)
|
|
33
|
+
});
|
|
34
|
+
if (!response.ok)
|
|
35
|
+
throw new Error(`The index answered ${response.status}`);
|
|
36
|
+
const json = (await response.json());
|
|
37
|
+
return json.data?.smartAccountAuthenticators?.nodes?.[0] ?? null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Poll until the index shows an authenticator the chain already accepted.
|
|
41
|
+
*
|
|
42
|
+
* The budget is a parameter because the two callers pay for it differently.
|
|
43
|
+
* When somebody is watching a spinner, a long wait is the cost of the wait
|
|
44
|
+
* itself; when the wait happens behind a screen they are reading anyway — the
|
|
45
|
+
* recovery key — it is free, so it should be generous.
|
|
46
|
+
*/
|
|
47
|
+
export async function waitForAuthenticator(keyId, budgetMs = 30_000) {
|
|
48
|
+
const deadline = Date.now() + budgetMs;
|
|
49
|
+
let reached = false;
|
|
50
|
+
while (Date.now() < deadline) {
|
|
51
|
+
try {
|
|
52
|
+
const found = await authenticatorByKeyId(keyId);
|
|
53
|
+
reached = true;
|
|
54
|
+
if (found)
|
|
55
|
+
return found;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* Unreachable rather than not-yet-indexed. Keep trying — a blip should
|
|
59
|
+
not end this — but remember, so the message can say which it was. */
|
|
60
|
+
}
|
|
61
|
+
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
62
|
+
}
|
|
63
|
+
throw new Error(reached
|
|
64
|
+
? "The account is on chain but the index hasn't caught up. Sign in with your passkey in a moment"
|
|
65
|
+
: "The account is on chain, but the network index can't be reached right now. Sign in with your passkey once it is back");
|
|
66
|
+
}
|
|
67
|
+
export async function createAccount(label) {
|
|
68
|
+
const wallet = await DirectSecp256k1HdWallet.generate(12, { prefix: "ixo" });
|
|
69
|
+
const [account] = await wallet.getAccounts();
|
|
70
|
+
if (!account)
|
|
71
|
+
throw new Error("Key generation failed");
|
|
72
|
+
const address = account.address;
|
|
73
|
+
const credential = await createCredential(address, label);
|
|
74
|
+
const authnPubKey = ixo.smartaccount.crypto.AuthnPubKey.encode(ixo.smartaccount.crypto.AuthnPubKey.fromPartial({
|
|
75
|
+
keyId: credential.credentialId,
|
|
76
|
+
key: credential.publicKey,
|
|
77
|
+
coseAlgorithm: credential.coseAlgorithm
|
|
78
|
+
})).finish();
|
|
79
|
+
await broadcastWithWallet(wallet, address, [
|
|
80
|
+
iidDocumentMsg(address, account.pubkey),
|
|
81
|
+
{
|
|
82
|
+
typeUrl: "/ixo.smartaccount.v1beta1.MsgAddAuthenticator",
|
|
83
|
+
value: ixo.smartaccount.v1beta1.MsgAddAuthenticator.fromPartial({
|
|
84
|
+
sender: address,
|
|
85
|
+
authenticatorType: "AuthnVerification",
|
|
86
|
+
data: authnPubKey
|
|
87
|
+
})
|
|
88
|
+
}
|
|
89
|
+
], "Create Openhands account");
|
|
90
|
+
/*
|
|
91
|
+
* Returns the moment the chain has it — the index read-back is deliberately
|
|
92
|
+
* NOT part of this function.
|
|
93
|
+
*
|
|
94
|
+
* It used to be, and that cost somebody their recovery key: the wait timed
|
|
95
|
+
* out after eighteen seconds, the error propagated, and the return statement
|
|
96
|
+
* carrying `wallet.mnemonic` never ran. The account was on chain and usable
|
|
97
|
+
* by passkey, but the words that restore it if every synced passkey is lost
|
|
98
|
+
* were generated, written into the account, and dropped — unrecoverably, and
|
|
99
|
+
* without anyone being told. An index lagging behind a block must never cost
|
|
100
|
+
* a person their backup. The session can be rebuilt by signing in; a
|
|
101
|
+
* mnemonic cannot be rebuilt by anything.
|
|
102
|
+
*/
|
|
103
|
+
return { address, mnemonic: wallet.mnemonic, credentialId: credential.credentialId };
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Finish the job the index was holding up: find the authenticator the chain
|
|
107
|
+
* already accepted and save the session.
|
|
108
|
+
*
|
|
109
|
+
* Called after the recovery key is on screen, so its wait costs the person
|
|
110
|
+
* nothing and can afford to be patient. If it never lands they are not
|
|
111
|
+
* stranded — the passkey is on chain, and signing in finds it.
|
|
112
|
+
*/
|
|
113
|
+
export async function settleNewAccount(address, credentialId) {
|
|
114
|
+
const authenticator = await waitForAuthenticator(credentialId, 90_000);
|
|
115
|
+
const session = { address, credentialId, authenticatorId: authenticator.id };
|
|
116
|
+
saveSession(session);
|
|
117
|
+
return session;
|
|
118
|
+
}
|
|
119
|
+
export async function signIn() {
|
|
120
|
+
const credentialId = await discoverCredentialId();
|
|
121
|
+
const authenticator = await authenticatorByKeyId(credentialId);
|
|
122
|
+
if (!authenticator)
|
|
123
|
+
throw new Error("This passkey doesn't belong to an Openhands account on this network");
|
|
124
|
+
const session = { address: authenticator.address, credentialId, authenticatorId: authenticator.id };
|
|
125
|
+
saveSession(session);
|
|
126
|
+
return session;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Prove control of a passkey account.
|
|
130
|
+
*
|
|
131
|
+
* The account holds no key in the browser — the mnemonic was shown once and
|
|
132
|
+
* stored nowhere — so this is a WebAuthn assertion over the message digest.
|
|
133
|
+
* The server checks it against the authenticator the chain has on record,
|
|
134
|
+
* which is the same record the chain itself checks every transaction against.
|
|
135
|
+
*/
|
|
136
|
+
export async function proveWithPasskey(session, message) {
|
|
137
|
+
const { sha256 } = await import("@cosmjs/crypto");
|
|
138
|
+
const { assertWithCredential } = await import("./webauthn.js");
|
|
139
|
+
if (!session.credentialId)
|
|
140
|
+
return null;
|
|
141
|
+
const digest = sha256(new TextEncoder().encode(message));
|
|
142
|
+
const idBytes = Uint8Array.from(atob(session.credentialId.replace(/-/g, "+").replace(/_/g, "/")), (character) => character.charCodeAt(0));
|
|
143
|
+
const assertion = await assertWithCredential(session.credentialId, digest, idBytes).catch(() => null);
|
|
144
|
+
if (!assertion)
|
|
145
|
+
return null;
|
|
146
|
+
/* assertWithCredential already hands these back base64-encoded — the chain
|
|
147
|
+
path needs them that way too, so there is nothing to convert. */
|
|
148
|
+
return {
|
|
149
|
+
kind: "webauthn",
|
|
150
|
+
credentialId: session.credentialId,
|
|
151
|
+
authenticatorData: assertion.authenticatorData,
|
|
152
|
+
clientDataJSON: assertion.clientDataJSON,
|
|
153
|
+
webauthnSignature: assertion.signature
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/chain/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proving that a key may act for an account — the gate's question.
|
|
3
|
+
*
|
|
4
|
+
* A submission grant is issued to an address, and the youth app's gate must
|
|
5
|
+
* only issue one to somebody who can sign for that address. The obvious
|
|
6
|
+
* check — sign a fresh message, derive the address from the public key,
|
|
7
|
+
* compare — is wrong for the one kind of account this app has: an auth-hub
|
|
8
|
+
* account is a **smart account**, and the key a browser holds for it is a
|
|
9
|
+
* *session key* the hub registered on chain as a `SignatureVerification`
|
|
10
|
+
* authenticator. That key's own address is not the account's, and never
|
|
11
|
+
* will be. Deriving an address from it proves only that some key exists.
|
|
12
|
+
*
|
|
13
|
+
* So the check is the chain's own: the signature must verify against the
|
|
14
|
+
* public key it names, and that public key must be a live authenticator of
|
|
15
|
+
* the account the grant is for. A plain key whose derived address *is* the
|
|
16
|
+
* account still passes, because that is the older, simpler case of the same
|
|
17
|
+
* fact. Pure, so a test can hand it any authenticator list it likes; the
|
|
18
|
+
* index read lives in `@ixo/openhands-sdk/data/authenticators`.
|
|
19
|
+
*/
|
|
20
|
+
export interface SubmitProof {
|
|
21
|
+
kind: string;
|
|
22
|
+
/** Compressed secp256k1 public key, base64. */
|
|
23
|
+
pubkey: string;
|
|
24
|
+
/** 64 bytes r‖s, base64. */
|
|
25
|
+
signature: string;
|
|
26
|
+
/** The exact words that were signed — see `submitProofMessage`. */
|
|
27
|
+
message: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A signature is a moment, not a standing permission — but the window is a
|
|
31
|
+
* day, not five minutes (2026-09-20). Five refused two people whose phones
|
|
32
|
+
* ran hours wrong, and what a replay inside the window buys is one more
|
|
33
|
+
* submission grant for an address the replayer cannot sign for, idempotent
|
|
34
|
+
* and rate-limited. The app now signs with the server's clock anyway
|
|
35
|
+
* (the youth app's lib/clock.ts); the day is for the phone that never learned it.
|
|
36
|
+
*/
|
|
37
|
+
export declare const PROOF_MAX_AGE_MS: number;
|
|
38
|
+
/** The words a submitter signs: one ask, one address, one moment. */
|
|
39
|
+
export declare const submitProofMessage: (collectionId: string, address: string, now?: number) => string;
|
|
40
|
+
/**
|
|
41
|
+
* Whether the signed words are the ones this grant is about, and fresh.
|
|
42
|
+
*
|
|
43
|
+
* Checked before any cryptography, because a message that names another
|
|
44
|
+
* ask or another address is refused whoever signed it, and a stale one is
|
|
45
|
+
* worth nothing even from the right key.
|
|
46
|
+
*/
|
|
47
|
+
export declare function readSubmitProof(message: string, expected: {
|
|
48
|
+
collectionId: string;
|
|
49
|
+
address: string;
|
|
50
|
+
}, now?: number, maxAgeMs?: number): "ok" | "mismatch" | "stale";
|
|
51
|
+
/** `0x`-prefixed lowercase hex, the shape the index stores an authenticator's key in. */
|
|
52
|
+
export declare const pubkeyHex: (pubkey: Uint8Array) => string;
|
|
53
|
+
/** The address a plain secp key would sign for. */
|
|
54
|
+
export declare function addressOfPubkey(pubkey: Uint8Array, prefix?: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Does this proof let its key act for `address`?
|
|
57
|
+
*
|
|
58
|
+
* `authenticatorsOf` answers with the hex public keys of the account's live
|
|
59
|
+
* `SignatureVerification` authenticators — the index read, injected so the
|
|
60
|
+
* decision itself needs no network. It is only consulted when the key is
|
|
61
|
+
* not simply the account's own; a lookup that throws is a refusal, because
|
|
62
|
+
* "could not check" must never read as "checked".
|
|
63
|
+
*/
|
|
64
|
+
export declare function proofSignsFor(proof: SubmitProof, address: string, authenticatorsOf: (address: string) => Promise<string[]>): Promise<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* Why this proof does not let its key act for `address` — or null if it does.
|
|
67
|
+
*
|
|
68
|
+
* The same walk as `proofSignsFor`, which is now a wrapper on it, but it
|
|
69
|
+
* says which step failed. The gate answered a single `needs-account` for
|
|
70
|
+
* four unrelated reasons and logged none of them, so a person with a
|
|
71
|
+
* perfectly good session who was refused — and one who was refused
|
|
72
|
+
* thirty-eight seconds before the same session succeeded, on 2026-09-17 at
|
|
73
|
+
* 09:37 — could be told only "sign in", which they had done.
|
|
74
|
+
*
|
|
75
|
+
* `not-authenticator` on an **empty** list is not the same fact as on a
|
|
76
|
+
* list that has keys in it: an account that has ever signed in holds at
|
|
77
|
+
* least one authenticator, so an empty answer is far more likely to be the
|
|
78
|
+
* index than a revoked key. The caller decides what to do about that; this
|
|
79
|
+
* only reports what it saw, in `live`.
|
|
80
|
+
*/
|
|
81
|
+
export type ProofFault = "bad-shape" | "bad-signature" | "not-authenticator" | "unverifiable";
|
|
82
|
+
export declare function whyNotSigning(proof: SubmitProof, address: string, authenticatorsOf: (address: string) => Promise<string[]>): Promise<ProofFault | null>;
|
|
83
|
+
/** The full reading, for a caller that wants to see the authenticator list too. */
|
|
84
|
+
export declare function judgeSigning(proof: SubmitProof, address: string, authenticatorsOf: (address: string) => Promise<string[]>): Promise<{
|
|
85
|
+
fault: ProofFault | null;
|
|
86
|
+
live: string[] | null;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Sign words with a mnemonic's key — the browser half of `proofSignsFor`.
|
|
90
|
+
*
|
|
91
|
+
* The one place a secp key signs a sentence for a server here: the guest
|
|
92
|
+
* lane's proof, the account's proof, and a credential request all go
|
|
93
|
+
* through it, so the bytes a verifier expects are produced by exactly one
|
|
94
|
+
* routine. Standard Cosmos derivation path; the signature is r‖s, base64;
|
|
95
|
+
* the public key compressed, base64. No `Buffer` — this runs in a phone.
|
|
96
|
+
*/
|
|
97
|
+
export declare function signWords(mnemonic: string, message: string): Promise<{
|
|
98
|
+
pubkey: string;
|
|
99
|
+
signature: string;
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* A signed sentence from an auth-hub account: who, with which key, over
|
|
103
|
+
* what. The authenticator id rides along for a reader that wants to name
|
|
104
|
+
* it; verification goes by the public key, which is what the index records.
|
|
105
|
+
*/
|
|
106
|
+
export interface AccountProof {
|
|
107
|
+
kind: "account";
|
|
108
|
+
address: string;
|
|
109
|
+
pubkey: string;
|
|
110
|
+
signature: string;
|
|
111
|
+
message: string;
|
|
112
|
+
authenticatorId?: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Prove an account's session holds a key that may act for it, over these
|
|
116
|
+
* exact words. Null when the session cannot sign — a name and nothing else.
|
|
117
|
+
*/
|
|
118
|
+
export declare function proveAsAccount(session: {
|
|
119
|
+
address?: string;
|
|
120
|
+
sessionKey?: {
|
|
121
|
+
mnemonic?: string;
|
|
122
|
+
authenticatorId?: string;
|
|
123
|
+
};
|
|
124
|
+
} | null, message: string): Promise<AccountProof | null>;
|
|
125
|
+
export type ProofJudgement = "ok" | "refused" | "unverifiable";
|
|
126
|
+
/**
|
|
127
|
+
* `proofSignsFor` with its third answer told apart.
|
|
128
|
+
*
|
|
129
|
+
* A server has two refusals to give, and they must not be the same word:
|
|
130
|
+
* a key that is not the account's is "no", and an index that could not be
|
|
131
|
+
* asked is "not now". A person with a perfectly good session should be told
|
|
132
|
+
* to try again, never to sign in.
|
|
133
|
+
*/
|
|
134
|
+
export declare function judgeAccountProof(proof: SubmitProof, address: string, authenticatorsOf: (address: string) => Promise<string[]>): Promise<ProofJudgement>;
|
|
135
|
+
//# sourceMappingURL=accountProof.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountProof.d.ts","sourceRoot":"","sources":["../../../src/chain/accountProof.ts"],"names":[],"mappings":"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"}
|