diff --git a/.github/renovate.json b/.github/renovate.json
index 01f497d3a6..aaf39b9676 100644
--- a/.github/renovate.json
+++ b/.github/renovate.json
@@ -4,37 +4,55 @@
"automerge": true,
"automergeType": "pr-comment",
"automergeComment": "lgtm",
- "extends": ["config:base", ":dependencyDashboard"],
+ "extends": [
+ "config:recommended",
+ ":dependencyDashboard"
+ ],
"prHourlyLimit": 5,
- "enabledManagers": ["npm"],
+ "enabledManagers": [
+ "npm"
+ ],
"rangeStrategy": "bump",
"updatePinnedDependencies": false,
- "schedule": ["before 3am on Monday"],
+ "schedule": [
+ "before 3am on Monday"
+ ],
"packageRules": [
{
- "matchSourceUrlPrefixes": [
- "https://github.com/polkadot-js/",
- "https://github.com/vue-polkadot/",
- "https://github.com/kodadot/packages",
- "https://github.com/cloudacy/vue-markdown-render",
- "https://github.com/FortAwesome/Font-Awesome",
- "https://github.com/TypeStrong/ts-loader"
- ],
"groupName": "merge with hazmat suit extra",
- "enabled": false
+ "enabled": false,
+ "matchSourceUrls": [
+ "https://github.com/polkadot-js/{/,}**",
+ "https://github.com/vue-polkadot/{/,}**",
+ "https://github.com/kodadot/packages{/,}**",
+ "https://github.com/cloudacy/vue-markdown-render{/,}**",
+ "https://github.com/FortAwesome/Font-Awesome{/,}**",
+ "https://github.com/TypeStrong/ts-loader{/,}**"
+ ]
},
{
"groupName": "Bumped minor version of packages",
"prHeader": "Bumped minor version of packages, check if builds are still passing, please 🥺",
- "matchUpdateTypes": ["minor", "patch"],
- "matchDepTypes": ["dependencies", "devDependencies"]
+ "matchUpdateTypes": [
+ "minor",
+ "patch"
+ ],
+ "matchDepTypes": [
+ "dependencies",
+ "devDependencies"
+ ]
},
{
- "matchUpdateTypes": ["major", "pin"],
+ "matchUpdateTypes": [
+ "major",
+ "pin"
+ ],
"enabled": false
},
{
- "packageNames": ["node"],
+ "matchPackageNames": [
+ "node"
+ ],
"enabled": false
}
]
diff --git a/components/base/BaseCollectionForm.vue b/components/base/BaseCollectionForm.vue
deleted file mode 100644
index d94dd1ae3a..0000000000
--- a/components/base/BaseCollectionForm.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
- {{ $t(label) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/components/collection/CollectionDetail.vue b/components/collection/CollectionDetail.vue
index f899f2e6d3..bcc4d4e32b 100644
--- a/components/collection/CollectionDetail.vue
+++ b/components/collection/CollectionDetail.vue
@@ -43,7 +43,7 @@
v-if="nfts && !isLoading"
class="flex justify-around is-vcentered"
>
-
+
{{ $t('collectionCard.volume') }}
@@ -52,7 +52,7 @@
:value="collectionTradedVolumeNumber"
/>
-
+
{{ $t('series.highestSale') }}
@@ -62,7 +62,7 @@
/>
-
+
{{ $t('collectionCard.items') }}
@@ -76,7 +76,7 @@
-
-
+
+
{
const currentDate = new Date()
const daysUntilThursday = (11 - currentDate.getDay()) % 7
- const millisecondsUntilThursday = daysUntilThursday * 24 * 60 * 60 * 1000
+ const millisecondsUntilThursday = daysUntilThursday * ONE_DAY_MS
currentDate.setUTCHours(14, 0, 0, 0) // Set time to 3 PM CET
const dropDate = new Date(currentDate.getTime() + millisecondsUntilThursday)
dropDate.setHours(currentDate.getHours())
diff --git a/components/drops/utils.ts b/components/drops/utils.ts
index 6f533abe8f..1bbabcce55 100644
--- a/components/drops/utils.ts
+++ b/components/drops/utils.ts
@@ -62,7 +62,6 @@ export const parseCETDate = (datetime: string): Date => {
export const dateHasTime = (datetime: string): boolean => /:/.test(datetime)
-const ONE_DAYH_IN_MS = 24 * 60 * 60 * 1000
const getLocalDropStatus = (drop: Pick): DropStatus => {
const now = new Date()
@@ -81,7 +80,7 @@ const getLocalDropStatus = (drop: Pick {
const onSwapClick = () => {
onTradeActionClick(() => {
const nft = props.nft
- const swap = swapStore.createSwap(nft.currentOwner)
-
- swapStore.updateItem({
- ...swap,
- desired: [
- {
- id: nft.id,
- collectionId: nft.collection.id,
- sn: nft.sn,
- name: nft.name,
- meta: nft.meta,
- },
- ],
+ const swap = swapStore.createSwap(nft.currentOwner, {
+ desired: [nftToSwapItem(nft)],
})
- navigateTo({
- name: 'prefix-swap-id',
- params: { id: nft.currentOwner },
- query: { swapId: swap.id },
- })
+ navigateToSwap(swap)
})
}
diff --git a/components/gallery/useGalleryItem.ts b/components/gallery/useGalleryItem.ts
index 7743440a85..bbbc9a67e5 100644
--- a/components/gallery/useGalleryItem.ts
+++ b/components/gallery/useGalleryItem.ts
@@ -64,8 +64,12 @@ export const useGalleryItem = (nftId?: string): GalleryItem => {
},
})
- const refreshToken = async () => {
+ const getIndexerToken = () => {
refetch({ id })
+ }
+
+ const refreshToken = async () => {
+ getIndexerToken()
getOdaToken()
}
@@ -120,7 +124,8 @@ export const useGalleryItem = (nftId?: string): GalleryItem => {
id
}
}`,
- onChange: refetch,
+ onChange: getIndexerToken,
+ immediate: false,
})
useSubscriptionGraphql({
diff --git a/components/items/ItemsGrid/ItemsGrid.vue b/components/items/ItemsGrid/ItemsGrid.vue
index b1dbb4d64c..a972ff4499 100644
--- a/components/items/ItemsGrid/ItemsGrid.vue
+++ b/components/items/ItemsGrid/ItemsGrid.vue
@@ -43,6 +43,7 @@
? 'minimal'
: 'primary'
"
+ :link-target="linkTarget"
/>
()
const {
diff --git a/components/items/ItemsGrid/ItemsGridImageTokenEntity.vue b/components/items/ItemsGrid/ItemsGridImageTokenEntity.vue
index 922c92a68b..3c6c948146 100644
--- a/components/items/ItemsGrid/ItemsGridImageTokenEntity.vue
+++ b/components/items/ItemsGrid/ItemsGridImageTokenEntity.vue
@@ -20,6 +20,7 @@
:media-static-video="hideVideoControls"
:lazy-loading="lazyLoading"
media-hover-on-cover-play
+ :link-target="linkTarget"
>
()
const {
diff --git a/components/massmint/OverviewTable.vue b/components/massmint/OverviewTable.vue
index 416e69498c..ef2eafe911 100644
--- a/components/massmint/OverviewTable.vue
+++ b/components/massmint/OverviewTable.vue
@@ -6,131 +6,115 @@
-
-
- #
-
-
- {{ $t('massmint.image') }}
-
-
- {{ $t('massmint.name') }}
-
-
- {{ $t('massmint.description') }}
-
-
- {{ $t('nft.properties.label') }}
-
-
- {{ $t('massmint.price') }}
-
-
- {{ $t('massmint.status') }}
-
-
- {{ $t('massmint.operation') }}
-
-
-
-
- {{ nft.id }}
-
-
-
-
-
-
+
+
+ # |
+ {{ $t('massmint.image') }} |
+ {{ $t('massmint.name') }} |
+ {{ $t('massmint.description') }} |
+ {{ $t('nft.properties.label') }} |
+ {{ $t('massmint.price') }} |
+ {{ $t('massmint.status') }} |
+ {{ $t('massmint.operation') }} |
+
+
+
+
- {{ nft.name || '*' + $t('massmint.nameRequired') }}
-
-
-
-
- {{ nft.description || $t('massmint.descriptionMissing') }}
-
-
-
-
- {{ nft.attributes?.length ? getNftAttributesOverview(nft) : $t('massmint.attributesMissing') }}
-
-
-
-
-
-
- {{ $t('massmint.priceMissing') }}
-
-
-
-
-
-
- {{ statusTranslation(nft.status) }}
-
-
-
-
-
+
+ {{ nft.id }}
+ |
+
+
+ |
+
+
+ {{ nft.name || '*' + $t('massmint.nameRequired') }}
+
+ |
+
+
+ {{ nft.description || $t('massmint.descriptionMissing') }}
+
+ |
+
+
+ {{ nft.attributes?.length ? getNftAttributesOverview(nft) : $t('massmint.attributesMissing') }}
+
+ |
+
+
+
+
+ {{ $t('massmint.priceMissing') }}
+
+
+ |
+
+
+
+ {{ statusTranslation(nft.status) }}
+
+
+ |
+
+
-
-
-
+
+ |
+
+
+
diff --git a/components/massmint/descriptionTabs.ts b/components/massmint/descriptionTabs.ts
index e83b060c23..de256043c8 100644
--- a/components/massmint/descriptionTabs.ts
+++ b/components/massmint/descriptionTabs.ts
@@ -45,9 +45,9 @@ export const descriptionTabs = {
label: 'CSV',
fileStructureDescription: `
\`\`\`properties
- file,name,description,price
- file1.jpg,Image1,This is an image,100
- file2.jpg,Image2,,200
+ file,name,description,attributes,price
+ file1.jpg,Image1,This is an image,color:white;expression:happy,100
+ file2.jpg,Image2,,color:blue;expression:shy,200
file3.jpg,,This is another image,
\`\`\`
`,
diff --git a/components/migrate/steps/Index.vue b/components/migrate/steps/Index.vue
index 21b4ceaee1..f2f5fecba7 100644
--- a/components/migrate/steps/Index.vue
+++ b/components/migrate/steps/Index.vue
@@ -11,8 +11,8 @@
{{ $t('migrate.homeButton') }}
-
-
+
+
-
-
-
-
- {{ $t('computed id') }}: {{ rmrkId }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/components/rmrk/Gallery/EmotionModal.vue b/components/rmrk/Gallery/EmotionModal.vue
deleted file mode 100644
index 4d56ae0f3e..0000000000
--- a/components/rmrk/Gallery/EmotionModal.vue
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
- See who reacted...
-
-
-
-
-
-
-
- {{ emote.parsed }}
-
-
-
{{ emote.count }} person reacted to this NFT:
-
-
-
-
-
- Load More
-
-
-
-
-
-
-
-
diff --git a/components/rmrk/Gallery/Flipper.vue b/components/rmrk/Gallery/Flipper.vue
deleted file mode 100644
index 824bb8f1d4..0000000000
--- a/components/rmrk/Gallery/Flipper.vue
+++ /dev/null
@@ -1,166 +0,0 @@
-
-
-
-
-
diff --git a/components/rmrk/Gallery/Holder/Holder.vue b/components/rmrk/Gallery/Holder/Holder.vue
deleted file mode 100644
index 2eec0fc6c8..0000000000
--- a/components/rmrk/Gallery/Holder/Holder.vue
+++ /dev/null
@@ -1,519 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- NFT Details
-
-
-
-
- {{ column.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ props.row.Amount }}
-
-
- {{ props.row.BoughtFormatted }}
-
-
- {{ props.row.SaleFormatted }}
-
-
-
- {{ toPercent(props.row.Percentage, '-') }}
-
-
-
-
-
-
-
-
-
- |
-
-
- {{ item.Item.name || item.Item.id }}
-
- |
-
- {{ item.Amount }}
- |
-
- {{ item.BoughtFormatted }}
- |
-
- {{ item.SaleFormatted }}
- |
-
- {{ toPercent(item.Percentage, '-') }}
- |
-
-
-
-
- |
-
-
-
-
-
-
-
-
diff --git a/components/rmrk/Gallery/Holder/helper.ts b/components/rmrk/Gallery/Holder/helper.ts
deleted file mode 100644
index 9ea8c3f40b..0000000000
--- a/components/rmrk/Gallery/Holder/helper.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import formatBalance from '@/utils/format/balance'
-
-export const parsePriceForItem = (item, decimals, unit) => {
- item['BoughtFormatted'] = parseInt(item['Bought'])
- ? formatBalance(item['Bought'], decimals, unit)
- : '-'
- item['SaleFormatted'] = parseInt(item['Sale'])
- ? formatBalance(item['Sale'], decimals, unit)
- : '-'
- item['Percentage']
- = item['Bought'] && item['Sale'] ? (item['Sale'] / item['Bought']) * 100 : 0
-}
diff --git a/components/rmrk/Gallery/Layout.vue b/components/rmrk/Gallery/Layout.vue
deleted file mode 100644
index 7d757f3bd8..0000000000
--- a/components/rmrk/Gallery/Layout.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/components/rmrk/service/Consolidator.ts b/components/rmrk/service/Consolidator.ts
deleted file mode 100644
index fc00346508..0000000000
--- a/components/rmrk/service/Consolidator.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { u8aToHex } from '@polkadot/util'
-import { decodeAddress } from '@polkadot/keyring'
-
-function accountIdToPubKey(accountId: string) {
- return (accountId && u8aToHex(decodeAddress(accountId))) || ''
-}
-
-export function generateId(caller: string, symbol: string): string {
- if (!caller) {
- return ''
- }
-
- const pubkey = caller.startsWith('0x') ? caller : accountIdToPubKey(caller)
- return (
- pubkey?.substr(2, 10)
- + pubkey?.substring(pubkey.length - 8)
- + '-'
- + (symbol || '')
- ).toUpperCase()
-}
diff --git a/components/search/SearchProfiles.vue b/components/search/SearchProfiles.vue
index 8051a5b458..a7fa6cf598 100644
--- a/components/search/SearchProfiles.vue
+++ b/components/search/SearchProfiles.vue
@@ -68,7 +68,7 @@ const openProfilePage = (address: string) => {
}
else {
const prefix = isEvm.value ? 'ahp' : urlPrefix.value
- router.push(`/${prefix}/u/${address}`)
+ router.push(`/${prefix}/u/${getss58AddressByPrefix(address, prefix)}`)
}
emit('close')
}
diff --git a/components/shared/AddressInput.vue b/components/shared/AddressInput.vue
index 604587c7f7..4aaf2f8158 100644
--- a/components/shared/AddressInput.vue
+++ b/components/shared/AddressInput.vue
@@ -7,7 +7,7 @@
>
{
return ''
})
-const iconRight = computed(() => {
- if (inputValue.value && props.icon === 'close-circle') {
- return 'close-circle'
+const inputIconRight = computed(() => {
+ if (inputValue.value && props.iconRight === 'close') {
+ return 'close'
}
return ''
})
diff --git a/components/shared/nftCard/NftCard.vue b/components/shared/nftCard/NftCard.vue
index c6e38fcb0b..60f31bac65 100644
--- a/components/shared/nftCard/NftCard.vue
+++ b/components/shared/nftCard/NftCard.vue
@@ -6,6 +6,7 @@
(),
{
collectionPopoverShowDelay: 500,
diff --git a/components/swap/GridList.vue b/components/swap/GridList.vue
index 310e5d758d..9fc930a2d0 100644
--- a/components/swap/GridList.vue
+++ b/components/swap/GridList.vue
@@ -10,6 +10,7 @@
:search="query"
grid-size="medium"
:grid-section="gridSection"
+ link-target="_blank"
:hide-hover-action="!selectable"
>
import { NeoButton } from '@kodadot1/brick'
-const { isCurrentOwner } = useAuth()
+const { isCurrentAccount } = useAuth()
const { $i18n } = useNuxtApp()
const traderAddress = ref('')
@@ -89,7 +90,7 @@ const label = computed(() => {
const handleAddressCheck = (isValid: boolean) => {
isTraderAddressValid.value = isValid
- isYourAddress.value = isTraderAddressValid.value ? isCurrentOwner(traderAddress.value) : false
+ isYourAddress.value = isTraderAddressValid.value ? isCurrentAccount(traderAddress.value) : false
}
const handleSubmit = async () => {
diff --git a/components/trade/TradeActivityTable.vue b/components/trade/TradeActivityTable.vue
index 288d4be586..1c8270a2fc 100644
--- a/components/trade/TradeActivityTable.vue
+++ b/components/trade/TradeActivityTable.vue
@@ -63,6 +63,7 @@
:trade="item"
:target="tabTarget"
:variant="variant"
+ @counter-swap="() => onCounterSwapClick(item)"
@select="() => {
selectedTrade = item
isTradeModalOpen = true
@@ -95,6 +96,7 @@ const props = defineProps<{
}>()
const route = useRoute()
+const swapStore = useAtomicSwapStore()
const { replaceUrl } = useReplaceUrl()
const dataKey = TRADES_QUERY_MAP[props.type].dataKey
@@ -135,7 +137,33 @@ const where = computed(() => {
return { id_in: id_in.flat() }
})
-const { items: trades, loading: loadingTrades, refetch } = useTrades({ where, disabled: computed(() => !tradeIds.value), type: props.type })
+const { items: trades, loading: loadingTrades } = useTrades({ where, disabled: computed(() => !Object.keys(where.value).length), type: props.type })
+
+const onCounterSwapClick = (trade: TradeNftItem) => {
+ if (!trade.desired) {
+ return
+ }
+
+ const withFields: CrateSwapWithFields = {
+ desired: [tradeToSwapItem(trade.offered)],
+ offered: [tradeToSwapItem(trade.desired)],
+ }
+
+ const tSwap = trade as TradeNftItem
+
+ if (tSwap.surcharge) {
+ Object.assign(withFields, {
+ surcharge: {
+ amount: tSwap.price,
+ direction: tSwap.surcharge,
+ },
+ })
+ }
+
+ const swap = swapStore.createSwap(trade.caller, withFields)
+
+ navigateToSwap(swap)
+}
watch(activeTab, value => replaceUrl({ filter: value }))
@@ -155,13 +183,6 @@ useSubscriptionGraphql({
}
`,
onChange: ({ data }) => {
- if (tradeIds.value && (
- (isIncomingActive.value && tradeIds.value.incoming.length !== data.incoming.length)
- || (isOutgoingActive.value && tradeIds.value.outgoing.length !== data.outgoing.length))
- ) {
- refetch({ where: where.value })
- }
-
tradeIds.value = {
incoming: data.incoming.map(item => item.id),
outgoing: data.outgoing.map(item => item.id),
diff --git a/components/trade/TradeActivityTableRow.vue b/components/trade/TradeActivityTableRow.vue
index 1f13228432..bd635eb8cc 100644
--- a/components/trade/TradeActivityTableRow.vue
+++ b/components/trade/TradeActivityTableRow.vue
@@ -92,9 +92,11 @@
@@ -180,9 +182,12 @@
@@ -202,7 +207,7 @@ const EXPIRATION_FORMAT = 'dd.MM. HH:MM'
type Item = TradeToken | TradeConsidered
-defineEmits(['select'])
+defineEmits(['select', 'counter-swap'])
const props = defineProps<{
trade: TradeNftItem
variant: ResponsiveVariant
diff --git a/components/trade/TradeExpirationSelector.vue b/components/trade/TradeExpirationSelector.vue
index 0904d3b89f..96aa558c1e 100644
--- a/components/trade/TradeExpirationSelector.vue
+++ b/components/trade/TradeExpirationSelector.vue
@@ -7,7 +7,7 @@
append-to-body
close-menu-on-move
class="w-full"
- menu-class="!min-w-[8rem]"
+ menu-class="!min-w-[8rem] !mt-0 !ml-[168px]"
>