Compare commits
No commits in common. "89b483554342ee67e5257fd9dc6ef9ab8d681b89" and "18bcc0315dd64154096b03fea6dff2a0ec498f0d" have entirely different histories.
89b4835543
...
18bcc0315d
|
|
@ -10,9 +10,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@rainbow-me/rainbowkit": "^1.3.1",
|
"@rainbow-me/rainbowkit": "^1.3.1",
|
||||||
"next": "^14.0.4",
|
"next": "13.5.6",
|
||||||
"react": "^18.2.0",
|
"react": "^18",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18",
|
||||||
"viem": "^1.20.0",
|
"viem": "^1.20.0",
|
||||||
"wagmi": "^1.4.12"
|
"wagmi": "^1.4.12"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
222
pnpm-lock.yaml
|
|
@ -3,22 +3,22 @@ lockfileVersion: '6.0'
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rainbow-me/rainbowkit':
|
'@rainbow-me/rainbowkit':
|
||||||
specifier: ^1.3.1
|
specifier: ^1.3.1
|
||||||
version: 1.3.1(react-dom@18.2.0)(react@18.2.0)(viem@1.20.0)(wagmi@1.4.12)
|
version: 1.3.1(react-dom@18.0.0)(react@18.0.0)(viem@1.20.0)(wagmi@1.4.12)
|
||||||
next:
|
next:
|
||||||
specifier: ^14.0.4
|
specifier: 13.5.6
|
||||||
version: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
version: 13.5.6(react-dom@18.0.0)(react@18.0.0)
|
||||||
react:
|
react:
|
||||||
specifier: ^18.2.0
|
specifier: ^18
|
||||||
version: 18.2.0
|
version: 18.0.0
|
||||||
react-dom:
|
react-dom:
|
||||||
specifier: ^18.2.0
|
specifier: ^18
|
||||||
version: 18.2.0(react@18.2.0)
|
version: 18.0.0(react@18.0.0)
|
||||||
viem:
|
viem:
|
||||||
specifier: ^1.20.0
|
specifier: ^1.20.0
|
||||||
version: 1.20.0(typescript@5.3.3)
|
version: 1.20.0(typescript@5.3.3)
|
||||||
wagmi:
|
wagmi:
|
||||||
specifier: ^1.4.12
|
specifier: ^1.4.12
|
||||||
version: 1.4.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.20.0)
|
version: 1.4.12(react-dom@18.0.0)(react@18.0.0)(typescript@5.3.3)(viem@1.20.0)
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
|
|
@ -156,12 +156,12 @@ packages:
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@next/env@14.0.4:
|
/@next/env@13.5.6:
|
||||||
resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==}
|
resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@next/swc-darwin-arm64@14.0.4:
|
/@next/swc-darwin-arm64@13.5.6:
|
||||||
resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==}
|
resolution: {integrity: sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
@ -169,8 +169,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-darwin-x64@14.0.4:
|
/@next/swc-darwin-x64@13.5.6:
|
||||||
resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==}
|
resolution: {integrity: sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
@ -178,8 +178,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-linux-arm64-gnu@14.0.4:
|
/@next/swc-linux-arm64-gnu@13.5.6:
|
||||||
resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==}
|
resolution: {integrity: sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
@ -187,8 +187,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-linux-arm64-musl@14.0.4:
|
/@next/swc-linux-arm64-musl@13.5.6:
|
||||||
resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==}
|
resolution: {integrity: sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
@ -196,8 +196,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-linux-x64-gnu@14.0.4:
|
/@next/swc-linux-x64-gnu@13.5.6:
|
||||||
resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==}
|
resolution: {integrity: sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
@ -205,8 +205,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-linux-x64-musl@14.0.4:
|
/@next/swc-linux-x64-musl@13.5.6:
|
||||||
resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==}
|
resolution: {integrity: sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
@ -214,8 +214,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-win32-arm64-msvc@14.0.4:
|
/@next/swc-win32-arm64-msvc@13.5.6:
|
||||||
resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==}
|
resolution: {integrity: sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
@ -223,8 +223,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-win32-ia32-msvc@14.0.4:
|
/@next/swc-win32-ia32-msvc@13.5.6:
|
||||||
resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==}
|
resolution: {integrity: sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
@ -232,8 +232,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@next/swc-win32-x64-msvc@14.0.4:
|
/@next/swc-win32-x64-msvc@13.5.6:
|
||||||
resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==}
|
resolution: {integrity: sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
@ -350,7 +350,6 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
micromatch: 4.0.5
|
micromatch: 4.0.5
|
||||||
napi-wasm: 1.1.0
|
|
||||||
dev: false
|
dev: false
|
||||||
bundledDependencies:
|
bundledDependencies:
|
||||||
- napi-wasm
|
- napi-wasm
|
||||||
|
|
@ -405,7 +404,7 @@ packages:
|
||||||
'@parcel/watcher-win32-x64': 2.3.0
|
'@parcel/watcher-win32-x64': 2.3.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@rainbow-me/rainbowkit@1.3.1(react-dom@18.2.0)(react@18.2.0)(viem@1.20.0)(wagmi@1.4.12):
|
/@rainbow-me/rainbowkit@1.3.1(react-dom@18.0.0)(react@18.0.0)(viem@1.20.0)(wagmi@1.4.12):
|
||||||
resolution: {integrity: sha512-4Upi+S12ZHosimzlUpCiOocg4dtfGU2wkzcpxeat/FYHrvhVIOgm0TuzbsIM96W1p7OXabosd7xuxPvwduUygQ==}
|
resolution: {integrity: sha512-4Upi+S12ZHosimzlUpCiOocg4dtfGU2wkzcpxeat/FYHrvhVIOgm0TuzbsIM96W1p7OXabosd7xuxPvwduUygQ==}
|
||||||
engines: {node: '>=12.4'}
|
engines: {node: '>=12.4'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -420,12 +419,12 @@ packages:
|
||||||
clsx: 1.1.1
|
clsx: 1.1.1
|
||||||
i18n-js: 4.3.2
|
i18n-js: 4.3.2
|
||||||
qrcode: 1.5.0
|
qrcode: 1.5.0
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
react-dom: 18.0.0(react@18.0.0)
|
||||||
react-remove-scroll: 2.5.4(react@18.2.0)
|
react-remove-scroll: 2.5.4(react@18.0.0)
|
||||||
ua-parser-js: 1.0.37
|
ua-parser-js: 1.0.37
|
||||||
viem: 1.20.0(typescript@5.3.3)
|
viem: 1.20.0(typescript@5.3.3)
|
||||||
wagmi: 1.4.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.20.0)
|
wagmi: 1.4.12(react-dom@18.0.0)(react@18.0.0)(typescript@5.3.3)(viem@1.20.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/react'
|
- '@types/react'
|
||||||
dev: false
|
dev: false
|
||||||
|
|
@ -653,10 +652,10 @@ packages:
|
||||||
'@tanstack/react-query': ^4.36.1
|
'@tanstack/react-query': ^4.36.1
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tanstack/query-persist-client-core': 4.36.1
|
'@tanstack/query-persist-client-core': 4.36.1
|
||||||
'@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0)
|
'@tanstack/react-query': 4.36.1(react-dom@18.0.0)(react@18.0.0)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@tanstack/react-query@4.36.1(react-dom@18.2.0)(react@18.2.0):
|
/@tanstack/react-query@4.36.1(react-dom@18.0.0)(react@18.0.0):
|
||||||
resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==}
|
resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||||
|
|
@ -669,9 +668,9 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tanstack/query-core': 4.36.1
|
'@tanstack/query-core': 4.36.1
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
react-dom: 18.0.0(react@18.0.0)
|
||||||
use-sync-external-store: 1.2.0(react@18.2.0)
|
use-sync-external-store: 1.2.0(react@18.0.0)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@types/connect@3.4.38:
|
/@types/connect@3.4.38:
|
||||||
|
|
@ -738,7 +737,7 @@ packages:
|
||||||
'@vanilla-extract/css': 1.9.1
|
'@vanilla-extract/css': 1.9.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@wagmi/connectors@3.1.10(react@18.2.0)(typescript@5.3.3)(viem@1.20.0):
|
/@wagmi/connectors@3.1.10(react@18.0.0)(typescript@5.3.3)(viem@1.20.0):
|
||||||
resolution: {integrity: sha512-ZLJC1QaeiZarkF07Cr9mOlVjPO1Lf5TBx+JKBms2y5fUIXlKrxCfQgO/gDCureboI+Us2X3IRI659+XacSGpbA==}
|
resolution: {integrity: sha512-ZLJC1QaeiZarkF07Cr9mOlVjPO1Lf5TBx+JKBms2y5fUIXlKrxCfQgO/gDCureboI+Us2X3IRI659+XacSGpbA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=5.0.4'
|
typescript: '>=5.0.4'
|
||||||
|
|
@ -750,9 +749,9 @@ packages:
|
||||||
'@coinbase/wallet-sdk': 3.7.2
|
'@coinbase/wallet-sdk': 3.7.2
|
||||||
'@safe-global/safe-apps-provider': 0.18.1(typescript@5.3.3)
|
'@safe-global/safe-apps-provider': 0.18.1(typescript@5.3.3)
|
||||||
'@safe-global/safe-apps-sdk': 8.1.0(typescript@5.3.3)
|
'@safe-global/safe-apps-sdk': 8.1.0(typescript@5.3.3)
|
||||||
'@walletconnect/ethereum-provider': 2.10.6(react@18.2.0)
|
'@walletconnect/ethereum-provider': 2.10.6(react@18.0.0)
|
||||||
'@walletconnect/legacy-provider': 2.0.0
|
'@walletconnect/legacy-provider': 2.0.0
|
||||||
'@walletconnect/modal': 2.6.2(react@18.2.0)
|
'@walletconnect/modal': 2.6.2(react@18.0.0)
|
||||||
'@walletconnect/utils': 2.10.2
|
'@walletconnect/utils': 2.10.2
|
||||||
abitype: 0.8.7(typescript@5.3.3)
|
abitype: 0.8.7(typescript@5.3.3)
|
||||||
eventemitter3: 4.0.7
|
eventemitter3: 4.0.7
|
||||||
|
|
@ -780,7 +779,7 @@ packages:
|
||||||
- zod
|
- zod
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@wagmi/core@1.4.12(react@18.2.0)(typescript@5.3.3)(viem@1.20.0):
|
/@wagmi/core@1.4.12(react@18.0.0)(typescript@5.3.3)(viem@1.20.0):
|
||||||
resolution: {integrity: sha512-bLcYmmGgjtl3jAGo8X3Sm6oUwsdjbVxFMu9SWnwHdE4S9JdYeWM57dEhQgq8SYul2yQ7yY2/gimBf1Or0Ky3dQ==}
|
resolution: {integrity: sha512-bLcYmmGgjtl3jAGo8X3Sm6oUwsdjbVxFMu9SWnwHdE4S9JdYeWM57dEhQgq8SYul2yQ7yY2/gimBf1Or0Ky3dQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=5.0.4'
|
typescript: '>=5.0.4'
|
||||||
|
|
@ -789,12 +788,12 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@wagmi/connectors': 3.1.10(react@18.2.0)(typescript@5.3.3)(viem@1.20.0)
|
'@wagmi/connectors': 3.1.10(react@18.0.0)(typescript@5.3.3)(viem@1.20.0)
|
||||||
abitype: 0.8.7(typescript@5.3.3)
|
abitype: 0.8.7(typescript@5.3.3)
|
||||||
eventemitter3: 4.0.7
|
eventemitter3: 4.0.7
|
||||||
typescript: 5.3.3
|
typescript: 5.3.3
|
||||||
viem: 1.20.0(typescript@5.3.3)
|
viem: 1.20.0(typescript@5.3.3)
|
||||||
zustand: 4.4.7(react@18.2.0)
|
zustand: 4.4.7(react@18.0.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@azure/app-configuration'
|
- '@azure/app-configuration'
|
||||||
- '@azure/cosmos'
|
- '@azure/cosmos'
|
||||||
|
|
@ -880,14 +879,14 @@ packages:
|
||||||
tslib: 1.14.1
|
tslib: 1.14.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@walletconnect/ethereum-provider@2.10.6(react@18.2.0):
|
/@walletconnect/ethereum-provider@2.10.6(react@18.0.0):
|
||||||
resolution: {integrity: sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==}
|
resolution: {integrity: sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@walletconnect/jsonrpc-http-connection': 1.0.7
|
'@walletconnect/jsonrpc-http-connection': 1.0.7
|
||||||
'@walletconnect/jsonrpc-provider': 1.0.13
|
'@walletconnect/jsonrpc-provider': 1.0.13
|
||||||
'@walletconnect/jsonrpc-types': 1.0.3
|
'@walletconnect/jsonrpc-types': 1.0.3
|
||||||
'@walletconnect/jsonrpc-utils': 1.0.8
|
'@walletconnect/jsonrpc-utils': 1.0.8
|
||||||
'@walletconnect/modal': 2.6.2(react@18.2.0)
|
'@walletconnect/modal': 2.6.2(react@18.0.0)
|
||||||
'@walletconnect/sign-client': 2.10.6
|
'@walletconnect/sign-client': 2.10.6
|
||||||
'@walletconnect/types': 2.10.6
|
'@walletconnect/types': 2.10.6
|
||||||
'@walletconnect/universal-provider': 2.10.6
|
'@walletconnect/universal-provider': 2.10.6
|
||||||
|
|
@ -1065,19 +1064,19 @@ packages:
|
||||||
tslib: 1.14.1
|
tslib: 1.14.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@walletconnect/modal-core@2.6.2(react@18.2.0):
|
/@walletconnect/modal-core@2.6.2(react@18.0.0):
|
||||||
resolution: {integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==}
|
resolution: {integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
valtio: 1.11.2(react@18.2.0)
|
valtio: 1.11.2(react@18.0.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/react'
|
- '@types/react'
|
||||||
- react
|
- react
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@walletconnect/modal-ui@2.6.2(react@18.2.0):
|
/@walletconnect/modal-ui@2.6.2(react@18.0.0):
|
||||||
resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==}
|
resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@walletconnect/modal-core': 2.6.2(react@18.2.0)
|
'@walletconnect/modal-core': 2.6.2(react@18.0.0)
|
||||||
lit: 2.8.0
|
lit: 2.8.0
|
||||||
motion: 10.16.2
|
motion: 10.16.2
|
||||||
qrcode: 1.5.3
|
qrcode: 1.5.3
|
||||||
|
|
@ -1086,11 +1085,11 @@ packages:
|
||||||
- react
|
- react
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@walletconnect/modal@2.6.2(react@18.2.0):
|
/@walletconnect/modal@2.6.2(react@18.0.0):
|
||||||
resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==}
|
resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@walletconnect/modal-core': 2.6.2(react@18.2.0)
|
'@walletconnect/modal-core': 2.6.2(react@18.0.0)
|
||||||
'@walletconnect/modal-ui': 2.6.2(react@18.2.0)
|
'@walletconnect/modal-ui': 2.6.2(react@18.0.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/react'
|
- '@types/react'
|
||||||
- react
|
- react
|
||||||
|
|
@ -2383,13 +2382,9 @@ packages:
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/napi-wasm@1.1.0:
|
/next@13.5.6(react-dom@18.0.0)(react@18.0.0):
|
||||||
resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==}
|
resolution: {integrity: sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==}
|
||||||
dev: false
|
engines: {node: '>=16.14.0'}
|
||||||
|
|
||||||
/next@14.0.4(react-dom@18.2.0)(react@18.2.0):
|
|
||||||
resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==}
|
|
||||||
engines: {node: '>=18.17.0'}
|
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@opentelemetry/api': ^1.1.0
|
'@opentelemetry/api': ^1.1.0
|
||||||
|
|
@ -2402,26 +2397,25 @@ packages:
|
||||||
sass:
|
sass:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@next/env': 14.0.4
|
'@next/env': 13.5.6
|
||||||
'@swc/helpers': 0.5.2
|
'@swc/helpers': 0.5.2
|
||||||
busboy: 1.6.0
|
busboy: 1.6.0
|
||||||
caniuse-lite: 1.0.30001570
|
caniuse-lite: 1.0.30001570
|
||||||
graceful-fs: 4.2.11
|
|
||||||
postcss: 8.4.31
|
postcss: 8.4.31
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
react-dom: 18.0.0(react@18.0.0)
|
||||||
styled-jsx: 5.1.1(react@18.2.0)
|
styled-jsx: 5.1.1(react@18.0.0)
|
||||||
watchpack: 2.4.0
|
watchpack: 2.4.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@next/swc-darwin-arm64': 14.0.4
|
'@next/swc-darwin-arm64': 13.5.6
|
||||||
'@next/swc-darwin-x64': 14.0.4
|
'@next/swc-darwin-x64': 13.5.6
|
||||||
'@next/swc-linux-arm64-gnu': 14.0.4
|
'@next/swc-linux-arm64-gnu': 13.5.6
|
||||||
'@next/swc-linux-arm64-musl': 14.0.4
|
'@next/swc-linux-arm64-musl': 13.5.6
|
||||||
'@next/swc-linux-x64-gnu': 14.0.4
|
'@next/swc-linux-x64-gnu': 13.5.6
|
||||||
'@next/swc-linux-x64-musl': 14.0.4
|
'@next/swc-linux-x64-musl': 13.5.6
|
||||||
'@next/swc-win32-arm64-msvc': 14.0.4
|
'@next/swc-win32-arm64-msvc': 13.5.6
|
||||||
'@next/swc-win32-ia32-msvc': 14.0.4
|
'@next/swc-win32-ia32-msvc': 13.5.6
|
||||||
'@next/swc-win32-x64-msvc': 14.0.4
|
'@next/swc-win32-x64-msvc': 13.5.6
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@babel/core'
|
- '@babel/core'
|
||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
|
|
@ -2683,17 +2677,17 @@ packages:
|
||||||
safe-buffer: 5.2.1
|
safe-buffer: 5.2.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/react-dom@18.2.0(react@18.2.0):
|
/react-dom@18.0.0(react@18.0.0):
|
||||||
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
|
resolution: {integrity: sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^18.2.0
|
react: ^18.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify: 1.4.0
|
loose-envify: 1.4.0
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
scheduler: 0.23.0
|
scheduler: 0.21.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/react-remove-scroll-bar@2.3.4(react@18.2.0):
|
/react-remove-scroll-bar@2.3.4(react@18.0.0):
|
||||||
resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
|
resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -2703,12 +2697,12 @@ packages:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
react-style-singleton: 2.2.1(react@18.2.0)
|
react-style-singleton: 2.2.1(react@18.0.0)
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/react-remove-scroll@2.5.4(react@18.2.0):
|
/react-remove-scroll@2.5.4(react@18.0.0):
|
||||||
resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==}
|
resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -2718,15 +2712,15 @@ packages:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
react-remove-scroll-bar: 2.3.4(react@18.2.0)
|
react-remove-scroll-bar: 2.3.4(react@18.0.0)
|
||||||
react-style-singleton: 2.2.1(react@18.2.0)
|
react-style-singleton: 2.2.1(react@18.0.0)
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
use-callback-ref: 1.3.0(react@18.2.0)
|
use-callback-ref: 1.3.0(react@18.0.0)
|
||||||
use-sidecar: 1.1.2(react@18.2.0)
|
use-sidecar: 1.1.2(react@18.0.0)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/react-style-singleton@2.2.1(react@18.2.0):
|
/react-style-singleton@2.2.1(react@18.0.0):
|
||||||
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
|
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -2738,12 +2732,12 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
get-nonce: 1.0.1
|
get-nonce: 1.0.1
|
||||||
invariant: 2.2.4
|
invariant: 2.2.4
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/react@18.2.0:
|
/react@18.0.0:
|
||||||
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
|
resolution: {integrity: sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify: 1.4.0
|
loose-envify: 1.4.0
|
||||||
|
|
@ -2823,8 +2817,8 @@ packages:
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/scheduler@0.23.0:
|
/scheduler@0.21.0:
|
||||||
resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
|
resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify: 1.4.0
|
loose-envify: 1.4.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
@ -2960,7 +2954,7 @@ packages:
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/styled-jsx@5.1.1(react@18.2.0):
|
/styled-jsx@5.1.1(react@18.0.0):
|
||||||
resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
|
resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -2974,7 +2968,7 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
client-only: 0.0.1
|
client-only: 0.0.1
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/superstruct@0.14.2:
|
/superstruct@0.14.2:
|
||||||
|
|
@ -3140,7 +3134,7 @@ packages:
|
||||||
resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==}
|
resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/use-callback-ref@1.3.0(react@18.2.0):
|
/use-callback-ref@1.3.0(react@18.0.0):
|
||||||
resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
|
resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -3150,11 +3144,11 @@ packages:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/use-sidecar@1.1.2(react@18.2.0):
|
/use-sidecar@1.1.2(react@18.0.0):
|
||||||
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
|
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -3165,16 +3159,16 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
detect-node-es: 1.1.0
|
detect-node-es: 1.1.0
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/use-sync-external-store@1.2.0(react@18.2.0):
|
/use-sync-external-store@1.2.0(react@18.0.0):
|
||||||
resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
|
resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/utf-8-validate@5.0.10:
|
/utf-8-validate@5.0.10:
|
||||||
|
|
@ -3204,7 +3198,7 @@ packages:
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/valtio@1.11.2(react@18.2.0):
|
/valtio@1.11.2(react@18.0.0):
|
||||||
resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==}
|
resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==}
|
||||||
engines: {node: '>=12.20.0'}
|
engines: {node: '>=12.20.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -3217,8 +3211,8 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
proxy-compare: 2.5.1
|
proxy-compare: 2.5.1
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
use-sync-external-store: 1.2.0(react@18.2.0)
|
use-sync-external-store: 1.2.0(react@18.0.0)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/viem@1.20.0(typescript@5.3.3):
|
/viem@1.20.0(typescript@5.3.3):
|
||||||
|
|
@ -3244,7 +3238,7 @@ packages:
|
||||||
- zod
|
- zod
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/wagmi@1.4.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.20.0):
|
/wagmi@1.4.12(react-dom@18.0.0)(react@18.0.0)(typescript@5.3.3)(viem@1.20.0):
|
||||||
resolution: {integrity: sha512-QRxpjhdMlZmbYTfn9VQkQMKq+l3kwA1O7tF10vaykPrjbGX+IIlyn72ib9oqW9BfQO7n/Sf/mnVz1zbxRhGPWA==}
|
resolution: {integrity: sha512-QRxpjhdMlZmbYTfn9VQkQMKq+l3kwA1O7tF10vaykPrjbGX+IIlyn72ib9oqW9BfQO7n/Sf/mnVz1zbxRhGPWA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: '>=17.0.0'
|
react: '>=17.0.0'
|
||||||
|
|
@ -3255,13 +3249,13 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tanstack/query-sync-storage-persister': 4.36.1
|
'@tanstack/query-sync-storage-persister': 4.36.1
|
||||||
'@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0)
|
'@tanstack/react-query': 4.36.1(react-dom@18.0.0)(react@18.0.0)
|
||||||
'@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1)
|
'@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1)
|
||||||
'@wagmi/core': 1.4.12(react@18.2.0)(typescript@5.3.3)(viem@1.20.0)
|
'@wagmi/core': 1.4.12(react@18.0.0)(typescript@5.3.3)(viem@1.20.0)
|
||||||
abitype: 0.8.7(typescript@5.3.3)
|
abitype: 0.8.7(typescript@5.3.3)
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
typescript: 5.3.3
|
typescript: 5.3.3
|
||||||
use-sync-external-store: 1.2.0(react@18.2.0)
|
use-sync-external-store: 1.2.0(react@18.0.0)
|
||||||
viem: 1.20.0(typescript@5.3.3)
|
viem: 1.20.0(typescript@5.3.3)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@azure/app-configuration'
|
- '@azure/app-configuration'
|
||||||
|
|
@ -3422,7 +3416,7 @@ packages:
|
||||||
yargs-parser: 18.1.3
|
yargs-parser: 18.1.3
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/zustand@4.4.7(react@18.2.0):
|
/zustand@4.4.7(react@18.0.0):
|
||||||
resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==}
|
resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==}
|
||||||
engines: {node: '>=12.7.0'}
|
engines: {node: '>=12.7.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -3437,6 +3431,6 @@ packages:
|
||||||
react:
|
react:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.2.0
|
react: 18.0.0
|
||||||
use-sync-external-store: 1.2.0(react@18.2.0)
|
use-sync-external-store: 1.2.0(react@18.0.0)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 100 KiB |
|
|
@ -1,5 +1,5 @@
|
||||||
:root {
|
:root {
|
||||||
--max-width: 1280px;
|
--max-width: 1100px;
|
||||||
--border-radius: 12px;
|
--border-radius: 12px;
|
||||||
--color-bg0: hsl(210deg 40% 4%);
|
--color-bg0: hsl(210deg 40% 4%);
|
||||||
--color-bg1: hsl(210deg 40% 12%);
|
--color-bg1: hsl(210deg 40% 12%);
|
||||||
|
|
@ -26,11 +26,13 @@ a {
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
display: inline-block;
|
color: white;
|
||||||
|
background-color: var(--color-accent);
|
||||||
|
border: none;
|
||||||
border-radius: var(--border-radius);
|
border-radius: var(--border-radius);
|
||||||
padding: 0.75rem 1rem;
|
padding: 0.75rem 1rem;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
font-weight: 600;
|
font-weight: 700;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: transform 0.125s;
|
transition: transform 0.125s;
|
||||||
}
|
}
|
||||||
|
|
@ -40,43 +42,6 @@ a {
|
||||||
.btn:active {
|
.btn:active {
|
||||||
transform: scale(0.95);
|
transform: scale(0.95);
|
||||||
}
|
}
|
||||||
.btn-primary {
|
|
||||||
color: white;
|
|
||||||
background-color: var(--color-accent);
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
.btn-flat {
|
|
||||||
color: white;
|
|
||||||
background-color: transparent;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pressable {
|
|
||||||
transition: transform 0.125s;
|
|
||||||
}
|
|
||||||
.pressable:hover {
|
|
||||||
transform: scale(1.025);
|
|
||||||
}
|
|
||||||
.pressable:active {
|
|
||||||
transform: scale(0.95);
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
padding: 0.75rem;
|
|
||||||
border: none;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-group {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-title {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fg-accent {
|
.fg-accent {
|
||||||
color: var(--color-accent);
|
color: var(--color-accent);
|
||||||
|
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
import Container from "@/components/Container";
|
|
||||||
import styles from "./page.module.css";
|
|
||||||
|
|
||||||
export default function MyAccountPage() {
|
|
||||||
return (
|
|
||||||
<main className={styles.root}>
|
|
||||||
<Container>
|
|
||||||
<h1 className="page-title">Hesabım</h1>
|
|
||||||
|
|
||||||
<form className={styles.form}>
|
|
||||||
<div className="input-group">
|
|
||||||
<label htmlFor="first-name">Ad</label>
|
|
||||||
<input className="input" type="text" id="first-name" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="input-group">
|
|
||||||
<label htmlFor="last-name">Soyad</label>
|
|
||||||
<input className="input" type="text" id="last-name" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="input-group">
|
|
||||||
<label htmlFor="email">E-posta adresi</label>
|
|
||||||
<input className="input" type="email" id="email" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button className="btn btn-primary" type="submit">
|
|
||||||
Kaydet
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</Container>
|
|
||||||
</main>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
.root {
|
|
||||||
margin-top: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
import Container from "@/components/Container";
|
|
||||||
import CourseGrid from "@/components/CourseGrid";
|
|
||||||
import { COURSES } from "@/mockData";
|
|
||||||
import styles from "./page.module.css";
|
|
||||||
|
|
||||||
export default function CategoryPage({ params }) {
|
|
||||||
const filteredCourses = COURSES.filter(
|
|
||||||
(course) => course.category.slug === params.categorySlug
|
|
||||||
);
|
|
||||||
|
|
||||||
if (filteredCourses.length === 0) {
|
|
||||||
return (
|
|
||||||
<main className={styles.root}>
|
|
||||||
<Container>
|
|
||||||
<section>
|
|
||||||
<div>
|
|
||||||
<h1 className={styles.sectionTitle}>
|
|
||||||
Bu kategoriye ait kurs bulunamadı.
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</Container>
|
|
||||||
</main>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<main className={styles.root}>
|
|
||||||
<Container>
|
|
||||||
<section>
|
|
||||||
<div>
|
|
||||||
<h1 className={styles.sectionTitle}>{params.categorySlug}</h1>
|
|
||||||
<h2 className={styles.sectionTitle}>Çok Satanlar</h2>
|
|
||||||
<CourseGrid courses={filteredCourses} />
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</Container>
|
|
||||||
</main>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
import Container from "@/components/Container";
|
||||||
|
import { COURSES } from "@/mockData";
|
||||||
|
import { cn, formatPrice } from "@/utils";
|
||||||
|
import styles from "./page.module.css";
|
||||||
|
|
||||||
|
export default function CourseDetailPage({ params }) {
|
||||||
|
const course = COURSES.find((c) => c.id === params.courseId);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<main className={styles.root}>
|
||||||
|
<Container>
|
||||||
|
<div className={styles.columns}>
|
||||||
|
<img
|
||||||
|
className={styles.image}
|
||||||
|
src={course.imageUrl}
|
||||||
|
alt="Kurs resmi"
|
||||||
|
/>
|
||||||
|
<div>
|
||||||
|
<h1>{course.name}</h1>
|
||||||
|
<div>{course.instructor.name}</div>
|
||||||
|
<button className={cn(styles.buyButton, "btn")}>
|
||||||
|
Satın Al: {formatPrice(course.price)}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p className={styles.description}>{course.description}</p>
|
||||||
|
</Container>
|
||||||
|
</main>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
"use client";
|
|
||||||
|
|
||||||
import { CubLearn } from "@/contracts";
|
|
||||||
import { COURSES } from "@/mockData";
|
|
||||||
import { useState } from "react";
|
|
||||||
import { useContractWrite, usePrepareContractWrite } from "wagmi";
|
|
||||||
import styles from "./page.module.css";
|
|
||||||
|
|
||||||
const Step = ({ label }) => {
|
|
||||||
const [isCompleted, setIsCompleted] = useState(false);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className={styles.step} onClick={() => setIsCompleted((val) => !val)}>
|
|
||||||
<input type="checkbox" checked={isCompleted} />
|
|
||||||
<span style={{ marginLeft: "0.5rem" }}>{label}</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const LearnPage = ({ params }) => {
|
|
||||||
const course = COURSES.find((c) => c.slug === params.courseSlug);
|
|
||||||
|
|
||||||
const { config: finishCourseConfig } = usePrepareContractWrite({
|
|
||||||
address: CubLearn.address,
|
|
||||||
abi: CubLearn.abi,
|
|
||||||
functionName: "finishCourse",
|
|
||||||
args: [
|
|
||||||
course.id,
|
|
||||||
"Osman Nuri Yıldız",
|
|
||||||
"Akıllı Kontrat Güvenliği",
|
|
||||||
"Atıl Samancıoğlu",
|
|
||||||
],
|
|
||||||
});
|
|
||||||
const finishCourse = useContractWrite(finishCourseConfig);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className={styles.container}>
|
|
||||||
<div className={styles.videoContainer}>
|
|
||||||
<iframe
|
|
||||||
src="https://www.youtube.com/embed/r3P58Y1OL0g"
|
|
||||||
// frameBorder="0"
|
|
||||||
allow="autoplay; encrypted-media"
|
|
||||||
allowFullScreen
|
|
||||||
className={styles.video}
|
|
||||||
></iframe>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className={styles.sidebar}>
|
|
||||||
<div className={styles.courseContainer}>
|
|
||||||
<h2>Kurs İçeriği</h2>
|
|
||||||
<div className={styles.courseContent}>
|
|
||||||
<Step label="1. Blokzincir Nedir?" />
|
|
||||||
<Step label="2. Kullanım Alanları" />
|
|
||||||
<Step label="3. Ethereum Nedir?" />
|
|
||||||
<Step label="4. Akıllı Kontratlar" />
|
|
||||||
<Step label="5. Solidity Programlama Dili" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
className="btn btn-primary"
|
|
||||||
style={{
|
|
||||||
marginTop: "2rem",
|
|
||||||
marginLeft: "auto",
|
|
||||||
marginRight: "auto",
|
|
||||||
display: "block",
|
|
||||||
}}
|
|
||||||
onClick={() => finishCourse.write?.()}
|
|
||||||
>
|
|
||||||
Sertifikayı Al
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LearnPage;
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
.container {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar {
|
|
||||||
width: 500px;
|
|
||||||
padding: 20px;
|
|
||||||
padding-top: 0;
|
|
||||||
border-left: 2px solid #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.videoContainer {
|
|
||||||
flex: 1;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.courseContent {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.step {
|
|
||||||
cursor: pointer;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
padding: 1rem;
|
|
||||||
background-color: var(--color-bg1);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.video {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 1000px;
|
|
||||||
aspect-ratio: 16 / 9;
|
|
||||||
display: block;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
"use client";
|
|
||||||
|
|
||||||
import Container from "@/components/Container";
|
|
||||||
import { CubLearn } from "@/contracts";
|
|
||||||
import { COURSES } from "@/mockData";
|
|
||||||
import { cn, formatPrice } from "@/utils";
|
|
||||||
import Link from "next/link";
|
|
||||||
import { useContractRead, useContractWrite, useWalletClient } from "wagmi";
|
|
||||||
import styles from "./page.module.css";
|
|
||||||
|
|
||||||
export default function CourseDetailPage({ params }) {
|
|
||||||
const { data: walletClient } = useWalletClient();
|
|
||||||
|
|
||||||
const course = COURSES.find((c) => c.slug === params.courseSlug);
|
|
||||||
|
|
||||||
const amIEnrolledInCourse = useContractRead({
|
|
||||||
address: CubLearn.address,
|
|
||||||
abi: CubLearn.abi,
|
|
||||||
functionName: "amIEnrolledInCourse",
|
|
||||||
args: [course.id],
|
|
||||||
account: walletClient?.account,
|
|
||||||
});
|
|
||||||
|
|
||||||
const enroll = useContractWrite({
|
|
||||||
address: CubLearn.address,
|
|
||||||
abi: CubLearn.abi,
|
|
||||||
functionName: "enroll",
|
|
||||||
args: [course.id],
|
|
||||||
});
|
|
||||||
|
|
||||||
return (
|
|
||||||
<main className={styles.root}>
|
|
||||||
<Container>
|
|
||||||
<div className={styles.columns}>
|
|
||||||
<img
|
|
||||||
className={styles.image}
|
|
||||||
src={course.imageUrl}
|
|
||||||
alt="Kurs resmi"
|
|
||||||
/>
|
|
||||||
<div>
|
|
||||||
<h1>{course.name}</h1>
|
|
||||||
<div>{course.instructor.name}</div>
|
|
||||||
{amIEnrolledInCourse.data ? (
|
|
||||||
<Link
|
|
||||||
href={`/kurslar/${params.courseSlug}/ogren`}
|
|
||||||
className={cn(styles.button, "btn btn-primary")}
|
|
||||||
>
|
|
||||||
Eğitime Başla
|
|
||||||
</Link>
|
|
||||||
) : (
|
|
||||||
<button
|
|
||||||
className={cn(styles.button, "btn btn-primary")}
|
|
||||||
disabled={!enroll.write}
|
|
||||||
onClick={() => enroll.write?.()}
|
|
||||||
>
|
|
||||||
Satın Al: {formatPrice(course.price)}
|
|
||||||
</button>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p className={styles.description}>{course.description}</p>
|
|
||||||
</Container>
|
|
||||||
</main>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
@media screen and (max-width: 900px) {
|
|
||||||
.root {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.columns {
|
|
||||||
display: flex;
|
|
||||||
gap: 1.5rem;
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
@media screen and (max-width: 900px) {
|
|
||||||
.columns {
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.image {
|
|
||||||
width: 50%;
|
|
||||||
max-width: 1280px;
|
|
||||||
aspect-ratio: 16 / 9;
|
|
||||||
object-fit: cover;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
margin-top: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.description {
|
|
||||||
margin-top: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +1,12 @@
|
||||||
import Container from "@/components/Container";
|
import Container from "@/components/Container";
|
||||||
import CourseGrid from "@/components/CourseGrid";
|
import CourseGrid from "@/components/CourseGrid";
|
||||||
import { CATEGORIES, COURSES } from "@/mockData";
|
import { COURSES } from "@/mockData";
|
||||||
import Link from "next/link";
|
|
||||||
import styles from "./page.module.css";
|
import styles from "./page.module.css";
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
return (
|
return (
|
||||||
<main className={styles.root}>
|
<main className={styles.root}>
|
||||||
<Container>
|
<Container>
|
||||||
<div className={styles.categories}>
|
|
||||||
{CATEGORIES.map((category) => (
|
|
||||||
<Link
|
|
||||||
key={category.id}
|
|
||||||
href={`/kategoriler/${category.slug}`}
|
|
||||||
className="btn btn-primary"
|
|
||||||
>
|
|
||||||
{category.name}
|
|
||||||
</Link>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h1 className={styles.sectionTitle}>Çok Satanlar</h1>
|
<h1 className={styles.sectionTitle}>Çok Satanlar</h1>
|
||||||
<CourseGrid courses={COURSES} />
|
<CourseGrid courses={COURSES} />
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,3 @@
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.categories {
|
|
||||||
display: flex;
|
|
||||||
gap: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
.root {
|
.root {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(275px, 1fr));
|
grid-template-columns: repeat(auto-fit, 300px);
|
||||||
justify-content: stretch;
|
justify-content: stretch;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,10 @@
|
||||||
import { cn, formatPrice } from "@/utils";
|
import { formatPrice } from "@/utils";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import styles from "./CourseGridItem.module.css";
|
import styles from "./CourseGridItem.module.css";
|
||||||
|
|
||||||
export default function CourseGridItem({ course }) {
|
export default function CourseGridItem({ course }) {
|
||||||
return (
|
return (
|
||||||
<Link
|
<Link href={`/kurslar/${course.id}`} className={styles.root}>
|
||||||
href={`/kurslar/${course.slug}`}
|
|
||||||
className={cn(styles.root, "pressable")}
|
|
||||||
>
|
|
||||||
<img className={styles.image} src={course.imageUrl} alt="Kurs resmi" />
|
<img className={styles.image} src={course.imageUrl} alt="Kurs resmi" />
|
||||||
<div className={styles.body}>
|
<div className={styles.body}>
|
||||||
<span className={styles.name}>{course.name}</span>
|
<span className={styles.name}>{course.name}</span>
|
||||||
|
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
"use client";
|
|
||||||
|
|
||||||
import { CubLearn, DTLToken } from "@/contracts";
|
|
||||||
import { useEffect } from "react";
|
|
||||||
import {
|
|
||||||
useAccount,
|
|
||||||
useContractRead,
|
|
||||||
useContractWrite,
|
|
||||||
usePrepareContractWrite,
|
|
||||||
useWalletClient,
|
|
||||||
} from "wagmi";
|
|
||||||
|
|
||||||
export default function DTLDisplay() {
|
|
||||||
const { address } = useAccount();
|
|
||||||
const { data: walletClient } = useWalletClient();
|
|
||||||
|
|
||||||
const getMyBalance = useContractRead({
|
|
||||||
address: DTLToken.address,
|
|
||||||
abi: DTLToken.abi,
|
|
||||||
functionName: "getMyBalance",
|
|
||||||
account: walletClient?.account,
|
|
||||||
});
|
|
||||||
|
|
||||||
const getAllowanceOfSpender = useContractRead({
|
|
||||||
address: DTLToken.address,
|
|
||||||
abi: DTLToken.abi,
|
|
||||||
functionName: "getAllowanceOfSpender",
|
|
||||||
args: [CubLearn.address],
|
|
||||||
account: walletClient?.account,
|
|
||||||
});
|
|
||||||
|
|
||||||
const { config: approveMaxConfig } = usePrepareContractWrite({
|
|
||||||
address: DTLToken.address,
|
|
||||||
abi: DTLToken.abi,
|
|
||||||
functionName: "approveMax",
|
|
||||||
args: [CubLearn.address],
|
|
||||||
});
|
|
||||||
const approveMax = useContractWrite(approveMaxConfig);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const interval = setInterval(() => getMyBalance.refetch(), 2000);
|
|
||||||
return () => clearInterval(interval);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (address) {
|
|
||||||
getMyBalance.refetch();
|
|
||||||
}
|
|
||||||
}, [address]);
|
|
||||||
|
|
||||||
return !getAllowanceOfSpender.data || getAllowanceOfSpender.data === 0n ? (
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
className="btn btn-primary"
|
|
||||||
onClick={() => approveMax.write?.() && getAllowanceOfSpender.refetch()}
|
|
||||||
>
|
|
||||||
APPROVE!!!
|
|
||||||
</button>
|
|
||||||
) : (
|
|
||||||
<button type="button" className="btn btn-flat" disabled>
|
|
||||||
{parseInt(getMyBalance.data)} DTL
|
|
||||||
</button>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +1,14 @@
|
||||||
import { cn } from "@/utils";
|
|
||||||
import { ConnectButton } from "@rainbow-me/rainbowkit";
|
import { ConnectButton } from "@rainbow-me/rainbowkit";
|
||||||
import Link from "next/link";
|
|
||||||
import DTLDisplay from "./DTLDisplay";
|
|
||||||
import styles from "./Header.module.css";
|
import styles from "./Header.module.css";
|
||||||
|
|
||||||
export default function Header() {
|
export default function Header() {
|
||||||
return (
|
return (
|
||||||
<header className={styles.root}>
|
<header className={styles.root}>
|
||||||
<Link className={cn(styles.brand, "pressable")} href="/">
|
<div className={styles.brand}>
|
||||||
<span>Cub</span>
|
<span>Cub</span>
|
||||||
<span className="fg-accent">Learn</span>
|
<span className="fg-accent">Learn</span>
|
||||||
</Link>
|
|
||||||
|
|
||||||
<div className={styles.nav}>
|
|
||||||
<Link href="/hesabim" className="btn btn-flat">
|
|
||||||
Hesabım
|
|
||||||
</Link>
|
|
||||||
|
|
||||||
<DTLDisplay />
|
|
||||||
|
|
||||||
<ConnectButton showBalance={false} />
|
|
||||||
</div>
|
</div>
|
||||||
|
<ConnectButton />
|
||||||
</header>
|
</header>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,3 @@
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,19 @@ export default function WalletManager() {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (address) {
|
if (address) {
|
||||||
console.log("** Wallet connected. Address: ", address);
|
console.log("** Wallet connected. Address: ", address);
|
||||||
|
// fetchMe();
|
||||||
} else {
|
} else {
|
||||||
console.log("** Wallet disconnected.");
|
console.log("** Wallet disconnected.");
|
||||||
}
|
}
|
||||||
}, [address]);
|
}, [address]);
|
||||||
|
|
||||||
|
// const fetchMe = async () => {
|
||||||
|
// const resp = await fetch(`${CONFIG.BACKEND_ADDRESS}/me`, {
|
||||||
|
// headers: {
|
||||||
|
// authorization: `Basic ${address}`,
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// const respData = await resp.json();
|
||||||
|
// console.log("hey user:", respData.data);
|
||||||
|
// };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,13 @@ import {
|
||||||
RainbowKitProvider,
|
RainbowKitProvider,
|
||||||
} from "@rainbow-me/rainbowkit";
|
} from "@rainbow-me/rainbowkit";
|
||||||
import { configureChains, createConfig, WagmiConfig } from "wagmi";
|
import { configureChains, createConfig, WagmiConfig } from "wagmi";
|
||||||
import { sepolia } from "wagmi/chains";
|
import { hardhat, sepolia } from "wagmi/chains";
|
||||||
import { publicProvider } from "wagmi/providers/public";
|
import { publicProvider } from "wagmi/providers/public";
|
||||||
|
|
||||||
const { chains, publicClient } = configureChains([sepolia], [publicProvider()]);
|
const { chains, publicClient } = configureChains(
|
||||||
|
[sepolia, hardhat],
|
||||||
|
[publicProvider()]
|
||||||
|
);
|
||||||
|
|
||||||
const { connectors } = getDefaultWallets({
|
const { connectors } = getDefaultWallets({
|
||||||
appName: "GSB Genç Blokzincir Hackathon Project",
|
appName: "GSB Genç Blokzincir Hackathon Project",
|
||||||
|
|
@ -33,7 +36,6 @@ export default function WrapperComponent({ children }) {
|
||||||
accentColor: "var(--color-accent)",
|
accentColor: "var(--color-accent)",
|
||||||
})}
|
})}
|
||||||
locale="tr-TR"
|
locale="tr-TR"
|
||||||
coolMode
|
|
||||||
>
|
>
|
||||||
<WalletManager />
|
<WalletManager />
|
||||||
{children}
|
{children}
|
||||||
|
|
|
||||||
596
src/contracts.js
|
|
@ -1,596 +0,0 @@
|
||||||
export const DTLToken = {
|
|
||||||
address: "0x205A56Be24CC41d32f1Ec64D19954e9e86398ceC",
|
|
||||||
abi: [
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "spender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "allowance",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "needed",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ERC20InsufficientAllowance",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "sender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "balance",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "needed",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ERC20InsufficientBalance",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "approver",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ERC20InvalidApprover",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "receiver",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ERC20InvalidReceiver",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "sender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ERC20InvalidSender",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "spender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "ERC20InvalidSpender",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "owner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "spender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "value",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "Approval",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "from",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "to",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: false,
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "value",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "Transfer",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "spender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "value",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "approve",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "spender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "approveMax",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "to",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "value",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "transfer",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "from",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "to",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "value",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "transferFrom",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "initialHolder",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "constructor",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "owner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "spender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "allowance",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "account",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "balanceOf",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "decimals",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint8",
|
|
||||||
name: "",
|
|
||||||
type: "uint8",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "spender",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "getAllowanceOfSpender",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "getMyBalance",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "name",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "symbol",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "totalSupply",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export const CubLearn = {
|
|
||||||
address: "0x2eA6235131CC9233aAD3842C5d14C9Cf7107FdA1",
|
|
||||||
abi: [
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "owner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "OwnableInvalidOwner",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "account",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "OwnableUnauthorizedAccount",
|
|
||||||
type: "error",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
anonymous: false,
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "previousOwner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
indexed: true,
|
|
||||||
internalType: "address",
|
|
||||||
name: "newOwner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "OwnershipTransferred",
|
|
||||||
type: "event",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "courseId",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "enroll",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "courseId",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "studentFullName",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "courseName",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "instructorFullName",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "finishCourse",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "renounceOwnership",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "newValue",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "setCashbackPercentage",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "transferAllDTLBalanceToMe",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "newOwner",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "transferOwnership",
|
|
||||||
outputs: [],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "dtlContractAddress",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "cubcertContractAddress",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "nonpayable",
|
|
||||||
type: "constructor",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "courseId",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "amIEnrolledInCourse",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "cashbackPercentage",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [
|
|
||||||
{
|
|
||||||
internalType: "string",
|
|
||||||
name: "courseId",
|
|
||||||
type: "string",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: "didICompleteCourse",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "bool",
|
|
||||||
name: "",
|
|
||||||
type: "bool",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "getDTLBalance",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "uint256",
|
|
||||||
name: "",
|
|
||||||
type: "uint256",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
inputs: [],
|
|
||||||
name: "owner",
|
|
||||||
outputs: [
|
|
||||||
{
|
|
||||||
internalType: "address",
|
|
||||||
name: "",
|
|
||||||
type: "address",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
stateMutability: "view",
|
|
||||||
type: "function",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
@ -1,100 +1,35 @@
|
||||||
export const CATEGORIES = [
|
|
||||||
{ id: "1", slug: "blokzincir", name: "Blokzincir" },
|
|
||||||
{ id: "2", slug: "onyuz", name: "Önyüz Geliştirme" },
|
|
||||||
{ id: "3", slug: "linux", name: "Linux" },
|
|
||||||
{ id: "4", slug: "yapay-zeka", name: "Yapay Zeka" },
|
|
||||||
];
|
|
||||||
|
|
||||||
export const COURSES = [
|
export const COURSES = [
|
||||||
{
|
{
|
||||||
id: "1",
|
id: "6a3753e8-5f4e-4f4d-a05e-44b84b8f7aed",
|
||||||
slug: "ethereum-ve-solidity",
|
|
||||||
name: "Ethereum ve Solidity",
|
name: "Ethereum ve Solidity",
|
||||||
description:
|
description:
|
||||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
||||||
price: "300",
|
price: "0.05",
|
||||||
imageUrl: "/course-images/ethereum-and-solidity.webp",
|
imageUrl: "https://osmannyildiz.tk/cublearn/akinci.webp",
|
||||||
instructor: {
|
instructor: {
|
||||||
name: "Baturalp Güvenç",
|
name: "Baturalp Güvenç",
|
||||||
},
|
},
|
||||||
category: CATEGORIES.find((c) => c.slug === "blokzincir"),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "2",
|
id: "c7253736-5756-4a64-a072-917c66afa877",
|
||||||
slug: "akilli-sozlesme-guvenligi",
|
|
||||||
name: "Akıllı Sözleşme Güvenliği",
|
|
||||||
description:
|
|
||||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
|
||||||
price: "500",
|
|
||||||
imageUrl: "/course-images/smart-contract-security.jpg",
|
|
||||||
instructor: {
|
|
||||||
name: "Mehmet Hayırlı",
|
|
||||||
},
|
|
||||||
category: CATEGORIES.find((c) => c.slug === "blokzincir"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "3",
|
|
||||||
slug: "next-js-ile-onyuz-uygulamalari-gelistirme",
|
|
||||||
name: "Next.js ile Önyüz Uygulamaları Geliştirme",
|
name: "Next.js ile Önyüz Uygulamaları Geliştirme",
|
||||||
description:
|
description:
|
||||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
||||||
price: "200",
|
price: "0.05",
|
||||||
imageUrl: "/course-images/nextjs.jpg",
|
imageUrl: "https://osmannyildiz.tk/cublearn/elmacik.webp",
|
||||||
instructor: {
|
instructor: {
|
||||||
name: "Furkan Ayvaz",
|
name: "Furkan Ayvaz",
|
||||||
},
|
},
|
||||||
category: CATEGORIES.find((c) => c.slug === "onyuz"),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "4",
|
id: "59a8f94b-7358-4ffe-bced-a54cccc93e64",
|
||||||
slug: "pardus-a-giris",
|
|
||||||
name: "Pardus'a Giriş",
|
name: "Pardus'a Giriş",
|
||||||
description:
|
description:
|
||||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
||||||
price: "150",
|
price: "0.05",
|
||||||
imageUrl: "/course-images/pardus.jpg",
|
imageUrl: "https://osmannyildiz.tk/cublearn/masalik.webp",
|
||||||
instructor: {
|
instructor: {
|
||||||
name: "Berk Çiçek",
|
name: "Berk Çiçek",
|
||||||
},
|
},
|
||||||
category: CATEGORIES.find((c) => c.slug === "linux"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "5",
|
|
||||||
slug: "yapay-zekaya-giris",
|
|
||||||
name: "Yapay Zekaya Giriş",
|
|
||||||
description:
|
|
||||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
|
||||||
price: "250",
|
|
||||||
imageUrl: "/course-images/ai.png",
|
|
||||||
instructor: {
|
|
||||||
name: "Muhammed Akıncı",
|
|
||||||
},
|
|
||||||
category: CATEGORIES.find((c) => c.slug === "yapay-zeka"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "6",
|
|
||||||
slug: "react-js-temelleri",
|
|
||||||
name: "React.js Temelleri",
|
|
||||||
description:
|
|
||||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
|
||||||
price: "250",
|
|
||||||
imageUrl: "/course-images/reactjs.jpg",
|
|
||||||
instructor: {
|
|
||||||
name: "Recep Akkaya",
|
|
||||||
},
|
|
||||||
category: CATEGORIES.find((c) => c.slug === "onyuz"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "7",
|
|
||||||
slug: "avalanche-ile-merkeziyetsiz-uygulamalar",
|
|
||||||
name: "Avalanche ile Merkeziyetsiz Uygulamalar",
|
|
||||||
description:
|
|
||||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem vitae veritatis deserunt quidem hic ea repellendus fugiat ducimus tenetur. Fugit cumque quo saepe possimus rem qui odit vitae dignissimos reprehenderit!",
|
|
||||||
price: "450",
|
|
||||||
imageUrl: "/course-images/avalanche.png",
|
|
||||||
instructor: {
|
|
||||||
name: "Ali Gedikli",
|
|
||||||
},
|
|
||||||
category: CATEGORIES.find((c) => c.slug === "blokzincir"),
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,4 @@ export const cn = (...args) => {
|
||||||
return args.filter((arg) => typeof arg === "string").join(" ");
|
return args.filter((arg) => typeof arg === "string").join(" ");
|
||||||
};
|
};
|
||||||
|
|
||||||
export const formatPrice = (price) => `${price} DTL`;
|
export const formatPrice = (price) => `${price} ETH`;
|
||||||
|
|
|
||||||