diff --git a/docs/marketplace-api/docs/marketplaceapi.mdx b/docs/marketplace-api/docs/marketplaceapi.mdx
deleted file mode 100644
index f72ff0f1..00000000
--- a/docs/marketplace-api/docs/marketplaceapi.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: API Spec
-hide_table_of_contents: true
----
-
-import ApiDocMdx from '@theme/ApiDocMdx';
-
-
diff --git a/docs/marketplace-api/nswag/AuthorizedApiBase.ts b/docs/marketplace-api/nswag/AuthorizedApiBase.ts
deleted file mode 100644
index a0795721..00000000
--- a/docs/marketplace-api/nswag/AuthorizedApiBase.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Configuration class needed in base class.
- * The config is provided to the API client at initialization time.
- * API clients inherit from #AuthorizedApiBase and provide the config.
- */
-export class IConfig {
- /**
- * Returns a valid value for the Authorization header.
- * Used to dynamically inject the current auth header.
- */
-}
-
-export class AuthorizedApiBase {
- protected accessToken: string;
- private readonly config: IConfig;
-
- protected constructor(config: IConfig, accessToken: string = "") {
- this.config = config;
- this.accessToken = accessToken;
- }
-
- protected transformOptions = (
- options: AxiosRequestConfig
- ): Promise => {
- options.headers = {
- ...options.headers,
- Authorization: this.accessToken ? `Bearer ${this.accessToken}` : "",
- };
- return Promise.resolve(options);
- };
-
- setToken(accessToken: string) {
- this.accessToken = accessToken;
- }
-}
diff --git a/docs/marketplace-api/nswag/clean-nswag.ts b/docs/marketplace-api/nswag/clean-nswag.ts
deleted file mode 100644
index 754e139f..00000000
--- a/docs/marketplace-api/nswag/clean-nswag.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-const fs = require("fs");
-
-const nswagFileName = "./docs/marketplace-api/nswag/marketplace-api-client.nswag";
-let nswagFileContent = fs.readFileSync(nswagFileName);
-const nswagFile = JSON.parse(nswagFileContent);
-
-nswagFile.documentGenerator.fromDocument.json = "";
-
-fs.writeFile(
- nswagFileName,
- JSON.stringify(nswagFile, null, 2),
- function writeJSON(err) {
- if (err) return console.log(err);
- console.log("writing to " + nswagFileName);
- }
-);
diff --git a/docs/marketplace-api/nswag/marketplace-api-client.nswag b/docs/marketplace-api/nswag/marketplace-api-client.nswag
deleted file mode 100644
index cd584f1e..00000000
--- a/docs/marketplace-api/nswag/marketplace-api-client.nswag
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "runtime": "Net70",
- "defaultVariables": null,
- "documentGenerator": {
- "fromDocument": {
- "url": "",
- "output": null,
- "newLineBehavior": "Auto",
- "json": ""
- }
- },
- "codeGenerators": {
- "openApiToTypeScriptClient": {
- "className": "MarketplaceApiClient",
- "moduleName": "",
- "namespace": "",
- "typeScriptVersion": 3.8,
- "template": "Axios",
- "promiseType": "Promise",
- "httpClass": "HttpClient",
- "withCredentials": false,
- "useSingletonProvider": false,
- "injectionTokenType": "OpaqueToken",
- "rxJsVersion": 6,
- "dateTimeType": "Date",
- "nullValue": "Undefined",
- "generateClientClasses": true,
- "generateClientInterfaces": true,
- "generateOptionalParameters": true,
- "exportTypes": true,
- "wrapDtoExceptions": false,
- "exceptionClass": "FilesApiException",
- "clientBaseClass": "AuthorizedApiBase",
- "wrapResponses": false,
- "wrapResponseMethods": [],
- "generateResponseClasses": true,
- "responseClass": "SwaggerResponse",
- "protectedMethods": [],
- "configurationClass": "IConfig",
- "useTransformOptionsMethod": true,
- "useTransformResultMethod": false,
- "generateDtoTypes": true,
- "operationGenerationMode": "SingleClientFromOperationId",
- "markOptionalProperties": true,
- "generateCloneMethod": false,
- "typeStyle": "Interface",
- "enumStyle": "StringLiteral",
- "useLeafType": false,
- "classTypes": [],
- "extendedClasses": [],
- "extensionCode": "AuthorizedApiBase.ts",
- "generateDefaultValues": true,
- "excludedTypeNames": [],
- "excludedParameterNames": [],
- "handleReferences": false,
- "generateConstructorInterface": true,
- "convertConstructorInterfaceData": false,
- "importRequiredTypes": true,
- "useGetBaseUrlMethod": false,
- "baseUrlTokenName": "API_BASE_URL",
- "queryNullValue": "",
- "inlineNamedDictionaries": false,
- "inlineNamedAny": false,
- "templateDirectory": "template/",
- "typeNameGeneratorType": null,
- "propertyNameGeneratorType": null,
- "enumNameGeneratorType": null,
- "serviceHost": null,
- "serviceSchemes": null,
- "output": "../api-client-src/MarketplaceApiClient.ts",
- "newLineBehavior": "Auto"
- }
- }
-}
\ No newline at end of file
diff --git a/docs/marketplace-api/nswag/spec-bundler.ts b/docs/marketplace-api/nswag/spec-bundler.ts
deleted file mode 100644
index 182dfceb..00000000
--- a/docs/marketplace-api/nswag/spec-bundler.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-const openapiCore = require('@redocly/openapi-core');
-const utils = require("util")
-const pathToEntryPoint = './docs/marketplace-api/spec/v1.spec.yaml';
-
-exports.mergeSpec = function (): Promise<{ spec }> {
- return new Promise<{ spec }>(async (resolve, reject) => {
- openapiCore.loadConfig('./docs/marketplace-api/spec/.redocly.yaml').then(async (config) => {
- // Lint spec before bundling
- const lintResults = await openapiCore.lint({ ref: pathToEntryPoint, config });
- if (lintResults.length !== 0) {
- let err = "[" + lintResults.length + "] LINT ERRORS:\n"
- let isError = false
- for (let i = 0; i < lintResults.length; i++) {
- if (lintResults[i].severity != 'warn') {
- err += lintResults[i].message + ";\n"
- isError = true
- }
- }
- if (isError) {
- reject(err)
- return
- }
- }
-
- // Bundle spec components together
- const merge = await openapiCore.bundle({ ref: pathToEntryPoint, config });
- if (Object.keys(merge.problems).length !== 0) {
- let err = "[" + merge.problems.length + "] BUNDLE ERRORS:\n"
- for (let i = 0; i < merge.problems.length; i++) {
- err += merge.problems[i].message + ";\n"
- }
- reject(err)
- return
- }
- resolve({ spec: JSON.stringify(merge.bundle.parsed, null, 2) })
- }).catch((error) => {
- reject("linter config loading error: " + error)
- });
- })
-}
-
diff --git a/docs/marketplace-api/nswag/template/AxiosClient.liquid b/docs/marketplace-api/nswag/template/AxiosClient.liquid
deleted file mode 100644
index 35a4a474..00000000
--- a/docs/marketplace-api/nswag/template/AxiosClient.liquid
+++ /dev/null
@@ -1,96 +0,0 @@
-{% if HasOperations -%}
-{% if GenerateClientInterfaces -%}
-{% if ExportTypes %}export {% endif %}interface I{{ Class }} {
-{% for operation in Operations -%}
- {% template Client.Method.Documentation %}
- {{ operation.MethodAccessModifier }}{{ operation.ActualOperationName }}({% for parameter in operation.Parameters %}{{ parameter.VariableName }}{% if GenerateOptionalParameters and parameter.IsOptional %}?{% endif %}: {{ parameter.Type }}{{ parameter.TypePostfix }}{% if parameter.IsLast == false %}, {% endif %}{% endfor %}{% if operation.Parameters.size > 0 %}, {%endif%}cancelToken?: CancelToken | undefined, onDownloadProgress?: (progressEvent: ProgressEvent) => void{% if operation.HttpMethodUpper == 'Post' %}, onUploadProgress?: (progressEvent: ProgressEvent) => void{% endif %}): Promise<{{ operation.ResultType }}>;
-{% endfor -%}}
-{% endif -%}
-
-{% if ExportTypes %}export {% endif %}class {{ Class }} {% if HasBaseClass %}extends {{ BaseClass }} {% endif %}{% if GenerateClientInterfaces %}implements I{{ Class }} {% endif %}{
- private instance: AxiosInstance;
- private baseUrl: string;
- protected jsonParseReviver: {% if SupportsStrictNullChecks %}((key: string, value: any) => any) | undefined{% else %}(key: string, value: any) => any{% endif %} = undefined;
-
-{% if HasExtendedConstructor == false -%}
- constructor({% if HasConfigurationClass %}configuration: {{ ConfigurationClass }}, {% endif %}baseUrl?: string, instance?: AxiosInstance) {
-{% if HasBaseClass -%}
- super({% if HasConfigurationClass %}configuration{% endif %});
-{% endif -%}
- this.instance = instance ? instance : axios.create();
-{% if UseGetBaseUrlMethod -%}
- this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl("{{ BaseUrl }}");
-{% else -%}
- this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : "{{ BaseUrl }}";
-{% endif -%}
- }
-{% endif -%}
-{% if HasExtensionCode -%}
-
- {{ ExtensionCode }}
-{% endif -%}
-{% for operation in Operations -%}
-
- {% template Client.Method.Documentation %}
- {{ operation.MethodAccessModifier }}{{ operation.ActualOperationName }}({% for parameter in operation.Parameters %}{{ parameter.VariableName }}{% if GenerateOptionalParameters and parameter.IsOptional %}?{% endif %}: {{ parameter.Type }}{{ parameter.TypePostfix }}{% if parameter.IsLast == false %}, {% endif %}{% endfor %}{% if operation.Parameters.size > 0 %}, {%endif%}cancelToken?: CancelToken | undefined, onDownloadProgress?: (progressEvent: ProgressEvent) => void{% if operation.HttpMethodUpper == 'Post' %}, onUploadProgress?: (progressEvent: ProgressEvent) => void{% endif %}): Promise<{{ operation.ResultType }}> {
- {% template Client.RequestUrl %}
-
-{% if operation.HasBody -%}
- {% template Client.RequestBody %}
-
-{% endif -%}
- let options_ = {
-{% if operation.HasBody -%}
- data: content_,
-{% endif -%}
-{% if operation.IsFile -%}
- responseType: "blob",
-{% endif -%}
- method: "{{ operation.HttpMethodUpper | upcase }}",
- url: url_,
- headers: {
-{% for parameter in operation.HeaderParameters -%}
- "{{ parameter.Name }}": {{ parameter.VariableName }} !== undefined && {{ parameter.VariableName }} !== null ? "" + {{ parameter.VariableName }} : "",
-{% endfor -%}
-{% if operation.HasContent or operation.ConsumesFormUrlEncoded -%}
- "Content-Type": "{{ operation.Consumes }}",
-{% endif -%}
-{% if operation.HasResultType and operation.HasAcceptHeaderParameterParameter == false -%}
- "Accept": "{{ operation.Produces }}"
-{% endif -%}
- },
- cancelToken,
- onDownloadProgress,
-{% if operation.HttpMethodUpper == 'Post' -%}
- onUploadProgress
-{% endif -%}
- };
-
-{% if UseTransformOptionsMethod -%}
- return this.transformOptions(options_).then(transformedOptions_ => {
- return this.instance.request(transformedOptions_);
- }).catch((_error: any) => {
-{% else -%}
- return this.instance.request(options_).catch((_error: any) => {
-{% endif -%}
- if (isAxiosError(_error) && _error.response) {
- return _error.response;
- } else {
- throw _error;
- }
- }).then((_response: AxiosResponse) => {
-{% if UseTransformResultMethod -%}
- return this.transformResult(url_, _response, (_response: AxiosResponse) => this.process{{ operation.ActualOperationNameUpper }}(_response));
-{% else -%}
- return this.process{{ operation.ActualOperationNameUpper }}(_response);
-{% endif -%}
- });
- }
-
- protected process{{ operation.ActualOperationNameUpper }}(response: AxiosResponse): Promise<{{ operation.ResultType }}> {
- const status = response.status;
- {% template Client.ProcessResponse %}
- }
-{% endfor -%}
-}
-{% endif -%}
diff --git a/docs/marketplace-api/nswag/template/Client.RequestUrl.liquid b/docs/marketplace-api/nswag/template/Client.RequestUrl.liquid
deleted file mode 100644
index 87bedac5..00000000
--- a/docs/marketplace-api/nswag/template/Client.RequestUrl.liquid
+++ /dev/null
@@ -1,69 +0,0 @@
-let url_ = this.baseUrl + "/{{ operation.Path }}{% if operation.HasQueryParameters %}?{% endif %}";
-{% for parameter in operation.PathParameters -%}
-{% if parameter.IsRequired -%}
-if ({{ parameter.VariableName }} === undefined || {{ parameter.VariableName }} === null)
- throw new Error("The parameter '{{ parameter.VariableName }}' must be defined.");
-{% else -%}
-if ({{ parameter.VariableName }} !== null && {{ parameter.VariableName }} !== undefined)
-{% endif -%}
-{% if parameter.IsDateOrDateTimeArray -%}
-url_ = url_.replace("{{ "{" }}{{ parameter.Name }}}", encodeURIComponent({{ parameter.VariableName }}.map(s_ => s_ ? s_.toJSON() : "null").join()));
-{% elsif parameter.IsDateOrDateTime -%}
-url_ = url_.replace("{{ "{" }}{{ parameter.Name }}}", encodeURIComponent({{ parameter.VariableName }} ? "" + {{ parameter.VariableName }}.toJSON() : "null"));
-{% elsif parameter.IsArray -%}
-url_ = url_.replace("{{ "{" }}{{ parameter.Name }}}", encodeURIComponent({{ parameter.VariableName }}.join()));
-{% else -%}
-url_ = url_.replace("{{ "{" }}{{ parameter.Name }}}", encodeURIComponent("" + {{ parameter.VariableName }}));
-{% endif -%}
-{% if parameter.IsOptional -%}
-else
- url_ = url_.replace("/{{ "{" }}{{ parameter.Name }}}", "");
-{% endif -%}
-{% endfor -%}
-{% for parameter in operation.QueryParameters -%}
-{% if parameter.IsRequired -%}
-{% if parameter.IsNullable -%}
-if ({{ parameter.VariableName }} === undefined)
- throw new Error("The parameter '{{ parameter.VariableName }}' must be defined.");
-else if({{ parameter.VariableName }} !== null)
-{% else -%}
-if ({{ parameter.VariableName }} === undefined || {{ parameter.VariableName }} === null)
- throw new Error("The parameter '{{ parameter.VariableName }}' must be defined and cannot be null.");
-else
-{% endif -%}
-{% else -%}
-{% if parameter.IsNullable -%}
-if ({{ parameter.VariableName }} !== undefined && {{ parameter.VariableName }} !== null)
-{% else -%}
-if ({{ parameter.VariableName }} === null)
- throw new Error("The parameter '{{ parameter.VariableName }}' cannot be null.");
-else if ({{ parameter.VariableName }} !== undefined)
-{% endif -%}
-{% endif -%}
-{% if parameter.IsDateOrDateTimeArray -%}
- {{ parameter.VariableName }} && {{ parameter.VariableName }}.forEach(item_ => { url_ += "{{ parameter.Name }}=" + encodeURIComponent(item_ ? "" + item_.toJSON() : "null") + "&"; });
-{% elsif parameter.IsObjectArray -%}
- {{ parameter.VariableName }} && {{ parameter.VariableName }}.forEach((item, index) => {
- for (let attr in item)
- if (item.hasOwnProperty(attr)) {
- url_ += "{{ parameter.Name }}[" + index + "]." + attr + "=" + encodeURIComponent("" + (item)[attr]) + "&";
- }
- });
-{% elsif parameter.IsDateOrDateTime -%}
- url_ += "{{ parameter.Name }}=" + encodeURIComponent({{ parameter.VariableName }} ? "" + {{ parameter.VariableName }}.toJSON() : "{{ QueryNullValue }}") + "&";
-{% elsif parameter.IsArray -%}
- if ({{ parameter.VariableName }}) {
- url_ += "{{ parameter.Name }}="
- {{ parameter.VariableName }}.forEach((item, i, arr) => {
- url_ += encodeURIComponent("" + item)
- if (i < arr.length - 1) {
- url_ += ","
- }
- });
- url_ += "&"
- }
-{% else -%}
- url_ += "{{ parameter.Name }}=" + encodeURIComponent("" + {{ parameter.VariableName }}) + "&";
-{% endif -%}
-{% endfor -%}
-url_ = url_.replace(/[?&]$/, "");
\ No newline at end of file
diff --git a/docs/marketplace-api/nswag/update-nswag.ts b/docs/marketplace-api/nswag/update-nswag.ts
deleted file mode 100644
index b5379cd9..00000000
--- a/docs/marketplace-api/nswag/update-nswag.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-const fs = require("fs");
-const bundler = require("./spec-bundler");
-const nswagFileName = "./docs/marketplace-api/nswag/marketplace-api-client.nswag";
-
-bundler.mergeSpec().then((bundle) => {
- let nswagFileContent = fs.readFileSync(nswagFileName);
- const nswagFile = JSON.parse(nswagFileContent.toString());
-
- nswagFile.documentGenerator.fromDocument.json = bundle.spec;
-
- fs.writeFile(
- nswagFileName,
- JSON.stringify(nswagFile, null, 2),
- function writeJSON(err) {
- if (err) return console.log(err);
- console.log("writing to " + nswagFileName);
- }
- );
-
-}).catch((error) => {
- console.error(error)
- return process.exit(1)
-});
-
diff --git a/docs/marketplace-api/spec/.redocly.yaml b/docs/marketplace-api/spec/.redocly.yaml
deleted file mode 100644
index 36d4911a..00000000
--- a/docs/marketplace-api/spec/.redocly.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-lint:
-# the lint options
-
-referenceDocs:
-# the API reference docs options, including theme options.
-
-registry:
-# the API registry options
-
-# future products may be configured by extending this file
diff --git a/docs/marketplace-api/spec/components/item_response.yaml b/docs/marketplace-api/spec/components/item_response.yaml
deleted file mode 100644
index b2152fd8..00000000
--- a/docs/marketplace-api/spec/components/item_response.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-type: object
-properties:
- id:
- type: string
- description: Item ID
- chain_id:
- type: string
- description: Chain ID
- project_id:
- type: string
- description: Project ID
- marketplace_id:
- type: string
- description: Marketplace ID
- token:
- $ref: './item_token.yaml'
- marketplace_contract_address:
- type: string
- description: Marketplace contract address
- seller:
- type: string
- description: Seller address
- buyer:
- type: string
- description: Buyer address
- price:
- type: string
- description: Price of the item
- listed_at:
- type: integer
- description: Listed at epoch time
- status:
- $ref: ./item_status.yaml
-
-
diff --git a/docs/marketplace-api/spec/components/item_sort_by.yaml b/docs/marketplace-api/spec/components/item_sort_by.yaml
deleted file mode 100644
index 1fe3bd29..00000000
--- a/docs/marketplace-api/spec/components/item_sort_by.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-type: string
-enum:
- - listed_at
- - price
diff --git a/docs/marketplace-api/spec/components/item_sort_order.yaml b/docs/marketplace-api/spec/components/item_sort_order.yaml
deleted file mode 100644
index 615ec092..00000000
--- a/docs/marketplace-api/spec/components/item_sort_order.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-type: string
-enum:
- - asc
- - desc
\ No newline at end of file
diff --git a/docs/marketplace-api/spec/components/item_status.yaml b/docs/marketplace-api/spec/components/item_status.yaml
deleted file mode 100644
index 27c910fb..00000000
--- a/docs/marketplace-api/spec/components/item_status.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-type: string
-enum:
- - sold
- - listed
- - canceled
\ No newline at end of file
diff --git a/docs/marketplace-api/spec/components/item_token.yaml b/docs/marketplace-api/spec/components/item_token.yaml
deleted file mode 100644
index 4f96a9fa..00000000
--- a/docs/marketplace-api/spec/components/item_token.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-type: object
-description: token structure for the NFT
-properties:
- id:
- type: string
- description: id of token on indexer
- token_id:
- type: string
- description: token id of nft
- token_type:
- type: string
- description: type of token
- contract_address:
- type: string
- description: contract address of token
- uri:
- type: string
- description: token uri of nft token
- metadata:
- type: object
- additionalProperties:
- anyOf:
- - type: string
- - type: integer
- - type: boolean
- - type: object
diff --git a/docs/marketplace-api/spec/components/items_response.yaml b/docs/marketplace-api/spec/components/items_response.yaml
deleted file mode 100644
index d85703d1..00000000
--- a/docs/marketplace-api/spec/components/items_response.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-type: object
-properties:
- page_number:
- type: integer
- description: Page number
- page_size:
- type: integer
- description: Page size
- total:
- type: integer
- description: Total number of items
- cursor:
- type: string
- description: Pagination cursor, if empty no more items to return
- items:
- type: array
- items:
- $ref: ./item_response.yaml
- description: List of items
\ No newline at end of file
diff --git a/docs/marketplace-api/spec/error.yaml b/docs/marketplace-api/spec/error.yaml
deleted file mode 100644
index 7abf8e58..00000000
--- a/docs/marketplace-api/spec/error.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-type: object
-properties:
- error:
- description: The error object
- type: object
- properties:
- code:
- description: Http error code
- type: integer
- example: 400
- message:
- description: Error message
- type: string
- example: example error message
- details:
- description: Holds error details in case of validation errors or multiple errors
- type: array
- items:
- type: object
- properties:
- type:
- description: Error type or source
- type: string
- example: example type
- message:
- description: Error message
- type: string
- example: Example message
-
diff --git a/docs/marketplace-api/spec/paths/get_project_items.yaml b/docs/marketplace-api/spec/paths/get_project_items.yaml
deleted file mode 100644
index f82814af..00000000
--- a/docs/marketplace-api/spec/paths/get_project_items.yaml
+++ /dev/null
@@ -1,90 +0,0 @@
-get:
- tags:
- - Items
- summary: Get Project Items
- description: Get all the items for a project. You can provide various filters to get the items you want.
- operationId: getProjectItems
- security: []
- parameters:
- - name: projectID
- in: path
- description: Project ID
- required: true
- schema:
- type: string
- - name: chainId
- in: query
- description: Chain ID
- required: true
- schema:
- type: string
- - name: tokenContractAddress
- in: query
- description: Token Contract Address
- required: false
- schema:
- type: string
- - name: tokenId
- in: query
- description: Token ID
- required: false
- schema:
- type: string
- - name: seller
- in: query
- description: Seller Address
- required: false
- schema:
- type: string
- - name: status
- in: query
- description: Status of the item
- required: false
- schema:
- $ref: ../components/item_status.yaml
- - name: uniqueToken
- in: query
- description: get unique token in the marketplace
- required: false
- schema:
- type: boolean
- - name: sortBy
- in: query
- description: Sort by
- required: false
- schema:
- $ref: ../components/item_sort_by.yaml
- - name: sortOrder
- in: query
- description: Sort order
- required: false
- schema:
- $ref: ../components/item_sort_order.yaml
- - name: cursor
- in: query
- description: pagination cursor
- required: false
- schema:
- type: string
-
- responses:
- '200':
- description: List Of Project Items
- content:
- application/json:
- schema:
- type: array
- items:
- $ref: ../components/items_response.yaml
- '400':
- description: Bad Request
- content:
- application/json:
- schema:
- $ref: ./../error.yaml
- default:
- description: server error
- content:
- application/json:
- schema:
- $ref: ./../error.yaml
diff --git a/docs/marketplace-api/spec/paths/get_project_marketplace_item.yaml b/docs/marketplace-api/spec/paths/get_project_marketplace_item.yaml
deleted file mode 100644
index 1a91bc04..00000000
--- a/docs/marketplace-api/spec/paths/get_project_marketplace_item.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-get:
- tags:
- - Items
- summary: Get Item
- description: Get specific Item for a project under a marketplace.
- operationId: getItem
- security: []
- parameters:
- - name: projectID
- in: path
- description: Project ID
- required: true
- schema:
- type: string
- - name: marketplaceID
- in: path
- description: Marketplace ID
- required: true
- schema:
- type: string
- - name: itemID
- in: path
- description: Item ID
- required: true
- schema:
- type: string
- responses:
- '200':
- description: List Of Marketplace Items
- content:
- application/json:
- schema:
- $ref: ../components/item_response.yaml
- '400':
- description: Bad Request
- content:
- application/json:
- schema:
- $ref: ./../error.yaml
- default:
- description: server error
- content:
- application/json:
- schema:
- $ref: ./../error.yaml
diff --git a/docs/marketplace-api/spec/paths/get_project_marketplace_items.yaml b/docs/marketplace-api/spec/paths/get_project_marketplace_items.yaml
deleted file mode 100644
index 98da3cd2..00000000
--- a/docs/marketplace-api/spec/paths/get_project_marketplace_items.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-get:
- tags:
- - Items
- summary: Get Marketplace Items
- description: Get all the items for a project under a marketplace.
- operationId: getItems
- security: []
- parameters:
- - name: projectID
- in: path
- description: Project ID
- required: true
- schema:
- type: string
- - name: marketplaceID
- in: path
- description: Marketplace ID
- required: true
- schema:
- type: string
- - name: tokenContractAddress
- in: query
- description: Token Contract Address
- required: false
- schema:
- type: string
- - name: tokenId
- in: query
- description: Token ID
- required: false
- schema:
- type: string
- - name: seller
- in: query
- description: Seller Address
- required: false
- schema:
- type: string
- - name: status
- in: query
- description: Status of the item
- required: false
- schema:
- $ref: ../components/item_status.yaml
- - name: uniqueToken
- in: query
- description: get unique token in the marketplace
- required: false
- schema:
- type: boolean
- - name: sortBy
- in: query
- description: Sort by
- required: false
- schema:
- $ref: ../components/item_sort_by.yaml
- - name: sortOrder
- in: query
- description: Sort order
- required: false
- schema:
- $ref: ../components/item_sort_order.yaml
- - name: cursor
- in: query
- description: pagination cursor
- required: false
- schema:
- type: string
-
- responses:
- '200':
- description: List Of Marketplace Items
- content:
- application/json:
- schema:
- $ref: ../components/items_response.yaml
- '400':
- description: Bad Request
- content:
- application/json:
- schema:
- $ref: ./../error.yaml
- default:
- description: server error
- content:
- application/json:
- schema:
- $ref: ./../error.yaml
diff --git a/docs/marketplace-api/spec/v1.spec.yaml b/docs/marketplace-api/spec/v1.spec.yaml
deleted file mode 100644
index 069f0654..00000000
--- a/docs/marketplace-api/spec/v1.spec.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-openapi: 3.0.3
-info:
- title: ChainSafe Marketplace API
- contact:
- email: info@chainsafe.io
- name: ChainSafe
- url: https://api.gaming.chainsafe.io/
- version: 1.19.2
-externalDocs:
- description: Find out more about ChainSafe
- url: "https://gaming.chainsafe.io/"
-servers:
- - url: "https://game-api-stg.chainsafe.io"
- description: STAGING
- - url: "https://api.gaming.chainsafe.io"
- description: PRODUCTION
-tags:
- - name: Items
- description: This section lists all the APIs related to marketplace items.
-paths:
- /v1/projects/{projectID}/items:
- $ref: 'paths/get_project_items.yaml'
- /v1/projects/{projectID}/marketplaces/{marketplaceID}/items:
- $ref: 'paths/get_project_marketplace_items.yaml'
- /v1/projects/{projectID}/marketplaces/{marketplaceID}/items/{itemID}:
- $ref: 'paths/get_project_marketplace_item.yaml'
\ No newline at end of file
diff --git a/docs/nft_launchpad/1_introduction.md b/docs/nft_launchpad/1_introduction.md
deleted file mode 100644
index 275e277b..00000000
--- a/docs/nft_launchpad/1_introduction.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-slug: /launchpad/introduction
-sidebar_position: 1
-sidebar_label: Introduction
----
-# Introduction
-
-## Launchpad, Spring Your Game Into Action With Our Minter
-
-NFT Launchpad is an offering by chainsafe gaming to help game developers to mint NFTs and create collections of those NFTs and link them to their games.
-The users of the game can then buy, sell and trade these NFTs inside of the game itself giving them smooth and seamless experience.
-Game Developers can create, manage and visualize NFTs through the dashboard without any knowledge of Solidity contracts.
-
-
-
-### Ready To Get Started?
-
-Head over to the [NFT Launchpad Dashboard](https://dashboard.gaming.chainsafe.io/nfts/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) to manage your collections and mint NFTs for your projects.
-
-Follow the guide to know more about how to interact with the NFT Launchpad and mint NFTs for your projects.
\ No newline at end of file
diff --git a/docs/nft_launchpad/2_details.md b/docs/nft_launchpad/2_details.md
deleted file mode 100644
index 130beaaa..00000000
--- a/docs/nft_launchpad/2_details.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-slug: /launchpad/details
-sidebar_position: 2
-sidebar_label: Knowledge Base
----
-
-# Knowledge Base
-
-This section contains detailed information about the NFT Launchpad terminologies and its features. At the end
-of the section, you will have a clear understanding of the NFT Launchpad hierarchy and its features.
-
-### Project
-
-A project can be considered as a game. When you create a new game, you create a project for that game on chainsafe [Gaming Dashboard](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs).
-A project is the first level of hierarchy in the chainsafe gaming ecosystem. Anything you will create in the gaming ecosystem will be under a project.
-You can create multiple collections and mint NFTs under a project.
-
-### Collection
-
-A collection is an NFT minter contract that’s deployed to a blockchain. You can create a collection for a project and mint NFTs for that collection.
-A collection is a second level of hierarchy in the NFT Launchpad. A project can have multiple collections under the project.
-You can think of a collection as a group of assets that are related to each other. For example, a collection can be a set of
-characters, weapons, or skins for a game.
-
-### NFTs
-
-NFTs are the assets that are minted for a collection.
-You can mint NFTs for a collection and link them to your game. An NFT is a third level of hierarchy in the NFT Launchpad.
-A collection can have multiple NFTs under the collection. An NFT can be a character, weapon, skin, or any other asset you want to link to your game.
-Gamers can trade, sell, or buy NFTs in the game.
-
-Currently, we are supporting ERC721 and ERC1155 token standards. NFT metadata is uploaded to [ChainSafe Storage](https://storage.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) powered by IPFS.
-You can add custom attributes to your NFTs, which can be utilized in your game. For example, you can add attributes like `power`, `speed` and `health` to a character NFT.
-You can also add custom images to your NFTs.
-
-You can utilize NFT data seamlessly through standardized APIs. You can list your NFTs in your game and let users buy, sell, and trade them in the game itself.
-
-#### NFT Metadata
-
-Adding Metadata to a token enables games to import detailed information and showcase your token's data.
-Usually, digital assets are identified just by their Token ID. Metadata adds extra details to these assets, giving them properties such as a title, a narrative, and visuals.
-
-You can add custom attributes to your NFTs, which can be utilized in the game. For example, you can add attributes like `power`, `speed` and `health` to a character NFT as metadata fields.
-
-We store the metadata of the NFTs on [ChainSafe Storage](https://storage.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) which is powered by IPFS. We store the IPFS CID
-of the metadata on-chain. The metadata is stored in a JSON format and can be accessed using the IPFS CID via any public IPFS gateway.
-
-### Supported Chains
-
-You can currently create collections and mint NFTs for the following chains:
-
-| Network Name | Type of Chain | Chain ID |
-|----------------|---------------|----------|
-| ETH Sepolia | Testnet | 11155111 |
-| Polygon Mumbai | Testnet | 80001 |
-| BSC | Testnet | 97 |
-| Avalanche | Testnet | 43113 |
-| B3 Sepolia | Testnet | 1993 |
\ No newline at end of file
diff --git a/docs/nft_launchpad/3_tutorial.md b/docs/nft_launchpad/3_tutorial.md
deleted file mode 100644
index 60b39288..00000000
--- a/docs/nft_launchpad/3_tutorial.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-slug: /launchpad/tutorial
-sidebar_position: 3
-sidebar_label: Tutorial
----
-
-# NFT Launchpad Tutorial
-
-This tutorial will guide you through the process of creating a collection, minting NFTs, and launching your NFT project using the ChainSafe NFT Launchpad.
-
-## Prerequisites
-
-Before you begin, ensure you have the following:
-
-- A project created for your game. If you don't have one, you can create one [here](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs).
-
-- Connect your wallet to the ChainSafe Gaming Dashboard. You can connect your wallet by clicking on the `Connect Wallet` button on the top right corner of the dashboard.
-
-## 1. Create Project
-
-:::info
-You can skip this step if you already have a project created for your game.
-:::
-
-- Go to the [ChainSafe Gaming Dashboard](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) and click on the `+` button on the top right.
-
-- Fill in the details for your project and click on `Create Project` button.
-
-
-
-## 2. Create a Collection
-
-- Head over to `NFT Launchpad` tab in the [ChainSafe Gaming Dashboard](https://dashboard.gaming.chainsafe.io/nfts/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs).
-
-
-- Select the project you want to create a collection for.
-
-
-- Click on the `New Collection` button on top right
-
-
-- Fill in the details for your collection and click on `Create Collection` button.
-
-
-
-
-### Collection Details
-
-- **Name**: The name of your collection.
-- **Description**: A brief description of your collection.
-- **Network**: The chain for which you want to create the collection.
-- **Collection Type**: The type of collection you want to create. You can choose from `ERC721`, `ERC1155`
-- **Logo Image**: The logo for your collection. This is an optional field.
-- **Banner Image**: The banner for your collection. This is an optional field.
-
-
-## 3. Mint NFT
-
-Once you have created a collection, you can mint NFTs for that collection.
-
-- Click on the collection you want to mint NFTs for.
-
-
-- Click on the `Mint New NFT` button on top right in the collection you want to mint NFTs for.
-
-
-- Fill in the details for your NFT and click on `Mint NFT` button.
-
-
-
-
-### Mint NFT Details
-
-- **Name**: The name of your NFT.
-- **Description**: A brief description of your NFT.
-- **Token Type**: The type of token you want to mint. You can choose from `ERC721`, `ERC1155`
-- **Supply**: The supply of your NFT. This option is only available for `ERC1155` tokens.
-- **Additional Media**:
- - **Additional Files**: You can also add custom images to your NFTs. You can instead specify the CID of the image on IPFS as well. This is an optional field.
- - **Custom Attributes**: You can add custom attributes to your NFTs which can be utilized in the game. For example, you can add attributes like `power`, `speed`, `health` to a character NFT.
-
-- **Upload File**: You need to upload the image for your NFT. This is a mandatory field.
-
-### Contract ABIs
-
-You can download minter contract ABIs:
-
-- [721 minter contract ABI](./assets/721_minter_contract_abi.json)
-- [1155 minter contract ABI](./assets/1155_minter_contract_abi.json)
-
-## 4. Launch Your NFT Project
-
-Once you have minted NFTs for your collection, you can access your collection and NFTs directly into your game using the
-set of APIs provided by the ChainSafe. Head over to the [Tokens API Specification](./../token-api/docs/tokenapi.mdx) to know more about how to interact with the NFTs and collections via APIs.
-
diff --git a/docs/nft_launchpad/assets/1155_minter_contract_abi.json b/docs/nft_launchpad/assets/1155_minter_contract_abi.json
deleted file mode 100644
index c4806fc9..00000000
--- a/docs/nft_launchpad/assets/1155_minter_contract_abi.json
+++ /dev/null
@@ -1,662 +0,0 @@
-[
- {
- "inputs": [],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "inputs": [],
- "name": "AlreadySameStatus",
- "type": "error"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "ApprovalForAll",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint8",
- "name": "version",
- "type": "uint8"
- }
- ],
- "name": "Initialized",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "bool",
- "name": "isPublic",
- "type": "bool"
- }
- ],
- "name": "MintingStatusUpdated",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "previousAdminRole",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "newAdminRole",
- "type": "bytes32"
- }
- ],
- "name": "RoleAdminChanged",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "sender",
- "type": "address"
- }
- ],
- "name": "RoleGranted",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "sender",
- "type": "address"
- }
- ],
- "name": "RoleRevoked",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256[]",
- "name": "ids",
- "type": "uint256[]"
- },
- {
- "indexed": false,
- "internalType": "uint256[]",
- "name": "values",
- "type": "uint256[]"
- }
- ],
- "name": "TransferBatch",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "TransferSingle",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "string",
- "name": "value",
- "type": "string"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- }
- ],
- "name": "URI",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "CREATOR_ROLE",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "DEFAULT_ADMIN_ROLE",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address[]",
- "name": "accounts",
- "type": "address[]"
- },
- {
- "internalType": "uint256[]",
- "name": "ids",
- "type": "uint256[]"
- }
- ],
- "name": "balanceOfBatch",
- "outputs": [
- {
- "internalType": "uint256[]",
- "name": "",
- "type": "uint256[]"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "collectionID",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- }
- ],
- "name": "getRoleAdmin",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "grantRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "hasRole",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "projectID",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "collectionID",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "baseURI",
- "type": "string"
- },
- {
- "internalType": "address",
- "name": "creator",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "mintingPublic",
- "type": "bool"
- }
- ],
- "name": "initialize",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- }
- ],
- "name": "isApprovedForAll",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isMintingPublic",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "player",
- "type": "address"
- },
- {
- "internalType": "string",
- "name": "tokenURI",
- "type": "string"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "isPublic",
- "type": "bool"
- }
- ],
- "name": "mintingPublic",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "projectID",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "renounceRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "revokeRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256[]",
- "name": "ids",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "amounts",
- "type": "uint256[]"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "safeBatchTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "safeTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "setApprovalForAll",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes4",
- "name": "interfaceId",
- "type": "bytes4"
- }
- ],
- "name": "supportsInterface",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "uri",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
-]
\ No newline at end of file
diff --git a/docs/nft_launchpad/assets/721_minter_contract_abi.json b/docs/nft_launchpad/assets/721_minter_contract_abi.json
deleted file mode 100644
index 45bcf758..00000000
--- a/docs/nft_launchpad/assets/721_minter_contract_abi.json
+++ /dev/null
@@ -1,730 +0,0 @@
-[
- {
- "inputs": [],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "inputs": [],
- "name": "AlreadySameStatus",
- "type": "error"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "approved",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "ApprovalForAll",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "_fromTokenId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "_toTokenId",
- "type": "uint256"
- }
- ],
- "name": "BatchMetadataUpdate",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint8",
- "name": "version",
- "type": "uint8"
- }
- ],
- "name": "Initialized",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "_tokenId",
- "type": "uint256"
- }
- ],
- "name": "MetadataUpdate",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "bool",
- "name": "isPublic",
- "type": "bool"
- }
- ],
- "name": "MintingStatusUpdated",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "previousAdminRole",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "newAdminRole",
- "type": "bytes32"
- }
- ],
- "name": "RoleAdminChanged",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "sender",
- "type": "address"
- }
- ],
- "name": "RoleGranted",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "sender",
- "type": "address"
- }
- ],
- "name": "RoleRevoked",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "CREATOR_ROLE",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "DEFAULT_ADMIN_ROLE",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "baseURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "collectionID",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "getApproved",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- }
- ],
- "name": "getRoleAdmin",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "grantRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "hasRole",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "projectID",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "collectionID",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "name_",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "symbol_",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "baseURI",
- "type": "string"
- },
- {
- "internalType": "address",
- "name": "creator",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "mintingPublic",
- "type": "bool"
- }
- ],
- "name": "initialize",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- }
- ],
- "name": "isApprovedForAll",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "isMintingPublic",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "player",
- "type": "address"
- },
- {
- "internalType": "string",
- "name": "tokenURI",
- "type": "string"
- }
- ],
- "name": "mint",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "isPublic",
- "type": "bool"
- }
- ],
- "name": "mintingPublic",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "ownerOf",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "projectID",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "renounceRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "revokeRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "safeTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "safeTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "setApprovalForAll",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes4",
- "name": "interfaceId",
- "type": "bytes4"
- }
- ],
- "name": "supportsInterface",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "tokenURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
-]
\ No newline at end of file
diff --git a/docs/nft_launchpad/assets/create_collection.gif b/docs/nft_launchpad/assets/create_collection.gif
deleted file mode 100644
index d1c4909d..00000000
Binary files a/docs/nft_launchpad/assets/create_collection.gif and /dev/null differ
diff --git a/docs/nft_launchpad/assets/create_project.gif b/docs/nft_launchpad/assets/create_project.gif
deleted file mode 100644
index 6c3e8155..00000000
Binary files a/docs/nft_launchpad/assets/create_project.gif and /dev/null differ
diff --git a/docs/nft_launchpad/assets/introduction.png b/docs/nft_launchpad/assets/introduction.png
deleted file mode 100644
index d47385cc..00000000
Binary files a/docs/nft_launchpad/assets/introduction.png and /dev/null differ
diff --git a/docs/nft_launchpad/assets/mint_nft.gif b/docs/nft_launchpad/assets/mint_nft.gif
deleted file mode 100644
index a3d064d7..00000000
Binary files a/docs/nft_launchpad/assets/mint_nft.gif and /dev/null differ
diff --git a/docs/nft_marketplace/1_introduction.md b/docs/nft_marketplace/1_introduction.md
deleted file mode 100644
index 0956d0b3..00000000
--- a/docs/nft_marketplace/1_introduction.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-slug: /marketplace/introduction
-sidebar_position: 1
-sidebar_label: Introduction
----
-# Introduction
-
-## Marketplace, One Stop Shop For All Your NFT Needs
-
-ChainSafe Marketplace is an offering by ChainSafe Gaming to help game developers build their own in-game NFT marketplace and list their NFTs for sale.
-Gamers can then buy, sell, and trade these NFTs in-game, providing a smooth and seamless experience.
-Game Developers can create, manage, and visualize NFTs through the dashboard without any knowledge of Solidity contracts.
-
-
-
-
-Our marketplace offering is on chain, meaning the marketplaces you created in game are based on smart contracts deployed on a blockchain.
-The marketplace smart contract is responsible for managing the NFTs that are listed for sale. It also handles the buying and selling of the NFTs.
-
-You can create multiple marketplaces within a single project but can only list a given NFT
-in one marketplace at a time. Our marketplace tool kit supports Ethereum, Polygon, Avalanche and Binance Smart Chain. Support for any other EVM compatible blockchain can be added upon request.
-
-
-### Ready To Get Started?
-
-Head over to the [NFT Marketplace Dashboard](https://dashboard.gaming.chainsafe.io/marketplaces/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) to manage your marketplace and list NFTs for your projects.
diff --git a/docs/nft_marketplace/2_tutorial.md b/docs/nft_marketplace/2_tutorial.md
deleted file mode 100644
index c29bfa9d..00000000
--- a/docs/nft_marketplace/2_tutorial.md
+++ /dev/null
@@ -1,224 +0,0 @@
----
-slug: /marketplace/tutorial
-sidebar_position: 2
-sidebar_label: Tutorial
----
-
-# Marketplace Tutorial
-
-This guide will help you to create an on-chain marketplace for your game and list NFTs for sale in marketplace.
-
-## Prerequisites
-
-Before you begin, ensure you have the following:
-
-- A project created for your game. If you don't have one, you can create one [here](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs).
-
-- You should have already created some nfts for your game inside of the project. If you haven't, you can create some [here](https://dashboard.gaming.chainsafe.io/nfts/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs).
-
-- Connect your wallet to the ChainSafe Gaming Dashboard. You can connect your wallet by clicking on the `Connect Wallet` button on the top right corner of the dashboard.
-
-## 1. Select Project
-
-- Select the project for which you want to create a marketplace.
-
-
-
-## 2. Deploy Marketplace
-
-- Click on the `Deploy Marketplace` tab on the right top corner.
-
-
-- Fill in the details for your marketplace and click on `Create Marketplace` button.
-
-:::info
-Please wait for few seconds, it will take some time to deploy the marketplace on the blockchain.
-:::
-
-
-
-
-### Marketplace Details
-
-- **Name**: The name of your marketplace.
-- **Description**: A brief description of your marketplace.
-- **Network**: The chain for which you want to create the marketplace.
-
-:::info
-Make sure you have minted the NFTs for the same network inside of NFT Launchpad.
-:::
-- **Logo Image**: The logo for your marketplace.
-
-### Marketplace ABI
-
-Remember marketplace is an on chain contract, so you will need the ABI to interact with the marketplace contract. Below you can find the ABI of
-marketplace contract.
-
-[Marketplace ABI](./assets/marketplace_abi.json)
-
-## 3. List NFT For Sale
-
-Once you have created a marketplace, its time to list some NFTs for sale in the marketplace.
-
-- Select the marketplace where you want to list the NFTs for sale.
-
-
-- Click on the `List New NFT` tab on the right top corner.
-
-
-- Select the NFTs that you want to list for sale in the marketplace and input the price at which you want to list the NFT.
-
-
-
-
-## 4. Use marketplace inside of your Unity game
-Add the Chainsafe marketplace package as a git package:
-```js
-https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.marketplace
-```
-Add Marketplace Service Adapter to the Web3Unity prefab
-
-
-
-Fill out the necessary details
-
-
-
-
-
-- Marketplace ID: Labeled as ID on the page of your marketplace.
-- Marketplace contract address: Labeled as Address on the page of your marketplace.
-- Project ID override: Override this value if you want to use a project ID that is different from the one that you have in your Chainsafe SDK settings.
-- Marketplace ABI override: Override this if you have created a custom version of our marketplace smart contract.
-- Endpoint override: Override this if you are hosting marketplace somewhere else other than on the Chainsafes dashboard.
-
-Once you fill out all the details you can list the items from the marketplace by simply calling
-
-```csharp
-var marketplacePage = await Web3Unity.Web3.Marketplace().LoadPage();
-```
-This will retrieve you a marketplace page, and not all the items that you have listed, because marketplace supports pagination, so you can add pagination support on your Unity client as well.
-The basic sample can be found in the Samples section of the Marketplace package, but for the sake of simplicity I'll add the listing code snippet in here.
-```csharp
-namespace ChainSafe.Gaming.Marketplace.Samples
-{
- public class MarketplaceSample : MonoBehaviour
- {
- [SerializeField] private Transform parentForItems;
- [SerializeField] private UI_MarketplaceItem marketplaceItem;
- [SerializeField] private Button nextPageButton;
-
- private MarketplacePage _currentPage;
- private async void Start()
- {
- //Always make sure to initialize the Web3Unity instance first.
- await Web3Unity.Instance.Initialize(false);
- try
- {
- LoadingOverlay.ShowLoadingOverlay();
- //This gets all items from the marketplace
- //LoadPage has a lot of parameters that you can fill out in order to filter out the results.
- _currentPage = await Web3Unity.Web3.Marketplace().LoadPage();
-
- nextPageButton.interactable = !string.IsNullOrEmpty(_currentPage.Cursor);
-
- await DisplayItems();
- }
- catch (Exception e)
- {
- Debug.LogError("Caught an exception whilst loading the marketplace page " + e.Message);
- }
- finally
- {
- LoadingOverlay.HideLoadingOverlay();
- }
- }
-
- private async Task DisplayItems()
- {
- for (int i = parentForItems.childCount - 1; i >= 0; i--)
- {
- Destroy(parentForItems.GetChild(i).gameObject);
- }
- //_currentPage.Items holds the reference to all the items fetched from the marketplace
- foreach (var pageItem in _currentPage.Items)
- {
- var item = Instantiate(marketplaceItem, parentForItems);
- await item.Initialize(pageItem);
- }
- }
- }
-}
-
-
- //Monobehaviour that handles the display of the marketplace items.
- public class UI_MarketplaceItem : MonoBehaviour
- {
- [SerializeField] private Image marketplaceItemImage;
- [SerializeField] private TMP_Text type, itemId, itemPrice, itemStatus;
- [SerializeField] private Button button;
-
- private MarketplaceItem _marketplaceItemModel;
-
- private static Dictionary _spritesDict = new();
-
- public async Task Initialize(MarketplaceItem model)
- {
- _marketplaceItemModel = model;
- button.interactable = model.Status == MarketplaceItemStatus.Listed;
- itemStatus.text = model.Status == MarketplaceItemStatus.Listed ? "Purchase" : model.Status.ToString();
- marketplaceItemImage.sprite = await GetSprite(model);
- type.text = model.Token.Type;
- itemId.text = "ID " + model.Token.Id;
- itemPrice.text =
- ((decimal)BigInteger.Parse(model.Price) / (decimal)BigInteger.Pow(10, 18)).ToString("0.############",
- CultureInfo.InvariantCulture) + Web3Unity.Web3.ChainConfig.Symbol;
- button.onClick.AddListener(Purchase);
- }
-
- private async Task GetSprite(MarketplaceItem model)
- {
- Sprite sprite = null;
- string imageUrl = (string)model.Token.Metadata["image"];
- //Caching data for faster retreival of the sprites.
- if (_spritesDict.TryGetValue(imageUrl, out sprite)) return sprite;
-
- var unityWebRequest = UnityWebRequestTexture.GetTexture(imageUrl);
- await unityWebRequest.SendWebRequest();
- if (unityWebRequest.error != null)
- {
- Debug.LogError("There was an error getting the texture " + unityWebRequest.error);
- return null;
- }
-
- var myTexture = ((DownloadHandlerTexture)unityWebRequest.downloadHandler).texture;
-
- sprite = Sprite.Create(myTexture, new Rect(0, 0, myTexture.width, myTexture.height), Vector2.one * 0.5f);
-
- return sprite;
- }
-
- private async void Purchase()
- {
- try
- {
- await Web3Unity.Web3.Marketplace().Purchase(_marketplaceItemModel.Id, _marketplaceItemModel.Price);
- //After the purchase is sucsessfull, just make the button unresponsive and set the button indicator to Sold
- button.interactable = false;
- itemStatus.text = "Sold";
- }
- catch (ServiceNotBoundWeb3Exception _)
- {
- Debug.LogError("You wanted to purchase an item and you don't have a wallet. Please connect the wallet to make a purchase");
- Web3Unity.ConnectModal.Open();
- }
- }
- }
-
-```
-
-## 5. Use marketplace with the Rest API
-
-If you prefer to access your items without our official Marketplace plugin, once you have listed NFTs for your marketplace, you can access your marketplace items via RESTful set of APIs provided by the ChainSafe.
-Head over to the [Marketplace API Specification](./../marketplace-api/docs/marketplaceapi.mdx) to know more about how to interact with the marketplace items.
-
diff --git a/docs/nft_marketplace/assets/deploy_marketplace.gif b/docs/nft_marketplace/assets/deploy_marketplace.gif
deleted file mode 100644
index e590737c..00000000
Binary files a/docs/nft_marketplace/assets/deploy_marketplace.gif and /dev/null differ
diff --git a/docs/nft_marketplace/assets/introduction.png b/docs/nft_marketplace/assets/introduction.png
deleted file mode 100644
index 22ea935b..00000000
Binary files a/docs/nft_marketplace/assets/introduction.png and /dev/null differ
diff --git a/docs/nft_marketplace/assets/list_nft.gif b/docs/nft_marketplace/assets/list_nft.gif
deleted file mode 100644
index 17ce5d87..00000000
Binary files a/docs/nft_marketplace/assets/list_nft.gif and /dev/null differ
diff --git a/docs/nft_marketplace/assets/marketplace_abi.json b/docs/nft_marketplace/assets/marketplace_abi.json
deleted file mode 100644
index d31d0f40..00000000
--- a/docs/nft_marketplace/assets/marketplace_abi.json
+++ /dev/null
@@ -1,1331 +0,0 @@
-[
- {
- "inputs": [],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "inputs": [],
- "name": "AlreadySameStatus",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "AmountInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "CanNotModify",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "DeadlineInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "EtherTransferFailed",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "FeeReceiverInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "IncorrectAmountSupplied",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "IncorrectLength",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "ItemExpired",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "ItemIdInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "MaxFeeInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "NFTAlreadyWhitelisted",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "NftTokenInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "NotEnoughBalance",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "NotExpired",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "OperatorInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "TotalFeePercentInvalid",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "Unauthorized",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "WhitelistingDisabled",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "ZeroAddress",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "ZeroFeePercent",
- "type": "error"
- },
- {
- "inputs": [],
- "name": "ZeroPrice",
- "type": "error"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "treasury",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "name": "ChainSafeFeeUpdated",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "feeCollector",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "FeeClaimed",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "feeReceiver",
- "type": "address"
- }
- ],
- "name": "FeeReceiverRemoved",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "feeReceiver",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "name": "FeeReceiverSet",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint8",
- "name": "version",
- "type": "uint8"
- }
- ],
- "name": "Initialized",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "itemId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- }
- ],
- "name": "ItemCancelled",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "nftContract",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "itemId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "seller",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "price",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "deadline",
- "type": "uint256"
- }
- ],
- "name": "ItemListed",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "itemId",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "buyer",
- "type": "address"
- }
- ],
- "name": "ItemSold",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "name": "MaxFeeUpdated",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address[]",
- "name": "nftAddresses",
- "type": "address[]"
- }
- ],
- "name": "NFTBlacklisted",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address[]",
- "name": "nftAddresses",
- "type": "address[]"
- }
- ],
- "name": "NFTWhitelisted",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "previousAdminRole",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "newAdminRole",
- "type": "bytes32"
- }
- ],
- "name": "RoleAdminChanged",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "sender",
- "type": "address"
- }
- ],
- "name": "RoleGranted",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "sender",
- "type": "address"
- }
- ],
- "name": "RoleRevoked",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "bool",
- "name": "isEnabled",
- "type": "bool"
- }
- ],
- "name": "WhitelistingStatusUpdated",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "CREATOR_ROLE",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "DEFAULT_ADMIN_ROLE",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "UPDATER_ROLE",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "_feeReceiverDetails",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "feeCollected",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "activeItems",
- "outputs": [
- {
- "components": [
- {
- "internalType": "address",
- "name": "nftContract",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "seller",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "price",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "deadline",
- "type": "uint256"
- }
- ],
- "internalType": "struct Marketplace.MarketItem[]",
- "name": "",
- "type": "tuple[]"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address[]",
- "name": "nftAddresses",
- "type": "address[]"
- }
- ],
- "name": "blacklistNFTContracts",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256[]",
- "name": "itemIds",
- "type": "uint256[]"
- }
- ],
- "name": "cancelExpiredListings",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "itemId",
- "type": "uint256"
- }
- ],
- "name": "cancelListing",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "chainsafeTreasury",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- }
- ],
- "name": "claimFee",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bool",
- "name": "isEnable",
- "type": "bool"
- }
- ],
- "name": "enableWhitelisting",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "from",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "to",
- "type": "uint256"
- }
- ],
- "name": "expiredListingIds",
- "outputs": [
- {
- "internalType": "uint256[]",
- "name": "",
- "type": "uint256[]"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "feeReceiver",
- "type": "address"
- }
- ],
- "name": "feeCollectedByReceiver",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- }
- ],
- "name": "feeReceiver",
- "outputs": [
- {
- "internalType": "address",
- "name": "feeReceiver",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "feeReceiversNumber",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- }
- ],
- "name": "getRoleAdmin",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "grantRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "hasRole",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "projectID",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "marketplaceID",
- "type": "string"
- },
- {
- "internalType": "address",
- "name": "creator",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "updater",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "treasury",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "isWhitelistingEnable",
- "type": "bool"
- },
- {
- "internalType": "uint256",
- "name": "chainsafeFeePercent",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "maxPercent",
- "type": "uint256"
- }
- ],
- "name": "initialize",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "token",
- "type": "address"
- }
- ],
- "name": "isNftToken",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "itemId",
- "type": "uint256"
- }
- ],
- "name": "itemById",
- "outputs": [
- {
- "components": [
- {
- "internalType": "address",
- "name": "nftContract",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "seller",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "price",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "deadline",
- "type": "uint256"
- }
- ],
- "internalType": "struct Marketplace.MarketItem",
- "name": "",
- "type": "tuple"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "nftContract",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "price",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "deadline",
- "type": "uint256"
- }
- ],
- "name": "listItem",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address[]",
- "name": "nftContracts",
- "type": "address[]"
- },
- {
- "internalType": "uint256[]",
- "name": "tokenIds",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "amounts",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "prices",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "deadlines",
- "type": "uint256[]"
- }
- ],
- "name": "listItems",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "marketplaceID",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "maxFeePercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- }
- ],
- "name": "nftToken",
- "outputs": [
- {
- "internalType": "address",
- "name": "token",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "uint256[]",
- "name": "ids",
- "type": "uint256[]"
- },
- {
- "internalType": "uint256[]",
- "name": "values",
- "type": "uint256[]"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "onERC1155BatchReceived",
- "outputs": [
- {
- "internalType": "bytes4",
- "name": "",
- "type": "bytes4"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "onERC1155Received",
- "outputs": [
- {
- "internalType": "bytes4",
- "name": "",
- "type": "bytes4"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "id",
- "type": "uint256"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "onERC721Received",
- "outputs": [
- {
- "internalType": "bytes4",
- "name": "",
- "type": "bytes4"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "projectID",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "itemId",
- "type": "uint256"
- }
- ],
- "name": "purchaseItem",
- "outputs": [],
- "stateMutability": "payable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "feeReceiver",
- "type": "address"
- }
- ],
- "name": "removeFeeReceiver",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "renounceRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "role",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "revokeRole",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "feeReceiver",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "name": "setFeeReceiver",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "name": "setMaxFeePercent",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes4",
- "name": "interfaceId",
- "type": "bytes4"
- }
- ],
- "name": "supportsInterface",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalFeePercent",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalListings",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "treasury",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "feePercent",
- "type": "uint256"
- }
- ],
- "name": "updateChainSafeTreasury",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "user",
- "type": "address"
- }
- ],
- "name": "usersListingIds",
- "outputs": [
- {
- "internalType": "uint256[]",
- "name": "",
- "type": "uint256[]"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "user",
- "type": "address"
- }
- ],
- "name": "usersListings",
- "outputs": [
- {
- "components": [
- {
- "internalType": "address",
- "name": "nftContract",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "seller",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "price",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "deadline",
- "type": "uint256"
- }
- ],
- "internalType": "struct Marketplace.MarketItem[]",
- "name": "",
- "type": "tuple[]"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address[]",
- "name": "nftAddresses",
- "type": "address[]"
- }
- ],
- "name": "whitelistNFTContracts",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "whitelistingEnable",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "stateMutability": "payable",
- "type": "receive"
- }
-]
\ No newline at end of file
diff --git a/docs/nft_marketplace/assets/marketplace_overview.png b/docs/nft_marketplace/assets/marketplace_overview.png
deleted file mode 100644
index 2f9c38e6..00000000
Binary files a/docs/nft_marketplace/assets/marketplace_overview.png and /dev/null differ
diff --git a/docs/nft_marketplace/assets/marketplace_sample.png b/docs/nft_marketplace/assets/marketplace_sample.png
deleted file mode 100644
index 135a16a8..00000000
Binary files a/docs/nft_marketplace/assets/marketplace_sample.png and /dev/null differ
diff --git a/docs/nft_marketplace/assets/select_project.gif b/docs/nft_marketplace/assets/select_project.gif
deleted file mode 100644
index 676d1c55..00000000
Binary files a/docs/nft_marketplace/assets/select_project.gif and /dev/null differ
diff --git a/docs/v2.6/13_lootboxes.md b/docs/v2.6/13_lootboxes.md
deleted file mode 100644
index 9cd30b25..00000000
--- a/docs/v2.6/13_lootboxes.md
+++ /dev/null
@@ -1,404 +0,0 @@
----
-slug: /current/lootboxes
-sidebar_position: 13
-sidebar_label: Lootboxes
----
-
-# LootBoxes
-
-:::info
-
-This page will walk you through our newest feature, lootboxes. It's a nifty little way to offer in game sales of items with a sense of randomness.
-
-:::
-
-## What Are Lootboxes?
-
-Lootboxes are a great way to offer your users NFTs, tokens & variety of other things in a gamified way. Many things from cosmetics to in game items can be offered with a sense of randomness via the Chainlink VRF to help facilitate anticipation and hopefully a fun way to bring developers some much needed revenue.
-
-1. You can import our Lootboxes sample scene by navigating to Window → Package Manager.
-2. Add a new package by name by pressing + and adding via git url and entering
-```js
-https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.lootboxes
-```
-3. Once the package is installed, click on the Samples tab. Import the samples.
-4. Once imported, you can find the scene by navigating to Samples → web3.unity SDK → 3.0.X → Web3.Unity Samples → Scenes → SampleLogin - Lootboxes.
-
-## What is Chainlink VRF?
-
-VRF stands for Verifiable Random Function, the team over at [Chainlink](https://chain.link/?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals) have created this number generator. It generates random numbers along with verification on chain before any consuming applications can get their hands on it. This amazing number generator is built for blockchains, it provides cryptographically secure randomness for your contract functions. To find out more about Chainlink VRF you can check out the documentation [here](https://docs.chain.link/vrf?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals).
-
-## Solidity Contracts
-
-The repo for the lootbox contracts can be found [here](https://github.com/ChainSafe/vrf-lootbox-contracts).
-
-
-
-
-
-## Deploying a new Lootbox
-
-New lootboxes can be deployed by navigating to the Lootbox section. When you click on the section you will see a brief explanation on what lootboxes are as well as the requirements needed to use them. Press Continue to get started.
-
-
-
-## Adding Token Contracts To Your Lootbox
-
-The first step is to whitelist the tokens you want to place into the lootboxes. This ensures that only approved tokens can become available in your lootboxes.
-
-
-
-## Granting Depositor Access To Your Lootbox
-
-Add approved addresses to prevent unauthorized deposits.
-
-
-
-## Sending Loot To A Contract
-
-This area can be used to send loot to a contract.
-
-
-
-## Updating Your Lootbox Rewards
-
-Here you can update all of the various reward amounts that your lootboxes contain as well as any remaining balances from your suppliers.
-
-
-
-## Minting & Transferring
-
-Here you can send lootboxes with reward amounts out to your friends, Dapps, and other smart contracts.
-
-
-
-# Lootbox Functions Within The SDK
-
-## Lootbox Sample Scene
-
-To use the lootbox example scene simply open it and press play to check out how our lootboxes function within unity. You can claim lootboxes & even browse your inventory to see any existing rewards. The service adapter for the lootboxes can be found on the Web3 object in the scene. It's already set up with an example contract but you can change this out as you wish. The content generated from the rewards and the inventory are pulled dynamically from the lootbox contract so you don't need to worry about manual updates.
-
-
-
-### Open lootbox area
-
-Upon opening the lootbox sample scene you'll be presented with a lootbox image and a few menu options. The underlying code of the menu can be dropped straight into a scene of your choosing or you can alter piece of it as use what you like as needed to create your own lootbox experience for your game.
-
-### Lootbox Quantity
-
-There is a quantity of lootboxes displayed just above the lootbox image, this is the amount of lootboxes the current connect account holds that are ready to be opened.
-
-### Claim
-
-This button will claim a lootbox if there is an amount available to be claimed. By default it will open 1 at a time but if you go into the open function you can alter the amount parameter to open more.
-
-```csharp
-private async Task ClaimLootbox()
-{
- var selectedText = lootboxDropdown.options[lootboxDropdown.value].text;
- Debug.Log("Claiming Lootbox");
- if (uint.TryParse(selectedText.Replace("ID: ", ""), out uint selectedId) && lootboxBalances.TryGetValue(selectedId, out uint selectedAmount))
- {
- uint amountToOpen = 1;
- await lootboxService.OpenLootbox(selectedId, amountToOpen);
- }
- Debug.Log("Claiming rewards");
- await new WaitForSeconds(30);
- await lootboxService.ClaimRewards();
-}
-```
-
-### Drop down menu
-
-The drop down menu below the claim button lets you choose which type of lootbox to open. These are numbered in ascending order beginning from 1 based on the amount of loot assigned to the box from the dashboard. Whilst we've kept it logical here, you can change these to display rarities instead of numbers if you wish such as common, rare, epic etc to add a little bit more of a gamified feel.
-
-### Post
-
-This function opens up a social media post to twitter in the browser, this can be altered for any platform, bluesky, tiktok, Facebook etc etc. This is a great opportunity to offer your users more rewards for posting about the loot found on their socials. Free publicity is always good for any game new & old.
-
-### Recover
-
-The recover function has been included here, it's there for debugging in the instance that a lootbox fails to open due to gas issues. If claiming a lootbox keeps failing it could be because there is a pending option to open a lootbox already that hasn't been fulfilled. Pressing recover will attempt to solve this.
-
-### Rewards
-
-When claiming rewards, after the VRF has processed the proof the user will be presented with a pop up modal with the rewards in the lootbox. The display has been kept simple here in order for you to build on top it. For example you can then use this data along side camera transitions to make a captivating lootbox open animation that suits your game.
-
-### Inventory area
-
-On the top navigation bar you'll find the My Inventory menu item, this opens the users inventory and scans for all lootbox items owned by the user. These contract options are also dynamically populated from the lootbox contract set in the web3 object at the start. These items will spawn and populate with token information such as token type, id, name, amount, the image within the NFTs metadata (721/1155) will also be fetched and displayed.
-
-
-
-### Lootbox Service Adapter
-
-On the left side of the screen in the object hierarchy you can find the Web3Unity object, click on it and have a look at the components in the inspector on the right side of the screen. The example scenes object has a Lootboxes Service Adapter script and Events Service Adapter script. Both of these are used to facilitate events as well as creating an access point to the lootbox methods.
-
-
-
-This service adapter registers the contract in the serialized field within the editor with our default ABI, if you're using a custom implementation of our lootbox contract you will need to replace the ABI here, if you're using a lootbox from our dashboard you can just leave it as is, only the contract address will need updating as this one points to the example lootboxes on sepolia.
-
-```csharp
-public class LootboxesServicesAdapter : MonoBehaviour, IServiceAdapter
- {
- // Default values for Sepolia, modify as needed.
- [SerializeField] private string contractAbi = "ABI goes here";
- [SerializeField] private string lootboxAddress = "0xa31B74DF647979D50f155C7de5b80e9BA3A0C979";
-
- public Web3Builder ConfigureServices(Web3Builder web3Builder)
- {
- return web3Builder.Configure(services =>
- {
- services.UseChainlinkLootboxService(new LootboxServiceConfig
- {
- LootboxAddress = lootboxAddress,
- ContractAbi = contractAbi
- });
- services.AddSingleton();
- });
- }
- }
-```
-
-### Accessing the service adapter
-
-Once logged in, you can access the service adapter quite easily using the code snippet below. We can then save the service locally and reuse it as much as we like within a script to gain access to the methods below. I've included the initialization steps with events below to avoid errors as the service wont exist before the web3 object is built.
-
-```csharp
-public class LootboxManager : MonoBehaviour
-{
- private ILootboxService lootboxService;
-
- private void Awake()
- {
- Web3Unity.Web3Initialized += Web3Initialized;
- }
-
- private void Web3Initialized((Web3 web3, bool isLightweight) valueTuple)
- {
- if (valueTuple.isLightweight) return;
- lootboxService = Web3Unity.Web3.Chainlink().Lootboxes();
- // access functions from the service i.e
- // await lootboxService.OpenLootbox(selectedId, amountToOpen);
- }
-
- public void OnDestroy()
- {
- Web3Unity.Web3Initialized -= Web3Initialized;
- }
-```
-
-## Lootbox Methods
-
-Below we'll list some of the functions the lootbox service has access to as well as clarifying and what they do. These functions can be accessed via the lootboxService using dot notation as seen above. These is also a debug checkbox in the lootbox sample object "Open Lootbox Menu" object, toggle it on or off to see some additional options.
-
-## Get Loot box Types
-
-This method returns all lootbox type ids registered in the smart-contract. Lootbox type id also represents the number of rewards, that can be claimed by user when he opens the lootbox.
-
-```csharp
- public async Task> GetLootboxTypes()
- {
- var response = await this.contract.Call("getLootboxTypes");
- var bigIntTypes = (List)response[0];
-
- if (bigIntTypes.Any(v => v > int.MaxValue))
- {
- throw new Web3Exception(
- "Internal Error. Lootbox type is greater than int.MaxValue.");
- }
-
- var types = bigIntTypes.Select(bigInt => (int)bigInt).ToList();
-
- return types;
- }
-```
-
-## Balance Of
-
-This method returns the balance of lootboxes by type or specific user. Similar to how some games work, this may be used to display lootboxes in an inventory.
-
-```csharp
- // Uses the connected wallet as the target account.
- public async Task BalanceOf(int lootboxType)
- {
- var playerAddress = this.GetCurrentPlayerAddress();
-
- return await this.BalanceOf(playerAddress, lootboxType);
- }
-
- // Overload that takes an account address.
- public async Task BalanceOf(string account, int lootboxType)
- {
- var response = await this.contract.Call(
- "balanceOf",
- new object[] { account, lootboxType });
- var bigIntBalance = (BigInteger)response[0];
-
- if (bigIntBalance > int.MaxValue)
- {
- throw new Web3Exception(
- "Internal Error. Balance is greater than int.MaxValue.");
- }
-
- var balance = (int)bigIntBalance;
-
- return balance;
- }
-```
-
-## Calculate Open Price
-
-Calculates open price for the player. This can be used to display the total cost a user would need to pay for opening X amount of lootboxes.
-
-```csharp
- public async Task CalculateOpenPrice(int lootboxType, int lootboxCount)
- {
- var rewardCount = lootboxType * lootboxCount;
- var rawGasPrice = (await this.rpcProvider.GetGasPrice()).AssertNotNull("gasPrice").Value;
- var safeGasPrice = (rawGasPrice * 2) + BigInteger.Divide(rawGasPrice, new BigInteger(2)); // 300%
-
- var response = await this.contract.Call(
- "calculateOpenPrice",
- new object[] { 100000 + (GasPerUnit * rewardCount), safeGasPrice, rewardCount, });
- var openPrice = (BigInteger)response[0];
-
- return openPrice;
- }
-```
-
-## Can Claim Rewards
-
-This method checks if a user can claim their lootbox rewards. It's a great little security check you can run before claiming.
-
-```csharp
- public async Task CanClaimRewards(string account)
- {
- var response = await contract.Call(
- "canClaimRewards",
- new object[] { account });
- var canClaimRewards = (bool)response[0];
-
- return canClaimRewards;
- }
-```
-
-## Claim Rewards
-
-This method allows a user to claim their lootbox rewards. This can be placed after the call for payment.
-
-```csharp
- private void ExtractRewards(RewardsClaimedEvent rewardsClaimedEvent)
- {
- var rewards = LootboxRewards.Empty;
- var rewardType = this.rewardTypeByTokenAddress[rewardsClaimedEvent.TokenAddress];
- switch (rewardType)
- {
- case RewardType.Erc20:
- rewards.Erc20Rewards.Add(new Erc20Reward
- {
- ContractAddress = rewardsClaimedEvent.TokenAddress,
- AmountRaw = rewardsClaimedEvent.Amount,
- });
- break;
- case RewardType.Erc721:
- rewards.Erc721Rewards.Add(new Erc721Reward
- {
- ContractAddress = rewardsClaimedEvent.TokenAddress,
- TokenId = rewardsClaimedEvent.TokenId,
- });
- break;
- case RewardType.Erc1155:
- rewards.Erc1155Rewards.Add(new Erc1155Reward
- {
- ContractAddress = rewardsClaimedEvent.TokenAddress,
- TokenId = rewardsClaimedEvent.TokenId,
- Amount = rewardsClaimedEvent.Amount,
- });
- break;
- case RewardType.Erc1155Nft:
- rewards.Erc1155NftRewards.Add(new Erc1155NftReward
- {
- ContractAddress = rewardsClaimedEvent.TokenAddress,
- TokenId = rewardsClaimedEvent.TokenId,
- });
- break;
- case RewardType.Unset:
- default:
- throw new ArgumentOutOfRangeException();
- }
-
- OnRewardsClaimed?.Invoke(rewards);
- }
-```
-
-## Open Lootbox
-
-This method allows a user to open a lootbox. This should be called last after all of the payment steps have been completed.
-
-```csharp
- public async Task OpenLootbox(int lootboxType, int lootboxCount = 1)
- {
- var rewardCount = lootboxType * lootboxCount;
- var openPrice = await this.CalculateOpenPrice(lootboxCount, lootboxCount);
-
- await this.contract.Send(
- "open",
- new object[] { 100000 + (GasPerUnit * rewardCount), new[] { lootboxType }, new[] { lootboxCount } },
- new TransactionRequest { Value = new HexBigInteger(openPrice) });
- }
-```
-
-## Get Price
-
-This method gets the current lootbox price.
-
-```csharp
-public async Task GetPrice()
-{
- var response = await this.contract.Call("getPrice", new object[] { });
- return BigInteger.Parse(response[0].ToString());
-}
-```
-
-## Set Price
-
-This method sets the price to purchase a lootbox, it can only be called by the person that deployed the lootboxes.
-
-```csharp
-public async Task SetPrice(BigInteger price)
-{
- await this.contract.Send("setPrice", new object[] { price });
-}
-```
-
-## Buy Lootbox
-
-Allows a user to purchase a lootbox granted the price has been set by the lootbox owner.
-
-```csharp
-public async Task Buy(int amount, BigInteger maxPrice)
-{
- // Gets the current lootbox price
- var pricePerLootbox = await GetPrice();
- var priceToSend = pricePerLootbox * amount;
- await this.contract.Send("buy", new object[] { amount, maxPrice }, new TransactionRequest { Value = new HexBigInteger(priceToSend) });
-}
-```
-
-## Get inventory
-
-This method fetches all of the NFTs in the connected wallets inventory based on the contract supplied to the service adapter.
-
-```csharp
-public async Task GetInventory()
-{
- var result = await this.contract.Call("getInventory");
- var jsonResult = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(result));
- return jsonResult;
-}
-```
-
-Please check out the sample scene to see how these functions work.
\ No newline at end of file
diff --git a/docs/v2.6/1_getting-started.md b/docs/v2.6/1_getting-started.md
index 7066041b..e6ace983 100644
--- a/docs/v2.6/1_getting-started.md
+++ b/docs/v2.6/1_getting-started.md
@@ -7,11 +7,7 @@ sidebar_label: Getting Started
# Getting Started
-:::info
-
-This page will walk you through the process of installing the Web3 Unity SDK, setting up a project ID, and installing the ChainSafe Gaming sample scenes.
-:::
## Install the Web3.Unity SDK via Unity Package Manager
@@ -81,16 +77,9 @@ Go to window → package manager → select the web3.unity SDK package and press
## ChainSafe Server Settings
-### Set Project ID
-
-As the package is installed, you'll be prompted with the ChainSafe server settings. First you have to setup your Project ID. You can create one [here](https://dashboard.gaming.chainsafe.io/) or you can click on the "Get a Project ID" button in the server settings.
-
-
-
### Set Chain
-
-After you've completed the registration process, copy your Project ID into the project settings window. You should see a message in the console saying your project id is valid.
-Next up, you need to set up the list of chains you want to interact with inside of your project:
+To make the SDK work,
+You need to set up the list of chains you want to interact with inside of your project:

@@ -107,8 +96,6 @@ If you need to refer to the ChainSafe server settings area again, you can find i

### Add a Web3 Client object to your scene
-Right-click inside the Hierarchy view and select **Web3/Web3 Client**. This will add a new Web3 Client object for you.
-
-
+Just drag and drop the Web3Unity from Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Web3Unity.prefab to the scene and you should be good to go!
Now after you've done this, you need to choose your wallet provider.
\ No newline at end of file
diff --git a/docs/v2.6/22_service-adapters.md b/docs/v2.6/22_service-adapters.md
index d2b3055c..11e726d0 100644
--- a/docs/v2.6/22_service-adapters.md
+++ b/docs/v2.6/22_service-adapters.md
@@ -21,8 +21,6 @@ We have multiple service adapters available for you to use in the core package:
We have additional service adapters available in our additional packages:
- [Ramp](/current/ramp) service adapter
-- [Lootboxes](/current/lootboxes) service adapter
-- [Marketplace](/marketplace/tutorial#4-use-marketplace-inside-of-your-unity-game) service adapter

diff --git a/docusaurus.config.js b/docusaurus.config.js
index 877368f6..3b872331 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -15,11 +15,6 @@ const redocusaurus = [
spec: "./docs/token-api/spec/v1.spec.yaml",
route: "/v1",
},
- {
- id: "marketplace-api",
- spec: "./docs/marketplace-api/spec/v1.spec.yaml",
- route: "/v1",
- },
],
theme: {
/**
diff --git a/sidebars.js b/sidebars.js
index 1ae0c07e..14f1cf8d 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -33,7 +33,6 @@ module.exports = {
'v2.6/service-adapters',
'v2.6/gasless-transactions-using-gelato',
'v2.6/ramp',
- 'v2.6/lootboxes',
'v2.6/extending-the-sdk',
'v2.6/extending-ui',
],
@@ -46,24 +45,5 @@ module.exports = {
'v2.6/faq',
],
},
- {
- type: 'category',
- label: 'NFT Launchpad',
- items: [
- 'nft_launchpad/introduction',
- 'nft_launchpad/details',
- 'nft_launchpad/tutorial',
- 'token-api/docs/tokenapi',
- ],
- },
- {
- type: 'category',
- label: 'Marketplace',
- items: [
- 'nft_marketplace/introduction',
- 'nft_marketplace/tutorial',
- 'marketplace-api/docs/marketplaceapi',
- ],
- },
],
}