Giter Club home page Giter Club logo

blockchain-wallet-v4-frontend's Introduction

License: AGPL v3 js-standard-style code style: prettier Codechecks

Blockchain.com Wallet

Be Your Own Bank at login.blockchain.com. Please contact support if you have any issues using the wallet.

About

This repo contains the three codebases/packages listed below.

Packages

Local Development

  1. Ensure Node version >= 14.16 is installed. Using NVM is recommended.
  2. From the project root, run the following command to install dependencies: ./setup.sh.
  3. Start the application in development mode: yarn start
  4. The frontend application will now be accessible via browser at localhost:8080

If you require the application to run locally over HTTPS, follow the instructions here. You can disable SSL by setting the DISABLE_SSL env param to true with any start command. (e.g. DISABLE_SSL=true yarn start:staging)

Windows Support

To ensure proper support for Windows, please take the following actions before running the above setup instructions.

  1. Open a Powershell window with rights elevated to an Administrator.
  2. Run npm install -g windows-build-tools. This will install Python 2.7 and Visual C++ Build Tools which are required to compile some native Node modules.
  3. Ensure Python has been added to your environment variables by opening a cmd prompt and typing python. If you get a CommandNotFoundException message, add the folder %USERPROFILE%\.windows-build-tools\python27 to your environment variables.

Tips & Useful Commands

  1. To completely remove all dependencies and artifacts run yarn clean
  2. To add/remove an NPM package run yarn add or yarn remove in the package folder. After installing or uninstalling a NPM package, run yarn in the root folder to re-init the project
  3. All development specific dependencies should be installed as a dev-dependency in the top level package.json via yarn i --save-dev [package-name]
  4. All application specific dependencies should be installed in the specific packages package.json via yarn i --save [package-name]

Running Environments Locally

The frontend application can be ran locally with different build configurations found in config/env. The following commands are available:

  • yarn start Runs the application with the development.js configuration file
  • yarn start:dev Runs the application with the development.js configuration file
  • yarn start:staging Runs the application with the staging.js configuration file
  • yarn start:prod Runs the application with the production.js configuration file
  • yarn run:prod Runs the application mimicking the production environment entirely (i.e. code is bundled and minified, HMR is disabled, Express server is used (./server.js) and the production.js configuration file is loaded)

Notes:

  • Developers will need to manually create the development.js and staging.js files
  • Custom application runtimes are possible by modifying the corresponding environment files found in the config/env folder

Useful Chrome Extensions

Release Process

Prerequisites

To be able to create a release follow these steps starting with "Obtain a personal access token...": https://github.com/release-it/release-it#github-releases

GITHUB_TOKEN should be saved as RELEASE_IT_TOKEN instead in your bash_profile or wherever you keep env variables

You'll need git changelog to generate the history since the last release:

Release Steps

  1. From the tip of the development branch, run yarn release
  2. Answer the questions prompted via CLI, accepting the defaults for each
  3. Once completed, this will create a new tag which will trigger a builds
  4. Once builds have finished, deploy the images to desired environments
  5. Test and verify the latest changes in desired environments
  6. Create PR to merge the HEAD of development into master
  7. Merge PR to master so that master always reflects what is currently in production

Code Quality

  • yarn vet Runs Prettier, lint JS, lint CSS and finally all unit tests

Linting

We follow the rules outlined by the Javascript Standard Style as well as a few React specific rules.

Code linting is handled by ESLint. The following commands are available:

These IDE plugins/packages assist with complying with these lint rules while developing:

Prettier

We follow all standard rules that are provided by Prettier. The following commands are available:

It is recommended to setup a Prettier plugin for your IDE plugins/packages that will automatically prettify your files on save.

When installing the plugin for VS Code make sure you are on v3.7.0 or lower

Unit Tests

Testing is done via Jest and Enzyme.

Running Tests

Note: if you see errors that Jest cannot resolve package imports, you may need to run yarn test before testing specific packages (eg, yarn test:frontend)

Running Tests via Watch

Debugging Tests

To enable debugging for unit tests via the Chrome browser, run the following commands:

After running one of the above commands, Node will wait for a debugger to attach before starting the tests. To attach, simply open your browser and go to chrome://inspect and click on "Open Dedicated DevTools for Node", which will give you a list of available node instances you can connect to. Click on the address displayed in the terminal (usually localhost:9229) and you will be able to debug tests using Chrome's DevTools.

Updating Snapshot Tests

We are snapshot testing UI some components. Here are the commands to update them when necessary:

Code Coverage

To generate code coverage reports via Istanbul, the following commands are available:

Depending upon which coverage report was ran, the results can be found in the following directories:

  • coverage/index.html
  • coverage/blockchain-info-components/index.html
  • coverage/blockchain-wallet-v4/index.html
  • coverage/blockchain-wallet-v4-frontend/index.html Simply open the index.html file in your browser to view.

TypeScript

TypeScript is supported and should be used when adding new code. It's also recommended to replace legacy JS with TS when time allows.

TS Coverage

We are using Codechecks and Typecov for coverage reporting. Coverage is automatically analyzed for PRs and the following command is available.

  • yarn codechecks

Code Bundle Analysis/Reports

To visualize and interact with the tree of the production code bundles files:

  • yarn analyze Once completed, a browser will automatically open with the results.

Storybook

Storybook is used by the blockchain-info-components and blockchain-wallet-v4-frontend packages to interactively view, develop and test components. The following commands are available:

  • storybook:build-wallet: Builds the static storybook assets for wallet specific components (if base components is running locally, storybook will put wallet and base components into the same storybook UI)
  • storybook:build-base: Builds the static storybook assets for base shared components
  • storybook:serve-wallet Builds storybook assets and then serves them locally at localhost:6006
  • storybook:serve-base Builds storybook assets and then serves them locally at localhost:6007
  • storybook:deploy-wallet Builds storybook assets and then serves them to github pages. You will probably need to run cd ./packages/blockchain-info-components && git remote add origin [email protected]:blockchain/blockchain-wallet-v4-frontend.git first.
  • storybook:deploy-base Builds storybook assets and then serves them to github pages. You will probably need to run cd ./packages/blockchain-info-components && git remote add origin [email protected]:blockchain/blockchain-wallet-v4-frontend.git first.

If the deploy begins to fail, deleting the static build file before redeploy will likely help.

Contribute

Please review to the Wiki

Security

Security issues can be reported to us in the following venues:

blockchain-wallet-v4-frontend's People

Contributors

awiermanncasas-bc avatar blockdylanb avatar cmonti-bc avatar dkremniov-bc avatar fgonzalez-bc avatar hcondori-bc avatar jjblockchain avatar jmichel-bc avatar jstettner avatar jtormey avatar julianromero-bc avatar lokalise-bot avatar lyncee59 avatar lzhuor avatar milan-bc avatar mperdomo-bc avatar mvashchuk-bc avatar pedroapfilho avatar plondon avatar prwelber avatar rsteubs-bc avatar salomegeo avatar schnogz avatar seanblockchain avatar sha49 avatar sixtedemaupeou avatar tbuchann avatar theleob avatar thore3 avatar tony-blockchain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blockchain-wallet-v4-frontend's Issues

Loading Speed Issue And Some Suggestion

๐Ÿ› Bug Report ๐Ÿ›

Description

Hello team blockchain, i am submitting this post because i am using an account in which i have too many transactions and which takes too much time to load and some time the transaction which i sent to other doesn't showing in my sent history. also i suggest team to add search transaction option by date or by address. from first day to current date. this will be really help full.

Additional Information

Also this new website wallet look in not very good it takes too load in every thing. so must check that and fix all these bugs and add some more user friendly features in this wallet.

Thanks

ใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใ‚„githubใฎๅˆๅฟƒ่€…ใงใ™ใ€‚ๅŸบ็คŽใ‹ใ‚‰ๅ‹‰ๅผทใ™ใ‚‹ใซใฏใ€ไฝ•ใ‹ใ‚‰ใฏใ˜ใ‚ใ‚Œใฐใ„ใ„ใฎใงใ—ใ‚‡ใ†ใ‹๏ผŸ

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

Components resilience

This is a big topic, so I felt it could be nice to have a feed here to talk about it.

Context

  • Most of the data (Blockchain data, ticker, metadata...) is loaded at the moment through the login process (loginRoutineSaga) which really slow down the login process.
  • Components are looking at the state and rendering their stuff, assuming that the data is there.
  • Components are then not entirely standalone, as they are not responsible at the moment for loading all the data they require, most of time a subset of it.

Problem

  • Login process is too slow, we load metadata related to shapeShift and buySale for example, that are not required on the landing page.
  • Our components are not resilient, they rely on data that may/may not be loaded.
  • We need to keep in mind the wallet-options.json, which bring a component state: Enabled, Disabled, Info, Warning, Hidden...

Existing pattern

At the moment, after refining a few times the design pattern, here is the redux workflow:

When a component is loading, or a user clicks somewhere:

  1. An action defined in the front-end will be dispatched
  2. This action will trigger a saga in the front-end
  3. This saga may dispatch other front-end actions as a sort of unit of work (action to show a Toast, action to display a modal, action to reset a form...) and may call a saga in the core
  4. This saga in the core can:
  • call an api endpoint and save the response in the state, this data can then be accessed in the front-end using any selectors available in the core
  • call an api endpoint and directly return this data, that can then be consumed locally in the front-end saga (when we don't to persist this data)

Solution 1

  • Components should validate and load if they have all their required data.
    • The Activity List on the homepage should:
      • check if activities are fetched in the state
      • display a loader
      • fetch the activities if missing
      • hide the loader and render the list
    • The Balance Summary on the homepage should:
      • check if we have the ETH metadata
      • check if we have the ETH balances
      • check if we have the BTC balances
      • display a loader
      • fetch any of those data if missing
      • hide the loader and render the balances
    • etc...
  • Adding this validation in each component will help us to manage their "state". Typically a component may switch in disabled state, if it did not manage to fetch its data (broken endpoint for example)

Problem(s)

  • What if 2 components require the same data to be fetched ?
    • Typically, in the home page, there is a Ticker component in the Chart and the Balance summary, which are both requiring the BTC/ETH ticker data. How to manage this concurrency?

Solution 2

  • Components like Ticker and Balance summary, both requiring Ticker data, don't fetch their data themselves.
  • They expect this data to
    • be available in the state
    • be propagated down the tree by their parent component (The page component itself).

Problem(s)

  • We loose modularity, as components expect some data from their parent components (meaning that removing a component, does not remove it entirely...)
  • The page component will trigger a saga that will display the loader, call different endpoints, hide the loader.
    • We loose the 'isLoading' state of our child components as they is no way to distinguish what is currently fetching for which component
    • We can then only display a global loader, no local loaders
  • We end up having components that will rely on their parent to fetch initial data, but may also fetch their own data (Typically the TransactionList component with its endless scroll functionality, or the pagination component on the Trade History...), which is not great :(

[LN]ย Create and render routing onion objects

In order to send a payment, we need to encode the route in an onion object (so called because it reencrypts the remaining route for every hop of the route, creating layers around layers, similar to how TOR works).

The specification for this is

https://github.com/lightningnetwork/lightning-rfc/blob/master/04-onion-routing.md

More specifically, we need methods to

  • create an onion object from a route (=array of public keys)
  • read in onion object for an incoming payment

Cannot set 2FA

๐Ÿ› Bug Report ๐Ÿ›

Description

Once I scan the QR code and get the number in the box it says "failed to verify google authenticator code" even after it changed, tried many times with no luck.

Expected Behavior

Activate the 2FA

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

failed2fa

Additional Information

after i got this issues, i removed the blockchain 2fa from the google app, to my surprise the next time I tried to log in, the page asked for the 2FA number! so I had to make another wallet. I tried again with the same results.

bom dia semana passada enviei 330btc mais ate agora nao chego

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

3 child repos do not have package locks

๐Ÿ› Bug Report ๐Ÿ›

Description

No package-lock.json file is present in the following 3 sub-repos:

Our build process starts with yarn bootstrap from the parent repo directory. The parent repo directory has its own package-lock.json file, but it doesn't appear this will be respected in the 3 sub-repo's node modules during building.

Reproduction Steps

This is outside of the normal building process, but if you believe that lerna is using npm to build the sub-repos, then you can recreate this using npm install from the blockchain-info-components directory. yarn doesn't provide any warnings.

Additional Information

[LN]ย Extract public key from payment request

Currently payment_parser.js:parse expects a second argument, the public key.

However, the public key should either be extracted from one of the fields (see n field) or restored from the signature. (you can use secp256k1.restore for this operation).

With this regard, the signature/pubKey is less to check integrity on it's own, since anyone could man-in-the-middle replace both public key and signature. Rather the intention is to return the public key that was used for the signature. The client further upstream can then compare the public key with something like an address book, and tell the user who this payment is going to.

Please change the parse method accordingly and return an additional field pubKey when present.

mattika

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

Remove all usage of redux-ui in favor React Redux/Redux Saga

๐Ÿ› Bug Report (Tech Debt) ๐Ÿ›

Description

When the codebase first started out, redux-ui was used in a few spots for quick state management. Now that we have defined consistent patterns for state management via React Redux & Redux Saga, let's remove redux-ui completely in favor of the latter.

Expected Outcomes

All usages of redux-ui are eventually removed. This can be done all at once or incrementally, whichever works best.

Additional Information

redux-ui Docs: https://github.com/tonyhb/redux-ui
React Redux Docs: https://github.com/reduxjs/react-redux
Redux Saga Docs: https://github.com/redux-saga/redux-saga

ใ‚ฆใ‚ฉใƒฌใƒƒใƒˆใซๅ•้กŒใŒใ‚ใ‚Šใ€ใ“ใฎใƒšใƒผใ‚ธใซๆฎ‹้ซ˜ใชใฉใฎๆฉŸ่ƒฝใŒๅˆถ้™ใ•ใ‚Œใฆใ„ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

Sending Issue: Please why i can't transfer from my bitcoin wallet, it keeps telling me Insufficient funds when i have enough fund , please help me to resolve this

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

blockchain wallet

๐Ÿ› Bug Report ๐Ÿ›

Description

Cancellation of money sent.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Sent a transaction earlier but it has not received any confirmation yet.
However i wish to cancel it.
How can i do that?

Screenshots/Logs

image

Additional Information

Add any addition information that might be useful to our team.

my deposit on my auto bitcoin builder not recieve

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

Use POST for Export History calls

๐Ÿ› Export history is not working for users with many addresses ๐Ÿ›

Description

Because currently the wallet uses GET /v2/export-history?active=, export is not working for users with many imported addresses. Instead, similar to multiaddr, the call should be a POST, with the parameters in the body. This also improves privacy, as the URL is often logged in middleware, whereas POST bodys aren't.

As an example, this call returns 413 error message

curl  https://api.blockchain.info/bch/v2/export-history?api_code=1770d5d9-bcea-4d28-ad21-6cbd5be018a8&ct=1534417884208&currency=USD&end=16%2F08%2F2018&start=01%2F08%2F2018&active=1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr

where as this works

curl -X POST https://api.blockchain.info/bch/v2/export-history -d 'api_code=1770d5d9-bcea-4d28-ad21-6cbd5be018a8&ct=1534417884208&currency=USD&end=16%2F08%2F2018&start=01%2F08%2F2018&active=1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C1Co2L7cpwCxx97L8myFTvWZh8ZGUjK8wnr%7C'

Split webpack.config.js into webpack.config.dev.js and webpack.config.prod.js

Description

Hi team,

I realized we're using a single webpack config across build environments - as in webpack.config.js.

I propose to split it into two files - [webpack.config.dev.js and webpack.config.prod.js] then update npm tasks accordingly.

It enables us to worry less about checking isCIBuild (basically separate of concern).

Please kindly let me know your thought. I have a working copy locally. I will clean it a bit and create a PR for your reference.

Backend source

Quick question.
Is backend hosted at blockchain.[info | com] for this project open source as well?
If so can you please provide a link to it?
If no, will it be available sometime in near future, and would you recommend reverse engineering backend form here, or is there an alternative here?

Cloning project fails on Windows

๐Ÿ› Bug Report ๐Ÿ›

Description

Cloning new project, and most Git commands, on Windows machines does not work.

Expected Behavior

Git should work.

Reproduction Steps

Clone project onto a Windows machine.

Screenshots/Logs

capture

Additional Information

As per the error above, there is a file named { } in packages/blockchain-wallet-v4-frontend/src/assets/locales/ which is breaking Windows. Seems like it is not needed... @plondon

[LN] Create derivation methods

After an update to a payment channel, new signatures are exchanged and the old signatures need to be invalidated. Because you cannot forcefully delete remote memory, you need to create an incentive that the other party forgets any previous state.

This is done by having a shortcut in all transactions, which pay to me if the counterparty broadcasts some old state. This shortcut works in connection with a secret, which my counterparty gives me after negotiating the new state.

Furthermore, a derivation schema exists, such that I don't have to save all secrets, but just a subset of them.

This schema is explained here

https://github.com/lightningnetwork/lightning-rfc/blob/master/03-transactions.md#keys

and you can find implementations here

https://github.com/ElementsProject/lightning/blob/9da5abc39c29941b7b3c0889cabef85dd94cdc95/common/keyset.h
https://github.com/ElementsProject/lightning/blob/9da5abc39c29941b7b3c0889cabef85dd94cdc95/common/derive_basepoints.c

which apparently uses

https://github.com/ElementsProject/lightning/tree/9da5abc39c29941b7b3c0889cabef85dd94cdc95/ccan/ccan/crypto/shachain

(I remember shachain was the other contestant for derivation schema, vs elkrem)

and a Scala implementation here

https://github.com/ACINQ/eclair/blob/d86dd72d7847dff016d2c1138373e1f6ad14451c/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ShaChain.scala#L31

In total, we need storage (probably in the Channel state object), methods for deriving new keys for ourselves and checking keys from our counterparty.

[LN] Create payment requests

When the user wants to receive a payment over LN, we have to do a couple of things in our backend to generate an address.

Assume an action is emitted, containing

  • desired amount the user expects
  • description of the payment
  • timeout until when that payment is to be received
  • fallback address for on-chain payment

In the backend, we need to

  • generate a 32B(?) secret that is used as preimage for the payment hash
  • store all this information together with the payment hash in some internal database
  • generate the bech32 lightning address as described in BOLT 11
  • return index of this new payment request (I guess thats how we communicate with the frontend?)

Does blockchain.com have a private mining pool

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

ใƒ–ใƒญใƒƒใ‚ฏใƒใ‚งใƒผใƒณใ‚ฆใ‚ฉใƒฌใƒƒใƒˆใฎ่ฒกๅธƒใŒใ€ไป–ใฎใ‚ฆใ‚ฉใƒฌใƒƒใƒˆใซ้€้‡‘ใงใใชใ„ใ€‚

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

Remove `Wallet.getSpendableActiveAddresses` related code

Description

It seems no more getSpendableActiveAddresses definition in Wallet type. Shall we remove its related code?

For example:

  • In redux/payment/btc/saga.js
const calculateFrom = function*(origin, network) {
   ...
    // No origin => assume origin = all the legacy addresses (non - watchOnly)
    if (isNil(origin) || origin === '') {
      let spendableActiveAddresses = yield select(
        S.wallet.getSpendableActiveAddresses
      )
      return fromLegacyList(spendableActiveAddresses)
    }
   ...
  }
  • In selector(s):
export const getSpendableActiveAddresses = compose(
  Wallet.getSpendableActiveAddresses,
  getWallet
)

Instead of showing balance it's showing me error in my wallet.

๐Ÿ› Bug Report ๐Ÿ›

Description

my fund is not showing in my wallet showing 0 balance in account while i have good balance.
http://prntscr.com/kwehsb

See this screenshot, when i click on wallets & Addresses button it's not showing any record it's showing error why? where my all record gone? i want back that all record.

http://prntscr.com/kwt56y

Me and my friends get the same issue in 1 week. i thing new design of blockchain.com wallet is not capable for unlimited transactions, once we have too much daily transaction it's show this error in account.

Expected Behavior

While if any wallet have upto lac wallet addresses infect unlimited wallet address, wallet should be load in speed. but current version of blockchain is not ready for this work,

Reproduction Steps

I Think so that, blockchain should revert there design to previous version until all these issues resolve and new fast and good capacity design create,

Team should look into this issue asap!

funds lost when logged into web wallet.

When I logged into Web Wallet from my I phone, I lost the $50.00 I had on my online account. I'm a new user, I'm not sure if this is clear, but the funds just disappeared when I scanned the QR code from my phone with my computer camera.

Expected Behavior

I expected to just see my funds in my I phone wallet.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

Some functions are disabled

There some problems with Security Centre.

  1. I cannot change 2FA type from SMS to Google Auth. It sais "EROR to update 2FA".
  2. I cannot activate Action log. The same "EROR to update ..."
    And I bielive rest of options will response the same. I was lucky to manage them from mobile app.

So, there is a problem. A big one with security setings. How and WHEN are u going to fix it?

Lost sub-addresses

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

I created 20 Bitcoin Wallet, and 15 sub-bitcoin addresses on each wallet total of 300 bitcoin address, after I week I lost more than half of the sub-bitcoin address, how to retrieve this?

thnx,

RECEBI UM VALOR DE 0,005715BT no dia 08/09/2018 as 12:38Pm e no dia seguinte esse mesmo valor foi enviada para o end: 1HoAHFhq42Z8CubsK6PNVCQKGeFc3Bju8o as 6:24Am. Mas nรฃo reconheรงo esse envio e nem recebi notificaรงรฃo nenhuma. preciso resolver fico no aguardo.

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.
1btc

backend source

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

The following wallet address is a scam through a bot in "Telegram" called @BTC_FAUCET_bot

3AadAUCnbHuj3KYXZ5CJqNknnYqvKUFG1Z

Do not send them any money to "upgrade" any part of your service account status. I have confirmation of receipt of funds, but no action taken on their end. Even the Telegram app is now posting inside that bots chat after each message that it has been reported as a scam, and furthermore there is no way to contact the developers. I just wouldn't want anyone else to fall victim to this same issue.

https://drive.google.com/file/d/10KJ8vtn-wYlX74bLuzlkdfUC8c0zr3T0/view?usp=drivesdk

Buttons

Has anyone looked into buttons yet? Do you think we could move buttons.scss to a styled component instead? I can look into that.

Hello. Explain to me please where my bitcoins from the purse with the points of protection included are gone?

๐Ÿ› Bug Report ๐Ÿ›

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.
Hello. Explain to me please where my bitcoins from the purse with the points of protection included are gone?

MultiBit my bitcoin isnt sending at all

So, 3 weeks ago i sent all the bitcoin on my multibit account to blockchain, yet the transaction has still not gone through and is still stuck on a triangle (indicating it has been seen by 0 peers). How can I get my bitcoin back? I know for a fact that i haven't put in an incorrect bitcoin address so that is not the issue.

I have read elsewhere on the internet that I can get my bitcoin back if I export my private keys yet I am getting very confused on how this works..

All the best, Matt

Add Support for Testnet

๐Ÿ› Bug Report ๐Ÿ›

Description

Hi team, I'm trying to connect to testnet from localhost:8080. However, I am getting below error during login:

hdnode.js:78 Uncaught Error: Invalid network version
    at Function.HDNode.fromBase58 (hdnode.js:78)
    at accountCons (HDAccount.js:124)
    at fromJS (HDAccount.js:130)
    at args.(anonymous function) (webpack:////Users/zhuoranli/IdeaProjects/public/blockchain-wallet-v4-frontend/node_modules/ramda/es/addIndex.js?:40:27)
    at _map (_map.js:8)
    at map (map.js:64)
    at eval (_dispatchable.js:42)
    at f2 (_curry2.js:30)
    at eval (addIndex.js:44)
    at eval (_curryN.js:38)

The development.js config is :

module.exports = {
  ROOT_URL: 'https://testnet.blockchain.info',
  API_DOMAIN: 'https://api-testnet.blockchain.info',
  WEB_SOCKET_URL: 'wss://ws.blockchain.info/testnet3/inv',
  WALLET_HELPER_DOMAIN: 'https://wallet-helper.blockchain.info'
}

Could you please advise what can I do to connect to testnet via local environment? Do you mind providing a guide on how could developers start using testnet for development in local?

Thank you and greatly appreciate it!

Expected Behavior

I should be able to login

Reproduction Steps

yarn start:dev with above development.js

Screenshots/Logs

image

Additional Information

NIL

Remove use of "unsafe" component lifecycle methods

๐Ÿ› Bug Report (Tech Debt) ๐Ÿ›

Description

React 16.3 marked the following component lifecycle methods as "unsafe":

  • componentWillMount
  • componentWillRecieveProps
  • componentWillUpdate

React 17 will depreciate these methods fully. We need to remove the usages of these throughout the codebase sooner or later. We can do this all at once or little by little, whatever works best.

Expectations

All usages of the unsafe methods will be removed.

Additional Information

Migration Information: https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html
React Strict Mode: https://reactjs.org/docs/strict-mode.html

Storing Credentials & Internal URLs

Would be nice to get some insight into storing the API keys and the URLs for the iOS application. I am currently thinking about either adding the files to .gitignore, storing them in a .env file, or using something like git-crypt / git-secret to encrypt them inside of the repo.

Requirements

  • Private API keys and internal URLs should never be exposed to the public.
  • Developers should be able to effortlessly import / use the keys during development.

Let me know your thoughts!

Remove eslint in lint-staged on JSON files

๐Ÿ› Bug Report ๐Ÿ›

Description

lint-staged should not apply eslint on json files as eslint doesn't support parsing json as of now. It causes errors when staged files contain json (e.g. locales)

Expected Behavior

Should not apply eslint on json

Reproduction Steps

Stage some json files and trigger pre-commit hook

Complete Update Dropdown Work

๐Ÿ› Bug Report ๐Ÿ›

Description

Dropdowns are not ideal to interact with

Screenshots/Logs

screen shot 2018-08-03 at 17 13 34

Additional Information

Ongoing work here: #837

Figure out react-highcharts csp

๐Ÿ› Bug Report ๐Ÿ›

Description

Currently the wallet displays multiple errors when react-highcharts tries to inject a style due to our strict csp, this should be cleaner. Consider looking into the r-h library and seeing if we can add webpack_nonce support, if not see issue below.

Expected Behavior

No console warnings/errors

Reproduction Steps

Create wallet and open the console

Additional Information

highcharts/highcharts#6884

Windows Support

๐Ÿ› Bug Report ๐Ÿ›

Description

Unable to run the application locally on Windows machines. Certain commands will always fail on Windows due to the usage of rm -rf ...[cmd]

Expected Behavior

Developers should be able to run and develop the application using Windows. README.md should updated with setup instructions for Windows.

Reproduction Steps

  • Run yarn clean, yarn coverage commands and they will always fail
  • yarn bootstrap command will likely fail unless proper steps are taken. These steps should be added to README.md

Additional Information

Update to use rimraf package instead of rm -rf ... will fix errors.

lerna booststrap

When doing a fresh clone and running:

npm i
lerna bootstrap

The first time you run lerna it fails. You have to run it a second time.

46A61

https://play.google.com/store/apps/details?id=piuk.blockchain.android

Description

Provide a clear and concise description of the issue.

Expected Behavior

Explain what you would expect to happen.

Reproduction Steps

Enter detailed steps to reproduce the issue.

Screenshots/Logs

If available, please provide any relevant screenshots or logs.

Additional Information

Add any addition information that might be useful to our team.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.