diff --git a/README.md b/README.md index ad7daab..28ddb3a 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,14 @@ ### 2. How to Get The Token's Resource Link The token URL will be created with the rule **https://resources.acala.network/{TYPE}/{NAME}.png** - eg. - token dot: https://resources.acala.network/tokens/DOT.png - polkadot network: https://resources.acala.network/networks/polkadot.png + + - token dot: https://resources.acala.network/tokens/DOT.png + - polkadot network: https://resources.acala.network/networks/polkadot.png ### 3. Preview All Token and Network - visit [acala-resource](https://resources.acala.network) page to preview all token and network icons. + visit [token-resource](https://resources.acala.network) page to preview all token and network icons. + +### 4. Get JSON Results from the API for all Tokens and Networks + + - tokens: https://resources.acala.network/api/tokens + - networks: https://resources.acala.network/api/networks \ No newline at end of file diff --git a/package.json b/package.json index 3767e96..d182f3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tokens-resource", - "version": "0.1.0", + "version": "1.1.3", "private": true, "scripts": { "dev": "next dev", diff --git a/pages/api/networks.js b/pages/api/networks.js new file mode 100644 index 0000000..5d30098 --- /dev/null +++ b/pages/api/networks.js @@ -0,0 +1,12 @@ +import networkList from "../../resources/networks.json"; +const PUBLIC_HOST = 'https://token-resources-chi.vercel.app'; + +Object.entries(networkList).forEach(([key, value]) => { + value.icon = PUBLIC_HOST + value.icon +}) + +const networks = JSON.stringify(networkList) + +export default function handler(req, res) { + res.status(200).json(networks) +} \ No newline at end of file diff --git a/pages/api/tokens.js b/pages/api/tokens.js new file mode 100644 index 0000000..8bb8afe --- /dev/null +++ b/pages/api/tokens.js @@ -0,0 +1,12 @@ +import tokenList from "../../resources/tokens.json"; +const PUBLIC_HOST = 'https://token-resources-chi.vercel.app'; + +Object.entries(tokenList).forEach(([key, value]) => { + value.icon = PUBLIC_HOST + value.icon +}) + +const tokens = JSON.stringify(tokenList) + +export default function handler(req, res) { + res.status(200).json(tokens) +} \ No newline at end of file diff --git a/pages/index.js b/pages/index.js index 42f2d0a..ccbbe67 100644 --- a/pages/index.js +++ b/pages/index.js @@ -14,7 +14,7 @@ export default function Home() { return (
- Acala Resources + Polkadot Ecosystem Token Resources

diff --git a/resources/networks.json b/resources/networks.json index e56b29e..578f740 100644 --- a/resources/networks.json +++ b/resources/networks.json @@ -1,11 +1,23 @@ { "acala": { "icon": "/networks/acala.png", - "name": "acala" + "name": "acala", + "relayChain": "polkadot", + "parachainId": 2000, + "endpoint": "wss://acala-rpc.dwellir.com", + "subscan": "https://acala.subscan.io", + "isEVMChain": true, + "isAstarNativeToken": true }, "astar": { "icon": "/networks/astar.png", - "name": "astar" + "name": "astar", + "relayChain": "polkadot", + "parachainId": 2006, + "endpoint": "wss://astar-rpc.dwellir.com", + "subscan": "https://astar.subscan.io", + "isEVMChain": true, + "isAstarNativeToken": false }, "basilisk": { "icon": "/networks/basilisk.png", @@ -49,7 +61,12 @@ }, "interlay": { "icon": "/networks/interlay.png", - "name": "interlay" + "name": "interlay", + "relayChain": "polkadot", + "parachainId": 2032, + "endpoint": "wss://api.interlay.io/parachain", + "subscan": "https://interlay.subscan.io", + "isAstarNativeToken": false }, "kabocha": { "icon": "/networks/kabocha.png", @@ -57,19 +74,40 @@ }, "karura": { "icon": "/networks/karura.png", - "name": "karura" + "name": "karura", + "relayChain": "kusama", + "parachainId": 2000, + "endpoint": "wss://karura-rpc.dwellir.com", + "subscan": "https://karura.subscan.io", + "isEVMChain": true, + "isAstarNativeToken": true }, "khala": { "icon": "/networks/khala.png", - "name": "khala" + "name": "khala", + "relayChain": "kusama", + "parachainId": 2004, + "endpoint": "wss://khala-rpc.dwellir.com", + "subscan": "https://khala.subscan.io", + "isAstarNativeToken": true }, "kintsugi": { "icon": "/networks/kintsugi.png", - "name": "kintsugi" + "name": "kintsugi", + "relayChain": "kusama", + "parachainId": 2092, + "endpoint": "wss://kintsugi-rpc.dwellir.com", + "subscan": "https://kintsugi.subscan.io", + "isAstarNativeToken": false }, "kusama": { "icon": "/networks/kusama.png", - "name": "kusama" + "name": "kusama", + "relayChain": "kusama", + "parachainId": 0, + "endpoint": "wss://kusama-rpc.polkadot.io", + "subscan": "https://kusama.subscan.io", + "isAstarNativeToken": false }, "kylin": { "icon": "/networks/kylin.png", @@ -93,7 +131,12 @@ }, "phala": { "icon": "/networks/phala.png", - "name": "phala" + "name": "phala", + "relayChain": "polkadot", + "parachainId": 2035, + "endpoint": "wss://api.phala.network/ws", + "subscan": "https://phala.subscan.io", + "isAstarNativeToken": true }, "pichiu": { "icon": "/networks/pichiu.png", @@ -105,7 +148,12 @@ }, "polkadot": { "icon": "/networks/polkadot.png", - "name": "polkadot" + "name": "polkadot", + "relayChain": "polkadot", + "parachainId": 0, + "endpoint": "wss://polkadot.api.onfinality.io/public-ws", + "subscan": "https://polkadot.subscan.io", + "isAstarNativeToken": false }, "rococo": { "icon": "/networks/rococo.png", @@ -113,12 +161,33 @@ }, "shiden": { "icon": "/networks/shiden.png", - "name": "shiden" + "name": "shiden", + "relayChain": "kusama", + "parachainId": 2007, + "endpoint": "wss://shiden-rpc.dwellir.com", + "subscan": "https://shiden.subscan.io", + "isEVMChain": true, + "isWASMChain": true, + "isAstarNativeToken": false }, "statemine": { "icon": "/networks/statemine.png", - "name": "statemine" - }, + "name": "statemine", + "relayChain": "kusama", + "parachainId": 1000, + "endpoint": "wss://statemine-rpc.polkadot.io", + "subscan": "https://statemine.subscan.io", + "isAstarNativeToken": false + }, + "statemint": { + "icon": "/networks/statemine.png", + "name": "statemint", + "relayChain": "polkadot", + "parachainId": 1000, + "endpoint": "wss://statemint-rpc.dwellir.com", + "subscan": "https://statemint.subscan.io", + "isAstarNativeToken": false +}, "turing": { "icon": "/networks/turing.png", "name": "turing" @@ -137,7 +206,13 @@ }, "moonriver": { "icon": "/networks/moonriver.png", - "name": "moonriver" + "name": "moonriver", + "relayChain": "kusama", + "parachainId": 2023, + "endpoint": "wss://wss.api.moonriver.moonbeam.network", + "subscan": "https://moonriver.subscan.io", + "isEVMChain": true, + "isAstarNativeToken": true }, "kico": { "icon": "/networks/kico.png", @@ -145,7 +220,12 @@ }, "crust shadow": { "icon": "/networks/crust shadow.png", - "name": "crust shadow" + "name": "crust shadow", + "relayChain": "kusama", + "parachainId": 2012, + "endpoint": "wss://rpc2-shadow.crust.network", + "subscan": "https://crust.subscan.io", + "isAstarNativeToken": true }, "altair": { "icon": "/networks/altair.png", @@ -153,7 +233,13 @@ }, "moonbeam": { "icon": "/networks/moonbeam.png", - "name": "moonbeam" + "name": "moonbeam", + "relayChain": "polkadot", + "parachainId": 2004, + "endpoint": "wss://wss.api.moonbeam.network", + "subscan": "https://moonbeam.subscan.io", + "isEVMChain": true, + "isAstarNativeToken": true }, "integritee": { "icon": "/networks/integritee.png", diff --git a/resources/tokens.json b/resources/tokens.json index 05c58d7..f8820b0 100644 --- a/resources/tokens.json +++ b/resources/tokens.json @@ -1,7 +1,15 @@ { "ACA": { "icon": "/tokens/ACA.png", - "symbol": "ACA" + "symbol": "ACA", + "name": "Acala", + "isNativeToken": true, + "astarAssetId": "18446744073709551616", + "originAssetId": "ACA", + "isXcmCompatible": true, + "originChain": "acala", + "targetChain": ["astar"], + "minBridgeAmount": "0.4" }, "ARIS": { "icon": "/tokens/ARIS.png", @@ -9,11 +17,27 @@ }, "ASTR": { "icon": "/tokens/ASTR.png", - "symbol": "ASTR" + "symbol": "ASTR", + "name": "Astar", + "isNativeToken": true, + "astarAssetId": "0000000000000000000", + "originAssetId": "ASTR", + "isXcmCompatible": true, + "originChain": "astar", + "targetChain": ["acala","moonbeam","phala"], + "minBridgeAmount": "0.1" }, "AUSD": { "icon": "/tokens/AUSD.png", - "symbol": "AUSD" + "symbol": "AUSD", + "name": "Acala Dollar", + "isNativeToken": false, + "astarAssetId": "18446744073709551617", + "originAssetId": "AUSD", + "isXcmCompatible": true, + "originChain": "acala", + "targetChain": ["astar"], + "minBridgeAmount": "0.1" }, "BNB": { "icon": "/tokens/BNB.png", @@ -49,7 +73,15 @@ }, "DOT": { "icon": "/tokens/DOT.png", - "symbol": "DOT" + "symbol": "DOT", + "name": "Polkadot", + "isNativeToken": true, + "astarAssetId": "340282366920938463463374607431768211455", + "originAssetId": "", + "isXcmCompatible": true, + "originChain": "polkadot", + "targetChain": ["astar","acala"], + "minBridgeAmount": "1.1" }, "EQ": { "icon": "/tokens/EQ.png", @@ -77,7 +109,15 @@ }, "IBTC": { "icon": "/tokens/IBTC.png", - "symbol": "IBTC" + "symbol": "IBTC", + "name": "interBTC", + "isNativeToken": false, + "astarAssetId": "18446744073709551620", + "originAssetId": "IBTC", + "isXcmCompatible": true, + "originChain": "interlay", + "targetChain": ["astar","acala"], + "minBridgeAmount": "0.00000237" }, "IMBU": { "icon": "/tokens/IMBU.png", @@ -85,7 +125,15 @@ }, "INTR": { "icon": "/tokens/INTR.png", - "symbol": "INTR" + "symbol": "INTR", + "name": "Interlay", + "isNativeToken": true, + "astarAssetId": "18446744073709551621", + "originAssetId": "INTR", + "isXcmCompatible": true, + "originChain": "interlay", + "targetChain": ["astar","acala"], + "minBridgeAmount": "0.959" }, "KAB": { "icon": "/tokens/KAB.png", @@ -93,15 +141,39 @@ }, "KAR": { "icon": "/tokens/KAR.png", - "symbol": "KAR" + "symbol": "KAR", + "name": "Karura", + "isNativeToken": true, + "astarAssetId": "18446744073709551618", + "originAssetId": "KAR", + "isXcmCompatible": true, + "originChain": "karura", + "targetChain": ["shiden"], + "minBridgeAmount": "0.11" }, "KBTC": { "icon": "/tokens/KBTC.png", - "symbol": "KBTC" + "symbol": "KBTC", + "name": "kintsugiBTC", + "isNativeToken": false, + "astarAssetId": "18446744073709551621", + "originAssetId": "KBTC", + "isXcmCompatible": true, + "originChain": "kintsugi", + "targetChain": ["karura"], + "minBridgeAmount": "0.00000237" }, "KINT": { "icon": "/tokens/KINT.png", - "symbol": "KINT" + "symbol": "KINT", + "name": "Kintsugi", + "isNativeToken": true, + "astarAssetId": "18446744073709551622", + "originAssetId": "KINT", + "isXcmCompatible": true, + "originChain": "kintsugi", + "targetChain": ["karura"], + "minBridgeAmount": "0.345" }, "KMA": { "icon": "/tokens/KMA.png", @@ -109,11 +181,27 @@ }, "KSM": { "icon": "/tokens/KSM.png", - "symbol": "KSM" + "symbol": "KSM", + "name": "Kusama", + "isNativeToken": true, + "astarAssetId": "340282366920938463463374607431768211455", + "originAssetId": "", + "isXcmCompatible": true, + "originChain": "kusama", + "targetChain": ["shiden","karura"], + "minBridgeAmount": "0.1" }, "KUSD": { "icon": "/tokens/KUSD.png", - "symbol": "KUSD" + "symbol": "KUSD", + "name": "Acala Dollar", + "isNativeToken": false, + "astarAssetId": "18446744073709551616", + "originAssetId": "KUSD", + "isXcmCompatible": true, + "originChain": "karura", + "targetChain": ["shiden"], + "minBridgeAmount": "0.1" }, "KYL": { "icon": "/tokens/KYL.png", @@ -125,7 +213,15 @@ }, "LDOT": { "icon": "/tokens/LDOT.png", - "symbol": "LDOT" + "symbol": "LDOT", + "name": "Liquid DOT", + "isNativeToken": false, + "astarAssetId": "18446744073709551618", + "originAssetId": "LDOT", + "isXcmCompatible": true, + "originChain": "acala", + "targetChain": ["astar"], + "minBridgeAmount": "0.13" }, "LIKE": { "icon": "/tokens/LIKE.png", @@ -137,7 +233,15 @@ }, "LKSM": { "icon": "/tokens/LKSM.png", - "symbol": "LKSM" + "symbol": "LKSM", + "name": "Liquid KSM", + "isNativeToken": false, + "astarAssetId": "18446744073709551619", + "originAssetId": "LKSM", + "isXcmCompatible": true, + "originChain": "karura", + "targetChain": ["shiden"], + "minBridgeAmount": "0.0024" }, "LPT0": { "icon": "/tokens/LPT0.png", @@ -153,7 +257,15 @@ }, "MOVR": { "icon": "/tokens/MOVR.png", - "symbol": "MOVR" + "symbol": "MOVR", + "name": "Moonriver", + "isNativeToken": true, + "astarAssetId": "18446744073709551620", + "originAssetId": "MOVR", + "isXcmCompatible": true, + "originChain": "moonriver", + "targetChain": ["shiden","karura"], + "minBridgeAmount": "0.007" }, "NEER": { "icon": "/tokens/NEER.png", @@ -165,7 +277,15 @@ }, "PHA": { "icon": "/tokens/PHA.png", - "symbol": "PHA" + "symbol": "PHA", + "name": "Phala", + "isNativeToken": true, + "astarAssetId": ["18446744073709551622","18446744073709551623"], + "originAssetId": "PHA", + "isXcmCompatible": true, + "originChain": ["phala","khala"], + "targetChain": ["astar","shiden","karura"], + "minBridgeAmount": "0.2" }, "QTZ": { "icon": "/tokens/QTZ.png", @@ -181,7 +301,15 @@ }, "SDN": { "icon": "/tokens/SDN.png", - "symbol": "SDN" + "symbol": "SDN", + "name": "Shiden", + "isNativeToken": true, + "astarAssetId": "0000000000000000000", + "originAssetId": "SDN", + "isXcmCompatible": true, + "originChain": "shiden", + "targetChain": ["karura"], + "minBridgeAmount": "0.1" }, "TAI": { "icon": "/tokens/TAI.png", @@ -201,7 +329,15 @@ }, "USDT": { "icon": "/tokens/USDT.png", - "symbol": "USDT" + "symbol": "USDT", + "name": "Tether USD", + "isNativeToken": false, + "astarAssetId": "4294969280", + "originAssetId": "1984", + "isXcmCompatible": true, + "originChain": ["statemint","statemine"], + "targetChain": ["astar","shiden"], + "minBridgeAmount": "0.21" }, "WBNB": { "icon": "/tokens/WBNB.png", @@ -229,7 +365,14 @@ }, "CSM": { "icon": "/tokens/CSM.png", - "symbol": "CSM" + "symbol": "CSM", + "isNativeToken": true, + "astarAssetId": "18446744073709551624", + "originAssetId": "CSM", + "isXcmCompatible": true, + "originChain": "crust shadow", + "targetChain": ["shiden"], + "minBridgeAmount": "0.5" }, "KICO": { "icon": "/tokens/KICO.png", @@ -249,7 +392,15 @@ }, "GLMR": { "icon": "/tokens/GLMR.png", - "symbol": "GLMR" + "symbol": "GLMR", + "name": "Glimmer", + "isNativeToken": true, + "astarAssetId": "18446744073709551619", + "originAssetId": "GLMR", + "isXcmCompatible": true, + "originChain": "moonbeam", + "targetChain": ["astar"], + "minBridgeAmount": "0.2" }, "tDOT": { "icon": "/tokens/tDOT.png", diff --git a/vercel.json b/vercel.json index 687c515..bb023a6 100644 --- a/vercel.json +++ b/vercel.json @@ -8,6 +8,15 @@ "value" : "public, max-age=604800, stale-while-revalidate=2678400" } ] + }, + { + "source": "/api/(.*)", + "headers": [ + { "key": "Access-Control-Allow-Credentials", "value": "true" }, + { "key": "Access-Control-Allow-Origin", "value": "*" }, + { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" }, + { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" } + ] } ] }