mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-04 15:14:29 +01:00
333206ccb1
* add trezor HD path for ledger wallets (#10616) Co-authored-by: Barry Gitarts <bgitarts@gmail.com> * Replace logic for eth swap token in fetchQuotesAndSetQuoteState with getSwapsEthToken call (#10624) * Ensure permission log will only store JSON-able data (#10524) * remove transactionCategory in favor of more types (#10615) * remove transactionCategory in favor of more types * remove reference to STANDARD in stubs * Removing double click bug from delete custom network modal (#10628) Fixes MetaMask/metamask-extension#10626 * Hide zero balance tokens at useTokenTracker layer (#10630) * Setting balance to 0x0 when the original value is undefined (#10634) * fix: speedup cancellation (#10579) fixes #7305 * no more node:console (#10640) * prefer chainId over networkId in most cases (#10594) * Move swaps constants to the shared constants directory (#10614) * Position the 3dot menu in the same spot on asset screen and home screen (#10642) * Ensure swaps detail height doesn't create jump in vertical height (#10644) * Fix: ETH 'token' now only appears once in the swaps to and from dropdowns. (#10650) * Prevent network menu highlighting (#10643) * Allow TextField to receive min and max attributes (#10656) * colocate tests in flat structure (#10655) * Fixing migration script generation paths (#10664) * Improve specificity of `test:unit:lax` npm script (#10661) The unit test npm script `test:unit:lax` is now more specific about which tests files to exclude. An `--ignore` CLI option is used to specify the files to ignore, rather than using the braces glob syntax to ignore them from the target glob itself. This makes the option easier to update going forward as we move more tests into the "strict" group, because the options are exactly the same between the two scripts. It also ensures we don't accidentally exclude other subdirectories that happen to also be named `permissions`. In trying to implement this, I stumbled at first because mocha expects the ignore pattern to be a relative path if the target is a relative path (i.e. they need to both start with `./` or neither). The script `test:unit:strict` has been updated to use a relative target pattern for consistency. * Swaps support for local testnet (#10658) * Swaps support for local testnet * Create util method for comparison of token addresses/symbols to default swaps token * Get chainId from txMeta in _trackSwapsMetrics of transaction controller * Add comment to document purpose of getTransactionGroupRecipientAddressFilter * Use isSwapsDefaultTokenSymbol in place of repeated defaultTokenSymbol comparisons in build-quote.js * fix: replace dnode background with JSON-RPC (#10627) fixes #10090 * Don't render faucet row in deposit modal for custom chains (#10674) Fixes MetaMask/metamask-extension#10038 * Change 'Send ETH' title to 'Send' (#10651) * Fixing incorrectly typed token decimal attribute (#10666) * refactor incoming tx controller (#10639) * make migration more safe (#10689) * Adding default properties to NetworkForm (#10682) Fixes MetaMask/metamask-extension#10681 * deps - remove "remotedev-server" (#10687) * deps - remove remotedev-server * Remove stale references from allow-scripts config Any packages that are no longer in the dependency tree have been removed from the `allow-scripts` config. Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Excluding sourcemaps comment in production builds (#10695) * Excluding sourcemaps comment in production builds Fixes MetaMask/metamask-extension#7077 * Fix source map explorer script The source map explorer script now re-adds the source map comment to each file to ensure the source map visualization still works. Each module with a sourcemap is copied to a temporary directory along with the module it corresponds to, and from there it's passed into `source-map-explorer`. This should ensure the resulting visualization matches what it was before. Everything has been moved inside of functions to generally improve readability, and to allow the use of local variables. Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Delete setupFetchDebugging.js (#10636) * Delete setupFetchDebugging.js * remove fetch-debugging (now handled corrently by sentry) * resolve issue with missing template error (#10692) * resolve issue with missing template error * also apply filtering to confirmation page * rename variable * Add MetaMask to list of BIP44 HD path examples (#10703) The "BIP44 Standard" HD path option in the Ledger connect flow listed only Trezor as an example. It seemed appropriate to include MetaMask as well, since we use the same path. This helps users who have imported their MetaMask seed phrase onto a Ledger device to discover this option. * Removing hard references to 12 word seed phrases in copy (#10704) Adding translation entry for "Wallet Seed" Fixed label padding issue by adding missing CSS rule * rule out empty string for symbol (#10712) * fix: remove unused `metamask.rpcUrl` from redux state + fix tests to reflect that (#10714) * Fix 10706 - Prevent autocomplete from add token input (#10700) * Fix mismatchedChain typo in custom network approval screen (#10723) * Fix 10562 - Hide the suggested token pane when not on Mainnet or test network (#10702) * Update @metamask/controllers to v6.2.1 (#10701) * Additional swaps network support (#10721) * Add swaps support for bnc chain * Use single default token address in shared/constants/swaps * ci - cache deps before patch-package (#10735) * ci - cache deps before patch-package * ci - bump dep cache number (cache break) * build - refactor build system for easier configuration (#10718) * build - refactor build system for easier configuration of before and after bundle * build - fix dependenciesToBundle option * build - fix bify external options and other config * build - refactor for cleanliness * build - fix minify argument * build - fix sourcemaps setup * scripts - refactor setupBundlerDefaults in anticipation of factor bundles * build - scripts - remove unused pipeline label * build - scripts - make filepath entry optional * build - scripts - rename filepath and filename options to entryFilepath and destFilepath * Update development/build/scripts.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> Co-authored-by: Mark Stacey <markjstacey@gmail.com> * security - update SES lockdown (#10663) * update ses * build - reference ses directly * deps - unify regenerator-runtime versions on 0.13.7 * patches - apply regenerator-runtime ses compat patch\nhttps://github.com/facebook/regenerator/pull/411 * patches - patch regenerator-runtime for latest ses fix * reduc patch, new lockdown severe override taming * updated redux patch * update redux patch for production * ignore lockdown in lint * deps - bump patch-package just in case * trailing comma * remove ses as dep * fix path for frozen promise * remove js extension in lockdown require * Revert "ignore lockdown in lint" This reverts commit 8cefdc94dd25d7781bb09eed8af36441397676da. * Revert "build - reference ses directly" This reverts commit 30371a377dcdd781c1bf9abe55e9c8ae34da26b5. * deps - update ses * Revert "fix path for frozen promise" This reverts commit 966e4c60921a25befe8ca8dea58313cc25852f72. Co-authored-by: kumavis <aaron@kumavis.me> * Allow 11 characters in symbol for RPC (#10670) * Add error in RPC for zero length symbols * Increase RPC symbol length allowed to 11 * Add RPC tests for new symbol length checks * eth-block-tracker@5.0.1 (#10737) * Ensure swaps gas prices are fetched from the correct chain specific endpoint (#10744) * Ensure swaps gas prices are fetched from the correct chain specific endpoint * Just rely on fetchWithCache to cache swaps gas prices, instead of directly using storage in getSwapsPriceEstimatesLastRetrieved * Empty commit * update @metamask/etherscan-link to v2.0.0 (#10747) * Use correct block explorer name and link in swaps when on custom network (#10743) * Use correct block explorer name and link in swaps when on custom network. * Fix up custom etherscan link code in build-quote.js * Use blockExplorerUrl hostname instead of 'blockExplorerBaseUrl' * Use correct etherscan-link method for token links in build-quote * Create correct token link in build-quote for mainnet AND custom networks * Block explorer url improvements in awaiting-swap.js and build-quote.js * Use swapVerifyTokenExplanation message with substitutable block explorer for all applicable locales * Ensure that block explorer links are not shown in awaiting-swap if no url is available * Add New Zealand Dollar to currency options (#10746) * Ensure that the correct default currency symbols are used for fees on the view quote screen (#10753) * Fix 10517 - Prevent tokens without addresses from being added to token list (#10593) * Updating y18n and netmask to resolve dependency issues (#10765) netmask@1.0.6 -> 2.0.1, y18n@3.2.1 -> 3.2.2, y18n@4.0.0 -> 4.0.1 * Refactor Tx State Manager (#10672) Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Ensure that the approval fee in the swaps custom gas modal is in network specific currency (#10763) * Ensure that priceSlippage fiat amounts are always shown in view-quote.js (#10762) * Use network specific swaps contract address when checking swap contract token approval (#10774) * Build - refactor background process to use html (#10769) * build - declare background as html * build - fill in empty file when a missing file is expected * lint - fix * Update development/build/manifest.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update development/build/manifest.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> Co-authored-by: Mark Stacey <markjstacey@gmail.com> * build - fix use of empty file to replace unused js files (#10780) * cache lint results for faster repeat execution (#10773) * eslint perf improvement (#10775) * Improve detection of task process exit (#10776) Our build script waits for the `close` event to determine whether the task has exited. The `exit` event is a better representation of this, because if a stream is shared between multiple processes, the process may exit without the `close` event being emitted. We aren't sharing streams between processes, so this edge case doesn't apply to us. This just seemed like a more suitable event to listen to, since we care about the process exiting not the stream ending. See this description of the `close` event from the Node.js documentation [1]: >The `'close'` event is emitted when the stdio streams of a child >process have been closed. This is distinct from the `'exit'` event, >since multiple processes might share the same stdio streams. And see this description of the `exit` event: >The `'exit'` event is emitted after the child process ends. [1]: https://nodejs.org/docs/latest-v14.x/api/child_process.html#child_process_event_exit * Rewrite changelog script from Bash to JavaScript (#10782) The `auto-changelog` script has been rewritten from Bash to JavaScript. Functionally it should behave identically. * Refactoring ethereum-on.spec.js to use fixtures (#10778) * Remove useless negation (#10787) !contentComponent always evaluates to true * Remove date from changelog release header (#10790) New changelog release headers now omit the date. These headers are added automatically when a new release branch is created, and that rarely ends up being the actual date of the release, so these dates have all been inaccurate anyway. The date will be re-added to the changelog later as part of a new script, after a release has been published. * Remove script for creating master sync PR (#10791) The script responsible for creating the "Sync `master` with `develop`" PR has been removed. We will soon be eliminating the need for a `master` branch altogether, so we don't need this anymore. Also, this script hasn't been running correctly in a long time. We've been creating this PR manually. * Add changelog entries under release candidate header (#10784) Instead of always placing new changelog entries under the "Current Develop Branch" header, the changelog script now places them under the header for the current release if that release has not yet been tagged. This eliminates one manual step from the release process. Relates to #10752 * Prevent duplicate changelog entries (#10786) The changelog update script now prevents duplicate entries from being added. Specifically, it will ensure that if a PR has been referenced already in an entry, it will not add it again. This should prevent it from adding duplicate entries for changes that were cherry-picked into hotfix releases. Note that this duplication prevention only works for entries containing a PR number. We don't have any way to prevent duplicate entries yet in cases where we don't know the associated PR. We will be preventing this possibility entirely pretty soon in some upcoming release automation changes though, so I'm not concerned about this omission. * Set the BSC_CONTRACT_ADDRESS to lowercase (#10800) * only applies rules to the appropriate files (#10788) * upgrade eslint deps (#10789) * Ensure correct primary currency image is displayed on home screen and token list (#10777) * Add release header when updating changelog (#10794) The changelog update script now adds a release header if it doesn't find one already that matches the current release candidate version. * remove node-sass dependency (#10797) * Add support for locators into driver abstraction (#10802) * Update changelog headers and fix dates (#10805) The changelog release header format has been updated to match the "keep a changelog" [1] format. Each header is now the bracketed version number followed by a dash, then the release date in ISO-8601 format. The release dates in each header were also updated to match the date of the corresponding GitHub Release [2]. Many of these dates were incorrect because they were set on the day we created the release candidate, rather than on the day of release. Any changelog release entries without a corresponding GitHub release was left with the date already specified. The three oldest release headers were missing dates. For the first two, I used the date of the version bump commit. For the third, I removed it since no changes were listed anyway, and it represented a range of releases rather than a single one. The `auto-changelog.js` script has been updated to account for this new format as well. [1]: https://keepachangelog.com/en/1.0.0/ [2]: https://github.com/MetaMask/metamask-extension/releases * Update the changelog when creating an RC (#10795) The changelog will now be automatically updated when a release branch is created. A new release header along with changelog entries for any new commits will be added. Note that this changelog will still need to be manually cleaned up, but it's one less manual step at least. The old Bash script for adding a new release header to the changelog has been removed, as that functionality is now built into the changelog update script. A new script has been added to commit any changes made to the manifest and changelog. This step used to happen at the end of the bump manifest version script, but now the changelog update relies upon the manifest version bump happening first, so it needed to be re-ordered. The changes should only be committed on the first run of the branch, as it's contingent upon the manifest changing (due to the version bump). Further changelog updates won't trigger new automatic commits. * Refactoring address-book.spec.js to use fixtures (#10804) * Refactoring send-edit.spec.js to use fixtures (#10792) * Fix _getPermittedAccounts type safety (#10819) * Removing unnecessary params from withFixtures function call. (#10831) * Add links to release headers (#10808) Each release header now includes a link to the range of commits included with that release. These links are at the end of the document, in accordance with the "keep a changelog" [1] format. For the purpose of this changelog, the "previous release" is the most recent release mentioned in the changelogs. The diffs ignore any releases that were omitted from the changelog. This is mainly an issue with older releases, so it seemed acceptable. All releases have been documented for a couple of years now, and will be going forward as well. The name of the "Current Develop Branch" section was changed to "Unreleased" to confirm with "keep a changelog". The `auto-changelog.js` script has been updated to update/add these links whenever adding a new release header as well. [1]: https://keepachangelog.com/en/1.0.0/ * Refactoring permissions.spec.js to use fixtures (#10829) * Add validation for the `fee` property from the `/trades` API response (#10836) * Refactoring signature-request.spec.js to use fixtures (#10820) * use locator abstraction in tests folder (#10833) * Move BSC chain ID, rename some BSC-related vars (#10807) * Add categories to each changelog release (#10837) Each changelog release now has category headers. The standard "keep a changelog" [1] categories are used, along with the addition of "Uncategorized" for any changes that have not yet been categorized. The changelog script has been updated to add this "Uncategorized" header if it isn't already present, and to place any new commits under this header. The changelog has been updated to property categorize each change in recent releases, and to place changes in older releases under the header "Uncategorized". [1]: https://keepachangelog.com/en/1.0.0/ * Remove unused CI script (#10840) This script has not been used since #10795. It is now gone. * Add `--rc` flag to changelog script (#10839) The changelog script now accepts an `--rc` flag to tell it whether to add new changes to `Unreleased` or to the header for the current version. Previously this was inferred from whether the current version matched the most recent tag. However this method only works for the first update. Using a flag simplifies this logic, and makes it possible to manually re-run this for further updates to a release candidate. * Add `--help` flag to changelog script (#10846) The changelog script now accepts a `--help` flag, which prints a help text explaining how the script works and what each flag does. * add abstraction for waitForSelector (#10844) * Adds jest dependency (#10845) * Add Jest * Refactor changelog parsing and generation (#10847) The `auto-changelog.js` script has been refactoring into various different modules. This was done in preparation for migrating this to a separate repository, where it can be used in our libraries as well. Functionally this should act _mostly_ the same way, but there have been some changes. It was difficult to make this a pure refactor because of the strategy used to validate the changelog and ensure each addition remained valid. Instead of being updated in-place, the changelog is now parsed upfront and stored as a "Changelog" instance, which is a new class that was written to allow only valid changes. The new changelog is then stringified and completely overwrites the old one. The parsing had to be much more strict, as any unanticipated content would otherwise be erased unintentionally. This script now also normalizes the formatting of the changelog (though the individual change descriptions are still unformatted). The changelog stringification now accommodates non-linear releases as well. For example, you can now release v1.0.1 *after* v2.0.0, and it will be listed in chronological order while also correctly constructing the `compare` URLs for each release. * Increase default slippage from 2% to 3%, show Advanced Options by default (#10842) * Increase default slippage from 2% to 3%, show Advanced Options by default * Disable opening / closing of Advanced Options on the Swap page * Pre-select previously used slippage value when going back to the Swap page * Fix lint issues * Use a callback for setting up an initial customValue * Migrate unreleased changes in changelog (#10853) When updating the changelog for a release candidate, any unreleased changes are now migrated to the release header. Generally we don't make a habit of adding changes to the changelog prior to creating a release candidate, but if any are there we certainly don't want them duplicated. * @metamask/eslint-config*@6.0.0 (#10858) * @metamask/eslint-config*@6.0.0 * Minor eslintrc reorg * Refactoring threebox.spec.js to use fixtures (#10849) * Adjust renderWithProvider to accommodate redux-less components (#10857) * Jest config (#10855) * Setup jest config * Adjust test for jest. * Adjust lint config * Omit swaps ui folder for unit testing * Omit swaps from test:unit:lax * Add jest.config.js to script files * Restore mocks rather than clearing them. * Update jest config and adjust lint to include subdirs * Convert view-quote-price-difference test to jest * Add jest ci and ci coverage scripts. Add jest unit test to general test command * Add test coverage to ci * Use --ignore flag * Fixup * Add @metamask/eslint-config-jest * Update .eslintrc.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Adds jest-coverage/ Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Add jest-coverage/ to prettierignore (#10865) * Add jest coverage (#10868) * Add jest coverage This will add coverage for any tests ran in jest under the `test:coverage:jest` command, which is currently being used in CI. I set the values to the current test coverage in `ui/app/pages/swaps`. * Lint * Fix crash when adding new changelog release header (#10870) The `auto-changelog.js` script crashes when trying to add a new release header. This bug was introduced in #10847. The cause was a simple misnamed parameter. * Change caching for Swaps APIs from 1 hour to 5 minutes (#10871) * Change caching for the /tokens API from 1 hour to 5 minutes * Use 5 minutes caching for /topAssets and /aggregatorMetadata APIs as well * add key literals to driver (#10854) * Quote globs in prettier scripts (#10867) * use waitForSelector instead of until (#10852) * complete abstraction of until method * response to feedback * Adding recovery phrase video to onboarding process (#10717) * Adding recovery phrase video to onboarding process Adding english subtitles * Support textAlign in Box, converting sidebar to Box * Reduce calls of the `/featureFlag` API (#10859) * Remove periodic calls to the /featureFlag API * Always show the Swap button on the main page * Check if the Swaps feature is enabled, show loading animation while waiting * Reuse an existing useEffect call * Use ‘isFeatureFlagLoaded’ in React’s state, resolve lint issues * Add a watch mode for Jest testing * Add unit tests for Swaps: fetchSwapsLiveness, add /ducks/swaps into Jest testing * Remove Swaps Jest tests from Mocha’s ESLint rules * Ignore Swaps Jest tests while running Mocha, update paths * Increase test coverage to the current max * Fix ESLint issues for Swaps * Enable the Swaps feature by default and after state reset, remove loading screen before seeing Swaps * Update Jest config, fix tests * Update Jest coverage threshold to the current maximum * Update ESLint rule in jest.config.js * Disable the “Review Swap” button if the feature flag hasn’t loaded yet * Update jest threshold * Fix 10036 - Prevent odd localStorage migration error in Firefox (#10884) * Add jest watch mode script (#10869) * Refactoring metamask-responsive-ui.spec.js to use fixtures (#10866) * Handling infura blockage (#10883) * Handling infura blockage * Adding blockage home notification * Updating copy, adding temporary notification dismissal * Addressing review feedback * Using eth_blockNumber method to check Infura availability * Handling network changes in availability check * Use jest to run ui/**/*.test.js (#10885) * upgrade ethereumjs util (#10886) * Swaps: Show a network name dynamically in a tooltip (#10882) * Swaps: Show a network name dynamically in a tooltip * Replace “Ethereum” with “$1”, change “Test” to “Testnet” * Replace 이더리움 with $1 * Translate network names, use ‘Ethereum’ by default if a translation is not available yet * Reorder messages to resolve ESLint issues * Add a snapshot test for the FeeCard component, increase Jest threshold * Enable snapshot testing into external .snap files in ESLint * Add the “networkNameEthereum” key in ko/messages.json, remove default “Ethereum” value * Throw an error if chain ID is not supported by the Swaps feature * Use string literals when calling the `t` fn, * Adding option to set Custom Nonce to Confirm Approve Page (#10595) * Dep Upgrades for Lavamoat Patches (#10902) * dep upgrades * apply more patches * Dep upgrades and patches (#10903) * apply patches * lavamoat dep upgrades * remove lavamoat browserify * Increase Jest unit test coverage for the Swaps feature to ~25% (#10900) * Swaps: Show a network name dynamically in a tooltip * Replace “Ethereum” with “$1”, change “Test” to “Testnet” * Replace 이더리움 with $1 * Translate network names, use ‘Ethereum’ by default if a translation is not available yet * Reorder messages to resolve ESLint issues * Add a snapshot test for the FeeCard component, increase Jest threshold * Enable snapshot testing into external .snap files in ESLint * Add the “networkNameEthereum” key in ko/messages.json, remove default “Ethereum” value * Throw an error if chain ID is not supported by the Swaps feature * Use string literals when calling the `t` fn, * Watch Jest tests silently (no React warnings in terminal, only errors) * Add @testing-library/jest-dom, import it before running Jest tests * Add snapshot testing of Swaps’ React components for happy paths, increase minimum threshold for Jest * Add the test/jest folder for Jest setup and shared functions, use it in Swaps Jest tests * Fix ESLint issues, update linting config * Enable ESLint for .snap files (Jest snapshots), throw an error if a snapshot is bigger than 50 lines * Don’t run lint:fix for .snap files * Move `createProps` outside of `describe` blocks, move store creation inside tests * Use translations instead of keys, update a rendering function to load translations * Make sure all Jest snapshots are shorter than 50 lines (default limit) * Add / update props for Swaps tests * Fix React warnings when running tests for Swaps * Bump @metamask/contract-metadata from 1.23.0 to 1.25.0 (#10899) Bumps [@metamask/contract-metadata](https://github.com/MetaMask/contract-metadata) from 1.23.0 to 1.25.0. - [Release notes](https://github.com/MetaMask/contract-metadata/releases) - [Commits](https://github.com/MetaMask/contract-metadata/compare/v1.23.0...v1.25.0) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Refactoring from-import-ui.spec.js to use fixtures (#10907) * Fix 10458 - Understand where to get support (#10895) * Add contract address validation for token swaps (#10912) * Fixing ENS input entry in send flow (#10923) * Fixing ENS input entry in send flow Fixes MetaMask/metamask-extension#10691 * removed unnecessary apostrophe * Refactoring incremental-security.spec.js to use fixtures (#10917) * use one segment instance (#10915) * Implement Ledger Live bridge (#10293) * add view account-details menu item to token-options menu (#10932) * add view account-details menu item to token-options menu * add onViewAccountDetails propType * Fix 10609 - Prevent overflow of confirmation page hostname (#10935) * upgrade eth-keyring-controller (#10933) * [Fix] 10365 My Accounts Removal (#10680) * pushing my-accounts removal * removed CONTACT_MY_ACCOUNTS_ROUTE * removed CONTACT_MY_ACCOUNTS_VIEW_ROUTE * removing CONTACT_MY_ACCOUNTS_EDIT_ROUTE * removing CONTACT_MY_ACCOUNTS_EDIT_ROUTE * removed showingMyAccounts dead code * removed more dead code related to isMyAccountsPage * removing more dead code * fixed linting error(s) * removing my-accounts component/folder * added empty contact screen ui * styled empty contact page ui * fixed linting, removed add contacts button, and fixed errors * localized text and centered No Contacts * pushing localized verification and fixed e2e test * added listRoute redirect * added listroute and fixed linting error * Increase Jest unit test coverage for the Swaps feature to ~43% (#10934) * add hamburger menu to eth page (#10938) * add hamburger menu to eth page * change token-options to asset-options, use more direct selector for user address fetch * use token custom icons where possible (#10939) * Whats new popup (#10583) * Add 'What's New' notification popup * Move selectors from shared/notifications into ui/ directory * Use keys for localized message in whats new notifications objects, to ensure notifications will be translated. * Remove unused swaps intro popup locale messages * Fix keys of whats new notification locales * Remove notifications messages and descriptions from comment in shared/notifications * Move notifcationActionFunctions to shared/notifications and make it stateless * Get notification data from constants instead of state in whats-new-popup * Code cleanup * Fix build quote reference to swapsEthToken, broken during rebase * Rename notificationFilters to notificationToExclude to clarify its purpose * Documentation for getSortedNotificationsToShow * Move notification action functions from shared/ to whats-new-popup.js * Stop setting swapsWelcomeMessageHasBeenShown to state in app-state controller * Update e2e tests for whats new popup changes * Updating migration files * Addressing feedback part 1 * Addressing feedback part 2 * Remove unnecessary div in whats-new-popup * Change getNotificationsToExclude to getNotificationsToInclude for use in the getSortedNotificationsToShow selector * Delete intro-popup directory and test files * Lint fix * Add notifiction state to address-entry fixture * Use two separate functions for rendering first and subsequent notifications in the whats-new-popup * Ensure that string literals are passed to t for whats new popup text * Update import-ui fixtures to include notificaiton controller state * Remove unnecessary, accidental change confirm-approve * Remove swaps notification in favour of mobile swaps as first notifcation and TBD 3rd notification * Update whats-new-popup to use intersection observer api to detect if notification has been seen * Add notifications to send-edit and threebox e2e test fixtures * Update ui/app/selectors/selectors.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update ui/app/selectors/selectors.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Clean up locale code for whats-new-popup notifications * Disconnect observers in whats-new-popup when their callback is first called * Add test case for migration 58 for when the AppStateController does not exist * Rename popover components containerRef to popoverWrapRef * Fix messages.json * Update notification messages and images * Rename popoverWrapRef -> popoverRef in whats-new-popup and popover.component * Only create one observer, and only after images have loaded, in whats-new-popup * Set width and height on whats-new-popup image, instead of setting state on img load * Update ui/app/components/app/whats-new-popup/whats-new-popup.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Code clean up in whats new popup re: notification rendering and action functions * Code cleanup in render notification functions of whats-new-popup * Update ui/app/components/app/whats-new-popup/whats-new-popup.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * lint fix * Update and localize notification dates * Clean up date code in shred/notifications/index.js Co-authored-by: ryanml <ryanlanese@gmail.com> Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Revert "Implement Ledger Live bridge (#10293)" This reverts commit15b596ad15
. * Version v9.5.0 * Update changelog for v9.5.0 * yarn allow-scripts and yarn lavamoat:auto for Version-v9.5.0 branch * Anchor the Need Help text to the bottom of the expanded page (#10955) * fix transaction sync logic (#10954) * Add backwards compatibility for ETH <-> WETH contract address validation (#10962) * Whats new popup design fixes (#10964) * Remove padding on QR code image * Allow the qr code to be below the description in the whats new popup * Fix size and position of QR code in whats new notification * Add right caret to action links in whats new popup * Clean up placeImageBelowDescription logic * Fix display of whats-new-popup image * Improve spacing and sizing of whats new popup in both full screen and popup view * refactor * Ensure method of adding contact when contacts exist (#10963) * Fixing alignment issue with bottom notification (#10979) * Revert "Adding recovery phrase video to onboarding process (#10717)" This reverts commit9e918b6026
. * Removing recovery video entry from changelog * Remove tests that are only needed for the commit reverted in 68c5defc * Fix dependency vulnerability by upgrading xmlhttprequest-ssl via yarn.lock (#10990) Co-authored-by: Mark Stacey <markjstacey@gmail.com> Co-authored-by: Barry Gitarts <bgitarts@gmail.com> Co-authored-by: Dan J Miller <danjm.com@gmail.com> Co-authored-by: Erik Marks <25517051+rekmarks@users.noreply.github.com> Co-authored-by: Brad Decker <git@braddecker.dev> Co-authored-by: ryanml <ryanlanese@gmail.com> Co-authored-by: David Walsh <davidwalsh83@gmail.com> Co-authored-by: Niranjana Binoy <43930900+NiranjanaBinoy@users.noreply.github.com> Co-authored-by: Shane <jonas.shane@gmail.com> Co-authored-by: gitpurva <47534619+gitpurva@users.noreply.github.com> Co-authored-by: kumavis <kumavis@users.noreply.github.com> Co-authored-by: Etienne Dusseault <etienne.dusseault@gmail.com> Co-authored-by: kumavis <aaron@kumavis.me> Co-authored-by: Grant Bakker <grant@bakker.pw> Co-authored-by: Michael Standen <screaminghawk@gmail.com> Co-authored-by: Muhammet Kara <mrkara@users.noreply.github.com> Co-authored-by: Daniel <80175477+dan437@users.noreply.github.com> Co-authored-by: Thomas Huang <tmashuang@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Thomas <thomas.b.huang@gmail.com> Co-authored-by: Alex Donesky <alex.donesky@consensys.net> Co-authored-by: Austin Akers <austin.akers5@gmail.com> Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
1209 lines
29 KiB
JSON
1209 lines
29 KiB
JSON
{
|
||
"about": {
|
||
"message": "關於"
|
||
},
|
||
"aboutSettingsDescription": {
|
||
"message": "版本,支援中心,以及聯絡資訊。"
|
||
},
|
||
"acceleratingATransaction": {
|
||
"message": "* 提高交易費 Gas 價格將可加速處理時間,但不保證會有顯著效果"
|
||
},
|
||
"accessingYourCamera": {
|
||
"message": "正在存取您的攝影鏡頭..."
|
||
},
|
||
"account": {
|
||
"message": "帳戶"
|
||
},
|
||
"accountDetails": {
|
||
"message": "帳戶詳情"
|
||
},
|
||
"accountName": {
|
||
"message": "帳戶名稱"
|
||
},
|
||
"accountOptions": {
|
||
"message": "帳戶"
|
||
},
|
||
"accountSelectionRequired": {
|
||
"message": "必須先選擇一個帳戶!"
|
||
},
|
||
"activity": {
|
||
"message": "交易紀錄"
|
||
},
|
||
"activityLog": {
|
||
"message": "活動紀錄"
|
||
},
|
||
"addAcquiredTokens": {
|
||
"message": "將您已經擁有的代幣顯示於 MetaMask"
|
||
},
|
||
"addAlias": {
|
||
"message": "新增化名"
|
||
},
|
||
"addNetwork": {
|
||
"message": "新增網路"
|
||
},
|
||
"addRecipient": {
|
||
"message": "新增接收人"
|
||
},
|
||
"addSuggestedTokens": {
|
||
"message": "加入建議的代幣"
|
||
},
|
||
"addToAddressBook": {
|
||
"message": "新增至位址簿中"
|
||
},
|
||
"addToAddressBookModalPlaceholder": {
|
||
"message": "如 John D。"
|
||
},
|
||
"addToken": {
|
||
"message": "加入代幣"
|
||
},
|
||
"addTokens": {
|
||
"message": "加入代幣"
|
||
},
|
||
"advanced": {
|
||
"message": "進階"
|
||
},
|
||
"advancedOptions": {
|
||
"message": "進階選項"
|
||
},
|
||
"advancedSettingsDescription": {
|
||
"message": "存取開發者功能,下載狀態日誌,重設帳號,設定測試網及自訂 PRC。"
|
||
},
|
||
"amount": {
|
||
"message": "數量"
|
||
},
|
||
"appDescription": {
|
||
"message": "以太坊瀏覽器擴充插件",
|
||
"description": "The description of the application"
|
||
},
|
||
"appName": {
|
||
"message": "MetaMask",
|
||
"description": "The name of the application"
|
||
},
|
||
"approve": {
|
||
"message": "批准"
|
||
},
|
||
"approved": {
|
||
"message": "已批准"
|
||
},
|
||
"asset": {
|
||
"message": "資產"
|
||
},
|
||
"assets": {
|
||
"message": "資產"
|
||
},
|
||
"attemptToCancel": {
|
||
"message": "嘗試取消?"
|
||
},
|
||
"attemptToCancelDescription": {
|
||
"message": "送出取消並不保證您的交易一定會被取消。若取消成功,將會收取上方顯示交易費用"
|
||
},
|
||
"attemptingConnect": {
|
||
"message": "正在嘗試連接區塊鏈。"
|
||
},
|
||
"attributions": {
|
||
"message": "來源"
|
||
},
|
||
"autoLockTimeLimit": {
|
||
"message": "自動登出計時器(分)"
|
||
},
|
||
"autoLockTimeLimitDescription": {
|
||
"message": "設定閒置分鐘上限,時間到時 MetaMask 將自動登出"
|
||
},
|
||
"average": {
|
||
"message": "平均"
|
||
},
|
||
"back": {
|
||
"message": "上一頁"
|
||
},
|
||
"backToAll": {
|
||
"message": "回到所有"
|
||
},
|
||
"backupApprovalInfo": {
|
||
"message": "在裝置遺失、忘記密碼、需要重新安裝 MetaMask、或是想在另一裝置開啟錢包的情形下,你需要此秘密代碼來復原錢包。"
|
||
},
|
||
"backupApprovalNotice": {
|
||
"message": "備份你的秘密還原代碼,安全防護錢包與資金。"
|
||
},
|
||
"backupNow": {
|
||
"message": "現在備份"
|
||
},
|
||
"balance": {
|
||
"message": "餘額:"
|
||
},
|
||
"balanceOutdated": {
|
||
"message": "顯示餘額不一定是最新資訊"
|
||
},
|
||
"basic": {
|
||
"message": "基本"
|
||
},
|
||
"blockExplorerUrl": {
|
||
"message": "區塊鏈瀏覽器"
|
||
},
|
||
"blockExplorerView": {
|
||
"message": "在 $1 觀看帳號 ",
|
||
"description": "$1 replaced by URL for custom block explorer"
|
||
},
|
||
"blockiesIdenticon": {
|
||
"message": "使用像素風格代表圖案"
|
||
},
|
||
"browserNotSupported": {
|
||
"message": "您的瀏覽器尚未支援..."
|
||
},
|
||
"builtInCalifornia": {
|
||
"message": "MetaMask 是在加州設計製造"
|
||
},
|
||
"buy": {
|
||
"message": "買"
|
||
},
|
||
"buyWithWyre": {
|
||
"message": "用 Wyre 購買 ETH"
|
||
},
|
||
"buyWithWyreDescription": {
|
||
"message": "Wyre 讓你使用信用卡在 MetaMask 帳號中直接存入 ETH。"
|
||
},
|
||
"bytes": {
|
||
"message": "位元組"
|
||
},
|
||
"cancel": {
|
||
"message": "取消"
|
||
},
|
||
"cancellationGasFee": {
|
||
"message": "需要的手續費"
|
||
},
|
||
"cancelled": {
|
||
"message": "已取消"
|
||
},
|
||
"chainId": {
|
||
"message": "鏈 ID"
|
||
},
|
||
"chromeRequiredForHardwareWallets": {
|
||
"message": "您需要在 Google Chrome 瀏覽器使用 MetaMask 連結您的硬體錢包"
|
||
},
|
||
"clickToRevealSeed": {
|
||
"message": "點選顯示助憶詞"
|
||
},
|
||
"close": {
|
||
"message": "關閉"
|
||
},
|
||
"confirm": {
|
||
"message": "確認"
|
||
},
|
||
"confirmPassword": {
|
||
"message": "確認密碼"
|
||
},
|
||
"confirmSecretBackupPhrase": {
|
||
"message": "確認您已經備份的助憶詞"
|
||
},
|
||
"confirmed": {
|
||
"message": "已確認"
|
||
},
|
||
"congratulations": {
|
||
"message": "恭喜"
|
||
},
|
||
"connect": {
|
||
"message": "連線"
|
||
},
|
||
"connectHardwareWallet": {
|
||
"message": "連線硬體錢包"
|
||
},
|
||
"connectingTo": {
|
||
"message": "連線到$1"
|
||
},
|
||
"connectingToGoerli": {
|
||
"message": "連接至 Goerli 測試網路"
|
||
},
|
||
"connectingToKovan": {
|
||
"message": "連線到 Kovan 測試網路"
|
||
},
|
||
"connectingToMainnet": {
|
||
"message": "連線到主 Ethereum 網路"
|
||
},
|
||
"connectingToRinkeby": {
|
||
"message": "連線到 Rinkeby 測試網路"
|
||
},
|
||
"connectingToRopsten": {
|
||
"message": "連線到 Ropsten 測試網路"
|
||
},
|
||
"continueToWyre": {
|
||
"message": "繼續至 Wyre"
|
||
},
|
||
"contractDeployment": {
|
||
"message": "部署合約"
|
||
},
|
||
"contractInteraction": {
|
||
"message": "合約互動"
|
||
},
|
||
"copiedExclamation": {
|
||
"message": "已複製!"
|
||
},
|
||
"copiedTransactionId": {
|
||
"message": "已複製的交易 ID"
|
||
},
|
||
"copyAddress": {
|
||
"message": "複製到剪貼簿"
|
||
},
|
||
"copyPrivateKey": {
|
||
"message": "這是您的私鑰(點擊複製)"
|
||
},
|
||
"copyToClipboard": {
|
||
"message": "複製到剪貼簿"
|
||
},
|
||
"copyTransactionId": {
|
||
"message": "複製交易 ID"
|
||
},
|
||
"create": {
|
||
"message": "建立"
|
||
},
|
||
"createAWallet": {
|
||
"message": "創建錢包"
|
||
},
|
||
"createAccount": {
|
||
"message": "建立帳戶"
|
||
},
|
||
"createPassword": {
|
||
"message": "建立密碼"
|
||
},
|
||
"currencyConversion": {
|
||
"message": "轉換匯率"
|
||
},
|
||
"currentLanguage": {
|
||
"message": "當前語言"
|
||
},
|
||
"customGas": {
|
||
"message": "自訂 Gas"
|
||
},
|
||
"customGasSubTitle": {
|
||
"message": "提升費用可能會加快處理時間,但不保證"
|
||
},
|
||
"customRPC": {
|
||
"message": "自訂 RPC"
|
||
},
|
||
"customToken": {
|
||
"message": "自訂代幣"
|
||
},
|
||
"decimal": {
|
||
"message": "小數點精度"
|
||
},
|
||
"decimalsMustZerotoTen": {
|
||
"message": "小數點後位數至少為0, 最多為36."
|
||
},
|
||
"defaultNetwork": {
|
||
"message": "預設以太幣交易網路為主網路"
|
||
},
|
||
"delete": {
|
||
"message": "刪除"
|
||
},
|
||
"deleteAccount": {
|
||
"message": "刪除帳號"
|
||
},
|
||
"deleteNetwork": {
|
||
"message": "刪除網路?"
|
||
},
|
||
"deleteNetworkDescription": {
|
||
"message": "你確定要刪除網路嗎?"
|
||
},
|
||
"depositEther": {
|
||
"message": "存入以太幣"
|
||
},
|
||
"details": {
|
||
"message": "詳情"
|
||
},
|
||
"directDepositEther": {
|
||
"message": "直接存入以太幣"
|
||
},
|
||
"directDepositEtherExplainer": {
|
||
"message": "如果您已經擁有以太幣,直接存入功能是讓新錢包最快取得以太幣的方式。"
|
||
},
|
||
"done": {
|
||
"message": "完成"
|
||
},
|
||
"dontHaveAHardwareWallet": {
|
||
"message": "還沒有硬體錢包?"
|
||
},
|
||
"downloadGoogleChrome": {
|
||
"message": "下載 Google Chrome 瀏覽器"
|
||
},
|
||
"downloadSecretBackup": {
|
||
"message": "下載助憶詞文字檔案,並安全的保存在有加密功能的外接硬碟或其他儲存裝置。"
|
||
},
|
||
"downloadStateLogs": {
|
||
"message": "下載狀態紀錄"
|
||
},
|
||
"dropped": {
|
||
"message": "丟棄"
|
||
},
|
||
"edit": {
|
||
"message": "編輯"
|
||
},
|
||
"editContact": {
|
||
"message": "編輯聯絡資訊"
|
||
},
|
||
"endOfFlowMessage1": {
|
||
"message": "你通過測試了—安全存放助記詞,這是你的責任!"
|
||
},
|
||
"endOfFlowMessage10": {
|
||
"message": "都完成了"
|
||
},
|
||
"endOfFlowMessage2": {
|
||
"message": "安全儲存的小秘訣"
|
||
},
|
||
"endOfFlowMessage3": {
|
||
"message": "在多處儲存備份。"
|
||
},
|
||
"endOfFlowMessage4": {
|
||
"message": "不要分享此助記祠給任何人"
|
||
},
|
||
"endOfFlowMessage5": {
|
||
"message": "小心網路釣魚!MetaMask 永遠不會主動詢問你的助記詞。"
|
||
},
|
||
"endOfFlowMessage6": {
|
||
"message": "如你需要再次備份助記詞,可至設定 -> 安全。"
|
||
},
|
||
"endOfFlowMessage8": {
|
||
"message": "MetaMask 無法還原你的助記詞。暸解更多"
|
||
},
|
||
"endOfFlowMessage9": {
|
||
"message": "深入瞭解。"
|
||
},
|
||
"ensNotFoundOnCurrentNetwork": {
|
||
"message": "現有網路中找不到 ENS 名稱。嘗試轉換到主要以太坊網路。"
|
||
},
|
||
"ensRegistrationError": {
|
||
"message": "ENS 名稱註冊錯誤"
|
||
},
|
||
"enterAnAlias": {
|
||
"message": "輸入化名"
|
||
},
|
||
"enterPassword": {
|
||
"message": "請輸入密碼"
|
||
},
|
||
"enterPasswordContinue": {
|
||
"message": "請輸入密碼"
|
||
},
|
||
"estimatedProcessingTimes": {
|
||
"message": "預估處理時間"
|
||
},
|
||
"ethereumPublicAddress": {
|
||
"message": "以太坊公開位址"
|
||
},
|
||
"etherscanView": {
|
||
"message": "在 Etherscan 上查看帳戶"
|
||
},
|
||
"expandView": {
|
||
"message": "展開畫面"
|
||
},
|
||
"exportPrivateKey": {
|
||
"message": "導出私鑰"
|
||
},
|
||
"failed": {
|
||
"message": "交易失败"
|
||
},
|
||
"fast": {
|
||
"message": "快"
|
||
},
|
||
"fiat": {
|
||
"message": "法定貨幣",
|
||
"description": "Exchange type"
|
||
},
|
||
"fileImportFail": {
|
||
"message": "檔案匯入失敗?點擊這裡!",
|
||
"description": "Helps user import their account from a JSON file"
|
||
},
|
||
"forgetDevice": {
|
||
"message": "移除此裝置"
|
||
},
|
||
"from": {
|
||
"message": "來源帳戶"
|
||
},
|
||
"functionType": {
|
||
"message": "功能類型"
|
||
},
|
||
"gasLimit": {
|
||
"message": "Gas 上限"
|
||
},
|
||
"gasLimitInfoTooltipContent": {
|
||
"message": "Gas 上限代表願意為交易手續費所付出的最高總價"
|
||
},
|
||
"gasLimitTooLow": {
|
||
"message": "Gas 上限至少為 21000"
|
||
},
|
||
"gasPrice": {
|
||
"message": "Gas 價格 (GWEI)"
|
||
},
|
||
"gasPriceExtremelyLow": {
|
||
"message": "Gas 價格極低"
|
||
},
|
||
"gasPriceInfoTooltipContent": {
|
||
"message": "Gas 價格代表願意為交易手續費付出的單位價格,價格越高交易處理速度越快"
|
||
},
|
||
"gasUsed": {
|
||
"message": "Gas 用量"
|
||
},
|
||
"general": {
|
||
"message": "一般"
|
||
},
|
||
"generalSettingsDescription": {
|
||
"message": "貨幣轉換,主要貨幣,語言,區塊鏈哈希頭像"
|
||
},
|
||
"getEther": {
|
||
"message": "取得以太幣"
|
||
},
|
||
"getEtherFromFaucet": {
|
||
"message": "從水管取得 $1 以太幣。",
|
||
"description": "Displays network name for Ether faucet"
|
||
},
|
||
"getHelp": {
|
||
"message": "取得協助"
|
||
},
|
||
"getStarted": {
|
||
"message": "開始使用"
|
||
},
|
||
"goerli": {
|
||
"message": "Goerli 測試網路"
|
||
},
|
||
"happyToSeeYou": {
|
||
"message": "我們很高興看到你。"
|
||
},
|
||
"hardware": {
|
||
"message": "硬體"
|
||
},
|
||
"hardwareWalletConnected": {
|
||
"message": "硬體錢包已連線"
|
||
},
|
||
"hardwareWallets": {
|
||
"message": "連線硬體錢包"
|
||
},
|
||
"hardwareWalletsMsg": {
|
||
"message": "選擇要連線到 MetaMask 的硬體錢包"
|
||
},
|
||
"havingTroubleConnecting": {
|
||
"message": "無法正確連線?"
|
||
},
|
||
"here": {
|
||
"message": "這裡",
|
||
"description": "as in -click here- for more information (goes with troubleTokenBalances)"
|
||
},
|
||
"hexData": {
|
||
"message": "16進位資料"
|
||
},
|
||
"hide": {
|
||
"message": "隱藏"
|
||
},
|
||
"hideTokenPrompt": {
|
||
"message": "隱藏代幣?"
|
||
},
|
||
"history": {
|
||
"message": "紀錄"
|
||
},
|
||
"import": {
|
||
"message": "匯入",
|
||
"description": "Button to import an account from a selected file"
|
||
},
|
||
"importAccount": {
|
||
"message": "匯入帳戶"
|
||
},
|
||
"importAccountMsg": {
|
||
"message": " 匯入的帳戶與您原有 MetaMask 帳戶的助憶詞並無關聯。請查看與匯入帳戶相關的資料 "
|
||
},
|
||
"importAccountSeedPhrase": {
|
||
"message": "利用助憶詞還原"
|
||
},
|
||
"importWallet": {
|
||
"message": "匯入錢包"
|
||
},
|
||
"imported": {
|
||
"message": "已匯入私鑰",
|
||
"description": "status showing that an account has been fully loaded into the keyring"
|
||
},
|
||
"initialTransactionConfirmed": {
|
||
"message": "交易已確認"
|
||
},
|
||
"insufficientBalance": {
|
||
"message": "餘額不足"
|
||
},
|
||
"insufficientFunds": {
|
||
"message": "資金不足"
|
||
},
|
||
"insufficientTokens": {
|
||
"message": "代幣不足"
|
||
},
|
||
"invalidAddress": {
|
||
"message": "錯誤的位址"
|
||
},
|
||
"invalidAddressRecipient": {
|
||
"message": "接收位址錯誤"
|
||
},
|
||
"invalidAddressRecipientNotEthNetwork": {
|
||
"message": "非 ETH 網路,設定至小寫"
|
||
},
|
||
"invalidBlockExplorerURL": {
|
||
"message": "無效的區塊鏈瀏覽器 URL"
|
||
},
|
||
"invalidRPC": {
|
||
"message": "無效的 RPC URI"
|
||
},
|
||
"invalidSeedPhrase": {
|
||
"message": "無效的助憶詞"
|
||
},
|
||
"jsonFile": {
|
||
"message": "JSON 格式檔案",
|
||
"description": "format for importing an account"
|
||
},
|
||
"knownAddressRecipient": {
|
||
"message": "已知合約位址"
|
||
},
|
||
"kovan": {
|
||
"message": "Kovan 測試網路"
|
||
},
|
||
"learnMore": {
|
||
"message": "了解更多"
|
||
},
|
||
"ledgerAccountRestriction": {
|
||
"message": "您必須使用最後的帳戶才能產生新帳戶"
|
||
},
|
||
"letsGoSetUp": {
|
||
"message": "好,我們開始吧!"
|
||
},
|
||
"likeToAddTokens": {
|
||
"message": "確定要加入代幣?"
|
||
},
|
||
"links": {
|
||
"message": "連結"
|
||
},
|
||
"loadMore": {
|
||
"message": "載入更多"
|
||
},
|
||
"loading": {
|
||
"message": "載入..."
|
||
},
|
||
"loadingTokens": {
|
||
"message": "載入代幣..."
|
||
},
|
||
"lock": {
|
||
"message": "鎖定"
|
||
},
|
||
"mainnet": {
|
||
"message": "以太坊 主網路"
|
||
},
|
||
"max": {
|
||
"message": "最大值"
|
||
},
|
||
"memo": {
|
||
"message": "備註"
|
||
},
|
||
"memorizePhrase": {
|
||
"message": "絕對不要忘記您的助憶詞。"
|
||
},
|
||
"message": {
|
||
"message": "訊息"
|
||
},
|
||
"metamaskDescription": {
|
||
"message": "MetaMask 是以太坊安全身份識別金庫"
|
||
},
|
||
"metamaskVersion": {
|
||
"message": "MetaMask 版本"
|
||
},
|
||
"mobileSyncText": {
|
||
"message": "請輸入密碼確認身份!"
|
||
},
|
||
"mustSelectOne": {
|
||
"message": "必須選擇至少 1 代幣"
|
||
},
|
||
"myAccounts": {
|
||
"message": "我的帳戶"
|
||
},
|
||
"needEtherInWallet": {
|
||
"message": "要使用 MetaMask 存取去中心化應用服務時,您的錢包中需要有以太幣。"
|
||
},
|
||
"needImportFile": {
|
||
"message": "您必須選擇一個檔案來匯入",
|
||
"description": "User is important an account and needs to add a file to continue"
|
||
},
|
||
"negativeETH": {
|
||
"message": "不能送出負值的以太幣"
|
||
},
|
||
"networkName": {
|
||
"message": "網路名稱"
|
||
},
|
||
"networkSettingsDescription": {
|
||
"message": "新增並編輯自訂 RPC 網路"
|
||
},
|
||
"networks": {
|
||
"message": "網路"
|
||
},
|
||
"nevermind": {
|
||
"message": "算了"
|
||
},
|
||
"newAccount": {
|
||
"message": "新帳戶"
|
||
},
|
||
"newAccountDetectedDialogMessage": {
|
||
"message": "偵測到新位址!點擊此處將其新增到你的位址簿。"
|
||
},
|
||
"newAccountNumberName": {
|
||
"message": "帳戶 $1",
|
||
"description": "Default name of next account to be created on create account screen"
|
||
},
|
||
"newContact": {
|
||
"message": "新聯絡資訊"
|
||
},
|
||
"newContract": {
|
||
"message": "建立新合約"
|
||
},
|
||
"newNetwork": {
|
||
"message": "新增網路"
|
||
},
|
||
"newPassword": {
|
||
"message": "新密碼(至少8個字元)"
|
||
},
|
||
"newToMetaMask": {
|
||
"message": "新來到 MetaMask?"
|
||
},
|
||
"newTotal": {
|
||
"message": "總費用"
|
||
},
|
||
"newTransactionFee": {
|
||
"message": "自訂交易費"
|
||
},
|
||
"next": {
|
||
"message": "下一頁"
|
||
},
|
||
"noAddressForName": {
|
||
"message": "此 ENS 尚未指定位址。"
|
||
},
|
||
"noAlreadyHaveSeed": {
|
||
"message": "不,我已經有助記詞"
|
||
},
|
||
"noConversionRateAvailable": {
|
||
"message": "尚未有匯率比較值"
|
||
},
|
||
"noTransactions": {
|
||
"message": "尚未有交易"
|
||
},
|
||
"noWebcamFound": {
|
||
"message": "無法搜尋到攝影鏡頭裝置。請再試一次"
|
||
},
|
||
"noWebcamFoundTitle": {
|
||
"message": "找不到攝影鏡頭"
|
||
},
|
||
"notEnoughGas": {
|
||
"message": "Gas 不夠"
|
||
},
|
||
"off": {
|
||
"message": "關"
|
||
},
|
||
"on": {
|
||
"message": "開啟"
|
||
},
|
||
"optionalBlockExplorerUrl": {
|
||
"message": "區塊鏈瀏覽器 URL(非必要)"
|
||
},
|
||
"optionalCurrencySymbol": {
|
||
"message": "Symbol (可選)"
|
||
},
|
||
"orderOneHere": {
|
||
"message": "訂購 Trezor 或 Ledger 讓資產保存於硬體裝置。"
|
||
},
|
||
"origin": {
|
||
"message": "來源"
|
||
},
|
||
"parameters": {
|
||
"message": "參數"
|
||
},
|
||
"participateInMetaMetrics": {
|
||
"message": "參與 MetaMetrics"
|
||
},
|
||
"participateInMetaMetricsDescription": {
|
||
"message": "參與 MetaMetrics 來協助我們打造更好的 MetaMask"
|
||
},
|
||
"password": {
|
||
"message": "密碼"
|
||
},
|
||
"passwordNotLongEnough": {
|
||
"message": "您所輸入的密碼長度不足"
|
||
},
|
||
"passwordsDontMatch": {
|
||
"message": "您所輸入的密碼不一致"
|
||
},
|
||
"pastePrivateKey": {
|
||
"message": "請貼上您的私鑰字串:",
|
||
"description": "For importing an account from a private key"
|
||
},
|
||
"pending": {
|
||
"message": "等待處理"
|
||
},
|
||
"personalAddressDetected": {
|
||
"message": "偵測為個人位址,請輸入代幣合約位址"
|
||
},
|
||
"primaryCurrencySetting": {
|
||
"message": "主要顯示"
|
||
},
|
||
"primaryCurrencySettingDescription": {
|
||
"message": "選擇使用以太幣(ETH)或是法定貨幣(例如:美金)為主要錢幣顯示單位"
|
||
},
|
||
"privacyMsg": {
|
||
"message": "隱私政策"
|
||
},
|
||
"privateKey": {
|
||
"message": "私鑰",
|
||
"description": "select this type of file to use to import an account"
|
||
},
|
||
"privateKeyWarning": {
|
||
"message": "注意:永遠不要公開這個私鑰。任何取得這把私鑰的人都可以竊取這個帳戶中的所有資產。"
|
||
},
|
||
"privateNetwork": {
|
||
"message": "私有網路"
|
||
},
|
||
"queue": {
|
||
"message": "佇列"
|
||
},
|
||
"readdToken": {
|
||
"message": "未來可以隨時重新加入此代幣"
|
||
},
|
||
"readyToConnect": {
|
||
"message": "準備連線?"
|
||
},
|
||
"recents": {
|
||
"message": "最近"
|
||
},
|
||
"recipientAddress": {
|
||
"message": "接收位址"
|
||
},
|
||
"recipientAddressPlaceholder": {
|
||
"message": "搜尋,公開地址 (0x),或 ENS"
|
||
},
|
||
"reject": {
|
||
"message": "拒絕"
|
||
},
|
||
"rejectAll": {
|
||
"message": "全部拒絕"
|
||
},
|
||
"rejectTxsDescription": {
|
||
"message": "您將批次拒絕 $1 筆交易."
|
||
},
|
||
"rejectTxsN": {
|
||
"message": "拒絕 $1 筆交易"
|
||
},
|
||
"rejected": {
|
||
"message": "拒絕"
|
||
},
|
||
"remindMeLater": {
|
||
"message": "稍後提醒我"
|
||
},
|
||
"remove": {
|
||
"message": "移除"
|
||
},
|
||
"removeAccount": {
|
||
"message": "移除帳戶"
|
||
},
|
||
"removeAccountDescription": {
|
||
"message": "此帳戶將由錢包中移除。在繼續進行之前請確認您已經匯出並妥善備份助憶詞或私鑰。"
|
||
},
|
||
"requestsAwaitingAcknowledgement": {
|
||
"message": "請求正在等待確認"
|
||
},
|
||
"required": {
|
||
"message": "必填"
|
||
},
|
||
"reset": {
|
||
"message": "重置"
|
||
},
|
||
"resetAccount": {
|
||
"message": "重置帳戶"
|
||
},
|
||
"resetAccountDescription": {
|
||
"message": "重置帳戶將清除您的交易紀錄"
|
||
},
|
||
"restoreAccountWithSeed": {
|
||
"message": "透過助憶詞還原您的帳戶"
|
||
},
|
||
"revealSeedWords": {
|
||
"message": "顯示助憶詞"
|
||
},
|
||
"revealSeedWordsDescription": {
|
||
"message": "若想在不同瀏覽器或電腦登入,將需要使用助憶詞還原帳戶資訊。請妥善並安全的保管您的助憶詞。"
|
||
},
|
||
"revealSeedWordsTitle": {
|
||
"message": "助憶詞"
|
||
},
|
||
"revealSeedWordsWarning": {
|
||
"message": "絕對不要在公共場合輸入助憶詞!這可被用來竊取您的帳戶。"
|
||
},
|
||
"revealSeedWordsWarningTitle": {
|
||
"message": "請勿將助憶詞洩漏予他人"
|
||
},
|
||
"rinkeby": {
|
||
"message": "Rinkeby 測試網路"
|
||
},
|
||
"ropsten": {
|
||
"message": "Ropsten 測試網路"
|
||
},
|
||
"rpcUrl": {
|
||
"message": "新的 RPC URL"
|
||
},
|
||
"save": {
|
||
"message": "儲存"
|
||
},
|
||
"saveAsCsvFile": {
|
||
"message": "儲存為CSV格式檔案"
|
||
},
|
||
"scanInstructions": {
|
||
"message": "請將 QR code 放在攝影鏡頭前面"
|
||
},
|
||
"scanQrCode": {
|
||
"message": "掃描 QR Code"
|
||
},
|
||
"search": {
|
||
"message": "搜尋"
|
||
},
|
||
"searchResults": {
|
||
"message": "搜尋結果"
|
||
},
|
||
"searchTokens": {
|
||
"message": "搜尋代幣"
|
||
},
|
||
"secretBackupPhrase": {
|
||
"message": "助憶詞"
|
||
},
|
||
"secretBackupPhraseDescription": {
|
||
"message": "助憶詞將可協助您用更簡單的方式備份帳戶資訊。"
|
||
},
|
||
"secretBackupPhraseWarning": {
|
||
"message": "警告: 絕對不要洩漏您的助憶詞。任何人只要得知助憶詞代表他可以竊取您所有的以太幣和代幣。"
|
||
},
|
||
"securityAndPrivacy": {
|
||
"message": "安全&隱私"
|
||
},
|
||
"securitySettingsDescription": {
|
||
"message": "隱私設定及錢包助記詞"
|
||
},
|
||
"seedPhrasePlaceholder": {
|
||
"message": "單詞之間請用空白分隔"
|
||
},
|
||
"seedPhraseReq": {
|
||
"message": "助憶詞為 12 個詞語"
|
||
},
|
||
"selectAHigherGasFee": {
|
||
"message": "選擇更高的交易費可加速您的交易處理時間 *"
|
||
},
|
||
"selectAnAccount": {
|
||
"message": "選擇帳戶"
|
||
},
|
||
"selectEachPhrase": {
|
||
"message": "請依照正確順序點選助憶詞"
|
||
},
|
||
"selectPathHelp": {
|
||
"message": "若看不到您已經擁有的 Ledger 帳戶,請嘗試切換路徑為 \"Legacy (MEW / MyCrypto)\""
|
||
},
|
||
"selectType": {
|
||
"message": "選擇類型"
|
||
},
|
||
"send": {
|
||
"message": "發送"
|
||
},
|
||
"sendAmount": {
|
||
"message": "發送數量"
|
||
},
|
||
"sendTokens": {
|
||
"message": "發送代幣"
|
||
},
|
||
"sentEther": {
|
||
"message": "發送以太幣"
|
||
},
|
||
"separateEachWord": {
|
||
"message": "單詞之間請以空白間隔"
|
||
},
|
||
"settings": {
|
||
"message": "設定"
|
||
},
|
||
"showAdvancedGasInline": {
|
||
"message": "顯示進階 Gas 控制選項"
|
||
},
|
||
"showAdvancedGasInlineDescription": {
|
||
"message": "在交易時顯示可微調 Gas 價格以及 Gas 上限的功能"
|
||
},
|
||
"showFiatConversionInTestnets": {
|
||
"message": "在測試網上顯示匯率"
|
||
},
|
||
"showFiatConversionInTestnetsDescription": {
|
||
"message": "選擇此來在測試網上顯示法定貨幣匯率"
|
||
},
|
||
"showHexData": {
|
||
"message": "顯示16進位資料"
|
||
},
|
||
"showHexDataDescription": {
|
||
"message": "在交易時顯示16進位資料"
|
||
},
|
||
"showPrivateKeys": {
|
||
"message": "顯示私鑰"
|
||
},
|
||
"sigRequest": {
|
||
"message": "請求簽署"
|
||
},
|
||
"sign": {
|
||
"message": "簽署"
|
||
},
|
||
"signNotice": {
|
||
"message": "簽署此訊息可能會產生危險地副作用。 \n只從您完全信任的網站上簽署。這種危險的方法,將在未來的版本中被移除。"
|
||
},
|
||
"signatureRequest": {
|
||
"message": "請求簽署"
|
||
},
|
||
"signed": {
|
||
"message": "已簽署"
|
||
},
|
||
"slow": {
|
||
"message": "慢"
|
||
},
|
||
"somethingWentWrong": {
|
||
"message": "糟糕!出了點問題。"
|
||
},
|
||
"speedUp": {
|
||
"message": "加速"
|
||
},
|
||
"speedUpCancellation": {
|
||
"message": "加速取消"
|
||
},
|
||
"speedUpTransaction": {
|
||
"message": "加速這筆交易"
|
||
},
|
||
"stateLogError": {
|
||
"message": "在取得狀態紀錄時發生錯誤."
|
||
},
|
||
"stateLogs": {
|
||
"message": "狀態紀錄"
|
||
},
|
||
"stateLogsDescription": {
|
||
"message": "狀態紀錄包含您的公開帳戶位址和已傳送的交易資訊"
|
||
},
|
||
"step1HardwareWallet": {
|
||
"message": "1. 連線硬體錢包"
|
||
},
|
||
"step1HardwareWalletMsg": {
|
||
"message": "將您的硬體錢包連接到電腦。"
|
||
},
|
||
"step2HardwareWallet": {
|
||
"message": "2. 選擇帳戶"
|
||
},
|
||
"step2HardwareWalletMsg": {
|
||
"message": "選擇想要檢視的帳戶。一次只能選擇一個帳戶。"
|
||
},
|
||
"step3HardwareWallet": {
|
||
"message": "3. 開始使用!"
|
||
},
|
||
"step3HardwareWalletMsg": {
|
||
"message": "使用您硬體錢包中的帳戶,與去中心化應用服務交易以太幣、ERC20代幣、或迷戀貓等數位資產。"
|
||
},
|
||
"storePhrase": {
|
||
"message": "您可以用密碼管理系統例如 1Password 等軟體儲存助憶詞。"
|
||
},
|
||
"submitted": {
|
||
"message": "已送出"
|
||
},
|
||
"supportCenter": {
|
||
"message": "造訪我們的協助中心"
|
||
},
|
||
"switchNetworks": {
|
||
"message": "切換網路"
|
||
},
|
||
"symbol": {
|
||
"message": "符號"
|
||
},
|
||
"symbolBetweenZeroTwelve": {
|
||
"message": "符號不得超過11個字符。"
|
||
},
|
||
"syncWithMobile": {
|
||
"message": "和移動裝置同步"
|
||
},
|
||
"syncWithMobileBeCareful": {
|
||
"message": "掃描代碼時確保沒有其他人在看你的螢幕"
|
||
},
|
||
"syncWithMobileComplete": {
|
||
"message": "你的資料已成功同步。開始活用 MetaMask 移動 app!"
|
||
},
|
||
"syncWithMobileDesc": {
|
||
"message": "你可以用移動裝置同步帳號與資訊。開啟 MetaMask 移動 app,至「設定」並點擊「自瀏覽器擴充功能同步」"
|
||
},
|
||
"syncWithMobileDescNewUsers": {
|
||
"message": "如你是第一次開啟 MetaMask 移動 app,只要跟著手機上的指示操作即可。"
|
||
},
|
||
"syncWithMobileScanThisCode": {
|
||
"message": "用你的 MetaMask 移動 app 掃描此代碼"
|
||
},
|
||
"syncWithMobileTitle": {
|
||
"message": "和移動裝置同步"
|
||
},
|
||
"terms": {
|
||
"message": "使用條款"
|
||
},
|
||
"testFaucet": {
|
||
"message": "測試水管"
|
||
},
|
||
"thisWillCreate": {
|
||
"message": "這將創建新的錢包與助記詞"
|
||
},
|
||
"tips": {
|
||
"message": "提示"
|
||
},
|
||
"to": {
|
||
"message": "目的帳戶"
|
||
},
|
||
"token": {
|
||
"message": "代碼"
|
||
},
|
||
"tokenAlreadyAdded": {
|
||
"message": "已加入過此代幣。"
|
||
},
|
||
"tokenContractAddress": {
|
||
"message": "代幣合同位址"
|
||
},
|
||
"tokenSymbol": {
|
||
"message": "代幣代號"
|
||
},
|
||
"total": {
|
||
"message": "總量"
|
||
},
|
||
"transaction": {
|
||
"message": "交易"
|
||
},
|
||
"transactionCancelAttempted": {
|
||
"message": "交易取消請求 手續費 $1 時間 $2"
|
||
},
|
||
"transactionCancelSuccess": {
|
||
"message": "交易取消成功 $2"
|
||
},
|
||
"transactionConfirmed": {
|
||
"message": "交易確認 時間 $2."
|
||
},
|
||
"transactionCreated": {
|
||
"message": "交易產生 數量 $1 時間 $2"
|
||
},
|
||
"transactionDropped": {
|
||
"message": "交易廢除 時間 $2"
|
||
},
|
||
"transactionError": {
|
||
"message": "交易失敗。合約代碼拋出錯誤資訊"
|
||
},
|
||
"transactionErrorNoContract": {
|
||
"message": "合約位址錯誤"
|
||
},
|
||
"transactionErrored": {
|
||
"message": "交易錯誤"
|
||
},
|
||
"transactionFee": {
|
||
"message": "交易費"
|
||
},
|
||
"transactionResubmitted": {
|
||
"message": "交易重新送出 手續費提高至 $1 時間 $2"
|
||
},
|
||
"transactionSubmitted": {
|
||
"message": "交易送出 手續費 $1 時間 $2"
|
||
},
|
||
"transactionUpdated": {
|
||
"message": "交易狀態更新 時間 $2"
|
||
},
|
||
"transfer": {
|
||
"message": "交易"
|
||
},
|
||
"transferBetweenAccounts": {
|
||
"message": "在我的帳號間轉帳"
|
||
},
|
||
"transferFrom": {
|
||
"message": "交易來源"
|
||
},
|
||
"troubleTokenBalances": {
|
||
"message": "無法取得代幣餘額。您k可以到這裡查看 ",
|
||
"description": "Followed by a link (here) to view token balances"
|
||
},
|
||
"tryAgain": {
|
||
"message": "再試一次"
|
||
},
|
||
"typePassword": {
|
||
"message": "請輸入密碼"
|
||
},
|
||
"unapproved": {
|
||
"message": "未批准"
|
||
},
|
||
"units": {
|
||
"message": "單位"
|
||
},
|
||
"unknown": {
|
||
"message": "未知"
|
||
},
|
||
"unknownCameraError": {
|
||
"message": "無法存取攝影鏡頭。請再試一次..."
|
||
},
|
||
"unknownCameraErrorTitle": {
|
||
"message": "糟糕!出了些問題...."
|
||
},
|
||
"unknownNetwork": {
|
||
"message": "未知私有網路"
|
||
},
|
||
"unknownQrCode": {
|
||
"message": "錯誤:無法辨識 QR code"
|
||
},
|
||
"unlock": {
|
||
"message": "解鎖"
|
||
},
|
||
"unlockMessage": {
|
||
"message": "去中心化網路世界等待著您"
|
||
},
|
||
"updatedWithDate": {
|
||
"message": "更新時間 $1"
|
||
},
|
||
"urlErrorMsg": {
|
||
"message": "URIs 需要加入適當的 HTTP/HTTPS 前綴字"
|
||
},
|
||
"usedByClients": {
|
||
"message": "可用於各種不同的客戶端"
|
||
},
|
||
"userName": {
|
||
"message": "使用者名稱"
|
||
},
|
||
"viewAccount": {
|
||
"message": "查看帳戶"
|
||
},
|
||
"viewContact": {
|
||
"message": "觀看聯絡資訊"
|
||
},
|
||
"viewOnCustomBlockExplorer": {
|
||
"message": "在 $1 瀏覽"
|
||
},
|
||
"viewOnEtherscan": {
|
||
"message": "在 Etherscan 上瀏覽"
|
||
},
|
||
"viewinExplorer": {
|
||
"message": "在 Explorer 上瀏覽"
|
||
},
|
||
"visitWebSite": {
|
||
"message": "造訪我們的網站"
|
||
},
|
||
"walletSeed": {
|
||
"message": "助憶詞"
|
||
},
|
||
"welcome": {
|
||
"message": "歡迎來到 MetaMask"
|
||
},
|
||
"welcomeBack": {
|
||
"message": "歡迎回來!"
|
||
},
|
||
"writePhrase": {
|
||
"message": "將助憶詞寫在紙上,並保存在安全的場所。若想要更安全,將助憶詞分別寫在不同紙張上並存放在不同的地方。"
|
||
},
|
||
"yesLetsTry": {
|
||
"message": "了解,試試看"
|
||
},
|
||
"youNeedToAllowCameraAccess": {
|
||
"message": "需要准許存取攝影鏡頭才能啟用此功能"
|
||
},
|
||
"youSign": {
|
||
"message": "正在簽署"
|
||
},
|
||
"yourPrivateSeedPhrase": {
|
||
"message": "您的助憶詞"
|
||
},
|
||
"zeroGasPriceOnSpeedUpError": {
|
||
"message": "加速的 Gas 價格為 0"
|
||
}
|
||
}
|