diff --git a/resources/js/components/RadioGroupButton.vue b/resources/js/components/RadioGroupButton.vue
index 0b8d43fc..7a3392df 100644
--- a/resources/js/components/RadioGroupButton.vue
+++ b/resources/js/components/RadioGroupButton.vue
@@ -11,6 +11,8 @@
{
'md:grid-cols-2': cols === 2,
'md:grid-cols-3': cols === 3,
+ 'md:grid-cols-4': cols === 4,
+ 'md:grid-cols-5': cols === 5,
},
`mt-4 grid grid-cols-2 gap-y-6 gap-x-4`,
]"
@@ -26,7 +28,7 @@
diff --git a/resources/js/components/marketplace/CounterOffersList.vue b/resources/js/components/marketplace/CounterOffersList.vue
new file mode 100644
index 00000000..186a12b1
--- /dev/null
+++ b/resources/js/components/marketplace/CounterOffersList.vue
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+
+ Create Listing
+
+
+
+
+
+
+
+ |
+ ID
+ |
+
+ Listing ID
+ |
+
+ Price
+ |
+
+ Seller
+ |
+
+ Sales
+ |
+
+ Bids
+ |
+
+ State
+ |
+ |
+
+
+
+
+ |
+
+ {{ `#${listing.id}` }}
+
+ |
+
+ {{ shortString(listing.listingId) }}
+ |
+
+ {{ checkFormatPrice(listing.price, listing, currencySymbol) }}
+ |
+
+ {{ addressShortHex(listing.seller) }}
+ |
+
+ {{ listing.sales }}
+ |
+
+ {{ listing.bids }}
+ |
+
+ {{ listing.state.__typename }}
+ |
+
+ openModalSlide($event, listing)"
+ />
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/components/marketplace/OffersList.vue b/resources/js/components/marketplace/OffersList.vue
new file mode 100644
index 00000000..7ff35833
--- /dev/null
+++ b/resources/js/components/marketplace/OffersList.vue
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+
+ Create Offer
+
+
+
+
+
+
+
+ |
+ ID
+ |
+
+ Listing ID
+ |
+
+ Price
+ |
+
+ Seller
+ |
+
+ Sales
+ |
+
+ Bids
+ |
+
+ State
+ |
+ |
+
+
+
+
+ |
+
+ {{ `#${listing.id}` }}
+
+ |
+
+ {{ shortString(listing.listingId) }}
+ |
+
+ {{ checkFormatPrice(listing.price, listing, currencySymbol) }}
+ |
+
+ {{ addressShortHex(listing.seller) }}
+ |
+
+ {{ listing.sales }}
+ |
+
+ {{ listing.bids }}
+ |
+
+ {{ listing.state.__typename }}
+ |
+
+ openModalSlide($event, listing)"
+ />
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/components/pages/Marketplace.vue b/resources/js/components/pages/Marketplace.vue
index 24f90a04..57c445fc 100644
--- a/resources/js/components/pages/Marketplace.vue
+++ b/resources/js/components/pages/Marketplace.vue
@@ -25,6 +25,16 @@ const marketTypes = [
label: 'Listings',
value: 'ListingsList',
},
+ {
+ key: 'btn-offers',
+ label: 'Offers',
+ value: 'OffersList',
+ },
+ {
+ key: 'btn-counter-offers',
+ label: 'Counter Offers',
+ value: 'CounterOffersList',
+ },
{
key: 'btn-sales',
label: 'Sales',
@@ -35,6 +45,8 @@ const marketTypes = [
const martketRoutes = {
BidsList: 'platform.marketplace.bids',
ListingsList: 'platform.marketplace.listings',
+ OffersList: 'platform.marketplace.offers',
+ CounterOffersList: 'platform.marketplace.counter-offers',
SalesList: 'platform.marketplace.sales',
};
diff --git a/resources/js/components/pages/create/CreateListing.vue b/resources/js/components/pages/create/CreateListing.vue
index 1ac005a4..5607c92c 100644
--- a/resources/js/components/pages/create/CreateListing.vue
+++ b/resources/js/components/pages/create/CreateListing.vue
@@ -53,7 +53,7 @@
@@ -150,7 +150,7 @@
@@ -281,12 +281,15 @@ const createListing = async () => {
collectionId: takeCollectionId.value,
tokenId: formatToken(takeTokenId.value),
},
- auctionData: enableAuction.value
- ? {
- startBlock: auctionDataStart.value,
- endBlock: auctionDataEnd.value,
- }
- : null,
+ listingData: {
+ type: enableAuction.value ? 'AUCTION' : 'FIXED_PRICE',
+ auctionParams: enableAuction.value
+ ? {
+ startBlock: auctionDataStart.value,
+ endBlock: auctionDataEnd.value,
+ }
+ : undefined,
+ },
idempotencyKey: idempotencyKey.value,
})
);
diff --git a/resources/js/components/pages/create/CreateOffer.vue b/resources/js/components/pages/create/CreateOffer.vue
new file mode 100644
index 00000000..fd6bd838
--- /dev/null
+++ b/resources/js/components/pages/create/CreateOffer.vue
@@ -0,0 +1,315 @@
+
+
+
+
+
+ Create Offer
+
+
+
+
+
+
+
+
diff --git a/resources/js/graphql/mutation/marketplace/CreateListing.ts b/resources/js/graphql/mutation/marketplace/CreateListing.ts
index 10f64f22..ca71e6a8 100644
--- a/resources/js/graphql/mutation/marketplace/CreateListing.ts
+++ b/resources/js/graphql/mutation/marketplace/CreateListing.ts
@@ -1,11 +1,12 @@
-export default `mutation CreateListing($makeAssetId: MultiTokenIdInput!, $takeAssetId: MultiTokenIdInput!, $amount: BigInt!, $price: BigInt!, $salt: String, $auctionData: AuctionDataInputType, $idempotencyKey: String) {
+export default `mutation CreateListing($makeAssetId: MultiTokenIdInput!, $takeAssetId: MultiTokenIdInput!, $amount: BigInt!, $price: BigInt!, $salt: String, $listingData: ListingDataInput, $signingAccount: String, $idempotencyKey: String) {
CreateListing(
makeAssetId: $makeAssetId
takeAssetId: $takeAssetId
amount: $amount
price: $price
salt: $salt
- auctionData: $auctionData
+ listingData: $listingData
+ signingAccount: $signingAccount
idempotencyKey: $idempotencyKey
) {
id
diff --git a/resources/js/router/index.ts b/resources/js/router/index.ts
index 133229ae..e4004312 100644
--- a/resources/js/router/index.ts
+++ b/resources/js/router/index.ts
@@ -103,6 +103,16 @@ const routes = [
name: 'platform.marketplace.listings',
component: () => import('../components/marketplace/ListingsList.vue'),
},
+ {
+ path: 'offers',
+ name: 'platform.marketplace.offers',
+ component: () => import('../components/marketplace/OffersList.vue'),
+ },
+ {
+ path: 'counter-offers',
+ name: 'platform.marketplace.counter-offers',
+ component: () => import('../components/marketplace/CounterOffersList.vue'),
+ },
{
path: 'sales',
name: 'platform.marketplace.sales',
@@ -155,6 +165,15 @@ const routes = [
requiresToken: true,
},
},
+ {
+ path: '/create/offer',
+ name: 'platform.create.offer',
+ component: () => import('../components/pages/create/CreateOffer.vue'),
+ meta: {
+ requiresAuth: true,
+ requiresToken: true,
+ },
+ },
{
path: '/create/batch',
name: 'platform.create.batch',