问题标签 [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.
ethereum - 没有凭据的 Web3j 调用合约方法
已经在 javascript(web3js) 和 c#(nethereum) 中实现了相同的解决方案,它们都允许使用 abi 和部署的合约地址加载智能合约。现在我在 java 环境(web3j)中工作并加载我需要提供凭据的智能合约。我只想从合同中调用一些静态方法,不需要凭据。没有它是否有任何解决方法来加载合同?这样我就无法在不提供凭据的情况下向用户显示合同数据。
blockchain - 以太坊智能合约如何在移动客户端上工作
我想在服务器上部署一个智能合约并使用移动客户端与之交互。我不熟悉它是如何工作的,但经过一些研究,我发现如下:
如果我们比较移动客户端中通过 Web 服务进行的通信,那么在智能合约中几乎所有的东西都是一样的,因为系统的去中心化特性,没有数据库或部署服务。那正确吗?我们可以使用 web3 之类的库将移动客户端连接到智能合约,这些库基本上可以与 Json RPC 或 websockets 一起使用。
但是,如果我不想使用 web3 之类的库将每个移动客户端连接到智能合约怎么办?相反,如果我想要一个 HTTP 服务器,然后它会像下面这样连接到智能合约怎么办?
那可能吗?如果是,那我该怎么做?
我的第二个问题是关于部署的。在集中式服务器场景中,我会将数据库部署在 AWS 等服务上。我可以估算部署成本。我知道我们必须在以太坊主网上部署智能合约,这将花费一些以太币。但后来我发现我的用户必须为每次计算付费。如果我想承担所有费用怎么办?我们如何估算这些成本?
请指导我解决上述问题。谢谢。
java - 如何解码交易的输入数据?
我在 java 中使用 web3j 来获取交易的输入数据。我可以获得数据,但问题是如何解码这些数据。
Input data: "0x070ec83b000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000015118f200000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000.........."
当你执行代码时,你得到的是各种字符。
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>
如何解决这个问题以及将钱包文件保存在哪里?
java - 识别过高的随机数
问题:
我们有一个运行服务的服务器集群。该服务将交易从一个地址广播到许多不同的地址。现在的问题是,它们是并行工作的。这意味着,他们总是需要知道下一个有效的随机数。有时,服务会尝试使用过高的 nonce 广播交易。例如,假设地址“0xabc...”的最后一笔交易的随机数为 100。现在一个服务尝试广播一个随机数为 102 的原始交易,而不是像这样的有效 101:
问题:
有什么方法可以检测到问题吗?web3j 当然不会在这里出错,因为最初 tx 进入了 tx 池。但一段时间后,它从那里删除。如何在我的 java 应用程序中检测到“nonce 太高问题”?有任何想法吗?提前致谢!
android - 如何在使用 web3j 创建新钱包文件时修复“提供者 bc 没有此类算法 ecdsa”
我在最新版本的 android studio 上执行此操作,最低 SDK 版本为 15 个依赖项:
我的代码是:
java - 如何从“RemoteCall”中提取数据" java/kotlin 中的返回类型函数?
我正在尝试使用 web3j 从 erc20 代币合约中读取地址的余额。我已经生成了 java 等效的合同文件。在这个文件中,一个函数返回 RemoteCall 类型的对象。现在,如何解析这个输出以便我可以简单地得到数字(大整数值)?
当我尝试使用 android log 记录输出时,我得到了某种加密输出 -
org.web3j.protocol.core.RemoteCall@48c4d84
现在我完全困惑下一步该怎么做?
预期的输出是一个大整数类型的数字(地址的令牌余额)。
java - Web3j ECKeyPair 到 KeyPair
我正在尝试使用 web3j 使用生成的密钥制作 ECC。我有ECKeyPair对象,但cipher.init()
需要第二个参数是Key
对象。ECKeyPair返回BigInteger
私钥和公钥,我如何将它们转换为KeyPair
哪个持有PrivateKey
和PublicKey
对象?
我试过(参考: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
?
blockchain - 无需gasprice即可与智能合约交互
我正在使用 web3j java 库来部署智能合约并与之交互。当我尝试通过将 gas 价格设置为 0 并将 gas 限制设置为 DefaultGasProvider.GAS_LIMIT 来发送调用智能合约中的函数的交易时。我收到以下异常。
如何解决这个问题?
使用 Remix 和 MetaMask 可以毫无问题地工作。使用 web3j 时我缺少什么,任何指针都会有很大帮助。