From c5cac2debe3e0067b6b4e374e680d04ff8610aa9 Mon Sep 17 00:00:00 2001 From: dafuga Date: Tue, 17 Dec 2024 23:29:17 -0500 Subject: [PATCH 01/26] enhancement: implemented card design for on-ramps section --- messages/en.json | 7 ++ .../[network]/(account)/fund/+page.svelte | 95 +++++++++++++++---- static/coinbase-icon.svg | 10 ++ 3 files changed, 96 insertions(+), 16 deletions(-) create mode 100644 static/coinbase-icon.svg diff --git a/messages/en.json b/messages/en.json index c07b3b06..8efb6637 100644 --- a/messages/en.json +++ b/messages/en.json @@ -5,6 +5,7 @@ "active_session": "Active Session", "block_height_numbered": "Block #{height}", "block_height_numbered_description": "Block #{height} was produced by {producer} on {timestamp}, which included {transactions} transactions performing {actions} actions.", + "buy_eos_with_coinbase": "Buy EOS with Coinbase", "common_about_something": "About {thing}", "common_action": "Action", "common_amount_exceeds_balance": "Amount exceeds available balance.", @@ -92,6 +93,7 @@ "contract_view_title": "Contract: {contract} | {network}", "delegation_metadata_refund_description": "Claim previously delegated {network} tokens.", "delegation_metadata_refund_title": "Refund Delegated {network} Tokens", + "details": "Details", "error_loading_accounts": "Error loading accounts: {error}", "form_validation_insufficient_balance": "Insufficient {unit} balance. Please enter a smaller amount.", "form_validation_invalid_number_decimals": "Invalid number, too many decimal places.", @@ -99,8 +101,12 @@ "key_page_subtitle": "The {accounts} account(s) associated with this public key", "key_page_title": "Public Key", "legacy_key": "Legacy Key", + "limits": "Limits", "loading_accounts": "Loading accounts...", + "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", "no_accounts_found": "No accounts found", + "no_supported_funding_methods": "No supported funding methods for this blockchain.", + "processing_fees": "Processing fees", "ram_available_balance": "RAM Available", "ram_form_buy_amount": "Amount of RAM to buy:", "ram_metadata_buy_description": "Exchange {token} for RAM on the {network} network using an {network} compatible wallet.", @@ -114,6 +120,7 @@ "ram_to_purchase": "RAM to be bought", "ram_to_sell": "RAM to be sold", "search_view_type": "View {type}", + "select_provider": "Select provider", "send_amount_to_send": "Amount to send", "send_enter_amount": "Enter the amount of {token} to send", "send_memo_placeholder": "Specify a public memo for this transfer (optional)", diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 5ae9daa2..95c38801 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -1,4 +1,5 @@ -

Onramps

-

- After logging in with your EOS account, EOS tokens can be purchased directly from the following - platforms and the tokens will immediately be sent to your on-chain account. -

+

{m.select_provider()}

+ {#if !context.account} -

You must be logged in with an account to use this feature.

-{:else if !coinbaseInstance} -

No supported funding methods for this blockchain.

+

+ {m.must_be_logged_in_for_feature()} +

{:else} - + + {#each ON_RAMP_SERVICES as service} + +
+
+ {service.id} +
+
+
+

{m.processing_fees()}

+

{service.fees.range}

+
+
+
+

{m.limits()}

+

{service.limits.daily}

+
+
+
+

{m.details()}

+
    + {#each service.details as detail} +
  • {detail}
  • + {/each} +
+
+
+ {#if service.id === 'coinbase' && coinbaseInstance} + + {:else} +

{m.no_supported_funding_methods()}

+ {/if} +
+
+ {/each} +
{/if} +

Exchanges

EOS can be purchased through a number of platforms, depending on the users needs and location. @@ -97,11 +162,9 @@ {#if context.settings.data.debugMode}

{m.common_debugging()}

- {JSON.stringify(options, null, 2)} - {JSON.stringify(coinbaseInstance, null, 2)} diff --git a/static/coinbase-icon.svg b/static/coinbase-icon.svg new file mode 100644 index 00000000..8f15c1a2 --- /dev/null +++ b/static/coinbase-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + From a9ad016de3763d211be61422928ee0c6632bd82c Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 01:26:46 -0500 Subject: [PATCH 02/26] enhancement: polished the exchanges section --- messages/en.json | 20 +- .../[network]/(account)/fund/+page.svelte | 179 ++++++++++++------ static/binance.webp | Bin 0 -> 9376 bytes static/coinbase.webp | Bin 0 -> 4116 bytes static/gate-io.webp | Bin 0 -> 8814 bytes static/huobi.webp | Bin 0 -> 3824 bytes static/kraken.webp | Bin 0 -> 3462 bytes static/kucoin.webp | Bin 0 -> 6078 bytes static/okx.webp | Bin 0 -> 768 bytes static/upbit.webp | Bin 0 -> 5288 bytes 10 files changed, 128 insertions(+), 71 deletions(-) create mode 100644 static/binance.webp create mode 100644 static/coinbase.webp create mode 100644 static/gate-io.webp create mode 100644 static/huobi.webp create mode 100644 static/kraken.webp create mode 100644 static/kucoin.webp create mode 100644 static/okx.webp create mode 100644 static/upbit.webp diff --git a/messages/en.json b/messages/en.json index 8efb6637..35a52ddd 100644 --- a/messages/en.json +++ b/messages/en.json @@ -5,7 +5,6 @@ "active_session": "Active Session", "block_height_numbered": "Block #{height}", "block_height_numbered_description": "Block #{height} was produced by {producer} on {timestamp}, which included {transactions} transactions performing {actions} actions.", - "buy_eos_with_coinbase": "Buy EOS with Coinbase", "common_about_something": "About {thing}", "common_action": "Action", "common_amount_exceeds_balance": "Amount exceeds available balance.", @@ -93,7 +92,6 @@ "contract_view_title": "Contract: {contract} | {network}", "delegation_metadata_refund_description": "Claim previously delegated {network} tokens.", "delegation_metadata_refund_title": "Refund Delegated {network} Tokens", - "details": "Details", "error_loading_accounts": "Error loading accounts: {error}", "form_validation_insufficient_balance": "Insufficient {unit} balance. Please enter a smaller amount.", "form_validation_invalid_number_decimals": "Invalid number, too many decimal places.", @@ -101,12 +99,8 @@ "key_page_subtitle": "The {accounts} account(s) associated with this public key", "key_page_title": "Public Key", "legacy_key": "Legacy Key", - "limits": "Limits", "loading_accounts": "Loading accounts...", - "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", "no_accounts_found": "No accounts found", - "no_supported_funding_methods": "No supported funding methods for this blockchain.", - "processing_fees": "Processing fees", "ram_available_balance": "RAM Available", "ram_form_buy_amount": "Amount of RAM to buy:", "ram_metadata_buy_description": "Exchange {token} for RAM on the {network} network using an {network} compatible wallet.", @@ -120,7 +114,6 @@ "ram_to_purchase": "RAM to be bought", "ram_to_sell": "RAM to be sold", "search_view_type": "View {type}", - "select_provider": "Select provider", "send_amount_to_send": "Amount to send", "send_enter_amount": "Enter the amount of {token} to send", "send_memo_placeholder": "Specify a public memo for this transfer (optional)", @@ -155,5 +148,16 @@ "staking_network_title": "{network} Network Staking", "staking_withdraw_timeframe": "Withdrawable in 21 days", "test_locale_string": "This is a test", - "total_proceeds": "Total Proceeds" + "total_proceeds": "Total Proceeds", + "select_provider": "Select provider", + "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", + "processing_fees": "Processing fees", + "limits": "Limits", + "details": "Details", + "buy_eos_with_coinbase": "Buy EOS with Coinbase", + "no_supported_funding_methods": "No supported funding methods for this blockchain.", + "tokens_purchase_providers": "Tokens can be purchased directly through the following providers:", + "coinbase_service_unavailable": "Coinbase service is currently unavailable.", + "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available.", + "exchanges": "Exchanges:" } diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 95c38801..18aeeed2 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -8,9 +8,8 @@ import { env } from '$env/dynamic/public'; import * as m from '$lib/paraglide/messages'; import { MultiCard } from '$lib/components/layout'; - import Center from '$lib/components/layout/center.svelte'; - const ON_RAMP_SERVICES = [ + const ON_RAMP_PROVIDERS = [ { id: 'coinbase', logo: '/coinbase-icon.svg', @@ -29,6 +28,49 @@ } ] as const; + const EXCHANGES = [ + { + name: 'Binance', + logo: '/binance.webp', + url: 'https://www.binance.com' + }, + { + name: 'Coinbase', + logo: '/coinbase.webp', + url: 'https://www.coinbase.com' + }, + { + name: 'Kraken', + logo: '/kraken.webp', + url: 'https://www.kraken.com' + }, + { + name: 'OKX', + logo: '/okx.webp', + url: 'https://www.okx.com' + }, + { + name: 'Huobi Global', + logo: '/huobi.webp', + url: 'https://global-aws.huobi.com' + }, + { + name: 'Gate.io', + logo: '/gate-io.webp', + url: 'https://www.gate.io' + }, + { + name: 'Upbit', + logo: '/upbit.webp', + url: 'https://upbit.com' + }, + { + name: 'Kucoin', + logo: '/kucoin.webp', + url: 'https://kucoin.com' + } + ] as const; + const context = getContext('state'); const coinbaseOptions: InitOnRampParams | undefined = $derived.by(() => { @@ -83,10 +125,16 @@ function handleCoinbaseOnRamp() { if (coinbaseInstance) { coinbaseInstance.open(); + } else { + console.error('Coinbase instance not found'); + alert(m.coinbase_service_unavailable()); } } - function handleOnRamp(service: (typeof ON_RAMP_SERVICES)[number]['id']) { + function handleOnRamp(service: (typeof ON_RAMP_PROVIDERS)[number]['id']) { + if (!context.account) { + return; + } if (service === 'coinbase') { return handleCoinbaseOnRamp(); } @@ -94,76 +142,81 @@ } -

{m.select_provider()}

+

Token Purchase Providers:

-{#if !context.account} -

- {m.must_be_logged_in_for_feature()} -

-{:else} - - {#each ON_RAMP_SERVICES as service} - -
-
- {service.id} + + {#each ON_RAMP_PROVIDERS as service} + +
+
+ {service.id} +
+
+
+

{m.processing_fees()}

+

{service.fees.range}

-
-
-

{m.processing_fees()}

-

{service.fees.range}

-
-
-
-

{m.limits()}

-

{service.limits.daily}

-
-
+
+
+

{m.limits()}

+

{service.limits.daily}

-

{m.details()}

-
    - {#each service.details as detail} -
  • {detail}
  • - {/each} -
-
-
- {#if service.id === 'coinbase' && coinbaseInstance} - - {:else} -

{m.no_supported_funding_methods()}

- {/if} +
- - {/each} - -{/if} +

{m.details()}

+
    + {#each service.details as detail} +
  • {detail}
  • + {/each} +
+
+
+ {#if !context.account} +

{m.must_be_logged_in_for_feature()}

+ {:else} + + {/if} +
+ + {/each} + + +

{m.exchanges()}

- -

Exchanges

-

- EOS can be purchased through a number of platforms, depending on the users needs and location. - Below are some of the most popular options available. +

+ {m.where_eos_can_be_purchased()}

- + + + {#each EXCHANGES as exchange} + + +
+ {exchange.name} logo +
+

{exchange.name}

+
+
+ {/each} +
{#if context.settings.data.debugMode}

{m.common_debugging()}

- {JSON.stringify(options, null, 2)} + {JSON.stringify(coinbaseOptions, null, 2)} {JSON.stringify(coinbaseInstance, null, 2)} diff --git a/static/binance.webp b/static/binance.webp new file mode 100644 index 0000000000000000000000000000000000000000..050aec760e92365d6e47076f58ccbc8a646a3a4b GIT binary patch literal 9376 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 O$5O|o#Wwly-v0nQ&s~84 literal 0 HcmV?d00001 diff --git a/static/coinbase.webp b/static/coinbase.webp new file mode 100644 index 0000000000000000000000000000000000000000..2a732019b4b169c9e6d70754fd317d6debcd79de GIT binary patch literal 4116 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 LsXhLC{Q>_2jes19 literal 0 HcmV?d00001 diff --git a/static/gate-io.webp b/static/gate-io.webp new file mode 100644 index 0000000000000000000000000000000000000000..cb53091e125e88c1120d37dd686777513bf8ecf7 GIT binary patch literal 8814 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 literal 0 HcmV?d00001 diff --git a/static/huobi.webp b/static/huobi.webp new file mode 100644 index 0000000000000000000000000000000000000000..10ff703f07fccb4acd1e2d0a676d4387e94bc5c7 GIT binary patch literal 3824 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 U2y#4DrDT+T#yj`t^Z&R05ALK=WdHyG literal 0 HcmV?d00001 diff --git a/static/kraken.webp b/static/kraken.webp new file mode 100644 index 0000000000000000000000000000000000000000..ad981c6727de32e128cf3f82d50cc2edb8942a07 GIT binary patch literal 3462 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

Xj|Ca#u^irYUH0h(EINRpH<0>pz^@k~4>! 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 E08AJ21poj5 literal 0 HcmV?d00001 diff --git a/static/okx.webp b/static/okx.webp new file mode 100644 index 0000000000000000000000000000000000000000..46a23e7278dd8052f4e08b1576b4d0e602ec40fc GIT binary patch literal 768 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 HFV24e2z+)L literal 0 HcmV?d00001 From 0d3446ad6bd566a887ed0e7cd3801b812d0efe8c Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 01:54:56 -0500 Subject: [PATCH 03/26] chore: localizing page metadata --- messages/en.json | 24 +++++++++++--------- src/routes/[network]/(account)/fund/+page.ts | 9 ++++---- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/messages/en.json b/messages/en.json index 35a52ddd..c7acd936 100644 --- a/messages/en.json +++ b/messages/en.json @@ -5,6 +5,8 @@ "active_session": "Active Session", "block_height_numbered": "Block #{height}", "block_height_numbered_description": "Block #{height} was produced by {producer} on {timestamp}, which included {transactions} transactions performing {actions} actions.", + "buy_eos_with_coinbase": "Buy EOS with Coinbase", + "coinbase_service_unavailable": "Coinbase service is currently unavailable.", "common_about_something": "About {thing}", "common_action": "Action", "common_amount_exceeds_balance": "Amount exceeds available balance.", @@ -92,15 +94,23 @@ "contract_view_title": "Contract: {contract} | {network}", "delegation_metadata_refund_description": "Claim previously delegated {network} tokens.", "delegation_metadata_refund_title": "Refund Delegated {network} Tokens", + "details": "Details", "error_loading_accounts": "Error loading accounts: {error}", + "exchanges": "Exchanges:", "form_validation_insufficient_balance": "Insufficient {unit} balance. Please enter a smaller amount.", "form_validation_invalid_number_decimals": "Invalid number, too many decimal places.", + "fund_account": "Fund Account", + "fund_account_description": "Purchase EOS tokens to fund your account", "key_page_description": "A public key associated with {accounts} account(s) on the {network} network.", "key_page_subtitle": "The {accounts} account(s) associated with this public key", "key_page_title": "Public Key", "legacy_key": "Legacy Key", + "limits": "Limits", "loading_accounts": "Loading accounts...", + "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", "no_accounts_found": "No accounts found", + "no_supported_funding_methods": "No supported funding methods for this blockchain.", + "processing_fees": "Processing fees", "ram_available_balance": "RAM Available", "ram_form_buy_amount": "Amount of RAM to buy:", "ram_metadata_buy_description": "Exchange {token} for RAM on the {network} network using an {network} compatible wallet.", @@ -114,6 +124,7 @@ "ram_to_purchase": "RAM to be bought", "ram_to_sell": "RAM to be sold", "search_view_type": "View {type}", + "select_provider": "Select provider", "send_amount_to_send": "Amount to send", "send_enter_amount": "Enter the amount of {token} to send", "send_memo_placeholder": "Specify a public memo for this transfer (optional)", @@ -148,16 +159,7 @@ "staking_network_title": "{network} Network Staking", "staking_withdraw_timeframe": "Withdrawable in 21 days", "test_locale_string": "This is a test", - "total_proceeds": "Total Proceeds", - "select_provider": "Select provider", - "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", - "processing_fees": "Processing fees", - "limits": "Limits", - "details": "Details", - "buy_eos_with_coinbase": "Buy EOS with Coinbase", - "no_supported_funding_methods": "No supported funding methods for this blockchain.", "tokens_purchase_providers": "Tokens can be purchased directly through the following providers:", - "coinbase_service_unavailable": "Coinbase service is currently unavailable.", - "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available.", - "exchanges": "Exchanges:" + "total_proceeds": "Total Proceeds", + "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available." } diff --git a/src/routes/[network]/(account)/fund/+page.ts b/src/routes/[network]/(account)/fund/+page.ts index 1b17aa8c..55c320fe 100644 --- a/src/routes/[network]/(account)/fund/+page.ts +++ b/src/routes/[network]/(account)/fund/+page.ts @@ -1,12 +1,13 @@ import type { PageLoad } from './$types'; +import * as m from '$lib/paraglide/messages'; export const load: PageLoad = async () => { return { - title: 'Fund Account', - subtitle: 'Purchase EOS tokens to fund your account', + title: m.fund_account(), + subtitle: m.fund_account_description(), pageMetaTags: { - title: 'Fund Account', - description: 'Purchase EOS tokens to fund your account' + title: m.fund_account(), + description: m.fund_account_description() } }; }; From 19e0de060b2e79b7c9756c48e55f6b5751790f8c Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 02:08:39 -0500 Subject: [PATCH 04/26] fix: making the on ramp provider card look more presentable on bigger screens --- src/routes/[network]/(account)/fund/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 18aeeed2..ecbe7e55 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -144,7 +144,7 @@

Token Purchase Providers:

- + {#each ON_RAMP_PROVIDERS as service}
From bffe910d46eef89728aa15028bc0512f54339cf7 Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 11:25:00 -0500 Subject: [PATCH 05/26] chore: adjusted coinbase on ramp service details --- messages/en.json | 29 ++++++++++--------- .../[network]/(account)/fund/+page.svelte | 4 +-- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/messages/en.json b/messages/en.json index c7acd936..0056bdfa 100644 --- a/messages/en.json +++ b/messages/en.json @@ -5,8 +5,6 @@ "active_session": "Active Session", "block_height_numbered": "Block #{height}", "block_height_numbered_description": "Block #{height} was produced by {producer} on {timestamp}, which included {transactions} transactions performing {actions} actions.", - "buy_eos_with_coinbase": "Buy EOS with Coinbase", - "coinbase_service_unavailable": "Coinbase service is currently unavailable.", "common_about_something": "About {thing}", "common_action": "Action", "common_amount_exceeds_balance": "Amount exceeds available balance.", @@ -94,23 +92,15 @@ "contract_view_title": "Contract: {contract} | {network}", "delegation_metadata_refund_description": "Claim previously delegated {network} tokens.", "delegation_metadata_refund_title": "Refund Delegated {network} Tokens", - "details": "Details", "error_loading_accounts": "Error loading accounts: {error}", - "exchanges": "Exchanges:", "form_validation_insufficient_balance": "Insufficient {unit} balance. Please enter a smaller amount.", "form_validation_invalid_number_decimals": "Invalid number, too many decimal places.", - "fund_account": "Fund Account", - "fund_account_description": "Purchase EOS tokens to fund your account", "key_page_description": "A public key associated with {accounts} account(s) on the {network} network.", "key_page_subtitle": "The {accounts} account(s) associated with this public key", "key_page_title": "Public Key", "legacy_key": "Legacy Key", - "limits": "Limits", "loading_accounts": "Loading accounts...", - "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", "no_accounts_found": "No accounts found", - "no_supported_funding_methods": "No supported funding methods for this blockchain.", - "processing_fees": "Processing fees", "ram_available_balance": "RAM Available", "ram_form_buy_amount": "Amount of RAM to buy:", "ram_metadata_buy_description": "Exchange {token} for RAM on the {network} network using an {network} compatible wallet.", @@ -124,7 +114,6 @@ "ram_to_purchase": "RAM to be bought", "ram_to_sell": "RAM to be sold", "search_view_type": "View {type}", - "select_provider": "Select provider", "send_amount_to_send": "Amount to send", "send_enter_amount": "Enter the amount of {token} to send", "send_memo_placeholder": "Specify a public memo for this transfer (optional)", @@ -159,7 +148,21 @@ "staking_network_title": "{network} Network Staking", "staking_withdraw_timeframe": "Withdrawable in 21 days", "test_locale_string": "This is a test", - "tokens_purchase_providers": "Tokens can be purchased directly through the following providers:", "total_proceeds": "Total Proceeds", - "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available." + "select_provider": "Select provider", + "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", + "processing_fees": "Processing fees", + "limits": "Limits", + "details": "Details", + "buy_eos_with_coinbase": "Buy EOS with Coinbase", + "no_supported_funding_methods": "No supported funding methods for this blockchain.", + "tokens_purchase_providers": "Tokens can be purchased directly through the following providers:", + "coinbase_service_unavailable": "Coinbase service is currently unavailable.", + "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available.", + "exchanges": "Exchanges:", + "fund_account": "Fund Account", + "fund_account_description": "Purchase EOS tokens to fund your account", + "buy_or_transfer_crypto": "Buy or transfer EOS", + "debit_and_credit_card_support": "Debit and credit card support", + "_500_per_day": "$500/day" } diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index ecbe7e55..14596d59 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -17,9 +17,9 @@ range: '1.49% - 3.99%' }, limits: { - daily: '$25,000/day' + daily: m._500_per_day() }, - details: ['United States Only', 'Instant ACH transfers', 'Debit card support', 'Bank wire'], + details: [m.buy_or_transfer_crypto(), m.debit_and_credit_card_support()], action: { text: m.buy_eos_with_coinbase(), handler: 'coinbase', From 484742a79d9f1c7e77572c78e710b53a7799f23c Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 11:26:55 -0500 Subject: [PATCH 06/26] fix: fixed typo --- messages/en.json | 32 +++++++++---------- .../[network]/(account)/fund/+page.svelte | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/messages/en.json b/messages/en.json index 0056bdfa..bb30b0a6 100644 --- a/messages/en.json +++ b/messages/en.json @@ -1,10 +1,14 @@ { "$schema": "https://inlang.com/schema/inlang-message-format", + "_500_per_day": "$500/day", "account_page": "Account Page", "accounts_using_public_key": "Associated Accounts", "active_session": "Active Session", "block_height_numbered": "Block #{height}", "block_height_numbered_description": "Block #{height} was produced by {producer} on {timestamp}, which included {transactions} transactions performing {actions} actions.", + "buy_eos_with_coinbase": "Buy EOS with Coinbase", + "buy_or_transfer_crypto": "Buy or transfer EOS", + "coinbase_service_unavailable": "Coinbase service is currently unavailable.", "common_about_something": "About {thing}", "common_action": "Action", "common_amount_exceeds_balance": "Amount exceeds available balance.", @@ -90,17 +94,26 @@ "contract_tables_view_title": "Table: {table}", "contract_view_description": "An overview of the {contract} smart contract on the {network} network. This contract contains {actions} actions, {tables} tables, and {structs} structs.", "contract_view_title": "Contract: {contract} | {network}", + "debit_and_credit_card_supported": "Debit and credit card supported", "delegation_metadata_refund_description": "Claim previously delegated {network} tokens.", "delegation_metadata_refund_title": "Refund Delegated {network} Tokens", + "details": "Details", "error_loading_accounts": "Error loading accounts: {error}", + "exchanges": "Exchanges:", "form_validation_insufficient_balance": "Insufficient {unit} balance. Please enter a smaller amount.", "form_validation_invalid_number_decimals": "Invalid number, too many decimal places.", + "fund_account": "Fund Account", + "fund_account_description": "Purchase EOS tokens to fund your account", "key_page_description": "A public key associated with {accounts} account(s) on the {network} network.", "key_page_subtitle": "The {accounts} account(s) associated with this public key", "key_page_title": "Public Key", "legacy_key": "Legacy Key", + "limits": "Limits", "loading_accounts": "Loading accounts...", + "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", "no_accounts_found": "No accounts found", + "no_supported_funding_methods": "No supported funding methods for this blockchain.", + "processing_fees": "Processing fees", "ram_available_balance": "RAM Available", "ram_form_buy_amount": "Amount of RAM to buy:", "ram_metadata_buy_description": "Exchange {token} for RAM on the {network} network using an {network} compatible wallet.", @@ -114,6 +127,7 @@ "ram_to_purchase": "RAM to be bought", "ram_to_sell": "RAM to be sold", "search_view_type": "View {type}", + "select_provider": "Select provider", "send_amount_to_send": "Amount to send", "send_enter_amount": "Enter the amount of {token} to send", "send_memo_placeholder": "Specify a public memo for this transfer (optional)", @@ -148,21 +162,7 @@ "staking_network_title": "{network} Network Staking", "staking_withdraw_timeframe": "Withdrawable in 21 days", "test_locale_string": "This is a test", - "total_proceeds": "Total Proceeds", - "select_provider": "Select provider", - "must_be_logged_in_for_feature": "You must be logged in with an account to use this feature.", - "processing_fees": "Processing fees", - "limits": "Limits", - "details": "Details", - "buy_eos_with_coinbase": "Buy EOS with Coinbase", - "no_supported_funding_methods": "No supported funding methods for this blockchain.", "tokens_purchase_providers": "Tokens can be purchased directly through the following providers:", - "coinbase_service_unavailable": "Coinbase service is currently unavailable.", - "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available.", - "exchanges": "Exchanges:", - "fund_account": "Fund Account", - "fund_account_description": "Purchase EOS tokens to fund your account", - "buy_or_transfer_crypto": "Buy or transfer EOS", - "debit_and_credit_card_support": "Debit and credit card support", - "_500_per_day": "$500/day" + "total_proceeds": "Total Proceeds", + "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available." } diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 14596d59..e2702ede 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -19,7 +19,7 @@ limits: { daily: m._500_per_day() }, - details: [m.buy_or_transfer_crypto(), m.debit_and_credit_card_support()], + details: [m.buy_or_transfer_crypto(), m.debit_and_credit_card_supported()], action: { text: m.buy_eos_with_coinbase(), handler: 'coinbase', From 47d16b6768aff656e52a18fbd9b2d0422ce1082a Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 11:32:34 -0500 Subject: [PATCH 07/26] fix: adjusted styling and wording of coinbase details --- messages/en.json | 2 +- src/routes/[network]/(account)/fund/+page.svelte | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/en.json b/messages/en.json index bb30b0a6..a8a2e4bf 100644 --- a/messages/en.json +++ b/messages/en.json @@ -94,7 +94,7 @@ "contract_tables_view_title": "Table: {table}", "contract_view_description": "An overview of the {contract} smart contract on the {network} network. This contract contains {actions} actions, {tables} tables, and {structs} structs.", "contract_view_title": "Contract: {contract} | {network}", - "debit_and_credit_card_supported": "Debit and credit card supported", + "debit_and_credit_cards_supported": "Debit and credit cards supported", "delegation_metadata_refund_description": "Claim previously delegated {network} tokens.", "delegation_metadata_refund_title": "Refund Delegated {network} Tokens", "details": "Details", diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index e2702ede..65acae26 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -19,7 +19,7 @@ limits: { daily: m._500_per_day() }, - details: [m.buy_or_transfer_crypto(), m.debit_and_credit_card_supported()], + details: [m.buy_or_transfer_crypto(), m.debit_and_credit_cards_supported()], action: { text: m.buy_eos_with_coinbase(), handler: 'coinbase', @@ -164,9 +164,9 @@

{m.details()}

-
    +
      {#each service.details as detail} -
    • {detail}
    • +
    • {detail}
    • {/each}
From fff0076673cbf368a8045ab4cd6d496ec5cc9622 Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 12:39:02 -0500 Subject: [PATCH 08/26] enhancement: using a more descriptive seo description --- messages/en.json | 3 ++- src/routes/[network]/(account)/fund/+page.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/messages/en.json b/messages/en.json index a8a2e4bf..83c0824d 100644 --- a/messages/en.json +++ b/messages/en.json @@ -164,5 +164,6 @@ "test_locale_string": "This is a test", "tokens_purchase_providers": "Tokens can be purchased directly through the following providers:", "total_proceeds": "Total Proceeds", - "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available." + "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available.", + "fund_account_seo_description": "Learn how to fund your account with EOS tokens through various methods including cryptocurrency exchanges and on-ramp providers." } diff --git a/src/routes/[network]/(account)/fund/+page.ts b/src/routes/[network]/(account)/fund/+page.ts index 55c320fe..6e5ecf27 100644 --- a/src/routes/[network]/(account)/fund/+page.ts +++ b/src/routes/[network]/(account)/fund/+page.ts @@ -7,7 +7,7 @@ export const load: PageLoad = async () => { subtitle: m.fund_account_description(), pageMetaTags: { title: m.fund_account(), - description: m.fund_account_description() + description: m.fund_account_seo_description() } }; }; From 249786d10924a60d8c8e0eed44e05cd990c855aa Mon Sep 17 00:00:00 2001 From: Daniel Fugere Date: Wed, 18 Dec 2024 15:01:17 -0500 Subject: [PATCH 09/26] using h2 tag Co-authored-by: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> --- src/routes/[network]/(account)/fund/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 65acae26..8077601c 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -142,7 +142,7 @@ } -

Token Purchase Providers:

+

Token Purchase Providers

{#each ON_RAMP_PROVIDERS as service} From ab8adeb7b1923a170001e4e8c935c2f16ab33054 Mon Sep 17 00:00:00 2001 From: Daniel Fugere Date: Wed, 18 Dec 2024 15:01:56 -0500 Subject: [PATCH 10/26] using h2 tag Co-authored-by: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> --- src/routes/[network]/(account)/fund/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 8077601c..cf98d9ea 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -185,7 +185,7 @@ {/each} -

{m.exchanges()}

+

{m.exchanges()}

{m.where_eos_can_be_purchased()} From 35f0fdb8a4293e0d99f7967bcfa87e2d28fedd93 Mon Sep 17 00:00:00 2001 From: Daniel Fugere Date: Wed, 18 Dec 2024 15:02:34 -0500 Subject: [PATCH 11/26] removing unused text-gray class Co-authored-by: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> --- src/routes/[network]/(account)/fund/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index cf98d9ea..9fde2e0d 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -187,7 +187,7 @@

{m.exchanges()}

-

+

{m.where_eos_can_be_purchased()}

From 0570edbbc9bc498a143c4bf43e9ce4a60aff6214 Mon Sep 17 00:00:00 2001 From: Daniel Fugere Date: Wed, 18 Dec 2024 15:04:19 -0500 Subject: [PATCH 12/26] using grid place-items-center Co-authored-by: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> --- src/routes/[network]/(account)/fund/+page.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 9fde2e0d..904e41ab 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -200,11 +200,11 @@ rel="noopener noreferrer" class="block h-full transition-all hover:scale-105" > -
+
{exchange.name} logo

{exchange.name}

From 46257cba9d16d7e1797134105464c33498851a82 Mon Sep 17 00:00:00 2001 From: Daniel Fugere Date: Wed, 18 Dec 2024 15:07:20 -0500 Subject: [PATCH 13/26] removed punctuation from translation file Co-authored-by: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> --- messages/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messages/en.json b/messages/en.json index 83c0824d..2afb14a8 100644 --- a/messages/en.json +++ b/messages/en.json @@ -99,7 +99,7 @@ "delegation_metadata_refund_title": "Refund Delegated {network} Tokens", "details": "Details", "error_loading_accounts": "Error loading accounts: {error}", - "exchanges": "Exchanges:", + "exchanges": "Exchanges", "form_validation_insufficient_balance": "Insufficient {unit} balance. Please enter a smaller amount.", "form_validation_invalid_number_decimals": "Invalid number, too many decimal places.", "fund_account": "Fund Account", From f6605c0560827771ec62cd2d5899fdd589334225 Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 19:38:14 -0500 Subject: [PATCH 14/26] refactor: using Grid component --- .../[network]/(account)/fund/+page.svelte | 147 +++++++++--------- 1 file changed, 75 insertions(+), 72 deletions(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 904e41ab..c34d5136 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -8,6 +8,7 @@ import { env } from '$env/dynamic/public'; import * as m from '$lib/paraglide/messages'; import { MultiCard } from '$lib/components/layout'; + import Grid from '$lib/components/layout/grid.svelte'; const ON_RAMP_PROVIDERS = [ { @@ -142,83 +143,85 @@ } -

Token Purchase Providers

+
+

Token Purchase Providers

- - {#each ON_RAMP_PROVIDERS as service} - -
-
- {service.id} -
-
-
-

{m.processing_fees()}

-

{service.fees.range}

+ + {#each [...ON_RAMP_PROVIDERS, ...ON_RAMP_PROVIDERS] as service} + +
+
+ {service.id}
-
-
-

{m.limits()}

-

{service.limits.daily}

+
+
+

{m.processing_fees()}

+

{service.fees.range}

+
+
+
+

{m.limits()}

+

{service.limits.daily}

+
+
-
+

{m.details()}

+
    + {#each service.details as detail} +
  • {detail}
  • + {/each} +
+
+
+ {#if !context.account} +

{m.must_be_logged_in_for_feature()}

+ {:else} + + {/if}
-

{m.details()}

-
    - {#each service.details as detail} -
  • {detail}
  • - {/each} -
-
-
- {#if !context.account} -

{m.must_be_logged_in_for_feature()}

- {:else} - - {/if} -
-
- {/each} - + + {/each} +
-

{m.exchanges()}

+

{m.exchanges()}

-

- {m.where_eos_can_be_purchased()} -

+

+ {m.where_eos_can_be_purchased()} +

- - {#each EXCHANGES as exchange} - - -
- {exchange.name} logo -
-

{exchange.name}

-
-
- {/each} -
+ + {#each EXCHANGES as exchange} + + +
+ {exchange.name} logo +
+

{exchange.name}

+
+
+ {/each} +
-{#if context.settings.data.debugMode} -

{m.common_debugging()}

- - {JSON.stringify(coinbaseOptions, null, 2)} - - - {JSON.stringify(coinbaseInstance, null, 2)} - -{/if} + {#if context.settings.data.debugMode} +

{m.common_debugging()}

+ + {JSON.stringify(coinbaseOptions, null, 2)} + + + {JSON.stringify(coinbaseInstance, null, 2)} + + {/if} +
From e1c01039726a3c02d1a123c6c21c61f99884ce6e Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 19:53:29 -0500 Subject: [PATCH 15/26] cleanup: code cleanup --- messages/en.json | 3 ++- src/routes/[network]/(account)/fund/+page.svelte | 14 +++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/messages/en.json b/messages/en.json index 2afb14a8..23eba416 100644 --- a/messages/en.json +++ b/messages/en.json @@ -165,5 +165,6 @@ "tokens_purchase_providers": "Tokens can be purchased directly through the following providers:", "total_proceeds": "Total Proceeds", "where_eos_can_be_purchased": "EOS can be purchased through a number of platforms, depending on the users needs and location.\n\tBelow are some of the most popular options available.", - "fund_account_seo_description": "Learn how to fund your account with EOS tokens through various methods including cryptocurrency exchanges and on-ramp providers." + "fund_account_seo_description": "Learn how to fund your account with EOS tokens through various methods including cryptocurrency exchanges and on-ramp providers.", + "token_purchase_providers": "Token Purchase Providers" } diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index c34d5136..53443947 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -143,12 +143,12 @@ } -
-

Token Purchase Providers

+
+

{m.token_purchase_providers()}

- - {#each [...ON_RAMP_PROVIDERS, ...ON_RAMP_PROVIDERS] as service} - + + {#each ON_RAMP_PROVIDERS as service} +
{service.id} @@ -193,9 +193,9 @@ {m.where_eos_can_be_purchased()}

- + {#each EXCHANGES as exchange} - + Date: Wed, 18 Dec 2024 20:02:46 -0500 Subject: [PATCH 16/26] refactor: using the DescriptionList component --- .../[network]/(account)/fund/+page.svelte | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 53443947..5661dc82 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -7,8 +7,8 @@ import Button from '$lib/components/button/button.svelte'; import { env } from '$env/dynamic/public'; import * as m from '$lib/paraglide/messages'; - import { MultiCard } from '$lib/components/layout'; import Grid from '$lib/components/layout/grid.svelte'; + import { DL, DLRow, DD } from '$lib/components/descriptionlist'; const ON_RAMP_PROVIDERS = [ { @@ -143,7 +143,7 @@ } -
+

{m.token_purchase_providers()}

@@ -153,28 +153,31 @@
{service.id}
-
-
-

{m.processing_fees()}

-

{service.fees.range}

-
-
-
-

{m.limits()}

-

{service.limits.daily}

-
-
-
-

{m.details()}

-
    - {#each service.details as detail} -
  • {detail}
  • - {/each} -
+
+ +
+

{service.fees.range}

+
+
+ +
+

{service.limits.daily}

+
+
+ +
+
    + {#each service.details as detail} +
  • {detail}
  • + {/each} +
+
+
+
{#if !context.account} -

{m.must_be_logged_in_for_feature()}

+

{m.must_be_logged_in_for_feature()}

{:else} handleOnRamp(service.id)} + >{service.action.text} {/if}
From 70449937ae28932596cf7e436eefdfd1e1d0c5ad Mon Sep 17 00:00:00 2001 From: dafuga Date: Wed, 18 Dec 2024 20:26:20 -0500 Subject: [PATCH 18/26] refactor: moved the fund page assets to lib/assets --- bun.lockb | Bin 272144 -> 272144 bytes .../lib/assets/exchanges}/binance.webp | Bin .../lib/assets/exchanges/coinbase-icon.webp | Bin .../lib/assets/exchanges/coinbase.svg | 1 + .../lib/assets/exchanges}/gate-io.webp | Bin .../lib/assets/exchanges}/huobi.webp | Bin .../lib/assets/exchanges}/kraken.webp | Bin .../lib/assets/exchanges}/kucoin.webp | Bin {static => src/lib/assets/exchanges}/okx.webp | Bin .../lib/assets/exchanges}/upbit.webp | Bin .../[network]/(account)/fund/+page.svelte | 29 ++++++++++++------ 11 files changed, 20 insertions(+), 10 deletions(-) rename {static => src/lib/assets/exchanges}/binance.webp (100%) rename static/coinbase.webp => src/lib/assets/exchanges/coinbase-icon.webp (100%) rename static/coinbase-icon.svg => src/lib/assets/exchanges/coinbase.svg (99%) rename {static => src/lib/assets/exchanges}/gate-io.webp (100%) rename {static => src/lib/assets/exchanges}/huobi.webp (100%) rename {static => src/lib/assets/exchanges}/kraken.webp (100%) rename {static => src/lib/assets/exchanges}/kucoin.webp (100%) rename {static => src/lib/assets/exchanges}/okx.webp (100%) rename {static => src/lib/assets/exchanges}/upbit.webp (100%) diff --git a/bun.lockb b/bun.lockb index 3d8dd136952465451f8c5c48e337fc450aa78378..3f271957aad13e8fcd5d4d192b9761883b66d70f 100755 GIT binary patch delta 31 ncmbPmPGG`0frb{wEle}du`|XQ=$Yu5v@bZvw0*%j=7I + diff --git a/static/gate-io.webp b/src/lib/assets/exchanges/gate-io.webp similarity index 100% rename from static/gate-io.webp rename to src/lib/assets/exchanges/gate-io.webp diff --git a/static/huobi.webp b/src/lib/assets/exchanges/huobi.webp similarity index 100% rename from static/huobi.webp rename to src/lib/assets/exchanges/huobi.webp diff --git a/static/kraken.webp b/src/lib/assets/exchanges/kraken.webp similarity index 100% rename from static/kraken.webp rename to src/lib/assets/exchanges/kraken.webp diff --git a/static/kucoin.webp b/src/lib/assets/exchanges/kucoin.webp similarity index 100% rename from static/kucoin.webp rename to src/lib/assets/exchanges/kucoin.webp diff --git a/static/okx.webp b/src/lib/assets/exchanges/okx.webp similarity index 100% rename from static/okx.webp rename to src/lib/assets/exchanges/okx.webp diff --git a/static/upbit.webp b/src/lib/assets/exchanges/upbit.webp similarity index 100% rename from static/upbit.webp rename to src/lib/assets/exchanges/upbit.webp diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 4c5501a5..2d0feebd 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -1,19 +1,28 @@ -
+

{m.token_purchase_providers()}

- + {#each ON_RAMP_PROVIDERS as service} - + +
+
+ {service.id} +
+
+ +
+

{service.fees.range}

+
+
+ +
+

{service.limits.daily}

+
+
+ +
+
    + {#each service.details as detail} +
  • {detail}
  • + {/each} +
+
+
+
+
+ +
+ {#if !context.account} +

{m.must_be_logged_in_for_feature()}

+ {:else} + + {/if} +
+
+
+
+ {service.id} +
+
+ +
+

{service.fees.range}

+
+
+ +
+

{service.limits.daily}

+
+
+ +
+
    + {#each service.details as detail} +
  • {detail}
  • + {/each} +
+
+
+
+
+ +
+ {#if !context.account} +

{m.must_be_logged_in_for_feature()}

+ {:else} + + {/if} +
+
{service.id} @@ -183,6 +259,7 @@
+
{#if !context.account}

{m.must_be_logged_in_for_feature()}

@@ -193,36 +270,74 @@ {/if}
- {/each} - - -

{m.exchanges()}

- -

- {m.where_eos_can_be_purchased()} -

- - - {#each EXCHANGES as exchange} - -
-
- + +
+
+ {service.id}
-

{exchange.name}

-
+
+ +
+

{service.fees.range}

+
+
+ +
+

{service.limits.daily}

+
+
+ +
+
    + {#each service.details as detail} +
  • {detail}
  • + {/each} +
+
+
+
+
+ +
+ {#if !context.account} +

{m.must_be_logged_in_for_feature()}

+ {:else} + + {/if} +
{/each} - + + + +

{m.exchanges()}

+ +

{m.where_eos_can_be_purchased()}

+ + + {#each EXCHANGES as exchange} + + +
+ +
+

{exchange.name}

+
+
+ {/each} +
+
{#if context.settings.data.debugMode}

{m.common_debugging()}

@@ -233,4 +348,4 @@ {JSON.stringify(coinbaseInstance, null, 2)} {/if} -
+ From e5748fac5f822e73cc2e0cd70d27e446c94b5414 Mon Sep 17 00:00:00 2001 From: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> Date: Wed, 18 Dec 2024 19:18:12 -0800 Subject: [PATCH 24/26] refactor: dd to take classes --- src/lib/components/descriptionlist/dd.svelte | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/components/descriptionlist/dd.svelte b/src/lib/components/descriptionlist/dd.svelte index 5a6a5af2..84b7e0f7 100644 --- a/src/lib/components/descriptionlist/dd.svelte +++ b/src/lib/components/descriptionlist/dd.svelte @@ -1,5 +1,9 @@ -
{@render props.children()}
+
+ {@render props.children()} +
From d705d0baa8b0a7190b0d021b39d792b82e87e1da Mon Sep 17 00:00:00 2001 From: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> Date: Wed, 18 Dec 2024 19:18:26 -0800 Subject: [PATCH 25/26] refactor: use multiple dd instead of ul --- .../[network]/(account)/fund/+page.svelte | 194 ++++-------------- 1 file changed, 40 insertions(+), 154 deletions(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index 43f336ec..fac50200 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -153,163 +153,49 @@ } - -

{m.token_purchase_providers()}

- - - {#each ON_RAMP_PROVIDERS as service} - -
-
- {service.id} -
-
- -
-

{service.fees.range}

-
-
- -
-

{service.limits.daily}

-
-
- -
-
    - {#each service.details as detail} -
  • {detail}
  • - {/each} -
-
-
-
-
- -
- {#if !context.account} -

{m.must_be_logged_in_for_feature()}

- {:else} - - {/if} -
-
-
-
- {service.id} -
-
- -
-

{service.fees.range}

-
-
- -
-

{service.limits.daily}

-
-
- -
-
    - {#each service.details as detail} -
  • {detail}
  • - {/each} -
-
-
-
-
- -
- {#if !context.account} -

{m.must_be_logged_in_for_feature()}

- {:else} - - {/if} -
-
-
-
- {service.id} + + +

{m.token_purchase_providers()}

+ + + {#each ON_RAMP_PROVIDERS as service} + +
+
+ {service.id} +
+
+ +
+

{service.fees.range}

+
+
+ +
+

{service.limits.daily}

+
+
+ + {#each service.details as detail} +
{detail}
+ {/each} +
+
-
- -
-

{service.fees.range}

-
-
- -
-

{service.limits.daily}

-
-
- -
-
    - {#each service.details as detail} -
  • {detail}
  • - {/each} -
-
-
-
-
-
- {#if !context.account} -

{m.must_be_logged_in_for_feature()}

- {:else} - - {/if} -
- - -
-
- {service.id} +
+ {#if !context.account} +

{m.must_be_logged_in_for_feature()}

+ {:else} + + {/if}
-
- -
-

{service.fees.range}

-
-
- -
-

{service.limits.daily}

-
-
- -
-
    - {#each service.details as detail} -
  • {detail}
  • - {/each} -
-
-
-
-
- -
- {#if !context.account} -

{m.must_be_logged_in_for_feature()}

- {:else} - - {/if} -
- - {/each} - + + {/each} + +

{m.exchanges()}

From e9db6cd585fc903956ca0728db19b5f15c1c94e4 Mon Sep 17 00:00:00 2001 From: Dean Sallinen <7519573+deansallinen@users.noreply.github.com> Date: Wed, 18 Dec 2024 19:49:42 -0800 Subject: [PATCH 26/26] style: revert wide cards --- src/routes/[network]/(account)/fund/+page.svelte | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/routes/[network]/(account)/fund/+page.svelte b/src/routes/[network]/(account)/fund/+page.svelte index fac50200..079ce164 100644 --- a/src/routes/[network]/(account)/fund/+page.svelte +++ b/src/routes/[network]/(account)/fund/+page.svelte @@ -20,6 +20,7 @@ import coinbaseLogo from '$lib/assets/exchanges/coinbase.svg'; import Stack from '$lib/components/layout/stack.svelte'; import MultiCard from '$lib/components/layout/page/multicard.svelte'; + import Cluster from '$lib/components/layout/cluster.svelte'; const ON_RAMP_PROVIDERS = [ { @@ -157,9 +158,9 @@

{m.token_purchase_providers()}

- + {#each ON_RAMP_PROVIDERS as service} - +
{service.id} @@ -194,7 +195,7 @@
{/each} - +