@ocap/client 1.26.2 → 1.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base.js +1 -2
- package/dist/base.js.map +1 -1
- package/dist/bundle.js +1 -1
- package/dist/report.html +2 -2
- package/lib/base.js +1 -2
- package/lib/base.js.map +1 -1
- package/package.json +14 -14
package/lib/base.js
CHANGED
|
@@ -9,7 +9,6 @@ const { parse } = require('graphql/language/parser');
|
|
|
9
9
|
const isAbsoluteUrl = require('is-absolute-url');
|
|
10
10
|
const pick = require('lodash/pick');
|
|
11
11
|
const get = require('lodash/get');
|
|
12
|
-
const JWT = require('@arcblock/jwt');
|
|
13
12
|
const Mcrypto = require('@ocap/mcrypto');
|
|
14
13
|
const { fromBase64, toUint8Array } = require('@ocap/util');
|
|
15
14
|
const BaseClient = require('@arcblock/sdk-util');
|
|
@@ -101,7 +100,7 @@ class GraphQLClientBase extends BaseClient {
|
|
|
101
100
|
const txHash = Mcrypto.toTxHash(txBuffer);
|
|
102
101
|
return {
|
|
103
102
|
'x-gas-payer-pk': this._gasPayer.publicKey,
|
|
104
|
-
'x-gas-payer-sig': await
|
|
103
|
+
'x-gas-payer-sig': await this._gasPayer.signJWT({ txHash })
|
|
105
104
|
};
|
|
106
105
|
}
|
|
107
106
|
}
|
package/lib/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/base.js"],"names":["parse","require","isAbsoluteUrl","pick","get","
|
|
1
|
+
{"version":3,"sources":["../src/base.js"],"names":["parse","require","isAbsoluteUrl","pick","get","Mcrypto","fromBase64","toUint8Array","BaseClient","WsClient","jsonpack","GraphQLClientBase","constructor","endpoint","Error","dataSource","httpEndpoint","socketEndpoint","_getSocketEndpoint","enableQuery","enableSubscription","enableMutation","maxQueryDepth","_endpoint","_socketClient","setGasPayer","wallet","_gasPayer","subscribe","topic","callback","client","_ensureSocketClient","on","unsubscribe","off","config","Object","assign","_getSocketOptions","heartbeatIntervalMs","isConnected","connect","replace","indexOf","_getAuthHeaders","query","sign","parsed","operation","selection","tx","arguments","find","x","name","value","txBuffer","txHash","toTxHash","publicKey","signJWT","_getSchema","unpack","packedSchema","_getIgnoreFields","pickGasPayerHeaders","headers","module","exports"],"mappings":"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","file":"base.js","sourcesContent":["/* eslint-disable no-underscore-dangle */\n// eslint-disable-next-line import/no-import-module-exports\nimport packedSchema from './schema/graphql.txt';\n\nconst { parse } = require('graphql/language/parser');\nconst isAbsoluteUrl = require('is-absolute-url');\nconst pick = require('lodash/pick');\nconst get = require('lodash/get');\nconst Mcrypto = require('@ocap/mcrypto');\nconst { fromBase64, toUint8Array } = require('@ocap/util');\nconst BaseClient = require('@arcblock/sdk-util');\nconst { WsClient } = require('@arcblock/ws');\nconst jsonpack = require('jsonpack');\n\n/**\n * Provides a readonly client to forge\n * Its recommended to use this version in browser to get smaller bundle size\n *\n * @class GraphQLClientBase\n * @extends {BaseClient}\n */\nclass GraphQLClientBase extends BaseClient {\n constructor(endpoint) {\n if (isAbsoluteUrl(endpoint) === false) {\n throw new Error('Chain endpoint must be a valid url');\n }\n\n super({\n dataSource: 'forge',\n httpEndpoint: endpoint,\n socketEndpoint: () => this._getSocketEndpoint(endpoint),\n enableQuery: true,\n enableSubscription: true,\n enableMutation: true,\n maxQueryDepth: 6,\n });\n\n this._endpoint = endpoint;\n this._socketClient = null;\n }\n\n setGasPayer(wallet) {\n this._gasPayer = wallet;\n }\n\n subscribe(topic, callback) {\n const client = this._ensureSocketClient();\n return client.on(topic, callback);\n }\n\n unsubscribe(topic, callback) {\n const client = this._ensureSocketClient();\n return client.off(topic, callback);\n }\n\n _ensureSocketClient() {\n if (!this._socketClient) {\n this._socketClient = new WsClient(\n this.config.socketEndpoint(),\n Object.assign(this._getSocketOptions(), {\n heartbeatIntervalMs: 10 * 1000,\n })\n );\n }\n\n if (this._socketClient.isConnected() === false) {\n this._socketClient.connect();\n }\n\n return this._socketClient;\n }\n\n _getSocketEndpoint(endpoint) {\n let socketEndpoint = endpoint.replace(/https?:\\/\\//, 'ws://');\n if (endpoint.indexOf('https://') === 0) {\n socketEndpoint = socketEndpoint.replace('ws://', 'wss://');\n }\n\n return socketEndpoint;\n }\n\n async _getAuthHeaders(query) {\n if (!this._gasPayer) {\n return {};\n }\n if (typeof this._gasPayer.sign !== 'function') {\n return {};\n }\n\n const parsed = parse(query);\n const operation = get(parsed, 'definitions[0].operation');\n\n // calculate gas-payer header for sendTx mutation\n if (operation === 'mutation') {\n const selection = get(parsed, 'definitions[0].selectionSet.selections[0]');\n if (get(selection, 'name.value') === 'sendTx') {\n const tx = selection.arguments.find((x) => x.name.value === 'tx');\n if (tx) {\n const txBuffer = toUint8Array(fromBase64(tx.value.value));\n const txHash = Mcrypto.toTxHash(txBuffer);\n return {\n 'x-gas-payer-pk': this._gasPayer.publicKey,\n 'x-gas-payer-sig': await this._gasPayer.signJWT({ txHash }),\n };\n }\n }\n }\n\n return {};\n }\n\n _getSchema() {\n return jsonpack.unpack(packedSchema);\n }\n\n _getIgnoreFields() {\n return [];\n }\n\n pickGasPayerHeaders({ headers }) {\n return pick(headers, ['x-gas-payer-sig', 'x-gas-payer-pk']);\n }\n}\n\nmodule.exports = GraphQLClientBase;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ocap/client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.0",
|
|
4
4
|
"description": "graphql client to read/write data on arcblock blockchain",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
@@ -40,17 +40,17 @@
|
|
|
40
40
|
"react-app-polyfill": "^1.0.6",
|
|
41
41
|
"readable-stream": "3.6.0",
|
|
42
42
|
"wolfy87-eventemitter": "^5.2.9",
|
|
43
|
-
"@arcblock/did": "1.
|
|
44
|
-
"@arcblock/
|
|
45
|
-
"@arcblock/ws": "1.
|
|
46
|
-
"@arcblock/
|
|
47
|
-
"@ocap/
|
|
48
|
-
"@ocap/
|
|
49
|
-
"@ocap/message": "1.
|
|
50
|
-
"@ocap/proto": "1.
|
|
51
|
-
"@ocap/tx-util": "1.
|
|
52
|
-
"@ocap/util": "1.
|
|
53
|
-
"@ocap/wallet": "1.
|
|
43
|
+
"@arcblock/did": "1.27.0",
|
|
44
|
+
"@arcblock/jwt": "1.27.0",
|
|
45
|
+
"@arcblock/ws": "1.27.0",
|
|
46
|
+
"@arcblock/did-util": "1.27.0",
|
|
47
|
+
"@ocap/asset": "1.27.0",
|
|
48
|
+
"@ocap/mcrypto": "1.27.0",
|
|
49
|
+
"@ocap/message": "1.27.0",
|
|
50
|
+
"@ocap/proto": "1.27.0",
|
|
51
|
+
"@ocap/tx-util": "1.27.0",
|
|
52
|
+
"@ocap/util": "1.27.0",
|
|
53
|
+
"@ocap/wallet": "1.27.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"babel-cli": "^6.26.0",
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
"webpack": "^5.94.0",
|
|
72
72
|
"webpack-bundle-analyzer": "^4.10.2",
|
|
73
73
|
"webpack-cli": "^5.1.4",
|
|
74
|
-
"@ocap/e2e-test": "1.
|
|
75
|
-
"@ocap/tx-protocols": "1.
|
|
74
|
+
"@ocap/e2e-test": "1.27.0",
|
|
75
|
+
"@ocap/tx-protocols": "1.27.0"
|
|
76
76
|
},
|
|
77
77
|
"remarkConfig": {
|
|
78
78
|
"plugins": [
|