Code Monkey home page Code Monkey logo

airgap-it / airgap-wallet Goto Github PK

View Code? Open in Web Editor NEW
428.0 22.0 116.0 100.72 MB

The AirGap Wallet is installed on an everyday smartphone. This app has only access to public information.

License: MIT License

Dockerfile 0.64% JavaScript 2.31% TypeScript 69.97% HTML 14.24% Java 0.12% Kotlin 4.40% C 0.01% Swift 5.87% Objective-C 0.14% Ruby 0.12% SCSS 2.19%
wallet cryptocurrency tezos aeternity cosmos ethereum bitcoin crypto-wallet airgap polkadot kusama

airgap-wallet's Introduction

AirGap Wallet

Self custody made simple and secure. Protect your crypto and store your private keys offline.

AirGap is a crypto wallet system that lets you secure cypto assets with one secret on an offline device. The AirGap Vault application is installed on a dedicated device that has no connection to any network, thus it is air gapped. The AirGap Wallet is installed on your everyday smartphone.

Description

AirGap Wallet has an overview of all accounts with their respective balances and transaction histories. AirGap Wallet never touches your secret data stored in the AirGap Vault. It is responsible for creating and broadcasting transactions. The prepared transaction is sent to the secure Vault over QR codes, where it is securely signed and sent back.

AirGap Wallet is a hybrid application (using the same codebase for Android and iOS). Created using AirGap's protocol agnostic airgap-coin-lib library to interact with different protocols and our own secure storage implementation.

Download

Features

  • Portfolio overview of accounts synced from AirGap Vault
  • Communication with the Vault application over QR codes if installed on a second device or app switching if installed on the same device
  • Create transactions for all supported currencies like Aeternity, Bitcoin, Ethereum, Tezos, Cosmos, Kusama, Polkadot, Groestlcoin etc.
  • Broadcast signed transactions
  • Transaction history for each account

Build

First follow the steps below to install the dependencies:

$ npm install -g @capacitor/cli
$ npm install

Run locally in browser:

$ npm run start

Build and open native project

$ npm run build
$ npx cap sync

You can now open the native iOS or Android projects in XCode or Android Studio respectively.

$ npx cap open ios
$ npx cap open android

Testing

To run the unit tests:

$ npm test

Disclosing Security Vulnerabilities

If you discover a security vulnerability within this application, please send an e-mail to [email protected]. All security vulnerabilities will be promptly addressed.

Contributing

Before integrating a new feature, please quickly reach out to us in an issue so we can discuss and coordinate the change.

  • If you find any bugs, submit an issue or open pull-request.
  • If you want to integrate a new blockchain, please read the contributing guidelines in the airgap-coin-lib project.
  • Engage with other users and developers on the AirGap Discord.

Related Projects

airgap-wallet's People

Contributors

acharl avatar andreasgassmann avatar bb4l avatar dschoeni avatar godenzim avatar huwaireb avatar jsamol avatar lukeisontheroad avatar miguelsalesv avatar mlaeng avatar pascuin avatar pegahbit avatar reboxer avatar saeeddehshiri 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

airgap-wallet's Issues

Add Dark Mode

We should add a dark mode to our app.

This feature was requested by a user in our telegram group.

NPM install error

npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\web3-core-requestmanager-62408819\package.json'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\web3-core-requestmanager-62408819\README.md'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\web3-core-requestmanager-62408819\package-lock.json'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\web3-core-7b19a772\src\extend.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\web3-core-7b19a772\src\index.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular-devkit\schematics-74b8b469\src\workflow\base.d.ts'npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular-devkit\schematics-74b8b469\src\workflow\base.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\css\index.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\html\index.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\javascript\index.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\css\options.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\html\options.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\javascript\options.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\loader\node-main.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-1563a874.system.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\css\tokenizer.js'
npm WARN tar ENOENT: no such file or directory, lstat 'c:\ionic\airgap-wallet-master\node_modules.staging\cordova-android-42eb2251\bin\templates\project'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-1b8bca4c.system.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\html\tokenizer.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-1fce0be8.system.js'
npm WARN tar ENOENT: no such file or directory, lstat 'c:\ionic\airgap-wallet-master\node_modules.staging\cordova-android-42eb2251\bin'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-3ea8955c.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\src\javascript\tokenizer.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-4e5c40c0.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-4ey7zsnj.entry.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\js-beautify-64b0d803\js\lib\unpackers\urlencode_unpacker.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-549b16dd.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-7e664492.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-860d8016.js'
npm WARN tar ENOENT: no such file or directory, lstat 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\forms-c3a71c40\esm5\src\directives'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-9725f31b.system.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-aaf72d6b.system.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-c604bd58.system.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\p-f5zck73c.system.entry.js'npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\collection\icon\request.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\animations-50dfe3a2\esm2015\browser\src\render\css_keyframes\css_keyframes_driver.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\animations-50dfe3a2\esm2015\browser\src\render\css_keyframes\css_keyframes_player.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\animations-50dfe3a2\esm2015\browser\src\render\css_keyframes\direct_style_player.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\animations-50dfe3a2\esm2015\browser\src\render\css_keyframes\element_animation_style_handler.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\animations-50dfe3a2\esm2015\browser\src\render\shared.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\esm\legacy\shadow-css-984bac74-549b16dd.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\esm\shadow-css-984bac74-549b16dd.js'npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\cjs\shadow-css-984bac74-b2177096.js'npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\esm\polyfills\system.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\collection\icon\utils.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\collection\icon\validate.js'
npm WARN tar ENOENT: no such file or directory, lstat 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\compiler-cli-4b60e70e\src\ngtsc\metadata\src'
npm WARN tar ENOENT: no such file or directory, lstat 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\compiler-cli-4b60e70e\src\ngtsc\metadata'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\collection\collection-manifest.json'npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\ionicons-edd3b4c2\dist\ionicons\data.json'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\platform-browser-c83c5304\esm5\src\security\dom_sanitization_service.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\http.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\index.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\public_api.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\verify\lines.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\verify\lines.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\verify\lintError.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\verify\lintError.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\verify\parse.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\verify\parse.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\formatter\abstractFormatter.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\formatter\abstractFormatter.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\formatter\formatter.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\formatter\formatter.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\abstractRule.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\abstractRule.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\optionallyTypedRule.d.ts'npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\optionallyTypedRule.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\rule.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\rule.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\typedRule.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\rule\typedRule.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\blockScopeAwareRuleWalker.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\blockScopeAwareRuleWalker.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\index.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\index.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\programAwareRuleWalker.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\testing\src\api.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\programAwareRuleWalker.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\testing\src\backend.js' npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\ruleWalker.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\testing\src\module.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\ruleWalker.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\scopeAwareRuleWalker.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\testing\src\request.js' npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\scopeAwareRuleWalker.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\http\testing\testing.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\syntaxWalker.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\browserify-400d9850\test\field\node_modules\z-object\browser.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\index.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\browserify-400d9850\test\field\node_modules\z-object\main.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@angular\common-65ef8156\esm5\public_api.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\syntaxWalker.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\browserify-400d9850\test\field\node_modules\z-object\package.json'
npm WARN tar ENOENT: no such file or directory, lstat 'c:\ionic\airgap-wallet-master\node_modules.staging\browserify-400d9850\test'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\walkContext.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\walkContext.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\walker.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\language\walker\walker.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\arrowReturnShorthand.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\arrowReturnShorthand.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\banTsIgnore.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\banTsIgnore.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\className.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\className.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\curly.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\curly.examples.js' npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\functionConstructor.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\functionConstructor.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noAny.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noAny.examples.js' npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noEmptyInterface.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noEmptyInterface.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noObjectLiteralTypeAssertion.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noObjectLiteralTypeAssertion.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noSparseArrays.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noSparseArrays.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noStringThrowRule.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noStringThrowRule.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noUnnecessaryCallbackWrapper.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noUnnecessaryCallbackWrapper.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\airgap-coin-lib-90db9f4a\src\serializer\validators\validators.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noUseBeforeDeclare.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\noUseBeforeDeclare.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\objectLiteralSortKeys.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\objectLiteralSortKeys.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\oneVariablePerDeclaration.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\oneVariablePerDeclaration.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\onlyArrowFunctions.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\onlyArrowFunctions.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\preferTemplate.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\preferTemplate.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\preferWhile.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\preferWhile.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\radix.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\radix.examples.js' npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\staticThis.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\staticThis.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\switchDefault.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\switchDefault.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\typedef.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@ionic\core-ec1e327a\dist\collection\components\content\content-interface.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\typedef.examples.js'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@ionic\core-ec1e327a\dist\collection\components\content\content.css'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging\tslint-605f49bc\lib\rules\code-examples\unnecessaryElse.examples.d.ts'
npm WARN tar ENOENT: no such file or directory, open 'c:\ionic\airgap-wallet-master\node_modules.staging@ionic\core-ec1e327a\dist\collection\components\content\content.js'

Transaction failed

Just tried (twice) to do a transaction, but it ended with an error saying:
Transaction broadcasting failed: Error: Failed to check for transaction receipt: {}

Set Receive Amount Request

Please add the ability to be able to receive the amount requested. When you go to receive for any crypto wallet, you can optionally enter in how much in that cryptocurrency or in fiat currency (which will be converted to crypto) you want to recieve. By filling in the requested amount it will update the QR code and address text which can be copied with the amount so when someone pastes the amount in their wallet or scans the QR code, the amount to pay will be automatically filled into the field and all that is needed by the user is to verify the amount and approve the transaction.

This is how it will look without an amount set
bitcoin:12dRugNcdxK39288NjcDV4GX7rMsKCGn6B

This is how it will look with an amount set to 0.25 BTC

bitcoin:12dRugNcdxK39288NjcDV4GX7rMsKCGn6B?amount=0.25

How to add the nonce to cancel a pending transaction ?

I received some ETH from Hiveon and then I tried to send it to my exchange wallet. On AirGap Wallet when I set up the transaction I selected slow & cheap for the Fee (ETH) without knowing that I had to check the congestion status of the network before to be sure that the gas fee would be enough.

It's been more than 24 hours. I have been searching online to know how to solve that and apparently I can cancel the pending transaction by sending to myself 0 ETH with the same nonce used on the pending transaction. The problem I have is that I am not able to find a way to add a nonce on the transaction on AirGap Wallet.

I have been reading that some wallets' interfaces provide an advanced setting where I can set a higher gas fee and change the transaction Nonce. Maybe I don't know how to do it on AirGap Wallet app but it seems it's not possible to do it ?

Thank you for you help.

SHA256 mismatch for airgap-wallet-3.6.3.dmg

Current result:
353cc23a52d5e66faa7832f33c751c9bbae1c6216b1e7ada259179eaf12d6dbb

Should be:
1b323350a0e651787ce39064d6dad7a5da7218e29bec85b498fcb78d563eaa9f

current .apk and airgap-wallet-3.5.8.dmg do verify properly.

Please add a Back Button

In AirGap Wallet (iOS), there's no way to back out of the "Add Coins" screen. If I decide I don't want to add a coin, the only way back to the main screen is to shut down the app completely and go back in.

Broken FA2 transfer transaction

I'm trying to facilitate a standard FA2 transfer operation.
However, whenever the transaction contains more than two token transfers at once, the app breaks completely.
This is the payload I'm trying to send:

[
   {
      "from_":"tz1PqooZUtCQqP539PmMzUWHtaUX6EQtFY5S",
      "txs":[
         {
            "to_":"tz2MRhfAKUyNZDKH8XBzmXyCwd2h5ySbgZJJ",
            "token_id":"53220",
            "amount":"1"
         },
         {
            "to_":"tz1fhd4k1jSJRRcNVbkMwVzkKEhX3kzApsfk",
            "token_id":"53220",
            "amount":"1"
         },
         {
            "to_":"tz1aVgxdSRcHZZK9BSmEPHjMA6eM7dsiboN5",
            "token_id":"53220",
            "amount":"1"
         }
      ]
   }
]

And this is what the app does after trying to fetch the confirmation details:
image

Transaction Notes

To add notes to transactions to know what the transaction was for, is a useful feature and not popular in cryptocurrency wallet apps. You can add a message to a transaction, however this message is not private at all as it will be immutable on the blockchain forever and in many cases with non-transparent cryptos, visible to all.

By having a offline transaction note feature, you can add a note to any transaction with any important details and keep the data safe on your device.

How it works

Lets say this is your a transaction ID of a Bitcoin transaction you send or recieved.

d3ad39fa52a89997ac7381c95eeffeaf40b66af7a57e9eba144be0a175a12b11

In the apps setting you will choose a directory on the device on where transaction note files will be stored. This directory will save the transaction notes for each wallet and the app will read this directory for files to determine if you have transaction notes set for a certain transaction ID.

A folder will be designated for saving TXT files which will look like the example below. Each file will be named after the transaction ID of a crypto transaction you send or recieved.

/Wallet 1/Transaction Notes/Bitcoin (Segwit)/d3ad39fa52a89997ac7381c95eeffeaf40b66af7a57e9eba144be0a175a12b11.txt

Cell phone bill payment for March 2020

/Wallet 3/Transaction Notes/Dash/f4459f800afe9bdbd80fa743e9388006d238422427932b140a184dd35c47990e.txt

Bought a Ledger Nano hardware wallet

Using the 12/24 word phrase and BIP39 passphrase (If there is a passphrase used), this could be used to encrypt the text files and even the text file names making it so other apps or malware cannot determine what transaction IDs you were apart of by seeing the text file names and by seeing the contents of the text files (the transaction notes themselves).

Import/Export

Simpily you can export all of the files in the "Transaction Notes" folder into a ZIP, GZIP or 7Z file. And be able to import a ZIP/GZIP/7Z file into the app to restore your sub address labels.

Third Party Backups/Syncing

Another important feature to this will be syncing/backups of the transaction note files. I strongly suggest having a directory that the user can choose where the transaction note files are stored on a device which gives the users options on how to backup the transaction note files. The user can setup their cloud storage app such as Nextcloud, FileN, etc to do automatic backups of their transaction note files. Users can also use Syncthing to backup and sync the transaction note files between devices.

With how I suggested the file structure to be setup by having a file for every single transaction, it will take up little space, and reduce conflicts when using third party syncing/backup tools compared to having a file that will store multiple trasnaction notes or all the transactions notes in one single file.

Conclusion

This feature request will make keeping track of transaction easy and private with the ability to backup and even sync transaction notes to other devices using other apps like Syncthing. AirGap Wallet is the most secure fully open source wallet on the market. Such a feature will enhance this wallet even further.

Camera freezing

Hi, I've had an issue using the wallet app on android. The camera freezes and blacks out. Can't scan any codes. The first time works fine, but after that, nope.

Watch Only Wallets

Please allow users to import cryptocurrency addresses and be able to receive crypto to an address. No sending ability required and no need to enter in the private key/word seed.

The amount of crypto shown is too high, can't make transfers

The account added to my wallet shows a ridiculously high amount of polkadot, which doesn't correspond to any transaction made nor the transaction history adds up.
Furthermore, I can't transfer the polkadot I know for sure I have. When I try to create a transaction, it says for a brief moment it's processing or preparing it, and then it just shows temporarily a dark rectangle at the bottom of the window. The account information stays the same.

I've tried uninstalling it, removing and re-adding the account and both together, with no results.

is this a known issue? How can I fix it?

Airgap wallet won't make an Aeternity transaction

I have tried ae transaction from airgap wallet to gate.io for several times but it doesn't work. It says transaction pending for some time and at the end there's no transaction. While pending blockexplorer says transaction not found.

Notifications on Airgap wallet

Please the developers should add, notifications for sent and received tokens, so users can know when tokens are sent to their wallets.

Include a memo in the transaction

I have come to realize that there is no way to include a memo when sending crypto for the coins that support it. I was attempting to send Cosmos to Binance and in order for Binance to receive the transaction it requires a specific phrase in the memo which I am unable to do using AirGap. Am I just missing how to do that and if not, is it something that you believe should be added?

License ?

Hi,

What is the license of this project? If you haven't already choose, I would suggest GNU GPL v3.

The goal of this question is to know if we should have a look at this app to include it in F-Droid, if you're ok with that.

Cannot view correct Dai balance

Cannot view correct Dai balance in AirGap wallet. Dai has been added to the wallet screen as a token but shows 0 balance. Etherscan shows correct Dai amount in the token section of wallet. I also used the exchange part of AirGap wallet to change a token to some Dai. The amount received in the exchange correctly shows in etherscan but AirGap wallet still says 0 balance. I also checked the Sai balance just in case, which shows 0. All other erc tokens in the same wallet display correctly.

Chrome extensions: blocking Google account buttons

Hi, today I encountered a new issue, which IMO is a little disturbing.

How to produce:

  1. Install and enable AirGap Chrome extension.
  2. Go to Google account settings > Security tab >
  3. Go to Manage devices (or Manage third party access)
  4. Try to click on any button (not link), it doesn't work.

So I had to disable the extension for now.

Transfer failed

Transfer failed, prompt:‘’Transaction broadcasting failed Error:Request failed with status code400‘',How to do?

No icon on appImage.

Hi! The appImage version does not show any Icon on taskbar.

Using linux mint cinnamon .

If you are using electron-builder this is what I used on one of my apps

package.json

"build": {
... etc
"linux": {
      "target": [
        {
          "target": "AppImage",
          "arch": [
            "x64",
            "arm64"
          ]
        }
      ],
      "category": "Utility",
      "icon": "src/assets/icons/png",
      "artifactName": "${productName}-${version}-${os}-${arch}.${ext}"
    },
... etc
}

where png is a folder with a lot of icon sizes:

image

Set network to Binance Smart Chain

Hi I am new to cryptocurrency so please don't blame me for my mistakes.

The ethereum fees being extremely expensive I wanted to transfer my BNB from Binance by the BSC, not knowing the concept too much, and seeing that Airgap supported the BNB I said to myself that there was no problem .

Not receiving my BNB three to four hours after completing my transaction, I began to think that I might have done something stupid.

So I realize that beyond the fact that the wallet must manage the currency BNB, it must also be able to connect to the BSC network.

So what I would like to know is if it is possible to export my private key in order to integrate it into Metamask and thus be able to take advantage of my BNB.
Or if even better it would be possible to define the BSC network in Airgap.

Thank you in advance.

Account Import Onboarding Slider is buggy

Hi guys,

So in Nokia android device, When I click on Add Coins and select a coin lets say Aeternity the Account Import Onboarding page loads up with a nice slider.

I am able to see and button and a slider at the top.

But if I click on back button and change coin and the Account Import page loads up the slider is gone and the next button does't work.

I thought this was a Vault issue but looks like just a buggy slider.

Account grouping?

It would be nice to be able to group accounts in the wallet by secret, similar to the vault app.

Hide Balances

Please add an option to show/hide balances for additional privacy.

  • Hide balances by default (When app opens, balances are hidden)
  • Toggle show/hide balances
  • Password to show balances

Airgap wallet doesn't let me make transactions

When I try to withdraw the full amount of a crypto I have from airgap, it says "not enough balance".

Additionally, when I press the "max" button when creating a transaction, the value it fills is 1 unit smaller than the amount I have, and even then it shows "not enough balance".

EDIT: If I put less than this wrong "max" value airgap autofills, it lets me transfer, but I can't transfer the amount of that crypto that remains in airgap afterwards.

Pull to Reload accounts

Theses days of crypto volatility I find myself opening airgap often.

Unfortunately is not clear to me when is the data (crypto to USD) updated.

I find myself intuitively pulling the accounts screen down to trigger a reload, which seems to be not implemented. It would be great to have it.

as a workaround and close and open the app again to trigger a reload.

Feature Request: Watch Only Wallets

Please allow users to import cryptocurrency addresses and be able to receive crypto to an address. No sending ability required and no need to enter in the private key/word seed.

Lost Phrase

Hi, I am using AirGap wallet. I lost my recovery words however I am still signed in to the app therefore I can see my current balance, but cannot do anything with it since it needs AirGap Vault installed as well to do anything with my crypto. Are they lost forever.. can my words be changed ?? Please help !

Multiple DOT validators

I know you are planning support for multiple DOT validators, but is there any workaround which we can use to nominate to multiple validators in the meantime?

Is airgap-wallet:// send page deep link supported?

Hello Devs.
I am looking for a scheme to open airgrap-wallet at sending coins page with prefill of transaction details such as an address, amount, etc.
Is there something like

airgrap-wallet://send?coin=AE&address=ak_2DDLbYBhHcuAzNg5Un853NRbUr8JVjZeMc6mTUpwmiVzA4ic6X&amount=1

Thank you for your help!

User Support?

Could you please add some user support. Discord would be nice.

While I have your attention:
I have a single coin with a balance. When I click Exchange it tells me "you need at least two currencies in AirGap". I've added other currencies, with 0 balance (via Vault on same device), but the Exchange is still telling me I need 2 currencies. Does the app require a balance on two currencies, and if so, does the balance always need to be in the "target" currency?

Example: AE -> BTC, does BTC balance need to be >0 to make this exchange?
Conversely, say I have AE and BTC balances and I want to do AE -> ETH, or BTC -> ETH. Will the app require I already have a ETH balance > 0 to exchange?

IMG_0311 1

IMG_0312 1

Out of memory running using npm run start

This is master (git cloned).

npm run start

> [email protected] start
> ng serve

⠦ Generating browser application bundles (phase: additional asset processing)...
<--- Last few GCs --->

[25262:0x40b59c0]    71678 ms: Mark-sweep 2030.7 (2078.7) -> 2017.1 (2078.9) MB, 675.0 / 0.1 ms  (average mu = 0.205, current mu = 0.107) allocation failure scavenge might not succeed
[25262:0x40b59c0]    72479 ms: Mark-sweep 2031.0 (2078.9) -> 2017.1 (2078.9) MB, 724.0 / 0.1 ms  (average mu = 0.155, current mu = 0.096) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x1374fd9]
Security context: 0x18ae5e8c08a1 <JSObject>
    1: keys [0x18ae5e8c1561](this=0x18ae5e8c0939 <JSFunction Object (sfi = 0x3bde12d87d69)>,0x3878fb736a99 <Object map = 0x3ce4b3a80431>)
    2: SourceNode_walkSourceContents [0x15c356a81451] [/home/craig/projects/cryptoStuff/airgap-wallet/node_modules/webpack-sources/node_modules/source-map/lib/source-node.js:~301] [pc=0x30df0ffa6942](this=0x0c032ea27801 <Source...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Writing Node.js report to file: report.20210402.012133.25262.0.001.json
Node.js report completed
 1: 0x9da7c0 node::Abort() [ng serve]
 2: 0x9db976 node::OnFatalError(char const*, char const*) [ng serve]
 3: 0xb39f1e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [ng serve]
 4: 0xb3a299 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [ng serve]
 5: 0xce5635  [ng serve]
 6: 0xce5cc6 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [ng serve]
 7: 0xcf1b5a v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [ng serve]
 8: 0xcf2a65 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [ng serve]
 9: 0xcf5478 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [ng serve]
10: 0xcbbda7 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType) [ng serve]
11: 0xff1e0b v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [ng serve]
12: 0x1374fd9  [ng serve]
Aborted (core dumped)

Support Other Fiat Currencies

It would be nice to be able to see the value of the airgap accounts portfolio in other currencies than USD, such as EUR, SEK, NOK, etc.

Polkadot Existential Deposit

Hi!
I have little more than 1 DOT left in my Airgap Wallet and can't transfer it because of the "existential deposit". I changed some getTransferableBalance() calls in of airgap-coin-lib's SubstrateProtocol.ts as a quick fix, but I think it would be nice if you could change excludeExistentialDeposit via GUI

"npm" is not building on recent airgap-wallet release

Has anyone tried "npm install" on this repository? I've been trying to track and debug the issue for a day but no luck. Here's the verbose output:

> npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."


> [email protected] rebuild /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/keccak
> node-gyp rebuild

make: Entering directory '/run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/keccak/build'
  CXX(target) Release/obj.target/keccak/src/addon.o
../src/addon.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE KeccakWrapper::Initialize(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cc:37:47: error: no matching function for call to ‘v8::Value::IntegerValue()’
     unsigned int rate = info[0]->IntegerValue();
                                               ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
                 from ../src/addon.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note: candidate: v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
                                        ^~~~~~~~~~~~
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note:   candidate expects 1 argument, 0 provided
../src/addon.cc:38:51: error: no matching function for call to ‘v8::Value::IntegerValue()’
     unsigned int capacity = info[1]->IntegerValue();
                                                   ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
                 from ../src/addon.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note: candidate: v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
                                        ^~~~~~~~~~~~
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note:   candidate expects 1 argument, 0 provided
../src/addon.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE KeccakWrapper::AbsorbLastFewBits(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cc:56:48: error: no matching function for call to ‘v8::Value::IntegerValue()’
     unsigned char bits = info[0]->IntegerValue();
                                                ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
                 from ../src/addon.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note: candidate: v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
                                        ^~~~~~~~~~~~
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note:   candidate expects 1 argument, 0 provided
../src/addon.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE KeccakWrapper::Squeeze(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cc:64:43: error: no matching function for call to ‘v8::Value::IntegerValue()’
     size_t length = info[0]->IntegerValue();
                                           ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
                 from ../src/addon.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note: candidate: v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
                                        ^~~~~~~~~~~~
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2609:40: note:   candidate expects 1 argument, 0 provided
../src/addon.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE KeccakWrapper::Copy(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cc:75:82: error: no matching function for call to ‘v8::Value::ToObject()’
     KeccakWrapper* to = Nan::ObjectWrap::Unwrap<KeccakWrapper>(info[0]->ToObject());
                                                                                  ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
                 from ../src/addon.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2576:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                            ^~~~~~~~
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2576:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/addon.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2590:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const
                 Local<Object> ToObject(Isolate* isolate) const);
                               ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2590:31: note:   candidate expects 1 argument, 0 provided
                 Local<Object> ToObject(Isolate* isolate) const);
                               ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
make: *** [keccak.target.mk:127: Release/obj.target/keccak/src/addon.o] Error 1
make: Leaving directory '/run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/keccak/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/FedUser/.npm-global/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.18.19-100.fc27.x86_64
gyp ERR! command "/usr/local/n/versions/node/12.13.1/bin/node" "/home/FedUser/.npm-global/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/keccak
gyp ERR! node -v v12.13.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/FedUser/.npm/_logs/2020-03-16T09_59_17_659Z-debug.log
Keccak bindings compilation fail. Pure JS implementation will be used.

> [email protected] install /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/secp256k1
> npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."


> [email protected] rebuild /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/secp256k1
> node-gyp rebuild

make: Entering directory '/run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/secp256k1/build'
  CXX(target) Release/obj.target/secp256k1/src/addon.o
  CXX(target) Release/obj.target/secp256k1/src/privatekey.o
In file included from ../src/privatekey.cc:8:0:
../src/privatekey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE privateKeyExport(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/util.h:15:76: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
     compressed = value->BooleanValue(info.GetIsolate()->GetCurrentContext()).ToChecked() ? v_true : v_false;                     \
                                                                            ^
../src/privatekey.cc:36:3: note: in expansion of macro ‘UPDATE_COMPRESSED_VALUE’
   UPDATE_COMPRESSED_VALUE(compressed, info[1], 1, 0);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/privatekey.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
                 V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/privatekey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE privateKeyNegate(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/privatekey.cc:73:30: warning: ignoring return value of ‘int secp256k1_ec_privkey_negate(const secp256k1_context*, unsigned char*)’, declared with attribute warn_unused_result [-Wunused-result]
   secp256k1_ec_privkey_negate(secp256k1ctx, &private_key[0]);
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CXX(target) Release/obj.target/secp256k1/src/publickey.o
In file included from ../src/publickey.cc:7:0:
../src/publickey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE publicKeyCreate(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/util.h:15:76: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
     compressed = value->BooleanValue(info.GetIsolate()->GetCurrentContext()).ToChecked() ? v_true : v_false;                     \
                                                                            ^
../src/publickey.cc:20:3: note: in expansion of macro ‘UPDATE_COMPRESSED_VALUE’
   UPDATE_COMPRESSED_VALUE(flags, info[1], SECP256K1_EC_COMPRESSED, SECP256K1_EC_UNCOMPRESSED);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/publickey.cc:2:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
                 V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/publickey.cc:7:0:
../src/publickey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE publicKeyConvert(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/util.h:15:76: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
     compressed = value->BooleanValue(info.GetIsolate()->GetCurrentContext()).ToChecked() ? v_true : v_false;                     \
                                                                            ^
../src/publickey.cc:43:3: note: in expansion of macro ‘UPDATE_COMPRESSED_VALUE’
   UPDATE_COMPRESSED_VALUE(flags, info[1], SECP256K1_EC_COMPRESSED, SECP256K1_EC_UNCOMPRESSED);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/publickey.cc:2:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
                 V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/publickey.cc:7:0:
../src/publickey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE publicKeyTweakAdd(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/util.h:15:76: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
     compressed = value->BooleanValue(info.GetIsolate()->GetCurrentContext()).ToChecked() ? v_true : v_false;                     \
                                                                            ^
../src/publickey.cc:84:3: note: in expansion of macro ‘UPDATE_COMPRESSED_VALUE’
   UPDATE_COMPRESSED_VALUE(flags, info[2], SECP256K1_EC_COMPRESSED, SECP256K1_EC_UNCOMPRESSED);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/publickey.cc:2:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
                 V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/publickey.cc:7:0:
../src/publickey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE publicKeyTweakMul(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/util.h:15:76: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
     compressed = value->BooleanValue(info.GetIsolate()->GetCurrentContext()).ToChecked() ? v_true : v_false;                     \
                                                                            ^
../src/publickey.cc:116:3: note: in expansion of macro ‘UPDATE_COMPRESSED_VALUE’
   UPDATE_COMPRESSED_VALUE(flags, info[2], SECP256K1_EC_COMPRESSED, SECP256K1_EC_UNCOMPRESSED);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/publickey.cc:2:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
                 V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/publickey.cc:7:0:
../src/publickey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE publicKeyCombine(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/util.h:15:76: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
     compressed = value->BooleanValue(info.GetIsolate()->GetCurrentContext()).ToChecked() ? v_true : v_false;                     \
                                                                            ^
../src/publickey.cc:141:3: note: in expansion of macro ‘UPDATE_COMPRESSED_VALUE’
   UPDATE_COMPRESSED_VALUE(flags, info[1], SECP256K1_EC_COMPRESSED, SECP256K1_EC_UNCOMPRESSED);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/publickey.cc:2:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
                 V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/publickey.cc:146:95: warning: ‘v8::Local<v8::Value> v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::Local<v8::Object> public_key_buffer = v8::Local<v8::Object>::Cast(input_buffers->Get(i));
                                                                                               ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/publickey.cc:2:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:3461:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(uint32_t index));
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
  CXX(target) Release/obj.target/secp256k1/src/signature.o
  CXX(target) Release/obj.target/secp256k1/src/ecdsa.o
../src/ecdsa.cc: In function ‘int nonce_function_custom(unsigned char*, const unsigned char*, const unsigned char*, const unsigned char*, void*, unsigned int)’:
../src/ecdsa.cc:23:103: error: no matching function for call to ‘v8::Function::Call(v8::Local<v8::Object>, int, v8::Local<v8::Value> [5])’
   v8::Local<v8::Value> result = noncefn_callback->Call(isolate->GetCurrentContext()->Global(), 5, argv);
                                                                                                       ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
                 from ../src/ecdsa.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:4193:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context,
                                           ^~~~
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:4193:43: note:   candidate expects 4 arguments, 3 provided
../src/ecdsa.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE sign(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ecdsa.cc:55:97: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::Local<v8::Value> data_value = options->Get(Nan::New<v8::String>("data").ToLocalChecked());
                                                                                                 ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/ecdsa.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:3457:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/ecdsa.cc:62:115: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     noncefn_callback = v8::Local<v8::Function>::Cast(options->Get(Nan::New<v8::String>("noncefn").ToLocalChecked()));
                                                                                                                   ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/ecdsa.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:3457:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/ecdsa.cc:79:91: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   obj->Set(Nan::New<v8::String>("signature").ToLocalChecked(), COPY_BUFFER(&output[0], 64));
                                                                                           ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/ecdsa.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:3403:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/ecdsa.cc:80:90: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   obj->Set(Nan::New<v8::String>("recovery").ToLocalChecked(), Nan::New<v8::Number>(recid));
                                                                                          ^
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/ecdsa.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:3403:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/ecdsa.cc:7:0:
../src/ecdsa.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE recover(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/util.h:15:76: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
     compressed = value->BooleanValue(info.GetIsolate()->GetCurrentContext()).ToChecked() ? v_true : v_false;                     \
                                                                            ^
../src/ecdsa.cc:140:3: note: in expansion of macro ‘UPDATE_COMPRESSED_VALUE’
   UPDATE_COMPRESSED_VALUE(flags, info[3], SECP256K1_EC_COMPRESSED, SECP256K1_EC_UNCOMPRESSED);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:25,
                 from /home/FedUser/.cache/node-gyp/12.13.1/include/node/node.h:63,
                 from ../src/ecdsa.cc:1:
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
                 V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                   ^
/home/FedUser/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
make: *** [secp256k1.target.mk:161: Release/obj.target/secp256k1/src/ecdsa.o] Error 1
make: Leaving directory '/run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/secp256k1/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/FedUser/.npm-global/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.18.19-100.fc27.x86_64
gyp ERR! command "/usr/local/n/versions/node/12.13.1/bin/node" "/home/FedUser/.npm-global/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/secp256k1
gyp ERR! node -v v12.13.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/FedUser/.npm/_logs/2020-03-16T09_59_24_304Z-debug.log
Secp256k1 bindings compilation fail. Pure JS implementation will be used.

> [email protected] install /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/canvas
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download 
[canvas] Success: "/run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/canvas/build/Release/canvas.node" is installed via remote

> [email protected] install /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/karma-phantomjs2-launcher/node_modules/phantomjs2-ext
> node install.js

WARN invalid config loglevel="notice"
Download already available at /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
Extracting tar contents (via spawned process)
Removing /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/karma-phantomjs2-launcher/node_modules/phantomjs2-ext/lib/phantom
Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1584352858200/phantomjs-2.1.1-linux-x86_64 -> /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/karma-phantomjs2-launcher/node_modules/phantomjs2-ext/lib/phantom
Removing /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1584352858200
Writing location.js file
Done. Phantomjs binary available at /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/karma-phantomjs2-launcher/node_modules/phantomjs2-ext/lib/phantom/bin/phantomjs

> [email protected] install /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/husky
> node husky install

husky > setting up git hooks
Can't find .git, skipping Git hooks installation.
Please check that you're in a cloned repository or run 'git init' to create an empty Git repository and reinstall husky.

> [email protected] install /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/phantomjs-prebuilt
> node install.js

PhantomJS not found on PATH
Download already available at /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
Verified checksum of previously downloaded file
Extracting tar contents (via spawned process)
Removing /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/phantomjs-prebuilt/lib/phantom
Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1584352883788/phantomjs-2.1.1-linux-x86_64 -> /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/phantomjs-prebuilt/lib/phantom
Writing location.js file
Done. Phantomjs binary available at /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs

> [email protected] install /run/media/FedUser/Stuffffff/Programming/Web/Direct_Clients/airgap-wallet-3.0.0/node_modules/puppeteer
> node install.js

Downloading Chromium r641577 - 109.8 Mb [=                   ] 3% 199.0s ^C

I know what's going to happen next. It's downloading chromium and at the end, the entire setup fails. I've somehow missed the entire output but I can't spend so much bandwidth to again download chromium and re-iterate the scenario. If anyone really needs to know the next part, just tell me and I'll try to recreate the entire thing.

Chrome Extension: MEW r._handleAsync is not a function

Description

The AirGap Wallet Chrome Extension cannot interact with MyEtherWallet. MyEtherWallet returns a Uncaught TypeError: r._handleAsync is not a function

It looks like the correct Ethereum account was loaded but the balance is 0 and should be 0.00058 ETH

image

{"exception":{"values":[{"type":"TypeError","value":"r._handleAsync is not a function","stacktrace":{"frames":[{"colno":17035,"filename":"https://www.myetherwallet.com/js/vendors.929cf3b9.js","function":"r","in_app":true,"lineno":205},{"colno":334176,"filename":"chrome-extension://pnfechdbkbaamagemimebpndagedcmgh/dist/injection.js","function":"?","in_app":true,"lineno":38}]}}],"mechanism":{"data":{"function":"setTimeout"},"handled":true,"type":"instrument"}},"event_id":"ffe3e6309db741df9e59dd344a3e5987","platform":"javascript","sdk":{"name":"sentry.javascript.browser","packages":[{"name":"npm:@sentry/browser","version":"4.6.6"}],"version":"4.6.6","integrations":["Dedupe","InboundFilters","FunctionToString","ExtraErrorData","TryCatch","Breadcrumbs","GlobalHandlers","LinkedErrors","UserAgent","Vue"]},"environment":"web","release":"5.0.9","request":{"url":"https://www.myetherwallet.com/interface","headers":{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"}},"extra":{"arguments":[]},"tags":{"network":"ETH","service":"myetherwallet.com","walletType":"web3_wallet"}}

How to reproduce

  1. Install and Setup AirGap Vault, download the Chrome Extension.
  2. Sync an Ethereum account from AirGap Vault to the AirGap Wallet Chrome Extension, the account is now visible in the Chrome Extension and labeled as active.
  3. Go to MyEtherwallet - Access My Wallet
  4. Select Metamask & accept the terms, click on "Access My Wallet"
  5. Error is being thrown, balance is not correct.

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.