@medialane/sdk 0.143.0 → 0.145.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/dist/index.d.cts CHANGED
@@ -68,6 +68,27 @@ type TicketingNextStep = {
68
68
  } | {
69
69
  kind: "done";
70
70
  };
71
+ /** What a paid Certificate Emission run asks for next. No tier step — PoP collections are flat. */
72
+ type CertificateEmissionNextStep = {
73
+ kind: "collection";
74
+ } | {
75
+ kind: "wait-collection";
76
+ } | {
77
+ kind: "upload";
78
+ files: string[];
79
+ } | {
80
+ kind: "certificate-metadata";
81
+ } | {
82
+ kind: "wallets";
83
+ } | {
84
+ kind: "batch";
85
+ index: number;
86
+ } | {
87
+ kind: "wait";
88
+ index: number;
89
+ } | {
90
+ kind: "done";
91
+ };
71
92
  interface WalletRequest {
72
93
  recipient: string;
73
94
  }
@@ -90,9 +111,14 @@ type TicketingRun = LaunchpadRunBase & {
90
111
  service: "ip-ticketing";
91
112
  next?: TicketingNextStep;
92
113
  };
93
- type LaunchpadRun = DataTokenizationRun | TicketingRun;
114
+ type CertificateEmissionRun = LaunchpadRunBase & {
115
+ service: "certificate-emission";
116
+ next?: CertificateEmissionNextStep;
117
+ };
118
+ type LaunchpadRun = DataTokenizationRun | TicketingRun | CertificateEmissionRun;
94
119
  declare const isDataTokenizationRun: (run: LaunchpadRun) => run is DataTokenizationRun;
95
120
  declare const isTicketingRun: (run: LaunchpadRun) => run is TicketingRun;
121
+ declare const isCertificateEmissionRun: (run: LaunchpadRun) => run is CertificateEmissionRun;
96
122
  interface ConfirmResult {
97
123
  pending: boolean;
98
124
  status: string;
@@ -136,6 +162,23 @@ declare function createLaunchpadRunsClient({ baseUrl, getToken, fetchImpl }: Lau
136
162
  confirmTier: (id: string) => Promise<ConfirmResult>;
137
163
  confirmBatch: (id: string, index: number) => Promise<ConfirmResult>;
138
164
  };
165
+ certificateEmission: {
166
+ uploadUrl: (id: string, name: string) => Promise<string>;
167
+ uploaded: (id: string, name: string, cid: string) => Promise<{
168
+ name: string;
169
+ uri: string;
170
+ }>;
171
+ metadata: (id: string, userAddress: string) => Promise<{
172
+ tokenUri: string;
173
+ }>;
174
+ resolveWallets: (id: string) => Promise<string[]>;
175
+ registerWallet: (id: string, request: WalletRequest) => Promise<{
176
+ recipient: string;
177
+ walletAddress: string;
178
+ }>;
179
+ confirmCollection: (id: string) => Promise<ConfirmResult>;
180
+ confirmBatch: (id: string, index: number) => Promise<ConfirmResult>;
181
+ };
139
182
  list: () => Promise<LaunchpadRun[]>;
140
183
  get: (id: string) => Promise<LaunchpadRun>;
141
184
  create: (service: string, spec: unknown) => Promise<LaunchpadRun>;
@@ -335,6 +378,28 @@ declare const SERVICES: {
335
378
  readonly licenseDefault: "CC BY-SA";
336
379
  };
337
380
  };
381
+ readonly "certificate-emission": {
382
+ readonly id: "certificate-emission";
383
+ readonly displayName: "Certificate Emission";
384
+ readonly description: "Issue a soulbound credential to a list of recipients in one run — everyone gets a wallet and their certificate.";
385
+ readonly standard: "ERC721";
386
+ readonly provenance: "MEDIALANE";
387
+ readonly onchain: {
388
+ readonly STARKNET: {
389
+ readonly factoryAddress: `0x${string}`;
390
+ readonly classHash: `0x${string}`;
391
+ };
392
+ };
393
+ readonly uiVariant: "pop";
394
+ readonly capabilities: ["mint", "airdrop"];
395
+ readonly events: [{
396
+ readonly name: "CollectionCreated";
397
+ readonly emittedBy: "factory";
398
+ }];
399
+ readonly metadataSchema: {
400
+ readonly licenseDefault: "CC BY-SA";
401
+ };
402
+ };
338
403
  readonly "drop-collection": {
339
404
  readonly id: "drop-collection";
340
405
  readonly displayName: "Collection Drop";
@@ -757,4 +822,4 @@ declare const IPFS_SAFE_CONTENT_TYPE_PREFIXES: readonly ["image/jpeg", "image/pn
757
822
  declare function resolveSafeImageContentType(contentType: string): string;
758
823
  declare const MAX_IPFS_GATEWAY_RESPONSE_BYTES: number;
759
824
 
760
- export { ACCOUNT_SESSION_TTL_SECONDS, ALLOWED_IMAGE_CONTENT_TYPES, type AssetAttribute, type AssetMetadata, type BackendMetadataConfig, type BackendProxyConfig, type BackendUploadResult, type BuildAssetMetadataInput, type CanonicalHash, type CappedBody, Chain, type ConfirmResult, DEFAULT_CURRENCY, type DataTokenizationRun, type FailoverFetchOptions, type FeeEnv, IDENTITY_TTL_SECONDS, IPFS_SAFE_CONTENT_TYPE_PREFIXES, type ImageProxyConfig, type LaunchpadRun, type LaunchpadRunsClient, type LaunchpadRunsClientOptions, MAX_IMAGE_PROXY_BYTES, MAX_IMAGE_REDIRECTS, MAX_IPFS_GATEWAY_RESPONSE_BYTES, type NextStep, POLICY_REFUSAL_CODES, RESERVED_TRAITS, type RemixPolicy, type RemixPolicyInput, ResolvedFeeConfig, type RpcProxyConfig, type RunQuote, type RunQuoteLine, RunRequestError, type RunStatus, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DATA_TOKENIZATION_721_CONTRACT, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_GENESIS_MINT_BR_CONTRACT, STARKNET_GENESIS_MINT_GLOBAL_CONTRACT, STARKNET_GENESIS_MINT_LAUNCH_CONTRACT, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, ServiceCapability, ServiceDefinition, type ServiceId, type SiwsIdentity, type SupportedToken, type SupportedTokenSymbol, type TicketingNextStep, type TicketingRun, type TokenSource, type WalletRequest, assetHref, buildAssetMetadata, chainFromSlug, chainSlug, coinHref, collectionHref, createBackendProxyHandler, createFailoverFetch, createImageProxyHandler, createLaunchpadRunsClient, createRpcProxyHandler, encodeU256, formatAmount, getBackendSignedUrl, getDerivativesTerm, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isDataTokenizationRun, isPolicyRefusal, isPrivateHost, isPrivateOrInsecureUrl, isSameOrigin, isServiceId, isTicketingRun, isTransientRpcError, isValidIpfsCidPath, issueAccountSessionToken, issueSiwsToken, listServices, normalizeAddress, normalizeHash, parseAmount, readBodyWithCap, resolveAppFeeConfig, resolveRemixPolicy, resolveSafeImageContentType, shortenAddress, stringifyBigInts, u256ToBigInt, uploadDirectoryToBackend, uploadFileToBackend, uploadJsonToBackend, validateUrl, verifyAccountSessionToken, verifySiwsToken };
825
+ export { ACCOUNT_SESSION_TTL_SECONDS, ALLOWED_IMAGE_CONTENT_TYPES, type AssetAttribute, type AssetMetadata, type BackendMetadataConfig, type BackendProxyConfig, type BackendUploadResult, type BuildAssetMetadataInput, type CanonicalHash, type CappedBody, type CertificateEmissionNextStep, type CertificateEmissionRun, Chain, type ConfirmResult, DEFAULT_CURRENCY, type DataTokenizationRun, type FailoverFetchOptions, type FeeEnv, IDENTITY_TTL_SECONDS, IPFS_SAFE_CONTENT_TYPE_PREFIXES, type ImageProxyConfig, type LaunchpadRun, type LaunchpadRunsClient, type LaunchpadRunsClientOptions, MAX_IMAGE_PROXY_BYTES, MAX_IMAGE_REDIRECTS, MAX_IPFS_GATEWAY_RESPONSE_BYTES, type NextStep, POLICY_REFUSAL_CODES, RESERVED_TRAITS, type RemixPolicy, type RemixPolicyInput, ResolvedFeeConfig, type RpcProxyConfig, type RunQuote, type RunQuoteLine, RunRequestError, type RunStatus, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DATA_TOKENIZATION_721_CONTRACT, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_GENESIS_MINT_BR_CONTRACT, STARKNET_GENESIS_MINT_GLOBAL_CONTRACT, STARKNET_GENESIS_MINT_LAUNCH_CONTRACT, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, ServiceCapability, ServiceDefinition, type ServiceId, type SiwsIdentity, type SupportedToken, type SupportedTokenSymbol, type TicketingNextStep, type TicketingRun, type TokenSource, type WalletRequest, assetHref, buildAssetMetadata, chainFromSlug, chainSlug, coinHref, collectionHref, createBackendProxyHandler, createFailoverFetch, createImageProxyHandler, createLaunchpadRunsClient, createRpcProxyHandler, encodeU256, formatAmount, getBackendSignedUrl, getDerivativesTerm, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isCertificateEmissionRun, isDataTokenizationRun, isPolicyRefusal, isPrivateHost, isPrivateOrInsecureUrl, isSameOrigin, isServiceId, isTicketingRun, isTransientRpcError, isValidIpfsCidPath, issueAccountSessionToken, issueSiwsToken, listServices, normalizeAddress, normalizeHash, parseAmount, readBodyWithCap, resolveAppFeeConfig, resolveRemixPolicy, resolveSafeImageContentType, shortenAddress, stringifyBigInts, u256ToBigInt, uploadDirectoryToBackend, uploadFileToBackend, uploadJsonToBackend, validateUrl, verifyAccountSessionToken, verifySiwsToken };
package/dist/index.d.ts CHANGED
@@ -68,6 +68,27 @@ type TicketingNextStep = {
68
68
  } | {
69
69
  kind: "done";
70
70
  };
71
+ /** What a paid Certificate Emission run asks for next. No tier step — PoP collections are flat. */
72
+ type CertificateEmissionNextStep = {
73
+ kind: "collection";
74
+ } | {
75
+ kind: "wait-collection";
76
+ } | {
77
+ kind: "upload";
78
+ files: string[];
79
+ } | {
80
+ kind: "certificate-metadata";
81
+ } | {
82
+ kind: "wallets";
83
+ } | {
84
+ kind: "batch";
85
+ index: number;
86
+ } | {
87
+ kind: "wait";
88
+ index: number;
89
+ } | {
90
+ kind: "done";
91
+ };
71
92
  interface WalletRequest {
72
93
  recipient: string;
73
94
  }
@@ -90,9 +111,14 @@ type TicketingRun = LaunchpadRunBase & {
90
111
  service: "ip-ticketing";
91
112
  next?: TicketingNextStep;
92
113
  };
93
- type LaunchpadRun = DataTokenizationRun | TicketingRun;
114
+ type CertificateEmissionRun = LaunchpadRunBase & {
115
+ service: "certificate-emission";
116
+ next?: CertificateEmissionNextStep;
117
+ };
118
+ type LaunchpadRun = DataTokenizationRun | TicketingRun | CertificateEmissionRun;
94
119
  declare const isDataTokenizationRun: (run: LaunchpadRun) => run is DataTokenizationRun;
95
120
  declare const isTicketingRun: (run: LaunchpadRun) => run is TicketingRun;
121
+ declare const isCertificateEmissionRun: (run: LaunchpadRun) => run is CertificateEmissionRun;
96
122
  interface ConfirmResult {
97
123
  pending: boolean;
98
124
  status: string;
@@ -136,6 +162,23 @@ declare function createLaunchpadRunsClient({ baseUrl, getToken, fetchImpl }: Lau
136
162
  confirmTier: (id: string) => Promise<ConfirmResult>;
137
163
  confirmBatch: (id: string, index: number) => Promise<ConfirmResult>;
138
164
  };
165
+ certificateEmission: {
166
+ uploadUrl: (id: string, name: string) => Promise<string>;
167
+ uploaded: (id: string, name: string, cid: string) => Promise<{
168
+ name: string;
169
+ uri: string;
170
+ }>;
171
+ metadata: (id: string, userAddress: string) => Promise<{
172
+ tokenUri: string;
173
+ }>;
174
+ resolveWallets: (id: string) => Promise<string[]>;
175
+ registerWallet: (id: string, request: WalletRequest) => Promise<{
176
+ recipient: string;
177
+ walletAddress: string;
178
+ }>;
179
+ confirmCollection: (id: string) => Promise<ConfirmResult>;
180
+ confirmBatch: (id: string, index: number) => Promise<ConfirmResult>;
181
+ };
139
182
  list: () => Promise<LaunchpadRun[]>;
140
183
  get: (id: string) => Promise<LaunchpadRun>;
141
184
  create: (service: string, spec: unknown) => Promise<LaunchpadRun>;
@@ -335,6 +378,28 @@ declare const SERVICES: {
335
378
  readonly licenseDefault: "CC BY-SA";
336
379
  };
337
380
  };
381
+ readonly "certificate-emission": {
382
+ readonly id: "certificate-emission";
383
+ readonly displayName: "Certificate Emission";
384
+ readonly description: "Issue a soulbound credential to a list of recipients in one run — everyone gets a wallet and their certificate.";
385
+ readonly standard: "ERC721";
386
+ readonly provenance: "MEDIALANE";
387
+ readonly onchain: {
388
+ readonly STARKNET: {
389
+ readonly factoryAddress: `0x${string}`;
390
+ readonly classHash: `0x${string}`;
391
+ };
392
+ };
393
+ readonly uiVariant: "pop";
394
+ readonly capabilities: ["mint", "airdrop"];
395
+ readonly events: [{
396
+ readonly name: "CollectionCreated";
397
+ readonly emittedBy: "factory";
398
+ }];
399
+ readonly metadataSchema: {
400
+ readonly licenseDefault: "CC BY-SA";
401
+ };
402
+ };
338
403
  readonly "drop-collection": {
339
404
  readonly id: "drop-collection";
340
405
  readonly displayName: "Collection Drop";
@@ -757,4 +822,4 @@ declare const IPFS_SAFE_CONTENT_TYPE_PREFIXES: readonly ["image/jpeg", "image/pn
757
822
  declare function resolveSafeImageContentType(contentType: string): string;
758
823
  declare const MAX_IPFS_GATEWAY_RESPONSE_BYTES: number;
759
824
 
760
- export { ACCOUNT_SESSION_TTL_SECONDS, ALLOWED_IMAGE_CONTENT_TYPES, type AssetAttribute, type AssetMetadata, type BackendMetadataConfig, type BackendProxyConfig, type BackendUploadResult, type BuildAssetMetadataInput, type CanonicalHash, type CappedBody, Chain, type ConfirmResult, DEFAULT_CURRENCY, type DataTokenizationRun, type FailoverFetchOptions, type FeeEnv, IDENTITY_TTL_SECONDS, IPFS_SAFE_CONTENT_TYPE_PREFIXES, type ImageProxyConfig, type LaunchpadRun, type LaunchpadRunsClient, type LaunchpadRunsClientOptions, MAX_IMAGE_PROXY_BYTES, MAX_IMAGE_REDIRECTS, MAX_IPFS_GATEWAY_RESPONSE_BYTES, type NextStep, POLICY_REFUSAL_CODES, RESERVED_TRAITS, type RemixPolicy, type RemixPolicyInput, ResolvedFeeConfig, type RpcProxyConfig, type RunQuote, type RunQuoteLine, RunRequestError, type RunStatus, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DATA_TOKENIZATION_721_CONTRACT, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_GENESIS_MINT_BR_CONTRACT, STARKNET_GENESIS_MINT_GLOBAL_CONTRACT, STARKNET_GENESIS_MINT_LAUNCH_CONTRACT, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, ServiceCapability, ServiceDefinition, type ServiceId, type SiwsIdentity, type SupportedToken, type SupportedTokenSymbol, type TicketingNextStep, type TicketingRun, type TokenSource, type WalletRequest, assetHref, buildAssetMetadata, chainFromSlug, chainSlug, coinHref, collectionHref, createBackendProxyHandler, createFailoverFetch, createImageProxyHandler, createLaunchpadRunsClient, createRpcProxyHandler, encodeU256, formatAmount, getBackendSignedUrl, getDerivativesTerm, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isDataTokenizationRun, isPolicyRefusal, isPrivateHost, isPrivateOrInsecureUrl, isSameOrigin, isServiceId, isTicketingRun, isTransientRpcError, isValidIpfsCidPath, issueAccountSessionToken, issueSiwsToken, listServices, normalizeAddress, normalizeHash, parseAmount, readBodyWithCap, resolveAppFeeConfig, resolveRemixPolicy, resolveSafeImageContentType, shortenAddress, stringifyBigInts, u256ToBigInt, uploadDirectoryToBackend, uploadFileToBackend, uploadJsonToBackend, validateUrl, verifyAccountSessionToken, verifySiwsToken };
825
+ export { ACCOUNT_SESSION_TTL_SECONDS, ALLOWED_IMAGE_CONTENT_TYPES, type AssetAttribute, type AssetMetadata, type BackendMetadataConfig, type BackendProxyConfig, type BackendUploadResult, type BuildAssetMetadataInput, type CanonicalHash, type CappedBody, type CertificateEmissionNextStep, type CertificateEmissionRun, Chain, type ConfirmResult, DEFAULT_CURRENCY, type DataTokenizationRun, type FailoverFetchOptions, type FeeEnv, IDENTITY_TTL_SECONDS, IPFS_SAFE_CONTENT_TYPE_PREFIXES, type ImageProxyConfig, type LaunchpadRun, type LaunchpadRunsClient, type LaunchpadRunsClientOptions, MAX_IMAGE_PROXY_BYTES, MAX_IMAGE_REDIRECTS, MAX_IPFS_GATEWAY_RESPONSE_BYTES, type NextStep, POLICY_REFUSAL_CODES, RESERVED_TRAITS, type RemixPolicy, type RemixPolicyInput, ResolvedFeeConfig, type RpcProxyConfig, type RunQuote, type RunQuoteLine, RunRequestError, type RunStatus, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DATA_TOKENIZATION_721_CONTRACT, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_GENESIS_MINT_BR_CONTRACT, STARKNET_GENESIS_MINT_GLOBAL_CONTRACT, STARKNET_GENESIS_MINT_LAUNCH_CONTRACT, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, ServiceCapability, ServiceDefinition, type ServiceId, type SiwsIdentity, type SupportedToken, type SupportedTokenSymbol, type TicketingNextStep, type TicketingRun, type TokenSource, type WalletRequest, assetHref, buildAssetMetadata, chainFromSlug, chainSlug, coinHref, collectionHref, createBackendProxyHandler, createFailoverFetch, createImageProxyHandler, createLaunchpadRunsClient, createRpcProxyHandler, encodeU256, formatAmount, getBackendSignedUrl, getDerivativesTerm, getListableTokens, getService, getServicesByCapability, getTokenByAddress, getTokenBySymbol, hasCapability, isCertificateEmissionRun, isDataTokenizationRun, isPolicyRefusal, isPrivateHost, isPrivateOrInsecureUrl, isSameOrigin, isServiceId, isTicketingRun, isTransientRpcError, isValidIpfsCidPath, issueAccountSessionToken, issueSiwsToken, listServices, normalizeAddress, normalizeHash, parseAmount, readBodyWithCap, resolveAppFeeConfig, resolveRemixPolicy, resolveSafeImageContentType, shortenAddress, stringifyBigInts, u256ToBigInt, uploadDirectoryToBackend, uploadFileToBackend, uploadJsonToBackend, validateUrl, verifyAccountSessionToken, verifySiwsToken };
package/dist/index.js CHANGED
@@ -1124,6 +1124,7 @@ var ApiClient = class {
1124
1124
  // src/api/launchpad-runs.ts
1125
1125
  var isDataTokenizationRun = (run) => run.service === "data-tokenization-erc721";
1126
1126
  var isTicketingRun = (run) => run.service === "ip-ticketing";
1127
+ var isCertificateEmissionRun = (run) => run.service === "certificate-emission";
1127
1128
  var RunRequestError = class extends Error {
1128
1129
  constructor(message, status, body) {
1129
1130
  super(message);
@@ -1170,6 +1171,15 @@ function createLaunchpadRunsClient({ baseUrl, getToken, fetchImpl = fetch }) {
1170
1171
  confirmTier: (id) => confirm(`${runTierBase(id)}/confirm`),
1171
1172
  confirmBatch: (id, index) => confirm(`${runBatchBase(id, index)}/confirm`)
1172
1173
  };
1174
+ const certificateEmission = {
1175
+ uploadUrl: async (id, name) => (await post(`${runBase(id)}/files/upload-url`, { name })).data.url,
1176
+ uploaded: async (id, name, cid) => (await post(`${runBase(id)}/files/uploaded`, { name, cid })).data,
1177
+ metadata: async (id, userAddress) => (await post(`${runBase(id)}/certificate-metadata`, { userAddress })).data,
1178
+ resolveWallets: async (id) => (await post(`${runBase(id)}/recipients/resolve`)).data.pending,
1179
+ registerWallet: async (id, request) => (await post(`${runBase(id)}/recipients`, request)).data,
1180
+ confirmCollection: (id) => confirm(`${runCollectionBase(id)}/confirm`),
1181
+ confirmBatch: (id, index) => confirm(`${runBatchBase(id, index)}/confirm`)
1182
+ };
1173
1183
  return {
1174
1184
  authorizedFetch,
1175
1185
  runBase,
@@ -1177,6 +1187,7 @@ function createLaunchpadRunsClient({ baseUrl, getToken, fetchImpl = fetch }) {
1177
1187
  runCollectionBase,
1178
1188
  runTierBase,
1179
1189
  ticketing,
1190
+ certificateEmission,
1180
1191
  list: async () => (await call(runsUrl)).data,
1181
1192
  get: async (id) => (await call(`${runBase(id)}`)).data,
1182
1193
  create: async (service, spec) => (await post(runsUrl, { service, spec })).data,
@@ -1394,6 +1405,25 @@ var SERVICES = {
1394
1405
  ],
1395
1406
  metadataSchema: { licenseDefault: "CC BY-SA" }
1396
1407
  },
1408
+ "certificate-emission": {
1409
+ id: "certificate-emission",
1410
+ displayName: "Certificate Emission",
1411
+ description: "Issue a soulbound credential to a list of recipients in one run \u2014 everyone gets a wallet and their certificate.",
1412
+ standard: "ERC721",
1413
+ provenance: "MEDIALANE",
1414
+ onchain: {
1415
+ STARKNET: {
1416
+ factoryAddress: SN2.popFactory,
1417
+ classHash: SN2.popCollectionClassHash
1418
+ }
1419
+ },
1420
+ uiVariant: "pop",
1421
+ capabilities: ["mint", "airdrop"],
1422
+ events: [
1423
+ { name: "CollectionCreated", emittedBy: "factory" }
1424
+ ],
1425
+ metadataSchema: { licenseDefault: "CC BY-SA" }
1426
+ },
1397
1427
  "drop-collection": {
1398
1428
  id: "drop-collection",
1399
1429
  displayName: "Collection Drop",
@@ -2294,6 +2324,6 @@ var UserFacingError = class extends Error {
2294
2324
  }
2295
2325
  };
2296
2326
 
2297
- export { ACCOUNT_SESSION_TTL_SECONDS, ALLOWED_IMAGE_CONTENT_TYPES, ApiClient, CHAINS, DEFAULT_CHAIN, DEFAULT_CURRENCY, FeeConfigSchema, IDENTITY_TTL_SECONDS, IPFS_SAFE_CONTENT_TYPE_PREFIXES, MAX_IMAGE_PROXY_BYTES, MAX_IMAGE_REDIRECTS, MAX_IPFS_GATEWAY_RESPONSE_BYTES, MedialaneApiError, OPEN_LICENSES, POLICY_REFUSAL_CODES, PasskeyCancelledError, RESERVED_TRAITS, RunRequestError, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DATA_TOKENIZATION_721_CONTRACT, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_GENESIS_MINT_BR_CONTRACT, STARKNET_GENESIS_MINT_GLOBAL_CONTRACT, STARKNET_GENESIS_MINT_LAUNCH_CONTRACT, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, UserFacingError, assetHref, buildAssetMetadata, chainFromSlug, chainSlug, coinHref, collectionHref, createBackendProxyHandler, createFailoverFetch, createImageProxyHandler, createLaunchpadRunsClient, createRpcProxyHandler, encodeU256, formatAmount, getBackendSignedUrl, getCoordinates, getDerivativesTerm, getListableTokens, getService, getServicesByCapability, getStarknetCoordinates, getTokenByAddress, getTokenBySymbol, hasCapability, isDataTokenizationRun, isPolicyRefusal, isPrivateHost, isPrivateOrInsecureUrl, isSameOrigin, isServiceId, isTicketingRun, isTransientRpcError, isValidIpfsCidPath, issueAccountSessionToken, issueSiwsToken, listServices, normalizeAddress, normalizeHash, parseAmount, readBodyWithCap, resolveAppFeeConfig, resolveConfig, resolveFeeConfig, resolveRemixPolicy, resolveSafeImageContentType, shortenAddress, stringifyBigInts, u256ToBigInt, uploadDirectoryToBackend, uploadFileToBackend, uploadJsonToBackend, validateUrl, verifyAccountSessionToken, verifySiwsToken };
2327
+ export { ACCOUNT_SESSION_TTL_SECONDS, ALLOWED_IMAGE_CONTENT_TYPES, ApiClient, CHAINS, DEFAULT_CHAIN, DEFAULT_CURRENCY, FeeConfigSchema, IDENTITY_TTL_SECONDS, IPFS_SAFE_CONTENT_TYPE_PREFIXES, MAX_IMAGE_PROXY_BYTES, MAX_IMAGE_REDIRECTS, MAX_IPFS_GATEWAY_RESPONSE_BYTES, MedialaneApiError, OPEN_LICENSES, POLICY_REFUSAL_CODES, PasskeyCancelledError, RESERVED_TRAITS, RunRequestError, STARKNET_COLLECTION_1155_CLASS_HASH, STARKNET_COLLECTION_1155_CONTRACT, STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH, STARKNET_COLLECTION_1155_START_BLOCK, STARKNET_COLLECTION_721_CONTRACT, STARKNET_COLLECTION_721_START_BLOCK, STARKNET_CREATOR_COIN_CLASS_HASH, STARKNET_CREATOR_COIN_EKUBO_LAUNCHER, STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH, STARKNET_CREATOR_COIN_FACTORY_CONTRACT, STARKNET_CREATOR_COIN_START_BLOCK, STARKNET_DATA_TOKENIZATION_721_CONTRACT, STARKNET_DROP_COLLECTION_CLASS_HASH, STARKNET_DROP_FACTORY_CONTRACT, STARKNET_EKUBO_CORE, STARKNET_GENESIS_MINT_BR_CONTRACT, STARKNET_GENESIS_MINT_GLOBAL_CONTRACT, STARKNET_GENESIS_MINT_LAUNCH_CONTRACT, STARKNET_IPCOLLECTION_CLASS_HASH, STARKNET_IPNFT_CLASS_HASH, STARKNET_IP_CLUB_COLLECTION_CLASS_HASH, STARKNET_IP_CLUB_FACTORY_CONTRACT, STARKNET_IP_SPONSORSHIP_CLASS_HASH, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_TICKETS_FACTORY_CONTRACT, STARKNET_IP_TICKET_COLLECTION_CLASS_HASH, STARKNET_MARKETPLACE_1155_CLASS_HASH, STARKNET_MARKETPLACE_1155_CONTRACT, STARKNET_MARKETPLACE_1155_START_BLOCK, STARKNET_MARKETPLACE_721_CLASS_HASH, STARKNET_MARKETPLACE_721_CONTRACT, STARKNET_MARKETPLACE_721_START_BLOCK, STARKNET_NFTCOMMENTS_CONTRACT, STARKNET_POP_COLLECTION_CLASS_HASH, STARKNET_POP_FACTORY_CONTRACT, SUPPORTED_TOKENS, SUPPORTED_URL_CHAINS, UserFacingError, assetHref, buildAssetMetadata, chainFromSlug, chainSlug, coinHref, collectionHref, createBackendProxyHandler, createFailoverFetch, createImageProxyHandler, createLaunchpadRunsClient, createRpcProxyHandler, encodeU256, formatAmount, getBackendSignedUrl, getCoordinates, getDerivativesTerm, getListableTokens, getService, getServicesByCapability, getStarknetCoordinates, getTokenByAddress, getTokenBySymbol, hasCapability, isCertificateEmissionRun, isDataTokenizationRun, isPolicyRefusal, isPrivateHost, isPrivateOrInsecureUrl, isSameOrigin, isServiceId, isTicketingRun, isTransientRpcError, isValidIpfsCidPath, issueAccountSessionToken, issueSiwsToken, listServices, normalizeAddress, normalizeHash, parseAmount, readBodyWithCap, resolveAppFeeConfig, resolveConfig, resolveFeeConfig, resolveRemixPolicy, resolveSafeImageContentType, shortenAddress, stringifyBigInts, u256ToBigInt, uploadDirectoryToBackend, uploadFileToBackend, uploadJsonToBackend, validateUrl, verifyAccountSessionToken, verifySiwsToken };
2298
2328
  //# sourceMappingURL=index.js.map
2299
2329
  //# sourceMappingURL=index.js.map