问题标签 [web3-java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
956 浏览

ethereum - 没有凭据的 Web3j 调用合约方法

已经在 javascript(web3js) 和 c#(nethereum) 中实现了相同的解决方案,它们都允许使用 abi 和部署的合约地址加载智能合约。现在我在 java 环境(web3j)中工作并加载我需要提供凭据的智能合约。我只想从合同中调用一些静态方法,不需要凭据。没有它是否有任何解决方法来加载合同?这样我就无法在不提供凭据的情况下向用户显示合同数据。

0 投票
0 回答
99 浏览

java - 无法调用静态类中的方法

我编写了一个基本类来调用 Web3j 以太坊库。我已经添加了 maven 依赖项,我认为没关系。我写了一行代码来检查它是否正常工作,但得到一个奇怪的错误。当我在 Web3j 类上调用静态工厂方法“build”时,Eclipse 会显示一个错误,提示“接口 Web3j 的此静态方法只能作为 Web3j.build 访问”。我不确定这是想告诉我什么。

我已经包含了一个屏幕截图,因此您可以看到方法原型和错误。感谢任何能提供帮助的人。我正在运行 Eclipse Mars 和 Java 1.8。

Web3j 错误

0 投票
1 回答
245 浏览

blockchain - 以太坊智能合约如何在移动客户端上工作

我想在服务器上部署一个智能合约并使用移动客户端与之交互。我不熟悉它是如何工作的,但经过一些研究,我发现如下: 在此处输入图像描述

如果我们比较移动客户端中通过 Web 服务进行的通信,那么在智能合约中几乎所有的东西都是一样的,因为系统的去中心化特性,没有数据库或部署服务。那正确吗?我们可以使用 web3 之类的库将移动客户端连接到智能合约,这些库基本上可以与 Json RPC 或 websockets 一起使用。

但是,如果我不想使用 web3 之类的库将每个移动客户端连接到智能合约怎么办?相反,如果我想要一个 HTTP 服务器,然后它会像下面这样连接到智能合约怎么办? 在此处输入图像描述

那可能吗?如果是,那我该怎么做?

我的第二个问题是关于部署的。在集中式服务器场景中,我会将数据库部署在 AWS 等服务上。我可以估算部署成本。我知道我们必须在以太坊主网上部署智能合约,这将花费一些以太币。但后来我发现我的用户必须为每次计算付费。如果我想承担所有费用怎么办?我们如何估算这些成本?

请指导我解决上述问题。谢谢。

0 投票
1 回答
1134 浏览

java - 如何解码交易的输入数据?

我在 java 中使用 web3j 来获取交易的输入数据。我可以获得数据,但问题是如何解码这些数据。

Input data: "0x070ec83b000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000015118f200000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000.........."

当你执行代码时,你得到的是各种字符。

输出

0 投票
1 回答
274 浏览

ethereum - 在 web3j 中创建钱包时如何解决异常?

C:\Users\1636820\Downloads\web3j-3.4.0\web3j-3.4.0\bin>web3j 钱包创建

C:\Users\1636820\Downloads\web3j-3.4.0\web3j-3.4.0\bin>

如何解决这个问题以及将钱包文件保存在哪里?

0 投票
1 回答
254 浏览

java - 识别过高的随机数

问题:

我们有一个运行服务的服务器集群。该服务将交易从一个地址广播到许多不同的地址。现在的问题是,它们是并行工作的。这意味着,他们总是需要知道下一个有效的随机数。有时,服务会尝试使用过高的 nonce 广播交易。例如,假设地址“0xabc...”的最后一笔交易的随机数为 100。现在一个服务尝试广播一个随机数为 102 的原始交易,而不是像这样的有效 101:

问题:

有什么方法可以检测到问题吗?web3j 当然不会在这里出错,因为最初 tx 进入了 tx 池。但一段时间后,它从那里删除。如何在我的 java 应用程序中检测到“nonce 太高问题”?有任何想法吗?提前致谢!

0 投票
2 回答
735 浏览

android - 如何在使用 web3j 创建新钱包文件时修复“提供者 bc 没有此类算法 ecdsa”

我在最新版本的 android studio 上执行此操作,最低 SDK 版本为 15 个依赖项:

我的代码是:

0 投票
1 回答
411 浏览

java - 如何从“RemoteCall”中提取数据" java/kotlin 中的返回类型函数?

我正在尝试使用 web3j 从 erc20 代币合约中读取地址的余额。我已经生成了 java 等效的合同文件。在这个文件中,一个函数返回 RemoteCall 类型的对象。现在,如何解析这个输出以便我可以简单地得到数字(大整数值)?

当我尝试使用 android log 记录输出时,我得到了某种加密输出 -

org.web3j.protocol.core.RemoteCall@48c4d84

现在我完全困惑下一步该怎么做?

预期的输出是一个大整数类型的数字(地址的令牌余额)。

0 投票
1 回答
852 浏览

java - Web3j ECKeyPair 到 KeyPair

我正在尝试使用 web3j 使用生成的密钥制作 ECC。我有ECKeyPair对象,但cipher.init()需要第二个参数是Key对象。ECKeyPair返回BigInteger私钥和公钥,我如何将它们转换为KeyPair哪个持有PrivateKeyPublicKey对象?

我试过(参考:CryptoUtil.java):

但这会返回一个错误: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'org.bouncycastle.math.ec.ECCurve org.bouncycastle.jce.spec.ECParameterSpec.getCurve()' on a null object reference

有没有其他方法可以将 Web3j ECKeyPair转换为KeyPair

0 投票
1 回答
512 浏览

blockchain - 无需gasprice即可与智能合约交互

我正在使用 web3j java 库来部署智能合约并与之交互。当我尝试通过将 gas 价格设置为 0 并将 gas 限制设置为 DefaultGasProvider.GAS_LIMIT 来发送调用智能合约中的函数的交易时。我收到以下异常。

如何解决这个问题?

使用 Remix 和 MetaMask 可以毫无问题地工作。使用 web3j 时我缺少什么,任何指针都会有很大帮助。