feat: creator revenue page overhaul (#4204)

* feat: start on tax compliance

* feat: avarala1099 composable

* fix: shouldShow should be managed on the page itself

* refactor: move show logic to revenue page

* feat: security practices rather than info

* feat: withdraw page lock

* fix: empty modal bug & lint issues

* feat: hide behind feature flag

* Use standard admonition components, make casing consistent

* modal title

* lint

* feat: withdrawal check

* feat: tax cap on withdrawals warning

* feat: start on revenue page overhaul

* feat: segment generation for bar

* feat: tooltips and links

* fix: tooltip border

* feat: finish initial layout, start on withdraw modal

* feat: start on withdrawal limit stage

* feat: shade support for primary colors

* feat: start on withdraw details stage

* fix: convert swatches to hex

* feat: payout method/region dropdown temporarily using multiselect

* feat: fix modal open issues and use teleport dropdowns

* feat: hide transactions section if there are no transactions

* refactor: NavStack surfaces

* feat: new dropdown component

* feat: remove teleport dropdown modal in favour of new combobox component

* fix: lint

* refactor: dashboard sidebar layout

* feat: cleanup

* fix: niche bugs

* fix: ComboBox styling

* feat: first part of qa

* feat: animate flash rather than tooltip

* fix: lint

* feat: qa border gradient

* fix: seg hover flashes

* feat: i18n

* feat: i18n and final QA

* fix: lint

* feat: QA

* fix: lint

* fix: merge conflicts

* fix: intl

* fix: blue hover

* fix: transfers page

* feat: surface variables & gradients

* feat: text vars

* fix: lint

* fix: intl

* feat: stages

* fix: lint

* feat: region selection

* feat: method selection btns

* fix: flex col on transactions

* feat: hook up method selection to ctx

* feat: muralpay kyc stage info

* wip: muralpay integration

* Basic Mural Pay API bindings

* Fix clippy

* use dotenvy in muralpay example

* Refactor payout creation code

* wip: muralpay payout requests

* Mural Pay payouts work

* Fix clippy

* feat: progress

* fix: broken tax form stage logic

* polish: tax form stage and method selection stage layout

* add mural pay fees API

* Work on payout fee API

* Fees API for more payment methods

* Fix CI

* polish: muralpay qa

* refactor: clean up combobox component

* polish: change from critical -> warning admonition in MuralpayDetailsStage

* Temporarily disable Venmo and PayPal methods from frontend

* polish: clean up transaction component & page

* polish: navbar qa, text color-contrast in chips type buttonstyled, mb on rev/index.vue page

* fix: incorrectly using available balance as tax form withdraw limit after tax forms submitted

* wip: counterparties

* Start on counterparties and payment methods API

* polish: combobox component

* polish: fix broken scroll logic using a composable & web:fix

* fix: lint

* polish: various QA fixes

* feat: hook up with backend (wip)

* feat: draft muralpay rails dynamic logic

* polish: modify rails to support backend changes

* Mural Pay multiple methods when fetching

* Don't send supported_countries to frontend

* Mural Pay multiple methods when fetching

* Don't send supported_countries to frontend

* feat: fees & methods endpoint hookup

* chore: remove duplicates fix

* polish: qa changes + figma match

* Add countries to muralpay fiat methods

* Compile fix

* Add exchange rate info to fees endpoint

* Add fees to premium Tremendous options

* polish: i18n and better document type dropdown -> id input labels

* feat: tremendous

* fix: lint & i18n

* feat: reintroduce tin mismatch logic to index.vue

* polish: qa

* fix: i18n

* feat: remove teleport dropdown menu - combobox should be used

* fix: lint

* fix: jsdoc

* feat: checkbox for reward program terms

* Add delivery email field to Tremendous payouts

* Add Tremendous product category to payout methods

* Add bank details API to muralpay

* Fix CI

* Fix CI

* polish: qa changes

* feat: i18n pass

* feat: deduplicate methods endpoint & fix i18n issues

* chore: deduplicate i18n strings into common-messages.ts

* fix: lint

* fix: i18n

* feat: estimates

* polish: more QA

* Remove prepaid visa, compute fees properly for Tremendous methods

* Add more details to Tremendous errors

* feat: withdraw endpoint impl & internals refactor

* Add more details to Tremendous errors

* feat: completion stage

* Add fees to Mural

* feat: transactions page match figma

* fix: i18n

* polish: QA changes

* polish: qa

* Payout history route and bank details

* polish: autofill and requirements checks

* fix: i18n + lint

* fix: fiat rail fees

* polish: move scroll fade stuff into NewModal rather than just CreatorWithdrawModal

* feat: simplify action btn logic & tax form error

* fix: tax -> Tax form

* Re-add legacy PayPal/Venmo options for US

* feat: mobile responsiveness fixes for modal

* fix: responsiveness issues

* feat: navstack responsiveness

* fix: responsiveness

* move the mural bank details route

* fix: generated state cleanup & bank details input

* fix: lint & i18n

* Add utoipa support to payout endpoints

* address some PR comments

* polish: qa

* add CORS to new utoipa routes

* feat: legacy paypal/venmo stage

* polish: reset amount on back qa

* revert: navstack mr changes

* polish: loading indicator on method selection stage

* fix: paypal modal doesnt reopen after auth

* fix: lint & i18n

* fix: paypal flow

* polish: qa changes

* fix: gitignore

* polish: qa fixes

* fix: payouts_available in payouts.rs

* fix: bug when limit is zero

* polish: qa changes

* fix: qa stuff & muralpay sub-division fix

* Immediately approve mural payouts

* Add currency support to Tremendous payouts

* Currency forex

* add forex to tremendous fee request

* polish: qa & currency support for paypal tremendous

* polish: fx qa

* feat: demo mode flag

* fix: i18n & padding issues

* polish: qa changes

* fix: ml

* Add Mural balance to bank balance info

* polish: show warning for paypal international USD withdrawals + more currencies

* Add more Tremendous currencies support

* fix: colors on balance bars

* fix: empty states

* fix: pl-8 mobile issue

* fix: hide see all

* Transaction payouts available use the correct date

* Address my own review comment

* Address PR comments

* Change Mural withdrawal limit to 3k

* fix: empty state + paypal warning

* maybe fix tremendous gift cards

* Change how Mural minimum withdrawals are calculated

* Tweak min/max withdrawal values

* fix: segment brightness

* fix: min & max for muralpay & legacy paypal

* Fix some icon issues

* more issues

* fix user menu

* fix: remove + network

---------

Signed-off-by: Calum H. <contact@cal.engineer>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: aecsocket <aecsocket@tutanota.com>
Co-authored-by: Alejandro González <me@alegon.dev>
This commit is contained in:
Calum H.
2025-11-03 23:15:25 +00:00
committed by GitHub
parent 92698e4bb5
commit 3765a6ded8
108 changed files with 9071 additions and 2664 deletions

View File

@@ -635,6 +635,291 @@
"dashboard.creator-tax-form-modal.us-citizen.question": {
"message": "Are you a US citizen?"
},
"dashboard.creator-withdraw-modal.complete-tax-form": {
"message": "Complete tax form"
},
"dashboard.creator-withdraw-modal.continue-with-limit": {
"message": "Continue with limit"
},
"dashboard.creator-withdraw-modal.details-label": {
"message": "Details"
},
"dashboard.creator-withdraw-modal.fee-breakdown-amount": {
"message": "Amount"
},
"dashboard.creator-withdraw-modal.fee-breakdown-exchange-rate": {
"message": "FX rate"
},
"dashboard.creator-withdraw-modal.fee-breakdown-fee": {
"message": "Fee"
},
"dashboard.creator-withdraw-modal.fee-breakdown-net-amount": {
"message": "Net amount"
},
"dashboard.creator-withdraw-modal.kyc.business-entity": {
"message": "Business entity"
},
"dashboard.creator-withdraw-modal.kyc.entity-description": {
"message": "A business entity refers to a registered organization such as a corporation, partnership, or LLC."
},
"dashboard.creator-withdraw-modal.kyc.entity-question": {
"message": "Are you a withdrawing as an individual or business?"
},
"dashboard.creator-withdraw-modal.kyc.private-individual": {
"message": "Private individual"
},
"dashboard.creator-withdraw-modal.method-selection.country-placeholder": {
"message": "Select your country"
},
"dashboard.creator-withdraw-modal.method-selection.country-search-placeholder": {
"message": "Search countries..."
},
"dashboard.creator-withdraw-modal.method-selection.error-text": {
"message": "Unable to fetch available payment methods. Please try again later."
},
"dashboard.creator-withdraw-modal.method-selection.error-title": {
"message": "Failed to load payment methods"
},
"dashboard.creator-withdraw-modal.method-selection.region": {
"message": "Region"
},
"dashboard.creator-withdraw-modal.method-selection.region-tooltip": {
"message": "Some payout methods are not available in certain regions."
},
"dashboard.creator-withdraw-modal.method-selection.select-method": {
"message": "Select withdraw method"
},
"dashboard.creator-withdraw-modal.method-selection.tax-limit-warning": {
"message": "Your withdraw limit is <b>{amount}</b>, <tax-link>complete a tax form</tax-link> to withdraw more."
},
"dashboard.creator-withdraw-modal.muralpay-details.account-owner": {
"message": "Account owner"
},
"dashboard.creator-withdraw-modal.muralpay-details.coin": {
"message": "Coin"
},
"dashboard.creator-withdraw-modal.muralpay-details.crypto-warning-header": {
"message": "Confirm your wallet address"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-national-id": {
"message": "National ID Number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-national-id-placeholder": {
"message": "Enter national ID number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-passport": {
"message": "Passport Number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-passport-placeholder": {
"message": "Enter passport number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-resident-id": {
"message": "Resident ID Number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-resident-id-placeholder": {
"message": "Enter resident ID number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-ruc": {
"message": "RUC Number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-ruc-placeholder": {
"message": "Enter RUC number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-tax-id": {
"message": "Tax ID Number"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-tax-id-placeholder": {
"message": "Enter tax ID number"
},
"dashboard.creator-withdraw-modal.muralpay-details.network": {
"message": "Network"
},
"dashboard.creator-withdraw-modal.nearing-threshold": {
"message": "You're nearing the withdraw threshold. You can withdraw <b>{amountRemaining}</b> now, but a tax form is required for more."
},
"dashboard.creator-withdraw-modal.paypal-details.account": {
"message": "Account"
},
"dashboard.creator-withdraw-modal.paypal-details.disconnect-account": {
"message": "Disconnect account"
},
"dashboard.creator-withdraw-modal.paypal-details.payment-method": {
"message": "Payment method"
},
"dashboard.creator-withdraw-modal.paypal-details.paypal-account": {
"message": "PayPal account"
},
"dashboard.creator-withdraw-modal.paypal-details.paypal-auth-description": {
"message": "Connect your PayPal account to receive payments directly."
},
"dashboard.creator-withdraw-modal.paypal-details.save-button": {
"message": "Save"
},
"dashboard.creator-withdraw-modal.paypal-details.save-success": {
"message": "Venmo handle saved successfully!"
},
"dashboard.creator-withdraw-modal.paypal-details.saved-button": {
"message": "Saved"
},
"dashboard.creator-withdraw-modal.paypal-details.sign-in-with-paypal": {
"message": "Sign in with PayPal"
},
"dashboard.creator-withdraw-modal.paypal-details.venmo-description": {
"message": "Enter your Venmo handle to receive payments."
},
"dashboard.creator-withdraw-modal.paypal-details.venmo-handle": {
"message": "Venmo handle"
},
"dashboard.creator-withdraw-modal.paypal-details.venmo-handle-placeholder": {
"message": "@username"
},
"dashboard.creator-withdraw-modal.stage.completion": {
"message": "Complete"
},
"dashboard.creator-withdraw-modal.stage.method-selection": {
"message": "Method"
},
"dashboard.creator-withdraw-modal.stage.muralpay-details": {
"message": "Account Details"
},
"dashboard.creator-withdraw-modal.stage.muralpay-kyc": {
"message": "Verification"
},
"dashboard.creator-withdraw-modal.stage.tax-form": {
"message": "Tax form"
},
"dashboard.creator-withdraw-modal.stage.tremendous-details": {
"message": "Details"
},
"dashboard.creator-withdraw-modal.tax-form-required.body": {
"message": "To withdraw your full <b>{available}</b> available balance please complete the form below. It is required for tax reporting and only needs to be done once."
},
"dashboard.creator-withdraw-modal.tax-form-required.body-with-limit": {
"message": "You must complete a W-9 or W-8 form for Modrinth's tax records so we remain compliant with tax regulations."
},
"dashboard.creator-withdraw-modal.tax-form-required.header": {
"message": "Tax form required"
},
"dashboard.creator-withdraw-modal.tremendous-details.payment-method": {
"message": "Payment method"
},
"dashboard.creator-withdraw-modal.tremendous-details.reward": {
"message": "Reward"
},
"dashboard.creator-withdraw-modal.tremendous-details.reward-placeholder": {
"message": "Select reward"
},
"dashboard.creator-withdraw-modal.tremendous-details.reward-plural": {
"message": "Rewards"
},
"dashboard.creator-withdraw-modal.tremendous-details.unverified-email-header": {
"message": "Unverified email"
},
"dashboard.creator-withdraw-modal.tremendous-details.unverified-email-message": {
"message": "The delivery email you have entered is not associated with your Modrinth account. Modrinth cannot recover rewards sent to an incorrect email address."
},
"dashboard.creator-withdraw-modal.tremendous-details.usd-paypal-warning-header": {
"message": "Lower fees available"
},
"dashboard.creator-withdraw-modal.tremendous-details.usd-paypal-warning-message": {
"message": "You selected USD for PayPal International. <direct-paypal-link>Switch to direct PayPal</direct-paypal-link> for better fees (≈2% instead of ≈6%)."
},
"dashboard.creator-withdraw-modal.withdraw-button": {
"message": "Withdraw"
},
"dashboard.creator-withdraw-modal.withdraw-limit": {
"message": "Withdraw limit"
},
"dashboard.creator-withdraw-modal.withdraw-limit-used": {
"message": "You've used up your <b>{withdrawLimit}</b> withdrawal limit. You must complete a tax form to withdraw more."
},
"dashboard.revenue.available-now": {
"message": "Available now"
},
"dashboard.revenue.balance": {
"message": "Balance"
},
"dashboard.revenue.estimated-tooltip.msg1": {
"message": "Estimated revenue may be subject to change until it is made available."
},
"dashboard.revenue.estimated-tooltip.msg2": {
"message": "Click to read about how Modrinth handles your revenue."
},
"dashboard.revenue.estimated-with-date": {
"message": "Estimated {date}"
},
"dashboard.revenue.processing": {
"message": "Processing"
},
"dashboard.revenue.processing.tooltip": {
"message": "Revenue stays in processing until the end of the month, then becomes available 60 days later."
},
"dashboard.revenue.tos": {
"message": "By uploading projects to Modrinth and withdrawing money from your account, you agree to our <terms-link>Rewards Program Terms</terms-link>. Learn more about the <info-link>Reward Program</info-link>."
},
"dashboard.revenue.transactions.header": {
"message": "Transactions"
},
"dashboard.revenue.transactions.none": {
"message": "No transactions"
},
"dashboard.revenue.transactions.none.desc": {
"message": "Your payouts and withdrawals will appear here."
},
"dashboard.revenue.transactions.see-all": {
"message": "See all"
},
"dashboard.revenue.withdraw.blocked-tin-mismatch": {
"message": "Your withdrawals are temporarily locked because your TIN or SSN didn't match IRS records. Please contact support to reset and resubmit your tax form."
},
"dashboard.revenue.withdraw.card.description": {
"message": "Withdraw from your available balance to any payout method."
},
"dashboard.revenue.withdraw.card.title": {
"message": "Withdraw"
},
"dashboard.revenue.withdraw.header": {
"message": "Withdraw"
},
"dashboard.withdraw.completion.account": {
"message": "Account"
},
"dashboard.withdraw.completion.amount": {
"message": "Amount"
},
"dashboard.withdraw.completion.close-button": {
"message": "Close"
},
"dashboard.withdraw.completion.date": {
"message": "Date"
},
"dashboard.withdraw.completion.email-confirmation": {
"message": "You'll receive an email at <b>{email}</b> with instructions to redeem your withdrawal."
},
"dashboard.withdraw.completion.exchange-rate": {
"message": "Exchange rate"
},
"dashboard.withdraw.completion.fee": {
"message": "Fee"
},
"dashboard.withdraw.completion.method": {
"message": "Method"
},
"dashboard.withdraw.completion.net-amount": {
"message": "Net amount"
},
"dashboard.withdraw.completion.recipient": {
"message": "Recipient"
},
"dashboard.withdraw.completion.title": {
"message": "Withdraw complete"
},
"dashboard.withdraw.completion.transactions-button": {
"message": "Transactions"
},
"dashboard.withdraw.completion.wallet": {
"message": "Wallet"
},
"error.collection.404.list_item.1": {
"message": "You may have mistyped the collection's URL."
},
@@ -986,6 +1271,9 @@
"layout.footer.about.status": {
"message": "Status"
},
"layout.footer.copyright": {
"message": "© {year} Rinth, Inc."
},
"layout.footer.legal": {
"message": "Legal"
},
@@ -1064,6 +1352,15 @@
"layout.meta.og-description": {
"message": "Discover and publish Minecraft content!"
},
"layout.mobile.close-menu": {
"message": "Close menu"
},
"layout.mobile.open-menu": {
"message": "Open menu"
},
"layout.nav.active-reports": {
"message": "Active reports"
},
"layout.nav.analytics": {
"message": "Analytics"
},
@@ -1091,6 +1388,9 @@
"layout.nav.modrinth-home-page": {
"message": "Modrinth home page"
},
"layout.nav.my-servers": {
"message": "My servers"
},
"layout.nav.organizations": {
"message": "Organizations"
},
@@ -1136,6 +1436,273 @@
"moderation.technical.search.placeholder": {
"message": "Search tech reviews..."
},
"muralpay.account-type.checking": {
"message": "Checking"
},
"muralpay.account-type.savings": {
"message": "Savings"
},
"muralpay.country.at": {
"message": "Austria"
},
"muralpay.country.be": {
"message": "Belgium"
},
"muralpay.country.cy": {
"message": "Cyprus"
},
"muralpay.country.de": {
"message": "Germany"
},
"muralpay.country.ee": {
"message": "Estonia"
},
"muralpay.country.es": {
"message": "Spain"
},
"muralpay.country.fi": {
"message": "Finland"
},
"muralpay.country.fr": {
"message": "France"
},
"muralpay.country.gr": {
"message": "Greece"
},
"muralpay.country.ie": {
"message": "Ireland"
},
"muralpay.country.it": {
"message": "Italy"
},
"muralpay.country.lt": {
"message": "Lithuania"
},
"muralpay.country.lu": {
"message": "Luxembourg"
},
"muralpay.country.lv": {
"message": "Latvia"
},
"muralpay.country.mt": {
"message": "Malta"
},
"muralpay.country.nl": {
"message": "Netherlands"
},
"muralpay.country.pt": {
"message": "Portugal"
},
"muralpay.country.sk": {
"message": "Slovakia"
},
"muralpay.document-type.national-id": {
"message": "National ID"
},
"muralpay.document-type.passport": {
"message": "Passport"
},
"muralpay.document-type.resident-id": {
"message": "Resident ID"
},
"muralpay.document-type.ruc": {
"message": "RUC"
},
"muralpay.document-type.tax-id": {
"message": "Tax ID"
},
"muralpay.field.account-number": {
"message": "Account Number"
},
"muralpay.field.account-number-cbu-cvu": {
"message": "Account Number (CBU/CVU)"
},
"muralpay.field.account-number-cci": {
"message": "Account Number (CCI)"
},
"muralpay.field.account-number-type": {
"message": "Account Number Type"
},
"muralpay.field.account-type": {
"message": "Account Type"
},
"muralpay.field.bank-account-number": {
"message": "Account Number"
},
"muralpay.field.branch-code": {
"message": "Branch Code"
},
"muralpay.field.clabe": {
"message": "CLABE"
},
"muralpay.field.country": {
"message": "Country"
},
"muralpay.field.cpf-cnpj": {
"message": "CPF/CNPJ"
},
"muralpay.field.cuit-cuil": {
"message": "CUIT/CUIL"
},
"muralpay.field.document-type": {
"message": "Document Type"
},
"muralpay.field.iban": {
"message": "IBAN"
},
"muralpay.field.phone-number": {
"message": "Phone Number"
},
"muralpay.field.pix-email": {
"message": "PIX Email"
},
"muralpay.field.pix-key-type": {
"message": "PIX Key Type"
},
"muralpay.field.pix-phone": {
"message": "PIX Phone"
},
"muralpay.field.routing-number": {
"message": "Routing Number"
},
"muralpay.field.swift-bic": {
"message": "SWIFT/BIC"
},
"muralpay.field.wallet-address": {
"message": "Wallet Address"
},
"muralpay.help.cbu-cvu": {
"message": "Clave Bancaria Uniforme or Clave Virtual Uniforme"
},
"muralpay.help.cci": {
"message": "Código de Cuenta Interbancaria"
},
"muralpay.help.clabe": {
"message": "Clave Bancaria Estandarizada (Mexican bank account number)"
},
"muralpay.help.cpf-cnpj": {
"message": "Brazilian tax identification number"
},
"muralpay.help.cuit-cuil": {
"message": "Argentine tax ID"
},
"muralpay.help.iban": {
"message": "International Bank Account Number"
},
"muralpay.help.swift-bic": {
"message": "Bank Identifier Code"
},
"muralpay.pix-type.bank-account": {
"message": "Bank Account"
},
"muralpay.pix-type.document": {
"message": "CPF/CNPJ"
},
"muralpay.pix-type.email": {
"message": "Email"
},
"muralpay.pix-type.phone": {
"message": "Phone Number"
},
"muralpay.placeholder.account-number": {
"message": "Enter account number"
},
"muralpay.placeholder.cbu-cvu": {
"message": "Enter CBU or CVU"
},
"muralpay.placeholder.cbu-cvu-type": {
"message": "CBU or CVU"
},
"muralpay.placeholder.cci": {
"message": "Enter 20-digit CCI"
},
"muralpay.placeholder.cuit-cuil": {
"message": "Enter CUIT or CUIL"
},
"muralpay.placeholder.enter-account-number": {
"message": "Enter account number"
},
"muralpay.placeholder.enter-branch-code": {
"message": "Enter branch code"
},
"muralpay.placeholder.enter-clabe": {
"message": "Enter 18-digit CLABE"
},
"muralpay.placeholder.enter-cpf-cnpj": {
"message": "Enter CPF or CNPJ"
},
"muralpay.placeholder.enter-iban": {
"message": "Enter IBAN"
},
"muralpay.placeholder.enter-pix-email": {
"message": "Enter PIX email"
},
"muralpay.placeholder.enter-routing-number": {
"message": "Enter 9-digit routing number"
},
"muralpay.placeholder.enter-swift-bic": {
"message": "Enter SWIFT/BIC code"
},
"muralpay.placeholder.iban-crc": {
"message": "Enter Costa Rican IBAN"
},
"muralpay.placeholder.phone-cop": {
"message": "+57..."
},
"muralpay.placeholder.pix-phone": {
"message": "+55..."
},
"muralpay.placeholder.wallet-address-eth": {
"message": "0x..."
},
"muralpay.rail.fiat-ars.name": {
"message": "Bank Transfer (ARS)"
},
"muralpay.rail.fiat-brl.name": {
"message": "PIX Transfer (BRL)"
},
"muralpay.rail.fiat-clp.name": {
"message": "Bank Transfer (CLP)"
},
"muralpay.rail.fiat-cop.name": {
"message": "Bank Transfer (COP)"
},
"muralpay.rail.fiat-crc.name": {
"message": "Bank Transfer (CRC)"
},
"muralpay.rail.fiat-eur.name": {
"message": "Bank Transfer (EUR)"
},
"muralpay.rail.fiat-mxn.name": {
"message": "Bank Transfer (MXN)"
},
"muralpay.rail.fiat-pen.name": {
"message": "Bank Transfer (PEN)"
},
"muralpay.rail.fiat-usd-peru.name": {
"message": "Bank Transfer (USD - Peru)"
},
"muralpay.rail.fiat-usd.name": {
"message": "Bank Transfer (USD)"
},
"muralpay.rail.fiat-zar.name": {
"message": "Bank Transfer (ZAR)"
},
"muralpay.rail.usdc-base.name": {
"message": "USDC (Base)"
},
"muralpay.rail.usdc-celo.name": {
"message": "USDC (Celo)"
},
"muralpay.rail.usdc-ethereum.name": {
"message": "USDC (Ethereum)"
},
"muralpay.rail.usdc-polygon.name": {
"message": "Crypto (USDC)"
},
"muralpay.warning.wallet-address": {
"message": "Double-check your wallet address. Funds sent to an incorrect address cannot be recovered."
},
"profile.bio.fallback.creator": {
"message": "A Modrinth creator."
},
@@ -1691,18 +2258,6 @@
"report.submit": {
"message": "Submit report"
},
"revenue.transfers.total": {
"message": "You have withdrawn {amount} in total."
},
"revenue.transfers.total.method": {
"message": "You have withdrawn {amount} through {method}."
},
"revenue.transfers.total.year": {
"message": "You have withdrawn {amount} in {year}."
},
"revenue.transfers.total.year_method": {
"message": "You have withdrawn {amount} in {year} through {method}."
},
"scopes.analytics.description": {
"message": "Access your analytics data"
},