问题标签 [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.
java - BigInteger 抛出 numberFormatException
编辑:用下面的代码解决了这个问题:
我有一个长字符串,我需要将其分配为 BigInteger 并将其传递给 Web3j 库的另一个方法。但是,我一直收到数字格式异常。对此有什么帮助吗?
下面是抛出异常的方法:
这是例外:
java.lang.NumberFormatException:对于输入字符串:“0x1800000000001289000000000000000000000000000000000000”在 java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 在 java.base/java.lang.Long.parseLong(Long.java: ) 在 java.base/java.lang.Long.parseLong(Long.java:817)
ethereum - Web3j 使用 Ganache 获取堆栈下溢错误
我遇到错误“处理事务请求时出错:处理事务时出现 VM 异常:堆栈下溢”,基本上是任何合同。我正在使用 Ganache v2.1.2 和 Web3j 4.5.15。Ganache CLI v6.9.1(ganache-core:2.10.2)也是如此。我可以毫无问题地使用 Remix IDE 和 Metamask 插件部署合同。
Java 代码:
简单的水龙头合约:
java - Java 120 char ECDSA 公钥到 130 char 或 Ethereum 地址
外部系统为我提供了一个 120 字符的 ECDSA 生成的 X509 公钥。我现在想通过将其转换为地址来在以太坊中使用它。
(不是真正的密钥,而是内容示例(120 个字符))
MFYwEAYHKoZIzj0CAQYFK4EE123456789n9DSxZh3wfq0BIL5LDF5B54e07bxFiKc89K/GaKj4qrGC/Mb/KnakQBrN4khMQHLnxm7TjaxXQPxtJMV5b+A==
我看不到使用 web3j 执行此操作的简单方法,也许还有另一种方法?我认为,看看测试,org.web3j.crypto.Keys.getAddress(String)
预计会有 130 个字符的十六进制版本。
如何将120 个字符转换为130 个字符的十六进制表示,以允许我调用 getAddress 方法,或者是否有将 120 个字符的 pub 密钥转换为以太坊地址的直接方法?
java - 订阅 ERC20 转账活动
我一直在尝试观察主网上发生的特定合约的交易,特别是 Tether (USDT)。我能够下载合同并使用 Web3 (Java) 编译可靠代码。但是我无法订阅传输事件。它只是超时..有什么我想念的吗?我正在使用下面的代码,但超时。
我看不出这不起作用的原因,我通过 wss://mainnet.infura.io/ws/v3/<my_identifier_here> 通过 Infura 连接
任何帮助将不胜感激。
java - Web3j 读取单个事务的所有发出的事件
我有一个智能合约方法“transferFrom”,它最后会发出一个事件“EventTransf”。从使用 web3j 的 java 程序中,我调用了这样的方法并获得了收据。
现在,我将从这个方法调用中读取所有发出的事件。我对 web3j 过滤器有疑问,但我只对此调用中发出的事件感兴趣。该代码也应与 infura 一起使用。
android - 如何在 Android 中使用 web3j 使用现有的 Contract
我第一次在 Android 中使用 BlockChain(使用 web3j),我有现有的智能合约的价值,如 BINARY 和 ABI 详细信息,如下所示
现在根据文档“如果我已经有了合同的二进制文件和 ABI,那么我不需要使用 web3j 来生成它。只需获取这些值并创建类”
我已经有了这些值,但我不知道,如何使用?
就像我只需要为前创建课程一样。
现在我如何使用这个类从合同中读取或写入值?
ethereum - 如何使用 web3j 解码 ABI 的“string []”返回类型的 outputParameters
我的智能合约有一个功能balanceOf
,它的 ABI 如下:
我使用web3j来调用这个函数,代码片段如下:
调用成功但是输出的ABI解码结果((DynamicArray)results.get(0)).getValue().get(0)
是空字符串“”,所以我怀疑是不是new Function
特别是第三个参数有什么问题outputParameters
,但是我已经非常仔细地通过了所有web3j对abi的单元测试并且没有没有发现我的代码有问题。
相反,balanceOf
可以从 remix 中调用函数,它运行良好并返回了正确的值。
那么有没有 web3j 专家可以告诉我我的代码有什么问题?如何解决输出参数解码问题?非常感谢。
java - Web3j 调用智能合约中的变量
我正在尝试使用solidity、geth和web3j获取智能合约中变量的值。
合约 HelloWorld 非常简单:
web3j 没有 call() 函数,只有 send() 令人惊讶。
当我尝试按照 web3j 说明获取计数器时:
我得到一个交易收据而不是价值 uint256。
有人可以帮忙吗?
谢谢
将要
java - 如何使用 web3j 将变量从智能合约传递到 java 项目
这是一个非常简单的智能合约:
然后我使用 web3j 将其转换为 java 文件,getName() 函数如下所示:
我对如何获取 getName() 函数的返回值有点困惑。
android - web3j 和 web3js 中的签名不同?
我正在使用 web3J 版本“ org.web3j:core:4.6.0 ”并遇到以下问题。当我签署相同的原始消息(字符串)时,我使用 web3js 和 web3j 得到不同的签名。web3js 的签名有效(而 web3j 无效),我使用solidity ecrecover 函数对其进行了测试。值得一提的是,您在片段中看到的哈希值是相同的。
Java 代码 (web3j)。
java代码结果-
使用 web3js 代码。
web3js 结果 -