@medialane/sdk 0.159.0 → 0.160.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.
@@ -7,7 +7,6 @@ import 'zod';
7
7
  declare class PopService {
8
8
  private readonly factoryAddress;
9
9
  constructor(config: ResolvedConfig);
10
- private _collection;
11
10
  createCollection(account: AccountInterface, params: CreatePopCollectionParams): Promise<TxResult>;
12
11
  setAllowlistRoot(account: AccountInterface, params: {
13
12
  collection: string;
@@ -8202,6 +8201,42 @@ declare function encodePopClaimFragment(proof: string[]): string;
8202
8201
  /** The proof in a claim link's fragment; `null` when absent or malformed. */
8203
8202
  declare function decodePopClaimFragment(fragment: string): string[] | null;
8204
8203
 
8204
+ interface PopClaimLink {
8205
+ address: string;
8206
+ url: string;
8207
+ }
8208
+ /** One claim link per allowlisted address: the collection page with the proof in its fragment. */
8209
+ declare function popClaimLinks(origin: string, collection: string, list: PopAllowlist): PopClaimLink[];
8210
+ declare function popClaimLinksCsv(links: PopClaimLink[]): string;
8211
+ interface PopClaimInfo {
8212
+ /** Allowlist Merkle root; 0 when claims are closed. */
8213
+ root: string;
8214
+ /** Unix seconds; 0 = no deadline. */
8215
+ claimEndTime: number;
8216
+ }
8217
+ /** Reads a collection's allowlist root and claim deadline from chain. */
8218
+ declare function popClaimInfo(provider: Pick<ProviderInterface, "callContract">, collection: string): Promise<PopClaimInfo>;
8219
+ type PopClaimState = "loading" | "claimed" | "closed" | "ended" | "no-link" | "wrong-wallet" | "ready";
8220
+ /** What a claim page should show, decided before any transaction is sent. */
8221
+ declare function popClaimState(input: {
8222
+ hasClaimed: boolean | null;
8223
+ proof: string[] | null;
8224
+ wallet: string | null;
8225
+ /** The collection's claim settings, with `now` in Unix seconds. */
8226
+ info: (PopClaimInfo & {
8227
+ now: number;
8228
+ }) | null;
8229
+ }): PopClaimState;
8230
+ /** Calls on a POP collection, ready for `account.execute` or a sponsored transaction. */
8231
+ declare const popCalls: {
8232
+ claim(collection: string, proof: string[]): Call;
8233
+ /** An empty `tokenUri` uses the collection's URI. */
8234
+ issue(collection: string, recipient: string, tokenUri?: string): Call;
8235
+ /** Only the token's holder can burn it. */
8236
+ burn(collection: string, tokenId: string | bigint): Call;
8237
+ setAllowlistRoot(collection: string, root: string): Call;
8238
+ };
8239
+
8205
8240
  declare const SUGGESTED_DEFAULT_PRICE = 0.01;
8206
8241
  declare const MIN_SUPPLY = 1000n;
8207
8242
  declare const MAX_SUPPLY = 1000000000000n;
@@ -8482,4 +8517,4 @@ declare function claimSessionWallet(api: Pick<ApiClient, "setupWalletKey">, wall
8482
8517
 
8483
8518
  type StarknetVenueSigner = VenueSigner<TypedData, Call>;
8484
8519
 
8485
- export { type AddSupplyParams, type BatchMintEditionParams, type BuildFeeCallParams, MAX_SUPPLY as COIN_MAX_SUPPLY, MIN_SUPPLY as COIN_MIN_SUPPLY, ClaimConditions, ClubService, type CreateCreatorCoinParams, CreateDropParams, CreatePopCollectionParams, CreatedOwner, CreatorCoinFactoryABI, type CreatorCoinGuarantees, type CreatorCoinReceiptLike, CreatorCoinService, type DeployCollectionParams, type DeployingServiceId, type DeploymentCoordinator, type DeploymentDeps, type DeploymentResult, type DeploymentStep, type DeviceEntry, DropCollectionABI, DropFactoryABI, DropService, ERC1155CollectionService, type EkuboLaunchParams, type EkuboPoolParams, type EscapeInfo, type EscapeStatusName, type EscapeTypeName, type ExecuteIntentOpts, ExecutedTransaction, type FeeSurface, type FundWithTransferOptions, type FundingApi, type FundingResult, type FundingStep, type FundingTransferCall, FundingTransferNotSentError, type FundingWallet, type GuardianInfo, type GuardianStatus, IPClubCollectionABI, IPClubFactoryABI, IPCollection1155ABI, IPCollection1155FactoryABI, IPCollectionABI, IPGenesisABI, IPMarketplaceABI, IPNftABI, IPSponsorshipABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, InvalidPairingPayloadError, InvalidStarkPrivateKeyError, MAX_HOLDERS_AT_LAUNCH, MAX_TEAM_ALLOCATION_PERCENT, type MediaWallet, type MediaWalletConfig, Medialane1155ABI, MedialaneClient, MedialaneError, type MintEditionParams, type OwnerStore, POPCollectionABI, POPFactoryABI, type PairingPayload, PasskeyOwner, type PopAllowlist, PopService, type ReceiptLike, type ReceiptProvider, ReceiptProviderLike, type RecoveryAction, type RequestSiwsTokenArgs, type ResolvedOrder, SUGGESTED_DEFAULT_PRICE, SealedOwner, type SelfFundConsent, type SelfFundConsentHandler, type SelfFundFeeEstimate, type SelfFundedDeps, type SessionWallet, type SessionWalletClaimDeps, type SiwsSigner, SponsoredCallRejectedError, type SponsoredDeps, type SponsoredExecuteConfig, type SponsoredExecuteResult, type SponsorshipFailureCode, SponsorshipService, StarknetVenue, type StarknetVenueDeps, type StarknetVenueSigner, TicketService, type TypedDataSigner, VALIDATED_EKUBO_PARAMS, VenueSigner, WalletExecutor, accountFor, adoptSessionWallet, allowsFallbackFunding, assertTransactionSucceeded, build1155CancellationTypedData, build1155OrderTypedData, buildAddOwnerCall, buildCancelEscapeCall, buildCancellationTypedData, buildCompleteEscapeOwnerCall, buildCreateCreatorCoinCall, buildDeployAccountParams, buildFeeCall, buildFundingTransferCall, buildLaunchOnEkuboCalls, buildOrderTypedData, buildPopAllowlist, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, buybackQuoteRaw, canRemoveDevice, claimSessionWallet, toRaw as coinToRaw, completeDeployment, computeAccountAddress, computeOwnerGuid, confirmIntentBestEffort, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, decodePopClaimFragment, deploySelfFunded, deploySponsored, deployedCollectionFromReceipt, deriveAesKey, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodeByteArray, encodePairingPayload, encodePopClaimFragment, estimateSelfFundedFee, executeIntent, executeIntents, executeSponsored, fdvHuman, fundWithChainTransfer, fundingApiFor, generateStarkKeyPair, getCounter, getCounter1155, getCreatorCoinGuarantees, getEscape, getEscapeSecurityPeriod, getGuardians, getOrderDetails, getOrderDetails1155, getOwners, getSiwsStorageKey, getStoredSiwsToken, isDeployed, isSiwsTokenValid, isValidStarknetAddress, mintedTokenIdFromReceipt, normalizeSiwsSignature, normalizeWalletAddress, ownerConstructorCalldata, parseAccountAddress, parseCreatorCoinCreated, parsePairingPayload, popHasClaimed, priceToEkuboParams, requestSiwsToken, sealPrivateKey, selfFundedExecutor, signWithPrivateKey, sponsoredExecutor, starkKeyPairFromPrivateKey, storeSiwsToken, syncTransactionBestEffort, teamCoinsRaw, toContractConditions as toDropContractConditions, unsealPrivateKey, validateName as validateCoinName, validateSupply as validateCoinSupply, validateSymbol as validateCoinSymbol, validatePrice, verifyPopProof, waitUntilDeployed };
8520
+ export { type AddSupplyParams, type BatchMintEditionParams, type BuildFeeCallParams, MAX_SUPPLY as COIN_MAX_SUPPLY, MIN_SUPPLY as COIN_MIN_SUPPLY, ClaimConditions, ClubService, type CreateCreatorCoinParams, CreateDropParams, CreatePopCollectionParams, CreatedOwner, CreatorCoinFactoryABI, type CreatorCoinGuarantees, type CreatorCoinReceiptLike, CreatorCoinService, type DeployCollectionParams, type DeployingServiceId, type DeploymentCoordinator, type DeploymentDeps, type DeploymentResult, type DeploymentStep, type DeviceEntry, DropCollectionABI, DropFactoryABI, DropService, ERC1155CollectionService, type EkuboLaunchParams, type EkuboPoolParams, type EscapeInfo, type EscapeStatusName, type EscapeTypeName, type ExecuteIntentOpts, ExecutedTransaction, type FeeSurface, type FundWithTransferOptions, type FundingApi, type FundingResult, type FundingStep, type FundingTransferCall, FundingTransferNotSentError, type FundingWallet, type GuardianInfo, type GuardianStatus, IPClubCollectionABI, IPClubFactoryABI, IPCollection1155ABI, IPCollection1155FactoryABI, IPCollectionABI, IPGenesisABI, IPMarketplaceABI, IPNftABI, IPSponsorshipABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, InvalidPairingPayloadError, InvalidStarkPrivateKeyError, MAX_HOLDERS_AT_LAUNCH, MAX_TEAM_ALLOCATION_PERCENT, type MediaWallet, type MediaWalletConfig, Medialane1155ABI, MedialaneClient, MedialaneError, type MintEditionParams, type OwnerStore, POPCollectionABI, POPFactoryABI, type PairingPayload, PasskeyOwner, type PopAllowlist, type PopClaimInfo, type PopClaimLink, type PopClaimState, PopService, type ReceiptLike, type ReceiptProvider, ReceiptProviderLike, type RecoveryAction, type RequestSiwsTokenArgs, type ResolvedOrder, SUGGESTED_DEFAULT_PRICE, SealedOwner, type SelfFundConsent, type SelfFundConsentHandler, type SelfFundFeeEstimate, type SelfFundedDeps, type SessionWallet, type SessionWalletClaimDeps, type SiwsSigner, SponsoredCallRejectedError, type SponsoredDeps, type SponsoredExecuteConfig, type SponsoredExecuteResult, type SponsorshipFailureCode, SponsorshipService, StarknetVenue, type StarknetVenueDeps, type StarknetVenueSigner, TicketService, type TypedDataSigner, VALIDATED_EKUBO_PARAMS, VenueSigner, WalletExecutor, accountFor, adoptSessionWallet, allowsFallbackFunding, assertTransactionSucceeded, build1155CancellationTypedData, build1155OrderTypedData, buildAddOwnerCall, buildCancelEscapeCall, buildCancellationTypedData, buildCompleteEscapeOwnerCall, buildCreateCreatorCoinCall, buildDeployAccountParams, buildFeeCall, buildFundingTransferCall, buildLaunchOnEkuboCalls, buildOrderTypedData, buildPopAllowlist, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, buybackQuoteRaw, canRemoveDevice, claimSessionWallet, toRaw as coinToRaw, completeDeployment, computeAccountAddress, computeOwnerGuid, confirmIntentBestEffort, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, decodePopClaimFragment, deploySelfFunded, deploySponsored, deployedCollectionFromReceipt, deriveAesKey, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodeByteArray, encodePairingPayload, encodePopClaimFragment, estimateSelfFundedFee, executeIntent, executeIntents, executeSponsored, fdvHuman, fundWithChainTransfer, fundingApiFor, generateStarkKeyPair, getCounter, getCounter1155, getCreatorCoinGuarantees, getEscape, getEscapeSecurityPeriod, getGuardians, getOrderDetails, getOrderDetails1155, getOwners, getSiwsStorageKey, getStoredSiwsToken, isDeployed, isSiwsTokenValid, isValidStarknetAddress, mintedTokenIdFromReceipt, normalizeSiwsSignature, normalizeWalletAddress, ownerConstructorCalldata, parseAccountAddress, parseCreatorCoinCreated, parsePairingPayload, popCalls, popClaimInfo, popClaimLinks, popClaimLinksCsv, popClaimState, popHasClaimed, priceToEkuboParams, requestSiwsToken, sealPrivateKey, selfFundedExecutor, signWithPrivateKey, sponsoredExecutor, starkKeyPairFromPrivateKey, storeSiwsToken, syncTransactionBestEffort, teamCoinsRaw, toContractConditions as toDropContractConditions, unsealPrivateKey, validateName as validateCoinName, validateSupply as validateCoinSupply, validateSymbol as validateCoinSymbol, validatePrice, verifyPopProof, waitUntilDeployed };
@@ -7,7 +7,6 @@ import 'zod';
7
7
  declare class PopService {
8
8
  private readonly factoryAddress;
9
9
  constructor(config: ResolvedConfig);
10
- private _collection;
11
10
  createCollection(account: AccountInterface, params: CreatePopCollectionParams): Promise<TxResult>;
12
11
  setAllowlistRoot(account: AccountInterface, params: {
13
12
  collection: string;
@@ -8202,6 +8201,42 @@ declare function encodePopClaimFragment(proof: string[]): string;
8202
8201
  /** The proof in a claim link's fragment; `null` when absent or malformed. */
8203
8202
  declare function decodePopClaimFragment(fragment: string): string[] | null;
8204
8203
 
8204
+ interface PopClaimLink {
8205
+ address: string;
8206
+ url: string;
8207
+ }
8208
+ /** One claim link per allowlisted address: the collection page with the proof in its fragment. */
8209
+ declare function popClaimLinks(origin: string, collection: string, list: PopAllowlist): PopClaimLink[];
8210
+ declare function popClaimLinksCsv(links: PopClaimLink[]): string;
8211
+ interface PopClaimInfo {
8212
+ /** Allowlist Merkle root; 0 when claims are closed. */
8213
+ root: string;
8214
+ /** Unix seconds; 0 = no deadline. */
8215
+ claimEndTime: number;
8216
+ }
8217
+ /** Reads a collection's allowlist root and claim deadline from chain. */
8218
+ declare function popClaimInfo(provider: Pick<ProviderInterface, "callContract">, collection: string): Promise<PopClaimInfo>;
8219
+ type PopClaimState = "loading" | "claimed" | "closed" | "ended" | "no-link" | "wrong-wallet" | "ready";
8220
+ /** What a claim page should show, decided before any transaction is sent. */
8221
+ declare function popClaimState(input: {
8222
+ hasClaimed: boolean | null;
8223
+ proof: string[] | null;
8224
+ wallet: string | null;
8225
+ /** The collection's claim settings, with `now` in Unix seconds. */
8226
+ info: (PopClaimInfo & {
8227
+ now: number;
8228
+ }) | null;
8229
+ }): PopClaimState;
8230
+ /** Calls on a POP collection, ready for `account.execute` or a sponsored transaction. */
8231
+ declare const popCalls: {
8232
+ claim(collection: string, proof: string[]): Call;
8233
+ /** An empty `tokenUri` uses the collection's URI. */
8234
+ issue(collection: string, recipient: string, tokenUri?: string): Call;
8235
+ /** Only the token's holder can burn it. */
8236
+ burn(collection: string, tokenId: string | bigint): Call;
8237
+ setAllowlistRoot(collection: string, root: string): Call;
8238
+ };
8239
+
8205
8240
  declare const SUGGESTED_DEFAULT_PRICE = 0.01;
8206
8241
  declare const MIN_SUPPLY = 1000n;
8207
8242
  declare const MAX_SUPPLY = 1000000000000n;
@@ -8482,4 +8517,4 @@ declare function claimSessionWallet(api: Pick<ApiClient, "setupWalletKey">, wall
8482
8517
 
8483
8518
  type StarknetVenueSigner = VenueSigner<TypedData, Call>;
8484
8519
 
8485
- export { type AddSupplyParams, type BatchMintEditionParams, type BuildFeeCallParams, MAX_SUPPLY as COIN_MAX_SUPPLY, MIN_SUPPLY as COIN_MIN_SUPPLY, ClaimConditions, ClubService, type CreateCreatorCoinParams, CreateDropParams, CreatePopCollectionParams, CreatedOwner, CreatorCoinFactoryABI, type CreatorCoinGuarantees, type CreatorCoinReceiptLike, CreatorCoinService, type DeployCollectionParams, type DeployingServiceId, type DeploymentCoordinator, type DeploymentDeps, type DeploymentResult, type DeploymentStep, type DeviceEntry, DropCollectionABI, DropFactoryABI, DropService, ERC1155CollectionService, type EkuboLaunchParams, type EkuboPoolParams, type EscapeInfo, type EscapeStatusName, type EscapeTypeName, type ExecuteIntentOpts, ExecutedTransaction, type FeeSurface, type FundWithTransferOptions, type FundingApi, type FundingResult, type FundingStep, type FundingTransferCall, FundingTransferNotSentError, type FundingWallet, type GuardianInfo, type GuardianStatus, IPClubCollectionABI, IPClubFactoryABI, IPCollection1155ABI, IPCollection1155FactoryABI, IPCollectionABI, IPGenesisABI, IPMarketplaceABI, IPNftABI, IPSponsorshipABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, InvalidPairingPayloadError, InvalidStarkPrivateKeyError, MAX_HOLDERS_AT_LAUNCH, MAX_TEAM_ALLOCATION_PERCENT, type MediaWallet, type MediaWalletConfig, Medialane1155ABI, MedialaneClient, MedialaneError, type MintEditionParams, type OwnerStore, POPCollectionABI, POPFactoryABI, type PairingPayload, PasskeyOwner, type PopAllowlist, PopService, type ReceiptLike, type ReceiptProvider, ReceiptProviderLike, type RecoveryAction, type RequestSiwsTokenArgs, type ResolvedOrder, SUGGESTED_DEFAULT_PRICE, SealedOwner, type SelfFundConsent, type SelfFundConsentHandler, type SelfFundFeeEstimate, type SelfFundedDeps, type SessionWallet, type SessionWalletClaimDeps, type SiwsSigner, SponsoredCallRejectedError, type SponsoredDeps, type SponsoredExecuteConfig, type SponsoredExecuteResult, type SponsorshipFailureCode, SponsorshipService, StarknetVenue, type StarknetVenueDeps, type StarknetVenueSigner, TicketService, type TypedDataSigner, VALIDATED_EKUBO_PARAMS, VenueSigner, WalletExecutor, accountFor, adoptSessionWallet, allowsFallbackFunding, assertTransactionSucceeded, build1155CancellationTypedData, build1155OrderTypedData, buildAddOwnerCall, buildCancelEscapeCall, buildCancellationTypedData, buildCompleteEscapeOwnerCall, buildCreateCreatorCoinCall, buildDeployAccountParams, buildFeeCall, buildFundingTransferCall, buildLaunchOnEkuboCalls, buildOrderTypedData, buildPopAllowlist, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, buybackQuoteRaw, canRemoveDevice, claimSessionWallet, toRaw as coinToRaw, completeDeployment, computeAccountAddress, computeOwnerGuid, confirmIntentBestEffort, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, decodePopClaimFragment, deploySelfFunded, deploySponsored, deployedCollectionFromReceipt, deriveAesKey, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodeByteArray, encodePairingPayload, encodePopClaimFragment, estimateSelfFundedFee, executeIntent, executeIntents, executeSponsored, fdvHuman, fundWithChainTransfer, fundingApiFor, generateStarkKeyPair, getCounter, getCounter1155, getCreatorCoinGuarantees, getEscape, getEscapeSecurityPeriod, getGuardians, getOrderDetails, getOrderDetails1155, getOwners, getSiwsStorageKey, getStoredSiwsToken, isDeployed, isSiwsTokenValid, isValidStarknetAddress, mintedTokenIdFromReceipt, normalizeSiwsSignature, normalizeWalletAddress, ownerConstructorCalldata, parseAccountAddress, parseCreatorCoinCreated, parsePairingPayload, popHasClaimed, priceToEkuboParams, requestSiwsToken, sealPrivateKey, selfFundedExecutor, signWithPrivateKey, sponsoredExecutor, starkKeyPairFromPrivateKey, storeSiwsToken, syncTransactionBestEffort, teamCoinsRaw, toContractConditions as toDropContractConditions, unsealPrivateKey, validateName as validateCoinName, validateSupply as validateCoinSupply, validateSymbol as validateCoinSymbol, validatePrice, verifyPopProof, waitUntilDeployed };
8520
+ export { type AddSupplyParams, type BatchMintEditionParams, type BuildFeeCallParams, MAX_SUPPLY as COIN_MAX_SUPPLY, MIN_SUPPLY as COIN_MIN_SUPPLY, ClaimConditions, ClubService, type CreateCreatorCoinParams, CreateDropParams, CreatePopCollectionParams, CreatedOwner, CreatorCoinFactoryABI, type CreatorCoinGuarantees, type CreatorCoinReceiptLike, CreatorCoinService, type DeployCollectionParams, type DeployingServiceId, type DeploymentCoordinator, type DeploymentDeps, type DeploymentResult, type DeploymentStep, type DeviceEntry, DropCollectionABI, DropFactoryABI, DropService, ERC1155CollectionService, type EkuboLaunchParams, type EkuboPoolParams, type EscapeInfo, type EscapeStatusName, type EscapeTypeName, type ExecuteIntentOpts, ExecutedTransaction, type FeeSurface, type FundWithTransferOptions, type FundingApi, type FundingResult, type FundingStep, type FundingTransferCall, FundingTransferNotSentError, type FundingWallet, type GuardianInfo, type GuardianStatus, IPClubCollectionABI, IPClubFactoryABI, IPCollection1155ABI, IPCollection1155FactoryABI, IPCollectionABI, IPGenesisABI, IPMarketplaceABI, IPNftABI, IPSponsorshipABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, InvalidPairingPayloadError, InvalidStarkPrivateKeyError, MAX_HOLDERS_AT_LAUNCH, MAX_TEAM_ALLOCATION_PERCENT, type MediaWallet, type MediaWalletConfig, Medialane1155ABI, MedialaneClient, MedialaneError, type MintEditionParams, type OwnerStore, POPCollectionABI, POPFactoryABI, type PairingPayload, PasskeyOwner, type PopAllowlist, type PopClaimInfo, type PopClaimLink, type PopClaimState, PopService, type ReceiptLike, type ReceiptProvider, ReceiptProviderLike, type RecoveryAction, type RequestSiwsTokenArgs, type ResolvedOrder, SUGGESTED_DEFAULT_PRICE, SealedOwner, type SelfFundConsent, type SelfFundConsentHandler, type SelfFundFeeEstimate, type SelfFundedDeps, type SessionWallet, type SessionWalletClaimDeps, type SiwsSigner, SponsoredCallRejectedError, type SponsoredDeps, type SponsoredExecuteConfig, type SponsoredExecuteResult, type SponsorshipFailureCode, SponsorshipService, StarknetVenue, type StarknetVenueDeps, type StarknetVenueSigner, TicketService, type TypedDataSigner, VALIDATED_EKUBO_PARAMS, VenueSigner, WalletExecutor, accountFor, adoptSessionWallet, allowsFallbackFunding, assertTransactionSucceeded, build1155CancellationTypedData, build1155OrderTypedData, buildAddOwnerCall, buildCancelEscapeCall, buildCancellationTypedData, buildCompleteEscapeOwnerCall, buildCreateCreatorCoinCall, buildDeployAccountParams, buildFeeCall, buildFundingTransferCall, buildLaunchOnEkuboCalls, buildOrderTypedData, buildPopAllowlist, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, buybackQuoteRaw, canRemoveDevice, claimSessionWallet, toRaw as coinToRaw, completeDeployment, computeAccountAddress, computeOwnerGuid, confirmIntentBestEffort, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, decodePopClaimFragment, deploySelfFunded, deploySponsored, deployedCollectionFromReceipt, deriveAesKey, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodeByteArray, encodePairingPayload, encodePopClaimFragment, estimateSelfFundedFee, executeIntent, executeIntents, executeSponsored, fdvHuman, fundWithChainTransfer, fundingApiFor, generateStarkKeyPair, getCounter, getCounter1155, getCreatorCoinGuarantees, getEscape, getEscapeSecurityPeriod, getGuardians, getOrderDetails, getOrderDetails1155, getOwners, getSiwsStorageKey, getStoredSiwsToken, isDeployed, isSiwsTokenValid, isValidStarknetAddress, mintedTokenIdFromReceipt, normalizeSiwsSignature, normalizeWalletAddress, ownerConstructorCalldata, parseAccountAddress, parseCreatorCoinCreated, parsePairingPayload, popCalls, popClaimInfo, popClaimLinks, popClaimLinksCsv, popClaimState, popHasClaimed, priceToEkuboParams, requestSiwsToken, sealPrivateKey, selfFundedExecutor, signWithPrivateKey, sponsoredExecutor, starkKeyPairFromPrivateKey, storeSiwsToken, syncTransactionBestEffort, teamCoinsRaw, toContractConditions as toDropContractConditions, unsealPrivateKey, validateName as validateCoinName, validateSupply as validateCoinSupply, validateSymbol as validateCoinSymbol, validatePrice, verifyPopProof, waitUntilDeployed };
@@ -1,7 +1,7 @@
1
- import { normalizeAddress, resolveConfig, ApiClient, UserFacingError, getService, STARKNET_MEDIAWALLET_CLASS_HASH, computeAccountAddress, ownerConstructorCalldata, getTokenBySymbol, signWithPrivateKey, stringifyBigInts, SUPPORTED_TOKENS, starkKeyPairFromPrivateKey, createFailoverFetch } from '../chunk-A6EQBVUF.js';
2
- export { InvalidStarkPrivateKeyError, PasskeyCancelledError, UserFacingError, computeAccountAddress, createPasskeyOwner, deriveAesKey, generateStarkKeyPair, ownerConstructorCalldata, sealPrivateKey, signWithPrivateKey, starkKeyPairFromPrivateKey, unsealPrivateKey } from '../chunk-A6EQBVUF.js';
1
+ import { normalizeAddress, collectionHref, resolveConfig, ApiClient, UserFacingError, getService, STARKNET_MEDIAWALLET_CLASS_HASH, computeAccountAddress, ownerConstructorCalldata, getTokenBySymbol, signWithPrivateKey, stringifyBigInts, SUPPORTED_TOKENS, starkKeyPairFromPrivateKey, createFailoverFetch } from '../chunk-R6EJAMY3.js';
2
+ export { InvalidStarkPrivateKeyError, PasskeyCancelledError, UserFacingError, computeAccountAddress, createPasskeyOwner, deriveAesKey, generateStarkKeyPair, ownerConstructorCalldata, sealPrivateKey, signWithPrivateKey, starkKeyPairFromPrivateKey, unsealPrivateKey } from '../chunk-R6EJAMY3.js';
3
3
  import { getStarknetCoordinates, getCoordinates } from '../chunk-PBJLHXDB.js';
4
- import { hash, cairo, uint256, RpcProvider, CairoOption, CairoOptionVariant, num, ec, validateAndParseAddress, Account, typedData, stark, Contract, TypedDataRevision, constants, shortString } from 'starknet';
4
+ import { hash, cairo, uint256, RpcProvider, CairoOption, CairoOptionVariant, num, ec, validateAndParseAddress, Account, typedData, stark, CallData, byteArray, Contract, TypedDataRevision, constants, shortString } from 'starknet';
5
5
  import { extract, expand } from '@noble/hashes/hkdf.js';
6
6
  import { sha256 } from '@noble/hashes/sha2.js';
7
7
 
@@ -9738,15 +9738,113 @@ var IPGenesisABI = [
9738
9738
  ]
9739
9739
  }
9740
9740
  ];
9741
+ var FRAGMENT_KEY = "pop-proof";
9742
+ var toHex = (x) => "0x" + x.toString(16).padStart(64, "0");
9743
+ var poseidon = (xs) => BigInt(hash.computePoseidonHashOnElements(xs.map((x) => "0x" + x.toString(16))));
9744
+ var nodeHash = (a, b) => a < b ? poseidon([a, b]) : poseidon([b, a]);
9745
+ function popLeafHash(address) {
9746
+ return poseidon([poseidon([BigInt(address)])]);
9747
+ }
9748
+ function merkleTree(leafHashes) {
9749
+ const leaves = [...leafHashes].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
9750
+ const tree = new Array(2 * leaves.length - 1);
9751
+ leaves.forEach((leaf, i) => tree[tree.length - 1 - i] = leaf);
9752
+ for (let i = tree.length - 1 - leaves.length; i >= 0; i--) {
9753
+ tree[i] = nodeHash(tree[2 * i + 1], tree[2 * i + 2]);
9754
+ }
9755
+ return {
9756
+ root: tree[0],
9757
+ proof(leaf) {
9758
+ let i = tree.lastIndexOf(leaf);
9759
+ if (i < tree.length - leaves.length) throw new Error("Not a leaf of this tree");
9760
+ const proof = [];
9761
+ while (i > 0) {
9762
+ proof.push(tree[i % 2 === 1 ? i + 1 : i - 1]);
9763
+ i = Math.floor((i - 1) / 2);
9764
+ }
9765
+ return proof;
9766
+ }
9767
+ };
9768
+ }
9769
+ function buildPopAllowlist(addresses) {
9770
+ const unique = [...new Set(addresses.map((a) => normalizeAddress("STARKNET", a)))];
9771
+ if (unique.length === 0) throw new Error("An allowlist needs at least one address");
9772
+ const leaves = unique.map((address) => ({ address, leaf: popLeafHash(address) }));
9773
+ const tree = merkleTree(leaves.map((l) => l.leaf));
9774
+ const proofs = {};
9775
+ for (const { address, leaf } of leaves) proofs[address] = tree.proof(leaf).map(toHex);
9776
+ return { root: toHex(tree.root), proofs };
9777
+ }
9778
+ function verifyPopProof(root, address, proof) {
9779
+ let computed = popLeafHash(address);
9780
+ for (const sibling of proof) computed = nodeHash(computed, BigInt(sibling));
9781
+ return computed === BigInt(root);
9782
+ }
9783
+ function encodePopClaimFragment(proof) {
9784
+ return `#${FRAGMENT_KEY}=${proof.join(",")}`;
9785
+ }
9786
+ function decodePopClaimFragment(fragment) {
9787
+ const raw = new URLSearchParams(fragment.replace(/^#/, "")).get(FRAGMENT_KEY);
9788
+ if (raw === null) return null;
9789
+ if (raw === "") return [];
9790
+ const parts = raw.split(",");
9791
+ return parts.every((p) => /^0x[0-9a-fA-F]{1,64}$/.test(p)) ? parts : null;
9792
+ }
9793
+
9794
+ // src/starknet/pop-claim.ts
9795
+ function popClaimLinks(origin, collection, list) {
9796
+ const base = `${origin}${collectionHref("STARKNET", collection)}`;
9797
+ return Object.entries(list.proofs).map(([address, proof]) => ({
9798
+ address,
9799
+ url: `${base}${encodePopClaimFragment(proof)}`
9800
+ }));
9801
+ }
9802
+ function popClaimLinksCsv(links) {
9803
+ return ["address,claim_link", ...links.map((l) => `${l.address},${l.url}`)].join("\n");
9804
+ }
9805
+ async function popClaimInfo(provider, collection) {
9806
+ const contractAddress = normalizeAddress("STARKNET", collection);
9807
+ const [root, end] = await Promise.all([
9808
+ provider.callContract({ contractAddress, entrypoint: "allowlist_root", calldata: [] }),
9809
+ provider.callContract({ contractAddress, entrypoint: "claim_end_time", calldata: [] })
9810
+ ]);
9811
+ return { root: root[0] ?? "0x0", claimEndTime: Number(BigInt(end[0] ?? "0x0")) };
9812
+ }
9813
+ function popClaimState(input) {
9814
+ const { hasClaimed, proof, wallet, info } = input;
9815
+ if (hasClaimed === true) return "claimed";
9816
+ if (hasClaimed === null || info === null) return "loading";
9817
+ if (BigInt(info.root) === 0n) return "closed";
9818
+ if (info.claimEndTime !== 0 && info.now > info.claimEndTime) return "ended";
9819
+ if (proof === null) return "no-link";
9820
+ if (!wallet || !verifyPopProof(info.root, wallet, proof)) return "wrong-wallet";
9821
+ return "ready";
9822
+ }
9823
+ var addr = (a) => normalizeAddress("STARKNET", a);
9824
+ var byteArrayFelts = (s) => CallData.compile([byteArray.byteArrayFromString(s)]);
9825
+ var popCalls = {
9826
+ claim(collection, proof) {
9827
+ return { contractAddress: addr(collection), entrypoint: "claim", calldata: [String(proof.length), ...proof] };
9828
+ },
9829
+ /** An empty `tokenUri` uses the collection's URI. */
9830
+ issue(collection, recipient, tokenUri = "") {
9831
+ return { contractAddress: addr(collection), entrypoint: "issue", calldata: [addr(recipient), ...byteArrayFelts(tokenUri)] };
9832
+ },
9833
+ /** Only the token's holder can burn it. */
9834
+ burn(collection, tokenId) {
9835
+ const id = cairo.uint256(BigInt(tokenId));
9836
+ return { contractAddress: addr(collection), entrypoint: "burn", calldata: [String(id.low), String(id.high)] };
9837
+ },
9838
+ setAllowlistRoot(collection, root) {
9839
+ return { contractAddress: addr(collection), entrypoint: "set_allowlist_root", calldata: [root] };
9840
+ }
9841
+ };
9741
9842
 
9742
9843
  // src/starknet/services/pop.ts
9743
9844
  var PopService = class {
9744
9845
  constructor(config) {
9745
9846
  this.factoryAddress = getStarknetCoordinates(config.chain).popFactory;
9746
9847
  }
9747
- _collection(address, account) {
9748
- return newContract(POPCollectionABI, normalizeAddress("STARKNET", address), account);
9749
- }
9750
9848
  async createCollection(account, params) {
9751
9849
  const factory = newContract(POPFactoryABI, this.factoryAddress, account);
9752
9850
  const call = factory.populate("create_collection", [params.name, params.symbol, params.baseUri, params.claimEndTime]);
@@ -9754,23 +9852,23 @@ var PopService = class {
9754
9852
  return { txHash: res.transaction_hash };
9755
9853
  }
9756
9854
  async setAllowlistRoot(account, params) {
9757
- const call = this._collection(params.collection, account).populate("set_allowlist_root", [params.root]);
9855
+ const call = popCalls.setAllowlistRoot(params.collection, params.root);
9758
9856
  const res = await account.execute([call]);
9759
9857
  return { txHash: res.transaction_hash };
9760
9858
  }
9761
9859
  async claim(account, params) {
9762
- const call = this._collection(params.collection, account).populate("claim", [params.proof]);
9860
+ const call = popCalls.claim(params.collection, params.proof);
9763
9861
  const res = await account.execute([call]);
9764
9862
  return { txHash: res.transaction_hash };
9765
9863
  }
9766
9864
  async issue(account, params) {
9767
- const call = this._collection(params.collection, account).populate("issue", [params.recipient, params.tokenUri ?? ""]);
9865
+ const call = popCalls.issue(params.collection, params.recipient, params.tokenUri);
9768
9866
  const res = await account.execute([call]);
9769
9867
  return { txHash: res.transaction_hash };
9770
9868
  }
9771
9869
  /** Destroys the caller's own credential; the address cannot receive another from this collection. */
9772
9870
  async burn(account, params) {
9773
- const call = this._collection(params.collection, account).populate("burn", [BigInt(params.tokenId)]);
9871
+ const call = popCalls.burn(params.collection, params.tokenId);
9774
9872
  const res = await account.execute([call]);
9775
9873
  return { txHash: res.transaction_hash };
9776
9874
  }
@@ -11280,58 +11378,6 @@ function mintedTokenIdFromReceipt(receipt, contract) {
11280
11378
  }
11281
11379
  return null;
11282
11380
  }
11283
- var FRAGMENT_KEY = "pop-proof";
11284
- var toHex = (x) => "0x" + x.toString(16).padStart(64, "0");
11285
- var poseidon = (xs) => BigInt(hash.computePoseidonHashOnElements(xs.map((x) => "0x" + x.toString(16))));
11286
- var nodeHash = (a, b) => a < b ? poseidon([a, b]) : poseidon([b, a]);
11287
- function popLeafHash(address) {
11288
- return poseidon([poseidon([BigInt(address)])]);
11289
- }
11290
- function merkleTree(leafHashes) {
11291
- const leaves = [...leafHashes].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
11292
- const tree = new Array(2 * leaves.length - 1);
11293
- leaves.forEach((leaf, i) => tree[tree.length - 1 - i] = leaf);
11294
- for (let i = tree.length - 1 - leaves.length; i >= 0; i--) {
11295
- tree[i] = nodeHash(tree[2 * i + 1], tree[2 * i + 2]);
11296
- }
11297
- return {
11298
- root: tree[0],
11299
- proof(leaf) {
11300
- let i = tree.lastIndexOf(leaf);
11301
- if (i < tree.length - leaves.length) throw new Error("Not a leaf of this tree");
11302
- const proof = [];
11303
- while (i > 0) {
11304
- proof.push(tree[i % 2 === 1 ? i + 1 : i - 1]);
11305
- i = Math.floor((i - 1) / 2);
11306
- }
11307
- return proof;
11308
- }
11309
- };
11310
- }
11311
- function buildPopAllowlist(addresses) {
11312
- const unique = [...new Set(addresses.map((a) => normalizeAddress("STARKNET", a)))];
11313
- if (unique.length === 0) throw new Error("An allowlist needs at least one address");
11314
- const leaves = unique.map((address) => ({ address, leaf: popLeafHash(address) }));
11315
- const tree = merkleTree(leaves.map((l) => l.leaf));
11316
- const proofs = {};
11317
- for (const { address, leaf } of leaves) proofs[address] = tree.proof(leaf).map(toHex);
11318
- return { root: toHex(tree.root), proofs };
11319
- }
11320
- function verifyPopProof(root, address, proof) {
11321
- let computed = popLeafHash(address);
11322
- for (const sibling of proof) computed = nodeHash(computed, BigInt(sibling));
11323
- return computed === BigInt(root);
11324
- }
11325
- function encodePopClaimFragment(proof) {
11326
- return `#${FRAGMENT_KEY}=${proof.join(",")}`;
11327
- }
11328
- function decodePopClaimFragment(fragment) {
11329
- const raw = new URLSearchParams(fragment.replace(/^#/, "")).get(FRAGMENT_KEY);
11330
- if (raw === null) return null;
11331
- if (raw === "") return [];
11332
- const parts = raw.split(",");
11333
- return parts.every((p) => /^0x[0-9a-fA-F]{1,64}$/.test(p)) ? parts : null;
11334
- }
11335
11381
 
11336
11382
  // src/starknet/services/sponsoredExecutor.ts
11337
11383
  var SponsoredCallRejectedError = class extends Error {
@@ -12044,6 +12090,6 @@ async function claimSessionWallet(api, walletAddress, deps) {
12044
12090
  if (removeOwnerGuid) await deps.removeOwner(sealed, removeOwnerGuid);
12045
12091
  }
12046
12092
 
12047
- export { MAX_SUPPLY as COIN_MAX_SUPPLY, MIN_SUPPLY as COIN_MIN_SUPPLY, ClubService, CreatorCoinFactoryABI, CreatorCoinService, DropCollectionABI, DropFactoryABI, DropService, ERC1155CollectionService, FundingTransferNotSentError, IPClubCollectionABI, IPClubFactoryABI, IPCollection1155ABI, IPCollection1155FactoryABI, IPCollectionABI, IPGenesisABI, IPMarketplaceABI, IPNftABI, IPSponsorshipABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, InvalidPairingPayloadError, InvalidRecoveryKeyError, MAX_HOLDERS_AT_LAUNCH, MAX_TEAM_ALLOCATION_PERCENT, Medialane1155ABI, MedialaneClient, MedialaneError, POPCollectionABI, POPFactoryABI, PopService, SUGGESTED_DEFAULT_PRICE, SponsoredCallRejectedError, SponsorshipService, StarknetVenue, TicketService, VALIDATED_EKUBO_PARAMS, accountFor, adoptSessionWallet, allowsFallbackFunding, assertTransactionSucceeded, build1155CancellationTypedData, build1155OrderTypedData, buildAddOwnerCall, buildCancelEscapeCall, buildCancellationTypedData, buildCompleteEscapeOwnerCall, buildCreateCreatorCoinCall, buildDeployAccountParams, buildFeeCall, buildFundingTransferCall, buildLaunchOnEkuboCalls, buildOrderTypedData, buildPopAllowlist, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, buybackQuoteRaw, canRemoveDevice, claimSessionWallet, toRaw as coinToRaw, completeDeployment, computeOwnerGuid, confirmIntentBestEffort, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, decodePopClaimFragment, deploySelfFunded, deploySponsored, deployedCollectionFromReceipt, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodeByteArray, encodePairingPayload, encodePopClaimFragment, encodeRecoveryKey, estimateSelfFundedFee, executeIntent, executeIntents, executeSponsored, fdvHuman, fundWithChainTransfer, fundingApiFor, getCounter, getCounter1155, getCreatorCoinGuarantees, getEscape, getEscapeSecurityPeriod, getGuardians, getOrderDetails, getOrderDetails1155, getOwners, getSiwsStorageKey, getStoredSiwsToken, isDeployed, isSiwsTokenValid, isValidStarknetAddress, mintedTokenIdFromReceipt, normalizeSiwsSignature, normalizeWalletAddress, parseAccountAddress, parseCreatorCoinCreated, parsePairingPayload, parseRecoveryKey, popHasClaimed, priceToEkuboParams, requestSiwsToken, selfFundedExecutor, sponsoredExecutor, storeSiwsToken, syncTransactionBestEffort, teamCoinsRaw, toContractConditions as toDropContractConditions, validateName as validateCoinName, validateSupply as validateCoinSupply, validateSymbol as validateCoinSymbol, validatePrice, verifyPopProof, waitUntilDeployed };
12093
+ export { MAX_SUPPLY as COIN_MAX_SUPPLY, MIN_SUPPLY as COIN_MIN_SUPPLY, ClubService, CreatorCoinFactoryABI, CreatorCoinService, DropCollectionABI, DropFactoryABI, DropService, ERC1155CollectionService, FundingTransferNotSentError, IPClubCollectionABI, IPClubFactoryABI, IPCollection1155ABI, IPCollection1155FactoryABI, IPCollectionABI, IPGenesisABI, IPMarketplaceABI, IPNftABI, IPSponsorshipABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, InvalidPairingPayloadError, InvalidRecoveryKeyError, MAX_HOLDERS_AT_LAUNCH, MAX_TEAM_ALLOCATION_PERCENT, Medialane1155ABI, MedialaneClient, MedialaneError, POPCollectionABI, POPFactoryABI, PopService, SUGGESTED_DEFAULT_PRICE, SponsoredCallRejectedError, SponsorshipService, StarknetVenue, TicketService, VALIDATED_EKUBO_PARAMS, accountFor, adoptSessionWallet, allowsFallbackFunding, assertTransactionSucceeded, build1155CancellationTypedData, build1155OrderTypedData, buildAddOwnerCall, buildCancelEscapeCall, buildCancellationTypedData, buildCompleteEscapeOwnerCall, buildCreateCreatorCoinCall, buildDeployAccountParams, buildFeeCall, buildFundingTransferCall, buildLaunchOnEkuboCalls, buildOrderTypedData, buildPopAllowlist, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, buybackQuoteRaw, canRemoveDevice, claimSessionWallet, toRaw as coinToRaw, completeDeployment, computeOwnerGuid, confirmIntentBestEffort, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, decodePopClaimFragment, deploySelfFunded, deploySponsored, deployedCollectionFromReceipt, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodeByteArray, encodePairingPayload, encodePopClaimFragment, encodeRecoveryKey, estimateSelfFundedFee, executeIntent, executeIntents, executeSponsored, fdvHuman, fundWithChainTransfer, fundingApiFor, getCounter, getCounter1155, getCreatorCoinGuarantees, getEscape, getEscapeSecurityPeriod, getGuardians, getOrderDetails, getOrderDetails1155, getOwners, getSiwsStorageKey, getStoredSiwsToken, isDeployed, isSiwsTokenValid, isValidStarknetAddress, mintedTokenIdFromReceipt, normalizeSiwsSignature, normalizeWalletAddress, parseAccountAddress, parseCreatorCoinCreated, parsePairingPayload, parseRecoveryKey, popCalls, popClaimInfo, popClaimLinks, popClaimLinksCsv, popClaimState, popHasClaimed, priceToEkuboParams, requestSiwsToken, selfFundedExecutor, sponsoredExecutor, storeSiwsToken, syncTransactionBestEffort, teamCoinsRaw, toContractConditions as toDropContractConditions, validateName as validateCoinName, validateSupply as validateCoinSupply, validateSymbol as validateCoinSymbol, validatePrice, verifyPopProof, waitUntilDeployed };
12048
12094
  //# sourceMappingURL=index.js.map
12049
12095
  //# sourceMappingURL=index.js.map