@medialane/sdk 0.134.0 → 0.135.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.js CHANGED
@@ -375,6 +375,11 @@ var ApiClient = class {
375
375
  getActiveOrdersForToken(contract, tokenId) {
376
376
  return this.get(`/v1/orders/token/${this.addr(contract)}/${tokenId}`);
377
377
  }
378
+ /** Offers others made on the address's assets. */
379
+ getReceivedOffers(address, opts = {}) {
380
+ const params = new URLSearchParams({ page: String(opts.page ?? 1), limit: String(opts.limit ?? 50) });
381
+ return this.get(`/v1/orders/received/${this.addr(address)}?${params}`);
382
+ }
378
383
  getOrdersByUser(address, page = 1, limit = 20) {
379
384
  return this.get(
380
385
  `/v1/orders/user/${this.addr(address)}?page=${page}&limit=${limit}`
@@ -542,6 +547,11 @@ var ApiClient = class {
542
547
  uploadMetadata(metadata) {
543
548
  return this.post("/v1/metadata/upload", metadata);
544
549
  }
550
+ /** Pins several JSON files as one IPFS directory, e.g. a drop's token metadata. */
551
+ async uploadMetadataDirectory(files) {
552
+ const res = await this.post("/v1/metadata/upload-directory", { files });
553
+ return res.data;
554
+ }
545
555
  resolveMetadata(uri) {
546
556
  const params = new URLSearchParams({ uri });
547
557
  return this.get(`/v1/metadata/resolve?${params.toString()}`);
@@ -873,7 +883,7 @@ var ApiClient = class {
873
883
  });
874
884
  }
875
885
  getPopCollections(opts = {}) {
876
- return this.getCollections(opts.page ?? 1, opts.limit ?? 20, void 0, opts.sort, "POP_PROTOCOL");
886
+ return this.getCollections(opts.page ?? 1, opts.limit ?? 20, void 0, opts.sort, "pop-protocol");
877
887
  }
878
888
  async getPopEligibility(collection, wallet) {
879
889
  const res = await this.get(
@@ -893,6 +903,7 @@ var ApiClient = class {
893
903
  if (opts.page) params.set("page", String(opts.page));
894
904
  if (opts.limit) params.set("limit", String(opts.limit));
895
905
  if (opts.service) params.set("service", opts.service);
906
+ if (opts.sort) params.set("sort", opts.sort);
896
907
  if (opts.chain) params.set("chain", opts.chain);
897
908
  const qs = params.toString();
898
909
  return this.get(`/v1/coins${qs ? `?${qs}` : ""}`);
@@ -923,7 +934,7 @@ var ApiClient = class {
923
934
  });
924
935
  }
925
936
  getDropCollections(opts = {}) {
926
- return this.getCollections(opts.page ?? 1, opts.limit ?? 20, void 0, opts.sort, "COLLECTION_DROP");
937
+ return this.getCollections(opts.page ?? 1, opts.limit ?? 20, void 0, opts.sort, "drop-collection");
927
938
  }
928
939
  async getDropMintStatus(collection, wallet) {
929
940
  const res = await this.get(
@@ -931,6 +942,123 @@ var ApiClient = class {
931
942
  );
932
943
  return res.data;
933
944
  }
945
+ async getDropInfo(contract) {
946
+ const res = await this.request(
947
+ `/v1/drop/${this.addr(contract)}/info`,
948
+ { method: "GET" },
949
+ { allow404: true }
950
+ );
951
+ return res?.data ?? null;
952
+ }
953
+ async getDropState(contract) {
954
+ const res = await this.get(`/v1/drop/${this.addr(contract)}/state`);
955
+ return res.data;
956
+ }
957
+ async getTicket(contract, tokenId) {
958
+ const res = await this.get(`/v1/tickets/${this.addr(contract)}/${tokenId}`);
959
+ return res.data;
960
+ }
961
+ async getTicketCount(contract) {
962
+ const res = await this.get(`/v1/tickets/${this.addr(contract)}/count`);
963
+ return res.data.count;
964
+ }
965
+ async getClubMembership(contract, tokenId) {
966
+ const res = await this.get(`/v1/club/${this.addr(contract)}/${tokenId}`);
967
+ return res.data;
968
+ }
969
+ async isClubMember(contract, tokenId, wallet) {
970
+ const res = await this.get(
971
+ `/v1/club/${this.addr(contract)}/${tokenId}/member/${this.addr(wallet)}`
972
+ );
973
+ return res.data.isMember;
974
+ }
975
+ async getIpNftTokenData(contract, tokenId) {
976
+ const res = await this.get(`/v1/ipnft/${this.addr(contract)}/${tokenId}`);
977
+ return res.data;
978
+ }
979
+ async getPlatformStats() {
980
+ const res = await this.get("/v1/stats");
981
+ return res.data;
982
+ }
983
+ getTokens(query = {}) {
984
+ const params = new URLSearchParams();
985
+ if (query.page !== void 0) params.set("page", String(query.page));
986
+ if (query.limit !== void 0) params.set("limit", String(query.limit));
987
+ if (query.sort) params.set("sort", query.sort);
988
+ if (query.ipType) params.set("ipType", query.ipType);
989
+ if (query.derivatives) params.set("derivatives", query.derivatives);
990
+ const qs = params.toString();
991
+ return this.get(`/v1/tokens${qs ? `?${qs}` : ""}`);
992
+ }
993
+ async isCreatorHidden(wallet) {
994
+ const res = await this.get(`/v1/creators/${this.addr(wallet)}/hidden`);
995
+ return res.isHidden;
996
+ }
997
+ getMyUsernameClaim(siwsToken) {
998
+ return this.request("/v1/username-claims/me", {
999
+ method: "GET",
1000
+ headers: this.bearer(siwsToken)
1001
+ });
1002
+ }
1003
+ checkUsernameAvailability(username) {
1004
+ return this.get(
1005
+ `/v1/username-claims/check/${encodeURIComponent(username)}`
1006
+ );
1007
+ }
1008
+ async submitUsernameClaim(username, siwsToken, notifyEmail) {
1009
+ const res = await this.request("/v1/username-claims", {
1010
+ method: "POST",
1011
+ headers: this.bearer(siwsToken),
1012
+ body: JSON.stringify({ username, ...notifyEmail ? { notifyEmail } : {} })
1013
+ });
1014
+ return res.claim;
1015
+ }
1016
+ async submitReport(report, siwsToken) {
1017
+ await this.request("/v1/reports", {
1018
+ method: "POST",
1019
+ headers: this.bearer(siwsToken),
1020
+ body: JSON.stringify(report)
1021
+ });
1022
+ }
1023
+ generateWallet(newWalletSiwsToken, siwsToken) {
1024
+ return this.request("/v1/users/me/generate-wallet", {
1025
+ method: "POST",
1026
+ headers: this.bearer(siwsToken),
1027
+ body: JSON.stringify({ newWalletSiwsToken })
1028
+ });
1029
+ }
1030
+ syncCoin(coinAddress, owner) {
1031
+ return this.post("/v1/coins/sync", { coinAddress, ...owner ? { owner } : {} });
1032
+ }
1033
+ registerCollection(contractAddress) {
1034
+ return this.post("/v1/collections/register", { contractAddress });
1035
+ }
1036
+ getSponsorshipOffers(query = {}) {
1037
+ const params = new URLSearchParams({ limit: String(query.limit ?? 50) });
1038
+ if (query.nftContract) params.set("nftContract", query.nftContract);
1039
+ if (query.author) params.set("author", query.author);
1040
+ if (query.owner) params.set("owner", query.owner);
1041
+ if (query.open !== void 0) params.set("open", String(query.open));
1042
+ return this.get(`/v1/sponsorship/offers?${params}`);
1043
+ }
1044
+ async getSponsorshipBids(offerId) {
1045
+ const res = await this.get(`/v1/sponsorship/offers/${encodeURIComponent(offerId)}/bids`);
1046
+ return res.data;
1047
+ }
1048
+ getSponsorshipProposals(query = {}) {
1049
+ const params = new URLSearchParams({ limit: String(query.limit ?? 50) });
1050
+ if (query.nftContract) params.set("nftContract", query.nftContract);
1051
+ if (query.proposer) params.set("proposer", query.proposer);
1052
+ if (query.owner) params.set("owner", query.owner);
1053
+ if (query.open !== void 0) params.set("open", String(query.open));
1054
+ return this.get(`/v1/sponsorship/proposals?${params}`);
1055
+ }
1056
+ getSponsorshipLicenses(query = {}) {
1057
+ const params = new URLSearchParams({ limit: String(query.limit ?? 50) });
1058
+ if (query.holder) params.set("holder", query.holder);
1059
+ if (query.author) params.set("author", query.author);
1060
+ return this.get(`/v1/sponsorship/licenses?${params}`);
1061
+ }
934
1062
  async getRewards(address) {
935
1063
  const res = await this.get(`/v1/rewards/${this.addr(address)}`);
936
1064
  return res.data;
@@ -955,6 +1083,85 @@ var ApiClient = class {
955
1083
  }
956
1084
  };
957
1085
 
1086
+ // src/api/launchpad-runs.ts
1087
+ var isDataTokenizationRun = (run) => run.service === "data-tokenization-erc721";
1088
+ var isTicketingRun = (run) => run.service === "ip-ticketing";
1089
+ var RunRequestError = class extends Error {
1090
+ constructor(message, status, body) {
1091
+ super(message);
1092
+ this.status = status;
1093
+ this.body = body;
1094
+ }
1095
+ };
1096
+ function createLaunchpadRunsClient({ baseUrl, getToken, fetchImpl = fetch }) {
1097
+ const runsUrl = `${baseUrl.replace(/\/$/, "")}/v1/portal/runs`;
1098
+ const runBase = (id) => `${runsUrl}/${id}`;
1099
+ const runBatchBase = (id, index) => `${runBase(id)}/batches/${index}`;
1100
+ const runCollectionBase = (id) => `${runBase(id)}/collection`;
1101
+ const runTierBase = (id) => `${runBase(id)}/tier`;
1102
+ const authorizedFetch = async (input, init) => {
1103
+ const token = await getToken();
1104
+ const headers2 = new Headers(init?.headers);
1105
+ if (token) headers2.set("authorization", `Bearer ${token}`);
1106
+ return fetchImpl(input, { ...init, headers: headers2, cache: "no-store" });
1107
+ };
1108
+ async function call(url, init) {
1109
+ const res = await authorizedFetch(url, {
1110
+ ...init,
1111
+ headers: { "content-type": "application/json", ...init?.headers }
1112
+ });
1113
+ const body = await res.json().catch(() => ({}));
1114
+ if (!res.ok) {
1115
+ throw new RunRequestError(String(body.error ?? "Something went wrong with this run"), res.status, body);
1116
+ }
1117
+ return { status: res.status, data: body.data };
1118
+ }
1119
+ const post = (url, body) => call(url, { method: "POST", body: body === void 0 ? void 0 : JSON.stringify(body) });
1120
+ const confirm = async (url) => {
1121
+ const { status, data } = await post(url);
1122
+ return { pending: status === 202, status: data.status, completed: data.completed };
1123
+ };
1124
+ const ticketing = {
1125
+ uploadUrl: async (id, name) => (await post(`${runBase(id)}/files/upload-url`, { name })).data.url,
1126
+ uploaded: async (id, name, cid) => (await post(`${runBase(id)}/files/uploaded`, { name, cid })).data,
1127
+ metadata: async (id, userAddress) => (await post(`${runBase(id)}/metadata`, { userAddress })).data,
1128
+ /** Guests who still need a wallet deployed; the ones who already have one are recorded on the run. */
1129
+ resolveWallets: async (id) => (await post(`${runBase(id)}/wallets/resolve`)).data.pending,
1130
+ registerWallet: async (id, request) => (await post(`${runBase(id)}/wallets`, request)).data,
1131
+ confirmCollection: (id) => confirm(`${runCollectionBase(id)}/confirm`),
1132
+ confirmTier: (id) => confirm(`${runTierBase(id)}/confirm`),
1133
+ confirmBatch: (id, index) => confirm(`${runBatchBase(id, index)}/confirm`)
1134
+ };
1135
+ return {
1136
+ authorizedFetch,
1137
+ runBase,
1138
+ runBatchBase,
1139
+ runCollectionBase,
1140
+ runTierBase,
1141
+ ticketing,
1142
+ list: async () => (await call(runsUrl)).data,
1143
+ get: async (id) => (await call(`${runBase(id)}`)).data,
1144
+ create: async (service, spec) => (await post(runsUrl, { service, spec })).data,
1145
+ update: async (id, spec) => (await call(`${runBase(id)}`, { method: "PATCH", body: JSON.stringify({ spec }) })).data,
1146
+ cancel: async (id) => (await post(`${runBase(id)}/cancel`)).data,
1147
+ checkoutWithCredits: async (id) => (await post(`${runBase(id)}/checkout`, { method: "credits" })).data,
1148
+ checkoutFromWallet: async (id, intentId) => (await post(`${runBase(id)}/checkout`, { method: "wallet", intentId })).data,
1149
+ uploadUrl: async (id, name) => (await post(`${runBase(id)}/files/upload-url`, { name })).data.url,
1150
+ uploaded: async (id, name, cid) => (await post(`${runBase(id)}/files/uploaded`, { name, cid })).data,
1151
+ itemMetadata: async (id, index, userAddress) => (await post(`${runBase(id)}/items/${index}/metadata`, { userAddress })).data,
1152
+ confirmBatch: async (id, index) => {
1153
+ const { status, data } = await post(
1154
+ `${runBase(id)}/batches/${index}/confirm`
1155
+ );
1156
+ return { pending: status === 202, status: data.status, completed: data.completed };
1157
+ },
1158
+ confirmCollection: async (id) => {
1159
+ const { status, data } = await post(`${runBase(id)}/collection/confirm`);
1160
+ return { pending: status === 202, status: data.status };
1161
+ }
1162
+ };
1163
+ }
1164
+
958
1165
  // src/constants.ts
959
1166
  var SN = getCoordinates("STARKNET");
960
1167
  var STARKNET_MARKETPLACE_721_CONTRACT = SN.marketplace721;
@@ -2049,6 +2256,6 @@ var UserFacingError = class extends Error {
2049
2256
  }
2050
2257
  };
2051
2258
 
2052
- 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, 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, createRpcProxyHandler, encodeU256, formatAmount, getBackendSignedUrl, getCoordinates, getDerivativesTerm, getListableTokens, getService, getServicesByCapability, getStarknetCoordinates, getTokenByAddress, getTokenBySymbol, hasCapability, isPolicyRefusal, isPrivateHost, isPrivateOrInsecureUrl, isSameOrigin, isServiceId, isTransientRpcError, isValidIpfsCidPath, issueAccountSessionToken, issueSiwsToken, listServices, normalizeAddress, normalizeHash, parseAmount, readBodyWithCap, resolveAppFeeConfig, resolveConfig, resolveFeeConfig, resolveRemixPolicy, resolveSafeImageContentType, shortenAddress, stringifyBigInts, u256ToBigInt, uploadDirectoryToBackend, uploadFileToBackend, uploadJsonToBackend, validateUrl, verifyAccountSessionToken, verifySiwsToken };
2259
+ 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 };
2053
2260
  //# sourceMappingURL=index.js.map
2054
2261
  //# sourceMappingURL=index.js.map