@domino-sdk/relay 1.66.1 → 1.67.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/CHANGELOG.md +25 -0
- package/dist/{accounts-_lNsiR2k.d.ts → accounts-C2O8mpB8.d.ts} +2 -2
- package/dist/{attempt-captures-BqPggxTU.d.ts → attempt-captures-ClHAoo_n.d.ts} +1 -1
- package/dist/authoring.d.ts +24 -23
- package/dist/authoring.js +17 -15
- package/dist/{automatic-outcomes-BzAvfcpd.d.ts → automatic-outcomes-BEnPn4Uh.d.ts} +2 -2
- package/dist/avatar.d.ts +1 -1
- package/dist/browser.d.ts +9 -9
- package/dist/browser.js +9 -8
- package/dist/{catalog-ByZMRS7I.d.ts → catalog-CbiftcxQ.d.ts} +2 -2
- package/dist/{chunk-5LD5DKOM.js → chunk-5DZNMLDM.js} +1 -1
- package/dist/{chunk-2Y4EZKET.js → chunk-5SBA6X5X.js} +1 -1
- package/dist/{chunk-7HTRIEM7.js → chunk-BMJHFWVT.js} +5 -29
- package/dist/{chunk-7MQCQYEE.js → chunk-DSJ46QLB.js} +1 -1
- package/dist/{chunk-FUFMYKSQ.js → chunk-JK3XV2CR.js} +92 -3
- package/dist/{chunk-M66Y5OMJ.js → chunk-KUNPCDN6.js} +6 -6
- package/dist/{chunk-5DYS2OIP.js → chunk-MVQQDPQX.js} +1 -1
- package/dist/{chunk-CGUL4MRE.js → chunk-NRMQVK2W.js} +1 -1
- package/dist/{chunk-XCEGNKGH.js → chunk-P33ZAJMS.js} +56 -24
- package/dist/{chunk-CJDB6W6I.js → chunk-Q5QVAF7R.js} +41 -14
- package/dist/{chunk-4TC4HK5Y.js → chunk-Q6KTTVOI.js} +1 -1
- package/dist/{chunk-QYHEHMCG.js → chunk-QYC3CZVD.js} +1 -1
- package/dist/{chunk-OWDIR7ZU.js → chunk-RDUSFUXX.js} +1 -1
- package/dist/{chunk-FU3W4IQN.js → chunk-RWR2LOPA.js} +2 -2
- package/dist/chunk-UWUS4OOV.js +59 -0
- package/dist/{chunk-ANVAUOJP.js → chunk-X3FMVRMM.js} +1 -1
- package/dist/{chunk-R2LHIWAM.js → chunk-Z2Z5DBNW.js} +6 -6
- package/dist/{client-Cze4lfwA.d.ts → client-CZPewB9h.d.ts} +10 -7
- package/dist/{dashboards-pVfclkyh.d.ts → dashboards-jGPM3AxF.d.ts} +3 -3
- package/dist/{deployments-Cr1tfqrr.d.ts → deployments-BVFd7ddA.d.ts} +3 -3
- package/dist/{identity-integration-Ci2vGKtX.d.ts → identity-integration-W1Vo3Ql9.d.ts} +10 -2
- package/dist/index.d.ts +10 -10
- package/dist/index.js +7 -7
- package/dist/internal.d.ts +32 -14
- package/dist/internal.js +29 -20
- package/dist/{limits-pE04y9O2.d.ts → limits-C4RzrOV4.d.ts} +1 -1
- package/dist/{offers-Hw2P6tcK.d.ts → offers-BpYenB9i.d.ts} +2 -2
- package/dist/portal-proxy.d.ts +5 -5
- package/dist/portal-proxy.js +11 -13
- package/dist/react/index.d.ts +14 -13
- package/dist/react/index.js +9 -8
- package/dist/{reward-deliveries-BCV8hznc.d.ts → reward-deliveries-BOWpMytr.d.ts} +1 -1
- package/dist/runtime/authoring.js +1 -1
- package/dist/runtime/chunks/C2MGLQXC.js +1 -0
- package/dist/runtime/manifest.json +3 -3
- package/dist/runtime/schema.js +1 -1
- package/dist/schema.d.ts +20 -17
- package/dist/schema.js +11 -7
- package/dist/server/index.d.ts +12 -12
- package/dist/server/index.js +277 -22
- package/dist/{sign-in-providers-BAkGjSXo.d.ts → sign-in-providers-BRYVOSlG.d.ts} +2 -2
- package/dist/{submission-input-ChL1aYNH.d.ts → submission-input-C152xIdn.d.ts} +2 -2
- package/dist/{telegram-browser-BFs4u7lC.d.ts → telegram-browser-657QqiQl.d.ts} +4 -4
- package/dist/telegram.d.ts +8 -8
- package/dist/testing.d.ts +12 -11
- package/dist/testing.js +14 -7
- package/dist/{tracker-data-Bl-qPIvZ.d.ts → tracker-data-BqY-9Vu-.d.ts} +2 -2
- package/dist/{transport-WE49Ta3A.d.ts → transport-CthYgZXK.d.ts} +618 -20
- package/dist/{wallet-B7e06v4m.d.ts → wallet-Btng186v.d.ts} +57 -26
- package/package.json +3 -1
- package/dist/chunk-UZ765UGH.js +0 -18
- package/dist/runtime/chunks/C5V267I7.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @domino-sdk/relay
|
|
2
2
|
|
|
3
|
+
## 1.67.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8c070ca: **Automation keys for only the projects they create.** `management.automationKeys.create` accepts `projects: []` when `createProjects` is true: the key starts with no project and reaches only the projects it creates, so an agent that starts its own throwaway projects no longer needs a key for every project. An empty list without `createProjects` is still refused, and omitting `projects` still means every project. Console's **Chosen projects** allows no project picked once **Create projects** is checked.
|
|
8
|
+
- 844caae: **Yearly Checkout takes promotion codes (experimental).** `management.billing.checkout()` with `interval: "year"` opens a Checkout page with a promotion code field; monthly Checkout has none. The subscription read (`management.billing.read()`, and `subscription` in the project's plan read) gains `discount`: while a code discounts the current period, what the period costs (`amount`) instead of its list price (`listAmount`), in US cents with tax included, and when that period ends (`until`); null otherwise. A first-year code ends with the first renewal, which bills the list price. `domino billing show` prints the discount and its end.
|
|
9
|
+
- e73e721: **`management.quests.listWithoutCode()` lists quests without their code.** It answers what `management.quests.list()` does, each quest's current release with archived quests included and the most recently published first, without each release's evaluator `code` (`GET /management/v1/quests/list-without-code`). Code is most of a release's size, up to a megabyte per quest, so a project's full list can reach tens of megabytes. Use the new read whenever you show or match quests rather than run them. `quests.list()` is unchanged.
|
|
10
|
+
- 8b195a4: **Self-hosted wallet apps: loopback origins on Test app login keys, and `verifyWalletSignIn`.**
|
|
11
|
+
|
|
12
|
+
- **Loopback origins.** An app login key in **Test** now accepts `http://localhost:<port>`, `http://127.0.0.1:<port>` and `http://[::1]:<port>` as well as HTTPS, so `next dev` signs members in against real Domino. `identityIntegrationInputSchema` accepts them, with the message "Use an HTTPS origin, or a loopback origin such as http://localhost:3000 for a Test key." for any other `http:` origin. Relay refuses a loopback origin on a **Live** key with 400 `invalid-request`, "Live app login keys need an HTTPS origin. Loopback origins such as http://localhost:3000 work only on Test keys."
|
|
13
|
+
- **`verifyWalletSignIn`** (`@experimental`) from `@domino-sdk/relay/server` verifies a Sign-In with Ethereum (EIP-4361) or Sign-In with Solana message and its signature in your server, without calling any network: domain and URI against your origin, the nonce you issued, issue time, expiry and `Not Before`, and the chains you accept. It answers the wallet as `authenticate()` vouches for it, with its CAIP-10 `accountId`, and throws `WalletSignInError` (`isWalletSignInError`) with a `code` when it refuses. Smart-contract wallets (ERC-1271) are refused with `invalid-signature`.
|
|
14
|
+
|
|
15
|
+
The SDK now depends on `@noble/curves` and `@noble/hashes` for EVM signature checks. See [Wallet sign-in in your own Next.js app](https://console.domino.run/docs/build/self-hosted-wallet-sign-in).
|
|
16
|
+
|
|
17
|
+
- 19bbb9c: Smart-contract wallets can link and sign in: Base Account, Privy and Dynamic smart wallets, and any EVM wallet that signs with ERC-1271, or ERC-6492 before it is deployed. Relay checks such a signature on the chain in the message's Chain ID line (the signer's `chainId()`), one of the EVM chains `GET /management/v1/wallet-balance-chains` lists; an EOA's signature is still checked without a network call. `walletSignatureSchema` accepts signatures up to 16,384 characters, so update the SDK before linking smart wallets: earlier releases refuse their signatures before sending them. A linked smart wallet's `LinkedWallet` has `provedOn`, the CAIP-2 network whose contract checked its latest proof, and it is an account on that chain only: quest balance, NFT, event and contract-call reads, `wallet.balances()` samples and tracker attribution use it there, the testing kit does the same, payout lists name it as `<provedOn>:<address>`, and `caip10(wallet)` names that chain and throws for another. A chain that does not answer is refused with code `unavailable` and leaves the challenge usable; smart-wallet checks are limited to 10 per member (sign-in: per client IP) and 600 per project environment in 10 minutes.
|
|
18
|
+
- 1e2edc6: **Solana devnet in quests and trackers, and Anchor 1.0 IDLs.** Quest checks and trackers can read Solana devnet the way they read an EVM testnet: pass `chain: "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"` (exported as `solanaDevnet`) to `ctx.wallet.balance()`, `ctx.wallet.transactions()` or `wallet.balances()`, or name a devnet collection `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1/nft:<collection mint>` in `settings.nft()`. Reads run in test and live, against the same linked Solana wallets as mainnet. `settings.chain()` accepts the devnet ID, `management.walletBalanceChains()` lists Solana Devnet (`testnet: true`) after Solana, and `domino trackers create --chain` takes it. `ctx.wallet.transactions()` without `chain` reads mainnet and sends the request it always did. New exports: `solanaDevnet`, `isSolanaNetwork()` and the `SolanaNetwork` type.
|
|
19
|
+
|
|
20
|
+
A `settings.solanaProgram()` program is now accepted when it is an executable program on mainnet or, when mainnet has none, on devnet, so a devnet-only program can be published. Saving the setting also finds the IDL Anchor 1.0 and later publish to the Program Metadata Program, besides the legacy IDL account.
|
|
21
|
+
|
|
22
|
+
**Behaviour change: a pasted IDL now takes precedence over the program's on-chain IDL.** Before, a save replaced a pasted IDL once the program published one on chain. Now a pasted IDL stays until an operator removes it (Console's **Remove pasted IDL**, or `solanaIdls: { [key]: null }` in `quests.updateSettings()`), and Console offers **Replace IDL** for a program that publishes one.
|
|
23
|
+
|
|
24
|
+
**Breaking types.** This minor widens released types that named Solana mainnet alone, as a deliberate break (docs/releases.md#deliberate-breaks). Code that never names devnet keeps compiling and running. Code that handles every value of one of these types now meets devnet and may need a case for it: `BalanceChain`, `NftCollection`, `NftCollectionParts` (from `parseNftCollection()`), `WalletBalanceQuery`, `WalletNftsQuery`, `WalletBalanceChains`, the testing kit's `CapabilityRequest` and the CLI's tracker results (a `wallet.balances()` source's `chain`). A hand-written `WalletReader` or `EvaluationContext` that takes mainnet alone no longer fits; build fakes with `@domino-sdk/relay/testing`.
|
|
25
|
+
|
|
26
|
+
**Upgrade before adding a devnet tracker.** Earlier SDK and CLI releases cannot read a project's trackers once it has a devnet `wallet.balances()` tracker, and cannot replay an attempt that read devnet. Relay keeps devnet out of `GET /wallet-balance-chains` for clients before this release, so their `management.walletBalanceChains()` keeps working.
|
|
27
|
+
|
|
3
28
|
## 1.66.1
|
|
4
29
|
|
|
5
30
|
No changes in this release.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
|
-
import { R as ResourceHandle, G as GroupHandle } from './tracker-data-
|
|
3
|
-
import { S as SolanaIdlSource } from './wallet-
|
|
2
|
+
import { R as ResourceHandle, G as GroupHandle } from './tracker-data-BqY-9Vu-.js';
|
|
3
|
+
import { S as SolanaIdlSource } from './wallet-Btng186v.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* The modules this SDK knows a quest can declare to enable provider readers. Project connections
|
package/dist/authoring.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { _ as EngagementBudget, $ as leaderboardDefinitionSchema, Z as AuthoringIdentity, a0 as pointLedgerDeclarationSchema, a1 as referralAuthoringSchema, a2 as discordMessagesSourceSchema, a3 as DiscordMessageData, a4 as DiscordMessageTextData, a5 as discordReactionsSourceSchema, a6 as DiscordReactionData, a7 as KnownIntegrationModule, P as PointBalance, C as CampaignDefinition, a8 as TextReviewInput, a9 as TextResult, aa as PhotoResult, ab as DiscordReader, ac as Decision, ad as rewardSchema, ae as triggerSchema, af as IntegrationModule, D as QuestPresentation, d as AvailabilityWindow, F as QuestProfile, G as QuizEvidence, W as IntegrationModuleProvider, ag as TieredRewardDefinition } from './accounts-
|
|
2
|
-
export { ah as KnownIntegrationModuleProvider, ai as defineCampaign, aj as defineGroup } from './accounts-
|
|
3
|
-
import { x as xContentBodySchema, I as IdentityKind, j as customSourceSchema, W as WithRecordData, k as WithContent, l as WithAccountRoles, R as ResourceHandle, Q as QuestHandle, L as LedgerReference, G as GroupHandle, m as TrackerSource, n as trackerDefinitionSchema, o as Tracker, p as TrackerData, q as SourceRoles, r as LedgerHandle, i as TrackerDataSchema, u as xSearchSourceSchema, X as XTweet, v as XContentMetric, y as TrackerTriggerPolicy, z as Where, M as MemberIdentity, A as ReferralHandle, B as TrackerTriggerContext, C as TrackerReader, D as TrackerTriggerMode, E as RoleOf, F as WhereSetting, H as ContentBody, J as BadgeHandle, N as ContentMetricName } from './tracker-data-
|
|
4
|
-
export { P as LedgerSetting, U as TrackerPage, V as TrackerReadQuery, Y as trackerDataSchema, Z as trackerTriggerContextSchema } from './tracker-data-
|
|
1
|
+
import { _ as EngagementBudget, $ as leaderboardDefinitionSchema, Z as AuthoringIdentity, a0 as pointLedgerDeclarationSchema, a1 as referralAuthoringSchema, a2 as discordMessagesSourceSchema, a3 as DiscordMessageData, a4 as DiscordMessageTextData, a5 as discordReactionsSourceSchema, a6 as DiscordReactionData, a7 as KnownIntegrationModule, P as PointBalance, C as CampaignDefinition, a8 as TextReviewInput, a9 as TextResult, aa as PhotoResult, ab as DiscordReader, ac as Decision, ad as rewardSchema, ae as triggerSchema, af as IntegrationModule, D as QuestPresentation, d as AvailabilityWindow, F as QuestProfile, G as QuizEvidence, W as IntegrationModuleProvider, ag as TieredRewardDefinition } from './accounts-C2O8mpB8.js';
|
|
2
|
+
export { ah as KnownIntegrationModuleProvider, ai as defineCampaign, aj as defineGroup } from './accounts-C2O8mpB8.js';
|
|
3
|
+
import { x as xContentBodySchema, I as IdentityKind, j as customSourceSchema, W as WithRecordData, k as WithContent, l as WithAccountRoles, R as ResourceHandle, Q as QuestHandle, L as LedgerReference, G as GroupHandle, m as TrackerSource, n as trackerDefinitionSchema, o as Tracker, p as TrackerData, q as SourceRoles, r as LedgerHandle, i as TrackerDataSchema, u as xSearchSourceSchema, X as XTweet, v as XContentMetric, y as TrackerTriggerPolicy, z as Where, M as MemberIdentity, A as ReferralHandle, B as TrackerTriggerContext, C as TrackerReader, D as TrackerTriggerMode, E as RoleOf, F as WhereSetting, H as ContentBody, J as BadgeHandle, N as ContentMetricName } from './tracker-data-BqY-9Vu-.js';
|
|
4
|
+
export { P as LedgerSetting, U as TrackerPage, V as TrackerReadQuery, Y as trackerDataSchema, Z as trackerTriggerContextSchema } from './tracker-data-BqY-9Vu-.js';
|
|
5
5
|
import { R as ResourceSource, M as MemberCompletion, B as Budget, A as AuthorBudget, a as Announcement } from './capability-error-CuI_F7yM.js';
|
|
6
6
|
export { C as CapabilityError, b as CapabilityErrorCode, T as TikTokVideoBody, c as TikTokVideoMetric, Y as YouTubeShortBody, d as YouTubeShortMetric, e as capabilityErrorCodes } from './capability-error-CuI_F7yM.js';
|
|
7
|
-
import { N as NftCollection,
|
|
8
|
-
export {
|
|
7
|
+
import { N as NftCollection, q as ContractCall, r as ContractEvent, s as SolanaProgram, t as WalletBalanceSourceQuery, u as WalletTransaction, v as WalletInstruction, e as ProfileReferral, w as WalletReader } from './wallet-Btng186v.js';
|
|
8
|
+
export { x as ContractCallParts, y as ContractCallReturnType, z as ContractEventInput, B as ContractEventParts, D as ContractFunction, E as CosmosDenom, a as CosmosNetwork, F as EvmChainId, G as NftCollectionParts, H as NftStandard, I as WalletBalance, J as WalletBalanceChange, o as WalletBalanceQuery, K as WalletBalanceSample, M as WalletCall, Q as WalletCallArgument, R as WalletCallQuery, T as WalletDelegations, U as WalletDelegationsQuery, V as WalletEventCondition, X as WalletEventValue, Y as WalletEvents, Z as WalletEventsQuery, _ as WalletNfts, $ as WalletNftsQuery, a0 as WalletTransactions, a1 as WalletTransactionsQuery, a2 as cosmosDenomSchema, a3 as cosmosNetworkSchema, a4 as isContractCall, a5 as isContractEvent, a6 as isEvmChainId, a7 as isNftCollection, a8 as isSolanaProgram, a9 as maxWalletEventLogs, aa as maxWalletEventLookback, ab as maxWalletTransactionLookback, ac as maxWalletTransactions, ad as parseContractCall, ae as parseContractEvent, af as parseContractFunction, ag as parseNftCollection } from './wallet-Btng186v.js';
|
|
9
9
|
import * as z from 'zod';
|
|
10
10
|
export { z } from 'zod';
|
|
11
|
-
import { g as badgeDeclarationSchema, h as OfferAuthoring, B as Badge } from './offers-
|
|
11
|
+
import { g as badgeDeclarationSchema, h as OfferAuthoring, B as Badge } from './offers-BpYenB9i.js';
|
|
12
12
|
import { a as StreakPolicy, Q as QuizContent } from './streaks-0YuipsUQ.js';
|
|
13
|
-
import { S as Setting, A as AmountSetting, B as BalanceChain, a as BoundSettings } from './dashboards-
|
|
14
|
-
export { D as DashboardInput, b as DashboardPanelInput, e as defineDashboard } from './dashboards-
|
|
15
|
-
import { e as TelegramReader, P as Prerequisite, b as TextEvidence, U as UrlEvidence, c as TextOptions, d as UrlOptions } from './submission-input-
|
|
16
|
-
export { f as TelegramChatMember, g as TelegramChatMemberStatus, h as TelegramConnection, i as TelegramMessageData, j as TelegramReactionData, k as balanceAtLeast, l as completed, m as inGroup } from './submission-input-
|
|
17
|
-
import { I as ImageReader, X as XReader } from './limits-
|
|
18
|
-
export { L as Limits, l as limits } from './limits-
|
|
13
|
+
import { S as Setting, A as AmountSetting, B as BalanceChain, a as BoundSettings } from './dashboards-jGPM3AxF.js';
|
|
14
|
+
export { D as DashboardInput, b as DashboardPanelInput, e as defineDashboard } from './dashboards-jGPM3AxF.js';
|
|
15
|
+
import { e as TelegramReader, P as Prerequisite, b as TextEvidence, U as UrlEvidence, c as TextOptions, d as UrlOptions } from './submission-input-C152xIdn.js';
|
|
16
|
+
export { f as TelegramChatMember, g as TelegramChatMemberStatus, h as TelegramConnection, i as TelegramMessageData, j as TelegramReactionData, k as balanceAtLeast, l as completed, m as inGroup } from './submission-input-C152xIdn.js';
|
|
17
|
+
import { I as ImageReader, X as XReader } from './limits-C4RzrOV4.js';
|
|
18
|
+
export { L as Limits, l as limits } from './limits-C4RzrOV4.js';
|
|
19
19
|
export { f as formatUnits, p as parseUnits } from './units-CwgsPB_r.js';
|
|
20
20
|
|
|
21
21
|
declare function defineBadge(input: z.input<typeof badgeDeclarationSchema>): {
|
|
@@ -823,26 +823,27 @@ declare const settings: {
|
|
|
823
823
|
decimals?: number;
|
|
824
824
|
}): AmountSetting<z.ZodDefault<z.ZodString>>;
|
|
825
825
|
/**
|
|
826
|
-
* A chain `ctx.wallet.balance()` reads: `"solana"` (or Solana mainnet's CAIP-2 ID),
|
|
827
|
-
* chain's CAIP-2 ID such as `"eip155:8453"`. Typed as the query's chain, so it passes to
|
|
826
|
+
* A chain `ctx.wallet.balance()` reads: `"solana"` (or Solana mainnet's CAIP-2 ID), Solana
|
|
827
|
+
* devnet's CAIP-2 ID, or an EVM chain's CAIP-2 ID such as `"eip155:8453"`. Typed as the query's chain, so it passes to
|
|
828
828
|
* `ctx.wallet.balance({ chain })` as it is.
|
|
829
829
|
*/
|
|
830
830
|
chain(options: Label & {
|
|
831
831
|
default: BalanceChain;
|
|
832
|
-
}): Setting<"text", z.ZodDefault<z.ZodPipe<z.ZodString, z.ZodTransform<"solana" | "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" | `eip155:${number}`, string>>>>;
|
|
832
|
+
}): Setting<"text", z.ZodDefault<z.ZodPipe<z.ZodString, z.ZodTransform<"solana" | "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" | "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1" | `eip155:${number}`, string>>>>;
|
|
833
833
|
/**
|
|
834
834
|
* An NFT collection `ctx.wallet.nfts()` reads, as a CAIP-19 asset type: an EVM chain, the
|
|
835
835
|
* standard and the contract, such as `"eip155:1/erc721:0x…"`, or `"eip155:8453/erc1155:0x…/1"` for
|
|
836
|
-
* one ERC-1155 token ID; or a Metaplex collection NFT's mint
|
|
837
|
-
* `"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:<mint>"
|
|
836
|
+
* one ERC-1155 token ID; or a Solana cluster and a Metaplex collection NFT's mint there,
|
|
837
|
+
* `"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:<mint>"` on mainnet or
|
|
838
|
+
* `"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1/nft:<mint>"` on devnet. Relay checks it when the collection is
|
|
838
839
|
* published or edited: an EVM chain must be one `ctx.wallet.balance()` reads and the contract
|
|
839
840
|
* must report the standard through ERC-165 `supportsInterface`; a Solana mint must be a Metaplex
|
|
840
|
-
* collection NFT. Typed as the query's collection, so it passes to
|
|
841
|
+
* collection NFT on its cluster. Typed as the query's collection, so it passes to
|
|
841
842
|
* `ctx.wallet.nfts({ collection })` as it is.
|
|
842
843
|
*/
|
|
843
844
|
nft(options: Label & {
|
|
844
845
|
default: NftCollection;
|
|
845
|
-
}): Setting<"text", z.ZodDefault<z.ZodPipe<z.ZodString, z.ZodTransform<`eip155:${number}/erc721:0x${string}` | `eip155:${number}/erc1155:0x${string}/${string}` | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:${string}`, string>>>>;
|
|
846
|
+
}): Setting<"text", z.ZodDefault<z.ZodPipe<z.ZodString, z.ZodTransform<`eip155:${number}/erc721:0x${string}` | `eip155:${number}/erc1155:0x${string}/${string}` | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:${string}` | `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1/nft:${string}`, string>>>>;
|
|
846
847
|
/**
|
|
847
848
|
* A contract function `ctx.wallet.call()` reads: the contract's CAIP-10 account ID on an EVM
|
|
848
849
|
* chain, a space, and the function's human-readable signature, such as
|
|
@@ -867,9 +868,9 @@ declare const settings: {
|
|
|
867
868
|
default: ContractEvent;
|
|
868
869
|
}): Setting<"text", z.ZodDefault<z.ZodPipe<z.ZodString, z.ZodTransform<`eip155:${number}:0x${string} ${string}`, string>>>>;
|
|
869
870
|
/**
|
|
870
|
-
* A Solana
|
|
871
|
-
*
|
|
872
|
-
*
|
|
871
|
+
* A Solana program `ctx.wallet.transactions()` reads: its base58 address, such as Jupiter's
|
|
872
|
+
* `"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"`. Relay checks it when it is published or
|
|
873
|
+
* edited: the account must be an executable program on Solana mainnet or devnet.
|
|
873
874
|
*/
|
|
874
875
|
solanaProgram(options: Label & {
|
|
875
876
|
default: SolanaProgram;
|
package/dist/authoring.js
CHANGED
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
sourceDataSchema,
|
|
7
7
|
sourceRoles,
|
|
8
8
|
validateQuestShape
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MVQQDPQX.js";
|
|
10
10
|
import {
|
|
11
11
|
defineDashboard,
|
|
12
12
|
tiktokVideoBodySchema,
|
|
13
13
|
tiktokVideoMetrics,
|
|
14
14
|
youtubeShortBodySchema,
|
|
15
15
|
youtubeShortMetrics
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-QYC3CZVD.js";
|
|
17
17
|
import {
|
|
18
18
|
CapabilityError,
|
|
19
19
|
capabilityErrorCodes
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
engagementScoreSchema,
|
|
25
25
|
offerAuthoringSchema,
|
|
26
26
|
referralAuthoringSchema
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-5DZNMLDM.js";
|
|
28
28
|
import {
|
|
29
29
|
announcementSchema,
|
|
30
30
|
authorBudgetSchema,
|
|
@@ -64,6 +64,7 @@ import {
|
|
|
64
64
|
isContractEvent,
|
|
65
65
|
isEvmChainId,
|
|
66
66
|
isNftCollection,
|
|
67
|
+
isSolanaNetwork,
|
|
67
68
|
isSolanaProgram,
|
|
68
69
|
leaderboardAuthoringSchema,
|
|
69
70
|
ledgerKey,
|
|
@@ -120,7 +121,7 @@ import {
|
|
|
120
121
|
whereSettings,
|
|
121
122
|
xSearchSourceSchema,
|
|
122
123
|
youtubeShortsNamespace
|
|
123
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-P33ZAJMS.js";
|
|
124
125
|
import {
|
|
125
126
|
parseDefinition
|
|
126
127
|
} from "./chunk-FGXLXENM.js";
|
|
@@ -477,13 +478,13 @@ function walletBalanceSource(query) {
|
|
|
477
478
|
if (given !== null && typeof given !== "string") {
|
|
478
479
|
throw new Error("wallet.balances() takes the token as a string");
|
|
479
480
|
}
|
|
480
|
-
if (chain === "solana" || chain ===
|
|
481
|
+
if (chain === "solana" || typeof chain === "string" && isSolanaNetwork(chain)) {
|
|
481
482
|
if (given !== null && !solanaAddressSchema.safeParse(given).success) {
|
|
482
483
|
throw new Error(
|
|
483
484
|
"wallet.balances() on Solana takes an SPL or Token-2022 mint address (base58)"
|
|
484
485
|
);
|
|
485
486
|
}
|
|
486
|
-
return { chain: solanaMainnet, token: given };
|
|
487
|
+
return { chain: chain === "solana" ? solanaMainnet : chain, token: given };
|
|
487
488
|
}
|
|
488
489
|
if (typeof chain === "string" && isEvmChainId(chain)) {
|
|
489
490
|
if (given !== null && !/^0x[0-9a-fA-F]{40}$/.test(given)) {
|
|
@@ -629,14 +630,14 @@ var settings = {
|
|
|
629
630
|
);
|
|
630
631
|
},
|
|
631
632
|
/**
|
|
632
|
-
* A chain `ctx.wallet.balance()` reads: `"solana"` (or Solana mainnet's CAIP-2 ID),
|
|
633
|
-
* chain's CAIP-2 ID such as `"eip155:8453"`. Typed as the query's chain, so it passes to
|
|
633
|
+
* A chain `ctx.wallet.balance()` reads: `"solana"` (or Solana mainnet's CAIP-2 ID), Solana
|
|
634
|
+
* devnet's CAIP-2 ID, or an EVM chain's CAIP-2 ID such as `"eip155:8453"`. Typed as the query's chain, so it passes to
|
|
634
635
|
* `ctx.wallet.balance({ chain })` as it is.
|
|
635
636
|
*/
|
|
636
637
|
chain(options) {
|
|
637
638
|
if (!isBalanceChain(options.default)) {
|
|
638
639
|
throw new Error(
|
|
639
|
-
`settings.chain() takes "solana" or an EVM chain ID such as "eip155:8453" as its default, not "${options.default}"`
|
|
640
|
+
`settings.chain() takes "solana", a Solana cluster ID or an EVM chain ID such as "eip155:8453" as its default, not "${options.default}"`
|
|
640
641
|
);
|
|
641
642
|
}
|
|
642
643
|
const field = {
|
|
@@ -655,11 +656,12 @@ var settings = {
|
|
|
655
656
|
/**
|
|
656
657
|
* An NFT collection `ctx.wallet.nfts()` reads, as a CAIP-19 asset type: an EVM chain, the
|
|
657
658
|
* standard and the contract, such as `"eip155:1/erc721:0x…"`, or `"eip155:8453/erc1155:0x…/1"` for
|
|
658
|
-
* one ERC-1155 token ID; or a Metaplex collection NFT's mint
|
|
659
|
-
* `"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:<mint>"
|
|
659
|
+
* one ERC-1155 token ID; or a Solana cluster and a Metaplex collection NFT's mint there,
|
|
660
|
+
* `"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:<mint>"` on mainnet or
|
|
661
|
+
* `"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1/nft:<mint>"` on devnet. Relay checks it when the collection is
|
|
660
662
|
* published or edited: an EVM chain must be one `ctx.wallet.balance()` reads and the contract
|
|
661
663
|
* must report the standard through ERC-165 `supportsInterface`; a Solana mint must be a Metaplex
|
|
662
|
-
* collection NFT. Typed as the query's collection, so it passes to
|
|
664
|
+
* collection NFT on its cluster. Typed as the query's collection, so it passes to
|
|
663
665
|
* `ctx.wallet.nfts({ collection })` as it is.
|
|
664
666
|
*/
|
|
665
667
|
nft(options) {
|
|
@@ -737,9 +739,9 @@ var settings = {
|
|
|
737
739
|
);
|
|
738
740
|
},
|
|
739
741
|
/**
|
|
740
|
-
* A Solana
|
|
741
|
-
*
|
|
742
|
-
*
|
|
742
|
+
* A Solana program `ctx.wallet.transactions()` reads: its base58 address, such as Jupiter's
|
|
743
|
+
* `"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"`. Relay checks it when it is published or
|
|
744
|
+
* edited: the account must be an executable program on Solana mainnet or devnet.
|
|
743
745
|
*/
|
|
744
746
|
solanaProgram(options) {
|
|
745
747
|
if (!isSolanaProgram(options.default)) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
|
-
import { b as AttemptStatus, X as RewardType } from './accounts-
|
|
3
|
-
import { S as SkipEnrollment } from './tracker-data-
|
|
2
|
+
import { b as AttemptStatus, X as RewardType } from './accounts-C2O8mpB8.js';
|
|
3
|
+
import { S as SkipEnrollment } from './tracker-data-BqY-9Vu-.js';
|
|
4
4
|
|
|
5
5
|
declare const collectionCodeSchema: z.ZodString;
|
|
6
6
|
declare const collectionPassSchema: z.ZodObject<{
|
package/dist/avatar.d.ts
CHANGED
package/dist/browser.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { o as SubmissionStore, f as RelayClientOptions, R as RelayClient } from './client-
|
|
2
|
-
export { C as CosmosChains, D as DiscoveredWallet, E as Eip1193Provider, a as EmailSignInOption, K as KeplrLike, O as OAuthSignInOption, P as ProviderSignInOption, S as SignInClient, b as SignInIcon, c as SignInMethods, d as SignInOption, e as SignInOptions, f as SignInUnavailable, g as SignInWallet, h as SolanaInjectedProvider, i as StandardWallet, j as StandardWalletAccount, T as TelegramSignInOption, W as WalletSignInOption, k as cosmosChainList, l as cosmosSigner, m as discoverCosmosWallets, n as discoverEvmWallets, o as discoverSignInWallets, p as discoverSolanaWallets, q as evmSigner, s as signInOptions, r as solanaSigner, t as telegramMiniAppInitData, w as walletStandardSolanaSigner } from './telegram-browser-
|
|
1
|
+
import { o as SubmissionStore, f as RelayClientOptions, R as RelayClient } from './client-CZPewB9h.js';
|
|
2
|
+
export { C as CosmosChains, D as DiscoveredWallet, E as Eip1193Provider, a as EmailSignInOption, K as KeplrLike, O as OAuthSignInOption, P as ProviderSignInOption, S as SignInClient, b as SignInIcon, c as SignInMethods, d as SignInOption, e as SignInOptions, f as SignInUnavailable, g as SignInWallet, h as SolanaInjectedProvider, i as StandardWallet, j as StandardWalletAccount, T as TelegramSignInOption, W as WalletSignInOption, k as cosmosChainList, l as cosmosSigner, m as discoverCosmosWallets, n as discoverEvmWallets, o as discoverSignInWallets, p as discoverSolanaWallets, q as evmSigner, s as signInOptions, r as solanaSigner, t as telegramMiniAppInitData, w as walletStandardSolanaSigner } from './telegram-browser-657QqiQl.js';
|
|
3
3
|
export { H as HostEnvironment, g as getHostEnvironment } from './host-environment-FN4zg3hw.js';
|
|
4
4
|
import { M as MemberSummary } from './participant-activity-DXRq4s6K.js';
|
|
5
|
-
import './accounts-
|
|
5
|
+
import './accounts-C2O8mpB8.js';
|
|
6
6
|
import 'zod';
|
|
7
|
-
import './tracker-data-
|
|
8
|
-
import './wallet-
|
|
9
|
-
import './submission-input-
|
|
7
|
+
import './tracker-data-BqY-9Vu-.js';
|
|
8
|
+
import './wallet-Btng186v.js';
|
|
9
|
+
import './submission-input-C152xIdn.js';
|
|
10
10
|
import './request-error-D_dUPLwo.js';
|
|
11
|
-
import './reward-deliveries-
|
|
12
|
-
import './catalog-
|
|
11
|
+
import './reward-deliveries-BOWpMytr.js';
|
|
12
|
+
import './catalog-CbiftcxQ.js';
|
|
13
13
|
import './action-9Xl0StBg.js';
|
|
14
|
-
import './sign-in-providers-
|
|
14
|
+
import './sign-in-providers-BRYVOSlG.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* The member's time at the real instant `at` (default now), in epoch milliseconds: what an app
|
package/dist/browser.js
CHANGED
|
@@ -12,22 +12,23 @@ import {
|
|
|
12
12
|
signInOptions,
|
|
13
13
|
solanaSigner,
|
|
14
14
|
walletStandardSolanaSigner
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-BMJHFWVT.js";
|
|
16
16
|
import {
|
|
17
17
|
telegramMiniAppInitData
|
|
18
18
|
} from "./chunk-FWLQ5XCS.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-Z2Z5DBNW.js";
|
|
20
20
|
import "./chunk-BQXRCJ3N.js";
|
|
21
21
|
import "./chunk-2HHZV7U3.js";
|
|
22
22
|
import {
|
|
23
23
|
getHostEnvironment
|
|
24
24
|
} from "./chunk-UYVJZR33.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-UWUS4OOV.js";
|
|
26
|
+
import "./chunk-Q6KTTVOI.js";
|
|
27
|
+
import "./chunk-5SBA6X5X.js";
|
|
28
|
+
import "./chunk-NRMQVK2W.js";
|
|
29
|
+
import "./chunk-DSJ46QLB.js";
|
|
30
|
+
import "./chunk-5DZNMLDM.js";
|
|
31
|
+
import "./chunk-P33ZAJMS.js";
|
|
31
32
|
import "./chunk-FGXLXENM.js";
|
|
32
33
|
export {
|
|
33
34
|
browserSubmissionStore,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as SolanaIdlSource } from './wallet-
|
|
2
|
-
import { b as AttemptStatus, V as AttemptCodeSource, W as IntegrationModuleProvider, X as RewardType, Y as questDescriptionSchema } from './accounts-
|
|
1
|
+
import { S as SolanaIdlSource } from './wallet-Btng186v.js';
|
|
2
|
+
import { b as AttemptStatus, V as AttemptCodeSource, W as IntegrationModuleProvider, X as RewardType, Y as questDescriptionSchema } from './accounts-C2O8mpB8.js';
|
|
3
3
|
import * as z from 'zod';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -1,42 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createRelayClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Z2Z5DBNW.js";
|
|
4
|
+
import {
|
|
5
|
+
base58
|
|
6
|
+
} from "./chunk-UWUS4OOV.js";
|
|
4
7
|
import {
|
|
5
8
|
cosmosChain
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P33ZAJMS.js";
|
|
7
10
|
import {
|
|
8
11
|
RelayErrorCode,
|
|
9
12
|
asRelayError,
|
|
10
13
|
clientError
|
|
11
14
|
} from "./chunk-FGXLXENM.js";
|
|
12
15
|
|
|
13
|
-
// src/base58.ts
|
|
14
|
-
var alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
15
|
-
function base58(bytes) {
|
|
16
|
-
let zeros = 0;
|
|
17
|
-
while (zeros < bytes.length && bytes[zeros] === 0) {
|
|
18
|
-
zeros++;
|
|
19
|
-
}
|
|
20
|
-
const digits = [];
|
|
21
|
-
for (let index = zeros; index < bytes.length; index++) {
|
|
22
|
-
let carry = bytes[index];
|
|
23
|
-
for (let digit = 0; digit < digits.length; digit++) {
|
|
24
|
-
carry += digits[digit] * 256;
|
|
25
|
-
digits[digit] = carry % 58;
|
|
26
|
-
carry = Math.floor(carry / 58);
|
|
27
|
-
}
|
|
28
|
-
while (carry > 0) {
|
|
29
|
-
digits.push(carry % 58);
|
|
30
|
-
carry = Math.floor(carry / 58);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
let result = "1".repeat(zeros);
|
|
34
|
-
for (let digit = digits.length - 1; digit >= 0; digit--) {
|
|
35
|
-
result += alphabet[digits[digit]];
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
16
|
// src/wallet-browser.ts
|
|
41
17
|
function injected() {
|
|
42
18
|
return typeof window === "undefined" ? void 0 : window;
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
base58Bytes
|
|
3
|
+
} from "./chunk-UWUS4OOV.js";
|
|
1
4
|
import {
|
|
2
5
|
createHttpExchange,
|
|
3
6
|
uncertainStatuses
|
|
4
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-Q6KTTVOI.js";
|
|
5
8
|
import {
|
|
6
9
|
MANAGEMENT_TIMEOUT,
|
|
7
10
|
lifetime,
|
|
8
11
|
retrying,
|
|
9
12
|
validTimeout
|
|
10
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5SBA6X5X.js";
|
|
11
14
|
import {
|
|
15
|
+
evmAddressSchema,
|
|
12
16
|
knownResponse
|
|
13
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-P33ZAJMS.js";
|
|
14
18
|
import {
|
|
15
19
|
RequestError,
|
|
16
20
|
isRequestError
|
|
@@ -30,6 +34,88 @@ function questConfiguration(release) {
|
|
|
30
34
|
};
|
|
31
35
|
}
|
|
32
36
|
|
|
37
|
+
// src/wallet-signatures.ts
|
|
38
|
+
import { secp256k1 } from "@noble/curves/secp256k1.js";
|
|
39
|
+
import { keccak_256 } from "@noble/hashes/sha3.js";
|
|
40
|
+
var text = /* @__PURE__ */ (() => new TextEncoder())();
|
|
41
|
+
var hex = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
42
|
+
function evmChecksumAddress(address) {
|
|
43
|
+
const lower = address.slice(2).toLowerCase();
|
|
44
|
+
const hash = hex(keccak_256(text.encode(lower)));
|
|
45
|
+
return "0x" + Array.from(
|
|
46
|
+
lower,
|
|
47
|
+
(character, index) => parseInt(hash[index], 16) >= 8 ? character.toUpperCase() : character
|
|
48
|
+
).join("");
|
|
49
|
+
}
|
|
50
|
+
function canonicalWalletAddress(chain, address) {
|
|
51
|
+
if (chain === "solana") {
|
|
52
|
+
return base58Bytes(address, 32) ? address : null;
|
|
53
|
+
}
|
|
54
|
+
if (!evmAddressSchema.safeParse(address).success) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const digits = address.slice(2);
|
|
58
|
+
const checksummed = evmChecksumAddress(address);
|
|
59
|
+
const oneCase = digits === digits.toLowerCase() || digits === digits.toUpperCase();
|
|
60
|
+
return oneCase || checksummed === address ? checksummed : null;
|
|
61
|
+
}
|
|
62
|
+
function evmSigner(message, signature) {
|
|
63
|
+
if (!/^0x[0-9a-fA-F]{130}$/.test(signature)) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const bytes = Uint8Array.from(
|
|
67
|
+
signature.slice(2).match(/../g),
|
|
68
|
+
(pair) => parseInt(pair, 16)
|
|
69
|
+
);
|
|
70
|
+
const v = bytes[64];
|
|
71
|
+
const recovery = v >= 27 ? v - 27 : v;
|
|
72
|
+
if (recovery !== 0 && recovery !== 1) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const body = text.encode(message);
|
|
76
|
+
const digest = keccak_256(
|
|
77
|
+
new Uint8Array([
|
|
78
|
+
...text.encode(`Ethereum Signed Message:
|
|
79
|
+
${body.length}`),
|
|
80
|
+
...body
|
|
81
|
+
])
|
|
82
|
+
);
|
|
83
|
+
try {
|
|
84
|
+
const key = secp256k1.Signature.fromBytes(bytes.slice(0, 64), "compact").addRecoveryBit(recovery).recoverPublicKey(digest).toBytes(false);
|
|
85
|
+
return "0x" + hex(keccak_256(key.slice(1)).slice(-20));
|
|
86
|
+
} catch {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async function walletSignatureValid(input) {
|
|
91
|
+
if (input.chain === "eip155") {
|
|
92
|
+
const signer = evmSigner(input.message, input.signature);
|
|
93
|
+
return signer !== null && signer === input.address.toLowerCase();
|
|
94
|
+
}
|
|
95
|
+
const key = base58Bytes(input.address, 32);
|
|
96
|
+
const signature = base58Bytes(input.signature, 64);
|
|
97
|
+
if (!key || !signature) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const imported = await crypto.subtle.importKey(
|
|
102
|
+
"raw",
|
|
103
|
+
key,
|
|
104
|
+
"Ed25519",
|
|
105
|
+
false,
|
|
106
|
+
["verify"]
|
|
107
|
+
);
|
|
108
|
+
return await crypto.subtle.verify(
|
|
109
|
+
"Ed25519",
|
|
110
|
+
imported,
|
|
111
|
+
signature,
|
|
112
|
+
text.encode(input.message)
|
|
113
|
+
);
|
|
114
|
+
} catch {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
33
119
|
// src/server/errors.ts
|
|
34
120
|
import * as z from "zod";
|
|
35
121
|
var ManagementErrorCode = {
|
|
@@ -314,6 +400,9 @@ function containsReferralIntegrationReward(value) {
|
|
|
314
400
|
|
|
315
401
|
export {
|
|
316
402
|
questConfiguration,
|
|
403
|
+
hex,
|
|
404
|
+
canonicalWalletAddress,
|
|
405
|
+
walletSignatureValid,
|
|
317
406
|
ManagementErrorCode,
|
|
318
407
|
managementErrorSchema,
|
|
319
408
|
isManagementError,
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
imageSightingsSchema,
|
|
7
7
|
imageUploadsSchema,
|
|
8
8
|
publishedImageSchema
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-X3FMVRMM.js";
|
|
10
10
|
import {
|
|
11
11
|
dashboardArtifactSchema,
|
|
12
12
|
dashboardIssue,
|
|
13
13
|
dashboardPreviewSchema,
|
|
14
14
|
normalizeDashboard
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-QYC3CZVD.js";
|
|
16
16
|
import {
|
|
17
17
|
authProvidersSchema,
|
|
18
18
|
collectionPassSchema,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
questOutcomePageSchema,
|
|
24
24
|
questOutcomeSchema,
|
|
25
25
|
rewardDeliveriesSchema
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-NRMQVK2W.js";
|
|
27
27
|
import {
|
|
28
28
|
catalogDeploymentSchema,
|
|
29
29
|
collectionViewSchema,
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
questExperienceSchema,
|
|
38
38
|
questTypeVersionSchema,
|
|
39
39
|
questViewSchema
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-DSJ46QLB.js";
|
|
41
41
|
import {
|
|
42
42
|
engagementArtifactSchema,
|
|
43
43
|
engagementBoundaryPageSchema,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
referralDefinitionSchema,
|
|
53
53
|
referralHistorySchema,
|
|
54
54
|
referralSummarySchema
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-5DZNMLDM.js";
|
|
56
56
|
import {
|
|
57
57
|
accountConnectionSchema,
|
|
58
58
|
attemptSchema,
|
|
@@ -117,7 +117,7 @@ import {
|
|
|
117
117
|
walletSignInNetworksSchema,
|
|
118
118
|
walletTransactionsSchema,
|
|
119
119
|
whereSettings
|
|
120
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-P33ZAJMS.js";
|
|
121
121
|
|
|
122
122
|
// src/deployments.ts
|
|
123
123
|
import * as z from "zod";
|