clojurescript - TypeError: $jscomp$generator$this.send is not a function
问题描述
I'm trying to use @walletconnect/web3-provider package from npm in ClojureScript, and when I call a function I get an error: TypeError: $jscomp$generator$this.send is not a function
Here is JavaScript code which is used, the problem is in 4th line: return this.send(payload);
:
class WalletConnectProvider extends ProviderEngine {
request(payload) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.send(payload);
});
}
send(payload, callback) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
if (typeof payload === "string") {
const method = payload;
let params = callback;
if (method === "personal_sign") {
params = utils_1.parsePersonalSign(params);
}
return this.sendAsyncPromise(method, params);
}
payload = Object.assign({ id: utils_1.payloadId(), jsonrpc: "2.0" }, payload);
if (payload.method === "personal_sign") {
payload.params = utils_1.parsePersonalSign(payload.params);
}
if (callback) {
this.sendAsync(payload, callback);
return;
}
return this.sendAsyncPromise(payload.method, payload.params);
});
}
Here is ClojureScript code which causes error described above when I call (.getAccounts (.-eth web3))
(ns woodenstaking-ui.components.connect-btn
(:require [re-frame.core :as rf]
["web3" :as web3-js]
["web3modal" :default web3-modal]
["@walletconnect/web3-provider" :default wallet-connect-provider]
["fortmatic" :as fortmatic]
[cljs.core.async :refer [go]]
[cljs.core.async.interop :refer-macros [<p!]]
(def web3modal
(new web3-modal #js {:cacheProvider false,
:providerOptions #js
{:walletconnect #js
{:package wallet-connect-provider,
:options #js {:infuraId infura-id}}
:fortmatic #js
{:package fortmatic
:options #js {:key fortmatic-key}}}}))
(defn open-modal
[]
(go
(let [provider (<p! (.connect web3modal))
web3 (new web3-js provider)
account (<p! (.getAccounts (.-eth web3)))])))
This code works with MetaMask and Fortmatic web3 providers and fails with WalletConnect only. The same error I get with WalletConnect when I call any smart contract method.
解决方案
推荐阅读
- python - GCE 上的 Python:连接失败,因为连接的主机未能响应
- oracle - 优化sql select语句(oracle)
- php - preg_replace 不适用于对象变量 PHP
- powershell - 在 powershell 中使用 certreq 在文件中生成私钥
- go - Github 操作在存储库中找不到包
- python - 如何在python中中断
- javascript - JavaScript -WebdriverIO - 函数不将元素作为参数
- amazon-web-services - 尝试使用虚拟托管 URL 而不是 AWS S3 存储桶的路径样式时,存储桶名称包含点 ('.') 的 SSL 证书问题
- web-component - 分别导出同一个项目的两个模块?
- typescript - 使用猫鼬和nestJS自动增加字段