denoland / denoland/dnt

Error: no secure random source avaialble (crypto.getRandomValues)

Open
#193 8 comments 0 reactions 0 assignees View on GitHub
has workaround
Dominant language
Rust
Stars
1.3k
Forks
49
PR merge metrics
No merged PRs in 30d

Description

Hi and thank you for the wonderful project!

Trying to compile the following:

```ts
import { Wallet } from "https://cdn.skypack.dev/@ethersproject/wallet";
const w = Wallet.createRandom();
// ...
```

Compilation will work but execution will fail because this NPM library attempts to detect whether `window.crypto.getRandomBytes()` or `require("crypto").randomBytes` is to be used and freaks out.

```
# Executing the artifact with Node

> node npm/script/mod.js
WARNING: Missing strong random number source
Generating wallet
/var/home/user/dev/tests/dnt/npm/script/deps/cdn.skypack.dev/-/@ethersproject/logger@v5.6.0-sV1IhwbKBRUviels0nS9/dist=es2019,mode=imports/optimized/@ethersproject/logger.js:175
throw this.makeError(message, code, params);
^

Error: no secure random source avaialble (operation="crypto.getRandomValues", code=UNSUPPORTED_OPERATION, version=random/5.6.1)
at Logger.makeError (/var/home/user/dev/tests/dnt/npm/script/deps/cdn.skypack.dev/-/@ethersproject/logger@v5.6.0-sV1IhwbKBRUviels0nS9/dist=es2019,mode=imports/optimized/@ethersproject/logger.js:166:23)
at Logger.throwError (/var/home/user/dev/tests/dnt/npm/script/deps/cdn.skypack.dev/-/@ethersproject/logger@v5.6.0-sV1IhwbKBRUviels0nS9/dist=es2019,mode=imports/optimized/@ethersproject/logger.js:175:20)
at Object.getRandomValues (/var/home/user/dev/tests/dnt/npm/script/deps/cdn.skypack.dev/-/@ethersproject/random@v5.6.1-k8CesFUa147ccuvLyIO8/dist=es2019,mode=imports/optimized/@ethersproject/random.js:51:28)
at randomBytes (/var/home/user/dev/tests/dnt/npm/script/deps/cdn.skypack.dev/-/@ethersproject/random@v5.6.1-k8CesFUa147ccuvLyIO8/dist=es2019,mode=imports/optimized/@ethersproject/random.js:62:12)
at Function.createRandom (/var/home/user/dev/tests/dnt/npm/script/deps/cdn.skypack.dev/-/@ethersproject/wallet@v5.6.2-hbht5UfbVmWkq5PkNraB/dist=es2019,mode=imports/optimized/@ethersproject/wallet.js:166:51)
at Object. (/var/home/user/dev/tests/dnt/npm/script/mod.js:30:30)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
reason: 'no secure random source avaialble',
code: 'UNSUPPORTED_OPERATION',
operation: 'crypto.getRandomValues'
}
```

Thank you!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.