crypto polyfill not working
rmchrkv opened this issue · 0 comments
rmchrkv commented
Hello, so I need to convert user-friendly to raw via BigQuery function. I've created a webpack build to load it into BigQuery UDF via GCP bucket.
- webpack.config.js
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: './src/index.js',
optimization: {
minimize: true,
mangleExports: true,
mergeDuplicateChunks: true,
},
output: {
filename: 'tonweb.js',
path: path.resolve(__dirname, 'dist'),
library: 'tonweb',
},
mode: 'none',
resolve: {
fallback: {
buffer: require.resolve('buffer/'),
url: require.resolve('url'),
fs: require.resolve('fs'),
assert: require.resolve('assert'),
crypto: require.resolve('crypto-browserify'),
http: require.resolve('stream-http'),
https: require.resolve('https-browserify'),
os: require.resolve('os-browserify/browser'),
stream: require.resolve('stream-browserify'),
},
},
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
}),
],
};
- package.json
{
"name": "tonweb",
"version": "0.0.60",
"description": "TonWeb - JavaScript API for TON blockchain",
"main": "src/index.js",
"types": "dist/types/index.d.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "npx webpack --mode=none"
},
"keywords": [
"TON",
"Blockchain",
"API"
],
"authors": [
{
"name": "rulon"
},
{
"name": "tolya-yanot"
}
],
"license": "GPL-3.0",
"bugs": {
"url": "https://github.com/toncenter/tonweb/issues"
},
"homepage": "https://github.com/toncenter/tonweb#readme",
"repository": "https://github.com/toncenter/tonweb",
"dependencies": {
"@babel/core": "^7.22.5",
"@babel/plugin-proposal-decorators": "^7.22.5",
"@babel/preset-env": "^7.22.5",
"@ledgerhq/hw-transport-web-ble": "5.48.0",
"@ledgerhq/hw-transport-webhid": "5.48.0",
"@ledgerhq/hw-transport-webusb": "5.48.0",
"bn.js": "5.1.1",
"crypto-browserify": "^3.12.0",
"ethjs-unit": "0.1.6",
"https-browserify": "^1.0.0",
"isomorphic-webcrypto": "2.3.8",
"node-fetch": "2.6.7",
"os-browserify": "^0.3.0",
"stream-browserify": "^3.0.0",
"stream-http": "^3.2.0",
"tweetnacl": "1.0.3",
"webpack-node-externals": "^3.0.0"
},
"devDependencies": {
"@sinonjs/fake-timers": "^9.1.1",
"buffer": "6.0.3",
"webpack": "^5.86.0",
"webpack-cli": "^4.10.0"
},
"browser": {
"node-fetch": false
}
}
When I try to use any TonWeb function via UDF in BigQuery (loaded from GCP bucket), it throws me an error
TypeError: Cannot read properties of undefined (reading 'crypto') at gs://npm_js_packages/tonweb.js line 2, <...>
What could be the solution?