mirror of
https://github.com/jwinterm/grin-wallet.git
synced 2026-10-17 07:11:36 +02:00
Bump lodash from 4.17.21 to 4.18.1 (#774)
* build: update lodash to 4.18.1 * fix: readme * docs: add owner api authentication setup * build: update package-lock.json to version 3 * fix: token result, inline some vars --------- Co-authored-by: ardocrat <ardocrat@gri.mw>
This commit is contained in:
committed by
wiesche
co-authored by
ardocrat
parent
5437dc0678
commit
09aebadce0
+63
-36
@@ -1,115 +1,142 @@
|
||||
{
|
||||
"name": "node-sample",
|
||||
"version": "0.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "node-sample",
|
||||
"version": "0.0.1",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@types/connect": {
|
||||
"jayson": "^3.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/connect": {
|
||||
"version": "3.4.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz",
|
||||
"integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/express-serve-static-core": {
|
||||
"node_modules/@types/express-serve-static-core": {
|
||||
"version": "4.17.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz",
|
||||
"integrity": "sha512-El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/range-parser": "*"
|
||||
}
|
||||
},
|
||||
"@types/lodash": {
|
||||
"node_modules/@types/lodash": {
|
||||
"version": "4.14.149",
|
||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz",
|
||||
"integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ=="
|
||||
},
|
||||
"@types/node": {
|
||||
"node_modules/@types/node": {
|
||||
"version": "12.12.27",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.27.tgz",
|
||||
"integrity": "sha512-odQFl/+B9idbdS0e8IxDl2ia/LP8KZLXhV3BUeI98TrZp0uoIzQPhGd+5EtzHmT0SMOIaPd7jfz6pOHLWTtl7A=="
|
||||
},
|
||||
"@types/range-parser": {
|
||||
"node_modules/@types/range-parser": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
|
||||
"integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
|
||||
},
|
||||
"JSONStream": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
|
||||
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
|
||||
"requires": {
|
||||
"jsonparse": "^1.2.0",
|
||||
"through": ">=2.2.7 <3"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"node_modules/commander": {
|
||||
"version": "2.20.3",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
|
||||
},
|
||||
"es6-promise": {
|
||||
"node_modules/es6-promise": {
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
|
||||
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
|
||||
},
|
||||
"es6-promisify": {
|
||||
"node_modules/es6-promisify": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
|
||||
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"es6-promise": "^4.0.3"
|
||||
}
|
||||
},
|
||||
"eyes": {
|
||||
"node_modules/eyes": {
|
||||
"version": "0.1.8",
|
||||
"resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
|
||||
"integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
|
||||
"integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
|
||||
"engines": {
|
||||
"node": "> 0.1.90"
|
||||
}
|
||||
},
|
||||
"jayson": {
|
||||
"node_modules/jayson": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/jayson/-/jayson-3.2.0.tgz",
|
||||
"integrity": "sha512-DZQnwA57GcStw4soSYB2VntWXFfoWvmSarlaWePDYOWhjxT72PBM4atEBomaTaS1uqk3jFC9UO9AyWjlujo3xw==",
|
||||
"requires": {
|
||||
"dependencies": {
|
||||
"@types/connect": "^3.4.32",
|
||||
"@types/express-serve-static-core": "^4.16.9",
|
||||
"@types/lodash": "^4.14.139",
|
||||
"@types/node": "^12.7.7",
|
||||
"JSONStream": "^1.3.1",
|
||||
"commander": "^2.12.2",
|
||||
"es6-promisify": "^5.0.0",
|
||||
"eyes": "^0.1.8",
|
||||
"json-stringify-safe": "^5.0.1",
|
||||
"JSONStream": "^1.3.1",
|
||||
"lodash": "^4.17.15",
|
||||
"uuid": "^3.2.1"
|
||||
},
|
||||
"bin": {
|
||||
"jayson": "bin/jayson.js"
|
||||
}
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"node_modules/json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
|
||||
},
|
||||
"jsonparse": {
|
||||
"node_modules/jsonparse": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
|
||||
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
|
||||
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
|
||||
"engines": [
|
||||
"node >= 0.2.0"
|
||||
]
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
"node_modules/JSONStream": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
|
||||
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
|
||||
"dependencies": {
|
||||
"jsonparse": "^1.2.0",
|
||||
"through": ">=2.2.7 <3"
|
||||
},
|
||||
"through": {
|
||||
"bin": {
|
||||
"JSONStream": "bin.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.18.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
|
||||
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="
|
||||
},
|
||||
"node_modules/through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
|
||||
},
|
||||
"uuid": {
|
||||
"node_modules/uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
|
||||
"bin": {
|
||||
"uuid": "bin/uuid"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,19 +10,21 @@ First run the Owner API:
|
||||
grin-wallet owner_api
|
||||
```
|
||||
|
||||
This sample doesn't use the authentication specified in the wallet's `.api_secret`, so before running the owner_api please ensure api authentication is commented out in `grin-wallet.toml`. Including the authentication token as part of the request is a function of your json-rpc client library of choice, so it's not included in the sample to make setup a bit simpler.
|
||||
|
||||
ensure the client url in `src\index.js` is set correctly:
|
||||
The Owner API uses HTTP Basic authentication when `api_secret_path` is configured in `grin-wallet.toml`. Before running the sample, load the secret from that file into an environment variable:
|
||||
|
||||
```.sh
|
||||
const client = jayson.client.http('http://localhost:3420/v3/owner');
|
||||
export GRIN_OWNER_API_SECRET="$(cat /path/to/.owner_api_secret)"
|
||||
```
|
||||
|
||||
The sample sends it as the password for the `grin` user. If `api_secret_path` is disabled, the environment variable can be omitted.
|
||||
|
||||
Ensure the client connection settings in `src/index.js` match the Owner API address.
|
||||
|
||||
Then (assuming node.js and npm are installed on the system):
|
||||
|
||||
```.sh
|
||||
npm install
|
||||
node src/index.json
|
||||
node src/index.js
|
||||
```
|
||||
|
||||
Feel free to play around with the sample, modifying it to call whatever functions you'd like to see in operation!
|
||||
|
||||
@@ -8,7 +8,20 @@
|
||||
const jayson = require('jayson/promise');
|
||||
const crypto = require('crypto');
|
||||
|
||||
const client = jayson.client.http('http://localhost:3420/v3/owner');
|
||||
const ownerApiSecret = process.env.GRIN_OWNER_API_SECRET;
|
||||
const clientOptions = {
|
||||
hostname: 'localhost',
|
||||
port: 3420,
|
||||
path: '/v3/owner',
|
||||
};
|
||||
|
||||
if (ownerApiSecret) {
|
||||
clientOptions.headers = {
|
||||
Authorization: `Basic ${Buffer.from(`grin:${ownerApiSecret}`).toString('base64')}`,
|
||||
};
|
||||
}
|
||||
|
||||
const client = jayson.client.http(clientOptions);
|
||||
|
||||
// Demo implementation of using `aes-256-gcm` with node.js's `crypto` lib.
|
||||
const aes256gcm = (shared_secret) => {
|
||||
@@ -33,8 +46,7 @@ const aes256gcm = (shared_secret) => {
|
||||
const tag = data_.slice(len-16, len)
|
||||
const text = data_.slice(0, len-16)
|
||||
decipher.setAuthTag(tag)
|
||||
const dec = decipher.update(text, 'binary', 'utf8') + decipher.final('utf8');
|
||||
return dec
|
||||
return decipher.update(text, 'binary', 'utf8') + decipher.final('utf8')
|
||||
};
|
||||
|
||||
return {
|
||||
@@ -69,8 +81,7 @@ class JSONRequestEncrypted {
|
||||
const nonce2 = Buffer.from(response.result.Ok.nonce, 'hex');
|
||||
const data = Buffer.from(response.result.Ok.body_enc, 'base64');
|
||||
|
||||
let dec = aesCipher.decrypt(data, nonce2)
|
||||
return dec
|
||||
return aesCipher.decrypt(data, nonce2)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +112,7 @@ async function main() {
|
||||
"password": "",
|
||||
}).send(shared_key);
|
||||
|
||||
let token = JSON.parse(response).result.Ok;
|
||||
let token = JSON.parse(response).result;
|
||||
|
||||
let iterations = 1;
|
||||
|
||||
@@ -131,4 +142,3 @@ async function main() {
|
||||
|
||||
main();
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user