From 663615da21bca9ef17672b3531019ee40e6bae9f Mon Sep 17 00:00:00 2001 From: david-littlefarmer <17728576+david-littlefarmer@users.noreply.github.com> Date: Thu, 17 Apr 2025 09:49:16 +0000 Subject: [PATCH 1/4] [AUTOMATED] Update: proto/clients/marketplace.gen.ts --- packages/marketplace/src/marketplace.gen.ts | 2436 +++++++++++++++++++ 1 file changed, 2436 insertions(+) create mode 100644 packages/marketplace/src/marketplace.gen.ts diff --git a/packages/marketplace/src/marketplace.gen.ts b/packages/marketplace/src/marketplace.gen.ts new file mode 100644 index 000000000..5daf8938e --- /dev/null +++ b/packages/marketplace/src/marketplace.gen.ts @@ -0,0 +1,2436 @@ +/* eslint-disable */ +// marketplace-api 27c5a642f4eb523c04af2f1a45e4a2ab1f370fcd +// -- +// Code generated by webrpc-gen@v0.25.1 with typescript generator. DO NOT EDIT. +// +// webrpc-gen -schema=marketplace.ridl -target=typescript -client -out=./clients/marketplace.gen.ts + +export const WebrpcHeader = 'Webrpc' + +export const WebrpcHeaderValue = + 'webrpc@v0.25.1;gen-typescript@v0.17.0;marketplace-api@v0.0.0-27c5a642f4eb523c04af2f1a45e4a2ab1f370fcd' + +// WebRPC description and code-gen version +export const WebRPCVersion = 'v1' + +// Schema version of your RIDL schema +export const WebRPCSchemaVersion = '' + +// Schema hash generated from your RIDL schema +export const WebRPCSchemaHash = '27c5a642f4eb523c04af2f1a45e4a2ab1f370fcd' + +type WebrpcGenVersions = { + webrpcGenVersion: string + codeGenName: string + codeGenVersion: string + schemaName: string + schemaVersion: string +} + +export function VersionFromHeader(headers: Headers): WebrpcGenVersions { + const headerValue = headers.get(WebrpcHeader) + if (!headerValue) { + return { + webrpcGenVersion: '', + codeGenName: '', + codeGenVersion: '', + schemaName: '', + schemaVersion: '' + } + } + + return parseWebrpcGenVersions(headerValue) +} + +function parseWebrpcGenVersions(header: string): WebrpcGenVersions { + const versions = header.split(';') + if (versions.length < 3) { + return { + webrpcGenVersion: '', + codeGenName: '', + codeGenVersion: '', + schemaName: '', + schemaVersion: '' + } + } + + const [_, webrpcGenVersion] = versions[0]!.split('@') + const [codeGenName, codeGenVersion] = versions[1]!.split('@') + const [schemaName, schemaVersion] = versions[2]!.split('@') + + return { + webrpcGenVersion: webrpcGenVersion ?? '', + codeGenName: codeGenName ?? '', + codeGenVersion: codeGenVersion ?? '', + schemaName: schemaName ?? '', + schemaVersion: schemaVersion ?? '' + } +} + +// +// Types +// + +export interface TokenMetadata { + tokenId: string + name: string + description?: string + image?: string + video?: string + audio?: string + properties?: { [key: string]: any } + attributes: Array<{ [key: string]: any }> + image_data?: string + external_url?: string + background_color?: string + animation_url?: string + decimals?: number + updatedAt?: string + assets?: Array +} + +export interface Asset { + id: number + collectionId: number + tokenId: string + url?: string + metadataField: string + name?: string + filesize?: number + mimeType?: string + width?: number + height?: number + updatedAt?: string +} + +export enum SortOrder { + DESC = 'DESC', + ASC = 'ASC' +} + +export enum PropertyType { + INT = 'INT', + STRING = 'STRING', + ARRAY = 'ARRAY', + GENERIC = 'GENERIC' +} + +export enum MarketplaceKind { + unknown = 'unknown', + sequence_marketplace_v1 = 'sequence_marketplace_v1', + sequence_marketplace_v2 = 'sequence_marketplace_v2', + blur = 'blur', + zerox = 'zerox', + opensea = 'opensea', + looks_rare = 'looks_rare', + x2y2 = 'x2y2', + alienswap = 'alienswap', + payment_processor = 'payment_processor', + mintify = 'mintify', + magic_eden = 'magic_eden' +} + +export enum OrderbookKind { + unknown = 'unknown', + sequence_marketplace_v1 = 'sequence_marketplace_v1', + sequence_marketplace_v2 = 'sequence_marketplace_v2', + blur = 'blur', + opensea = 'opensea', + looks_rare = 'looks_rare', + reservoir = 'reservoir', + x2y2 = 'x2y2' +} + +export enum SourceKind { + unknown = 'unknown', + external = 'external', + sequence_marketplace_v1 = 'sequence_marketplace_v1', + sequence_marketplace_v2 = 'sequence_marketplace_v2' +} + +export enum OrderSide { + unknown = 'unknown', + listing = 'listing', + offer = 'offer' +} + +export enum OrderStatus { + unknown = 'unknown', + active = 'active', + inactive = 'inactive', + expired = 'expired', + cancelled = 'cancelled', + filled = 'filled', + decimals_missing = 'decimals_missing' +} + +export enum ContractType { + UNKNOWN = 'UNKNOWN', + ERC20 = 'ERC20', + ERC721 = 'ERC721', + ERC1155 = 'ERC1155' +} + +export enum CollectionPriority { + unknown = 'unknown', + low = 'low', + normal = 'normal', + high = 'high' +} + +export enum CollectionStatus { + unknown = 'unknown', + created = 'created', + syncing_contract_metadata = 'syncing_contract_metadata', + synced_contract_metadata = 'synced_contract_metadata', + syncing_metadata = 'syncing_metadata', + synced_metadata = 'synced_metadata', + syncing_tokens = 'syncing_tokens', + synced_tokens = 'synced_tokens', + syncing_orders = 'syncing_orders', + active = 'active', + failed = 'failed', + inactive = 'inactive', + incompatible_type = 'incompatible_type' +} + +export enum ProjectStatus { + unknown = 'unknown', + active = 'active', + inactive = 'inactive' +} + +export enum CollectibleStatus { + unknown = 'unknown', + active = 'active', + inactive = 'inactive' +} + +export enum CurrencyStatus { + unknown = 'unknown', + created = 'created', + syncing_metadata = 'syncing_metadata', + active = 'active', + failed = 'failed' +} + +export enum WalletKind { + unknown = 'unknown', + sequence = 'sequence' +} + +export enum StepType { + unknown = 'unknown', + tokenApproval = 'tokenApproval', + buy = 'buy', + sell = 'sell', + createListing = 'createListing', + createOffer = 'createOffer', + signEIP712 = 'signEIP712', + signEIP191 = 'signEIP191', + cancel = 'cancel' +} + +export enum TransactionCrypto { + none = 'none', + partially = 'partially', + all = 'all' +} + +export enum TransactionNFTCheckoutProvider { + unknown = 'unknown', + sardine = 'sardine', + transak = 'transak' +} + +export enum TransactionOnRampProvider { + unknown = 'unknown', + sardine = 'sardine', + transak = 'transak' +} + +export enum TransactionSwapProvider { + unknown = 'unknown', + zerox = 'zerox' +} + +export enum ExecuteType { + unknown = 'unknown', + order = 'order' +} + +export enum ActivityAction { + unknown = 'unknown', + listing = 'listing', + offer = 'offer', + mint = 'mint', + sale = 'sale', + listingCancel = 'listingCancel', + offerCancel = 'offerCancel', + transfer = 'transfer' +} + +export interface Page { + page: number + pageSize: number + more?: boolean + sort?: Array +} + +export interface SortBy { + column: string + order: SortOrder +} + +export interface Filter { + text?: string + properties?: Array +} + +export interface PropertyFilter { + name: string + type: PropertyType + min?: number + max?: number + values?: Array +} + +export interface CollectiblesFilter { + includeEmpty: boolean + searchText?: string + properties?: Array + marketplaces?: Array + inAccounts?: Array + notInAccounts?: Array + ordersCreatedBy?: Array + ordersNotCreatedBy?: Array + inCurrencyAddresses?: Array + notInCurrencyAddresses?: Array +} + +export interface Order { + orderId: string + marketplace: MarketplaceKind + side: OrderSide + status: OrderStatus + chainId: number + originName: string + collectionContractAddress: string + tokenId?: string + createdBy: string + priceAmount: string + priceAmountFormatted: string + priceAmountNet: string + priceAmountNetFormatted: string + priceCurrencyAddress: string + priceDecimals: number + priceUSD: number + priceUSDFormatted: string + quantityInitial: string + quantityInitialFormatted: string + quantityRemaining: string + quantityRemainingFormatted: string + quantityAvailable: string + quantityAvailableFormatted: string + quantityDecimals: number + feeBps: number + feeBreakdown: Array + validFrom: string + validUntil: string + blockNumber: number + orderCreatedAt?: string + orderUpdatedAt?: string + createdAt: string + updatedAt: string + deletedAt?: string +} + +export interface FeeBreakdown { + kind: string + recipientAddress: string + bps: number +} + +export interface CollectibleOrder { + metadata: TokenMetadata + order?: Order + listing?: Order + offer?: Order +} + +export interface OrderFilter { + createdBy?: Array + marketplace?: Array + currencies?: Array +} + +export interface Collection { + status: CollectionStatus + chainId: number + contractAddress: string + contractType: ContractType + priority: CollectionPriority + tokenQuantityDecimals: number + config: CollectionConfig + createdAt: string + updatedAt: string + deletedAt?: string +} + +export interface CollectionConfig { + lastSynced: { [key: string]: CollectionLastSynced } + collectiblesSynced: string + activitiesSynced: string + activitiesSyncedContinuity: string +} + +export interface CollectionLastSynced { + allOrders: string + newOrders: string +} + +export interface Project { + projectId: number + chainId: number + contractAddress: string + status: ProjectStatus + createdAt: string + updatedAt: string + deletedAt?: string +} + +export interface Collectible { + chainId: number + contractAddress: string + status: CollectibleStatus + tokenId: string + decimals: number + createdAt: string + updatedAt: string + deletedAt?: string +} + +export interface Currency { + chainId: number + contractAddress: string + status: CurrencyStatus + name: string + symbol: string + decimals: number + imageUrl: string + exchangeRate: number + defaultChainCurrency: boolean + nativeCurrency: boolean + createdAt: string + updatedAt: string + deletedAt?: string +} + +export interface OrderData { + orderId: string + quantity: string + tokenId?: string +} + +export interface AdditionalFee { + amount: string + receiver: string +} + +export interface Step { + id: StepType + data: string + to: string + value: string + price: string + signature?: Signature + post?: PostRequest + executeType?: ExecuteType +} + +export interface PostRequest { + endpoint: string + method: string + body: any +} + +export interface CreateReq { + tokenId: string + quantity: string + expiry: string + currencyAddress: string + pricePerToken: string +} + +export interface GetOrdersInput { + contractAddress: string + orderId: string + marketplace: MarketplaceKind +} + +export interface Signature { + domain: Domain + types: any + primaryType: string + value: any +} + +export interface Domain { + name: string + version: string + chainId: number + verifyingContract: string +} + +export interface CheckoutOptionsMarketplaceOrder { + contractAddress: string + orderId: string + marketplace: MarketplaceKind +} + +export interface CheckoutOptionsItem { + tokenId: string + quantity: string +} + +export interface CheckoutOptions { + crypto: TransactionCrypto + swap: Array + nftCheckout: Array + onRamp: Array +} + +export interface Activity { + chainId: number + contractAddress: string + tokenId: string + action: ActivityAction + txHash: string + from: string + to?: string + quantity: string + quantityDecimals: number + priceAmount?: string + priceAmountFormatted?: string + priceCurrencyAddress?: string + priceDecimals?: number + activityCreatedAt: string + uniqueHash: string + createdAt: string + updatedAt: string + deletedAt?: string +} + +export interface Admin { + createCollection(args: CreateCollectionArgs, headers?: object, signal?: AbortSignal): Promise + getCollection(args: GetCollectionArgs, headers?: object, signal?: AbortSignal): Promise + updateCollection(args: UpdateCollectionArgs, headers?: object, signal?: AbortSignal): Promise + listCollections(args: ListCollectionsArgs, headers?: object, signal?: AbortSignal): Promise + deleteCollection(args: DeleteCollectionArgs, headers?: object, signal?: AbortSignal): Promise + /** + * determine what should happen here + */ + syncCollection(args: SyncCollectionArgs, headers?: object, signal?: AbortSignal): Promise + createCurrency(args: CreateCurrencyArgs, headers?: object, signal?: AbortSignal): Promise + createCurrencies(args: CreateCurrenciesArgs, headers?: object, signal?: AbortSignal): Promise + updateCurrency(args: UpdateCurrencyArgs, headers?: object, signal?: AbortSignal): Promise + listCurrencies(headers?: object, signal?: AbortSignal): Promise + deleteCurrency(args: DeleteCurrencyArgs, headers?: object, signal?: AbortSignal): Promise +} + +export interface CreateCollectionArgs { + projectId: number + contractAddress: string +} + +export interface CreateCollectionReturn { + collection: Collection +} +export interface GetCollectionArgs { + projectId: number + contractAddress: string +} + +export interface GetCollectionReturn { + collection: Collection +} +export interface UpdateCollectionArgs { + collection: Collection +} + +export interface UpdateCollectionReturn { + collection: Collection +} +export interface ListCollectionsArgs { + projectId: number + page?: Page +} + +export interface ListCollectionsReturn { + collections: Array + page?: Page +} +export interface DeleteCollectionArgs { + projectId: number + contractAddress: string +} + +export interface DeleteCollectionReturn { + collection: Collection +} +export interface SyncCollectionArgs { + projectId: number + contractAddress: string +} + +export interface SyncCollectionReturn { + collection: Collection +} +export interface CreateCurrencyArgs { + currency: Currency +} + +export interface CreateCurrencyReturn { + currency: Currency +} +export interface CreateCurrenciesArgs { + currencies: Array +} + +export interface CreateCurrenciesReturn { + currency: { [key: string]: Currency } +} +export interface UpdateCurrencyArgs { + currency: Currency +} + +export interface UpdateCurrencyReturn { + currency: Currency +} +export interface ListCurrenciesArgs {} + +export interface ListCurrenciesReturn { + currencies: Array +} +export interface DeleteCurrencyArgs { + chainId: number + contractAddress: string +} + +export interface DeleteCurrencyReturn { + currency: Currency +} + +export interface Marketplace { + listCurrencies(headers?: object, signal?: AbortSignal): Promise + getCollectionDetail(args: GetCollectionDetailArgs, headers?: object, signal?: AbortSignal): Promise + getCollectible(args: GetCollectibleArgs, headers?: object, signal?: AbortSignal): Promise + getLowestPriceOfferForCollectible( + args: GetLowestPriceOfferForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + getHighestPriceOfferForCollectible( + args: GetHighestPriceOfferForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + getLowestPriceListingForCollectible( + args: GetLowestPriceListingForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + getHighestPriceListingForCollectible( + args: GetHighestPriceListingForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + listListingsForCollectible( + args: ListListingsForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + listOffersForCollectible( + args: ListOffersForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + getCountOfListingsForCollectible( + args: GetCountOfListingsForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + getCountOfOffersForCollectible( + args: GetCountOfOffersForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * @deprecated Please use GetLowestPriceOfferForCollectible instead. + */ + getCollectibleLowestOffer( + args: GetCollectibleLowestOfferArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * @deprecated Please use GetHighestPriceOfferForCollectible instead. + */ + getCollectibleHighestOffer( + args: GetCollectibleHighestOfferArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * @deprecated Please use GetLowestPriceListingForCollectible instead. + */ + getCollectibleLowestListing( + args: GetCollectibleLowestListingArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * @deprecated Please use GetHighestPriceListingForCollectible instead. + */ + getCollectibleHighestListing( + args: GetCollectibleHighestListingArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * @deprecated Please use ListListingsForCollectible instead. + */ + listCollectibleListings( + args: ListCollectibleListingsArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * @deprecated Please use ListOffersForCollectible instead. + */ + listCollectibleOffers( + args: ListCollectibleOffersArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * checkout process + */ + generateBuyTransaction( + args: GenerateBuyTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise + generateSellTransaction( + args: GenerateSellTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise + generateListingTransaction( + args: GenerateListingTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise + generateOfferTransaction( + args: GenerateOfferTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise + generateCancelTransaction( + args: GenerateCancelTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise + /** + * only used in a case of external transactions ( when we create off-chain transactions ) for instance opensea market + */ + execute(args: ExecuteArgs, headers?: object, signal?: AbortSignal): Promise + /** + * list of collectibles with best order for each collectible, by default this only returns collectibles with an order + */ + listCollectibles(args: ListCollectiblesArgs, headers?: object, signal?: AbortSignal): Promise + getCountOfAllCollectibles( + args: GetCountOfAllCollectiblesArgs, + headers?: object, + signal?: AbortSignal + ): Promise + getCountOfFilteredCollectibles( + args: GetCountOfFilteredCollectiblesArgs, + headers?: object, + signal?: AbortSignal + ): Promise + getFloorOrder(args: GetFloorOrderArgs, headers?: object, signal?: AbortSignal): Promise + listCollectionActivities( + args: ListCollectionActivitiesArgs, + headers?: object, + signal?: AbortSignal + ): Promise + listCollectibleActivities( + args: ListCollectibleActivitiesArgs, + headers?: object, + signal?: AbortSignal + ): Promise + listCollectiblesWithLowestListing( + args: ListCollectiblesWithLowestListingArgs, + headers?: object, + signal?: AbortSignal + ): Promise + listCollectiblesWithHighestOffer( + args: ListCollectiblesWithHighestOfferArgs, + headers?: object, + signal?: AbortSignal + ): Promise + syncOrder(args: SyncOrderArgs, headers?: object, signal?: AbortSignal): Promise + syncOrders(args: SyncOrdersArgs, headers?: object, signal?: AbortSignal): Promise + getOrders(args: GetOrdersArgs, headers?: object, signal?: AbortSignal): Promise + checkoutOptionsMarketplace( + args: CheckoutOptionsMarketplaceArgs, + headers?: object, + signal?: AbortSignal + ): Promise + checkoutOptionsSalesContract( + args: CheckoutOptionsSalesContractArgs, + headers?: object, + signal?: AbortSignal + ): Promise +} + +export interface ListCurrenciesArgs {} + +export interface ListCurrenciesReturn { + currencies: Array +} +export interface GetCollectionDetailArgs { + contractAddress: string +} + +export interface GetCollectionDetailReturn { + collection: Collection +} +export interface GetCollectibleArgs { + contractAddress: string + tokenId: string +} + +export interface GetCollectibleReturn { + metadata: TokenMetadata +} +export interface GetLowestPriceOfferForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetLowestPriceOfferForCollectibleReturn { + order: Order +} +export interface GetHighestPriceOfferForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetHighestPriceOfferForCollectibleReturn { + order: Order +} +export interface GetLowestPriceListingForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetLowestPriceListingForCollectibleReturn { + order: Order +} +export interface GetHighestPriceListingForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetHighestPriceListingForCollectibleReturn { + order: Order +} +export interface ListListingsForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter + page?: Page +} + +export interface ListListingsForCollectibleReturn { + listings: Array + page?: Page +} +export interface ListOffersForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter + page?: Page +} + +export interface ListOffersForCollectibleReturn { + offers: Array + page?: Page +} +export interface GetCountOfListingsForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetCountOfListingsForCollectibleReturn { + count: number +} +export interface GetCountOfOffersForCollectibleArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetCountOfOffersForCollectibleReturn { + count: number +} +export interface GetCollectibleLowestOfferArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetCollectibleLowestOfferReturn { + order?: Order +} +export interface GetCollectibleHighestOfferArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetCollectibleHighestOfferReturn { + order?: Order +} +export interface GetCollectibleLowestListingArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetCollectibleLowestListingReturn { + order?: Order +} +export interface GetCollectibleHighestListingArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter +} + +export interface GetCollectibleHighestListingReturn { + order?: Order +} +export interface ListCollectibleListingsArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter + page?: Page +} + +export interface ListCollectibleListingsReturn { + listings: Array + page?: Page +} +export interface ListCollectibleOffersArgs { + contractAddress: string + tokenId: string + filter?: OrderFilter + page?: Page +} + +export interface ListCollectibleOffersReturn { + offers: Array + page?: Page +} +export interface GenerateBuyTransactionArgs { + collectionAddress: string + buyer: string + marketplace: MarketplaceKind + ordersData: Array + additionalFees: Array + walletType?: WalletKind +} + +export interface GenerateBuyTransactionReturn { + steps: Array +} +export interface GenerateSellTransactionArgs { + collectionAddress: string + seller: string + marketplace: MarketplaceKind + ordersData: Array + additionalFees: Array + walletType?: WalletKind +} + +export interface GenerateSellTransactionReturn { + steps: Array +} +export interface GenerateListingTransactionArgs { + collectionAddress: string + owner: string + contractType: ContractType + orderbook: OrderbookKind + listing: CreateReq + walletType?: WalletKind +} + +export interface GenerateListingTransactionReturn { + steps: Array +} +export interface GenerateOfferTransactionArgs { + collectionAddress: string + maker: string + contractType: ContractType + orderbook: OrderbookKind + offer: CreateReq + walletType?: WalletKind +} + +export interface GenerateOfferTransactionReturn { + steps: Array +} +export interface GenerateCancelTransactionArgs { + collectionAddress: string + maker: string + marketplace: MarketplaceKind + orderId: string +} + +export interface GenerateCancelTransactionReturn { + steps: Array +} +export interface ExecuteArgs { + signature: string + method: string + endpoint: string + executeType: ExecuteType + body: any +} + +export interface ExecuteReturn { + orderId: string +} +export interface ListCollectiblesArgs { + side: OrderSide + contractAddress: string + filter?: CollectiblesFilter + page?: Page +} + +export interface ListCollectiblesReturn { + collectibles: Array + page?: Page +} +export interface GetCountOfAllCollectiblesArgs { + contractAddress: string +} + +export interface GetCountOfAllCollectiblesReturn { + count: number +} +export interface GetCountOfFilteredCollectiblesArgs { + side: OrderSide + contractAddress: string + filter?: CollectiblesFilter +} + +export interface GetCountOfFilteredCollectiblesReturn { + count: number +} +export interface GetFloorOrderArgs { + contractAddress: string + filter?: CollectiblesFilter +} + +export interface GetFloorOrderReturn { + collectible: CollectibleOrder +} +export interface ListCollectionActivitiesArgs { + contractAddress: string + page?: Page +} + +export interface ListCollectionActivitiesReturn { + activities: Array + page?: Page +} +export interface ListCollectibleActivitiesArgs { + contractAddress: string + tokenId: string + page?: Page +} + +export interface ListCollectibleActivitiesReturn { + activities: Array + page?: Page +} +export interface ListCollectiblesWithLowestListingArgs { + contractAddress: string + filter?: CollectiblesFilter + page?: Page +} + +export interface ListCollectiblesWithLowestListingReturn { + collectibles: Array + page?: Page +} +export interface ListCollectiblesWithHighestOfferArgs { + contractAddress: string + filter?: CollectiblesFilter + page?: Page +} + +export interface ListCollectiblesWithHighestOfferReturn { + collectibles: Array + page?: Page +} +export interface SyncOrderArgs { + order: Order +} + +export interface SyncOrderReturn {} +export interface SyncOrdersArgs { + orders: Array +} + +export interface SyncOrdersReturn {} +export interface GetOrdersArgs { + input: Array + page?: Page +} + +export interface GetOrdersReturn { + orders: Array + page?: Page +} +export interface CheckoutOptionsMarketplaceArgs { + wallet: string + orders: Array + additionalFee: number +} + +export interface CheckoutOptionsMarketplaceReturn { + options: CheckoutOptions +} +export interface CheckoutOptionsSalesContractArgs { + wallet: string + contractAddress: string + collectionAddress: string + items: Array +} + +export interface CheckoutOptionsSalesContractReturn { + options: CheckoutOptions +} + +// +// Client +// +export class Admin implements Admin { + protected hostname: string + protected fetch: Fetch + protected path = '/rpc/Admin/' + + constructor(hostname: string, fetch: Fetch) { + this.hostname = hostname.replace(/\/*$/, '') + this.fetch = (input: RequestInfo, init?: RequestInit) => fetch(input, init) + } + + private url(name: string): string { + return this.hostname + this.path + name + } + + createCollection = (args: CreateCollectionArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('CreateCollection'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collection: _data.collection + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCollection = (args: GetCollectionArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('GetCollection'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collection: _data.collection + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + updateCollection = (args: UpdateCollectionArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('UpdateCollection'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collection: _data.collection + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollections = (args: ListCollectionsArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('ListCollections'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collections: >_data.collections, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + deleteCollection = (args: DeleteCollectionArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('DeleteCollection'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collection: _data.collection + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + syncCollection = (args: SyncCollectionArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('SyncCollection'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collection: _data.collection + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + createCurrency = (args: CreateCurrencyArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('CreateCurrency'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + currency: _data.currency + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + createCurrencies = (args: CreateCurrenciesArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('CreateCurrencies'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + currency: <{ [key: string]: Currency }>_data.currency + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + updateCurrency = (args: UpdateCurrencyArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('UpdateCurrency'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + currency: _data.currency + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCurrencies = (headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('ListCurrencies'), createHTTPRequest({}, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + currencies: >_data.currencies + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + deleteCurrency = (args: DeleteCurrencyArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('DeleteCurrency'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + currency: _data.currency + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } +} +export class Marketplace implements Marketplace { + protected hostname: string + protected fetch: Fetch + protected path = '/rpc/Marketplace/' + + constructor(hostname: string, fetch: Fetch) { + this.hostname = hostname.replace(/\/*$/, '') + this.fetch = (input: RequestInfo, init?: RequestInit) => fetch(input, init) + } + + private url(name: string): string { + return this.hostname + this.path + name + } + + listCurrencies = (headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('ListCurrencies'), createHTTPRequest({}, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + currencies: >_data.currencies + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCollectionDetail = ( + args: GetCollectionDetailArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCollectionDetail'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collection: _data.collection + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCollectible = (args: GetCollectibleArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('GetCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + metadata: _data.metadata + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getLowestPriceOfferForCollectible = ( + args: GetLowestPriceOfferForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetLowestPriceOfferForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getHighestPriceOfferForCollectible = ( + args: GetHighestPriceOfferForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetHighestPriceOfferForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getLowestPriceListingForCollectible = ( + args: GetLowestPriceListingForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetLowestPriceListingForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getHighestPriceListingForCollectible = ( + args: GetHighestPriceListingForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetHighestPriceListingForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listListingsForCollectible = ( + args: ListListingsForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListListingsForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + listings: >_data.listings, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listOffersForCollectible = ( + args: ListOffersForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListOffersForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + offers: >_data.offers, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCountOfListingsForCollectible = ( + args: GetCountOfListingsForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCountOfListingsForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + count: _data.count + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCountOfOffersForCollectible = ( + args: GetCountOfOffersForCollectibleArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCountOfOffersForCollectible'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + count: _data.count + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCollectibleLowestOffer = ( + args: GetCollectibleLowestOfferArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCollectibleLowestOffer'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCollectibleHighestOffer = ( + args: GetCollectibleHighestOfferArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCollectibleHighestOffer'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCollectibleLowestListing = ( + args: GetCollectibleLowestListingArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCollectibleLowestListing'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCollectibleHighestListing = ( + args: GetCollectibleHighestListingArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCollectibleHighestListing'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + order: _data.order + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollectibleListings = ( + args: ListCollectibleListingsArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListCollectibleListings'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + listings: >_data.listings, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollectibleOffers = ( + args: ListCollectibleOffersArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListCollectibleOffers'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + offers: >_data.offers, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + generateBuyTransaction = ( + args: GenerateBuyTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GenerateBuyTransaction'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + steps: >_data.steps + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + generateSellTransaction = ( + args: GenerateSellTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GenerateSellTransaction'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + steps: >_data.steps + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + generateListingTransaction = ( + args: GenerateListingTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GenerateListingTransaction'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + steps: >_data.steps + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + generateOfferTransaction = ( + args: GenerateOfferTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GenerateOfferTransaction'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + steps: >_data.steps + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + generateCancelTransaction = ( + args: GenerateCancelTransactionArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GenerateCancelTransaction'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + steps: >_data.steps + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + execute = (args: ExecuteArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('Execute'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + orderId: _data.orderId + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollectibles = (args: ListCollectiblesArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('ListCollectibles'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collectibles: >_data.collectibles, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCountOfAllCollectibles = ( + args: GetCountOfAllCollectiblesArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCountOfAllCollectibles'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + count: _data.count + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getCountOfFilteredCollectibles = ( + args: GetCountOfFilteredCollectiblesArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('GetCountOfFilteredCollectibles'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + count: _data.count + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getFloorOrder = (args: GetFloorOrderArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('GetFloorOrder'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collectible: _data.collectible + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollectionActivities = ( + args: ListCollectionActivitiesArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListCollectionActivities'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + activities: >_data.activities, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollectibleActivities = ( + args: ListCollectibleActivitiesArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListCollectibleActivities'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + activities: >_data.activities, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollectiblesWithLowestListing = ( + args: ListCollectiblesWithLowestListingArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListCollectiblesWithLowestListing'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collectibles: >_data.collectibles, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + listCollectiblesWithHighestOffer = ( + args: ListCollectiblesWithHighestOfferArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('ListCollectiblesWithHighestOffer'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + collectibles: >_data.collectibles, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + syncOrder = (args: SyncOrderArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('SyncOrder'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return {} + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + syncOrders = (args: SyncOrdersArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('SyncOrders'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return {} + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + getOrders = (args: GetOrdersArgs, headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('GetOrders'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + orders: >_data.orders, + page: _data.page + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + checkoutOptionsMarketplace = ( + args: CheckoutOptionsMarketplaceArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('CheckoutOptionsMarketplace'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + options: _data.options + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } + + checkoutOptionsSalesContract = ( + args: CheckoutOptionsSalesContractArgs, + headers?: object, + signal?: AbortSignal + ): Promise => { + return this.fetch(this.url('CheckoutOptionsSalesContract'), createHTTPRequest(args, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + options: _data.options + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } +} + +const createHTTPRequest = (body: object = {}, headers: object = {}, signal: AbortSignal | null = null): object => { + const reqHeaders: { [key: string]: string } = { ...headers, 'Content-Type': 'application/json' } + reqHeaders[WebrpcHeader] = WebrpcHeaderValue + + return { + method: 'POST', + headers: reqHeaders, + body: JSON.stringify(body || {}), + signal + } +} + +const buildResponse = (res: Response): Promise => { + return res.text().then(text => { + let data + try { + data = JSON.parse(text) + } catch (error) { + let message = '' + if (error instanceof Error) { + message = error.message + } + throw WebrpcBadResponseError.new({ + status: res.status, + cause: `JSON.parse(): ${message}: response text: ${text}` + }) + } + if (!res.ok) { + const code: number = typeof data.code === 'number' ? data.code : 0 + throw (webrpcErrorByCode[code] || WebrpcError).new(data) + } + return data + }) +} + +// +// Errors +// + +export class WebrpcError extends Error { + name: string + code: number + message: string + status: number + cause?: string + + /** @deprecated Use message instead of msg. Deprecated in webrpc v0.11.0. */ + msg: string + + constructor(name: string, code: number, message: string, status: number, cause?: string) { + super(message) + this.name = name || 'WebrpcError' + this.code = typeof code === 'number' ? code : 0 + this.message = message || `endpoint error ${this.code}` + this.msg = this.message + this.status = typeof status === 'number' ? status : 0 + this.cause = cause + Object.setPrototypeOf(this, WebrpcError.prototype) + } + + static new(payload: any): WebrpcError { + return new this(payload.error, payload.code, payload.message || payload.msg, payload.status, payload.cause) + } +} + +// Webrpc errors + +export class WebrpcEndpointError extends WebrpcError { + constructor( + name: string = 'WebrpcEndpoint', + code: number = 0, + message: string = `endpoint error`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcEndpointError.prototype) + } +} + +export class WebrpcRequestFailedError extends WebrpcError { + constructor( + name: string = 'WebrpcRequestFailed', + code: number = -1, + message: string = `request failed`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcRequestFailedError.prototype) + } +} + +export class WebrpcBadRouteError extends WebrpcError { + constructor( + name: string = 'WebrpcBadRoute', + code: number = -2, + message: string = `bad route`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcBadRouteError.prototype) + } +} + +export class WebrpcBadMethodError extends WebrpcError { + constructor( + name: string = 'WebrpcBadMethod', + code: number = -3, + message: string = `bad method`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcBadMethodError.prototype) + } +} + +export class WebrpcBadRequestError extends WebrpcError { + constructor( + name: string = 'WebrpcBadRequest', + code: number = -4, + message: string = `bad request`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcBadRequestError.prototype) + } +} + +export class WebrpcBadResponseError extends WebrpcError { + constructor( + name: string = 'WebrpcBadResponse', + code: number = -5, + message: string = `bad response`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcBadResponseError.prototype) + } +} + +export class WebrpcServerPanicError extends WebrpcError { + constructor( + name: string = 'WebrpcServerPanic', + code: number = -6, + message: string = `server panic`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcServerPanicError.prototype) + } +} + +export class WebrpcInternalErrorError extends WebrpcError { + constructor( + name: string = 'WebrpcInternalError', + code: number = -7, + message: string = `internal error`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcInternalErrorError.prototype) + } +} + +export class WebrpcClientDisconnectedError extends WebrpcError { + constructor( + name: string = 'WebrpcClientDisconnected', + code: number = -8, + message: string = `client disconnected`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcClientDisconnectedError.prototype) + } +} + +export class WebrpcStreamLostError extends WebrpcError { + constructor( + name: string = 'WebrpcStreamLost', + code: number = -9, + message: string = `stream lost`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcStreamLostError.prototype) + } +} + +export class WebrpcStreamFinishedError extends WebrpcError { + constructor( + name: string = 'WebrpcStreamFinished', + code: number = -10, + message: string = `stream finished`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcStreamFinishedError.prototype) + } +} + +// Schema errors + +export class UnauthorizedError extends WebrpcError { + constructor( + name: string = 'Unauthorized', + code: number = 1000, + message: string = `Unauthorized access`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, UnauthorizedError.prototype) + } +} + +export class PermissionDeniedError extends WebrpcError { + constructor( + name: string = 'PermissionDenied', + code: number = 1001, + message: string = `Permission denied`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, PermissionDeniedError.prototype) + } +} + +export class SessionExpiredError extends WebrpcError { + constructor( + name: string = 'SessionExpired', + code: number = 1002, + message: string = `Session expired`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, SessionExpiredError.prototype) + } +} + +export class MethodNotFoundError extends WebrpcError { + constructor( + name: string = 'MethodNotFound', + code: number = 1003, + message: string = `Method not found`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, MethodNotFoundError.prototype) + } +} + +export class TimeoutError extends WebrpcError { + constructor( + name: string = 'Timeout', + code: number = 2000, + message: string = `Request timed out`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, TimeoutError.prototype) + } +} + +export class InvalidArgumentError extends WebrpcError { + constructor( + name: string = 'InvalidArgument', + code: number = 2001, + message: string = `Invalid argument`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, InvalidArgumentError.prototype) + } +} + +export class NotFoundError extends WebrpcError { + constructor( + name: string = 'NotFound', + code: number = 3000, + message: string = `Resource not found`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, NotFoundError.prototype) + } +} + +export class UserNotFoundError extends WebrpcError { + constructor( + name: string = 'UserNotFound', + code: number = 3001, + message: string = `User not found`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, UserNotFoundError.prototype) + } +} + +export class ProjectNotFoundError extends WebrpcError { + constructor( + name: string = 'ProjectNotFound', + code: number = 3002, + message: string = `Project not found`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, ProjectNotFoundError.prototype) + } +} + +export class InvalidTierError extends WebrpcError { + constructor( + name: string = 'InvalidTier', + code: number = 3003, + message: string = `Invalid subscription tier`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, InvalidTierError.prototype) + } +} + +export class ProjectLimitReachedError extends WebrpcError { + constructor( + name: string = 'ProjectLimitReached', + code: number = 3005, + message: string = `Project limit reached`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, ProjectLimitReachedError.prototype) + } +} + +export class NotImplementedError extends WebrpcError { + constructor( + name: string = 'NotImplemented', + code: number = 9999, + message: string = `Not Implemented`, + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, NotImplementedError.prototype) + } +} + +export enum errors { + WebrpcEndpoint = 'WebrpcEndpoint', + WebrpcRequestFailed = 'WebrpcRequestFailed', + WebrpcBadRoute = 'WebrpcBadRoute', + WebrpcBadMethod = 'WebrpcBadMethod', + WebrpcBadRequest = 'WebrpcBadRequest', + WebrpcBadResponse = 'WebrpcBadResponse', + WebrpcServerPanic = 'WebrpcServerPanic', + WebrpcInternalError = 'WebrpcInternalError', + WebrpcClientDisconnected = 'WebrpcClientDisconnected', + WebrpcStreamLost = 'WebrpcStreamLost', + WebrpcStreamFinished = 'WebrpcStreamFinished', + Unauthorized = 'Unauthorized', + PermissionDenied = 'PermissionDenied', + SessionExpired = 'SessionExpired', + MethodNotFound = 'MethodNotFound', + Timeout = 'Timeout', + InvalidArgument = 'InvalidArgument', + NotFound = 'NotFound', + UserNotFound = 'UserNotFound', + ProjectNotFound = 'ProjectNotFound', + InvalidTier = 'InvalidTier', + ProjectLimitReached = 'ProjectLimitReached', + NotImplemented = 'NotImplemented' +} + +export enum WebrpcErrorCodes { + WebrpcEndpoint = 0, + WebrpcRequestFailed = -1, + WebrpcBadRoute = -2, + WebrpcBadMethod = -3, + WebrpcBadRequest = -4, + WebrpcBadResponse = -5, + WebrpcServerPanic = -6, + WebrpcInternalError = -7, + WebrpcClientDisconnected = -8, + WebrpcStreamLost = -9, + WebrpcStreamFinished = -10, + Unauthorized = 1000, + PermissionDenied = 1001, + SessionExpired = 1002, + MethodNotFound = 1003, + Timeout = 2000, + InvalidArgument = 2001, + NotFound = 3000, + UserNotFound = 3001, + ProjectNotFound = 3002, + InvalidTier = 3003, + ProjectLimitReached = 3005, + NotImplemented = 9999 +} + +export const webrpcErrorByCode: { [code: number]: any } = { + [0]: WebrpcEndpointError, + [-1]: WebrpcRequestFailedError, + [-2]: WebrpcBadRouteError, + [-3]: WebrpcBadMethodError, + [-4]: WebrpcBadRequestError, + [-5]: WebrpcBadResponseError, + [-6]: WebrpcServerPanicError, + [-7]: WebrpcInternalErrorError, + [-8]: WebrpcClientDisconnectedError, + [-9]: WebrpcStreamLostError, + [-10]: WebrpcStreamFinishedError, + [1000]: UnauthorizedError, + [1001]: PermissionDeniedError, + [1002]: SessionExpiredError, + [1003]: MethodNotFoundError, + [2000]: TimeoutError, + [2001]: InvalidArgumentError, + [3000]: NotFoundError, + [3001]: UserNotFoundError, + [3002]: ProjectNotFoundError, + [3003]: InvalidTierError, + [3005]: ProjectLimitReachedError, + [9999]: NotImplementedError +} + +export type Fetch = (input: RequestInfo, init?: RequestInit) => Promise From 2a375c1f764d033c30628ad082a382da86fd4b73 Mon Sep 17 00:00:00 2001 From: david-littlefarmer <17728576+david-littlefarmer@users.noreply.github.com> Date: Thu, 17 Apr 2025 16:45:11 +0000 Subject: [PATCH 2/4] [AUTOMATED] Update: proto/clients/marketplace.gen.ts --- packages/marketplace/src/marketplace.gen.ts | 27 ++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/packages/marketplace/src/marketplace.gen.ts b/packages/marketplace/src/marketplace.gen.ts index 5daf8938e..74ec4cf24 100644 --- a/packages/marketplace/src/marketplace.gen.ts +++ b/packages/marketplace/src/marketplace.gen.ts @@ -1,5 +1,5 @@ /* eslint-disable */ -// marketplace-api 27c5a642f4eb523c04af2f1a45e4a2ab1f370fcd +// marketplace-api f8401f4c4d2b5bde6bac249e2e080894af93b73f // -- // Code generated by webrpc-gen@v0.25.1 with typescript generator. DO NOT EDIT. // @@ -8,7 +8,7 @@ export const WebrpcHeader = 'Webrpc' export const WebrpcHeaderValue = - 'webrpc@v0.25.1;gen-typescript@v0.17.0;marketplace-api@v0.0.0-27c5a642f4eb523c04af2f1a45e4a2ab1f370fcd' + 'webrpc@v0.25.1;gen-typescript@v0.17.0;marketplace-api@v0.0.0-f8401f4c4d2b5bde6bac249e2e080894af93b73f' // WebRPC description and code-gen version export const WebRPCVersion = 'v1' @@ -17,7 +17,7 @@ export const WebRPCVersion = 'v1' export const WebRPCSchemaVersion = '' // Schema hash generated from your RIDL schema -export const WebRPCSchemaHash = '27c5a642f4eb523c04af2f1a45e4a2ab1f370fcd' +export const WebRPCSchemaHash = 'f8401f4c4d2b5bde6bac249e2e080894af93b73f' type WebrpcGenVersions = { webrpcGenVersion: string @@ -793,6 +793,7 @@ export interface Marketplace { headers?: object, signal?: AbortSignal ): Promise + supportedMarketplaces(headers?: object, signal?: AbortSignal): Promise } export interface ListCurrenciesArgs {} @@ -1130,6 +1131,11 @@ export interface CheckoutOptionsSalesContractArgs { export interface CheckoutOptionsSalesContractReturn { options: CheckoutOptions } +export interface SupportedMarketplacesArgs {} + +export interface SupportedMarketplacesReturn { + marketplaces: Array +} // // Client @@ -1985,6 +1991,21 @@ export class Marketplace implements Marketplace { } ) } + + supportedMarketplaces = (headers?: object, signal?: AbortSignal): Promise => { + return this.fetch(this.url('SupportedMarketplaces'), createHTTPRequest({}, headers, signal)).then( + res => { + return buildResponse(res).then(_data => { + return { + marketplaces: >_data.marketplaces + } + }) + }, + error => { + throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` }) + } + ) + } } const createHTTPRequest = (body: object = {}, headers: object = {}, signal: AbortSignal | null = null): object => { From 6da49a6f210b00b3854d5628a9a298f122ebe409 Mon Sep 17 00:00:00 2001 From: david-littlefarmer <17728576+david-littlefarmer@users.noreply.github.com> Date: Wed, 23 Apr 2025 10:45:18 +0000 Subject: [PATCH 3/4] [AUTOMATED] Update: proto/clients/marketplace.gen.ts --- packages/marketplace/src/marketplace.gen.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/marketplace/src/marketplace.gen.ts b/packages/marketplace/src/marketplace.gen.ts index 74ec4cf24..91d883a38 100644 --- a/packages/marketplace/src/marketplace.gen.ts +++ b/packages/marketplace/src/marketplace.gen.ts @@ -1,5 +1,5 @@ /* eslint-disable */ -// marketplace-api f8401f4c4d2b5bde6bac249e2e080894af93b73f +// marketplace-api 851db762f39fbd7e104dd44df842c0af523f5f10 // -- // Code generated by webrpc-gen@v0.25.1 with typescript generator. DO NOT EDIT. // @@ -8,7 +8,7 @@ export const WebrpcHeader = 'Webrpc' export const WebrpcHeaderValue = - 'webrpc@v0.25.1;gen-typescript@v0.17.0;marketplace-api@v0.0.0-f8401f4c4d2b5bde6bac249e2e080894af93b73f' + 'webrpc@v0.25.1;gen-typescript@v0.17.0;marketplace-api@v0.0.0-851db762f39fbd7e104dd44df842c0af523f5f10' // WebRPC description and code-gen version export const WebRPCVersion = 'v1' @@ -17,7 +17,7 @@ export const WebRPCVersion = 'v1' export const WebRPCSchemaVersion = '' // Schema hash generated from your RIDL schema -export const WebRPCSchemaHash = 'f8401f4c4d2b5bde6bac249e2e080894af93b73f' +export const WebRPCSchemaHash = '851db762f39fbd7e104dd44df842c0af523f5f10' type WebrpcGenVersions = { webrpcGenVersion: string From c220aff64ab32b0b9a792e953643b917a1544216 Mon Sep 17 00:00:00 2001 From: david-littlefarmer <17728576+david-littlefarmer@users.noreply.github.com> Date: Fri, 25 Apr 2025 04:30:47 +0000 Subject: [PATCH 4/4] [AUTOMATED] Update: proto/clients/marketplace.gen.ts --- packages/marketplace/src/marketplace.gen.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/marketplace/src/marketplace.gen.ts b/packages/marketplace/src/marketplace.gen.ts index 91d883a38..5cb9e91b7 100644 --- a/packages/marketplace/src/marketplace.gen.ts +++ b/packages/marketplace/src/marketplace.gen.ts @@ -1,14 +1,14 @@ /* eslint-disable */ -// marketplace-api 851db762f39fbd7e104dd44df842c0af523f5f10 +// marketplace-api d5b86d9a5fdc0880f7aa0df11163108c112bd90c // -- -// Code generated by webrpc-gen@v0.25.1 with typescript generator. DO NOT EDIT. +// Code generated by webrpc-gen@v0.25.4 with typescript generator. DO NOT EDIT. // // webrpc-gen -schema=marketplace.ridl -target=typescript -client -out=./clients/marketplace.gen.ts export const WebrpcHeader = 'Webrpc' export const WebrpcHeaderValue = - 'webrpc@v0.25.1;gen-typescript@v0.17.0;marketplace-api@v0.0.0-851db762f39fbd7e104dd44df842c0af523f5f10' + 'webrpc@v0.25.4;gen-typescript@v0.17.0;marketplace-api@v0.0.0-d5b86d9a5fdc0880f7aa0df11163108c112bd90c' // WebRPC description and code-gen version export const WebRPCVersion = 'v1' @@ -17,7 +17,7 @@ export const WebRPCVersion = 'v1' export const WebRPCSchemaVersion = '' // Schema hash generated from your RIDL schema -export const WebRPCSchemaHash = '851db762f39fbd7e104dd44df842c0af523f5f10' +export const WebRPCSchemaHash = 'd5b86d9a5fdc0880f7aa0df11163108c112bd90c' type WebrpcGenVersions = { webrpcGenVersion: string