@ocap/client 1.18.22 → 1.18.23

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 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","sha256","Hasher","SHA2","hash256","toTxHash","buf","replace","toUpperCase","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","indexOf","_getAuthHeaders","query","sign","parsed","operation","selection","tx","arguments","find","x","name","value","txBuffer","txHash","publicKey","address","secretKey","_getSchema","unpack","packedSchema","_getIgnoreFields","pickGasPayerHeaders","headers","module","exports"],"mappings":"wDAAA;AACA;;;;AAGA,MAAM,EAAEA,KAAF,KAAYC,QAAQ,yBAAR,CAAlB;AACA,MAAMC,gBAAgBD,QAAQ,iBAAR,CAAtB;AACA,MAAME,OAAOF,QAAQ,aAAR,CAAb;AACA,MAAMG,MAAMH,QAAQ,YAAR,CAAZ;AACA,MAAMI,MAAMJ,QAAQ,eAAR,CAAZ;AACA,MAAMK,UAAUL,QAAQ,eAAR,CAAhB;AACA,MAAM,EAAEM,UAAF,EAAcC,YAAd,KAA+BP,QAAQ,YAAR,CAArC;AACA,MAAMQ,aAAaR,QAAQ,oBAAR,CAAnB;AACA,MAAM,EAAES,QAAF,KAAeT,QAAQ,cAAR,CAArB;AACA,MAAMU,WAAWV,QAAQ,UAAR,CAAjB;;AAEA,MAAMW,SAASN,QAAQO,MAAR,CAAeC,IAAf,CAAoBC,OAAnC;AACA,MAAMC,WAAYC,GAAD,IAASL,OAAOK,GAAP,EAAY,CAAZ,EAAeC,OAAf,CAAuB,KAAvB,EAA8B,EAA9B,EAAkCC,WAAlC,EAA1B;;AAEA;;;;;;;AAOA,MAAMC,iBAAN,SAAgCX,UAAhC,CAA2C;AACzCY,cAAYC,QAAZ,EAAsB;AACpB,QAAIpB,cAAcoB,QAAd,MAA4B,KAAhC,EAAuC;AACrC,YAAM,IAAIC,KAAJ,CAAU,oCAAV,CAAN;AACD;;AAED,UAAM;AACJC,kBAAY,OADR;AAEJC,oBAAcH,QAFV;AAGJI,sBAAgB,MAAM,KAAKC,kBAAL,CAAwBL,QAAxB,CAHlB;AAIJM,mBAAa,IAJT;AAKJC,0BAAoB,IALhB;AAMJC,sBAAgB,IANZ;AAOJC,qBAAe;AAPX,KAAN;;AAUA,SAAKC,SAAL,GAAiBV,QAAjB;AACA,SAAKW,aAAL,GAAqB,IAArB;AACD;;AAEDC,cAAYC,MAAZ,EAAoB;AAClB,SAAKC,SAAL,GAAiBD,MAAjB;AACD;;AAEDE,YAAUC,KAAV,EAAiBC,QAAjB,EAA2B;AACzB,UAAMC,SAAS,KAAKC,mBAAL,EAAf;AACA,WAAOD,OAAOE,EAAP,CAAUJ,KAAV,EAAiBC,QAAjB,CAAP;AACD;;AAEDI,cAAYL,KAAZ,EAAmBC,QAAnB,EAA6B;AAC3B,UAAMC,SAAS,KAAKC,mBAAL,EAAf;AACA,WAAOD,OAAOI,GAAP,CAAWN,KAAX,EAAkBC,QAAlB,CAAP;AACD;;AAEDE,wBAAsB;AACpB,QAAI,CAAC,KAAKR,aAAV,EAAyB;AACvB,WAAKA,aAAL,GAAqB,IAAIvB,QAAJ,CACnB,KAAKmC,MAAL,CAAYnB,cAAZ,EADmB,EAEnBoB,OAAOC,MAAP,CAAc,KAAKC,iBAAL,EAAd,EAAwC;AACtCC,6BAAqB,KAAK;AADY,OAAxC,CAFmB,CAArB;AAMD;;AAED,QAAI,KAAKhB,aAAL,CAAmBiB,WAAnB,OAAqC,KAAzC,EAAgD;AAC9C,WAAKjB,aAAL,CAAmBkB,OAAnB;AACD;;AAED,WAAO,KAAKlB,aAAZ;AACD;;AAEDN,qBAAmBL,QAAnB,EAA6B;AAC3B,QAAII,iBAAiBJ,SAASJ,OAAT,CAAiB,aAAjB,EAAgC,OAAhC,CAArB;AACA,QAAII,SAAS8B,OAAT,CAAiB,UAAjB,MAAiC,CAArC,EAAwC;AACtC1B,uBAAiBA,eAAeR,OAAf,CAAuB,OAAvB,EAAgC,QAAhC,CAAjB;AACD;;AAED,WAAOQ,cAAP;AACD;;AAED2B,kBAAgBC,KAAhB,EAAuB;AACrB,QAAI,CAAC,KAAKlB,SAAV,EAAqB;AACnB,aAAO,EAAP;AACD;AACD,QAAI,OAAO,KAAKA,SAAL,CAAemB,IAAtB,KAA+B,UAAnC,EAA+C;AAC7C,aAAO,EAAP;AACD;;AAED,UAAMC,SAASxD,MAAMsD,KAAN,CAAf;AACA,UAAMG,YAAYrD,IAAIoD,MAAJ,EAAY,0BAAZ,CAAlB;;AAEA;AACA,QAAIC,cAAc,UAAlB,EAA8B;AAC5B,YAAMC,YAAYtD,IAAIoD,MAAJ,EAAY,2CAAZ,CAAlB;AACA,UAAIpD,IAAIsD,SAAJ,EAAe,YAAf,MAAiC,QAArC,EAA+C;AAC7C,cAAMC,KAAKD,UAAUE,SAAV,CAAoBC,IAApB,CAA0BC,CAAD,IAAOA,EAAEC,IAAF,CAAOC,KAAP,KAAiB,IAAjD,CAAX;AACA,YAAIL,EAAJ,EAAQ;AACN,gBAAMM,WAAWzD,aAAaD,WAAWoD,GAAGK,KAAH,CAASA,KAApB,CAAb,CAAjB;AACA,gBAAME,SAASlD,SAASiD,QAAT,CAAf;AACA,iBAAO;AACL,8BAAkB,KAAK7B,SAAL,CAAe+B,SAD5B;AAEL,+BAAmB9D,IAAIkD,IAAJ,CAAS,KAAKnB,SAAL,CAAegC,OAAxB,EAAiC,KAAKhC,SAAL,CAAeiC,SAAhD,EAA2D,EAAEH,MAAF,EAA3D;AAFd,WAAP;AAID;AACF;AACF;;AAED,WAAO,EAAP;AACD;;AAEDI,eAAa;AACX,WAAO3D,SAAS4D,MAAT,CAAgBC,YAAhB,CAAP;AACD;;AAEDC,qBAAmB;AACjB,WAAO,EAAP;AACD;;AAEDC,sBAAoB,EAAEC,OAAF,EAApB,EAAiC;AAC/B,WAAOxE,KAAKwE,OAAL,EAAc,CAAC,iBAAD,EAAoB,gBAApB,CAAd,CAAP;AACD;AApGwC;;AAuG3CC,OAAOC,OAAP,GAAiBzD,iBAAjB","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\nconst sha256 = Mcrypto.Hasher.SHA2.hash256;\nconst toTxHash = (buf) => sha256(buf, 1).replace(/^0x/, '').toUpperCase();\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 = 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"]}
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"]}