diff --git a/package-lock.json b/package-lock.json index b710c05..5028239 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,8 +19,9 @@ "@typescript-eslint/parser": "^2.2.0", "@waves.exchange/provider-cloud": "1.0.2", "@waves.exchange/provider-web": "1.0.2", - "@waves/node-api-js": "^1.2.5-beta.6", - "@waves/provider-metamask": "^1.0.0", + "@waves/node-api-js": "^1.2.5-beta.14", + "@waves/provider-ledger": "^0.1.2", + "@waves/provider-metamask": "^1.0.3", "@waves/signer": "1.0.5", "@waves/ts-lib-crypto": "^1.4.3", "@waves/waves-transactions": "4.2.1", @@ -1187,6 +1188,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/polyfill": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", + "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", + "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", + "dependencies": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, "node_modules/@babel/preset-env": { "version": "7.13.12", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.12.tgz", @@ -2428,6 +2439,151 @@ "node": ">= 6" } }, + "node_modules/@ledgerhq/devices": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-6.20.0.tgz", + "integrity": "sha512-WehM7HGdb+nSUzyUlz1t2qJ8Tg4I+rQkOJJsx0/Dpjkx6/+1hHcX6My/apPuwh39qahqwYhjszq0H1YzGDS0Yg==", + "dependencies": { + "@ledgerhq/errors": "^6.10.0", + "@ledgerhq/logs": "^6.10.0", + "rxjs": "6", + "semver": "^7.3.5" + } + }, + "node_modules/@ledgerhq/devices/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ledgerhq/devices/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ledgerhq/devices/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@ledgerhq/errors": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.10.0.tgz", + "integrity": "sha512-fQFnl2VIXh9Yd41lGjReCeK+Q2hwxQJvLZfqHnKqWapTz68NHOv5QcI0OHuZVNEbv0xhgdLhi5b65kgYeQSUVg==" + }, + "node_modules/@ledgerhq/hw-transport": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.20.0.tgz", + "integrity": "sha512-5KS0Y6CbWRDOv3FgNIfk53ViQOIZqMxAw0RuOexreW5GMwuYfK7ddGi4142qcu7YrxkGo7cNe42wBbx1hdXl0Q==", + "dependencies": { + "@ledgerhq/devices": "^6.20.0", + "@ledgerhq/errors": "^6.10.0", + "events": "^3.3.0" + } + }, + "node_modules/@ledgerhq/hw-transport-u2f": { + "version": "5.34.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.34.0.tgz", + "integrity": "sha512-EM6LcbdD6Xo/msedbAWalBZlv89XAZrAZwL5zN9eKlUcWPjjG8c9+t5NedR/jmIaGuzIUVseUCIRxczqd5byOw==", + "deprecated": "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md", + "dependencies": { + "@ledgerhq/errors": "^5.34.0", + "@ledgerhq/hw-transport": "^5.34.0", + "@ledgerhq/logs": "^5.30.0", + "u2f-api": "0.2.7" + } + }, + "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/devices": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz", + "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==", + "dependencies": { + "@ledgerhq/errors": "^5.50.0", + "@ledgerhq/logs": "^5.50.0", + "rxjs": "6", + "semver": "^7.3.5" + } + }, + "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/errors": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz", + "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==" + }, + "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/hw-transport": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz", + "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==", + "dependencies": { + "@ledgerhq/devices": "^5.51.1", + "@ledgerhq/errors": "^5.50.0", + "events": "^3.3.0" + } + }, + "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/logs": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz", + "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==" + }, + "node_modules/@ledgerhq/hw-transport-u2f/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ledgerhq/hw-transport-u2f/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ledgerhq/hw-transport-u2f/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@ledgerhq/hw-transport-webusb": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.2.0.tgz", + "integrity": "sha512-syzdx1JFB6mWCeFIsLr6Scnaqn3RgUxsuL1HCi+fYPC/ITxyquUlcVD/85Rsxr0wLUd+Xat3812hrhV37S6jbA==", + "dependencies": { + "@ledgerhq/devices": "^6.2.0", + "@ledgerhq/errors": "^6.2.0", + "@ledgerhq/hw-transport": "^6.2.0", + "@ledgerhq/logs": "^6.2.0" + } + }, + "node_modules/@ledgerhq/logs": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.0.tgz", + "integrity": "sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw==" + }, "node_modules/@metamask/detect-provider": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", @@ -3067,6 +3223,105 @@ "resolved": "https://registry.npmjs.org/@waves/client-logs/-/client-logs-1.0.0.tgz", "integrity": "sha512-Uf8NKJGw4lgmPTEFtqIuDD6GZkk73MZLyaFI1VWDDElXhsFY2uxdWhxFQYqK/8GNZBSycCTvDsi0RNDEqE1ivw==" }, + "node_modules/@waves/ledger": { + "version": "4.0.2-beta.3", + "resolved": "https://registry.npmjs.org/@waves/ledger/-/ledger-4.0.2-beta.3.tgz", + "integrity": "sha512-q7J9fo8EhGq3AQyLMmUFJCF9HXDeaOqBr8PT+mCernDSDMQcb0hZxzcYl5VvmFHMQaCdQEy4CNsLSm5Rqv6Wlw==", + "dependencies": { + "@babel/polyfill": "^7.6.0", + "@ledgerhq/hw-transport-u2f": "^5.34.0", + "@ledgerhq/hw-transport-webusb": "^5.34.1", + "@ledgerhq/logs": "^5.19.1", + "@waves/ts-lib-crypto": "^1.4.3", + "rimraf": "^3.0.2" + } + }, + "node_modules/@waves/ledger/node_modules/@ledgerhq/devices": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz", + "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==", + "dependencies": { + "@ledgerhq/errors": "^5.50.0", + "@ledgerhq/logs": "^5.50.0", + "rxjs": "6", + "semver": "^7.3.5" + } + }, + "node_modules/@waves/ledger/node_modules/@ledgerhq/errors": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz", + "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==" + }, + "node_modules/@waves/ledger/node_modules/@ledgerhq/hw-transport": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz", + "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==", + "dependencies": { + "@ledgerhq/devices": "^5.51.1", + "@ledgerhq/errors": "^5.50.0", + "events": "^3.3.0" + } + }, + "node_modules/@waves/ledger/node_modules/@ledgerhq/hw-transport-webusb": { + "version": "5.53.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.53.1.tgz", + "integrity": "sha512-A/f+xcrkIAZiJrvPpDvsrjxQX4cI2kbdiunQkwsYmOG3Bp4z89ZnsBiC7YBst4n2/g+QgTg0/KPVtODU5djooQ==", + "dependencies": { + "@ledgerhq/devices": "^5.51.1", + "@ledgerhq/errors": "^5.50.0", + "@ledgerhq/hw-transport": "^5.51.1", + "@ledgerhq/logs": "^5.50.0" + } + }, + "node_modules/@waves/ledger/node_modules/@ledgerhq/logs": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz", + "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==" + }, + "node_modules/@waves/ledger/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@waves/ledger/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@waves/ledger/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@waves/ledger/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/@waves/marshall": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@waves/marshall/-/marshall-0.14.0.tgz", @@ -3080,17 +3335,22 @@ } }, "node_modules/@waves/node-api-js": { - "version": "1.2.5-beta.6", - "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.2.5-beta.6.tgz", - "integrity": "sha512-4K4AUbZQwJ9pqByn0fso3V8xh/cWQrqvoYDYthFfiVQ3BNw1nwiRIcSMZwkuAwmifgRN1gE2nyMuCNLzbODviw==", + "version": "1.2.5-beta.14", + "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.2.5-beta.14.tgz", + "integrity": "sha512-qbLQskyNJcR3PmhRzXgIEiQgChtua80JRMkZbS+OPlO1J34kzaPrey54Hnhxpj2mbD2TXjLsVkOY4PEOMMq9rg==", "dependencies": { "@types/node-fetch": "^2.5.4", "@waves/bignumber": "^1.1.1", - "@waves/ts-types": "^1.0.5", + "@waves/ts-types": "^1.0.6-beta.7", "node-fetch": "^2.6.1", "typed-ts-events": "^1.1.1" } }, + "node_modules/@waves/node-api-js/node_modules/@waves/ts-types": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-1.0.7.tgz", + "integrity": "sha512-fbUCGIM5BIaZCCje3Nm135r0n9zDJIJicHSa5OJxO+NEU46aEtmfUoAL9fBbWAgQmTmtR57E5Wi4s+fUjqY7DA==" + }, "node_modules/@waves/parse-json-bignumber": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@waves/parse-json-bignumber/-/parse-json-bignumber-1.0.3.tgz", @@ -3105,10 +3365,93 @@ "protobufjs": "^6.8.8" } }, + "node_modules/@waves/provider-ledger": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@waves/provider-ledger/-/provider-ledger-0.1.2.tgz", + "integrity": "sha512-hZ0rSt+LNDOoOaLqcb1vojo1KZiTcV1AvE0w/EOAlCRPzYVL+jBW7KuQckg70+s46o2MhFIPYV/DHeiR1Zjraw==", + "dependencies": { + "@ledgerhq/hw-transport-webusb": "6.2.0", + "@types/ramda": "^0.26.38", + "@waves/ledger": "4.0.2-beta.3", + "@waves/node-api-js": "^1.2.3", + "@waves/signer": "1.0.2", + "@waves/ts-types": "^0.3.0", + "@waves/waves-transactions": "^4.2.1", + "detect-browser": "5.2.0", + "identity-img": "2.0.0", + "ramda": "^0.26.1" + } + }, + "node_modules/@waves/provider-ledger/node_modules/@types/ramda": { + "version": "0.26.44", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.26.44.tgz", + "integrity": "sha512-s0cj9rylWw+Ax/AnttCQzMrLZGq/OxAIZgrkRLK1QHJIF6Qabd0//acMCFM6+Xb8Bi8p8PkT2fqpaQveRju/kA==", + "dependencies": { + "ts-toolbelt": "^6.3.3" + } + }, + "node_modules/@waves/provider-ledger/node_modules/@waves/node-api-js": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.2.4.tgz", + "integrity": "sha512-Bn82D4056BbUQmUoNg8VMXWj97vGAkqOKgjGGxcAspVXI02CoYkIK+7UHvKCTltvzSpomEpeZ0xephCnetJOzw==", + "dependencies": { + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "^1.1.1", + "@waves/ts-types": "^1.0.5", + "node-fetch": "^2.6.1", + "typed-ts-events": "^1.1.1" + } + }, + "node_modules/@waves/provider-ledger/node_modules/@waves/node-api-js/node_modules/@waves/ts-types": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-1.0.7.tgz", + "integrity": "sha512-fbUCGIM5BIaZCCje3Nm135r0n9zDJIJicHSa5OJxO+NEU46aEtmfUoAL9fBbWAgQmTmtR57E5Wi4s+fUjqY7DA==" + }, + "node_modules/@waves/provider-ledger/node_modules/@waves/signer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@waves/signer/-/signer-1.0.2.tgz", + "integrity": "sha512-lLbv4S8rWdYWHekZDz5eLAxnZZ0H0kxubzTOdneswkISVDqR6gzURAOM2DjhQvtRuIxDtNxruHORBKG3SOBm4g==", + "dependencies": { + "@types/ramda": "^0.27.32", + "@waves/client-logs": "^1.0.0", + "@waves/node-api-js": "^1.2.0", + "@waves/ts-lib-crypto": "^1.4.3", + "@waves/ts-types": "^1.0.0", + "ramda": "^0.27.1" + } + }, + "node_modules/@waves/provider-ledger/node_modules/@waves/signer/node_modules/@types/ramda": { + "version": "0.27.62", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.27.62.tgz", + "integrity": "sha512-/s4yTNOk8YXZ2Ys8OqSPmExyWxuKQMCDwjyVowg0RW6F45SlSGSI0sduyhx7RREASowlVJppAvR4KRqMzJnu2g==", + "dependencies": { + "ts-toolbelt": "^6.15.1" + } + }, + "node_modules/@waves/provider-ledger/node_modules/@waves/signer/node_modules/@waves/ts-types": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-1.0.7.tgz", + "integrity": "sha512-fbUCGIM5BIaZCCje3Nm135r0n9zDJIJicHSa5OJxO+NEU46aEtmfUoAL9fBbWAgQmTmtR57E5Wi4s+fUjqY7DA==" + }, + "node_modules/@waves/provider-ledger/node_modules/@waves/signer/node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, + "node_modules/@waves/provider-ledger/node_modules/@waves/ts-types": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-0.3.5.tgz", + "integrity": "sha512-f4rTEc0hJ1yrsZPmnkLLhxbv6Kry4P35cPhOz8VIe/j4pB5uk0DrHRb5UoKV1xmTWBSZt5bKRiVZLdsIcIn8Gw==" + }, + "node_modules/@waves/provider-ledger/node_modules/ramda": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", + "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==" + }, "node_modules/@waves/provider-metamask": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@waves/provider-metamask/-/provider-metamask-1.0.0.tgz", - "integrity": "sha512-/+08UhZc/sY1QeDeygQ9jFGgLsZHd1E5GoX4srANYXOox+DQ/9+KsgPW3BnQu2GyvLuj4zavV72+0cRJ/B8xmw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@waves/provider-metamask/-/provider-metamask-1.0.4.tgz", + "integrity": "sha512-PehSgCCiU8gasWvSDTb34kugKdU1kEaruAmI/0Xh83mwZlvoCD+Dv4J8rQ56rmLoS57Y33DsWM6wALaJyGUn+w==", "dependencies": { "@metamask/detect-provider": "^1.2.0", "@metamask/onboarding": "^1.0.1", @@ -6378,6 +6721,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "node_modules/detect-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz", + "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==" + }, "node_modules/detect-newline": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", @@ -17184,6 +17532,11 @@ "node": ">=4.2.0" } }, + "node_modules/u2f-api": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", + "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" + }, "node_modules/uglify-js": { "version": "3.4.10", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", @@ -19466,6 +19819,15 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/polyfill": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", + "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, "@babel/preset-env": { "version": "7.13.12", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.12.tgz", @@ -20338,6 +20700,136 @@ "@types/yargs": "^13.0.0" } }, + "@ledgerhq/devices": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-6.20.0.tgz", + "integrity": "sha512-WehM7HGdb+nSUzyUlz1t2qJ8Tg4I+rQkOJJsx0/Dpjkx6/+1hHcX6My/apPuwh39qahqwYhjszq0H1YzGDS0Yg==", + "requires": { + "@ledgerhq/errors": "^6.10.0", + "@ledgerhq/logs": "^6.10.0", + "rxjs": "6", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "@ledgerhq/errors": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.10.0.tgz", + "integrity": "sha512-fQFnl2VIXh9Yd41lGjReCeK+Q2hwxQJvLZfqHnKqWapTz68NHOv5QcI0OHuZVNEbv0xhgdLhi5b65kgYeQSUVg==" + }, + "@ledgerhq/hw-transport": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.20.0.tgz", + "integrity": "sha512-5KS0Y6CbWRDOv3FgNIfk53ViQOIZqMxAw0RuOexreW5GMwuYfK7ddGi4142qcu7YrxkGo7cNe42wBbx1hdXl0Q==", + "requires": { + "@ledgerhq/devices": "^6.20.0", + "@ledgerhq/errors": "^6.10.0", + "events": "^3.3.0" + } + }, + "@ledgerhq/hw-transport-u2f": { + "version": "5.34.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.34.0.tgz", + "integrity": "sha512-EM6LcbdD6Xo/msedbAWalBZlv89XAZrAZwL5zN9eKlUcWPjjG8c9+t5NedR/jmIaGuzIUVseUCIRxczqd5byOw==", + "requires": { + "@ledgerhq/errors": "^5.34.0", + "@ledgerhq/hw-transport": "^5.34.0", + "@ledgerhq/logs": "^5.30.0", + "u2f-api": "0.2.7" + }, + "dependencies": { + "@ledgerhq/devices": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz", + "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==", + "requires": { + "@ledgerhq/errors": "^5.50.0", + "@ledgerhq/logs": "^5.50.0", + "rxjs": "6", + "semver": "^7.3.5" + } + }, + "@ledgerhq/errors": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz", + "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==" + }, + "@ledgerhq/hw-transport": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz", + "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==", + "requires": { + "@ledgerhq/devices": "^5.51.1", + "@ledgerhq/errors": "^5.50.0", + "events": "^3.3.0" + } + }, + "@ledgerhq/logs": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz", + "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "@ledgerhq/hw-transport-webusb": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.2.0.tgz", + "integrity": "sha512-syzdx1JFB6mWCeFIsLr6Scnaqn3RgUxsuL1HCi+fYPC/ITxyquUlcVD/85Rsxr0wLUd+Xat3812hrhV37S6jbA==", + "requires": { + "@ledgerhq/devices": "^6.2.0", + "@ledgerhq/errors": "^6.2.0", + "@ledgerhq/hw-transport": "^6.2.0", + "@ledgerhq/logs": "^6.2.0" + } + }, + "@ledgerhq/logs": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.0.tgz", + "integrity": "sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw==" + }, "@metamask/detect-provider": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", @@ -20861,6 +21353,92 @@ "resolved": "https://registry.npmjs.org/@waves/client-logs/-/client-logs-1.0.0.tgz", "integrity": "sha512-Uf8NKJGw4lgmPTEFtqIuDD6GZkk73MZLyaFI1VWDDElXhsFY2uxdWhxFQYqK/8GNZBSycCTvDsi0RNDEqE1ivw==" }, + "@waves/ledger": { + "version": "4.0.2-beta.3", + "resolved": "https://registry.npmjs.org/@waves/ledger/-/ledger-4.0.2-beta.3.tgz", + "integrity": "sha512-q7J9fo8EhGq3AQyLMmUFJCF9HXDeaOqBr8PT+mCernDSDMQcb0hZxzcYl5VvmFHMQaCdQEy4CNsLSm5Rqv6Wlw==", + "requires": { + "@babel/polyfill": "^7.6.0", + "@ledgerhq/hw-transport-u2f": "^5.34.0", + "@ledgerhq/hw-transport-webusb": "^5.34.1", + "@ledgerhq/logs": "^5.19.1", + "@waves/ts-lib-crypto": "^1.4.3", + "rimraf": "^3.0.2" + }, + "dependencies": { + "@ledgerhq/devices": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz", + "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==", + "requires": { + "@ledgerhq/errors": "^5.50.0", + "@ledgerhq/logs": "^5.50.0", + "rxjs": "6", + "semver": "^7.3.5" + } + }, + "@ledgerhq/errors": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz", + "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==" + }, + "@ledgerhq/hw-transport": { + "version": "5.51.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz", + "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==", + "requires": { + "@ledgerhq/devices": "^5.51.1", + "@ledgerhq/errors": "^5.50.0", + "events": "^3.3.0" + } + }, + "@ledgerhq/hw-transport-webusb": { + "version": "5.53.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.53.1.tgz", + "integrity": "sha512-A/f+xcrkIAZiJrvPpDvsrjxQX4cI2kbdiunQkwsYmOG3Bp4z89ZnsBiC7YBst4n2/g+QgTg0/KPVtODU5djooQ==", + "requires": { + "@ledgerhq/devices": "^5.51.1", + "@ledgerhq/errors": "^5.50.0", + "@ledgerhq/hw-transport": "^5.51.1", + "@ledgerhq/logs": "^5.50.0" + } + }, + "@ledgerhq/logs": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz", + "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "@waves/marshall": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@waves/marshall/-/marshall-0.14.0.tgz", @@ -20874,15 +21452,22 @@ } }, "@waves/node-api-js": { - "version": "1.2.5-beta.6", - "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.2.5-beta.6.tgz", - "integrity": "sha512-4K4AUbZQwJ9pqByn0fso3V8xh/cWQrqvoYDYthFfiVQ3BNw1nwiRIcSMZwkuAwmifgRN1gE2nyMuCNLzbODviw==", + "version": "1.2.5-beta.14", + "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.2.5-beta.14.tgz", + "integrity": "sha512-qbLQskyNJcR3PmhRzXgIEiQgChtua80JRMkZbS+OPlO1J34kzaPrey54Hnhxpj2mbD2TXjLsVkOY4PEOMMq9rg==", "requires": { "@types/node-fetch": "^2.5.4", "@waves/bignumber": "^1.1.1", - "@waves/ts-types": "^1.0.5", + "@waves/ts-types": "^1.0.6-beta.7", "node-fetch": "^2.6.1", "typed-ts-events": "^1.1.1" + }, + "dependencies": { + "@waves/ts-types": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-1.0.7.tgz", + "integrity": "sha512-fbUCGIM5BIaZCCje3Nm135r0n9zDJIJicHSa5OJxO+NEU46aEtmfUoAL9fBbWAgQmTmtR57E5Wi4s+fUjqY7DA==" + } } }, "@waves/parse-json-bignumber": { @@ -20899,10 +21484,99 @@ "protobufjs": "^6.8.8" } }, + "@waves/provider-ledger": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@waves/provider-ledger/-/provider-ledger-0.1.2.tgz", + "integrity": "sha512-hZ0rSt+LNDOoOaLqcb1vojo1KZiTcV1AvE0w/EOAlCRPzYVL+jBW7KuQckg70+s46o2MhFIPYV/DHeiR1Zjraw==", + "requires": { + "@ledgerhq/hw-transport-webusb": "6.2.0", + "@types/ramda": "^0.26.38", + "@waves/ledger": "4.0.2-beta.3", + "@waves/node-api-js": "^1.2.3", + "@waves/signer": "1.0.2", + "@waves/ts-types": "^0.3.0", + "@waves/waves-transactions": "^4.2.1", + "detect-browser": "5.2.0", + "identity-img": "2.0.0", + "ramda": "^0.26.1" + }, + "dependencies": { + "@types/ramda": { + "version": "0.26.44", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.26.44.tgz", + "integrity": "sha512-s0cj9rylWw+Ax/AnttCQzMrLZGq/OxAIZgrkRLK1QHJIF6Qabd0//acMCFM6+Xb8Bi8p8PkT2fqpaQveRju/kA==", + "requires": { + "ts-toolbelt": "^6.3.3" + } + }, + "@waves/node-api-js": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.2.4.tgz", + "integrity": "sha512-Bn82D4056BbUQmUoNg8VMXWj97vGAkqOKgjGGxcAspVXI02CoYkIK+7UHvKCTltvzSpomEpeZ0xephCnetJOzw==", + "requires": { + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "^1.1.1", + "@waves/ts-types": "^1.0.5", + "node-fetch": "^2.6.1", + "typed-ts-events": "^1.1.1" + }, + "dependencies": { + "@waves/ts-types": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-1.0.7.tgz", + "integrity": "sha512-fbUCGIM5BIaZCCje3Nm135r0n9zDJIJicHSa5OJxO+NEU46aEtmfUoAL9fBbWAgQmTmtR57E5Wi4s+fUjqY7DA==" + } + } + }, + "@waves/signer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@waves/signer/-/signer-1.0.2.tgz", + "integrity": "sha512-lLbv4S8rWdYWHekZDz5eLAxnZZ0H0kxubzTOdneswkISVDqR6gzURAOM2DjhQvtRuIxDtNxruHORBKG3SOBm4g==", + "requires": { + "@types/ramda": "^0.27.32", + "@waves/client-logs": "^1.0.0", + "@waves/node-api-js": "^1.2.0", + "@waves/ts-lib-crypto": "^1.4.3", + "@waves/ts-types": "^1.0.0", + "ramda": "^0.27.1" + }, + "dependencies": { + "@types/ramda": { + "version": "0.27.62", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.27.62.tgz", + "integrity": "sha512-/s4yTNOk8YXZ2Ys8OqSPmExyWxuKQMCDwjyVowg0RW6F45SlSGSI0sduyhx7RREASowlVJppAvR4KRqMzJnu2g==", + "requires": { + "ts-toolbelt": "^6.15.1" + } + }, + "@waves/ts-types": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-1.0.7.tgz", + "integrity": "sha512-fbUCGIM5BIaZCCje3Nm135r0n9zDJIJicHSa5OJxO+NEU46aEtmfUoAL9fBbWAgQmTmtR57E5Wi4s+fUjqY7DA==" + }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + } + } + }, + "@waves/ts-types": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-0.3.5.tgz", + "integrity": "sha512-f4rTEc0hJ1yrsZPmnkLLhxbv6Kry4P35cPhOz8VIe/j4pB5uk0DrHRb5UoKV1xmTWBSZt5bKRiVZLdsIcIn8Gw==" + }, + "ramda": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", + "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==" + } + } + }, "@waves/provider-metamask": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@waves/provider-metamask/-/provider-metamask-1.0.0.tgz", - "integrity": "sha512-/+08UhZc/sY1QeDeygQ9jFGgLsZHd1E5GoX4srANYXOox+DQ/9+KsgPW3BnQu2GyvLuj4zavV72+0cRJ/B8xmw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@waves/provider-metamask/-/provider-metamask-1.0.4.tgz", + "integrity": "sha512-PehSgCCiU8gasWvSDTb34kugKdU1kEaruAmI/0Xh83mwZlvoCD+Dv4J8rQ56rmLoS57Y33DsWM6wALaJyGUn+w==", "requires": { "@metamask/detect-provider": "^1.2.0", "@metamask/onboarding": "^1.0.1", @@ -23638,6 +24312,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "detect-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz", + "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==" + }, "detect-newline": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", @@ -32255,6 +32934,11 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==" }, + "u2f-api": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", + "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" + }, "uglify-js": { "version": "3.4.10", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", diff --git a/package.json b/package.json index 2bff6bd..1d1e167 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@waves.exchange/provider-cloud": "1.0.2", "@waves.exchange/provider-web": "1.0.2", "@waves/node-api-js": "^1.2.5-beta.14", + "@waves/provider-ledger": "^0.1.2", "@waves/provider-metamask": "^1.0.3", "@waves/signer": "1.0.5", "@waves/ts-lib-crypto": "^1.4.3", diff --git a/src/components/SignDialog/index.tsx b/src/components/SignDialog/index.tsx index 5e23eda..731dbdd 100644 --- a/src/components/SignDialog/index.tsx +++ b/src/components/SignDialog/index.tsx @@ -123,6 +123,11 @@ export default class SignDialog extends React.Component { this.props.signerStore!.login(LoginType.METAMASK); }; + handleSignWithLeder = () => { + this.handleCloseDialog(); + this.props.signerStore!.login(LoginType.LEDGER); + }; + handleClickOutside = (event: any) => { const path = event.path || event.composedPath(); if (!(path.some((element: any) => element.dataset && element.dataset.owner === 'sign'))) { @@ -163,7 +168,13 @@ export default class SignDialog extends React.Component {
-
The network will get from matamask plugin
+
The network will be MainNet by default
+
+ +
+ +
The network will be MainNet by default
diff --git a/src/interface/enum.ts b/src/interface/enum.ts index 7c61261..9488f3a 100644 --- a/src/interface/enum.ts +++ b/src/interface/enum.ts @@ -10,4 +10,5 @@ export enum LoginType { SEED, EMAIL, METAMASK, + LEDGER, } diff --git a/src/stores/SignerStore.tsx b/src/stores/SignerStore.tsx index 3bcf7c6..24204a6 100644 --- a/src/stores/SignerStore.tsx +++ b/src/stores/SignerStore.tsx @@ -2,12 +2,13 @@ import {action, observable} from 'mobx'; import {RootStore} from '@stores'; import {SubStore} from './SubStore'; import {Signer} from '@waves/signer'; -import {ProviderWeb} from "@waves.exchange/provider-web"; -import {ProviderCloud} from "@waves.exchange/provider-cloud"; -import ProviderMetamask, { isMetaMaskInstalled } from "@waves/provider-metamask"; +import {ProviderWeb} from '@waves.exchange/provider-web'; +import {ProviderCloud} from '@waves.exchange/provider-cloud'; +import ProviderMetamask, { isMetaMaskInstalled } from '@waves/provider-metamask'; +import { ProviderLedger } from '@waves/provider-ledger'; import {getExplorerLink, networks, Network, INetwork} from '@utils'; -import {LoginType, ELoginType} from "@src/interface"; -import {waitForTx} from "@waves/waves-transactions"; +import {LoginType, ELoginType} from '@src/interface'; +import {waitForTx} from '@waves/waves-transactions'; import Decimal from 'decimal.js'; class SignerStore extends SubStore { @@ -79,12 +80,30 @@ class SignerStore extends SubStore { await this.signer.setProvider(provider); } + initSignerLedger = async () => { + const network = this.getNetworkByDapp(); + + if (network.clientOrigin) { + this.signer = new Signer({ NODE_URL: network.server }); + await this.signer.setProvider(new ProviderLedger({ wavesLedgerConfig: { + networkCode: network.code.charCodeAt(0) + }})); + } else { + this.signer = undefined; + this.rootStore.notificationStore.notify( + 'Init ledger error', + {type: 'error'} + ) + } + } + login = async (type: LoginType) => { this.loginType = type; if (type === LoginType.SEED) await this.initSignerWeb(); if (type === LoginType.EMAIL) await this.initSignerCloud(); if (type === LoginType.METAMASK) await this.initSignerMetamask(); + if (type === LoginType.LEDGER) await this.initSignerLedger(); if(!this.signer) { return;