@ocap/client 1.18.22 → 1.18.24
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 -4
- package/dist/base.js.map +1 -1
- package/dist/bundle.js +1 -1
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/extension.js +11 -15
- package/dist/extension.js.map +1 -1
- package/dist/report.html +2 -2
- package/lib/base.js +1 -4
- package/lib/base.js.map +1 -1
- package/lib/client.js +1 -1
- package/lib/client.js.map +1 -1
- package/lib/extension.js +11 -15
- package/lib/extension.js.map +1 -1
- package/package.json +12 -12
package/dist/base.js
CHANGED
|
@@ -14,9 +14,6 @@ const BaseClient = require('@arcblock/sdk-util');
|
|
|
14
14
|
const { WsClient } = require('@arcblock/ws');
|
|
15
15
|
const jsonpack = require('jsonpack');
|
|
16
16
|
|
|
17
|
-
const sha256 = Mcrypto.Hasher.SHA2.hash256;
|
|
18
|
-
const toTxHash = buf => sha256(buf, 1).replace(/^0x/, '').toUpperCase();
|
|
19
|
-
|
|
20
17
|
/**
|
|
21
18
|
* Provides a readonly client to forge
|
|
22
19
|
* Its recommended to use this version in browser to get smaller bundle size
|
|
@@ -99,7 +96,7 @@ class GraphQLClientBase extends BaseClient {
|
|
|
99
96
|
const tx = selection.arguments.find(x => x.name.value === 'tx');
|
|
100
97
|
if (tx) {
|
|
101
98
|
const txBuffer = toUint8Array(fromBase64(tx.value.value));
|
|
102
|
-
const txHash = toTxHash(txBuffer);
|
|
99
|
+
const txHash = Mcrypto.toTxHash(txBuffer);
|
|
103
100
|
return {
|
|
104
101
|
'x-gas-payer-pk': this._gasPayer.publicKey,
|
|
105
102
|
'x-gas-payer-sig': JWT.sign(this._gasPayer.address, this._gasPayer.secretKey, { txHash })
|
package/dist/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/base.js"],"names":["parse","require","isAbsoluteUrl","pick","get","JWT","Mcrypto","fromBase64","toUint8Array","BaseClient","WsClient","jsonpack","
|
|
1
|
+
{"version":3,"sources":["../src/base.js"],"names":["parse","require","isAbsoluteUrl","pick","get","JWT","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","address","secretKey","_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 JWT = require('@arcblock/jwt');\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 _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': JWT.sign(this._gasPayer.address, this._gasPayer.secretKey, { 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"]}
|